@vendure/admin-ui 2.0.2 → 2.0.3

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 (122) hide show
  1. package/catalog/components/product-variant-list/product-variant-list-bulk-actions.d.ts +6 -0
  2. package/catalog/public_api.d.ts +1 -1
  3. package/core/common/base-detail.component.d.ts +1 -0
  4. package/core/common/component-registry-types.d.ts +2 -2
  5. package/core/common/generated-types.d.ts +13 -0
  6. package/core/common/version.d.ts +1 -1
  7. package/core/components/theme-switcher/theme-switcher.component.d.ts +1 -0
  8. package/core/data/definitions/product-definitions.d.ts +1 -0
  9. package/core/data/providers/product-data.service.d.ts +1 -0
  10. package/core/shared/components/data-table-filters/data-table-filters.component.d.ts +1 -0
  11. package/core/shared/components/dropdown/dropdown-menu.component.d.ts +2 -0
  12. package/core/shared/components/dropdown/dropdown.component.d.ts +1 -1
  13. package/core/shared/components/rich-text-editor/prosemirror/prosemirror.service.d.ts +6 -0
  14. package/core/shared/dynamic-form-inputs/customer-group-form-input/customer-group-form-input.component.d.ts +5 -2
  15. package/core/shared/dynamic-form-inputs/product-multi-selector-form-input/product-multi-selector-form-input.component.d.ts +4 -2
  16. package/core/shared/dynamic-form-inputs/product-selector-form-input/product-selector-form-input.component.d.ts +8 -5
  17. package/core/shared/dynamic-form-inputs/relation-form-input/asset/relation-asset-input.component.d.ts +1 -4
  18. package/core/shared/dynamic-form-inputs/relation-form-input/customer/relation-customer-input.component.d.ts +0 -1
  19. package/core/shared/shared.module.d.ts +2 -1
  20. package/esm2022/catalog/catalog.module.mjs +5 -1
  21. package/esm2022/catalog/components/asset-list/asset-list.component.mjs +3 -3
  22. package/esm2022/catalog/components/assign-products-to-channel-dialog/assign-products-to-channel-dialog.component.mjs +11 -14
  23. package/esm2022/catalog/components/product-list/product-list.component.mjs +3 -3
  24. package/esm2022/catalog/components/product-options-editor/product-options-editor.component.mjs +1 -1
  25. package/esm2022/catalog/components/product-variant-detail/product-variant-detail.component.mjs +4 -5
  26. package/esm2022/catalog/components/product-variant-list/product-variant-list-bulk-actions.mjs +92 -0
  27. package/esm2022/catalog/components/product-variant-list/product-variant-list.component.mjs +5 -5
  28. package/esm2022/catalog/public_api.mjs +2 -2
  29. package/esm2022/core/common/base-detail.component.mjs +3 -3
  30. package/esm2022/core/common/base-list.component.mjs +2 -2
  31. package/esm2022/core/common/component-registry-types.mjs +1 -1
  32. package/esm2022/core/common/generated-types.mjs +2 -1
  33. package/esm2022/core/common/title-setter.mjs +1 -1
  34. package/esm2022/core/common/version.mjs +2 -2
  35. package/esm2022/core/components/base-nav/base-nav.component.mjs +1 -1
  36. package/esm2022/core/components/main-nav/main-nav.component.mjs +2 -2
  37. package/esm2022/core/components/theme-switcher/theme-switcher.component.mjs +15 -5
  38. package/esm2022/core/components/user-menu/user-menu.component.mjs +3 -3
  39. package/esm2022/core/data/definitions/product-definitions.mjs +9 -1
  40. package/esm2022/core/data/providers/interceptor.mjs +1 -1
  41. package/esm2022/core/data/providers/product-data.service.mjs +7 -2
  42. package/esm2022/core/data/utils/transform-relation-custom-field-inputs.mjs +2 -2
  43. package/esm2022/core/providers/bulk-action-registry/bulk-action-types.mjs +1 -1
  44. package/esm2022/core/providers/custom-field-component/custom-field-component.service.mjs +1 -1
  45. package/esm2022/core/providers/data-table/data-table-filter-collection.mjs +2 -2
  46. package/esm2022/core/providers/local-storage/local-storage.service.mjs +1 -1
  47. package/esm2022/core/providers/page/page.service.mjs +1 -1
  48. package/esm2022/core/shared/components/action-bar-items/action-bar-items.component.mjs +1 -1
  49. package/esm2022/core/shared/components/assign-to-channel-dialog/assign-to-channel-dialog.component.mjs +1 -1
  50. package/esm2022/core/shared/components/chip/chip.component.mjs +2 -2
  51. package/esm2022/core/shared/components/currency-code-selector/currency-code-selector.component.mjs +1 -1
  52. package/esm2022/core/shared/components/data-table/data-table.component.mjs +1 -1
  53. package/esm2022/core/shared/components/data-table-filters/data-table-filters.component.mjs +24 -15
  54. package/esm2022/core/shared/components/dropdown/dropdown-menu.component.mjs +65 -24
  55. package/esm2022/core/shared/components/dropdown/dropdown.component.mjs +1 -1
  56. package/esm2022/core/shared/components/facet-value-selector/facet-value-selector.component.mjs +3 -3
  57. package/esm2022/core/shared/components/language-code-selector/language-code-selector.component.mjs +1 -1
  58. package/esm2022/core/shared/components/rich-text-editor/prosemirror/custom-nodes.mjs +4 -3
  59. package/esm2022/core/shared/components/rich-text-editor/prosemirror/prosemirror.service.mjs +16 -3
  60. package/esm2022/core/shared/components/tabbed-custom-fields/tabbed-custom-fields.component.mjs +3 -1
  61. package/esm2022/core/shared/dynamic-form-inputs/customer-group-form-input/customer-group-form-input.component.mjs +7 -4
  62. package/esm2022/core/shared/dynamic-form-inputs/dynamic-form-input/dynamic-form-input.component.mjs +9 -8
  63. package/esm2022/core/shared/dynamic-form-inputs/product-multi-selector-form-input/product-multi-selector-form-input.component.mjs +3 -2
  64. package/esm2022/core/shared/dynamic-form-inputs/product-selector-form-input/product-selector-form-input.component.mjs +10 -5
  65. package/esm2022/core/shared/dynamic-form-inputs/register-dynamic-input-components.mjs +1 -1
  66. package/esm2022/core/shared/dynamic-form-inputs/relation-form-input/asset/relation-asset-input.component.mjs +14 -15
  67. package/esm2022/core/shared/dynamic-form-inputs/relation-form-input/customer/relation-customer-input.component.mjs +1 -3
  68. package/esm2022/core/shared/dynamic-form-inputs/relation-form-input/product/relation-product-input.component.mjs +3 -3
  69. package/esm2022/core/shared/dynamic-form-inputs/relation-form-input/product-variant/relation-product-variant-input.component.mjs +3 -3
  70. package/esm2022/core/shared/dynamic-form-inputs/relation-form-input/relation-card/relation-card.component.mjs +3 -3
  71. package/esm2022/core/shared/dynamic-form-inputs/relation-form-input/relation-form-input.component.mjs +2 -2
  72. package/esm2022/core/shared/pipes/state-i18n-token.pipe.mjs +1 -1
  73. package/esm2022/core/shared/shared.module.mjs +9 -4
  74. package/esm2022/customer/components/customer-detail/customer-detail.component.mjs +27 -27
  75. package/esm2022/customer/components/customer-list/customer-list.component.mjs +24 -24
  76. package/esm2022/customer/customer.module.mjs +9 -2
  77. package/esm2022/customer/customer.routes.mjs +1 -1
  78. package/esm2022/dashboard/components/dashboard/dashboard.component.mjs +1 -1
  79. package/esm2022/dashboard/default-widgets.mjs +2 -1
  80. package/esm2022/dashboard/widgets/order-chart-widget/order-chart-widget.component.mjs +12 -12
  81. package/esm2022/marketing/marketing.module.mjs +1 -1
  82. package/esm2022/order/components/order-detail/order-detail.component.mjs +8 -8
  83. package/esm2022/order/components/order-list/order-list.component.mjs +9 -2
  84. package/esm2022/order/components/order-table/order-table.component.mjs +3 -3
  85. package/esm2022/order/order.module.mjs +1 -1
  86. package/esm2022/order/order.routes.mjs +1 -1
  87. package/esm2022/settings/components/shipping-method-detail/shipping-method-detail.component.mjs +3 -3
  88. package/esm2022/settings/components/tax-rate-detail/tax-rate-detail.component.mjs +8 -8
  89. package/esm2022/settings/settings.module.mjs +1 -1
  90. package/fesm2022/vendure-admin-ui-catalog.mjs +109 -75
  91. package/fesm2022/vendure-admin-ui-catalog.mjs.map +1 -1
  92. package/fesm2022/vendure-admin-ui-core.mjs +190 -89
  93. package/fesm2022/vendure-admin-ui-core.mjs.map +1 -1
  94. package/fesm2022/vendure-admin-ui-customer.mjs +56 -49
  95. package/fesm2022/vendure-admin-ui-customer.mjs.map +1 -1
  96. package/fesm2022/vendure-admin-ui-dashboard.mjs +12 -11
  97. package/fesm2022/vendure-admin-ui-dashboard.mjs.map +1 -1
  98. package/fesm2022/vendure-admin-ui-marketing.mjs.map +1 -1
  99. package/fesm2022/vendure-admin-ui-order.mjs +17 -10
  100. package/fesm2022/vendure-admin-ui-order.mjs.map +1 -1
  101. package/fesm2022/vendure-admin-ui-settings.mjs +9 -9
  102. package/fesm2022/vendure-admin-ui-settings.mjs.map +1 -1
  103. package/package.json +19 -19
  104. package/static/i18n-messages/cs.json +772 -770
  105. package/static/i18n-messages/de.json +773 -771
  106. package/static/i18n-messages/en.json +773 -771
  107. package/static/i18n-messages/es.json +773 -771
  108. package/static/i18n-messages/fr.json +773 -771
  109. package/static/i18n-messages/it.json +773 -771
  110. package/static/i18n-messages/pl.json +773 -771
  111. package/static/i18n-messages/pt_BR.json +773 -771
  112. package/static/i18n-messages/pt_PT.json +773 -771
  113. package/static/i18n-messages/ru.json +773 -771
  114. package/static/i18n-messages/uk.json +773 -771
  115. package/static/i18n-messages/zh_Hans.json +773 -771
  116. package/static/i18n-messages/zh_Hant.json +773 -771
  117. package/static/styles/global/_buttons.scss +63 -49
  118. package/static/styles/global/_forms.scss +5 -1
  119. package/static/styles/theme/default.scss +2 -0
  120. package/static/theme.min.css +1 -1
  121. package/catalog/components/product-variant-list/product-list-bulk-actions.d.ts +0 -3
  122. package/esm2022/catalog/components/product-variant-list/product-list-bulk-actions.mjs +0 -55
@@ -11,4 +11,4 @@ export function titleSetter() {
11
11
  const brand = getAppConfig().brand || 'Vendure';
12
12
  return (title) => titleService.setTitle(`${i18nService.translate(title)} • ${brand}`);
13
13
  }
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGl0bGUtc2V0dGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9jb3JlL3NyYy9jb21tb24vdGl0bGUtc2V0dGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRTdEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLFdBQVc7SUFDdkIsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ25DLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN4QyxNQUFNLEtBQUssR0FBRyxZQUFZLEVBQUUsQ0FBQyxLQUFLLElBQUksU0FBUyxDQUFDO0lBQ2hELE9BQU8sQ0FBQyxLQUFhLEVBQUUsRUFBRSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsR0FBRyxXQUFXLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxNQUFNLEtBQUssRUFBRSxDQUFDLENBQUM7QUFDbEcsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBUaXRsZSB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xyXG5pbXBvcnQgeyBnZXRBcHBDb25maWcgfSBmcm9tICcuLi9hcHAuY29uZmlnJztcclxuaW1wb3J0IHsgSTE4blNlcnZpY2UgfSBmcm9tICcuLi9wcm92aWRlcnMvaTE4bi9pMThuLnNlcnZpY2UnO1xyXG5cclxuLyoqXHJcbiAqIENyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0IGNhbiBiZSB1c2VkIHRvIHNldCB0aGUgbWV0YSB0aXRsZSBvZiB0aGUgY3VycmVudCBwYWdlLlxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHRpdGxlU2V0dGVyKCkge1xyXG4gICAgY29uc3QgdGl0bGVTZXJ2aWNlID0gaW5qZWN0KFRpdGxlKTtcclxuICAgIGNvbnN0IGkxOG5TZXJ2aWNlID0gaW5qZWN0KEkxOG5TZXJ2aWNlKTtcclxuICAgIGNvbnN0IGJyYW5kID0gZ2V0QXBwQ29uZmlnKCkuYnJhbmQgfHwgJ1ZlbmR1cmUnO1xyXG4gICAgcmV0dXJuICh0aXRsZTogc3RyaW5nKSA9PiB0aXRsZVNlcnZpY2Uuc2V0VGl0bGUoYCR7aTE4blNlcnZpY2UudHJhbnNsYXRlKHRpdGxlKX0g4oCiICR7YnJhbmR9YCk7XHJcbn1cclxuIl19
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGl0bGUtc2V0dGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9jb3JlL3NyYy9jb21tb24vdGl0bGUtc2V0dGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRTdEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLFdBQVc7SUFDdkIsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ25DLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN4QyxNQUFNLEtBQUssR0FBRyxZQUFZLEVBQUUsQ0FBQyxLQUFLLElBQUksU0FBUyxDQUFDO0lBQ2hELE9BQU8sQ0FBQyxLQUFhLEVBQUUsRUFBRSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsR0FBRyxXQUFXLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxNQUFNLEtBQUssRUFBRSxDQUFDLENBQUM7QUFDbEcsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVGl0bGUgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7IGdldEFwcENvbmZpZyB9IGZyb20gJy4uL2FwcC5jb25maWcnO1xuaW1wb3J0IHsgSTE4blNlcnZpY2UgfSBmcm9tICcuLi9wcm92aWRlcnMvaTE4bi9pMThuLnNlcnZpY2UnO1xuXG4vKipcbiAqIENyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0IGNhbiBiZSB1c2VkIHRvIHNldCB0aGUgbWV0YSB0aXRsZSBvZiB0aGUgY3VycmVudCBwYWdlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdGl0bGVTZXR0ZXIoKSB7XG4gICAgY29uc3QgdGl0bGVTZXJ2aWNlID0gaW5qZWN0KFRpdGxlKTtcbiAgICBjb25zdCBpMThuU2VydmljZSA9IGluamVjdChJMThuU2VydmljZSk7XG4gICAgY29uc3QgYnJhbmQgPSBnZXRBcHBDb25maWcoKS5icmFuZCB8fCAnVmVuZHVyZSc7XG4gICAgcmV0dXJuICh0aXRsZTogc3RyaW5nKSA9PiB0aXRsZVNlcnZpY2Uuc2V0VGl0bGUoYCR7aTE4blNlcnZpY2UudHJhbnNsYXRlKHRpdGxlKX0g4oCiICR7YnJhbmR9YCk7XG59XG4iXX0=
@@ -1,3 +1,3 @@
1
1
  // Auto-generated by the set-version.js script.
2
- export const ADMIN_UI_VERSION = '2.0.2';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvY29yZS9zcmMvY29tbW9uL3ZlcnNpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLE9BQU8sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEF1dG8tZ2VuZXJhdGVkIGJ5IHRoZSBzZXQtdmVyc2lvbi5qcyBzY3JpcHQuXG5leHBvcnQgY29uc3QgQURNSU5fVUlfVkVSU0lPTiA9ICcyLjAuMic7XG4iXX0=
2
+ export const ADMIN_UI_VERSION = '2.0.3';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvY29yZS9zcmMvY29tbW9uL3ZlcnNpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLE9BQU8sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEF1dG8tZ2VuZXJhdGVkIGJ5IHRoZSBzZXQtdmVyc2lvbi5qcyBzY3JpcHQuXG5leHBvcnQgY29uc3QgQURNSU5fVUlfVkVSU0lPTiA9ICcyLjAuMyc7XG4iXX0=
@@ -275,4 +275,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.3", ngImpor
275
275
  selector: '[vdrBaseNav]',
276
276
  }]
277
277
  }], ctorParameters: function () { return [{ type: i1.ActivatedRoute }, { type: i1.Router }, { type: i2.NavBuilderService }, { type: i3.HealthCheckService }, { type: i4.JobQueueService }, { type: i5.DataService }]; } });
278
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1uYXYuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb3JlL3NyYy9jb21wb25lbnRzL2Jhc2UtbmF2L2Jhc2UtbmF2LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWEsU0FBUyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUV4RSxPQUFPLEVBQUUsTUFBTSxJQUFJLENBQUMsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBRXRFLE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFaEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDhCQUE4QixDQUFDOzs7Ozs7O0FBVTFELGtFQUFrRTtBQUNsRSxNQUFNLE9BQU8sZ0JBQWdCO0lBQ3pCLFlBQ2MsS0FBcUIsRUFDckIsTUFBYyxFQUNqQixpQkFBb0MsRUFDakMsa0JBQXNDLEVBQ3RDLGVBQWdDLEVBQ2hDLFdBQXdCO1FBTHhCLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQ3JCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDakIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNqQyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQ3RDLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtJQUNuQyxDQUFDO0lBS0osaUJBQWlCLENBQUMsUUFBaUQ7UUFDL0QsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUU7WUFDdkIsT0FBTyxLQUFLLENBQUM7U0FDaEI7UUFDRCxJQUFJLENBQUMsUUFBUSxDQUFDLGtCQUFrQixFQUFFO1lBQzlCLE9BQU8sSUFBSSxDQUFDO1NBQ2Y7UUFDRCxJQUFJLE9BQU8sUUFBUSxDQUFDLGtCQUFrQixLQUFLLFFBQVEsRUFBRTtZQUNqRCxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFD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O3dCQUNuQixXQUFXLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQzdDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7NEJBQ1gsSUFBSSxFQUFFLE1BQU0sS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTzs0QkFDM0Msa0JBQWtCLEVBQUUsTUFBTSxLQUFLLE9BQU87eUJBQ3pDLENBQUMsQ0FBQyxDQUNOO3FCQUNKO2lCQUNKO2FBQ0o7U0FDSixDQUFDLENBQUM7SUFDUCxDQUFDOzhHQWxTUSxnQkFBZ0I7a0dBQWhCLGdCQUFnQjs7MkZBQWhCLGdCQUFnQjtrQkFKNUIsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsY0FBYztpQkFDM0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIERpcmVjdGl2ZSwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IG1hcmtlciBhcyBfIH0gZnJvbSAnQGJpZXNiamVyZy9uZ3gtdHJhbnNsYXRlLWV4dHJhY3QtbWFya2VyJztcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IG1hcCwgc3RhcnRXaXRoIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuaW1wb3J0IHsgUGVybWlzc2lvbiB9IGZyb20gJy4uLy4uL2NvbW1vbi9nZW5lcmF0ZWQtdHlwZXMnO1xyXG5pbXBvcnQgeyBEYXRhU2VydmljZSB9IGZyb20gJy4uLy4uL2RhdGEvcHJvdmlkZXJzL2RhdGEuc2VydmljZSc7XHJcbmltcG9ydCB7IEhlYWx0aENoZWNrU2VydmljZSB9IGZyb20gJy4uLy4uL3Byb3ZpZGVycy9oZWFsdGgtY2hlY2svaGVhbHRoLWNoZWNrLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBKb2JRdWV1ZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9wcm92aWRlcnMvam9iLXF1ZXVlL2pvYi1xdWV1ZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTmF2TWVudUJhZGdlLCBOYXZNZW51SXRlbSB9IGZyb20gJy4uLy4uL3Byb3ZpZGVycy9uYXYtYnVpbGRlci9uYXYtYnVpbGRlci10eXBlcyc7XHJcbmltcG9ydCB7IE5hdkJ1aWxkZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vcHJvdmlkZXJzL25hdi1idWlsZGVyL25hdi1idWlsZGVyLnNlcnZpY2UnO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgICBzZWxlY3RvcjogJ1t2ZHJCYXNlTmF2XScsXHJcbn0pXHJcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvZGlyZWN0aXZlLWNsYXNzLXN1ZmZpeFxyXG5leHBvcnQgY2xhc3MgQmFzZU5hdkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByb3RlY3RlZCByb3V0ZTogQWN0aXZhdGVkUm91dGUsXHJcbiAgICAgICAgcHJvdGVjdGVkIHJvdXRlcjogUm91dGVyLFxyXG4gICAgICAgIHB1YmxpYyBuYXZCdWlsZGVyU2VydmljZTogTmF2QnVpbGRlclNlcnZpY2UsXHJcbiAgICAgICAgcHJvdGVjdGVkIGhlYWx0aENoZWNrU2VydmljZTogSGVhbHRoQ2hlY2tTZXJ2aWNlLFxyXG4gICAgICAgIHByb3RlY3RlZCBqb2JRdWV1ZVNlcnZpY2U6IEpvYlF1ZXVlU2VydmljZSxcclxuICAgICAgICBwcm90ZWN0ZWQgZGF0YVNlcnZpY2U6IERhdGFTZXJ2aWNlLFxyXG4gICAgKSB7fVxyXG5cclxuICAgIHByaXZhdGUgdXNlclBlcm1pc3Npb25zOiBzdHJpbmdbXTtcclxuICAgIHByaXZhdGUgc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XHJcblxyXG4gICAgc2hvdWxkRGlzcGxheUxpbmsobWVudUl0ZW06IFBpY2s8TmF2TWVudUl0ZW0sICdyZXF1aXJlc1Blcm1pc3Npb24nPikge1xyXG4gICAgICAgIGlmICghdGhpcy51c2VyUGVybWlzc2lvbnMpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoIW1lbnVJdGVtLnJlcXVpcmVzUGVybWlzc2lvbikge1xyXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHR5cGVvZiBtZW51SXRlbS5yZXF1aXJlc1Blcm1pc3Npb24gPT09ICdzdHJpbmcnKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnVzZXJQZXJtaXNzaW9ucy5pbmNsdWRlcyhtZW51SXRlbS5yZXF1aXJlc1Blcm1pc3Npb24pO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodHlwZW9mIG1lbnVJdGVtLnJlcXVpcmVzUGVybWlzc2lvbiA9PT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgICAgICAgICByZXR1cm4gbWVudUl0ZW0ucmVxdWlyZXNQZXJtaXNzaW9uKHRoaXMudXNlclBlcm1pc3Npb25zKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5kZWZpbmVOYXZNZW51KCk7XHJcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb24gPSB0aGlzLmRhdGFTZXJ2aWNlLmNsaWVudFxyXG4gICAgICAgICAgICAudXNlclN0YXR1cygpXHJcbiAgICAgICAgICAgIC5tYXBTdHJlYW0oKHsgdXNlclN0YXR1cyB9KSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnVzZXJQZXJtaXNzaW9ucyA9IHVzZXJTdGF0dXMucGVybWlzc2lvbnM7XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uRGVzdHJveSgpIHtcclxuICAgICAgICBpZiAodGhpcy5zdWJzY3JpcHRpb24pIHtcclxuICAgICAgICAgICAgdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0Um91dGVyTGluayhpdGVtOiBOYXZNZW51SXRlbSkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLm5hdkJ1aWxkZXJTZXJ2aWNlLmdldFJvdXRlckxpbmsoaXRlbSwgdGhpcy5yb3V0ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBkZWZpbmVOYXZNZW51KCkge1xyXG4gICAgICAgIGZ1bmN0aW9uIGFsbG93KC4uLnBlcm1pc3Npb25zOiBzdHJpbmdbXSk6ICh1c2VyUGVybWlzc2lvbnM6IHN0cmluZ1tdKSA9PiBib29sZWFuIHtcclxuICAgICAgICAgICAgcmV0dXJuIHVzZXJQZXJtaXNzaW9ucyA9PiB7XHJcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IHBlcm1pc3Npb24gb2YgcGVybWlzc2lvbnMpIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAodXNlclBlcm1pc3Npb25zLmluY2x1ZGVzKHBlcm1pc3Npb24pKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMubmF2QnVpbGRlclNlcnZpY2UuZGVmaW5lTmF2TWVudVNlY3Rpb25zKFtcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgcmVxdWlyZXNQZXJtaXNzaW9uOiBhbGxvdyhcclxuICAgICAgICAgICAgICAgICAgICBQZXJtaXNzaW9uLlJlYWRDYXRhbG9nLFxyXG4gICAgICAgICAgICAgICAgICAgIFBlcm1pc3Npb24uUmVhZFByb2R1Y3QsXHJcbiAgICAgICAgICAgICAgICAgICAgUGVybWlzc2lvbi5SZWFkRmFjZXQsXHJcbiAgICAgICAgICAgICAgICAgICAgUGVybWlzc2lvbi5SZWFkQ29sbGVjdGlvbixcclxuICAgICAgICAgICAgICAgICAgICBQZXJtaXNzaW9uLlJlYWRBc3NldCxcclxuICAgICAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgICAgICBpZDogJ2NhdGFsb2cnLFxyXG4gICAgICAgICAgICAgICAgbGFiZWw6IF8oJ25hdi5jYXRhbG9nJyksXHJcbiAgICAgICAgICAgICAgICBpdGVtczogW1xyXG4gICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZXNQZXJtaXNzaW9uOiBhbGxvdyhQZXJtaXNzaW9uLlJlYWRDYXRhbG9nLCBQZXJtaXNzaW9uLlJlYWRQcm9kdWN0KSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6ICdpbnZlbnRvcnknLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogXygnbmF2LmludmVudG9yeScpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpY29uOiAnbGlicmFyeScsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJvdXRlckxpbms6IFsnL2NhdGFsb2cnLCAnaW52ZW50b3J5J10sXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVzUGVybWlzc2lvbjogYWxsb3coUGVybWlzc2lvbi5SZWFkQ2F0YWxvZywgUGVybWlzc2lvbi5SZWFkRmFjZXQpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZDogJ2ZhY2V0cycsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBfKCduYXYuZmFjZXRzJyksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGljb246ICd0YWcnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICByb3V0ZXJMaW5rOiBbJy9jYXRhbG9nJywgJ2ZhY2V0cyddLFxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlc1Blcm1pc3Npb246IGFsbG93KFBlcm1pc3Npb24uUmVhZENhdGFsb2csIFBlcm1pc3Npb24uUmVhZENvbGxlY3Rpb24pLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZDogJ2NvbGxlY3Rpb25zJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IF8oJ25hdi5jb2xsZWN0aW9ucycpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpY29uOiAnZm9sZGVyLW9wZW4nLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICByb3V0ZXJMaW5rOiBbJy9jYXRhbG9nJywgJ2NvbGxlY3Rpb25zJ10sXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVzUGVybWlzc2lvbjogYWxsb3coUGVybWlzc2lvbi5SZWFkQ2F0YWxvZywgUGVybWlzc2lvbi5SZWFkQXNzZXQpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZDogJ2Fzc2V0cycsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBfKCduYXYuYXNzZXRzJyksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGljb246ICdpbWFnZS1nYWxsZXJ5JyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgcm91dGVyTGluazogWycvY2F0YWxvZycsICdhc3NldHMnXSxcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgXSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgaWQ6ICdzYWxlcycsXHJcbiAgICAgICAgICAgICAgICBsYWJlbDogXygnbmF2LnNhbGVzJyksXHJcbiAgICAgICAgICAgICAgICByZXF1aXJlc1Blcm1pc3Npb246IGFsbG93KFBlcm1pc3Npb24uUmVhZE9yZGVyKSxcclxuICAgICAgICAgICAgICAgIGl0ZW1zOiBbXHJcbiAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlc1Blcm1pc3Npb246IGFsbG93KFBlcm1pc3Npb24uUmVhZE9yZGVyKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6ICdvcmRlcnMnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogXygnbmF2Lm9yZGVycycpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICByb3V0ZXJMaW5rOiBbJy9vcmRlcnMnXSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWNvbjogJ3Nob3BwaW5nLWNhcnQnLFxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBdLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBpZDogJ2N1c3RvbWVycycsXHJcbiAgICAgICAgICAgICAgICBsYWJlbDogXygnbmF2LmN1c3RvbWVycycpLFxyXG4gICAgICAgICAgICAgICAgcmVxdWlyZXNQZXJtaXNzaW9uOiBhbGxvdyhQZXJtaXNzaW9uLlJlYWRDdXN0b21lciwgUGVybWlzc2lvbi5SZWFkQ3VzdG9tZXJHcm91cCksXHJcbiAgICAgICAgICAgICAgICBpdGVtczogW1xyXG4gICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZXNQZXJtaXNzaW9uOiBhbGxvdyhQZXJtaXNzaW9uLlJlYWRDdXN0b21lciksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiAnY3VzdG9tZXJzJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IF8oJ25hdi5jdXN0b21lcnMnKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgcm91dGVyTGluazogWycvY3VzdG9tZXInLCAnY3VzdG9tZXJzJ10sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGljb246ICd1c2VyJyxcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZXNQZXJtaXNzaW9uOiBhbGxvdyhQZXJtaXNzaW9uLlJlYWRDdXN0b21lckdyb3VwKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6ICdjdXN0b21lci1ncm91cHMnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogXygnbmF2LmN1c3RvbWVyLWdyb3VwcycpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICByb3V0ZXJMaW5rOiBbJy9jdXN0b21lcicsICdncm91cHMnXSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWNvbjogJ3VzZXJzJyxcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgXSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgaWQ6ICdtYXJrZXRpbmcnLFxyXG4gICAgICAgICAgICAgICAgbGFiZWw6IF8oJ25hdi5tYXJrZXRpbmcnKSxcclxuICAgICAgICAgICAgICAgIHJlcXVpcmVzUGVybWlzc2lvbjogYWxsb3coUGVybWlzc2lvbi5SZWFkUHJvbW90aW9uKSxcclxuICAgICAgICAgICAgICAgIGl0ZW1zOiBbXHJcbiAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlc1Blcm1pc3Npb246IGFsbG93KFBlcm1pc3Npb24uUmVhZFByb21vdGlvbiksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiAncHJvbW90aW9ucycsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBfKCduYXYucHJvbW90aW9ucycpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICByb3V0ZXJMaW5rOiBbJy9tYXJrZXRpbmcnLCAncHJvbW90aW9ucyddLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpY29uOiAnYXN0ZXJpc2snLFxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBdLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBpZDogJ3NldHRpbmdzJyxcclxuICAgICAgICAgICAgICAgIGxhYmVsOiBfKCduYXYuc2V0dGluZ3MnKSxcclxuICAgICAgICAgICAgICAgIGljb246ICdjb2cnLFxyXG4gICAgICAgICAgICAgICAgZGlzcGxheU1vZGU6ICdzZXR0aW5ncycsXHJcbiAgICAgICAgICAgICAgICByZXF1aXJlc1Blcm1pc3Npb246IGFsbG93KFxyXG4gICAgICAgICAgICAgICAgICAgIFBlcm1pc3Npb24uUmVhZFNldHRpbmdzLFxyXG4gICAgICAgICAgICAgICAgICAgIFBlcm1pc3Npb24uUmVhZENoYW5uZWwsXHJcbiAgICAgICAgICAgICAgICAgICAgUGVybWlzc2lvbi5SZWFkQWRtaW5pc3RyYXRvcixcclxuICAgICAgICAgICAgICAgICAgICBQZXJtaXNzaW9uLlJlYWRTaGlwcGluZ01ldGhvZCxcclxuICAgICAgICAgICAgICAgICAgICBQZXJtaXNzaW9uLlJlYWRQYXltZW50TWV0aG9kLFxyXG4gICAgICAgICAgICAgICAgICAgIFBlcm1pc3Npb24uUmVhZFRheENhdGVnb3J5LFxyXG4gICAgICAgICAgICAgICAgICAgIFBlcm1pc3Npb24uUmVhZFRheFJhdGUsXHJcbiAgICAgICAgICAgICAgICAgICAgUGVybWlzc2lvbi5SZWFkQ291bnRyeSxcclxuICAgICAgICAgICAgICAgICAgICBQZXJtaXNzaW9uLlJlYWRab25lLFxyXG4gICAgICAgICAgICAgICAgICAgIFBlcm1pc3Npb24uVXBkYXRlR2xvYmFsU2V0dGluZ3MsXHJcbiAgICAgICAgICAgICAgICApLFxyXG4gICAgICAgICAgICAgICAgY29sbGFwc2libGU6IHRydWUsXHJcbiAgICAgICAgICAgICAgICBjb2xsYXBzZWRCeURlZmF1bHQ6IHRydWUsXHJcbiAgICAgICAgICAgICAgICBpdGVtczogW1xyXG4gICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZXNQZXJtaXNzaW9uOiBhbGxvdyhQZXJtaXNzaW9uLlJlYWRTZWxsZXIpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZDogJ3NlbGxlcnMnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogXygnbmF2LnNlbGxlcnMnKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgcm91dGVyTGluazogWycvc2V0dGluZ3MnLCAnc2VsbGVycyddLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpY29uOiAnc3RvcmUnLFxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlc1Blcm1pc3Npb246IGFsbG93KFBlcm1pc3Npb24uUmVhZENoYW5uZWwpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZDogJ2NoYW5uZWxzJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IF8oJ25hdi5jaGFubmVscycpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICByb3V0ZXJMaW5rOiBbJy9zZXR0aW5ncycsICdjaGFubmVscyddLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpY29uOiAnbGF5ZXJzJyxcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZXNQZXJtaXNzaW9uOiBhbGxvdyhQZXJtaXNzaW9uLlJlYWRBZG1pbmlzdHJhdG9yKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6ICdhZG1pbmlzdHJhdG9ycycsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBfKCduYXYuYWRtaW5pc3RyYXRvcnMnKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgcm91dGVyTGluazogWycvc2V0dGluZ3MnLCAnYWRtaW5pc3RyYXRvcnMnXSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWNvbjogJ2FkbWluaXN0cmF0b3InLFxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlc1Blcm1pc3Npb246IGFsbG93KFBlcm1pc3Npb24uUmVhZEFkbWluaXN0cmF0b3IpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZDogJ3JvbGVzJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IF8oJ25hdi5yb2xlcycpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICByb3V0ZXJMaW5rOiBbJy9zZXR0aW5ncycsICdyb2xlcyddLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpY29uOiAndXNlcnMnLFxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlc1Blcm1pc3Npb246IGFsbG93KFBlcm1pc3Npb24uUmVhZFNoaXBwaW5nTWV0aG9kKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6ICdzaGlwcGluZy1tZXRob2RzJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IF8oJ25hdi5zaGlwcGluZy1tZXRob2RzJyksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJvdXRlckxpbms6IFsnL3NldHRpbmdzJywgJ3NoaXBwaW5nLW1ldGhvZHMnXSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWNvbjogJ3RydWNrJyxcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZXNQZXJtaXNzaW9uOiBhbGxvdyhQZXJtaXNzaW9uLlJlYWRQYXltZW50TWV0aG9kKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6ICdwYXltZW50LW1ldGhvZHMnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogXygnbmF2LnBheW1lbnQtbWV0aG9kcycpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICByb3V0ZXJMaW5rOiBbJy9zZXR0aW5ncycsICdwYXltZW50LW1ldGhvZHMnXSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWNvbjogJ2NyZWRpdC1jYXJkJyxcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZXNQZXJtaXNzaW9uOiBhbGxvdyhQZXJtaXNzaW9uLlJlYWRUYXhDYXRlZ29yeSksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiAndGF4LWNhdGVnb3JpZXMnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogXygnbmF2LnRheC1jYXRlZ29yaWVzJyksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJvdXRlckxpbms6IFsnL3NldHRpbmdzJywgJ3RheC1jYXRlZ29yaWVzJ10sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGljb246ICd2aWV3LWxpc3QnLFxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlc1Blcm1pc3Npb246IGFsbG93KFBlcm1pc3Npb24uUmVhZFRheFJhdGUpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZDogJ3RheC1yYXRlcycsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBfKCduYXYudGF4LXJhdGVzJyksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJvdXRlckxpbms6IFsnL3NldHRpbmdzJywgJ3RheC1yYXRlcyddLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpY29uOiAnY2FsY3VsYXRvcicsXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVzUGVybWlzc2lvbjogYWxsb3coUGVybWlzc2lvbi5SZWFkQ291bnRyeSksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiAnY291bnRyaWVzJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IF8oJ25hdi5jb3VudHJpZXMnKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgcm91dGVyTGluazogWycvc2V0dGluZ3MnLCAnY291bnRyaWVzJ10sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGljb246ICdmbGFnJyxcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZXNQZXJtaXNzaW9uOiBhbGxvdyhQZXJtaXNzaW9uLlJlYWRab25lKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6ICd6b25lcycsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBfKCduYXYuem9uZXMnKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgcm91dGVyTGluazogWycvc2V0dGluZ3MnLCAnem9uZXMnXSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWNvbjogJ3dvcmxkJyxcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZXNQZXJtaXNzaW9uOiBhbGxvdyhQZXJtaXNzaW9uLlVwZGF0ZUdsb2JhbFNldHRpbmdzKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6ICdnbG9iYWwtc2V0dGluZ3MnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogXygnbmF2Lmdsb2JhbC1zZXR0aW5ncycpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICByb3V0ZXJMaW5rOiBbJy9zZXR0aW5ncycsICdnbG9iYWwtc2V0dGluZ3MnXSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWNvbjogJ2NvZycsXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIF0sXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIGlkOiAnc3lzdGVtJyxcclxuICAgICAgICAgICAgICAgIGxhYmVsOiBfKCduYXYuc3lzdGVtJyksXHJcbiAgICAgICAgICAgICAgICBpY29uOiAnY29tcHV0ZXInLFxyXG4gICAgICAgICAgICAgICAgZGlzcGxheU1vZGU6ICdzZXR0aW5ncycsXHJcbiAgICAgICAgICAgICAgICByZXF1aXJlc1Blcm1pc3Npb246IFBlcm1pc3Npb24uUmVhZFN5c3RlbSxcclxuICAgICAgICAgICAgICAgIGNvbGxhcHNpYmxlOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgY29sbGFwc2VkQnlEZWZhdWx0OiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgaXRlbXM6IFtcclxuICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiAnam9iLXF1ZXVlJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IF8oJ25hdi5qb2ItcXVldWUnKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgcm91dGVyTGluazogWycvc3lzdGVtJywgJ2pvYnMnXSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWNvbjogJ3RpY2stY2hhcnQnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXNCYWRnZTogdGhpcy5qb2JRdWV1ZVNlcnZpY2UuYWN0aXZlSm9icyQucGlwZShcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0V2l0aChbXSksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgam9icyA9PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogam9icy5sZW5ndGggPT09IDAgPyAnbm9uZScgOiAnaW5mbycsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9wYWdhdGVUb1NlY3Rpb246IGpvYnMubGVuZ3RoID4gMCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBhcyBOYXZNZW51QmFkZ2UpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgKSxcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6ICdzeXN0ZW0tc3RhdHVzJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IF8oJ25hdi5zeXN0ZW0tc3RhdHVzJyksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJvdXRlckxpbms6IFsnL3N5c3RlbScsICdzeXN0ZW0tc3RhdHVzJ10sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGljb246ICdyYWNrLXNlcnZlcicsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1c0JhZGdlOiB0aGlzLmhlYWx0aENoZWNrU2VydmljZS5zdGF0dXMkLnBpcGUoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXAoc3RhdHVzID0+ICh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogc3RhdHVzID09PSAnb2snID8gJ3N1Y2Nlc3MnIDogJ2Vycm9yJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9wYWdhdGVUb1NlY3Rpb246IHN0YXR1cyA9PT0gJ2Vycm9yJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgKSxcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgXSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICBdKTtcclxuICAgIH1cclxufVxyXG4iXX0=
278
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1uYXYuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb3JlL3NyYy9jb21wb25lbnRzL2Jhc2UtbmF2L2Jhc2UtbmF2LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWEsU0FBUyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUV4RSxPQUFPLEVBQUUsTUFBTSxJQUFJLENBQUMsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBRXRFLE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFaEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDhCQUE4QixDQUFDOzs7Ozs7O0FBVTFELGtFQUFrRTtBQUNsRSxNQUFNLE9BQU8sZ0JBQWdCO0lBQ3pCLFlBQ2MsS0FBcUIsRUFDckIsTUFBYyxFQUNqQixpQkFBb0MsRUFDakMsa0JBQXNDLEVBQ3RDLGVBQWdDLEVBQ2hDLFdBQXdCO1FBTHhCLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQ3JCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDakIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNqQyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQ3RDLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtJQUNuQyxDQUFDO0lBS0osaUJBQWlCLENBQUMsUUFBaUQ7UUFDL0QsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUU7WUFDdkIsT0FBTyxLQUFLLENBQUM7U0FDaEI7UUFDRCxJQUFJLENBQUMsUUFBUSxDQUFDLGtCQUFrQixFQUFFO1lBQzlCLE9BQU8sSUFBSSxDQUFDO1NBQ2Y7UUFDRCxJQUFJLE9BQU8sUUFBUSxDQUFDLGtCQUFrQixLQUFLLFFBQVEsRUFBRTtZQUNqRCxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1NBQ3JFO1FBQ0QsSUFBSSxPQUFPLFFBQVEsQ0FBQyxrQkFBa0IsS0FBSyxVQUFVLEVBQUU7WUFDbkQsT0FBTyxRQUFRLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1NBQzVEO0lBQ0wsQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU07YUFDdEMsVUFBVSxFQUFFO2FBQ1osU0FBUyxDQUFDLENBQUMsRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUFFO1lBQzFCLElBQUksQ0FBQyxlQUFlLEdBQUcsVUFBVSxDQUFDLFdBQVcsQ0FBQztRQUNsRCxDQUFDLENBQUM7YUFDRCxTQUFTLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsV0FBVztRQUNQLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtZQUNuQixJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ25DO0lBQ0wsQ0FBQztJQUVELGFBQWEsQ0FBQyxJQUFpQjtRQUMzQixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBRU8sYUFBYTtRQUNqQixTQUFTLEtBQUssQ0FBQyxHQUFHLFdBQXFCO1lBQ25DLE9BQU8sZUFBZSxDQUFDLEVBQUU7Z0JBQ3JCLEtBQUssTUFBTSxVQUFVLElBQUksV0FBVyxFQUFFO29CQUNsQyxJQUFJLGVBQWUsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLEVBQUU7d0JBQ3RDLE9BQU8sSUFBSSxDQUFDO3FCQUNmO2lCQUNKO2dCQUNELE9BQU8sS0FBSyxDQUFDO1lBQ2pCLENBQUMsQ0FBQztRQUNOLENBQUM7UUFFRCxJQUFJLENBQUMsaUJBQWlCLENBQUMscUJBQXFCLENBQUM7WUFDekM7Z0JBQ0ksa0JBQWtCLEVBQUUsS0FBSyxDQUNyQixVQUFVLENBQUMsV0FBVyxFQUN0QixVQUFVLENBQUMsV0FBVyxFQUN0QixVQUFVLENBQUMsU0FBUyxFQUNwQixVQUFVLENBQUMsY0FBYyxFQUN6QixVQUFVLENBQUMsU0FBUyxDQUN2QjtnQkFDRCxFQUFFLEVBQUUsU0FBUztnQkFDYixLQUFLLEVBQUUsQ0FBQyxDQUFDLGFBQWEsQ0FBQztnQkFDdkIsS0FBSyxFQUFFO29CQUNIO3dCQUNJLGtCQUFrQixFQUFFLEtBQUssQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFFLFVBQVUsQ0FBQyxXQUFXLENBQUM7d0JBQ3pFLEVBQUUsRUFBRSxXQUFXO3dCQUNmLEtBQUssRUFBRSxDQUFDLENBQUMsZUFBZSxDQUFDO3dCQUN6QixJQUFJLEVBQUUsU0FBUzt3QkFDZixVQUFVLEVBQUUsQ0FBQyxVQUFVLEVBQUUsV0FBVyxDQUFDO3FCQUN4QztvQkFDRDt3QkFDSSxrQkFBa0IsRUFBRSxLQUFLLENBQUMsVUFBVSxDQUFDLFdBQVcsRUFBRSxVQUFVLENBQUMsU0FBUyxDQUFDO3dCQUN2RSxFQUFFLEVBQUUsUUFBUTt3QkFDWixLQUFLLEVBQUUsQ0FBQyxDQUFDLFlBQVksQ0FBQzt3QkFDdEIsSUFBSSxFQUFFLEtBQUs7d0JBQ1gsVUFBVSxFQUFFLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBQztxQkFDckM7b0JBQ0Q7d0JBQ0ksa0JBQWtCLEVBQUUsS0FBSyxDQUFDLFVBQVUsQ0FBQyxXQUFXLEVBQUUsVUFBVSxDQUFDLGNBQWMsQ0FBQzt3QkFDNUUsRUFBRSxFQUFFLGFBQWE7d0JBQ2pCLEtBQUssRUFBRSxDQUFDLENBQUMsaUJBQWlCLENBQUM7d0JBQzNCLElBQUksRUFBRSxhQUFhO3dCQUNuQixVQUFVLEVBQUUsQ0FBQyxVQUFVLEVBQUUsYUFBYSxDQUFDO3FCQUMxQztvQkFDRDt3QkFDSSxrQkFBa0IsRUFBRSxLQUFLLENBQUMsVUFBVSxDQUFDLFdBQVcsRUFBRSxVQUFVLENBQUMsU0FBUyxDQUFDO3dCQUN2RSxFQUFFLEVBQUUsUUFBUTt3QkFDWixLQUFLLEVBQUUsQ0FBQyxDQUFDLFlBQVksQ0FBQzt3QkFDdEIsSUFBSSxFQUFFLGVBQWU7d0JBQ3JCLFVBQVUsRUFBRSxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUM7cUJBQ3JDO2lCQUNKO2FBQ0o7WUFDRDtnQkFDSSxFQUFFLEVBQUUsT0FBTztnQkFDWCxLQUFLLEVBQUUsQ0FBQyxDQUFDLFdBQVcsQ0FBQztnQkFDckIsa0JBQWtCLEVBQUUsS0FBSyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUM7Z0JBQy9DLEtBQUssRUFBRTtvQkFDSDt3QkFDSSxrQkFBa0IsRUFBRSxLQUFLLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQzt3QkFDL0MsRUFBRSxFQUFFLFFBQVE7d0JBQ1osS0FBSyxFQUFFLENBQUMsQ0FBQyxZQUFZLENBQUM7d0JBQ3RCLFVBQVUsRUFBRSxDQUFDLFNBQVMsQ0FBQzt3QkFDdkIsSUFBSSxFQUFFLGVBQWU7cUJBQ3hCO2lCQUNKO2FBQ0o7WUFDRDtnQkFDSSxFQUFFLEVBQUUsV0FBVztnQkFDZixLQUFLLEVBQUUsQ0FBQyxDQUFDLGVBQWUsQ0FBQztnQkFDekIsa0JBQWtCLEVBQUUsS0FBSyxDQUFDLFVBQVUsQ0FBQyxZQUFZLEVBQUUsVUFBVSxDQUFDLGlCQUFpQixDQUFDO2dCQUNoRixLQUFLLEVBQUU7b0JBQ0g7d0JBQ0ksa0JBQWtCLEVBQUUsS0FBSyxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUM7d0JBQ2xELEVBQUUsRUFBRSxXQUFXO3dCQUNmLEtBQUssRUFBRSxDQUFDLENBQUMsZUFBZSxDQUFDO3dCQUN6QixVQUFVLEVBQUUsQ0FBQyxXQUFXLEVBQUUsV0FBVyxDQUFDO3dCQUN0QyxJQUFJLEVBQUUsTUFBTTtxQkFDZjtvQkFDRDt3QkFDSSxrQkFBa0IsRUFBRSxLQUFLLENBQUMsVUFBVSxDQUFDLGlCQUFpQixDQUFDO3dCQUN2RCxFQUFFLEVBQUUsaUJBQWlCO3dCQUNyQixLQUFLLEVBQUUsQ0FBQyxDQUFDLHFCQUFxQixDQUFDO3dCQUMvQixVQUFVLEVBQUUsQ0FBQyxXQUFXLEVBQUUsUUFBUSxDQUFDO3dCQUNuQyxJQUFJLEVBQUUsT0FBTztxQkFDaEI7aUJBQ0o7YUFDSjtZQUNEO2dCQUNJLEVBQUUsRUFBRSxXQUFXO2dCQUNmLEtBQUssRUFBRSxDQUFDLENBQUMsZUFBZSxDQUFDO2dCQUN6QixrQkFBa0IsRUFBRSxLQUFLLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQztnQkFDbkQsS0FBSyxFQUFFO29CQUNIO3dCQUNJLGtCQUFrQixFQUFFLEtBQUssQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDO3dCQUNuRCxFQUFFLEVBQUUsWUFBWTt3QkFDaEIsS0FBSyxFQUFFLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQzt3QkFDMUIsVUFBVSxFQUFFLENBQUMsWUFBWSxFQUFFLFlBQVksQ0FBQzt3QkFDeEMsSUFBSSxFQUFFLFVBQVU7cUJBQ25CO2lCQUNKO2FBQ0o7WUFDRDtnQkFDSSxFQUFFLEVBQUUsVUFBVTtnQkFDZCxLQUFLLEVBQUUsQ0FBQyxDQUFDLGNBQWMsQ0FBQztnQkFDeEIsSUFBSSxFQUFFLEtBQUs7Z0JBQ1gsV0FBVyxFQUFFLFVBQVU7Z0JBQ3ZCLGtCQUFrQixFQUFFLEtBQUssQ0FDckIsVUFBVSxDQUFDLFlBQVksRUFDdkIsVUFBVSxDQUFDLFdBQVcsRUFDdEIsVUFBVSxDQUFDLGlCQUFpQixFQUM1QixVQUFVLENBQUMsa0JBQWtCLEVBQzdCLFVBQVUsQ0FBQyxpQkFBaUIsRUFDNUIsVUFBVSxDQUFDLGVBQWUsRUFDMUIsVUFBVSxDQUFDLFdBQVcsRUFDdEIsVUFBVSxDQUFDLFdBQVcsRUFDdEIsVUFBVSxDQUFDLFFBQVEsRUFDbkIsVUFBVSxDQUFDLG9CQUFvQixDQUNsQztnQkFDRCxXQUFXLEVBQUUsSUFBSTtnQkFDakIsa0JBQWtCLEVBQUUsSUFBSTtnQkFDeEIsS0FBSyxFQUFFO29CQUNIO3dCQUNJLGtCQUFrQixFQUFFLEtBQUssQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDO3dCQUNoRCxFQUFFLEVBQUUsU0FBUzt3QkFDYixLQUFLLEVBQUUsQ0FBQyxDQUFDLGFBQWEsQ0FBQzt3QkFDdkIsVUFBVSxFQUFFLENBQUMsV0FBVyxFQUFFLFNBQVMsQ0FBQzt3QkFDcEMsSUFBSSxFQUFFLE9BQU87cUJBQ2hCO29CQUNEO3dCQUNJLGtCQUFrQixFQUFFLEtBQUssQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDO3dCQUNqRCxFQUFFLEVBQUUsVUFBVTt3QkFDZCxLQUFLLEVBQUUsQ0FBQyxDQUFDLGNBQWMsQ0FBQzt3QkFDeEIsVUFBVSxFQUFFLENBQUMsV0FBVyxFQUFFLFVBQVUsQ0FBQzt3QkFDckMsSUFBSSxFQUFFLFFBQVE7cUJBQ2pCO29CQUNEO3dCQUNJLGtCQUFrQixFQUFFLEtBQUssQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUM7d0JBQ3ZELEVBQUUsRUFBRSxnQkFBZ0I7d0JBQ3BCLEtBQUssRUFBRSxDQUFDLENBQUMsb0JBQW9CLENBQUM7d0JBQzlCLFVBQVUsRUFBRSxDQUFDLFdBQVcsRUFBRSxnQkFBZ0IsQ0FBQzt3QkFDM0MsSUFBSSxFQUFFLGVBQWU7cUJBQ3hCO29CQUNEO3dCQUNJLGtCQUFrQixFQUFFLEtBQUssQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUM7d0JBQ3ZELEVBQUUsRUFBRSxPQUFPO3dCQUNYLEtBQUssRUFBRSxDQUFDLENBQUMsV0FBVyxDQUFDO3dCQUNyQixVQUFVLEVBQUUsQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDO3dCQUNsQyxJQUFJLEVBQUUsT0FBTztxQkFDaEI7b0JBQ0Q7d0JBQ0ksa0JBQWtCLEVBQUUsS0FBSyxDQUFDLFVBQVUsQ0FBQyxrQkFBa0IsQ0FBQzt3QkFDeEQsRUFBRSxFQUFFLGtCQUFrQjt3QkFDdEIsS0FBSyxFQUFFLENBQUMsQ0FBQyxzQkFBc0IsQ0FBQzt3QkFDaEMsVUFBVSxFQUFFLENBQUMsV0FBVyxFQUFFLGtCQUFrQixDQUFDO3dCQUM3QyxJQUFJLEVBQUUsT0FBTztxQkFDaEI7b0JBQ0Q7d0JBQ0ksa0JBQWtCLEVBQUUsS0FBSyxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQzt3QkFDdkQsRUFBRSxFQUFFLGlCQUFpQjt3QkFDckIsS0FBSyxFQUFFLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQzt3QkFDL0IsVUFBVSxFQUFFLENBQUMsV0FBVyxFQUFFLGlCQUFpQixDQUFDO3dCQUM1QyxJQUFJLEVBQUUsYUFBYTtxQkFDdEI7b0JBQ0Q7d0JBQ0ksa0JBQWtCLEVBQUUsS0FBSyxDQUFDLFVBQVUsQ0FBQyxlQUFlLENBQUM7d0JBQ3JELEVBQUUsRUFBRSxnQkFBZ0I7d0JBQ3BCLEtBQUssRUFBRSxDQUFDLENBQUMsb0JBQW9CLENBQUM7d0JBQzlCLFVBQVUsRUFBRSxDQUFDLFdBQVcsRUFBRSxnQkFBZ0IsQ0FBQzt3QkFDM0MsSUFBSSxFQUFFLFdBQVc7cUJBQ3BCO29CQUNEO3dCQUNJLGtCQUFrQixFQUFFLEtBQUssQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDO3dCQUNqRCxFQUFFLEVBQUUsV0FBVzt3QkFDZixLQUFLLEVBQUUsQ0FBQyxDQUFDLGVBQWUsQ0FBQzt3QkFDekIsVUFBVSxFQUFFLENBQUMsV0FBVyxFQUFFLFdBQVcsQ0FBQzt3QkFDdEMsSUFBSSxFQUFFLFlBQVk7cUJBQ3JCO29CQUNEO3dCQUNJLGtCQUFrQixFQUFFLEtBQUssQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDO3dCQUNqRCxFQUFFLEVBQUUsV0FBVzt3QkFDZixLQUFLLEVBQUUsQ0FBQyxDQUFDLGVBQWUsQ0FBQzt3QkFDekIsVUFBVSxFQUFFLENBQUMsV0FBVyxFQUFFLFdBQVcsQ0FBQzt3QkFDdEMsSUFBSSxFQUFFLE1BQU07cUJBQ2Y7b0JBQ0Q7d0JBQ0ksa0JBQWtCLEVBQUUsS0FBSyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUM7d0JBQzlDLEVBQUUsRUFBRSxPQUFPO3dCQUNYLEtBQUssRUFBRSxDQUFDLENBQUMsV0FBVyxDQUFDO3dCQUNyQixVQUFVLEVBQUUsQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDO3dCQUNsQyxJQUFJLEVBQUUsT0FBTztxQkFDaEI7b0JBQ0Q7d0JBQ0ksa0JBQWtCLEVBQUUsS0FBSyxDQUFDLFVBQVUsQ0FBQyxvQkFBb0IsQ0FBQzt3QkFDMUQsRUFBRSxFQUFFLGlCQUFpQjt3QkFDckIsS0FBSyxFQUFFLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQzt3QkFDL0IsVUFBVSxFQUFFLENBQUMsV0FBVyxFQUFFLGlCQUFpQixDQUFDO3dCQUM1QyxJQUFJLEVBQUUsS0FBSztxQkFDZDtpQkFDSjthQUNKO1lBQ0Q7Z0JBQ0ksRUFBRSxFQUFFLFFBQVE7Z0JBQ1osS0FBSyxFQUFFLENBQUMsQ0FBQyxZQUFZLENBQUM7Z0JBQ3RCLElBQUksRUFBRSxVQUFVO2dCQUNoQixXQUFXLEVBQUUsVUFBVTtnQkFDdkIsa0JBQWtCLEVBQUUsVUFBVSxDQUFDLFVBQVU7Z0JBQ3pDLFdBQVcsRUFBRSxJQUFJO2dCQUNqQixrQkFBa0IsRUFBRSxJQUFJO2dCQUN4QixLQUFLLEVBQUU7b0JBQ0g7d0JBQ0ksRUFBRSxFQUFFLFdBQVc7d0JBQ2YsS0FBSyxFQUFFLENBQUMsQ0FBQyxlQUFlLENBQUM7d0JBQ3pCLFVBQVUsRUFBRSxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUM7d0JBQy9CLElBQUksRUFBRSxZQUFZO3dCQUNsQixXQUFXLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUM5QyxTQUFTLENBQUMsRUFBRSxDQUFDLEVBQ2IsR0FBRyxDQUNDLElBQUksQ0FBQyxFQUFFLENBQ0gsQ0FBQzs0QkFDRyxJQUFJLEVBQUUsSUFBSSxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTTs0QkFDekMsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDO3lCQUNyQixDQUFBLENBQ3pCLENBQ0o7cUJBQ0o7b0JBQ0Q7d0JBQ0ksRUFBRSxFQUFFLGVBQWU7d0JBQ25CLEtBQUssRUFBRSxDQUFDLENBQUMsbUJBQW1CLENBQUM7d0JBQzdCLFVBQVUsRUFBRSxDQUFDLFNBQVMsRUFBRSxlQUFlLENBQUM7d0JBQ3hDLElBQUksRUFBRSxhQUFhO3dCQUNuQixXQUFXLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQzdDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7NEJBQ1gsSUFBSSxFQUFFLE1BQU0sS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTzs0QkFDM0Msa0JBQWtCLEVBQUUsTUFBTSxLQUFLLE9BQU87eUJBQ3pDLENBQUMsQ0FBQyxDQUNOO3FCQUNKO2lCQUNKO2FBQ0o7U0FDSixDQUFDLENBQUM7SUFDUCxDQUFDOzhHQWxTUSxnQkFBZ0I7a0dBQWhCLGdCQUFnQjs7MkZBQWhCLGdCQUFnQjtrQkFKNUIsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsY0FBYztpQkFDM0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIERpcmVjdGl2ZSwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgbWFya2VyIGFzIF8gfSBmcm9tICdAYmllc2JqZXJnL25neC10cmFuc2xhdGUtZXh0cmFjdC1tYXJrZXInO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAsIHN0YXJ0V2l0aCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgUGVybWlzc2lvbiB9IGZyb20gJy4uLy4uL2NvbW1vbi9nZW5lcmF0ZWQtdHlwZXMnO1xuaW1wb3J0IHsgRGF0YVNlcnZpY2UgfSBmcm9tICcuLi8uLi9kYXRhL3Byb3ZpZGVycy9kYXRhLnNlcnZpY2UnO1xuaW1wb3J0IHsgSGVhbHRoQ2hlY2tTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vcHJvdmlkZXJzL2hlYWx0aC1jaGVjay9oZWFsdGgtY2hlY2suc2VydmljZSc7XG5pbXBvcnQgeyBKb2JRdWV1ZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9wcm92aWRlcnMvam9iLXF1ZXVlL2pvYi1xdWV1ZS5zZXJ2aWNlJztcbmltcG9ydCB7IE5hdk1lbnVCYWRnZSwgTmF2TWVudUl0ZW0gfSBmcm9tICcuLi8uLi9wcm92aWRlcnMvbmF2LWJ1aWxkZXIvbmF2LWJ1aWxkZXItdHlwZXMnO1xuaW1wb3J0IHsgTmF2QnVpbGRlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9wcm92aWRlcnMvbmF2LWJ1aWxkZXIvbmF2LWJ1aWxkZXIuc2VydmljZSc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW3ZkckJhc2VOYXZdJyxcbn0pXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2RpcmVjdGl2ZS1jbGFzcy1zdWZmaXhcbmV4cG9ydCBjbGFzcyBCYXNlTmF2Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcm90ZWN0ZWQgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgICAgICBwcm90ZWN0ZWQgcm91dGVyOiBSb3V0ZXIsXG4gICAgICAgIHB1YmxpYyBuYXZCdWlsZGVyU2VydmljZTogTmF2QnVpbGRlclNlcnZpY2UsXG4gICAgICAgIHByb3RlY3RlZCBoZWFsdGhDaGVja1NlcnZpY2U6IEhlYWx0aENoZWNrU2VydmljZSxcbiAgICAgICAgcHJvdGVjdGVkIGpvYlF1ZXVlU2VydmljZTogSm9iUXVldWVTZXJ2aWNlLFxuICAgICAgICBwcm90ZWN0ZWQgZGF0YVNlcnZpY2U6IERhdGFTZXJ2aWNlLFxuICAgICkge31cblxuICAgIHByaXZhdGUgdXNlclBlcm1pc3Npb25zOiBzdHJpbmdbXTtcbiAgICBwcml2YXRlIHN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gICAgc2hvdWxkRGlzcGxheUxpbmsobWVudUl0ZW06IFBpY2s8TmF2TWVudUl0ZW0sICdyZXF1aXJlc1Blcm1pc3Npb24nPikge1xuICAgICAgICBpZiAoIXRoaXMudXNlclBlcm1pc3Npb25zKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFtZW51SXRlbS5yZXF1aXJlc1Blcm1pc3Npb24pIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgbWVudUl0ZW0ucmVxdWlyZXNQZXJtaXNzaW9uID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMudXNlclBlcm1pc3Npb25zLmluY2x1ZGVzKG1lbnVJdGVtLnJlcXVpcmVzUGVybWlzc2lvbik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiBtZW51SXRlbS5yZXF1aXJlc1Blcm1pc3Npb24gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIHJldHVybiBtZW51SXRlbS5yZXF1aXJlc1Blcm1pc3Npb24odGhpcy51c2VyUGVybWlzc2lvbnMpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGVmaW5lTmF2TWVudSgpO1xuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IHRoaXMuZGF0YVNlcnZpY2UuY2xpZW50XG4gICAgICAgICAgICAudXNlclN0YXR1cygpXG4gICAgICAgICAgICAubWFwU3RyZWFtKCh7IHVzZXJTdGF0dXMgfSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMudXNlclBlcm1pc3Npb25zID0gdXNlclN0YXR1cy5wZXJtaXNzaW9ucztcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIGlmICh0aGlzLnN1YnNjcmlwdGlvbikge1xuICAgICAgICAgICAgdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldFJvdXRlckxpbmsoaXRlbTogTmF2TWVudUl0ZW0pIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubmF2QnVpbGRlclNlcnZpY2UuZ2V0Um91dGVyTGluayhpdGVtLCB0aGlzLnJvdXRlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGRlZmluZU5hdk1lbnUoKSB7XG4gICAgICAgIGZ1bmN0aW9uIGFsbG93KC4uLnBlcm1pc3Npb25zOiBzdHJpbmdbXSk6ICh1c2VyUGVybWlzc2lvbnM6IHN0cmluZ1tdKSA9PiBib29sZWFuIHtcbiAgICAgICAgICAgIHJldHVybiB1c2VyUGVybWlzc2lvbnMgPT4ge1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgcGVybWlzc2lvbiBvZiBwZXJtaXNzaW9ucykge1xuICAgICAgICAgICAgICAgICAgICBpZiAodXNlclBlcm1pc3Npb25zLmluY2x1ZGVzKHBlcm1pc3Npb24pKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5uYXZCdWlsZGVyU2VydmljZS5kZWZpbmVOYXZNZW51U2VjdGlvbnMoW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHJlcXVpcmVzUGVybWlzc2lvbjogYWxsb3coXG4gICAgICAgICAgICAgICAgICAgIFBlcm1pc3Npb24uUmVhZENhdGFsb2csXG4gICAgICAgICAgICAgICAgICAgIFBlcm1pc3Npb24uUmVhZFByb2R1Y3QsXG4gICAgICAgICAgICAgICAgICAgIFBlcm1pc3Npb24uUmVhZEZhY2V0LFxuICAgICAgICAgICAgICAgICAgICBQZXJtaXNzaW9uLlJlYWRDb2xsZWN0aW9uLFxuICAgICAgICAgICAgICAgICAgICBQZXJtaXNzaW9uLlJlYWRBc3NldCxcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgIGlkOiAnY2F0YWxvZycsXG4gICAgICAgICAgICAgICAgbGFiZWw6IF8oJ25hdi5jYXRhbG9nJyksXG4gICAgICAgICAgICAgICAgaXRlbXM6IFtcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZXNQZXJtaXNzaW9uOiBhbGxvdyhQZXJtaXNzaW9uLlJlYWRDYXRhbG9nLCBQZXJtaXNzaW9uLlJlYWRQcm9kdWN0KSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiAnaW52ZW50b3J5JyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBfKCduYXYuaW52ZW50b3J5JyksXG4gICAgICAgICAgICAgICAgICAgICAgICBpY29uOiAnbGlicmFyeScsXG4gICAgICAgICAgICAgICAgICAgICAgICByb3V0ZXJMaW5rOiBbJy9jYXRhbG9nJywgJ2ludmVudG9yeSddLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlc1Blcm1pc3Npb246IGFsbG93KFBlcm1pc3Npb24uUmVhZENhdGFsb2csIFBlcm1pc3Npb24uUmVhZEZhY2V0KSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiAnZmFjZXRzJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBfKCduYXYuZmFjZXRzJyksXG4gICAgICAgICAgICAgICAgICAgICAgICBpY29uOiAndGFnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJvdXRlckxpbms6IFsnL2NhdGFsb2cnLCAnZmFjZXRzJ10sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVzUGVybWlzc2lvbjogYWxsb3coUGVybWlzc2lvbi5SZWFkQ2F0YWxvZywgUGVybWlzc2lvbi5SZWFkQ29sbGVjdGlvbiksXG4gICAgICAgICAgICAgICAgICAgICAgICBpZDogJ2NvbGxlY3Rpb25zJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBfKCduYXYuY29sbGVjdGlvbnMnKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGljb246ICdmb2xkZXItb3BlbicsXG4gICAgICAgICAgICAgICAgICAgICAgICByb3V0ZXJMaW5rOiBbJy9jYXRhbG9nJywgJ2NvbGxlY3Rpb25zJ10sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVzUGVybWlzc2lvbjogYWxsb3coUGVybWlzc2lvbi5SZWFkQ2F0YWxvZywgUGVybWlzc2lvbi5SZWFkQXNzZXQpLFxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6ICdhc3NldHMnLFxuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IF8oJ25hdi5hc3NldHMnKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGljb246ICdpbWFnZS1nYWxsZXJ5JyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJvdXRlckxpbms6IFsnL2NhdGFsb2cnLCAnYXNzZXRzJ10sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgaWQ6ICdzYWxlcycsXG4gICAgICAgICAgICAgICAgbGFiZWw6IF8oJ25hdi5zYWxlcycpLFxuICAgICAgICAgICAgICAgIHJlcXVpcmVzUGVybWlzc2lvbjogYWxsb3coUGVybWlzc2lvbi5SZWFkT3JkZXIpLFxuICAgICAgICAgICAgICAgIGl0ZW1zOiBbXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVzUGVybWlzc2lvbjogYWxsb3coUGVybWlzc2lvbi5SZWFkT3JkZXIpLFxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6ICdvcmRlcnMnLFxuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IF8oJ25hdi5vcmRlcnMnKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJvdXRlckxpbms6IFsnL29yZGVycyddLFxuICAgICAgICAgICAgICAgICAgICAgICAgaWNvbjogJ3Nob3BwaW5nLWNhcnQnLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGlkOiAnY3VzdG9tZXJzJyxcbiAgICAgICAgICAgICAgICBsYWJlbDogXygnbmF2LmN1c3RvbWVycycpLFxuICAgICAgICAgICAgICAgIHJlcXVpcmVzUGVybWlzc2lvbjogYWxsb3coUGVybWlzc2lvbi5SZWFkQ3VzdG9tZXIsIFBlcm1pc3Npb24uUmVhZEN1c3RvbWVyR3JvdXApLFxuICAgICAgICAgICAgICAgIGl0ZW1zOiBbXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVzUGVybWlzc2lvbjogYWxsb3coUGVybWlzc2lvbi5SZWFkQ3VzdG9tZXIpLFxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6ICdjdXN0b21lcnMnLFxuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IF8oJ25hdi5jdXN0b21lcnMnKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJvdXRlckxpbms6IFsnL2N1c3RvbWVyJywgJ2N1c3RvbWVycyddLFxuICAgICAgICAgICAgICAgICAgICAgICAgaWNvbjogJ3VzZXInLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlc1Blcm1pc3Npb246IGFsbG93KFBlcm1pc3Npb24uUmVhZEN1c3RvbWVyR3JvdXApLFxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6ICdjdXN0b21lci1ncm91cHMnLFxuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IF8oJ25hdi5jdXN0b21lci1ncm91cHMnKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJvdXRlckxpbms6IFsnL2N1c3RvbWVyJywgJ2dyb3VwcyddLFxuICAgICAgICAgICAgICAgICAgICAgICAgaWNvbjogJ3VzZXJzJyxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBpZDogJ21hcmtldGluZycsXG4gICAgICAgICAgICAgICAgbGFiZWw6IF8oJ25hdi5tYXJrZXRpbmcnKSxcbiAgICAgICAgICAgICAgICByZXF1aXJlc1Blcm1pc3Npb246IGFsbG93KFBlcm1pc3Npb24uUmVhZFByb21vdGlvbiksXG4gICAgICAgICAgICAgICAgaXRlbXM6IFtcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZXNQZXJtaXNzaW9uOiBhbGxvdyhQZXJtaXNzaW9uLlJlYWRQcm9tb3Rpb24pLFxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6ICdwcm9tb3Rpb25zJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBfKCduYXYucHJvbW90aW9ucycpLFxuICAgICAgICAgICAgICAgICAgICAgICAgcm91dGVyTGluazogWycvbWFya2V0aW5nJywgJ3Byb21vdGlvbnMnXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGljb246ICdhc3RlcmlzaycsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgaWQ6ICdzZXR0aW5ncycsXG4gICAgICAgICAgICAgICAgbGFiZWw6IF8oJ25hdi5zZXR0aW5ncycpLFxuICAgICAgICAgICAgICAgIGljb246ICdjb2cnLFxuICAgICAgICAgICAgICAgIGRpc3BsYXlNb2RlOiAnc2V0dGluZ3MnLFxuICAgICAgICAgICAgICAgIHJlcXVpcmVzUGVybWlzc2lvbjogYWxsb3coXG4gICAgICAgICAgICAgICAgICAgIFBlcm1pc3Npb24uUmVhZFNldHRpbmdzLFxuICAgICAgICAgICAgICAgICAgICBQZXJtaXNzaW9uLlJlYWRDaGFubmVsLFxuICAgICAgICAgICAgICAgICAgICBQZXJtaXNzaW9uLlJlYWRBZG1pbmlzdHJhdG9yLFxuICAgICAgICAgICAgICAgICAgICBQZXJtaXNzaW9uLlJlYWRTaGlwcGluZ01ldGhvZCxcbiAgICAgICAgICAgICAgICAgICAgUGVybWlzc2lvbi5SZWFkUGF5bWVudE1ldGhvZCxcbiAgICAgICAgICAgICAgICAgICAgUGVybWlzc2lvbi5SZWFkVGF4Q2F0ZWdvcnksXG4gICAgICAgICAgICAgICAgICAgIFBlcm1pc3Npb24uUmVhZFRheFJhdGUsXG4gICAgICAgICAgICAgICAgICAgIFBlcm1pc3Npb24uUmVhZENvdW50cnksXG4gICAgICAgICAgICAgICAgICAgIFBlcm1pc3Npb24uUmVhZFpvbmUsXG4gICAgICAgICAgICAgICAgICAgIFBlcm1pc3Npb24uVXBkYXRlR2xvYmFsU2V0dGluZ3MsXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICBjb2xsYXBzaWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBjb2xsYXBzZWRCeURlZmF1bHQ6IHRydWUsXG4gICAgICAgICAgICAgICAgaXRlbXM6IFtcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZXNQZXJtaXNzaW9uOiBhbGxvdyhQZXJtaXNzaW9uLlJlYWRTZWxsZXIpLFxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6ICdzZWxsZXJzJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBfKCduYXYuc2VsbGVycycpLFxuICAgICAgICAgICAgICAgICAgICAgICAgcm91dGVyTGluazogWycvc2V0dGluZ3MnLCAnc2VsbGVycyddLFxuICAgICAgICAgICAgICAgICAgICAgICAgaWNvbjogJ3N0b3JlJyxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZXNQZXJtaXNzaW9uOiBhbGxvdyhQZXJtaXNzaW9uLlJlYWRDaGFubmVsKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiAnY2hhbm5lbHMnLFxuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IF8oJ25hdi5jaGFubmVscycpLFxuICAgICAgICAgICAgICAgICAgICAgICAgcm91dGVyTGluazogWycvc2V0dGluZ3MnLCAnY2hhbm5lbHMnXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGljb246ICdsYXllcnMnLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlc1Blcm1pc3Npb246IGFsbG93KFBlcm1pc3Npb24uUmVhZEFkbWluaXN0cmF0b3IpLFxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6ICdhZG1pbmlzdHJhdG9ycycsXG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogXygnbmF2LmFkbWluaXN0cmF0b3JzJyksXG4gICAgICAgICAgICAgICAgICAgICAgICByb3V0ZXJMaW5rOiBbJy9zZXR0aW5ncycsICdhZG1pbmlzdHJhdG9ycyddLFxuICAgICAgICAgICAgICAgICAgICAgICAgaWNvbjogJ2FkbWluaXN0cmF0b3InLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlc1Blcm1pc3Npb246IGFsbG93KFBlcm1pc3Npb24uUmVhZEFkbWluaXN0cmF0b3IpLFxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6ICdyb2xlcycsXG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogXygnbmF2LnJvbGVzJyksXG4gICAgICAgICAgICAgICAgICAgICAgICByb3V0ZXJMaW5rOiBbJy9zZXR0aW5ncycsICdyb2xlcyddLFxuICAgICAgICAgICAgICAgICAgICAgICAgaWNvbjogJ3VzZXJzJyxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZXNQZXJtaXNzaW9uOiBhbGxvdyhQZXJtaXNzaW9uLlJlYWRTaGlwcGluZ01ldGhvZCksXG4gICAgICAgICAgICAgICAgICAgICAgICBpZDogJ3NoaXBwaW5nLW1ldGhvZHMnLFxuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IF8oJ25hdi5zaGlwcGluZy1tZXRob2RzJyksXG4gICAgICAgICAgICAgICAgICAgICAgICByb3V0ZXJMaW5rOiBbJy9zZXR0aW5ncycsICdzaGlwcGluZy1tZXRob2RzJ10sXG4gICAgICAgICAgICAgICAgICAgICAgICBpY29uOiAndHJ1Y2snLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlc1Blcm1pc3Npb246IGFsbG93KFBlcm1pc3Npb24uUmVhZFBheW1lbnRNZXRob2QpLFxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6ICdwYXltZW50LW1ldGhvZHMnLFxuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IF8oJ25hdi5wYXltZW50LW1ldGhvZHMnKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJvdXRlckxpbms6IFsnL3NldHRpbmdzJywgJ3BheW1lbnQtbWV0aG9kcyddLFxuICAgICAgICAgICAgICAgICAgICAgICAgaWNvbjogJ2NyZWRpdC1jYXJkJyxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZXNQZXJtaXNzaW9uOiBhbGxvdyhQZXJtaXNzaW9uLlJlYWRUYXhDYXRlZ29yeSksXG4gICAgICAgICAgICAgICAgICAgICAgICBpZDogJ3RheC1jYXRlZ29yaWVzJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBfKCduYXYudGF4LWNhdGVnb3JpZXMnKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJvdXRlckxpbms6IFsnL3NldHRpbmdzJywgJ3RheC1jYXRlZ29yaWVzJ10sXG4gICAgICAgICAgICAgICAgICAgICAgICBpY29uOiAndmlldy1saXN0JyxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZXNQZXJtaXNzaW9uOiBhbGxvdyhQZXJtaXNzaW9uLlJlYWRUYXhSYXRlKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiAndGF4LXJhdGVzJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBfKCduYXYudGF4LXJhdGVzJyksXG4gICAgICAgICAgICAgICAgICAgICAgICByb3V0ZXJMaW5rOiBbJy9zZXR0aW5ncycsICd0YXgtcmF0ZXMnXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGljb246ICdjYWxjdWxhdG9yJyxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZXNQZXJtaXNzaW9uOiBhbGxvdyhQZXJtaXNzaW9uLlJlYWRDb3VudHJ5KSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiAnY291bnRyaWVzJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBfKCduYXYuY291bnRyaWVzJyksXG4gICAgICAgICAgICAgICAgICAgICAgICByb3V0ZXJMaW5rOiBbJy9zZXR0aW5ncycsICdjb3VudHJpZXMnXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGljb246ICdmbGFnJyxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZXNQZXJtaXNzaW9uOiBhbGxvdyhQZXJtaXNzaW9uLlJlYWRab25lKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiAnem9uZXMnLFxuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IF8oJ25hdi56b25lcycpLFxuICAgICAgICAgICAgICAgICAgICAgICAgcm91dGVyTGluazogWycvc2V0dGluZ3MnLCAnem9uZXMnXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGljb246ICd3b3JsZCcsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVzUGVybWlzc2lvbjogYWxsb3coUGVybWlzc2lvbi5VcGRhdGVHbG9iYWxTZXR0aW5ncyksXG4gICAgICAgICAgICAgICAgICAgICAgICBpZDogJ2dsb2JhbC1zZXR0aW5ncycsXG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogXygnbmF2Lmdsb2JhbC1zZXR0aW5ncycpLFxuICAgICAgICAgICAgICAgICAgICAgICAgcm91dGVyTGluazogWycvc2V0dGluZ3MnLCAnZ2xvYmFsLXNldHRpbmdzJ10sXG4gICAgICAgICAgICAgICAgICAgICAgICBpY29uOiAnY29nJyxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBpZDogJ3N5c3RlbScsXG4gICAgICAgICAgICAgICAgbGFiZWw6IF8oJ25hdi5zeXN0ZW0nKSxcbiAgICAgICAgICAgICAgICBpY29uOiAnY29tcHV0ZXInLFxuICAgICAgICAgICAgICAgIGRpc3BsYXlNb2RlOiAnc2V0dGluZ3MnLFxuICAgICAgICAgICAgICAgIHJlcXVpcmVzUGVybWlzc2lvbjogUGVybWlzc2lvbi5SZWFkU3lzdGVtLFxuICAgICAgICAgICAgICAgIGNvbGxhcHNpYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgIGNvbGxhcHNlZEJ5RGVmYXVsdDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBpdGVtczogW1xuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZDogJ2pvYi1xdWV1ZScsXG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogXygnbmF2LmpvYi1xdWV1ZScpLFxuICAgICAgICAgICAgICAgICAgICAgICAgcm91dGVyTGluazogWycvc3lzdGVtJywgJ2pvYnMnXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGljb246ICd0aWNrLWNoYXJ0JyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1c0JhZGdlOiB0aGlzLmpvYlF1ZXVlU2VydmljZS5hY3RpdmVKb2JzJC5waXBlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0V2l0aChbXSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFwKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqb2JzID0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IGpvYnMubGVuZ3RoID09PSAwID8gJ25vbmUnIDogJ2luZm8nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3BhZ2F0ZVRvU2VjdGlvbjogam9icy5sZW5ndGggPiAwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBhcyBOYXZNZW51QmFkZ2UpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZDogJ3N5c3RlbS1zdGF0dXMnLFxuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IF8oJ25hdi5zeXN0ZW0tc3RhdHVzJyksXG4gICAgICAgICAgICAgICAgICAgICAgICByb3V0ZXJMaW5rOiBbJy9zeXN0ZW0nLCAnc3lzdGVtLXN0YXR1cyddLFxuICAgICAgICAgICAgICAgICAgICAgICAgaWNvbjogJ3JhY2stc2VydmVyJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1c0JhZGdlOiB0aGlzLmhlYWx0aENoZWNrU2VydmljZS5zdGF0dXMkLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFwKHN0YXR1cyA9PiAoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBzdGF0dXMgPT09ICdvaycgPyAnc3VjY2VzcycgOiAnZXJyb3InLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9wYWdhdGVUb1NlY3Rpb246IHN0YXR1cyA9PT0gJ2Vycm9yJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSksXG4gICAgICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICB9LFxuICAgICAgICBdKTtcbiAgICB9XG59XG4iXX0=
@@ -49,11 +49,11 @@ export class MainNavComponent extends BaseNavComponent {
49
49
  this.itemClick.emit(item);
50
50
  }
51
51
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.3", ngImport: i0, type: MainNavComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
52
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.3", type: MainNavComponent, selector: "vdr-main-nav", inputs: { displayMode: "displayMode" }, outputs: { itemClick: "itemClick" }, usesInheritance: true, ngImport: i0, template: "<nav class=\"main-nav\">\r\n <section class=\"\">\r\n <ng-container *ngFor=\"let section of mainMenuConfig$ | async\">\r\n <section\r\n class=\"nav-group\"\r\n [attr.data-section-id]=\"section.id\"\r\n [class.collapsible]=\"section.collapsible\"\r\n [class.collapsed]=\"section.collapsible && !expandedSections.includes(section.id)\"\r\n routerLinkActive=\"active\"\r\n (isActiveChange)=\"setExpanded(section, $event)\"\r\n *ngIf=\"shouldDisplayLink(section)\"\r\n >\r\n <vdr-ui-extension-point\r\n [locationId]=\"section.id\"\r\n api=\"navMenu\"\r\n [topPx]=\"-6\"\r\n [leftPx]=\"8\"\r\n display=\"block\"\r\n >\r\n <div class=\"section-header\">\r\n <ng-container\r\n *ngIf=\"navBuilderService.sectionBadges[section.id] | async as sectionBadge\"\r\n >\r\n <vdr-status-badge\r\n *ngIf=\"sectionBadge !== 'none'\"\r\n [type]=\"sectionBadge\"\r\n ></vdr-status-badge>\r\n </ng-container>\r\n <label class=\"nav-group-header mx-4\" [for]=\"section.id\">{{\r\n section.label | translate\r\n }}</label>\r\n <button *ngIf=\"section.collapsible\" class=\"button-small bg-weight-150\" (click)=\"toggleExpand(section)\">\r\n <clr-icon\r\n [attr.shape]=\"expandedSections.includes(section.id) ? 'caret up' : 'caret down'\"\r\n size=\"12\"\r\n [title]=\"'common.expand-entries' | translate\"\r\n ></clr-icon>\r\n </button>\r\n </div>\r\n <div class=\"nav-list\" [ngStyle]=\"getStyleForSection(section)\">\r\n <ng-container *ngFor=\"let item of section.items\">\r\n <div\r\n *ngIf=\"shouldDisplayLink(item)\"\r\n class=\"nav-link px-4\"\r\n routerLinkActive=\"active\"\r\n >\r\n <a\r\n [attr.data-item-id]=\"section.id\"\r\n [routerLink]=\"getRouterLink(item)\"\r\n (click)=\"onItemClick(item, $event)\"\r\n >\r\n <ng-container *ngIf=\"item.statusBadge | async as itemBadge\">\r\n <vdr-status-badge\r\n *ngIf=\"itemBadge.type !== 'none'\"\r\n [type]=\"itemBadge.type\"\r\n ></vdr-status-badge>\r\n </ng-container>\r\n <clr-icon\r\n [attr.shape]=\"item.icon || 'block'\"\r\n size=\"16\"\r\n [title]=\"item.label | translate\"\r\n ></clr-icon>\r\n <span class=\"\">{{ item.label | translate }}</span>\r\n </a>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </vdr-ui-extension-point>\r\n </section>\r\n </ng-container>\r\n </section>\r\n</nav>\r\n", styles: [":host{background-color:var(--clr-nav-background-color)}nav.main-nav{height:100%;border-right-color:var(--clr-sidenav-border-color)}.main-nav .nav-group{margin-bottom:calc(var(--space-unit) * 2);padding:calc(var(--space-unit) * 2) 0;overflow:hidden;transition:padding .2s ease-in-out,margin-bottom .2s ease-in-out}.main-nav .nav-group.collapsible.collapsed{padding:3px 0;margin-bottom:calc(var(--space-unit) * 1)}.main-nav .nav-group.active:not(.collapsible.collapsed){background-color:var(--color-weight-125)}.main-nav .nav-group .nav-list{margin:0;transition:max-height .2s ease-in-out,opacity .2s ease-in-out}.main-nav .nav-group .section-header{display:flex;align-items:flex-start;justify-content:space-between;padding-right:calc(var(--space-unit) * 4)}.main-nav .nav-group .nav-group-header{display:block;margin:0 0 var(--space-unit);font-size:var(--font-size-xs);letter-spacing:.05em;color:var(--color-weight-700);text-transform:uppercase}.main-nav .nav-group .nav-link{display:flex;align-items:center;line-height:100%;border-right:2px solid transparent;font-size:var(--font-size-sm);padding:var(--space-unit) 0;transition:border .1s,color .1s}.main-nav .nav-group .nav-link a:link,.main-nav .nav-group .nav-link a:visited{color:var(--color-weight-700)}.main-nav .nav-group .nav-link:hover{color:var(--color-left-nav-text-hover);border-right-color:var(--color-weight-300)}.main-nav .nav-group .nav-link.active,.main-nav .nav-group .nav-link.active a:link,.main-nav .nav-group .nav-link.active a:visited{color:var(--color-text-active);border-right-color:var(--color-primary-500)}.main-nav .nav-group .nav-link.active clr-icon,.main-nav .nav-group .nav-link.active a:link clr-icon,.main-nav .nav-group .nav-link.active a:visited clr-icon{color:var(--color-primary-500)}.nav-list clr-icon{flex-shrink:0;margin-right:var(--space-unit)}.nav-group{-webkit-hyphens:auto;hyphens:auto}.nav-group,.nav-link{position:relative}.nav-group vdr-status-badge{left:27px;top:6px}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2.ClrIconCustomTag, selector: "clr-icon" }, { kind: "directive", type: i2.ClrLabel, selector: "label", inputs: ["for"] }, { kind: "directive", type: i3.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i3.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "component", type: i4.StatusBadgeComponent, selector: "vdr-status-badge", inputs: ["type"] }, { kind: "component", type: i5.UiExtensionPointComponent, selector: "vdr-ui-extension-point", inputs: ["locationId", "topPx", "leftPx", "display", "api"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }] }); }
52
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.3", type: MainNavComponent, selector: "vdr-main-nav", inputs: { displayMode: "displayMode" }, outputs: { itemClick: "itemClick" }, usesInheritance: true, ngImport: i0, template: "<nav class=\"main-nav\">\r\n <section class=\"\">\r\n <ng-container *ngFor=\"let section of mainMenuConfig$ | async\">\r\n <section\r\n class=\"nav-group\"\r\n [attr.data-section-id]=\"section.id\"\r\n [class.collapsible]=\"section.collapsible\"\r\n [class.collapsed]=\"section.collapsible && !expandedSections.includes(section.id)\"\r\n routerLinkActive=\"active\"\r\n (isActiveChange)=\"setExpanded(section, $event)\"\r\n *ngIf=\"shouldDisplayLink(section)\"\r\n >\r\n <vdr-ui-extension-point\r\n [locationId]=\"section.id\"\r\n api=\"navMenu\"\r\n [topPx]=\"-6\"\r\n [leftPx]=\"8\"\r\n display=\"block\"\r\n >\r\n <div class=\"section-header\">\r\n <ng-container\r\n *ngIf=\"navBuilderService.sectionBadges[section.id] | async as sectionBadge\"\r\n >\r\n <vdr-status-badge\r\n *ngIf=\"sectionBadge !== 'none'\"\r\n [type]=\"sectionBadge\"\r\n ></vdr-status-badge>\r\n </ng-container>\r\n <label class=\"nav-group-header mx-4\" [for]=\"section.id\">{{\r\n section.label | translate\r\n }}</label>\r\n <button *ngIf=\"section.collapsible\" class=\"button-small bg-weight-150\" (click)=\"toggleExpand(section)\">\r\n <clr-icon\r\n [attr.shape]=\"expandedSections.includes(section.id) ? 'caret up' : 'caret down'\"\r\n size=\"12\"\r\n [title]=\"'common.expand-entries' | translate\"\r\n ></clr-icon>\r\n </button>\r\n </div>\r\n <div class=\"nav-list\" [ngStyle]=\"getStyleForSection(section)\">\r\n <ng-container *ngFor=\"let item of section.items\">\r\n <div\r\n *ngIf=\"shouldDisplayLink(item)\"\r\n class=\"nav-link px-4\"\r\n routerLinkActive=\"active\"\r\n >\r\n <a\r\n [attr.data-item-id]=\"section.id\"\r\n [routerLink]=\"getRouterLink(item)\"\r\n (click)=\"onItemClick(item, $event)\"\r\n >\r\n <ng-container *ngIf=\"item.statusBadge | async as itemBadge\">\r\n <vdr-status-badge\r\n *ngIf=\"itemBadge.type !== 'none'\"\r\n [type]=\"itemBadge.type\"\r\n ></vdr-status-badge>\r\n </ng-container>\r\n <clr-icon\r\n [attr.shape]=\"item.icon || 'block'\"\r\n size=\"16\"\r\n [title]=\"item.label | translate\"\r\n ></clr-icon>\r\n <span class=\"\">{{ item.label | translate }}</span>\r\n </a>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </vdr-ui-extension-point>\r\n </section>\r\n </ng-container>\r\n </section>\r\n</nav>\r\n", styles: [":host{background-color:var(--clr-nav-background-color)}nav.main-nav{height:100%;border-right-color:var(--clr-sidenav-border-color)}.main-nav .nav-group{margin-bottom:calc(var(--space-unit) * 2);padding:calc(var(--space-unit) * 2) 0;overflow:hidden;transition:padding .2s ease-in-out,margin-bottom .2s ease-in-out}.main-nav .nav-group.collapsible.collapsed{padding:3px 0;margin-bottom:calc(var(--space-unit) * 1)}.main-nav .nav-group.active:not(.collapsible.collapsed){background-color:var(--color-weight-125)}.main-nav .nav-group .nav-list{margin:0;transition:max-height .2s ease-in-out,opacity .2s ease-in-out}.main-nav .nav-group .section-header{display:flex;align-items:flex-start;justify-content:space-between;padding-right:calc(var(--space-unit) * 4)}.main-nav .nav-group .nav-group-header{display:block;margin:0 0 var(--space-unit);font-size:var(--font-size-xs);letter-spacing:.05em;color:var(--color-weight-700);text-transform:uppercase}.main-nav .nav-group .nav-link{display:flex;align-items:center;line-height:100%;border-right:2px solid transparent;font-size:var(--font-size-sm);padding:var(--space-unit) 0;transition:border .1s,color .1s}.main-nav .nav-group .nav-link a:link,.main-nav .nav-group .nav-link a:visited{color:var(--color-weight-700)}.main-nav .nav-group .nav-link:hover{color:var(--color-left-nav-text-hover);border-right-color:var(--color-weight-300)}.main-nav .nav-group .nav-link.active,.main-nav .nav-group .nav-link.active a:link,.main-nav .nav-group .nav-link.active a:visited{color:var(--color-text-active);border-right-color:var(--color-primary-500)}.main-nav .nav-group .nav-link.active clr-icon,.main-nav .nav-group .nav-link.active a:link clr-icon,.main-nav .nav-group .nav-link.active a:visited clr-icon{color:var(--color-primary-500)}.nav-list clr-icon{flex-shrink:0;margin-right:var(--space-unit)}.nav-group{-webkit-hyphens:auto;hyphens:auto}.nav-group,.nav-link{position:relative}.nav-group vdr-status-badge{left:27px;top:6px}.nav-group .section-header vdr-status-badge{left:20px}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2.ClrIconCustomTag, selector: "clr-icon" }, { kind: "directive", type: i2.ClrLabel, selector: "label", inputs: ["for"] }, { kind: "directive", type: i3.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i3.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "component", type: i4.StatusBadgeComponent, selector: "vdr-status-badge", inputs: ["type"] }, { kind: "component", type: i5.UiExtensionPointComponent, selector: "vdr-ui-extension-point", inputs: ["locationId", "topPx", "leftPx", "display", "api"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }] }); }
53
53
  }
54
54
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.3", ngImport: i0, type: MainNavComponent, decorators: [{
55
55
  type: Component,
56
- args: [{ selector: 'vdr-main-nav', template: "<nav class=\"main-nav\">\r\n <section class=\"\">\r\n <ng-container *ngFor=\"let section of mainMenuConfig$ | async\">\r\n <section\r\n class=\"nav-group\"\r\n [attr.data-section-id]=\"section.id\"\r\n [class.collapsible]=\"section.collapsible\"\r\n [class.collapsed]=\"section.collapsible && !expandedSections.includes(section.id)\"\r\n routerLinkActive=\"active\"\r\n (isActiveChange)=\"setExpanded(section, $event)\"\r\n *ngIf=\"shouldDisplayLink(section)\"\r\n >\r\n <vdr-ui-extension-point\r\n [locationId]=\"section.id\"\r\n api=\"navMenu\"\r\n [topPx]=\"-6\"\r\n [leftPx]=\"8\"\r\n display=\"block\"\r\n >\r\n <div class=\"section-header\">\r\n <ng-container\r\n *ngIf=\"navBuilderService.sectionBadges[section.id] | async as sectionBadge\"\r\n >\r\n <vdr-status-badge\r\n *ngIf=\"sectionBadge !== 'none'\"\r\n [type]=\"sectionBadge\"\r\n ></vdr-status-badge>\r\n </ng-container>\r\n <label class=\"nav-group-header mx-4\" [for]=\"section.id\">{{\r\n section.label | translate\r\n }}</label>\r\n <button *ngIf=\"section.collapsible\" class=\"button-small bg-weight-150\" (click)=\"toggleExpand(section)\">\r\n <clr-icon\r\n [attr.shape]=\"expandedSections.includes(section.id) ? 'caret up' : 'caret down'\"\r\n size=\"12\"\r\n [title]=\"'common.expand-entries' | translate\"\r\n ></clr-icon>\r\n </button>\r\n </div>\r\n <div class=\"nav-list\" [ngStyle]=\"getStyleForSection(section)\">\r\n <ng-container *ngFor=\"let item of section.items\">\r\n <div\r\n *ngIf=\"shouldDisplayLink(item)\"\r\n class=\"nav-link px-4\"\r\n routerLinkActive=\"active\"\r\n >\r\n <a\r\n [attr.data-item-id]=\"section.id\"\r\n [routerLink]=\"getRouterLink(item)\"\r\n (click)=\"onItemClick(item, $event)\"\r\n >\r\n <ng-container *ngIf=\"item.statusBadge | async as itemBadge\">\r\n <vdr-status-badge\r\n *ngIf=\"itemBadge.type !== 'none'\"\r\n [type]=\"itemBadge.type\"\r\n ></vdr-status-badge>\r\n </ng-container>\r\n <clr-icon\r\n [attr.shape]=\"item.icon || 'block'\"\r\n size=\"16\"\r\n [title]=\"item.label | translate\"\r\n ></clr-icon>\r\n <span class=\"\">{{ item.label | translate }}</span>\r\n </a>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </vdr-ui-extension-point>\r\n </section>\r\n </ng-container>\r\n </section>\r\n</nav>\r\n", styles: [":host{background-color:var(--clr-nav-background-color)}nav.main-nav{height:100%;border-right-color:var(--clr-sidenav-border-color)}.main-nav .nav-group{margin-bottom:calc(var(--space-unit) * 2);padding:calc(var(--space-unit) * 2) 0;overflow:hidden;transition:padding .2s ease-in-out,margin-bottom .2s ease-in-out}.main-nav .nav-group.collapsible.collapsed{padding:3px 0;margin-bottom:calc(var(--space-unit) * 1)}.main-nav .nav-group.active:not(.collapsible.collapsed){background-color:var(--color-weight-125)}.main-nav .nav-group .nav-list{margin:0;transition:max-height .2s ease-in-out,opacity .2s ease-in-out}.main-nav .nav-group .section-header{display:flex;align-items:flex-start;justify-content:space-between;padding-right:calc(var(--space-unit) * 4)}.main-nav .nav-group .nav-group-header{display:block;margin:0 0 var(--space-unit);font-size:var(--font-size-xs);letter-spacing:.05em;color:var(--color-weight-700);text-transform:uppercase}.main-nav .nav-group .nav-link{display:flex;align-items:center;line-height:100%;border-right:2px solid transparent;font-size:var(--font-size-sm);padding:var(--space-unit) 0;transition:border .1s,color .1s}.main-nav .nav-group .nav-link a:link,.main-nav .nav-group .nav-link a:visited{color:var(--color-weight-700)}.main-nav .nav-group .nav-link:hover{color:var(--color-left-nav-text-hover);border-right-color:var(--color-weight-300)}.main-nav .nav-group .nav-link.active,.main-nav .nav-group .nav-link.active a:link,.main-nav .nav-group .nav-link.active a:visited{color:var(--color-text-active);border-right-color:var(--color-primary-500)}.main-nav .nav-group .nav-link.active clr-icon,.main-nav .nav-group .nav-link.active a:link clr-icon,.main-nav .nav-group .nav-link.active a:visited clr-icon{color:var(--color-primary-500)}.nav-list clr-icon{flex-shrink:0;margin-right:var(--space-unit)}.nav-group{-webkit-hyphens:auto;hyphens:auto}.nav-group,.nav-link{position:relative}.nav-group vdr-status-badge{left:27px;top:6px}\n"] }]
56
+ args: [{ selector: 'vdr-main-nav', template: "<nav class=\"main-nav\">\r\n <section class=\"\">\r\n <ng-container *ngFor=\"let section of mainMenuConfig$ | async\">\r\n <section\r\n class=\"nav-group\"\r\n [attr.data-section-id]=\"section.id\"\r\n [class.collapsible]=\"section.collapsible\"\r\n [class.collapsed]=\"section.collapsible && !expandedSections.includes(section.id)\"\r\n routerLinkActive=\"active\"\r\n (isActiveChange)=\"setExpanded(section, $event)\"\r\n *ngIf=\"shouldDisplayLink(section)\"\r\n >\r\n <vdr-ui-extension-point\r\n [locationId]=\"section.id\"\r\n api=\"navMenu\"\r\n [topPx]=\"-6\"\r\n [leftPx]=\"8\"\r\n display=\"block\"\r\n >\r\n <div class=\"section-header\">\r\n <ng-container\r\n *ngIf=\"navBuilderService.sectionBadges[section.id] | async as sectionBadge\"\r\n >\r\n <vdr-status-badge\r\n *ngIf=\"sectionBadge !== 'none'\"\r\n [type]=\"sectionBadge\"\r\n ></vdr-status-badge>\r\n </ng-container>\r\n <label class=\"nav-group-header mx-4\" [for]=\"section.id\">{{\r\n section.label | translate\r\n }}</label>\r\n <button *ngIf=\"section.collapsible\" class=\"button-small bg-weight-150\" (click)=\"toggleExpand(section)\">\r\n <clr-icon\r\n [attr.shape]=\"expandedSections.includes(section.id) ? 'caret up' : 'caret down'\"\r\n size=\"12\"\r\n [title]=\"'common.expand-entries' | translate\"\r\n ></clr-icon>\r\n </button>\r\n </div>\r\n <div class=\"nav-list\" [ngStyle]=\"getStyleForSection(section)\">\r\n <ng-container *ngFor=\"let item of section.items\">\r\n <div\r\n *ngIf=\"shouldDisplayLink(item)\"\r\n class=\"nav-link px-4\"\r\n routerLinkActive=\"active\"\r\n >\r\n <a\r\n [attr.data-item-id]=\"section.id\"\r\n [routerLink]=\"getRouterLink(item)\"\r\n (click)=\"onItemClick(item, $event)\"\r\n >\r\n <ng-container *ngIf=\"item.statusBadge | async as itemBadge\">\r\n <vdr-status-badge\r\n *ngIf=\"itemBadge.type !== 'none'\"\r\n [type]=\"itemBadge.type\"\r\n ></vdr-status-badge>\r\n </ng-container>\r\n <clr-icon\r\n [attr.shape]=\"item.icon || 'block'\"\r\n size=\"16\"\r\n [title]=\"item.label | translate\"\r\n ></clr-icon>\r\n <span class=\"\">{{ item.label | translate }}</span>\r\n </a>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </vdr-ui-extension-point>\r\n </section>\r\n </ng-container>\r\n </section>\r\n</nav>\r\n", styles: [":host{background-color:var(--clr-nav-background-color)}nav.main-nav{height:100%;border-right-color:var(--clr-sidenav-border-color)}.main-nav .nav-group{margin-bottom:calc(var(--space-unit) * 2);padding:calc(var(--space-unit) * 2) 0;overflow:hidden;transition:padding .2s ease-in-out,margin-bottom .2s ease-in-out}.main-nav .nav-group.collapsible.collapsed{padding:3px 0;margin-bottom:calc(var(--space-unit) * 1)}.main-nav .nav-group.active:not(.collapsible.collapsed){background-color:var(--color-weight-125)}.main-nav .nav-group .nav-list{margin:0;transition:max-height .2s ease-in-out,opacity .2s ease-in-out}.main-nav .nav-group .section-header{display:flex;align-items:flex-start;justify-content:space-between;padding-right:calc(var(--space-unit) * 4)}.main-nav .nav-group .nav-group-header{display:block;margin:0 0 var(--space-unit);font-size:var(--font-size-xs);letter-spacing:.05em;color:var(--color-weight-700);text-transform:uppercase}.main-nav .nav-group .nav-link{display:flex;align-items:center;line-height:100%;border-right:2px solid transparent;font-size:var(--font-size-sm);padding:var(--space-unit) 0;transition:border .1s,color .1s}.main-nav .nav-group .nav-link a:link,.main-nav .nav-group .nav-link a:visited{color:var(--color-weight-700)}.main-nav .nav-group .nav-link:hover{color:var(--color-left-nav-text-hover);border-right-color:var(--color-weight-300)}.main-nav .nav-group .nav-link.active,.main-nav .nav-group .nav-link.active a:link,.main-nav .nav-group .nav-link.active a:visited{color:var(--color-text-active);border-right-color:var(--color-primary-500)}.main-nav .nav-group .nav-link.active clr-icon,.main-nav .nav-group .nav-link.active a:link clr-icon,.main-nav .nav-group .nav-link.active a:visited clr-icon{color:var(--color-primary-500)}.nav-list clr-icon{flex-shrink:0;margin-right:var(--space-unit)}.nav-group{-webkit-hyphens:auto;hyphens:auto}.nav-group,.nav-link{position:relative}.nav-group vdr-status-badge{left:27px;top:6px}.nav-group .section-header vdr-status-badge{left:20px}\n"] }]
57
57
  }], propDecorators: { displayMode: [{
58
58
  type: Input
59
59
  }], itemClick: [{
@@ -1,4 +1,5 @@
1
- import { ChangeDetectionStrategy, Component } from '@angular/core';
1
+ import { ChangeDetectionStrategy, Component, HostListener } from '@angular/core';
2
+ import { take } from 'rxjs/operators';
2
3
  import * as i0 from "@angular/core";
3
4
  import * as i1 from "../../data/providers/data.service";
4
5
  import * as i2 from "../../providers/local-storage/local-storage.service";
@@ -13,6 +14,9 @@ export class ThemeSwitcherComponent {
13
14
  ngOnInit() {
14
15
  this.activeTheme$ = this.dataService.client.uiState().mapStream(data => data.uiState.theme);
15
16
  }
17
+ onHostClick() {
18
+ this.activeTheme$.pipe(take(1)).subscribe(current => this.toggleTheme(current));
19
+ }
16
20
  toggleTheme(current) {
17
21
  const newTheme = current === 'default' ? 'dark' : 'default';
18
22
  this.dataService.client.setUiTheme(newTheme).subscribe(() => {
@@ -20,10 +24,16 @@ export class ThemeSwitcherComponent {
20
24
  });
21
25
  }
22
26
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.3", ngImport: i0, type: ThemeSwitcherComponent, deps: [{ token: i1.DataService }, { token: i2.LocalStorageService }], target: i0.ɵɵFactoryTarget.Component }); }
23
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.3", type: ThemeSwitcherComponent, selector: "vdr-theme-switcher", ngImport: i0, template: "<button *ngIf=\"activeTheme$ | async as activeTheme\" class=\"theme-toggle\" (click)=\"toggleTheme(activeTheme)\">\r\n <span>{{ 'common.theme' | translate }}</span>\r\n <div class=\"theme-icon default\" [class.active]=\"activeTheme === 'default'\">\r\n <clr-icon shape=\"sun\" class=\"is-solid\"></clr-icon>\r\n </div>\r\n <div class=\"theme-icon dark\" [class.active]=\"activeTheme === 'dark'\">\r\n <clr-icon shape=\"moon\" class=\"is-solid\"></clr-icon>\r\n </div>\r\n</button>\r\n", styles: [":host{display:inline-flex;justify-content:center;align-items:center}button.theme-toggle{position:relative;padding-left:20px;border:none;background:transparent;color:var(--clr-dropdown-item-color);cursor:pointer}.theme-icon{position:absolute;top:0;left:6px;z-index:0;opacity:.2;color:var(--color-text-300);transition:opacity .3s,left .3s}.theme-icon.active{z-index:1;left:0;opacity:1}.theme-icon.default.active{color:#d6ae3f}.theme-icon.dark.active{color:#ffdf3a}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.ClrIconCustomTag, selector: "clr-icon" }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
27
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.3", type: ThemeSwitcherComponent, selector: "vdr-theme-switcher", host: { listeners: { "click": "onHostClick($event)", "keydown.enter": "onHostClick($event)" } }, ngImport: i0, template: "<button *ngIf=\"activeTheme$ | async as activeTheme\" class=\"theme-toggle\">\r\n <span>{{ 'common.theme' | translate }}</span>\r\n <div class=\"theme-icon default\" [class.active]=\"activeTheme === 'default'\">\r\n <clr-icon shape=\"sun\" class=\"is-solid\"></clr-icon>\r\n </div>\r\n <div class=\"theme-icon dark\" [class.active]=\"activeTheme === 'dark'\">\r\n <clr-icon shape=\"moon\" class=\"is-solid\"></clr-icon>\r\n </div>\r\n</button>\r\n", styles: [":host{display:flex;justify-content:center;align-items:center}button.theme-toggle{position:relative;padding-left:20px;border:none;background:transparent;color:var(--clr-dropdown-item-color);cursor:pointer}.theme-icon{position:absolute;top:0;left:6px;z-index:0;opacity:.2;color:var(--color-text-300);transition:opacity .3s,left .3s}.theme-icon.active{z-index:1;left:0;opacity:1}.theme-icon.default.active{color:#d6ae3f}.theme-icon.dark.active{color:#ffdf3a}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.ClrIconCustomTag, selector: "clr-icon" }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
24
28
  }
25
29
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.3", ngImport: i0, type: ThemeSwitcherComponent, decorators: [{
26
30
  type: Component,
27
- args: [{ selector: 'vdr-theme-switcher', changeDetection: ChangeDetectionStrategy.OnPush, template: "<button *ngIf=\"activeTheme$ | async as activeTheme\" class=\"theme-toggle\" (click)=\"toggleTheme(activeTheme)\">\r\n <span>{{ 'common.theme' | translate }}</span>\r\n <div class=\"theme-icon default\" [class.active]=\"activeTheme === 'default'\">\r\n <clr-icon shape=\"sun\" class=\"is-solid\"></clr-icon>\r\n </div>\r\n <div class=\"theme-icon dark\" [class.active]=\"activeTheme === 'dark'\">\r\n <clr-icon shape=\"moon\" class=\"is-solid\"></clr-icon>\r\n </div>\r\n</button>\r\n", styles: [":host{display:inline-flex;justify-content:center;align-items:center}button.theme-toggle{position:relative;padding-left:20px;border:none;background:transparent;color:var(--clr-dropdown-item-color);cursor:pointer}.theme-icon{position:absolute;top:0;left:6px;z-index:0;opacity:.2;color:var(--color-text-300);transition:opacity .3s,left .3s}.theme-icon.active{z-index:1;left:0;opacity:1}.theme-icon.default.active{color:#d6ae3f}.theme-icon.dark.active{color:#ffdf3a}\n"] }]
28
- }], ctorParameters: function () { return [{ type: i1.DataService }, { type: i2.LocalStorageService }]; } });
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhlbWUtc3dpdGNoZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb3JlL3NyYy9jb21wb25lbnRzL3RoZW1lLXN3aXRjaGVyL3RoZW1lLXN3aXRjaGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29yZS9zcmMvY29tcG9uZW50cy90aGVtZS1zd2l0Y2hlci90aGVtZS1zd2l0Y2hlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFpQixNQUFNLGVBQWUsQ0FBQzs7Ozs7OztBQVlsRixNQUFNLE9BQU8sc0JBQXNCO0lBRy9CLFlBQW9CLFdBQXdCLEVBQVUsbUJBQXdDO1FBQTFFLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQVUsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtJQUFHLENBQUM7SUFFbEcsUUFBUTtRQUNKLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNoRyxDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQWU7UUFDdkIsTUFBTSxRQUFRLEdBQUcsT0FBTyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDNUQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDeEQsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDMUQsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOzhHQWRRLHNCQUFzQjtrR0FBdEIsc0JBQXNCLDBEQ1puQyxtZ0JBU0E7OzJGREdhLHNCQUFzQjtrQkFObEMsU0FBUzsrQkFDSSxvQkFBb0IsbUJBR2IsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHsgRGF0YVNlcnZpY2UgfSBmcm9tICcuLi8uLi9kYXRhL3Byb3ZpZGVycy9kYXRhLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBMb2NhbFN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vcHJvdmlkZXJzL2xvY2FsLXN0b3JhZ2UvbG9jYWwtc3RvcmFnZS5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICd2ZHItdGhlbWUtc3dpdGNoZXInLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3RoZW1lLXN3aXRjaGVyLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL3RoZW1lLXN3aXRjaGVyLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxufSlcclxuZXhwb3J0IGNsYXNzIFRoZW1lU3dpdGNoZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gICAgYWN0aXZlVGhlbWUkOiBPYnNlcnZhYmxlPHN0cmluZz47XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBkYXRhU2VydmljZTogRGF0YVNlcnZpY2UsIHByaXZhdGUgbG9jYWxTdG9yYWdlU2VydmljZTogTG9jYWxTdG9yYWdlU2VydmljZSkge31cclxuXHJcbiAgICBuZ09uSW5pdCgpIHtcclxuICAgICAgICB0aGlzLmFjdGl2ZVRoZW1lJCA9IHRoaXMuZGF0YVNlcnZpY2UuY2xpZW50LnVpU3RhdGUoKS5tYXBTdHJlYW0oZGF0YSA9PiBkYXRhLnVpU3RhdGUudGhlbWUpO1xyXG4gICAgfVxyXG5cclxuICAgIHRvZ2dsZVRoZW1lKGN1cnJlbnQ6IHN0cmluZykge1xyXG4gICAgICAgIGNvbnN0IG5ld1RoZW1lID0gY3VycmVudCA9PT0gJ2RlZmF1bHQnID8gJ2RhcmsnIDogJ2RlZmF1bHQnO1xyXG4gICAgICAgIHRoaXMuZGF0YVNlcnZpY2UuY2xpZW50LnNldFVpVGhlbWUobmV3VGhlbWUpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMubG9jYWxTdG9yYWdlU2VydmljZS5zZXQoJ2FjdGl2ZVRoZW1lJywgbmV3VGhlbWUpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG59XHJcbiIsIjxidXR0b24gKm5nSWY9XCJhY3RpdmVUaGVtZSQgfCBhc3luYyBhcyBhY3RpdmVUaGVtZVwiIGNsYXNzPVwidGhlbWUtdG9nZ2xlXCIgKGNsaWNrKT1cInRvZ2dsZVRoZW1lKGFjdGl2ZVRoZW1lKVwiPlxyXG4gICAgPHNwYW4+e3sgJ2NvbW1vbi50aGVtZScgfCB0cmFuc2xhdGUgfX08L3NwYW4+XHJcbiAgICA8ZGl2IGNsYXNzPVwidGhlbWUtaWNvbiBkZWZhdWx0XCIgW2NsYXNzLmFjdGl2ZV09XCJhY3RpdmVUaGVtZSA9PT0gJ2RlZmF1bHQnXCI+XHJcbiAgICAgICAgPGNsci1pY29uIHNoYXBlPVwic3VuXCIgY2xhc3M9XCJpcy1zb2xpZFwiPjwvY2xyLWljb24+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJ0aGVtZS1pY29uIGRhcmtcIiBbY2xhc3MuYWN0aXZlXT1cImFjdGl2ZVRoZW1lID09PSAnZGFyaydcIj5cclxuICAgICAgICA8Y2xyLWljb24gc2hhcGU9XCJtb29uXCIgY2xhc3M9XCJpcy1zb2xpZFwiPjwvY2xyLWljb24+XHJcbiAgICA8L2Rpdj5cclxuPC9idXR0b24+XHJcbiJdfQ==
31
+ args: [{ selector: 'vdr-theme-switcher', changeDetection: ChangeDetectionStrategy.OnPush, template: "<button *ngIf=\"activeTheme$ | async as activeTheme\" class=\"theme-toggle\">\r\n <span>{{ 'common.theme' | translate }}</span>\r\n <div class=\"theme-icon default\" [class.active]=\"activeTheme === 'default'\">\r\n <clr-icon shape=\"sun\" class=\"is-solid\"></clr-icon>\r\n </div>\r\n <div class=\"theme-icon dark\" [class.active]=\"activeTheme === 'dark'\">\r\n <clr-icon shape=\"moon\" class=\"is-solid\"></clr-icon>\r\n </div>\r\n</button>\r\n", styles: [":host{display:flex;justify-content:center;align-items:center}button.theme-toggle{position:relative;padding-left:20px;border:none;background:transparent;color:var(--clr-dropdown-item-color);cursor:pointer}.theme-icon{position:absolute;top:0;left:6px;z-index:0;opacity:.2;color:var(--color-text-300);transition:opacity .3s,left .3s}.theme-icon.active{z-index:1;left:0;opacity:1}.theme-icon.default.active{color:#d6ae3f}.theme-icon.dark.active{color:#ffdf3a}\n"] }]
32
+ }], ctorParameters: function () { return [{ type: i1.DataService }, { type: i2.LocalStorageService }]; }, propDecorators: { onHostClick: [{
33
+ type: HostListener,
34
+ args: ['click', ['$event']]
35
+ }, {
36
+ type: HostListener,
37
+ args: ['keydown.enter', ['$event']]
38
+ }] } });
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhlbWUtc3dpdGNoZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb3JlL3NyYy9jb21wb25lbnRzL3RoZW1lLXN3aXRjaGVyL3RoZW1lLXN3aXRjaGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29yZS9zcmMvY29tcG9uZW50cy90aGVtZS1zd2l0Y2hlci90aGVtZS1zd2l0Y2hlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFFaEcsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7O0FBV3RDLE1BQU0sT0FBTyxzQkFBc0I7SUFHL0IsWUFBb0IsV0FBd0IsRUFBVSxtQkFBd0M7UUFBMUUsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFBVSx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO0lBQUcsQ0FBQztJQUVsRyxRQUFRO1FBQ0osSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2hHLENBQUM7SUFJRCxXQUFXO1FBQ1AsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQ3BGLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBZTtRQUN2QixNQUFNLFFBQVEsR0FBRyxPQUFPLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUM1RCxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUN4RCxJQUFJLENBQUMsbUJBQW1CLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUMxRCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7OEdBcEJRLHNCQUFzQjtrR0FBdEIsc0JBQXNCLDJKQ2JuQyw4ZEFTQTs7MkZESWEsc0JBQXNCO2tCQU5sQyxTQUFTOytCQUNJLG9CQUFvQixtQkFHYix1QkFBdUIsQ0FBQyxNQUFNO29JQWEvQyxXQUFXO3NCQUZWLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDOztzQkFDaEMsWUFBWTt1QkFBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBIb3N0TGlzdGVuZXIsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IERhdGFTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZGF0YS9wcm92aWRlcnMvZGF0YS5zZXJ2aWNlJztcbmltcG9ydCB7IExvY2FsU3RvcmFnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9wcm92aWRlcnMvbG9jYWwtc3RvcmFnZS9sb2NhbC1zdG9yYWdlLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3Zkci10aGVtZS1zd2l0Y2hlcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3RoZW1lLXN3aXRjaGVyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi90aGVtZS1zd2l0Y2hlci5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBUaGVtZVN3aXRjaGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBhY3RpdmVUaGVtZSQ6IE9ic2VydmFibGU8c3RyaW5nPjtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZGF0YVNlcnZpY2U6IERhdGFTZXJ2aWNlLCBwcml2YXRlIGxvY2FsU3RvcmFnZVNlcnZpY2U6IExvY2FsU3RvcmFnZVNlcnZpY2UpIHt9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5hY3RpdmVUaGVtZSQgPSB0aGlzLmRhdGFTZXJ2aWNlLmNsaWVudC51aVN0YXRlKCkubWFwU3RyZWFtKGRhdGEgPT4gZGF0YS51aVN0YXRlLnRoZW1lKTtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdjbGljaycsIFsnJGV2ZW50J10pXG4gICAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bi5lbnRlcicsIFsnJGV2ZW50J10pXG4gICAgb25Ib3N0Q2xpY2soKSB7XG4gICAgICAgIHRoaXMuYWN0aXZlVGhlbWUkLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKGN1cnJlbnQgPT4gdGhpcy50b2dnbGVUaGVtZShjdXJyZW50KSk7XG4gICAgfVxuXG4gICAgdG9nZ2xlVGhlbWUoY3VycmVudDogc3RyaW5nKSB7XG4gICAgICAgIGNvbnN0IG5ld1RoZW1lID0gY3VycmVudCA9PT0gJ2RlZmF1bHQnID8gJ2RhcmsnIDogJ2RlZmF1bHQnO1xuICAgICAgICB0aGlzLmRhdGFTZXJ2aWNlLmNsaWVudC5zZXRVaVRoZW1lKG5ld1RoZW1lKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5sb2NhbFN0b3JhZ2VTZXJ2aWNlLnNldCgnYWN0aXZlVGhlbWUnLCBuZXdUaGVtZSk7XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiIsIjxidXR0b24gKm5nSWY9XCJhY3RpdmVUaGVtZSQgfCBhc3luYyBhcyBhY3RpdmVUaGVtZVwiIGNsYXNzPVwidGhlbWUtdG9nZ2xlXCI+XHJcbiAgICA8c3Bhbj57eyAnY29tbW9uLnRoZW1lJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cclxuICAgIDxkaXYgY2xhc3M9XCJ0aGVtZS1pY29uIGRlZmF1bHRcIiBbY2xhc3MuYWN0aXZlXT1cImFjdGl2ZVRoZW1lID09PSAnZGVmYXVsdCdcIj5cclxuICAgICAgICA8Y2xyLWljb24gc2hhcGU9XCJzdW5cIiBjbGFzcz1cImlzLXNvbGlkXCI+PC9jbHItaWNvbj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInRoZW1lLWljb24gZGFya1wiIFtjbGFzcy5hY3RpdmVdPVwiYWN0aXZlVGhlbWUgPT09ICdkYXJrJ1wiPlxyXG4gICAgICAgIDxjbHItaWNvbiBzaGFwZT1cIm1vb25cIiBjbGFzcz1cImlzLXNvbGlkXCI+PC9jbHItaWNvbj5cclxuICAgIDwvZGl2PlxyXG48L2J1dHRvbj5cclxuIl19
@@ -18,11 +18,11 @@ export class UserMenuComponent {
18
18
  this.selectUiLanguage = new EventEmitter();
19
19
  }
20
20
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.3", ngImport: i0, type: UserMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
21
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.3", type: UserMenuComponent, selector: "vdr-user-menu", inputs: { userName: "userName", availableLanguages: "availableLanguages", uiLanguageAndLocale: "uiLanguageAndLocale" }, outputs: { logOut: "logOut", selectUiLanguage: "selectUiLanguage" }, ngImport: i0, template: "<vdr-dropdown>\r\n <button class=\"trigger user-menu-btn\" vdrDropdownTrigger>\r\n <div class=\"user-circle\">\r\n <clr-icon shape=\"user\" size=\"16\"></clr-icon>\r\n </div>\r\n <span class=\"user-name\">{{ userName }}</span>\r\n <clr-icon class=\"md:hidden\" shape=\"caret down\"></clr-icon>\r\n </button>\r\n <vdr-dropdown-menu vdrPosition=\"bottom-right\">\r\n <a [routerLink]=\"['/settings', 'profile']\" vdrDropdownItem>\r\n <clr-icon shape=\"user\" class=\"is-solid\"></clr-icon> {{ 'settings.profile' | translate }}\r\n </a>\r\n <ng-container *ngIf=\"1 < availableLanguages.length\">\r\n <button\r\n type=\"button\"\r\n vdrDropdownItem\r\n (click)=\"selectUiLanguage.emit()\"\r\n [title]=\"'common.select-display-language' | translate\"\r\n >\r\n <clr-icon shape=\"language\"></clr-icon> {{ uiLanguageAndLocale?.[0] | localeLanguageName }}\r\n </button>\r\n </ng-container>\r\n <div class=\"dropdown-item\">\r\n <vdr-theme-switcher></vdr-theme-switcher>\r\n </div>\r\n <div class=\"dropdown-divider\"></div>\r\n <button type=\"button\" vdrDropdownItem (click)=\"logOut.emit()\">\r\n <clr-icon shape=\"logout\"></clr-icon> {{ 'common.log-out' | translate }}\r\n </button>\r\n </vdr-dropdown-menu>\r\n</vdr-dropdown>\r\n", styles: [":host{display:flex;align-items:center;height:2.5rem;width:100%;padding:var(--space-unit);padding-left:0}@media screen and (max-width: 992px){:host{margin:0}}:host vdr-dropdown{width:100%}.user-menu-btn{display:flex;align-items:center;justify-content:space-between;border:none;font-size:var(--font-size-sm);width:100%;line-height:100%;height:40px;color:var(--color-text-100);background-color:var(--color-page-header-item-bg);border-radius:var(--border-radius-lg);cursor:pointer}.user-menu-btn:hover{color:var(--color-text-200)}@media screen and (min-width: 992px){.user-menu-btn{padding:calc(var(--space-unit) * 1.5) calc(var(--space-unit) * 2) calc(var(--space-unit) * 1.5) calc(var(--space-unit) * 1.5)}}.user-circle{display:inline-flex;align-items:center;justify-content:center;border-radius:100%;background-color:var(--color-primary-600);background-image:linear-gradient(135deg,var(--color-primary-500) 0%,var(--color-primary-700) 100%);width:24px;height:24px;margin-right:6px}@media screen and (max-width: 992px){.user-circle{margin-right:0}}.user-circle clr-icon{color:var(--color-text-inverse)}.user-name{margin-right:var(--space-unit);overflow:hidden;max-width:100px;text-overflow:ellipsis}@media screen and (max-width: 992px){.user-name{display:none}}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ClrIconCustomTag, selector: "clr-icon" }, { kind: "directive", type: i3.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: i4.DropdownComponent, selector: "vdr-dropdown", inputs: ["manualToggle"] }, { kind: "component", type: i5.DropdownMenuComponent, selector: "vdr-dropdown-menu", inputs: ["vdrPosition", "customClasses"] }, { kind: "directive", type: i6.DropdownTriggerDirective, selector: "[vdrDropdownTrigger]" }, { kind: "directive", type: i7.DropdownItemDirective, selector: "[vdrDropdownItem]" }, { kind: "component", type: i8.ThemeSwitcherComponent, selector: "vdr-theme-switcher" }, { kind: "pipe", type: i9.TranslatePipe, name: "translate" }, { kind: "pipe", type: i10.LocaleLanguageNamePipe, name: "localeLanguageName" }] }); }
21
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.3", type: UserMenuComponent, selector: "vdr-user-menu", inputs: { userName: "userName", availableLanguages: "availableLanguages", uiLanguageAndLocale: "uiLanguageAndLocale" }, outputs: { logOut: "logOut", selectUiLanguage: "selectUiLanguage" }, ngImport: i0, template: "<vdr-dropdown>\n <button class=\"trigger user-menu-btn\" vdrDropdownTrigger>\n <div class=\"user-circle\">\n <clr-icon shape=\"user\" size=\"16\"></clr-icon>\n </div>\n <span class=\"user-name\">{{ userName }}</span>\n <clr-icon class=\"md:hidden\" shape=\"caret down\"></clr-icon>\n </button>\n <vdr-dropdown-menu vdrPosition=\"bottom-right\">\n <a [routerLink]=\"['/settings', 'profile']\" vdrDropdownItem tabindex=\"0\">\n <clr-icon shape=\"user\" class=\"is-solid\"></clr-icon> {{ 'settings.profile' | translate }}\n </a>\n <ng-container *ngIf=\"1 < availableLanguages.length\">\n <button\n type=\"button\"\n vdrDropdownItem\n (click)=\"selectUiLanguage.emit()\"\n [title]=\"'common.select-display-language' | translate\"\n >\n <clr-icon shape=\"language\"></clr-icon> {{ uiLanguageAndLocale?.[0] | localeLanguageName }}\n </button>\n </ng-container>\n <vdr-theme-switcher vdrDropdownItem tabindex=\"0\"></vdr-theme-switcher>\n <div class=\"dropdown-divider\"></div>\n <button type=\"button\" vdrDropdownItem (click)=\"logOut.emit()\">\n <clr-icon shape=\"logout\"></clr-icon> {{ 'common.log-out' | translate }}\n </button>\n </vdr-dropdown-menu>\n</vdr-dropdown>\n", styles: [":host{display:flex;align-items:center;height:2.5rem;width:100%;padding:var(--space-unit);padding-left:0}@media screen and (max-width: 992px){:host{margin:0}}:host vdr-dropdown{width:100%}.user-menu-btn{display:flex;align-items:center;justify-content:space-between;border:none;font-size:var(--font-size-sm);width:100%;line-height:100%;height:40px;color:var(--color-text-100);background-color:var(--color-page-header-item-bg);border-radius:var(--border-radius-lg);cursor:pointer}.user-menu-btn:hover{color:var(--color-text-200)}@media screen and (min-width: 992px){.user-menu-btn{padding:calc(var(--space-unit) * 1.5) calc(var(--space-unit) * 2) calc(var(--space-unit) * 1.5) calc(var(--space-unit) * 1.5)}}.user-circle{display:inline-flex;align-items:center;justify-content:center;border-radius:100%;background-color:var(--color-primary-600);background-image:linear-gradient(135deg,var(--color-primary-500) 0%,var(--color-primary-700) 100%);width:24px;height:24px;margin-right:6px}@media screen and (max-width: 992px){.user-circle{margin-right:0}}.user-circle clr-icon{color:var(--color-text-inverse)}.user-name{margin-right:var(--space-unit);overflow:hidden;max-width:100px;text-overflow:ellipsis}@media screen and (max-width: 992px){.user-name{display:none}}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ClrIconCustomTag, selector: "clr-icon" }, { kind: "directive", type: i3.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: i4.DropdownComponent, selector: "vdr-dropdown", inputs: ["manualToggle"] }, { kind: "component", type: i5.DropdownMenuComponent, selector: "vdr-dropdown-menu", inputs: ["vdrPosition", "customClasses"] }, { kind: "directive", type: i6.DropdownTriggerDirective, selector: "[vdrDropdownTrigger]" }, { kind: "directive", type: i7.DropdownItemDirective, selector: "[vdrDropdownItem]" }, { kind: "component", type: i8.ThemeSwitcherComponent, selector: "vdr-theme-switcher" }, { kind: "pipe", type: i9.TranslatePipe, name: "translate" }, { kind: "pipe", type: i10.LocaleLanguageNamePipe, name: "localeLanguageName" }] }); }
22
22
  }
23
23
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.3", ngImport: i0, type: UserMenuComponent, decorators: [{
24
24
  type: Component,
25
- args: [{ selector: 'vdr-user-menu', template: "<vdr-dropdown>\r\n <button class=\"trigger user-menu-btn\" vdrDropdownTrigger>\r\n <div class=\"user-circle\">\r\n <clr-icon shape=\"user\" size=\"16\"></clr-icon>\r\n </div>\r\n <span class=\"user-name\">{{ userName }}</span>\r\n <clr-icon class=\"md:hidden\" shape=\"caret down\"></clr-icon>\r\n </button>\r\n <vdr-dropdown-menu vdrPosition=\"bottom-right\">\r\n <a [routerLink]=\"['/settings', 'profile']\" vdrDropdownItem>\r\n <clr-icon shape=\"user\" class=\"is-solid\"></clr-icon> {{ 'settings.profile' | translate }}\r\n </a>\r\n <ng-container *ngIf=\"1 < availableLanguages.length\">\r\n <button\r\n type=\"button\"\r\n vdrDropdownItem\r\n (click)=\"selectUiLanguage.emit()\"\r\n [title]=\"'common.select-display-language' | translate\"\r\n >\r\n <clr-icon shape=\"language\"></clr-icon> {{ uiLanguageAndLocale?.[0] | localeLanguageName }}\r\n </button>\r\n </ng-container>\r\n <div class=\"dropdown-item\">\r\n <vdr-theme-switcher></vdr-theme-switcher>\r\n </div>\r\n <div class=\"dropdown-divider\"></div>\r\n <button type=\"button\" vdrDropdownItem (click)=\"logOut.emit()\">\r\n <clr-icon shape=\"logout\"></clr-icon> {{ 'common.log-out' | translate }}\r\n </button>\r\n </vdr-dropdown-menu>\r\n</vdr-dropdown>\r\n", styles: [":host{display:flex;align-items:center;height:2.5rem;width:100%;padding:var(--space-unit);padding-left:0}@media screen and (max-width: 992px){:host{margin:0}}:host vdr-dropdown{width:100%}.user-menu-btn{display:flex;align-items:center;justify-content:space-between;border:none;font-size:var(--font-size-sm);width:100%;line-height:100%;height:40px;color:var(--color-text-100);background-color:var(--color-page-header-item-bg);border-radius:var(--border-radius-lg);cursor:pointer}.user-menu-btn:hover{color:var(--color-text-200)}@media screen and (min-width: 992px){.user-menu-btn{padding:calc(var(--space-unit) * 1.5) calc(var(--space-unit) * 2) calc(var(--space-unit) * 1.5) calc(var(--space-unit) * 1.5)}}.user-circle{display:inline-flex;align-items:center;justify-content:center;border-radius:100%;background-color:var(--color-primary-600);background-image:linear-gradient(135deg,var(--color-primary-500) 0%,var(--color-primary-700) 100%);width:24px;height:24px;margin-right:6px}@media screen and (max-width: 992px){.user-circle{margin-right:0}}.user-circle clr-icon{color:var(--color-text-inverse)}.user-name{margin-right:var(--space-unit);overflow:hidden;max-width:100px;text-overflow:ellipsis}@media screen and (max-width: 992px){.user-name{display:none}}\n"] }]
25
+ args: [{ selector: 'vdr-user-menu', template: "<vdr-dropdown>\n <button class=\"trigger user-menu-btn\" vdrDropdownTrigger>\n <div class=\"user-circle\">\n <clr-icon shape=\"user\" size=\"16\"></clr-icon>\n </div>\n <span class=\"user-name\">{{ userName }}</span>\n <clr-icon class=\"md:hidden\" shape=\"caret down\"></clr-icon>\n </button>\n <vdr-dropdown-menu vdrPosition=\"bottom-right\">\n <a [routerLink]=\"['/settings', 'profile']\" vdrDropdownItem tabindex=\"0\">\n <clr-icon shape=\"user\" class=\"is-solid\"></clr-icon> {{ 'settings.profile' | translate }}\n </a>\n <ng-container *ngIf=\"1 < availableLanguages.length\">\n <button\n type=\"button\"\n vdrDropdownItem\n (click)=\"selectUiLanguage.emit()\"\n [title]=\"'common.select-display-language' | translate\"\n >\n <clr-icon shape=\"language\"></clr-icon> {{ uiLanguageAndLocale?.[0] | localeLanguageName }}\n </button>\n </ng-container>\n <vdr-theme-switcher vdrDropdownItem tabindex=\"0\"></vdr-theme-switcher>\n <div class=\"dropdown-divider\"></div>\n <button type=\"button\" vdrDropdownItem (click)=\"logOut.emit()\">\n <clr-icon shape=\"logout\"></clr-icon> {{ 'common.log-out' | translate }}\n </button>\n </vdr-dropdown-menu>\n</vdr-dropdown>\n", styles: [":host{display:flex;align-items:center;height:2.5rem;width:100%;padding:var(--space-unit);padding-left:0}@media screen and (max-width: 992px){:host{margin:0}}:host vdr-dropdown{width:100%}.user-menu-btn{display:flex;align-items:center;justify-content:space-between;border:none;font-size:var(--font-size-sm);width:100%;line-height:100%;height:40px;color:var(--color-text-100);background-color:var(--color-page-header-item-bg);border-radius:var(--border-radius-lg);cursor:pointer}.user-menu-btn:hover{color:var(--color-text-200)}@media screen and (min-width: 992px){.user-menu-btn{padding:calc(var(--space-unit) * 1.5) calc(var(--space-unit) * 2) calc(var(--space-unit) * 1.5) calc(var(--space-unit) * 1.5)}}.user-circle{display:inline-flex;align-items:center;justify-content:center;border-radius:100%;background-color:var(--color-primary-600);background-image:linear-gradient(135deg,var(--color-primary-500) 0%,var(--color-primary-700) 100%);width:24px;height:24px;margin-right:6px}@media screen and (max-width: 992px){.user-circle{margin-right:0}}.user-circle clr-icon{color:var(--color-text-inverse)}.user-name{margin-right:var(--space-unit);overflow:hidden;max-width:100px;text-overflow:ellipsis}@media screen and (max-width: 992px){.user-name{display:none}}\n"] }]
26
26
  }], propDecorators: { userName: [{
27
27
  type: Input
28
28
  }], availableLanguages: [{
@@ -34,4 +34,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.3", ngImpor
34
34
  }], selectUiLanguage: [{
35
35
  type: Output
36
36
  }] } });
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1tZW51LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29yZS9zcmMvY29tcG9uZW50cy91c2VyLW1lbnUvdXNlci1tZW51LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29yZS9zcmMvY29tcG9uZW50cy91c2VyLW1lbnUvdXNlci1tZW51LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7Ozs7OztBQVN2RSxNQUFNLE9BQU8saUJBQWlCO0lBTDlCO1FBTWEsYUFBUSxHQUFHLEVBQUUsQ0FBQztRQUNkLHVCQUFrQixHQUFtQixFQUFFLENBQUM7UUFFdkMsV0FBTSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFDbEMscUJBQWdCLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztLQUN6RDs4R0FOWSxpQkFBaUI7a0dBQWpCLGlCQUFpQixrUENUOUIsdThDQStCQTs7MkZEdEJhLGlCQUFpQjtrQkFMN0IsU0FBUzsrQkFDSSxlQUFlOzhCQUtoQixRQUFRO3NCQUFoQixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBQ0ksTUFBTTtzQkFBZixNQUFNO2dCQUNHLGdCQUFnQjtzQkFBekIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBMYW5ndWFnZUNvZGUgfSBmcm9tICcuLi8uLi9jb21tb24vZ2VuZXJhdGVkLXR5cGVzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICd2ZHItdXNlci1tZW51JyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi91c2VyLW1lbnUuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vdXNlci1tZW51LmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBVc2VyTWVudUNvbXBvbmVudCB7XHJcbiAgICBASW5wdXQoKSB1c2VyTmFtZSA9ICcnO1xyXG4gICAgQElucHV0KCkgYXZhaWxhYmxlTGFuZ3VhZ2VzOiBMYW5ndWFnZUNvZGVbXSA9IFtdO1xyXG4gICAgQElucHV0KCkgdWlMYW5ndWFnZUFuZExvY2FsZTogW0xhbmd1YWdlQ29kZSwgc3RyaW5nIHwgdW5kZWZpbmVkXTtcclxuICAgIEBPdXRwdXQoKSBsb2dPdXQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcbiAgICBAT3V0cHV0KCkgc2VsZWN0VWlMYW5ndWFnZSA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxufVxyXG4iLCI8dmRyLWRyb3Bkb3duPlxyXG4gICAgPGJ1dHRvbiBjbGFzcz1cInRyaWdnZXIgdXNlci1tZW51LWJ0blwiIHZkckRyb3Bkb3duVHJpZ2dlcj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidXNlci1jaXJjbGVcIj5cclxuICAgICAgICA8Y2xyLWljb24gc2hhcGU9XCJ1c2VyXCIgc2l6ZT1cIjE2XCI+PC9jbHItaWNvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cInVzZXItbmFtZVwiPnt7IHVzZXJOYW1lIH19PC9zcGFuPlxyXG4gICAgICAgIDxjbHItaWNvbiBjbGFzcz1cIm1kOmhpZGRlblwiIHNoYXBlPVwiY2FyZXQgZG93blwiPjwvY2xyLWljb24+XHJcbiAgICA8L2J1dHRvbj5cclxuICAgIDx2ZHItZHJvcGRvd24tbWVudSB2ZHJQb3NpdGlvbj1cImJvdHRvbS1yaWdodFwiPlxyXG4gICAgICAgIDxhIFtyb3V0ZXJMaW5rXT1cIlsnL3NldHRpbmdzJywgJ3Byb2ZpbGUnXVwiIHZkckRyb3Bkb3duSXRlbT5cclxuICAgICAgICAgICAgPGNsci1pY29uIHNoYXBlPVwidXNlclwiIGNsYXNzPVwiaXMtc29saWRcIj48L2Nsci1pY29uPiB7eyAnc2V0dGluZ3MucHJvZmlsZScgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICA8L2E+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIjEgPCBhdmFpbGFibGVMYW5ndWFnZXMubGVuZ3RoXCI+XHJcbiAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgICAgdmRyRHJvcGRvd25JdGVtXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0VWlMYW5ndWFnZS5lbWl0KClcIlxyXG4gICAgICAgICAgICAgICAgW3RpdGxlXT1cIidjb21tb24uc2VsZWN0LWRpc3BsYXktbGFuZ3VhZ2UnIHwgdHJhbnNsYXRlXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPGNsci1pY29uIHNoYXBlPVwibGFuZ3VhZ2VcIj48L2Nsci1pY29uPiB7eyB1aUxhbmd1YWdlQW5kTG9jYWxlPy5bMF0gfCBsb2NhbGVMYW5ndWFnZU5hbWUgfX1cclxuICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImRyb3Bkb3duLWl0ZW1cIj5cclxuICAgICAgICAgICAgPHZkci10aGVtZS1zd2l0Y2hlcj48L3Zkci10aGVtZS1zd2l0Y2hlcj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZHJvcGRvd24tZGl2aWRlclwiPjwvZGl2PlxyXG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIHZkckRyb3Bkb3duSXRlbSAoY2xpY2spPVwibG9nT3V0LmVtaXQoKVwiPlxyXG4gICAgICAgICAgICA8Y2xyLWljb24gc2hhcGU9XCJsb2dvdXRcIj48L2Nsci1pY29uPiB7eyAnY29tbW9uLmxvZy1vdXQnIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICA8L3Zkci1kcm9wZG93bi1tZW51PlxyXG48L3Zkci1kcm9wZG93bj5cclxuIl19
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1tZW51LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29yZS9zcmMvY29tcG9uZW50cy91c2VyLW1lbnUvdXNlci1tZW51LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29yZS9zcmMvY29tcG9uZW50cy91c2VyLW1lbnUvdXNlci1tZW51LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7Ozs7OztBQVN2RSxNQUFNLE9BQU8saUJBQWlCO0lBTDlCO1FBTWEsYUFBUSxHQUFHLEVBQUUsQ0FBQztRQUNkLHVCQUFrQixHQUFtQixFQUFFLENBQUM7UUFFdkMsV0FBTSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFDbEMscUJBQWdCLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztLQUN6RDs4R0FOWSxpQkFBaUI7a0dBQWpCLGlCQUFpQixrUENUOUIsZzRDQTZCQTs7MkZEcEJhLGlCQUFpQjtrQkFMN0IsU0FBUzsrQkFDSSxlQUFlOzhCQUtoQixRQUFRO3NCQUFoQixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBQ0ksTUFBTTtzQkFBZixNQUFNO2dCQUNHLGdCQUFnQjtzQkFBekIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBMYW5ndWFnZUNvZGUgfSBmcm9tICcuLi8uLi9jb21tb24vZ2VuZXJhdGVkLXR5cGVzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICd2ZHItdXNlci1tZW51JyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi91c2VyLW1lbnUuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vdXNlci1tZW51LmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBVc2VyTWVudUNvbXBvbmVudCB7XHJcbiAgICBASW5wdXQoKSB1c2VyTmFtZSA9ICcnO1xyXG4gICAgQElucHV0KCkgYXZhaWxhYmxlTGFuZ3VhZ2VzOiBMYW5ndWFnZUNvZGVbXSA9IFtdO1xyXG4gICAgQElucHV0KCkgdWlMYW5ndWFnZUFuZExvY2FsZTogW0xhbmd1YWdlQ29kZSwgc3RyaW5nIHwgdW5kZWZpbmVkXTtcclxuICAgIEBPdXRwdXQoKSBsb2dPdXQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcbiAgICBAT3V0cHV0KCkgc2VsZWN0VWlMYW5ndWFnZSA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxufVxyXG4iLCI8dmRyLWRyb3Bkb3duPlxuICAgIDxidXR0b24gY2xhc3M9XCJ0cmlnZ2VyIHVzZXItbWVudS1idG5cIiB2ZHJEcm9wZG93blRyaWdnZXI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ1c2VyLWNpcmNsZVwiPlxuICAgICAgICAgICAgPGNsci1pY29uIHNoYXBlPVwidXNlclwiIHNpemU9XCIxNlwiPjwvY2xyLWljb24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8c3BhbiBjbGFzcz1cInVzZXItbmFtZVwiPnt7IHVzZXJOYW1lIH19PC9zcGFuPlxuICAgICAgICA8Y2xyLWljb24gY2xhc3M9XCJtZDpoaWRkZW5cIiBzaGFwZT1cImNhcmV0IGRvd25cIj48L2Nsci1pY29uPlxuICAgIDwvYnV0dG9uPlxuICAgIDx2ZHItZHJvcGRvd24tbWVudSB2ZHJQb3NpdGlvbj1cImJvdHRvbS1yaWdodFwiPlxuICAgICAgICA8YSBbcm91dGVyTGlua109XCJbJy9zZXR0aW5ncycsICdwcm9maWxlJ11cIiB2ZHJEcm9wZG93bkl0ZW0gdGFiaW5kZXg9XCIwXCI+XG4gICAgICAgICAgICA8Y2xyLWljb24gc2hhcGU9XCJ1c2VyXCIgY2xhc3M9XCJpcy1zb2xpZFwiPjwvY2xyLWljb24+IHt7ICdzZXR0aW5ncy5wcm9maWxlJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICA8L2E+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIxIDwgYXZhaWxhYmxlTGFuZ3VhZ2VzLmxlbmd0aFwiPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgIHZkckRyb3Bkb3duSXRlbVxuICAgICAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3RVaUxhbmd1YWdlLmVtaXQoKVwiXG4gICAgICAgICAgICAgICAgW3RpdGxlXT1cIidjb21tb24uc2VsZWN0LWRpc3BsYXktbGFuZ3VhZ2UnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8Y2xyLWljb24gc2hhcGU9XCJsYW5ndWFnZVwiPjwvY2xyLWljb24+IHt7IHVpTGFuZ3VhZ2VBbmRMb2NhbGU/LlswXSB8IGxvY2FsZUxhbmd1YWdlTmFtZSB9fVxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8dmRyLXRoZW1lLXN3aXRjaGVyIHZkckRyb3Bkb3duSXRlbSB0YWJpbmRleD1cIjBcIj48L3Zkci10aGVtZS1zd2l0Y2hlcj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImRyb3Bkb3duLWRpdmlkZXJcIj48L2Rpdj5cbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgdmRyRHJvcGRvd25JdGVtIChjbGljayk9XCJsb2dPdXQuZW1pdCgpXCI+XG4gICAgICAgICAgICA8Y2xyLWljb24gc2hhcGU9XCJsb2dvdXRcIj48L2Nsci1pY29uPiB7eyAnY29tbW9uLmxvZy1vdXQnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgIDwvdmRyLWRyb3Bkb3duLW1lbnU+XG48L3Zkci1kcm9wZG93bj5cbiJdfQ==
@@ -580,6 +580,14 @@ export const DELETE_PRODUCT_VARIANT = gql `
580
580
  }
581
581
  }
582
582
  `;
583
+ export const DELETE_PRODUCT_VARIANTS = gql `
584
+ mutation DeleteProductVariants($ids: [ID!]!) {
585
+ deleteProductVariants(ids: $ids) {
586
+ result
587
+ message
588
+ }
589
+ }
590
+ `;
583
591
  export const GET_PRODUCT_VARIANT_OPTIONS = gql `
584
592
  query GetProductVariantOptions($id: ID!) {
585
593
  product(id: $id) {
@@ -823,4 +831,4 @@ export const DELETE_TAG = gql `
823
831
  }
824
832
  }
825
833
  `;
826
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1kZWZpbml0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29yZS9zcmMvZGF0YS9kZWZpbml0aW9ucy9wcm9kdWN0LWRlZmluaXRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVyQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUU3RCxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsR0FBRyxDQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0FrQmhDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsR0FBRyxDQUFBOzs7OztDQUs5QixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sNkJBQTZCLEdBQUcsR0FBRyxDQUFBOzs7Ozs7Ozs7Ozs7OztDQWMvQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUcsR0FBRyxDQUFBOzs7Ozs7Ozs7Ozs7Ozs7Q0FlekMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLEdBQUcsQ0FBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O01Bc0RyQyx1QkFBdUI7TUFDdkIsY0FBYztDQUNuQixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUcsR0FBRyxDQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O01Bd0NwQyw2QkFBNkI7TUFDN0IsY0FBYztDQUNuQixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sMENBQTBDLEdBQUcsR0FBRyxDQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBc0I1RCxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLEdBQUcsQ0FBQTs7Ozs7Ozs7Ozs7O01BWTNCLHVCQUF1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Q0FBQTs7Ozs7Ozs7O01BU3pCLFlBQVk7Q0FDakIsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRyxHQUFHLENBQUE7Ozs7OztNQU1wQixZQUFZO0NBQ2pCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsR0FBRyxDQUFBOzs7Ozs7TUFNdkIsWUFBWTtDQUNqQixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLEdBQUcsQ0FBQTs7Ozs7O01BTXZCLFlBQVk7Q0FDakIsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxHQUFHLENBQUE7Ozs7Ozs7Q0FPNUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGdxbCB9IGZyb20gJ2Fwb2xsby1hbmd1bGFyJztcclxuXHJcbmltcG9ydCB7IEVSUk9SX1JFU1VMVF9GUkFHTUVOVCB9IGZyb20gJy4vc2hhcmVkLWRlZmluaXRpb25zJztcclxuXHJcbmV4cG9ydCBjb25zdCBBU1NFVF9GUkFHTUVOVCA9IGdxbGBcclxuICAgIGZyYWdtZW50IEFzc2V0IG9uIEFzc2V0IHtcclxuICAgICAgICBpZFxyXG4gICAgICAgIGNyZWF0ZWRBdFxyXG4gICAgICAgIHVwZGF0ZWRBdFxyXG4gICAgICAgIG5hbWVcclxuICAgICAgICBmaWxlU2l6ZVxyXG4gICAgICAgIG1pbWVUeXBlXHJcbiAgICAgICAgdHlwZVxyXG4gICAgICAgIHByZXZpZXdcclxuICAgICAgICBzb3VyY2VcclxuICAgICAgICB3aWR0aFxyXG4gICAgICAgIGhlaWdodFxyXG4gICAgICAgIGZvY2FsUG9pbnQge1xyXG4gICAgICAgICAgICB4XHJcbiAgICAgICAgICAgIHlcclxuICAgICAgICB9XHJcbiAgICB9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgVEFHX0ZSQUdNRU5UID0gZ3FsYFxyXG4gICAgZnJhZ21lbnQgVGFnIG9uIFRhZyB7XHJcbiAgICAgICAgaWRcclxuICAgICAgICB2YWx1ZVxyXG4gICAgfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IFBST0RVQ1RfT1BUSU9OX0dST1VQX0ZSQUdNRU5UID0gZ3FsYFxyXG4gICAgZnJhZ21lbnQgUHJvZHVjdE9wdGlvbkdyb3VwIG9uIFByb2R1Y3RPcHRpb25Hcm91cCB7XHJcbiAgICAgICAgaWRcclxuICAgICAgICBjcmVhdGVkQXRcclxuICAgICAgICB1cGRhdGVkQXRcclxuICAgICAgICBjb2RlXHJcbiAgICAgICAgbGFuZ3VhZ2VDb2RlXHJcbiAgICAgICAgbmFtZVxyXG4gICAgICAgIHRyYW5zbGF0aW9ucyB7XHJcbiAgICAgICAgICAgIGlkXHJcbiAgICAgICAgICAgIGxhbmd1YWdlQ29kZVxyXG4gICAgICAgICAgICBuYW1lXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IFBST0RVQ1RfT1BUSU9OX0ZSQUdNRU5UID0gZ3FsYFxyXG4gICAgZnJhZ21lbnQgUHJvZHVjdE9wdGlvbiBvbiBQcm9kdWN0T3B0aW9uIHtcclxuICAgICAgICBpZFxyXG4gICAgICAgIGNyZWF0ZWRBdFxyXG4gICAgICAgIHVwZGF0ZWRBdFxyXG4gICAgICAgIGNvZGVcclxuICAgICAgICBsYW5ndWFnZUNvZGVcclxuICAgICAgICBuYW1lXHJcbiAgICAgICAgZ3JvdXBJZFxyXG4gICAgICAgIHRyYW5zbGF0aW9ucyB7XHJcbiAgICAgICAgICAgIGlkXHJcbiAgICAgICAgICAgIGxhbmd1YWdlQ29kZVxyXG4gICAgICAgICAgICBuYW1lXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IFBST0RVQ1RfVkFSSUFOVF9GUkFHTUVOVCA9IGdxbGBcclxuICAgIGZyYWdtZW50IFByb2R1Y3RWYXJpYW50IG9uIFByb2R1Y3RWYXJpYW50IHtcclxuICAgICAgICBpZFxyXG4gICAgICAgIGNyZWF0ZWRBdFxyXG4gICAgICAgIHVwZGF0ZWRBdFxyXG4gICAgICAgIGVuYWJsZWRcclxuICAgICAgICBsYW5ndWFnZUNvZGVcclxuICAgICAgICBuYW1lXHJcbiAgICAgICAgcHJpY2VcclxuICAgICAgICBjdXJyZW5jeUNvZGVcclxuICAgICAgICBwcmljZVdpdGhUYXhcclxuICAgICAgICBzdG9ja09uSGFuZFxyXG4gICAgICAgIHN0b2NrQWxsb2NhdGVkXHJcbiAgICAgICAgdHJhY2tJbnZlbnRvcnlcclxuICAgICAgICBvdXRPZlN0b2NrVGhyZXNob2xkXHJcbiAgICAgICAgdXNlR2xvYmFsT3V0T2ZTdG9ja1RocmVzaG9sZFxyXG4gICAgICAgIHRheFJhdGVBcHBsaWVkIHtcclxuICAgICAgICAgICAgaWRcclxuICAgICAgICAgICAgbmFtZVxyXG4gICAgICAgICAgICB2YWx1ZVxyXG4gICAgICAgIH1cclxuICAgICAgICB0YXhDYXRlZ29yeSB7XHJcbiAgICAgICAgICAgIGlkXHJcbiAgICAgICAgICAgIG5hbWVcclxuICAgICAgICB9XHJcbiAgICAgICAgc2t1XHJcbiAgICAgICAgb3B0aW9ucyB7XHJcbiAgICAgICAgICAgIC4uLlByb2R1Y3RPcHRpb25cclxuICAgICAgICB9XHJcbiAgICAgICAgZmFjZXRWYWx1ZXMge1xyXG4gICAgICAgICAgICBpZFxyXG4gICAgICAgICAgICBjb2RlXHJcbiAgICAgICAgICAgIG5hbWVcclxuICAgICAgICAgICAgZmFjZXQge1xyXG4gICAgICAgICAgICAgICAgaWRcclxuICAgICAgICAgICAgICAgIG5hbWVcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBmZWF0dXJlZEFzc2V0IHtcclxuICAgICAgICAgICAgLi4uQXNzZXRcclxuICAgICAgICB9XHJcbiAgICAgICAgYXNzZXRzIHtcclxuICAgICAgICAgICAgLi4uQXNzZXRcclxuICAgICAgICB9XHJcbiAgICAgICAgdHJhbnNsYXRpb25zIHtcclxuICAgICAgICAgICAgaWRcclxuICAgICAgICAgICAgbGFuZ3VhZ2VDb2RlXHJcbiAgICAgICAgICAgIG5hbWVcclxuICAgICAgICB9XHJcbiAgICAgICAgY2hhbm5lbHMge1xyXG4gICAgICAgICAgICBpZFxyXG4gICAgICAgICAgICBjb2RlXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJHtQUk9EVUNUX09QVElPTl9GUkFHTUVOVH1cclxuICAgICR7QVNTRVRfRlJBR01FTlR9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgUFJPRFVDVF9ERVRBSUxfRlJBR01FTlQgPSBncWxgXHJcbiAgICBmcmFnbWVudCBQcm9kdWN0RGV0YWlsIG9uIFByb2R1Y3Qge1xyXG4gICAgICAgIGlkXHJcbiAgICAgICAgY3JlYXRlZEF0XHJcbiAgICAgICAgdXBkYXRlZEF0XHJcbiAgICAgICAgZW5hYmxlZFxyXG4gICAgICAgIGxhbmd1YWdlQ29kZVxyXG4gICAgICAgIG5hbWVcclxuICAgICAgICBzbHVnXHJcbiAgICAgICAgZGVzY3JpcHRpb25cclxuICAgICAgICBmZWF0dXJlZEFzc2V0IHtcclxuICAgICAgICAgICAgLi4uQXNzZXRcclxuICAgICAgICB9XHJcbiAgICAgICAgYXNzZXRzIHtcclxuICAgICAgICAgICAgLi4uQXNzZXRcclxuICAgICAgICB9XHJcbiAgICAgICAgdHJhbnNsYXRpb25zIHtcclxuICAgICAgICAgICAgaWRcclxuICAgICAgICAgICAgbGFuZ3VhZ2VDb2RlXHJcbiAgICAgICAgICAgIG5hbWVcclxuICAgICAgICAgICAgc2x1Z1xyXG4gICAgICAgICAgICBkZXNjcmlwdGlvblxyXG4gICAgICAgIH1cclxuICAgICAgICBvcHRpb25Hcm91cHMge1xyXG4gICAgICAgICAgICAuLi5Qcm9kdWN0T3B0aW9uR3JvdXBcclxuICAgICAgICB9XHJcbiAgICAgICAgZmFjZXRWYWx1ZXMge1xyXG4gICAgICAgICAgICBpZFxyXG4gICAgICAgICAgICBjb2RlXHJcbiAgICAgICAgICAgIG5hbWVcclxuICAgICAgICAgICAgZmFjZXQge1xyXG4gICAgICAgICAgICAgICAgaWRcclxuICAgICAgICAgICAgICAgIG5hbWVcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBjaGFubmVscyB7XHJcbiAgICAgICAgICAgIGlkXHJcbiAgICAgICAgICAgIGNvZGVcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAke1BST0RVQ1RfT1BUSU9OX0dST1VQX0ZSQUdNRU5UfVxyXG4gICAgJHtBU1NFVF9GUkFHTUVOVH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBQUk9EVUNUX09QVElPTl9HUk9VUF9XSVRIX09QVElPTlNfRlJBR01FTlQgPSBncWxgXHJcbiAgICBmcmFnbWVudCBQcm9kdWN0T3B0aW9uR3JvdXBXaXRoT3B0aW9ucyBvbiBQcm9kdWN0T3B0aW9uR3JvdXAge1xyXG4gICAgICAgIGlkXHJcbiAgICAgICAgY3JlYXRlZEF0XHJcbiAgICAgICAgdXBkYXRlZEF0XHJcbiAgICAgICAgbGFuZ3VhZ2VDb2RlXHJcbiAgICAgICAgY29kZVxyXG4gICAgICAgIG5hbWVcclxuICAgICAgICB0cmFuc2xhdGlvbnMge1xyXG4gICAgICAgICAgICBpZFxyXG4gICAgICAgICAgICBuYW1lXHJcbiAgICAgICAgfVxyXG4gICAgICAgIG9wdGlvbnMge1xyXG4gICAgICAgICAgICBpZFxyXG4gICAgICAgICAgICBsYW5ndWFnZUNvZGVcclxuICAgICAgICAgICAgbmFtZVxyXG4gICAgICAgICAgICBjb2RlXHJcbiAgICAgICAgICAgIHRyYW5zbGF0aW9ucyB7XHJcbiAgICAgICAgICAgICAgICBuYW1lXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgVVBEQVRFX1BST0RVQ1QgPSBncWxgXHJcbiAgICBtdXRhdGlvbiBVcGRhdGVQcm9kdWN0KCRpbnB1dDogVXBkYXRlUHJvZHVjdElucHV0ISwgJHZhcmlhbnRMaXN0T3B0aW9uczogUHJvZHVjdFZhcmlhbnRMaXN0T3B0aW9ucykge1xyXG4gICAgICAgIHVwZGF0ZVByb2R1Y3QoaW5wdXQ6ICRpbnB1dCkge1xyXG4gICAgICAgICAgICAuLi5Qcm9kdWN0RGV0YWlsXHJcbiAgICAgICAgICAgIHZhcmlhbnRMaXN0KG9wdGlvbnM6ICR2YXJpYW50TGlzdE9wdGlvbnMpIHtcclxuICAgICAgICAgICAgICAgIGl0ZW1zIHtcclxuICAgICAgICAgICAgICAgICAgICAuLi5Qcm9kdWN0VmFyaWFudFxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdG90YWxJdGVtc1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJHtQUk9EVUNUX0RFVEFJTF9GUkFHTUVOVH1cclxuICAgICR7UFJPRFVDVF9WQVJJQU5UX0ZSQUdNRU5UfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IENSRUFURV9QUk9EVUNUID0gZ3FsYFxyXG4gICAgbXV0YXRpb24gQ3JlYXRlUHJvZHVjdCgkaW5wdXQ6IENyZWF0ZVByb2R1Y3RJbnB1dCEsICR2YXJpYW50TGlzdE9wdGlvbnM6IFByb2R1Y3RWYXJpYW50TGlzdE9wdGlvbnMpIHtcclxuICAgICAgICBjcmVhdGVQcm9kdWN0KGlucHV0OiAkaW5wdXQpIHtcclxuICAgICAgICAgICAgLi4uUHJvZHVjdERldGFpbFxyXG4gICAgICAgICAgICB2YXJpYW50TGlzdChvcHRpb25zOiAkdmFyaWFudExpc3RPcHRpb25zKSB7XHJcbiAgICAgICAgICAgICAgICBpdGVtcyB7XHJcbiAgICAgICAgICAgICAgICAgICAgLi4uUHJvZHVjdFZhcmlhbnRcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHRvdGFsSXRlbXNcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICR7UFJPRFVDVF9ERVRBSUxfRlJBR01FTlR9XHJcbiAgICAke1BST0RVQ1RfVkFSSUFOVF9GUkFHTUVOVH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBERUxFVEVfUFJPRFVDVCA9IGdxbGBcclxuICAgIG11dGF0aW9uIERlbGV0ZVByb2R1Y3QoJGlkOiBJRCEpIHtcclxuICAgICAgICBkZWxldGVQcm9kdWN0KGlkOiAkaWQpIHtcclxuICAgICAgICAgICAgcmVzdWx0XHJcbiAgICAgICAgICAgIG1lc3NhZ2VcclxuICAgICAgICB9XHJcbiAgICB9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgREVMRVRFX1BST0RVQ1RTID0gZ3FsYFxyXG4gICAgbXV0YXRpb24gRGVsZXRlUHJvZHVjdHMoJGlkczogW0lEIV0hKSB7XHJcbiAgICAgICAgZGVsZXRlUHJvZHVjdHMoaWRzOiAkaWRzKSB7XHJcbiAgICAgICAgICAgIHJlc3VsdFxyXG4gICAgICAgICAgICBtZXNzYWdlXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IENSRUFURV9QUk9EVUNUX1ZBUklBTlRTID0gZ3FsYFxyXG4gICAgbXV0YXRpb24gQ3JlYXRlUHJvZHVjdFZhcmlhbnRzKCRpbnB1dDogW0NyZWF0ZVByb2R1Y3RWYXJpYW50SW5wdXQhXSEpIHtcclxuICAgICAgICBjcmVhdGVQcm9kdWN0VmFyaWFudHMoaW5wdXQ6ICRpbnB1dCkge1xyXG4gICAgICAgICAgICAuLi5Qcm9kdWN0VmFyaWFudFxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICR7UFJPRFVDVF9WQVJJQU5UX0ZSQUdNRU5UfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IFVQREFURV9QUk9EVUNUX1ZBUklBTlRTID0gZ3FsYFxyXG4gICAgbXV0YXRpb24gVXBkYXRlUHJvZHVjdFZhcmlhbnRzKCRpbnB1dDogW1VwZGF0ZVByb2R1Y3RWYXJpYW50SW5wdXQhXSEpIHtcclxuICAgICAgICB1cGRhdGVQcm9kdWN0VmFyaWFudHMoaW5wdXQ6ICRpbnB1dCkge1xyXG4gICAgICAgICAgICAuLi5Qcm9kdWN0VmFyaWFudFxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICR7UFJPRFVDVF9WQVJJQU5UX0ZSQUdNRU5UfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IENSRUFURV9QUk9EVUNUX09QVElPTl9HUk9VUCA9IGdxbGBcclxuICAgIG11dGF0aW9uIENyZWF0ZVByb2R1Y3RPcHRpb25Hcm91cCgkaW5wdXQ6IENyZWF0ZVByb2R1Y3RPcHRpb25Hcm91cElucHV0ISkge1xyXG4gICAgICAgIGNyZWF0ZVByb2R1Y3RPcHRpb25Hcm91cChpbnB1dDogJGlucHV0KSB7XHJcbiAgICAgICAgICAgIC4uLlByb2R1Y3RPcHRpb25Hcm91cFdpdGhPcHRpb25zXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJHtQUk9EVUNUX09QVElPTl9HUk9VUF9XSVRIX09QVElPTlNfRlJBR01FTlR9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgR0VUX1BST0RVQ1RfT1BUSU9OX0dST1VQID0gZ3FsYFxyXG4gICAgcXVlcnkgR2V0UHJvZHVjdE9wdGlvbkdyb3VwKCRpZDogSUQhKSB7XHJcbiAgICAgICAgcHJvZHVjdE9wdGlvbkdyb3VwKGlkOiAkaWQpIHtcclxuICAgICAgICAgICAgLi4uUHJvZHVjdE9wdGlvbkdyb3VwV2l0aE9wdGlvbnNcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAke1BST0RVQ1RfT1BUSU9OX0dST1VQX1dJVEhfT1BUSU9OU19GUkFHTUVOVH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBBRERfT1BUSU9OX1RPX0dST1VQID0gZ3FsYFxyXG4gICAgbXV0YXRpb24gQWRkT3B0aW9uVG9Hcm91cCgkaW5wdXQ6IENyZWF0ZVByb2R1Y3RPcHRpb25JbnB1dCEpIHtcclxuICAgICAgICBjcmVhdGVQcm9kdWN0T3B0aW9uKGlucHV0OiAkaW5wdXQpIHtcclxuICAgICAgICAgICAgaWRcclxuICAgICAgICAgICAgY3JlYXRlZEF0XHJcbiAgICAgICAgICAgIHVwZGF0ZWRBdFxyXG4gICAgICAgICAgICBuYW1lXHJcbiAgICAgICAgICAgIGNvZGVcclxuICAgICAgICAgICAgZ3JvdXBJZFxyXG4gICAgICAgIH1cclxuICAgIH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBBRERfT1BUSU9OX0dST1VQX1RPX1BST0RVQ1QgPSBncWxgXHJcbiAgICBtdXRhdGlvbiBBZGRPcHRpb25Hcm91cFRvUHJvZHVjdCgkcHJvZHVjdElkOiBJRCEsICRvcHRpb25Hcm91cElkOiBJRCEpIHtcclxuICAgICAgICBhZGRPcHRpb25Hcm91cFRvUHJvZHVjdChwcm9kdWN0SWQ6ICRwcm9kdWN0SWQsIG9wdGlvbkdyb3VwSWQ6ICRvcHRpb25Hcm91cElkKSB7XHJcbiAgICAgICAgICAgIGlkXHJcbiAgICAgICAgICAgIGNyZWF0ZWRBdFxyXG4gICAgICAgICAgICB1cGRhdGVkQXRcclxuICAgICAgICAgICAgb3B0aW9uR3JvdXBzIHtcclxuICAgICAgICAgICAgICAgIGlkXHJcbiAgICAgICAgICAgICAgICBjcmVhdGVkQXRcclxuICAgICAgICAgICAgICAgIHVwZGF0ZWRBdFxyXG4gICAgICAgICAgICAgICAgY29kZVxyXG4gICAgICAgICAgICAgICAgb3B0aW9ucyB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWRcclxuICAgICAgICAgICAgICAgICAgICBjcmVhdGVkQXRcclxuICAgICAgICAgICAgICAgICAgICB1cGRhdGVkQXRcclxuICAgICAgICAgICAgICAgICAgICBjb2RlXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgUkVNT1ZFX09QVElPTl9HUk9VUF9GUk9NX1BST0RVQ1QgPSBncWxgXHJcbiAgICBtdXRhdGlvbiBSZW1vdmVPcHRpb25Hcm91cEZyb21Qcm9kdWN0KCRwcm9kdWN0SWQ6IElEISwgJG9wdGlvbkdyb3VwSWQ6IElEISwgJGZvcmNlOiBCb29sZWFuKSB7XHJcbiAgICAgICAgcmVtb3ZlT3B0aW9uR3JvdXBGcm9tUHJvZHVjdChwcm9kdWN0SWQ6ICRwcm9kdWN0SWQsIG9wdGlvbkdyb3VwSWQ6ICRvcHRpb25Hcm91cElkLCBmb3JjZTogJGZvcmNlKSB7XHJcbiAgICAgICAgICAgIC4uLiBvbiBQcm9kdWN0IHtcclxuICAgICAgICAgICAgICAgIGlkXHJcbiAgICAgICAgICAgICAgICBjcmVhdGVkQXRcclxuICAgICAgICAgICAgICAgIHVwZGF0ZWRBdFxyXG4gICAgICAgICAgICAgICAgb3B0aW9uR3JvdXBzIHtcclxuICAgICAgICAgICAgICAgICAgICBpZFxyXG4gICAgICAgICAgICAgICAgICAgIGNyZWF0ZWRBdFxyXG4gICAgICAgICAgICAgICAgICAgIHVwZGF0ZWRBdFxyXG4gICAgICAgICAgICAgICAgICAgIGNvZGVcclxuICAgICAgICAgICAgICAgICAgICBvcHRpb25zIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWRcclxuICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlZEF0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHVwZGF0ZWRBdFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2RlXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC4uLkVycm9yUmVzdWx0XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJHtFUlJPUl9SRVNVTFRfRlJBR01FTlR9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgR0VUX1BST0RVQ1RfV0lUSF9WQVJJQU5UUyA9IGdxbGBcclxuICAgIHF1ZXJ5IEdldFByb2R1Y3RXaXRoVmFyaWFudHMoJGlkOiBJRCEsICR2YXJpYW50TGlzdE9wdGlvbnM6IFByb2R1Y3RWYXJpYW50TGlzdE9wdGlvbnMpIHtcclxuICAgICAgICBwcm9kdWN0KGlkOiAkaWQpIHtcclxuICAgICAgICAgICAgLi4uUHJvZHVjdERldGFpbFxyXG4gICAgICAgICAgICB2YXJpYW50TGlzdChvcHRpb25zOiAkdmFyaWFudExpc3RPcHRpb25zKSB7XHJcbiAgICAgICAgICAgICAgICBpdGVtcyB7XHJcbiAgICAgICAgICAgICAgICAgICAgLi4uUHJvZHVjdFZhcmlhbnRcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHRvdGFsSXRlbXNcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICR7UFJPRFVDVF9ERVRBSUxfRlJBR01FTlR9XHJcbiAgICAke1BST0RVQ1RfVkFSSUFOVF9GUkFHTUVOVH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBHRVRfUFJPRFVDVF9TSU1QTEUgPSBncWxgXHJcbiAgICBxdWVyeSBHZXRQcm9kdWN0U2ltcGxlKCRpZDogSUQhKSB7XHJcbiAgICAgICAgcHJvZHVjdChpZDogJGlkKSB7XHJcbiAgICAgICAgICAgIGlkXHJcbiAgICAgICAgICAgIG5hbWVcclxuICAgICAgICAgICAgZmVhdHVyZWRBc3NldCB7XHJcbiAgICAgICAgICAgICAgICAuLi5Bc3NldFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJHtBU1NFVF9GUkFHTUVOVH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBQUk9EVUNUX0ZPUl9MSVNUX0ZSQUdNRU5UID0gZ3FsYFxyXG4gICAgZnJhZ21lbnQgUHJvZHVjdEZvckxpc3Qgb24gUHJvZHVjdCB7XHJcbiAgICAgICAgaWRcclxuICAgICAgICBjcmVhdGVkQXRcclxuICAgICAgICB1cGRhdGVkQXRcclxuICAgICAgICBlbmFibGVkXHJcbiAgICAgICAgbGFuZ3VhZ2VDb2RlXHJcbiAgICAgICAgbmFtZVxyXG4gICAgICAgIHNsdWdcclxuICAgICAgICBmZWF0dXJlZEFzc2V0IHtcclxuICAgICAgICAgICAgaWRcclxuICAgICAgICAgICAgY3JlYXRlZEF0XHJcbiAgICAgICAgICAgIHVwZGF0ZWRBdFxyXG4gICAgICAgICAgICBwcmV2aWV3XHJcbiAgICAgICAgICAgIGZvY2FsUG9pbnQge1xyXG4gICAgICAgICAgICAgICAgeFxyXG4gICAgICAgICAgICAgICAgeVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHZhcmlhbnRMaXN0IHtcclxuICAgICAgICAgICAgdG90YWxJdGVtc1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBHRVRfUFJPRFVDVF9MSVNUID0gZ3FsYFxyXG4gICAgcXVlcnkgR2V0UHJvZHVjdExpc3QoJG9wdGlvbnM6IFByb2R1Y3RMaXN0T3B0aW9ucykge1xyXG4gICAgICAgIHByb2R1Y3RzKG9wdGlvbnM6ICRvcHRpb25zKSB7XHJcbiAgICAgICAgICAgIGl0ZW1zIHtcclxuICAgICAgICAgICAgICAgIC4uLlByb2R1Y3RGb3JMaXN0XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdG90YWxJdGVtc1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICR7UFJPRFVDVF9GT1JfTElTVF9GUkFHTUVOVH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBHRVRfUFJPRFVDVF9PUFRJT05fR1JPVVBTID0gZ3FsYFxyXG4gICAgcXVlcnkgR2V0UHJvZHVjdE9wdGlvbkdyb3VwcygkZmlsdGVyVGVybTogU3RyaW5nKSB7XHJcbiAgICAgICAgcHJvZHVjdE9wdGlvbkdyb3VwcyhmaWx0ZXJUZXJtOiAkZmlsdGVyVGVybSkge1xyXG4gICAgICAgICAgICBpZFxyXG4gICAgICAgICAgICBjcmVhdGVkQXRcclxuICAgICAgICAgICAgdXBkYXRlZEF0XHJcbiAgICAgICAgICAgIGxhbmd1YWdlQ29kZVxyXG4gICAgICAgICAgICBjb2RlXHJcbiAgICAgICAgICAgIG5hbWVcclxuICAgICAgICAgICAgb3B0aW9ucyB7XHJcbiAgICAgICAgICAgICAgICBpZFxyXG4gICAgICAgICAgICAgICAgY3JlYXRlZEF0XHJcbiAgICAgICAgICAgICAgICB1cGRhdGVkQXRcclxuICAgICAgICAgICAgICAgIGxhbmd1YWdlQ29kZVxyXG4gICAgICAgICAgICAgICAgY29kZVxyXG4gICAgICAgICAgICAgICAgbmFtZVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IEdFVF9BU1NFVF9MSVNUID0gZ3FsYFxyXG4gICAgcXVlcnkgR2V0QXNzZXRMaXN0KCRvcHRpb25zOiBBc3NldExpc3RPcHRpb25zKSB7XHJcbiAgICAgICAgYXNzZXRzKG9wdGlvbnM6ICRvcHRpb25zKSB7XHJcbiAgICAgICAgICAgIGl0ZW1zIHtcclxuICAgICAgICAgICAgICAgIC4uLkFzc2V0XHJcbiAgICAgICAgICAgICAgICB0YWdzIHtcclxuICAgICAgICAgICAgICAgICAgICAuLi5UYWdcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0b3RhbEl0ZW1zXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJHtBU1NFVF9GUkFHTUVOVH1cclxuICAgICR7VEFHX0ZSQUdNRU5UfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IEdFVF9BU1NFVCA9IGdxbGBcclxuICAgIHF1ZXJ5IEdldEFzc2V0KCRpZDogSUQhKSB7XHJcbiAgICAgICAgYXNzZXQoaWQ6ICRpZCkge1xyXG4gICAgICAgICAgICAuLi5Bc3NldFxyXG4gICAgICAgICAgICB0YWdzIHtcclxuICAgICAgICAgICAgICAgIC4uLlRhZ1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJHtBU1NFVF9GUkFHTUVOVH1cclxuICAgICR7VEFHX0ZSQUdNRU5UfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IENSRUFURV9BU1NFVFMgPSBncWxgXHJcbiAgICBtdXRhdGlvbiBDcmVhdGVBc3NldHMoJGlucHV0OiBbQ3JlYXRlQXNzZXRJbnB1dCFdISkge1xyXG4gICAgICAgIGNyZWF0ZUFzc2V0cyhpbnB1dDogJGlucHV0KSB7XHJcbiAgICAgICAgICAgIC4uLkFzc2V0XHJcbiAgICAgICAgICAgIC4uLiBvbiBBc3NldCB7XHJcbiAgICAgICAgICAgICAgICB0YWdzIHtcclxuICAgICAgICAgICAgICAgICAgICAuLi5UYWdcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAuLi4gb24gRXJyb3JSZXN1bHQge1xyXG4gICAgICAgICAgICAgICAgbWVzc2FnZVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJHtBU1NFVF9GUkFHTUVOVH1cclxuICAgICR7VEFHX0ZSQUdNRU5UfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IFVQREFURV9BU1NFVCA9IGdxbGBcclxuICAgIG11dGF0aW9uIFVwZGF0ZUFzc2V0KCRpbnB1dDogVXBkYXRlQXNzZXRJbnB1dCEpIHtcclxuICAgICAgICB1cGRhdGVBc3NldChpbnB1dDogJGlucHV0KSB7XHJcbiAgICAgICAgICAgIC4uLkFzc2V0XHJcbiAgICAgICAgICAgIHRhZ3Mge1xyXG4gICAgICAgICAgICAgICAgLi4uVGFnXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAke0FTU0VUX0ZSQUdNRU5UfVxyXG4gICAgJHtUQUdfRlJBR01FTlR9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgREVMRVRFX0FTU0VUUyA9IGdxbGBcclxuICAgIG11dGF0aW9uIERlbGV0ZUFzc2V0cygkaW5wdXQ6IERlbGV0ZUFzc2V0c0lucHV0ISkge1xyXG4gICAgICAgIGRlbGV0ZUFzc2V0cyhpbnB1dDogJGlucHV0KSB7XHJcbiAgICAgICAgICAgIHJlc3VsdFxyXG4gICAgICAgICAgICBtZXNzYWdlXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IFNFQVJDSF9QUk9EVUNUUyA9IGdxbGBcclxuICAgIHF1ZXJ5IFNlYXJjaFByb2R1Y3RzKCRpbnB1dDogU2VhcmNoSW5wdXQhKSB7XHJcbiAgICAgICAgc2VhcmNoKGlucHV0OiAkaW5wdXQpIHtcclxuICAgICAgICAgICAgdG90YWxJdGVtc1xyXG4gICAgICAgICAgICBpdGVtcyB7XHJcbiAgICAgICAgICAgICAgICBlbmFibGVkXHJcbiAgICAgICAgICAgICAgICBwcm9kdWN0SWRcclxuICAgICAgICAgICAgICAgIHByb2R1Y3ROYW1lXHJcbiAgICAgICAgICAgICAgICBzbHVnXHJcbiAgICAgICAgICAgICAgICBwcmljZVdpdGhUYXgge1xyXG4gICAgICAgICAgICAgICAgICAgIC4uLiBvbiBQcmljZVJhbmdlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbWluXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1heFxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAuLi4gb24gU2luZ2xlUHJpY2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHByb2R1Y3RBc3NldCB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWRcclxuICAgICAgICAgICAgICAgICAgICBwcmV2aWV3XHJcbiAgICAgICAgICAgICAgICAgICAgZm9jYWxQb2ludCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHhcclxuICAgICAgICAgICAgICAgICAgICAgICAgeVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGN1cnJlbmN5Q29kZVxyXG4gICAgICAgICAgICAgICAgcHJvZHVjdFZhcmlhbnRJZFxyXG4gICAgICAgICAgICAgICAgcHJvZHVjdFZhcmlhbnROYW1lXHJcbiAgICAgICAgICAgICAgICBwcm9kdWN0VmFyaWFudEFzc2V0IHtcclxuICAgICAgICAgICAgICAgICAgICBpZFxyXG4gICAgICAgICAgICAgICAgICAgIHByZXZpZXdcclxuICAgICAgICAgICAgICAgICAgICBmb2NhbFBvaW50IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgeFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB5XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgc2t1XHJcbiAgICAgICAgICAgICAgICBjaGFubmVsSWRzXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZmFjZXRWYWx1ZXMge1xyXG4gICAgICAgICAgICAgICAgY291bnRcclxuICAgICAgICAgICAgICAgIGZhY2V0VmFsdWUge1xyXG4gICAgICAgICAgICAgICAgICAgIGlkXHJcbiAgICAgICAgICAgICAgICAgICAgY3JlYXRlZEF0XHJcbiAgICAgICAgICAgICAgICAgICAgdXBkYXRlZEF0XHJcbiAgICAgICAgICAgICAgICAgICAgbmFtZVxyXG4gICAgICAgICAgICAgICAgICAgIGZhY2V0IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWRcclxuICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlZEF0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHVwZGF0ZWRBdFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IFBST0RVQ1RfU0VMRUNUT1JfU0VBUkNIID0gZ3FsYFxyXG4gICAgcXVlcnkgUHJvZHVjdFNlbGVjdG9yU2VhcmNoKCR0ZXJtOiBTdHJpbmchLCAkdGFrZTogSW50ISkge1xyXG4gICAgICAgIHNlYXJjaChpbnB1dDogeyBncm91cEJ5UHJvZHVjdDogZmFsc2UsIHRlcm06ICR0ZXJtLCB0YWtlOiAkdGFrZSB9KSB7XHJcbiAgICAgICAgICAgIGl0ZW1zIHtcclxuICAgICAgICAgICAgICAgIHByb2R1Y3RWYXJpYW50SWRcclxuICAgICAgICAgICAgICAgIHByb2R1Y3RWYXJpYW50TmFtZVxyXG4gICAgICAgICAgICAgICAgcHJvZHVjdEFzc2V0IHtcclxuICAgICAgICAgICAgICAgICAgICBpZFxyXG4gICAgICAgICAgICAgICAgICAgIHByZXZpZXdcclxuICAgICAgICAgICAgICAgICAgICBmb2NhbFBvaW50IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgeFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB5XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgcHJpY2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIC4uLiBvbiBTaW5nbGVQcmljZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgcHJpY2VXaXRoVGF4IHtcclxuICAgICAgICAgICAgICAgICAgICAuLi4gb24gU2luZ2xlUHJpY2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHNrdVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IFVQREFURV9QUk9EVUNUX09QVElPTl9HUk9VUCA9IGdxbGBcclxuICAgIG11dGF0aW9uIFVwZGF0ZVByb2R1Y3RPcHRpb25Hcm91cCgkaW5wdXQ6IFVwZGF0ZVByb2R1Y3RPcHRpb25Hcm91cElucHV0ISkge1xyXG4gICAgICAgIHVwZGF0ZVByb2R1Y3RPcHRpb25Hcm91cChpbnB1dDogJGlucHV0KSB7XHJcbiAgICAgICAgICAgIC4uLlByb2R1Y3RPcHRpb25Hcm91cFxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICR7UFJPRFVDVF9PUFRJT05fR1JPVVBfRlJBR01FTlR9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgVVBEQVRFX1BST0RVQ1RfT1BUSU9OID0gZ3FsYFxyXG4gICAgbXV0YXRpb24gVXBkYXRlUHJvZHVjdE9wdGlvbigkaW5wdXQ6IFVwZGF0ZVByb2R1Y3RPcHRpb25JbnB1dCEpIHtcclxuICAgICAgICB1cGRhdGVQcm9kdWN0T3B0aW9uKGlucHV0OiAkaW5wdXQpIHtcclxuICAgICAgICAgICAgLi4uUHJvZHVjdE9wdGlvblxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICR7UFJPRFVDVF9PUFRJT05fRlJBR01FTlR9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgREVMRVRFX1BST0RVQ1RfT1BUSU9OID0gZ3FsYFxyXG4gICAgbXV0YXRpb24gRGVsZXRlUHJvZHVjdE9wdGlvbigkaWQ6IElEISkge1xyXG4gICAgICAgIGRlbGV0ZVByb2R1Y3RPcHRpb24oaWQ6ICRpZCkge1xyXG4gICAgICAgICAgICByZXN1bHRcclxuICAgICAgICAgICAgbWVzc2FnZVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBERUxFVEVfUFJPRFVDVF9WQVJJQU5UID0gZ3FsYFxyXG4gICAgbXV0YXRpb24gRGVsZXRlUHJvZHVjdFZhcmlhbnQoJGlkOiBJRCEpIHtcclxuICAgICAgICBkZWxldGVQcm9kdWN0VmFyaWFudChpZDogJGlkKSB7XHJcbiAgICAgICAgICAgIHJlc3VsdFxyXG4gICAgICAgICAgICBtZXNzYWdlXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IEdFVF9QUk9EVUNUX1ZBUklBTlRfT1BUSU9OUyA9IGdxbGBcclxuICAgIHF1ZXJ5IEdldFByb2R1Y3RWYXJpYW50T3B0aW9ucygkaWQ6IElEISkge1xyXG4gICAgICAgIHByb2R1Y3QoaWQ6ICRpZCkge1xyXG4gICAgICAgICAgICBpZFxyXG4gICAgICAgICAgICBjcmVhdGVkQXRcclxuICAgICAgICAgICAgdXBkYXRlZEF0XHJcbiAgICAgICAgICAgIG5hbWVcclxuICAgICAgICAgICAgbGFuZ3VhZ2VDb2RlXHJcbiAgICAgICAgICAgIG9wdGlvbkdyb3VwcyB7XHJcbiAgICAgICAgICAgICAgICAuLi5Qcm9kdWN0T3B0aW9uR3JvdXBcclxuICAgICAgICAgICAgICAgIG9wdGlvbnMge1xyXG4gICAgICAgICAgICAgICAgICAgIC4uLlByb2R1Y3RPcHRpb25cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB2YXJpYW50cyB7XHJcbiAgICAgICAgICAgICAgICBpZFxyXG4gICAgICAgICAgICAgICAgY3JlYXRlZEF0XHJcbiAgICAgICAgICAgICAgICB1cGRhdGVkQXRcclxuICAgICAgICAgICAgICAgIGVuYWJsZWRcclxuICAgICAgICAgICAgICAgIG5hbWVcclxuICAgICAgICAgICAgICAgIHNrdVxyXG4gICAgICAgICAgICAgICAgcHJpY2VcclxuICAgICAgICAgICAgICAgIHByaWNlV2l0aFRheFxyXG4gICAgICAgICAgICAgICAgY3VycmVuY3lDb2RlXHJcbiAgICAgICAgICAgICAgICBzdG9ja09uSGFuZFxyXG4gICAgICAgICAgICAgICAgZW5hYmxlZFxyXG4gICAgICAgICAgICAgICAgb3B0aW9ucyB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWRcclxuICAgICAgICAgICAgICAgICAgICBjcmVhdGVkQXRcclxuICAgICAgICAgICAgICAgICAgICB1cGRhdGVkQXRcclxuICAgICAgICAgICAgICAgICAgICBuYW1lXHJcbiAgICAgICAgICAgICAgICAgICAgY29kZVxyXG4gICAgICAgICAgICAgICAgICAgIGdyb3VwSWRcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICR7UFJPRFVDVF9PUFRJT05fR1JPVVBfRlJBR01FTlR9XHJcbiAgICAke1BST0RVQ1RfT1BUSU9OX0ZSQUdNRU5UfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IEFTU0lHTl9QUk9EVUNUU19UT19DSEFOTkVMID0gZ3FsYFxyXG4gICAgbXV0YXRpb24gQXNzaWduUHJvZHVjdHNUb0NoYW5uZWwoJGlucHV0OiBBc3NpZ25Qcm9kdWN0c1RvQ2hhbm5lbElucHV0ISkge1xyXG4gICAgICAgIGFzc2lnblByb2R1Y3RzVG9DaGFubmVsKGlucHV0OiAkaW5wdXQpIHtcclxuICAgICAgICAgICAgaWRcclxuICAgICAgICAgICAgY2hhbm5lbHMge1xyXG4gICAgICAgICAgICAgICAgaWRcclxuICAgICAgICAgICAgICAgIGNvZGVcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBBU1NJR05fVkFSSUFOVFNfVE9fQ0hBTk5FTCA9IGdxbGBcclxuICAgIG11dGF0aW9uIEFzc2lnblZhcmlhbnRzVG9DaGFubmVsKCRpbnB1dDogQXNzaWduUHJvZHVjdFZhcmlhbnRzVG9DaGFubmVsSW5wdXQhKSB7XHJcbiAgICAgICAgYXNzaWduUHJvZHVjdFZhcmlhbnRzVG9DaGFubmVsKGlucHV0OiAkaW5wdXQpIHtcclxuICAgICAgICAgICAgaWRcclxuICAgICAgICAgICAgY2hhbm5lbHMge1xyXG4gICAgICAgICAgICAgICAgaWRcclxuICAgICAgICAgICAgICAgIGNvZGVcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBSRU1PVkVfUFJPRFVDVFNfRlJPTV9DSEFOTkVMID0gZ3FsYFxyXG4gICAgbXV0YXRpb24gUmVtb3ZlUHJvZHVjdHNGcm9tQ2hhbm5lbCgkaW5wdXQ6IFJlbW92ZVByb2R1Y3RzRnJvbUNoYW5uZWxJbnB1dCEpIHtcclxuICAgICAgICByZW1vdmVQcm9kdWN0c0Zyb21DaGFubmVsKGlucHV0OiAkaW5wdXQpIHtcclxuICAgICAgICAgICAgaWRcclxuICAgICAgICAgICAgY2hhbm5lbHMge1xyXG4gICAgICAgICAgICAgICAgaWRcclxuICAgICAgICAgICAgICAgIGNvZGVcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBSRU1PVkVfVkFSSUFOVFNfRlJPTV9DSEFOTkVMID0gZ3FsYFxyXG4gICAgbXV0YXRpb24gUmVtb3ZlVmFyaWFudHNGcm9tQ2hhbm5lbCgkaW5wdXQ6IFJlbW92ZVByb2R1Y3RWYXJpYW50c0Zyb21DaGFubmVsSW5wdXQhKSB7XHJcbiAgICAgICAgcmVtb3ZlUHJvZHVjdFZhcmlhbnRzRnJvbUNoYW5uZWwoaW5wdXQ6ICRpbnB1dCkge1xyXG4gICAgICAgICAgICBpZFxyXG4gICAgICAgICAgICBjaGFubmVscyB7XHJcbiAgICAgICAgICAgICAgICBpZFxyXG4gICAgICAgICAgICAgICAgY29kZVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IEdFVF9QUk9EVUNUX1ZBUklBTlQgPSBncWxgXHJcbiAgICBxdWVyeSBHZXRQcm9kdWN0VmFyaWFudCgkaWQ6IElEISkge1xyXG4gICAgICAgIHByb2R1Y3RWYXJpYW50KGlkOiAkaWQpIHtcclxuICAgICAgICAgICAgaWRcclxuICAgICAgICAgICAgbmFtZVxyXG4gICAgICAgICAgICBza3VcclxuICAgICAgICAgICAgc3RvY2tPbkhhbmRcclxuICAgICAgICAgICAgc3RvY2tBbGxvY2F0ZWRcclxuICAgICAgICAgICAgc3RvY2tMZXZlbFxyXG4gICAgICAgICAgICB1c2VHbG9iYWxPdXRPZlN0b2NrVGhyZXNob2xkXHJcbiAgICAgICAgICAgIGZlYXR1cmVkQXNzZXQge1xyXG4gICAgICAgICAgICAgICAgaWRcclxuICAgICAgICAgICAgICAgIHByZXZpZXdcclxuICAgICAgICAgICAgICAgIGZvY2FsUG9pbnQge1xyXG4gICAgICAgICAgICAgICAgICAgIHhcclxuICAgICAgICAgICAgICAgICAgICB5XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcHJpY2VcclxuICAgICAgICAgICAgcHJpY2VXaXRoVGF4XHJcbiAgICAgICAgICAgIHByb2R1Y3Qge1xyXG4gICAgICAgICAgICAgICAgaWRcclxuICAgICAgICAgICAgICAgIGZlYXR1cmVkQXNzZXQge1xyXG4gICAgICAgICAgICAgICAgICAgIGlkXHJcbiAgICAgICAgICAgICAgICAgICAgcHJldmlld1xyXG4gICAgICAgICAgICAgICAgICAgIGZvY2FsUG9pbnQge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB4XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHlcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgR0VUX1BST0RVQ1RfVkFSSUFOVF9MSVNUX1NJTVBMRSA9IGdxbGBcclxuICAgIHF1ZXJ5IEdldFByb2R1Y3RWYXJpYW50TGlzdFNpbXBsZSgkb3B0aW9uczogUHJvZHVjdFZhcmlhbnRMaXN0T3B0aW9ucyEsICRwcm9kdWN0SWQ6IElEKSB7XHJcbiAgICAgICAgcHJvZHVjdFZhcmlhbnRzKG9wdGlvbnM6ICRvcHRpb25zLCBwcm9kdWN0SWQ6ICRwcm9kdWN0SWQpIHtcclxuICAgICAgICAgICAgaXRlbXMge1xyXG4gICAgICAgICAgICAgICAgaWRcclxuICAgICAgICAgICAgICAgIG5hbWVcclxuICAgICAgICAgICAgICAgIHNrdVxyXG4gICAgICAgICAgICAgICAgZmVhdHVyZWRBc3NldCB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWRcclxuICAgICAgICAgICAgICAgICAgICBwcmV2aWV3XHJcbiAgICAgICAgICAgICAgICAgICAgZm9jYWxQb2ludCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHhcclxuICAgICAgICAgICAgICAgICAgICAgICAgeVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHByb2R1Y3Qge1xyXG4gICAgICAgICAgICAgICAgICAgIGlkXHJcbiAgICAgICAgICAgICAgICAgICAgZmVhdHVyZWRBc3NldCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHByZXZpZXdcclxuICAgICAgICAgICAgICAgICAgICAgICAgZm9jYWxQb2ludCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB4XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB5XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdG90YWxJdGVtc1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBHRVRfUFJPRFVDVF9WQVJJQU5UX0xJU1RfRk9SX1BST0RVQ1QgPSBncWxgXHJcbiAgICBxdWVyeSBHZXRQcm9kdWN0VmFyaWFudExpc3RGb3JQcm9kdWN0KCRvcHRpb25zOiBQcm9kdWN0VmFyaWFudExpc3RPcHRpb25zISwgJHByb2R1Y3RJZDogSUQpIHtcclxuICAgICAgICBwcm9kdWN0VmFyaWFudHMob3B0aW9uczogJG9wdGlvbnMsIHByb2R1Y3RJZDogJHByb2R1Y3RJZCkge1xyXG4gICAgICAgICAgICBpdGVtcyB7XHJcbiAgICAgICAgICAgICAgICAuLi5Qcm9kdWN0VmFyaWFudFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRvdGFsSXRlbXNcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAke1BST0RVQ1RfVkFSSUFOVF9GUkFHTUVOVH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBHRVRfUFJPRFVDVF9WQVJJQU5UX0xJU1QgPSBncWxgXHJcbiAgICBxdWVyeSBHZXRQcm9kdWN0VmFyaWFudExpc3QoJG9wdGlvbnM6IFByb2R1Y3RWYXJpYW50TGlzdE9wdGlvbnMhKSB7XHJcbiAgICAgICAgcHJvZHVjdFZhcmlhbnRzKG9wdGlvbnM6ICRvcHRpb25zKSB7XHJcbiAgICAgICAgICAgIGl0ZW1zIHtcclxuICAgICAgICAgICAgICAgIGlkXHJcbiAgICAgICAgICAgICAgICBjcmVhdGVkQXRcclxuICAgICAgICAgICAgICAgIHVwZGF0ZWRBdFxyXG4gICAgICAgICAgICAgICAgZW5hYmxlZFxyXG4gICAgICAgICAgICAgICAgbGFuZ3VhZ2VDb2RlXHJcbiAgICAgICAgICAgICAgICBuYW1lXHJcbiAgICAgICAgICAgICAgICBwcmljZVxyXG4gICAgICAgICAgICAgICAgY3VycmVuY3lDb2RlXHJcbiAgICAgICAgICAgICAgICBwcmljZVdpdGhUYXhcclxuICAgICAgICAgICAgICAgIHRyYWNrSW52ZW50b3J5XHJcbiAgICAgICAgICAgICAgICBvdXRPZlN0b2NrVGhyZXNob2xkXHJcbiAgICAgICAgICAgICAgICBzdG9ja0xldmVscyB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWRcclxuICAgICAgICAgICAgICAgICAgICBjcmVhdGVkQXRcclxuICAgICAgICAgICAgICAgICAgICB1cGRhdGVkQXRcclxuICAgICAgICAgICAgICAgICAgICBzdG9ja0xvY2F0aW9uSWRcclxuICAgICAgICAgICAgICAgICAgICBzdG9ja09uSGFuZFxyXG4gICAgICAgICAgICAgICAgICAgIHN0b2NrQWxsb2NhdGVkXHJcbiAgICAgICAgICAgICAgICAgICAgc3RvY2tMb2NhdGlvbiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZWRBdFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB1cGRhdGVkQXRcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHVzZUdsb2JhbE91dE9mU3RvY2tUaHJlc2hvbGRcclxuICAgICAgICAgICAgICAgIHNrdVxyXG4gICAgICAgICAgICAgICAgZmVhdHVyZWRBc3NldCB7XHJcbiAgICAgICAgICAgICAgICAgICAgLi4uQXNzZXRcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0b3RhbEl0ZW1zXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJHtBU1NFVF9GUkFHTUVOVH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBHRVRfVEFHX0xJU1QgPSBncWxgXHJcbiAgICBxdWVyeSBHZXRUYWdMaXN0KCRvcHRpb25zOiBUYWdMaXN0T3B0aW9ucykge1xyXG4gICAgICAgIHRhZ3Mob3B0aW9uczogJG9wdGlvbnMpIHtcclxuICAgICAgICAgICAgaXRlbXMge1xyXG4gICAgICAgICAgICAgICAgLi4uVGFnXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdG90YWxJdGVtc1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICR7VEFHX0ZSQUdNRU5UfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IEdFVF9UQUcgPSBncWxgXHJcbiAgICBxdWVyeSBHZXRUYWcoJGlkOiBJRCEpIHtcclxuICAgICAgICB0YWcoaWQ6ICRpZCkge1xyXG4gICAgICAgICAgICAuLi5UYWdcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAke1RBR19GUkFHTUVOVH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBDUkVBVEVfVEFHID0gZ3FsYFxyXG4gICAgbXV0YXRpb24gQ3JlYXRlVGFnKCRpbnB1dDogQ3JlYXRlVGFnSW5wdXQhKSB7XHJcbiAgICAgICAgY3JlYXRlVGFnKGlucHV0OiAkaW5wdXQpIHtcclxuICAgICAgICAgICAgLi4uVGFnXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJHtUQUdfRlJBR01FTlR9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgVVBEQVRFX1RBRyA9IGdxbGBcclxuICAgIG11dGF0aW9uIFVwZGF0ZVRhZygkaW5wdXQ6IFVwZGF0ZVRhZ0lucHV0ISkge1xyXG4gICAgICAgIHVwZGF0ZVRhZyhpbnB1dDogJGlucHV0KSB7XHJcbiAgICAgICAgICAgIC4uLlRhZ1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICR7VEFHX0ZSQUdNRU5UfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IERFTEVURV9UQUcgPSBncWxgXHJcbiAgICBtdXRhdGlvbiBEZWxldGVUYWcoJGlkOiBJRCEpIHtcclxuICAgICAgICBkZWxldGVUYWcoaWQ6ICRpZCkge1xyXG4gICAgICAgICAgICBtZXNzYWdlXHJcbiAgICAgICAgICAgIHJlc3VsdFxyXG4gICAgICAgIH1cclxuICAgIH1cclxuYDtcclxuIl19
834
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1kZWZpbml0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29yZS9zcmMvZGF0YS9kZWZpbml0aW9ucy9wcm9kdWN0LWRlZmluaXRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVyQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUU3RCxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsR0FBRyxDQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0FrQmhDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsR0FBRyxDQUFBOzs7OztDQUs5QixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sNkJBQTZCLEdBQUcsR0FBRyxDQUFBOzs7Ozs7Ozs7Ozs7OztDQWMvQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUcsR0FBRyxDQUFBOzs7Ozs7Ozs7Ozs7Ozs7Q0FlekMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLEdBQUcsQ0FBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O01Bc0RyQyx1QkFBdUI7TUFDdkIsY0FBYztDQUNuQixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUcsR0FBRyxDQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O01Bd0NwQyw2QkFBNkI7TUFDN0IsY0FBYztDQUNuQixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sMENBQTBDLEdBQUcsR0FBRyxDQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBc0I1RCxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLEdBQUcsQ0FBQTs7Ozs7Ozs7Ozs7O01BWTNCLHVCQUF1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O01Bc0NyQyxjQUFjO0NBQ25CLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsR0FBRyxDQUFBOzs7Ozs7Ozs7TUFTekIsWUFBWTtDQUNqQixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHLEdBQUcsQ0FBQTs7Ozs7O01BTXBCLFlBQVk7Q0FDakIsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxHQUFHLENBQUE7Ozs7OztNQU12QixZQUFZO0NBQ2pCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsR0FBRyxDQUFBOzs7Ozs7TUFNdkIsWUFBWTtDQUNqQixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLEdBQUcsQ0FBQTs7Ozs7OztDQU81QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZ3FsIH0gZnJvbSAnYXBvbGxvLWFuZ3VsYXInO1xyXG5cclxuaW1wb3J0IHsgRVJST1JfUkVTVUxUX0ZSQUdNRU5UIH0gZnJvbSAnLi9zaGFyZWQtZGVmaW5pdGlvbnMnO1xyXG5cclxuZXhwb3J0IGNvbnN0IEFTU0VUX0ZSQUdNRU5UID0gZ3FsYFxyXG4gICAgZnJhZ21lbnQgQXNzZXQgb24gQXNzZXQge1xyXG4gICAgICAgIGlkXHJcbiAgICAgICAgY3JlYXRlZEF0XHJcbiAgICAgICAgdXBkYXRlZEF0XHJcbiAgICAgICAgbmFtZVxyXG4gICAgICAgIGZpbGVTaXplXHJcbiAgICAgICAgbWltZVR5cGVcclxuICAgICAgICB0eXBlXHJcbiAgICAgICAgcHJldmlld1xyXG4gICAgICAgIHNvdXJjZVxyXG4gICAgICAgIHdpZHRoXHJcbiAgICAgICAgaGVpZ2h0XHJcbiAgICAgICAgZm9jYWxQb2ludCB7XHJcbiAgICAgICAgICAgIHhcclxuICAgICAgICAgICAgeVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBUQUdfRlJBR01FTlQgPSBncWxgXHJcbiAgICBmcmFnbWVudCBUYWcgb24gVGFnIHtcclxuICAgICAgICBpZFxyXG4gICAgICAgIHZhbHVlXHJcbiAgICB9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgUFJPRFVDVF9PUFRJT05fR1JPVVBfRlJBR01FTlQgPSBncWxgXHJcbiAgICBmcmFnbWVudCBQcm9kdWN0T3B0aW9uR3JvdXAgb24gUHJvZHVjdE9wdGlvbkdyb3VwIHtcclxuICAgICAgICBpZFxyXG4gICAgICAgIGNyZWF0ZWRBdFxyXG4gICAgICAgIHVwZGF0ZWRBdFxyXG4gICAgICAgIGNvZGVcclxuICAgICAgICBsYW5ndWFnZUNvZGVcclxuICAgICAgICBuYW1lXHJcbiAgICAgICAgdHJhbnNsYXRpb25zIHtcclxuICAgICAgICAgICAgaWRcclxuICAgICAgICAgICAgbGFuZ3VhZ2VDb2RlXHJcbiAgICAgICAgICAgIG5hbWVcclxuICAgICAgICB9XHJcbiAgICB9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgUFJPRFVDVF9PUFRJT05fRlJBR01FTlQgPSBncWxgXHJcbiAgICBmcmFnbWVudCBQcm9kdWN0T3B0aW9uIG9uIFByb2R1Y3RPcHRpb24ge1xyXG4gICAgICAgIGlkXHJcbiAgICAgICAgY3JlYXRlZEF0XHJcbiAgICAgICAgdXBkYXRlZEF0XHJcbiAgICAgICAgY29kZVxyXG4gICAgICAgIGxhbmd1YWdlQ29kZVxyXG4gICAgICAgIG5hbWVcclxuICAgICAgICBncm91cElkXHJcbiAgICAgICAgdHJhbnNsYXRpb25zIHtcclxuICAgICAgICAgICAgaWRcclxuICAgICAgICAgICAgbGFuZ3VhZ2VDb2RlXHJcbiAgICAgICAgICAgIG5hbWVcclxuICAgICAgICB9XHJcbiAgICB9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgUFJPRFVDVF9WQVJJQU5UX0ZSQUdNRU5UID0gZ3FsYFxyXG4gICAgZnJhZ21lbnQgUHJvZHVjdFZhcmlhbnQgb24gUHJvZHVjdFZhcmlhbnQge1xyXG4gICAgICAgIGlkXHJcbiAgICAgICAgY3JlYXRlZEF0XHJcbiAgICAgICAgdXBkYXRlZEF0XHJcbiAgICAgICAgZW5hYmxlZFxyXG4gICAgICAgIGxhbmd1YWdlQ29kZVxyXG4gICAgICAgIG5hbWVcclxuICAgICAgICBwcmljZVxyXG4gICAgICAgIGN1cnJlbmN5Q29kZVxyXG4gICAgICAgIHByaWNlV2l0aFRheFxyXG4gICAgICAgIHN0b2NrT25IYW5kXHJcbiAgICAgICAgc3RvY2tBbGxvY2F0ZWRcclxuICAgICAgICB0cmFja0ludmVudG9yeVxyXG4gICAgICAgIG91dE9mU3RvY2tUaHJlc2hvbGRcclxuICAgICAgICB1c2VHbG9iYWxPdXRPZlN0b2NrVGhyZXNob2xkXHJcbiAgICAgICAgdGF4UmF0ZUFwcGxpZWQge1xyXG4gICAgICAgICAgICBpZFxyXG4gICAgICAgICAgICBuYW1lXHJcbiAgICAgICAgICAgIHZhbHVlXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRheENhdGVnb3J5IHtcclxuICAgICAgICAgICAgaWRcclxuICAgICAgICAgICAgbmFtZVxyXG4gICAgICAgIH1cclxuICAgICAgICBza3VcclxuICAgICAgICBvcHRpb25zIHtcclxuICAgICAgICAgICAgLi4uUHJvZHVjdE9wdGlvblxyXG4gICAgICAgIH1cclxuICAgICAgICBmYWNldFZhbHVlcyB7XHJcbiAgICAgICAgICAgIGlkXHJcbiAgICAgICAgICAgIGNvZGVcclxuICAgICAgICAgICAgbmFtZVxyXG4gICAgICAgICAgICBmYWNldCB7XHJcbiAgICAgICAgICAgICAgICBpZFxyXG4gICAgICAgICAgICAgICAgbmFtZVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGZlYXR1cmVkQXNzZXQge1xyXG4gICAgICAgICAgICAuLi5Bc3NldFxyXG4gICAgICAgIH1cclxuICAgICAgICBhc3NldHMge1xyXG4gICAgICAgICAgICAuLi5Bc3NldFxyXG4gICAgICAgIH1cclxuICAgICAgICB0cmFuc2xhdGlvbnMge1xyXG4gICAgICAgICAgICBpZFxyXG4gICAgICAgICAgICBsYW5ndWFnZUNvZGVcclxuICAgICAgICAgICAgbmFtZVxyXG4gICAgICAgIH1cclxuICAgICAgICBjaGFubmVscyB7XHJcbiAgICAgICAgICAgIGlkXHJcbiAgICAgICAgICAgIGNvZGVcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAke1BST0RVQ1RfT1BUSU9OX0ZSQUdNRU5UfVxyXG4gICAgJHtBU1NFVF9GUkFHTUVOVH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBQUk9EVUNUX0RFVEFJTF9GUkFHTUVOVCA9IGdxbGBcclxuICAgIGZyYWdtZW50IFByb2R1Y3REZXRhaWwgb24gUHJvZHVjdCB7XHJcbiAgICAgICAgaWRcclxuICAgICAgICBjcmVhdGVkQXRcclxuICAgICAgICB1cGRhdGVkQXRcclxuICAgICAgICBlbmFibGVkXHJcbiAgICAgICAgbGFuZ3VhZ2VDb2RlXHJcbiAgICAgICAgbmFtZVxyXG4gICAgICAgIHNsdWdcclxuICAgICAgICBkZXNjcmlwdGlvblxyXG4gICAgICAgIGZlYXR1cmVkQXNzZXQge1xyXG4gICAgICAgICAgICAuLi5Bc3NldFxyXG4gICAgICAgIH1cclxuICAgICAgICBhc3NldHMge1xyXG4gICAgICAgICAgICAuLi5Bc3NldFxyXG4gICAgICAgIH1cclxuICAgICAgICB0cmFuc2xhdGlvbnMge1xyXG4gICAgICAgICAgICBpZFxyXG4gICAgICAgICAgICBsYW5ndWFnZUNvZGVcclxuICAgICAgICAgICAgbmFtZVxyXG4gICAgICAgICAgICBzbHVnXHJcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uXHJcbiAgICAgICAgfVxyXG4gICAgICAgIG9wdGlvbkdyb3VwcyB7XHJcbiAgICAgICAgICAgIC4uLlByb2R1Y3RPcHRpb25Hcm91cFxyXG4gICAgICAgIH1cclxuICAgICAgICBmYWNldFZhbHVlcyB7XHJcbiAgICAgICAgICAgIGlkXHJcbiAgICAgICAgICAgIGNvZGVcclxuICAgICAgICAgICAgbmFtZVxyXG4gICAgICAgICAgICBmYWNldCB7XHJcbiAgICAgICAgICAgICAgICBpZFxyXG4gICAgICAgICAgICAgICAgbmFtZVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNoYW5uZWxzIHtcclxuICAgICAgICAgICAgaWRcclxuICAgICAgICAgICAgY29kZVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICR7UFJPRFVDVF9PUFRJT05fR1JPVVBfRlJBR01FTlR9XHJcbiAgICAke0FTU0VUX0ZSQUdNRU5UfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IFBST0RVQ1RfT1BUSU9OX0dST1VQX1dJVEhfT1BUSU9OU19GUkFHTUVOVCA9IGdxbGBcclxuICAgIGZyYWdtZW50IFByb2R1Y3RPcHRpb25Hcm91cFdpdGhPcHRpb25zIG9uIFByb2R1Y3RPcHRpb25Hcm91cCB7XHJcbiAgICAgICAgaWRcclxuICAgICAgICBjcmVhdGVkQXRcclxuICAgICAgICB1cGRhdGVkQXRcclxuICAgICAgICBsYW5ndWFnZUNvZGVcclxuICAgICAgICBjb2RlXHJcbiAgICAgICAgbmFtZVxyXG4gICAgICAgIHRyYW5zbGF0aW9ucyB7XHJcbiAgICAgICAgICAgIGlkXHJcbiAgICAgICAgICAgIG5hbWVcclxuICAgICAgICB9XHJcbiAgICAgICAgb3B0aW9ucyB7XHJcbiAgICAgICAgICAgIGlkXHJcbiAgICAgICAgICAgIGxhbmd1YWdlQ29kZVxyXG4gICAgICAgICAgICBuYW1lXHJcbiAgICAgICAgICAgIGNvZGVcclxuICAgICAgICAgICAgdHJhbnNsYXRpb25zIHtcclxuICAgICAgICAgICAgICAgIG5hbWVcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBVUERBVEVfUFJPRFVDVCA9IGdxbGBcclxuICAgIG11dGF0aW9uIFVwZGF0ZVByb2R1Y3QoJGlucHV0OiBVcGRhdGVQcm9kdWN0SW5wdXQhLCAkdmFyaWFudExpc3RPcHRpb25zOiBQcm9kdWN0VmFyaWFudExpc3RPcHRpb25zKSB7XHJcbiAgICAgICAgdXBkYXRlUHJvZHVjdChpbnB1dDogJGlucHV0KSB7XHJcbiAgICAgICAgICAgIC4uLlByb2R1Y3REZXRhaWxcclxuICAgICAgICAgICAgdmFyaWFudExpc3Qob3B0aW9uczogJHZhcmlhbnRMaXN0T3B0aW9ucykge1xyXG4gICAgICAgICAgICAgICAgaXRlbXMge1xyXG4gICAgICAgICAgICAgICAgICAgIC4uLlByb2R1Y3RWYXJpYW50XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB0b3RhbEl0ZW1zXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAke1BST0RVQ1RfREVUQUlMX0ZSQUdNRU5UfVxyXG4gICAgJHtQUk9EVUNUX1ZBUklBTlRfRlJBR01FTlR9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgQ1JFQVRFX1BST0RVQ1QgPSBncWxgXHJcbiAgICBtdXRhdGlvbiBDcmVhdGVQcm9kdWN0KCRpbnB1dDogQ3JlYXRlUHJvZHVjdElucHV0ISwgJHZhcmlhbnRMaXN0T3B0aW9uczogUHJvZHVjdFZhcmlhbnRMaXN0T3B0aW9ucykge1xyXG4gICAgICAgIGNyZWF0ZVByb2R1Y3QoaW5wdXQ6ICRpbnB1dCkge1xyXG4gICAgICAgICAgICAuLi5Qcm9kdWN0RGV0YWlsXHJcbiAgICAgICAgICAgIHZhcmlhbnRMaXN0KG9wdGlvbnM6ICR2YXJpYW50TGlzdE9wdGlvbnMpIHtcclxuICAgICAgICAgICAgICAgIGl0ZW1zIHtcclxuICAgICAgICAgICAgICAgICAgICAuLi5Qcm9kdWN0VmFyaWFudFxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdG90YWxJdGVtc1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJHtQUk9EVUNUX0RFVEFJTF9GUkFHTUVOVH1cclxuICAgICR7UFJPRFVDVF9WQVJJQU5UX0ZSQUdNRU5UfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IERFTEVURV9QUk9EVUNUID0gZ3FsYFxyXG4gICAgbXV0YXRpb24gRGVsZXRlUHJvZHVjdCgkaWQ6IElEISkge1xyXG4gICAgICAgIGRlbGV0ZVByb2R1Y3QoaWQ6ICRpZCkge1xyXG4gICAgICAgICAgICByZXN1bHRcclxuICAgICAgICAgICAgbWVzc2FnZVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBERUxFVEVfUFJPRFVDVFMgPSBncWxgXHJcbiAgICBtdXRhdGlvbiBEZWxldGVQcm9kdWN0cygkaWRzOiBbSUQhXSEpIHtcclxuICAgICAgICBkZWxldGVQcm9kdWN0cyhpZHM6ICRpZHMpIHtcclxuICAgICAgICAgICAgcmVzdWx0XHJcbiAgICAgICAgICAgIG1lc3NhZ2VcclxuICAgICAgICB9XHJcbiAgICB9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgQ1JFQVRFX1BST0RVQ1RfVkFSSUFOVFMgPSBncWxgXHJcbiAgICBtdXRhdGlvbiBDcmVhdGVQcm9kdWN0VmFyaWFudHMoJGlucHV0OiBbQ3JlYXRlUHJvZHVjdFZhcmlhbnRJbnB1dCFdISkge1xyXG4gICAgICAgIGNyZWF0ZVByb2R1Y3RWYXJpYW50cyhpbnB1dDogJGlucHV0KSB7XHJcbiAgICAgICAgICAgIC4uLlByb2R1Y3RWYXJpYW50XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJHtQUk9EVUNUX1ZBUklBTlRfRlJBR01FTlR9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgVVBEQVRFX1BST0RVQ1RfVkFSSUFOVFMgPSBncWxgXHJcbiAgICBtdXRhdGlvbiBVcGRhdGVQcm9kdWN0VmFyaWFudHMoJGlucHV0OiBbVXBkYXRlUHJvZHVjdFZhcmlhbnRJbnB1dCFdISkge1xyXG4gICAgICAgIHVwZGF0ZVByb2R1Y3RWYXJpYW50cyhpbnB1dDogJGlucHV0KSB7XHJcbiAgICAgICAgICAgIC4uLlByb2R1Y3RWYXJpYW50XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJHtQUk9EVUNUX1ZBUklBTlRfRlJBR01FTlR9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgQ1JFQVRFX1BST0RVQ1RfT1BUSU9OX0dST1VQID0gZ3FsYFxyXG4gICAgbXV0YXRpb24gQ3JlYXRlUHJvZHVjdE9wdGlvbkdyb3VwKCRpbnB1dDogQ3JlYXRlUHJvZHVjdE9wdGlvbkdyb3VwSW5wdXQhKSB7XHJcbiAgICAgICAgY3JlYXRlUHJvZHVjdE9wdGlvbkdyb3VwKGlucHV0OiAkaW5wdXQpIHtcclxuICAgICAgICAgICAgLi4uUHJvZHVjdE9wdGlvbkdyb3VwV2l0aE9wdGlvbnNcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAke1BST0RVQ1RfT1BUSU9OX0dST1VQX1dJVEhfT1BUSU9OU19GUkFHTUVOVH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBHRVRfUFJPRFVDVF9PUFRJT05fR1JPVVAgPSBncWxgXHJcbiAgICBxdWVyeSBHZXRQcm9kdWN0T3B0aW9uR3JvdXAoJGlkOiBJRCEpIHtcclxuICAgICAgICBwcm9kdWN0T3B0aW9uR3JvdXAoaWQ6ICRpZCkge1xyXG4gICAgICAgICAgICAuLi5Qcm9kdWN0T3B0aW9uR3JvdXBXaXRoT3B0aW9uc1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICR7UFJPRFVDVF9PUFRJT05fR1JPVVBfV0lUSF9PUFRJT05TX0ZSQUdNRU5UfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IEFERF9PUFRJT05fVE9fR1JPVVAgPSBncWxgXHJcbiAgICBtdXRhdGlvbiBBZGRPcHRpb25Ub0dyb3VwKCRpbnB1dDogQ3JlYXRlUHJvZHVjdE9wdGlvbklucHV0ISkge1xyXG4gICAgICAgIGNyZWF0ZVByb2R1Y3RPcHRpb24oaW5wdXQ6ICRpbnB1dCkge1xyXG4gICAgICAgICAgICBpZFxyXG4gICAgICAgICAgICBjcmVhdGVkQXRcclxuICAgICAgICAgICAgdXBkYXRlZEF0XHJcbiAgICAgICAgICAgIG5hbWVcclxuICAgICAgICAgICAgY29kZVxyXG4gICAgICAgICAgICBncm91cElkXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IEFERF9PUFRJT05fR1JPVVBfVE9fUFJPRFVDVCA9IGdxbGBcclxuICAgIG11dGF0aW9uIEFkZE9wdGlvbkdyb3VwVG9Qcm9kdWN0KCRwcm9kdWN0SWQ6IElEISwgJG9wdGlvbkdyb3VwSWQ6IElEISkge1xyXG4gICAgICAgIGFkZE9wdGlvbkdyb3VwVG9Qcm9kdWN0KHByb2R1Y3RJZDogJHByb2R1Y3RJZCwgb3B0aW9uR3JvdXBJZDogJG9wdGlvbkdyb3VwSWQpIHtcclxuICAgICAgICAgICAgaWRcclxuICAgICAgICAgICAgY3JlYXRlZEF0XHJcbiAgICAgICAgICAgIHVwZGF0ZWRBdFxyXG4gICAgICAgICAgICBvcHRpb25Hcm91cHMge1xyXG4gICAgICAgICAgICAgICAgaWRcclxuICAgICAgICAgICAgICAgIGNyZWF0ZWRBdFxyXG4gICAgICAgICAgICAgICAgdXBkYXRlZEF0XHJcbiAgICAgICAgICAgICAgICBjb2RlXHJcbiAgICAgICAgICAgICAgICBvcHRpb25zIHtcclxuICAgICAgICAgICAgICAgICAgICBpZFxyXG4gICAgICAgICAgICAgICAgICAgIGNyZWF0ZWRBdFxyXG4gICAgICAgICAgICAgICAgICAgIHVwZGF0ZWRBdFxyXG4gICAgICAgICAgICAgICAgICAgIGNvZGVcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBSRU1PVkVfT1BUSU9OX0dST1VQX0ZST01fUFJPRFVDVCA9IGdxbGBcclxuICAgIG11dGF0aW9uIFJlbW92ZU9wdGlvbkdyb3VwRnJvbVByb2R1Y3QoJHByb2R1Y3RJZDogSUQhLCAkb3B0aW9uR3JvdXBJZDogSUQhLCAkZm9yY2U6IEJvb2xlYW4pIHtcclxuICAgICAgICByZW1vdmVPcHRpb25Hcm91cEZyb21Qcm9kdWN0KHByb2R1Y3RJZDogJHByb2R1Y3RJZCwgb3B0aW9uR3JvdXBJZDogJG9wdGlvbkdyb3VwSWQsIGZvcmNlOiAkZm9yY2UpIHtcclxuICAgICAgICAgICAgLi4uIG9uIFByb2R1Y3Qge1xyXG4gICAgICAgICAgICAgICAgaWRcclxuICAgICAgICAgICAgICAgIGNyZWF0ZWRBdFxyXG4gICAgICAgICAgICAgICAgdXBkYXRlZEF0XHJcbiAgICAgICAgICAgICAgICBvcHRpb25Hcm91cHMge1xyXG4gICAgICAgICAgICAgICAgICAgIGlkXHJcbiAgICAgICAgICAgICAgICAgICAgY3JlYXRlZEF0XHJcbiAgICAgICAgICAgICAgICAgICAgdXBkYXRlZEF0XHJcbiAgICAgICAgICAgICAgICAgICAgY29kZVxyXG4gICAgICAgICAgICAgICAgICAgIG9wdGlvbnMge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVkQXRcclxuICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlZEF0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvZGVcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLi4uRXJyb3JSZXN1bHRcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAke0VSUk9SX1JFU1VMVF9GUkFHTUVOVH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBHRVRfUFJPRFVDVF9XSVRIX1ZBUklBTlRTID0gZ3FsYFxyXG4gICAgcXVlcnkgR2V0UHJvZHVjdFdpdGhWYXJpYW50cygkaWQ6IElEISwgJHZhcmlhbnRMaXN0T3B0aW9uczogUHJvZHVjdFZhcmlhbnRMaXN0T3B0aW9ucykge1xyXG4gICAgICAgIHByb2R1Y3QoaWQ6ICRpZCkge1xyXG4gICAgICAgICAgICAuLi5Qcm9kdWN0RGV0YWlsXHJcbiAgICAgICAgICAgIHZhcmlhbnRMaXN0KG9wdGlvbnM6ICR2YXJpYW50TGlzdE9wdGlvbnMpIHtcclxuICAgICAgICAgICAgICAgIGl0ZW1zIHtcclxuICAgICAgICAgICAgICAgICAgICAuLi5Qcm9kdWN0VmFyaWFudFxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdG90YWxJdGVtc1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJHtQUk9EVUNUX0RFVEFJTF9GUkFHTUVOVH1cclxuICAgICR7UFJPRFVDVF9WQVJJQU5UX0ZSQUdNRU5UfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IEdFVF9QUk9EVUNUX1NJTVBMRSA9IGdxbGBcclxuICAgIHF1ZXJ5IEdldFByb2R1Y3RTaW1wbGUoJGlkOiBJRCEpIHtcclxuICAgICAgICBwcm9kdWN0KGlkOiAkaWQpIHtcclxuICAgICAgICAgICAgaWRcclxuICAgICAgICAgICAgbmFtZVxyXG4gICAgICAgICAgICBmZWF0dXJlZEFzc2V0IHtcclxuICAgICAgICAgICAgICAgIC4uLkFzc2V0XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAke0FTU0VUX0ZSQUdNRU5UfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IFBST0RVQ1RfRk9SX0xJU1RfRlJBR01FTlQgPSBncWxgXHJcbiAgICBmcmFnbWVudCBQcm9kdWN0Rm9yTGlzdCBvbiBQcm9kdWN0IHtcclxuICAgICAgICBpZFxyXG4gICAgICAgIGNyZWF0ZWRBdFxyXG4gICAgICAgIHVwZGF0ZWRBdFxyXG4gICAgICAgIGVuYWJsZWRcclxuICAgICAgICBsYW5ndWFnZUNvZGVcclxuICAgICAgICBuYW1lXHJcbiAgICAgICAgc2x1Z1xyXG4gICAgICAgIGZlYXR1cmVkQXNzZXQge1xyXG4gICAgICAgICAgICBpZFxyXG4gICAgICAgICAgICBjcmVhdGVkQXRcclxuICAgICAgICAgICAgdXBkYXRlZEF0XHJcbiAgICAgICAgICAgIHByZXZpZXdcclxuICAgICAgICAgICAgZm9jYWxQb2ludCB7XHJcbiAgICAgICAgICAgICAgICB4XHJcbiAgICAgICAgICAgICAgICB5XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgdmFyaWFudExpc3Qge1xyXG4gICAgICAgICAgICB0b3RhbEl0ZW1zXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IEdFVF9QUk9EVUNUX0xJU1QgPSBncWxgXHJcbiAgICBxdWVyeSBHZXRQcm9kdWN0TGlzdCgkb3B0aW9uczogUHJvZHVjdExpc3RPcHRpb25zKSB7XHJcbiAgICAgICAgcHJvZHVjdHMob3B0aW9uczogJG9wdGlvbnMpIHtcclxuICAgICAgICAgICAgaXRlbXMge1xyXG4gICAgICAgICAgICAgICAgLi4uUHJvZHVjdEZvckxpc3RcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0b3RhbEl0ZW1zXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJHtQUk9EVUNUX0ZPUl9MSVNUX0ZSQUdNRU5UfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IEdFVF9QUk9EVUNUX09QVElPTl9HUk9VUFMgPSBncWxgXHJcbiAgICBxdWVyeSBHZXRQcm9kdWN0T3B0aW9uR3JvdXBzKCRmaWx0ZXJUZXJtOiBTdHJpbmcpIHtcclxuICAgICAgICBwcm9kdWN0T3B0aW9uR3JvdXBzKGZpbHRlclRlcm06ICRmaWx0ZXJUZXJtKSB7XHJcbiAgICAgICAgICAgIGlkXHJcbiAgICAgICAgICAgIGNyZWF0ZWRBdFxyXG4gICAgICAgICAgICB1cGRhdGVkQXRcclxuICAgICAgICAgICAgbGFuZ3VhZ2VDb2RlXHJcbiAgICAgICAgICAgIGNvZGVcclxuICAgICAgICAgICAgbmFtZVxyXG4gICAgICAgICAgICBvcHRpb25zIHtcclxuICAgICAgICAgICAgICAgIGlkXHJcbiAgICAgICAgICAgICAgICBjcmVhdGVkQXRcclxuICAgICAgICAgICAgICAgIHVwZGF0ZWRBdFxyXG4gICAgICAgICAgICAgICAgbGFuZ3VhZ2VDb2RlXHJcbiAgICAgICAgICAgICAgICBjb2RlXHJcbiAgICAgICAgICAgICAgICBuYW1lXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgR0VUX0FTU0VUX0xJU1QgPSBncWxgXHJcbiAgICBxdWVyeSBHZXRBc3NldExpc3QoJG9wdGlvbnM6IEFzc2V0TGlzdE9wdGlvbnMpIHtcclxuICAgICAgICBhc3NldHMob3B0aW9uczogJG9wdGlvbnMpIHtcclxuICAgICAgICAgICAgaXRlbXMge1xyXG4gICAgICAgICAgICAgICAgLi4uQXNzZXRcclxuICAgICAgICAgICAgICAgIHRhZ3Mge1xyXG4gICAgICAgICAgICAgICAgICAgIC4uLlRhZ1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRvdGFsSXRlbXNcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAke0FTU0VUX0ZSQUdNRU5UfVxyXG4gICAgJHtUQUdfRlJBR01FTlR9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgR0VUX0FTU0VUID0gZ3FsYFxyXG4gICAgcXVlcnkgR2V0QXNzZXQoJGlkOiBJRCEpIHtcclxuICAgICAgICBhc3NldChpZDogJGlkKSB7XHJcbiAgICAgICAgICAgIC4uLkFzc2V0XHJcbiAgICAgICAgICAgIHRhZ3Mge1xyXG4gICAgICAgICAgICAgICAgLi4uVGFnXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAke0FTU0VUX0ZSQUdNRU5UfVxyXG4gICAgJHtUQUdfRlJBR01FTlR9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgQ1JFQVRFX0FTU0VUUyA9IGdxbGBcclxuICAgIG11dGF0aW9uIENyZWF0ZUFzc2V0cygkaW5wdXQ6IFtDcmVhdGVBc3NldElucHV0IV0hKSB7XHJcbiAgICAgICAgY3JlYXRlQXNzZXRzKGlucHV0OiAkaW5wdXQpIHtcclxuICAgICAgICAgICAgLi4uQXNzZXRcclxuICAgICAgICAgICAgLi4uIG9uIEFzc2V0IHtcclxuICAgICAgICAgICAgICAgIHRhZ3Mge1xyXG4gICAgICAgICAgICAgICAgICAgIC4uLlRhZ1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC4uLiBvbiBFcnJvclJlc3VsdCB7XHJcbiAgICAgICAgICAgICAgICBtZXNzYWdlXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAke0FTU0VUX0ZSQUdNRU5UfVxyXG4gICAgJHtUQUdfRlJBR01FTlR9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgVVBEQVRFX0FTU0VUID0gZ3FsYFxyXG4gICAgbXV0YXRpb24gVXBkYXRlQXNzZXQoJGlucHV0OiBVcGRhdGVBc3NldElucHV0ISkge1xyXG4gICAgICAgIHVwZGF0ZUFzc2V0KGlucHV0OiAkaW5wdXQpIHtcclxuICAgICAgICAgICAgLi4uQXNzZXRcclxuICAgICAgICAgICAgdGFncyB7XHJcbiAgICAgICAgICAgICAgICAuLi5UYWdcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICR7QVNTRVRfRlJBR01FTlR9XHJcbiAgICAke1RBR19GUkFHTUVOVH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBERUxFVEVfQVNTRVRTID0gZ3FsYFxyXG4gICAgbXV0YXRpb24gRGVsZXRlQXNzZXRzKCRpbnB1dDogRGVsZXRlQXNzZXRzSW5wdXQhKSB7XHJcbiAgICAgICAgZGVsZXRlQXNzZXRzKGlucHV0OiAkaW5wdXQpIHtcclxuICAgICAgICAgICAgcmVzdWx0XHJcbiAgICAgICAgICAgIG1lc3NhZ2VcclxuICAgICAgICB9XHJcbiAgICB9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgU0VBUkNIX1BST0RVQ1RTID0gZ3FsYFxyXG4gICAgcXVlcnkgU2VhcmNoUHJvZHVjdHMoJGlucHV0OiBTZWFyY2hJbnB1dCEpIHtcclxuICAgICAgICBzZWFyY2goaW5wdXQ6ICRpbnB1dCkge1xyXG4gICAgICAgICAgICB0b3RhbEl0ZW1zXHJcbiAgICAgICAgICAgIGl0ZW1zIHtcclxuICAgICAgICAgICAgICAgIGVuYWJsZWRcclxuICAgICAgICAgICAgICAgIHByb2R1Y3RJZFxyXG4gICAgICAgICAgICAgICAgcHJvZHVjdE5hbWVcclxuICAgICAgICAgICAgICAgIHNsdWdcclxuICAgICAgICAgICAgICAgIHByaWNlV2l0aFRheCB7XHJcbiAgICAgICAgICAgICAgICAgICAgLi4uIG9uIFByaWNlUmFuZ2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBtaW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgbWF4XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIC4uLiBvbiBTaW5nbGVQcmljZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgcHJvZHVjdEFzc2V0IHtcclxuICAgICAgICAgICAgICAgICAgICBpZFxyXG4gICAgICAgICAgICAgICAgICAgIHByZXZpZXdcclxuICAgICAgICAgICAgICAgICAgICBmb2NhbFBvaW50IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgeFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB5XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgY3VycmVuY3lDb2RlXHJcbiAgICAgICAgICAgICAgICBwcm9kdWN0VmFyaWFudElkXHJcbiAgICAgICAgICAgICAgICBwcm9kdWN0VmFyaWFudE5hbWVcclxuICAgICAgICAgICAgICAgIHByb2R1Y3RWYXJpYW50QXNzZXQge1xyXG4gICAgICAgICAgICAgICAgICAgIGlkXHJcbiAgICAgICAgICAgICAgICAgICAgcHJldmlld1xyXG4gICAgICAgICAgICAgICAgICAgIGZvY2FsUG9pbnQge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB4XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHlcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBza3VcclxuICAgICAgICAgICAgICAgIGNoYW5uZWxJZHNcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBmYWNldFZhbHVlcyB7XHJcbiAgICAgICAgICAgICAgICBjb3VudFxyXG4gICAgICAgICAgICAgICAgZmFjZXRWYWx1ZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWRcclxuICAgICAgICAgICAgICAgICAgICBjcmVhdGVkQXRcclxuICAgICAgICAgICAgICAgICAgICB1cGRhdGVkQXRcclxuICAgICAgICAgICAgICAgICAgICBuYW1lXHJcbiAgICAgICAgICAgICAgICAgICAgZmFjZXQge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVkQXRcclxuICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlZEF0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgUFJPRFVDVF9TRUxFQ1RPUl9TRUFSQ0ggPSBncWxgXHJcbiAgICBxdWVyeSBQcm9kdWN0U2VsZWN0b3JTZWFyY2goJHRlcm06IFN0cmluZyEsICR0YWtlOiBJbnQhKSB7XHJcbiAgICAgICAgc2VhcmNoKGlucHV0OiB7IGdyb3VwQnlQcm9kdWN0OiBmYWxzZSwgdGVybTogJHRlcm0sIHRha2U6ICR0YWtlIH0pIHtcclxuICAgICAgICAgICAgaXRlbXMge1xyXG4gICAgICAgICAgICAgICAgcHJvZHVjdFZhcmlhbnRJZFxyXG4gICAgICAgICAgICAgICAgcHJvZHVjdFZhcmlhbnROYW1lXHJcbiAgICAgICAgICAgICAgICBwcm9kdWN0QXNzZXQge1xyXG4gICAgICAgICAgICAgICAgICAgIGlkXHJcbiAgICAgICAgICAgICAgICAgICAgcHJldmlld1xyXG4gICAgICAgICAgICAgICAgICAgIGZvY2FsUG9pbnQge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB4XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHlcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBwcmljZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLi4uIG9uIFNpbmdsZVByaWNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBwcmljZVdpdGhUYXgge1xyXG4gICAgICAgICAgICAgICAgICAgIC4uLiBvbiBTaW5nbGVQcmljZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgc2t1XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgVVBEQVRFX1BST0RVQ1RfT1BUSU9OX0dST1VQID0gZ3FsYFxyXG4gICAgbXV0YXRpb24gVXBkYXRlUHJvZHVjdE9wdGlvbkdyb3VwKCRpbnB1dDogVXBkYXRlUHJvZHVjdE9wdGlvbkdyb3VwSW5wdXQhKSB7XHJcbiAgICAgICAgdXBkYXRlUHJvZHVjdE9wdGlvbkdyb3VwKGlucHV0OiAkaW5wdXQpIHtcclxuICAgICAgICAgICAgLi4uUHJvZHVjdE9wdGlvbkdyb3VwXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJHtQUk9EVUNUX09QVElPTl9HUk9VUF9GUkFHTUVOVH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBVUERBVEVfUFJPRFVDVF9PUFRJT04gPSBncWxgXHJcbiAgICBtdXRhdGlvbiBVcGRhdGVQcm9kdWN0T3B0aW9uKCRpbnB1dDogVXBkYXRlUHJvZHVjdE9wdGlvbklucHV0ISkge1xyXG4gICAgICAgIHVwZGF0ZVByb2R1Y3RPcHRpb24oaW5wdXQ6ICRpbnB1dCkge1xyXG4gICAgICAgICAgICAuLi5Qcm9kdWN0T3B0aW9uXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJHtQUk9EVUNUX09QVElPTl9GUkFHTUVOVH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBERUxFVEVfUFJPRFVDVF9PUFRJT04gPSBncWxgXHJcbiAgICBtdXRhdGlvbiBEZWxldGVQcm9kdWN0T3B0aW9uKCRpZDogSUQhKSB7XHJcbiAgICAgICAgZGVsZXRlUHJvZHVjdE9wdGlvbihpZDogJGlkKSB7XHJcbiAgICAgICAgICAgIHJlc3VsdFxyXG4gICAgICAgICAgICBtZXNzYWdlXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IERFTEVURV9QUk9EVUNUX1ZBUklBTlQgPSBncWxgXHJcbiAgICBtdXRhdGlvbiBEZWxldGVQcm9kdWN0VmFyaWFudCgkaWQ6IElEISkge1xyXG4gICAgICAgIGRlbGV0ZVByb2R1Y3RWYXJpYW50KGlkOiAkaWQpIHtcclxuICAgICAgICAgICAgcmVzdWx0XHJcbiAgICAgICAgICAgIG1lc3NhZ2VcclxuICAgICAgICB9XHJcbiAgICB9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgREVMRVRFX1BST0RVQ1RfVkFSSUFOVFMgPSBncWxgXHJcbiAgICBtdXRhdGlvbiBEZWxldGVQcm9kdWN0VmFyaWFudHMoJGlkczogW0lEIV0hKSB7XHJcbiAgICAgICAgZGVsZXRlUHJvZHVjdFZhcmlhbnRzKGlkczogJGlkcykge1xyXG4gICAgICAgICAgICByZXN1bHRcclxuICAgICAgICAgICAgbWVzc2FnZVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBHRVRfUFJPRFVDVF9WQVJJQU5UX09QVElPTlMgPSBncWxgXHJcbiAgICBxdWVyeSBHZXRQcm9kdWN0VmFyaWFudE9wdGlvbnMoJGlkOiBJRCEpIHtcclxuICAgICAgICBwcm9kdWN0KGlkOiAkaWQpIHtcclxuICAgICAgICAgICAgaWRcclxuICAgICAgICAgICAgY3JlYXRlZEF0XHJcbiAgICAgICAgICAgIHVwZGF0ZWRBdFxyXG4gICAgICAgICAgICBuYW1lXHJcbiAgICAgICAgICAgIGxhbmd1YWdlQ29kZVxyXG4gICAgICAgICAgICBvcHRpb25Hcm91cHMge1xyXG4gICAgICAgICAgICAgICAgLi4uUHJvZHVjdE9wdGlvbkdyb3VwXHJcbiAgICAgICAgICAgICAgICBvcHRpb25zIHtcclxuICAgICAgICAgICAgICAgICAgICAuLi5Qcm9kdWN0T3B0aW9uXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdmFyaWFudHMge1xyXG4gICAgICAgICAgICAgICAgaWRcclxuICAgICAgICAgICAgICAgIGNyZWF0ZWRBdFxyXG4gICAgICAgICAgICAgICAgdXBkYXRlZEF0XHJcbiAgICAgICAgICAgICAgICBlbmFibGVkXHJcbiAgICAgICAgICAgICAgICBuYW1lXHJcbiAgICAgICAgICAgICAgICBza3VcclxuICAgICAgICAgICAgICAgIHByaWNlXHJcbiAgICAgICAgICAgICAgICBwcmljZVdpdGhUYXhcclxuICAgICAgICAgICAgICAgIGN1cnJlbmN5Q29kZVxyXG4gICAgICAgICAgICAgICAgc3RvY2tPbkhhbmRcclxuICAgICAgICAgICAgICAgIGVuYWJsZWRcclxuICAgICAgICAgICAgICAgIG9wdGlvbnMge1xyXG4gICAgICAgICAgICAgICAgICAgIGlkXHJcbiAgICAgICAgICAgICAgICAgICAgY3JlYXRlZEF0XHJcbiAgICAgICAgICAgICAgICAgICAgdXBkYXRlZEF0XHJcbiAgICAgICAgICAgICAgICAgICAgbmFtZVxyXG4gICAgICAgICAgICAgICAgICAgIGNvZGVcclxuICAgICAgICAgICAgICAgICAgICBncm91cElkXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAke1BST0RVQ1RfT1BUSU9OX0dST1VQX0ZSQUdNRU5UfVxyXG4gICAgJHtQUk9EVUNUX09QVElPTl9GUkFHTUVOVH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBBU1NJR05fUFJPRFVDVFNfVE9fQ0hBTk5FTCA9IGdxbGBcclxuICAgIG11dGF0aW9uIEFzc2lnblByb2R1Y3RzVG9DaGFubmVsKCRpbnB1dDogQXNzaWduUHJvZHVjdHNUb0NoYW5uZWxJbnB1dCEpIHtcclxuICAgICAgICBhc3NpZ25Qcm9kdWN0c1RvQ2hhbm5lbChpbnB1dDogJGlucHV0KSB7XHJcbiAgICAgICAgICAgIGlkXHJcbiAgICAgICAgICAgIGNoYW5uZWxzIHtcclxuICAgICAgICAgICAgICAgIGlkXHJcbiAgICAgICAgICAgICAgICBjb2RlXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgQVNTSUdOX1ZBUklBTlRTX1RPX0NIQU5ORUwgPSBncWxgXHJcbiAgICBtdXRhdGlvbiBBc3NpZ25WYXJpYW50c1RvQ2hhbm5lbCgkaW5wdXQ6IEFzc2lnblByb2R1Y3RWYXJpYW50c1RvQ2hhbm5lbElucHV0ISkge1xyXG4gICAgICAgIGFzc2lnblByb2R1Y3RWYXJpYW50c1RvQ2hhbm5lbChpbnB1dDogJGlucHV0KSB7XHJcbiAgICAgICAgICAgIGlkXHJcbiAgICAgICAgICAgIGNoYW5uZWxzIHtcclxuICAgICAgICAgICAgICAgIGlkXHJcbiAgICAgICAgICAgICAgICBjb2RlXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgUkVNT1ZFX1BST0RVQ1RTX0ZST01fQ0hBTk5FTCA9IGdxbGBcclxuICAgIG11dGF0aW9uIFJlbW92ZVByb2R1Y3RzRnJvbUNoYW5uZWwoJGlucHV0OiBSZW1vdmVQcm9kdWN0c0Zyb21DaGFubmVsSW5wdXQhKSB7XHJcbiAgICAgICAgcmVtb3ZlUHJvZHVjdHNGcm9tQ2hhbm5lbChpbnB1dDogJGlucHV0KSB7XHJcbiAgICAgICAgICAgIGlkXHJcbiAgICAgICAgICAgIGNoYW5uZWxzIHtcclxuICAgICAgICAgICAgICAgIGlkXHJcbiAgICAgICAgICAgICAgICBjb2RlXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgUkVNT1ZFX1ZBUklBTlRTX0ZST01fQ0hBTk5FTCA9IGdxbGBcclxuICAgIG11dGF0aW9uIFJlbW92ZVZhcmlhbnRzRnJvbUNoYW5uZWwoJGlucHV0OiBSZW1vdmVQcm9kdWN0VmFyaWFudHNGcm9tQ2hhbm5lbElucHV0ISkge1xyXG4gICAgICAgIHJlbW92ZVByb2R1Y3RWYXJpYW50c0Zyb21DaGFubmVsKGlucHV0OiAkaW5wdXQpIHtcclxuICAgICAgICAgICAgaWRcclxuICAgICAgICAgICAgY2hhbm5lbHMge1xyXG4gICAgICAgICAgICAgICAgaWRcclxuICAgICAgICAgICAgICAgIGNvZGVcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBHRVRfUFJPRFVDVF9WQVJJQU5UID0gZ3FsYFxyXG4gICAgcXVlcnkgR2V0UHJvZHVjdFZhcmlhbnQoJGlkOiBJRCEpIHtcclxuICAgICAgICBwcm9kdWN0VmFyaWFudChpZDogJGlkKSB7XHJcbiAgICAgICAgICAgIGlkXHJcbiAgICAgICAgICAgIG5hbWVcclxuICAgICAgICAgICAgc2t1XHJcbiAgICAgICAgICAgIHN0b2NrT25IYW5kXHJcbiAgICAgICAgICAgIHN0b2NrQWxsb2NhdGVkXHJcbiAgICAgICAgICAgIHN0b2NrTGV2ZWxcclxuICAgICAgICAgICAgdXNlR2xvYmFsT3V0T2ZTdG9ja1RocmVzaG9sZFxyXG4gICAgICAgICAgICBmZWF0dXJlZEFzc2V0IHtcclxuICAgICAgICAgICAgICAgIGlkXHJcbiAgICAgICAgICAgICAgICBwcmV2aWV3XHJcbiAgICAgICAgICAgICAgICBmb2NhbFBvaW50IHtcclxuICAgICAgICAgICAgICAgICAgICB4XHJcbiAgICAgICAgICAgICAgICAgICAgeVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHByaWNlXHJcbiAgICAgICAgICAgIHByaWNlV2l0aFRheFxyXG4gICAgICAgICAgICBwcm9kdWN0IHtcclxuICAgICAgICAgICAgICAgIGlkXHJcbiAgICAgICAgICAgICAgICBmZWF0dXJlZEFzc2V0IHtcclxuICAgICAgICAgICAgICAgICAgICBpZFxyXG4gICAgICAgICAgICAgICAgICAgIHByZXZpZXdcclxuICAgICAgICAgICAgICAgICAgICBmb2NhbFBvaW50IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgeFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB5XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IEdFVF9QUk9EVUNUX1ZBUklBTlRfTElTVF9TSU1QTEUgPSBncWxgXHJcbiAgICBxdWVyeSBHZXRQcm9kdWN0VmFyaWFudExpc3RTaW1wbGUoJG9wdGlvbnM6IFByb2R1Y3RWYXJpYW50TGlzdE9wdGlvbnMhLCAkcHJvZHVjdElkOiBJRCkge1xyXG4gICAgICAgIHByb2R1Y3RWYXJpYW50cyhvcHRpb25zOiAkb3B0aW9ucywgcHJvZHVjdElkOiAkcHJvZHVjdElkKSB7XHJcbiAgICAgICAgICAgIGl0ZW1zIHtcclxuICAgICAgICAgICAgICAgIGlkXHJcbiAgICAgICAgICAgICAgICBuYW1lXHJcbiAgICAgICAgICAgICAgICBza3VcclxuICAgICAgICAgICAgICAgIGZlYXR1cmVkQXNzZXQge1xyXG4gICAgICAgICAgICAgICAgICAgIGlkXHJcbiAgICAgICAgICAgICAgICAgICAgcHJldmlld1xyXG4gICAgICAgICAgICAgICAgICAgIGZvY2FsUG9pbnQge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB4XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHlcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBwcm9kdWN0IHtcclxuICAgICAgICAgICAgICAgICAgICBpZFxyXG4gICAgICAgICAgICAgICAgICAgIGZlYXR1cmVkQXNzZXQge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwcmV2aWV3XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvY2FsUG9pbnQge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgeFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgeVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRvdGFsSXRlbXNcclxuICAgICAgICB9XHJcbiAgICB9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgR0VUX1BST0RVQ1RfVkFSSUFOVF9MSVNUX0ZPUl9QUk9EVUNUID0gZ3FsYFxyXG4gICAgcXVlcnkgR2V0UHJvZHVjdFZhcmlhbnRMaXN0Rm9yUHJvZHVjdCgkb3B0aW9uczogUHJvZHVjdFZhcmlhbnRMaXN0T3B0aW9ucyEsICRwcm9kdWN0SWQ6IElEKSB7XHJcbiAgICAgICAgcHJvZHVjdFZhcmlhbnRzKG9wdGlvbnM6ICRvcHRpb25zLCBwcm9kdWN0SWQ6ICRwcm9kdWN0SWQpIHtcclxuICAgICAgICAgICAgaXRlbXMge1xyXG4gICAgICAgICAgICAgICAgLi4uUHJvZHVjdFZhcmlhbnRcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0b3RhbEl0ZW1zXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJHtQUk9EVUNUX1ZBUklBTlRfRlJBR01FTlR9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgR0VUX1BST0RVQ1RfVkFSSUFOVF9MSVNUID0gZ3FsYFxyXG4gICAgcXVlcnkgR2V0UHJvZHVjdFZhcmlhbnRMaXN0KCRvcHRpb25zOiBQcm9kdWN0VmFyaWFudExpc3RPcHRpb25zISkge1xyXG4gICAgICAgIHByb2R1Y3RWYXJpYW50cyhvcHRpb25zOiAkb3B0aW9ucykge1xyXG4gICAgICAgICAgICBpdGVtcyB7XHJcbiAgICAgICAgICAgICAgICBpZFxyXG4gICAgICAgICAgICAgICAgY3JlYXRlZEF0XHJcbiAgICAgICAgICAgICAgICB1cGRhdGVkQXRcclxuICAgICAgICAgICAgICAgIGVuYWJsZWRcclxuICAgICAgICAgICAgICAgIGxhbmd1YWdlQ29kZVxyXG4gICAgICAgICAgICAgICAgbmFtZVxyXG4gICAgICAgICAgICAgICAgcHJpY2VcclxuICAgICAgICAgICAgICAgIGN1cnJlbmN5Q29kZVxyXG4gICAgICAgICAgICAgICAgcHJpY2VXaXRoVGF4XHJcbiAgICAgICAgICAgICAgICB0cmFja0ludmVudG9yeVxyXG4gICAgICAgICAgICAgICAgb3V0T2ZTdG9ja1RocmVzaG9sZFxyXG4gICAgICAgICAgICAgICAgc3RvY2tMZXZlbHMge1xyXG4gICAgICAgICAgICAgICAgICAgIGlkXHJcbiAgICAgICAgICAgICAgICAgICAgY3JlYXRlZEF0XHJcbiAgICAgICAgICAgICAgICAgICAgdXBkYXRlZEF0XHJcbiAgICAgICAgICAgICAgICAgICAgc3RvY2tMb2NhdGlvbklkXHJcbiAgICAgICAgICAgICAgICAgICAgc3RvY2tPbkhhbmRcclxuICAgICAgICAgICAgICAgICAgICBzdG9ja0FsbG9jYXRlZFxyXG4gICAgICAgICAgICAgICAgICAgIHN0b2NrTG9jYXRpb24ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVkQXRcclxuICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlZEF0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB1c2VHbG9iYWxPdXRPZlN0b2NrVGhyZXNob2xkXHJcbiAgICAgICAgICAgICAgICBza3VcclxuICAgICAgICAgICAgICAgIGZlYXR1cmVkQXNzZXQge1xyXG4gICAgICAgICAgICAgICAgICAgIC4uLkFzc2V0XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdG90YWxJdGVtc1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICR7QVNTRVRfRlJBR01FTlR9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgR0VUX1RBR19MSVNUID0gZ3FsYFxyXG4gICAgcXVlcnkgR2V0VGFnTGlzdCgkb3B0aW9uczogVGFnTGlzdE9wdGlvbnMpIHtcclxuICAgICAgICB0YWdzKG9wdGlvbnM6ICRvcHRpb25zKSB7XHJcbiAgICAgICAgICAgIGl0ZW1zIHtcclxuICAgICAgICAgICAgICAgIC4uLlRhZ1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRvdGFsSXRlbXNcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAke1RBR19GUkFHTUVOVH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBHRVRfVEFHID0gZ3FsYFxyXG4gICAgcXVlcnkgR2V0VGFnKCRpZDogSUQhKSB7XHJcbiAgICAgICAgdGFnKGlkOiAkaWQpIHtcclxuICAgICAgICAgICAgLi4uVGFnXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJHtUQUdfRlJBR01FTlR9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgQ1JFQVRFX1RBRyA9IGdxbGBcclxuICAgIG11dGF0aW9uIENyZWF0ZVRhZygkaW5wdXQ6IENyZWF0ZVRhZ0lucHV0ISkge1xyXG4gICAgICAgIGNyZWF0ZVRhZyhpbnB1dDogJGlucHV0KSB7XHJcbiAgICAgICAgICAgIC4uLlRhZ1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICR7VEFHX0ZSQUdNRU5UfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IFVQREFURV9UQUcgPSBncWxgXHJcbiAgICBtdXRhdGlvbiBVcGRhdGVUYWcoJGlucHV0OiBVcGRhdGVUYWdJbnB1dCEpIHtcclxuICAgICAgICB1cGRhdGVUYWcoaW5wdXQ6ICRpbnB1dCkge1xyXG4gICAgICAgICAgICAuLi5UYWdcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAke1RBR19GUkFHTUVOVH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBERUxFVEVfVEFHID0gZ3FsYFxyXG4gICAgbXV0YXRpb24gRGVsZXRlVGFnKCRpZDogSUQhKSB7XHJcbiAgICAgICAgZGVsZXRlVGFnKGlkOiAkaWQpIHtcclxuICAgICAgICAgICAgbWVzc2FnZVxyXG4gICAgICAgICAgICByZXN1bHRcclxuICAgICAgICB9XHJcbiAgICB9XHJcbmA7XHJcbiJdfQ==