@provoly/dashboard 0.15.2 → 0.15.4

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 (144) hide show
  1. package/components/card/card.module.d.ts +1 -1
  2. package/dataset/style/_o-pry-dataset-detail.scss +4 -0
  3. package/esm2022/components/card/card.component.mjs +3 -3
  4. package/esm2022/components/card/card.module.mjs +5 -5
  5. package/esm2022/dataset/components/dataset-detail/dataset-detail.component.mjs +3 -3
  6. package/esm2022/dataset/style/css.component.mjs +2 -2
  7. package/esm2022/lib/core/auth/geoAuth.service.mjs +26 -0
  8. package/esm2022/lib/core/components/overlay/overlay.module.mjs +4 -5
  9. package/esm2022/lib/core/components/toggle/toggle.component.mjs +4 -5
  10. package/esm2022/lib/core/core.module.mjs +8 -2
  11. package/esm2022/lib/core/errors/http-error-interceptor.service.mjs +2 -5
  12. package/esm2022/lib/core/public-api.mjs +2 -2
  13. package/esm2022/lib/core/store/aggregation/backend-aggregation.service.mjs +21 -10
  14. package/esm2022/lib/core/store/search/search.effects.mjs +3 -3
  15. package/esm2022/lib/core/toolbox/toolbox-menu.service.mjs +10 -4
  16. package/esm2022/lib/dashboard/components/widgets/data-widget.component.mjs +7 -4
  17. package/esm2022/lib/dashboard/components/widgets/header/widget-header.component.mjs +24 -12
  18. package/esm2022/lib/dashboard/components/widgets/settings/settings.component.mjs +4 -5
  19. package/esm2022/lib/dashboard/store/dashboard.effects.mjs +4 -7
  20. package/esm2022/notification/components/notification/notification.component.mjs +3 -3
  21. package/esm2022/notification/i18n/en.translations.mjs +2 -1
  22. package/esm2022/notification/i18n/fr.translations.mjs +2 -1
  23. package/esm2022/presentation/components/add-edit-presentation/add-edit-presentation.component.mjs +5 -3
  24. package/esm2022/presentation/components/presentation.component.mjs +5 -4
  25. package/esm2022/presentation/style/css.component.mjs +2 -2
  26. package/esm2022/restitution/components/restitution/restitution.component.mjs +5 -2
  27. package/esm2022/restitution/components/restitution-catalog/restitution-catalog.component.mjs +3 -3
  28. package/esm2022/restitution/components/restitution-list-item/restitution-list-item.component.mjs +3 -3
  29. package/esm2022/restitution/style/css.component.mjs +2 -2
  30. package/esm2022/search/i18n/en.translations.mjs +9 -3
  31. package/esm2022/search/i18n/fr.translations.mjs +9 -3
  32. package/esm2022/search/search-fulltext/search-fulltext/search-fulltext.component.mjs +3 -3
  33. package/esm2022/search/search-home/search-home.component.mjs +3 -3
  34. package/esm2022/search/search-multi-class/components/multi-class-condition/multi-class-condition.component.mjs +6 -3
  35. package/esm2022/search/search-multi-class/components/search-multi-class/search-multi-class.component.mjs +3 -3
  36. package/esm2022/search/search-tools/search-tools.component.mjs +3 -3
  37. package/esm2022/toolbox/components/automate-refresh/automate-refresh.component.mjs +3 -3
  38. package/esm2022/toolbox/components/clear-view/clear-view.component.mjs +3 -3
  39. package/esm2022/toolbox/components/drag-widgets/drag-widgets.component.mjs +3 -3
  40. package/esm2022/toolbox/components/filter-settings/filter-settings.component.mjs +3 -3
  41. package/esm2022/toolbox/components/launch-tab/launch-tab.component.mjs +3 -3
  42. package/esm2022/toolbox/components/named-query/named-query.component.mjs +3 -3
  43. package/esm2022/toolbox/components/refresh-datasets/refresh-datasets.component.mjs +3 -3
  44. package/esm2022/toolbox/components/save-view/save-view.component.mjs +3 -3
  45. package/esm2022/toolbox/components/select-grid-layout/select-grid-layout.component.mjs +3 -3
  46. package/esm2022/toolbox/style/css.component.mjs +2 -2
  47. package/esm2022/tooltips/attribute/attribute-tooltip.component.mjs +22 -7
  48. package/esm2022/widgets/widget-aggregated-chart/component/widget-aggregated-chart.component.mjs +19 -9
  49. package/esm2022/widgets/widget-aggregated-chart/i18n/en.translations.mjs +2 -1
  50. package/esm2022/widgets/widget-aggregated-chart/i18n/fr.translations.mjs +2 -1
  51. package/esm2022/widgets/widget-chart/component/widget-chart.component.mjs +1 -1
  52. package/esm2022/widgets/widget-detail/component/widget-detail.component.mjs +1 -1
  53. package/esm2022/widgets/widget-graph/component/widget-graph.component.mjs +3 -3
  54. package/esm2022/widgets/widget-graph/style/css.component.mjs +2 -2
  55. package/esm2022/widgets/widget-iframe/component/widget-iframe.component.mjs +1 -1
  56. package/esm2022/widgets/widget-map/component/widget-map-layer.service.mjs +5 -1
  57. package/esm2022/widgets/widget-map/component/widget-map.component.mjs +34 -32
  58. package/esm2022/widgets/widget-map/interaction/interaction-manager.class.mjs +8 -12
  59. package/esm2022/widgets/widget-map/style/css.component.mjs +2 -2
  60. package/esm2022/widgets/widget-table/component/widget-table.component.mjs +1 -1
  61. package/esm2022/widgets/widget-tile/component/widget-tile.component.mjs +1 -1
  62. package/esm2022/widgets/widget-vega/component/widget-vega.component.mjs +1 -1
  63. package/fesm2022/provoly-dashboard-components-card.mjs +6 -6
  64. package/fesm2022/provoly-dashboard-components-card.mjs.map +1 -1
  65. package/fesm2022/provoly-dashboard-dataset.mjs +4 -4
  66. package/fesm2022/provoly-dashboard-dataset.mjs.map +1 -1
  67. package/fesm2022/provoly-dashboard-notification.mjs +4 -2
  68. package/fesm2022/provoly-dashboard-notification.mjs.map +1 -1
  69. package/fesm2022/provoly-dashboard-presentation.mjs +10 -7
  70. package/fesm2022/provoly-dashboard-presentation.mjs.map +1 -1
  71. package/fesm2022/provoly-dashboard-restitution.mjs +10 -7
  72. package/fesm2022/provoly-dashboard-restitution.mjs.map +1 -1
  73. package/fesm2022/provoly-dashboard-search.mjs +29 -14
  74. package/fesm2022/provoly-dashboard-search.mjs.map +1 -1
  75. package/fesm2022/provoly-dashboard-toolbox.mjs +20 -20
  76. package/fesm2022/provoly-dashboard-toolbox.mjs.map +1 -1
  77. package/fesm2022/provoly-dashboard-tooltips-attribute.mjs +21 -6
  78. package/fesm2022/provoly-dashboard-tooltips-attribute.mjs.map +1 -1
  79. package/fesm2022/provoly-dashboard-widgets-widget-aggregated-chart.mjs +20 -8
  80. package/fesm2022/provoly-dashboard-widgets-widget-aggregated-chart.mjs.map +1 -1
  81. package/fesm2022/provoly-dashboard-widgets-widget-chart.mjs +1 -1
  82. package/fesm2022/provoly-dashboard-widgets-widget-chart.mjs.map +1 -1
  83. package/fesm2022/provoly-dashboard-widgets-widget-detail.mjs +1 -1
  84. package/fesm2022/provoly-dashboard-widgets-widget-detail.mjs.map +1 -1
  85. package/fesm2022/provoly-dashboard-widgets-widget-graph.mjs +4 -4
  86. package/fesm2022/provoly-dashboard-widgets-widget-graph.mjs.map +1 -1
  87. package/fesm2022/provoly-dashboard-widgets-widget-iframe.mjs +1 -1
  88. package/fesm2022/provoly-dashboard-widgets-widget-iframe.mjs.map +1 -1
  89. package/fesm2022/provoly-dashboard-widgets-widget-map.mjs +43 -40
  90. package/fesm2022/provoly-dashboard-widgets-widget-map.mjs.map +1 -1
  91. package/fesm2022/provoly-dashboard-widgets-widget-table.mjs +1 -1
  92. package/fesm2022/provoly-dashboard-widgets-widget-table.mjs.map +1 -1
  93. package/fesm2022/provoly-dashboard-widgets-widget-tile.mjs +1 -1
  94. package/fesm2022/provoly-dashboard-widgets-widget-tile.mjs.map +1 -1
  95. package/fesm2022/provoly-dashboard-widgets-widget-vega.mjs +1 -1
  96. package/fesm2022/provoly-dashboard-widgets-widget-vega.mjs.map +1 -1
  97. package/fesm2022/provoly-dashboard.mjs +114 -175
  98. package/fesm2022/provoly-dashboard.mjs.map +1 -1
  99. package/lib/core/auth/geoAuth.service.d.ts +12 -0
  100. package/lib/core/components/overlay/overlay.module.d.ts +8 -9
  101. package/lib/core/core.module.d.ts +1 -0
  102. package/lib/core/public-api.d.ts +1 -1
  103. package/lib/core/store/aggregation/backend-aggregation.service.d.ts +2 -0
  104. package/lib/core/store/search/search.effects.d.ts +3 -0
  105. package/lib/core/toolbox/toolbox-menu.service.d.ts +2 -0
  106. package/lib/dashboard/components/widgets/data-widget.component.d.ts +3 -2
  107. package/lib/dashboard/components/widgets/header/widget-header.component.d.ts +8 -5
  108. package/notification/i18n/en.translations.d.ts +1 -0
  109. package/notification/i18n/fr.translations.d.ts +1 -0
  110. package/package.json +41 -42
  111. package/presentation/components/add-edit-presentation/add-edit-presentation.component.d.ts +2 -2
  112. package/presentation/style/_o-pry-presentation.scss +17 -13
  113. package/restitution/components/restitution/restitution.component.d.ts +7 -0
  114. package/schematics/migration.json +5 -0
  115. package/schematics/ng-add/index.js +0 -1
  116. package/schematics/ng-add/index.js.map +1 -1
  117. package/schematics/ng-update/version-0-15/index.d.ts +2 -0
  118. package/schematics/ng-update/version-0-15/index.js +19 -0
  119. package/schematics/ng-update/version-0-15/index.js.map +1 -0
  120. package/schematics/ng-update/version-0-15/index.spec.d.ts +1 -0
  121. package/schematics/ng-update/version-0-15/index.spec.js +51 -0
  122. package/schematics/ng-update/version-0-15/index.spec.js.map +1 -0
  123. package/search/i18n/en.translations.d.ts +6 -0
  124. package/search/i18n/fr.translations.d.ts +6 -0
  125. package/search/search-multi-class/components/multi-class-condition/multi-class-condition.component.d.ts +1 -0
  126. package/styles/components/_a-tooltip.scss +76 -0
  127. package/styles/components/_o-dashboard.scss +1 -1
  128. package/styles/components/_o-pry-card.scss +14 -0
  129. package/styles/components/_o-widget.scss +1 -0
  130. package/styles/layout/_o-workspace.scss +0 -1
  131. package/styles/main.scss +2 -0
  132. package/styles-theme/components-theme/_a-tooltip.theme.scss +12 -0
  133. package/styles-theme/main-theme.scss +1 -0
  134. package/toolbox/style/_o-toolbox.scss +6 -0
  135. package/tooltips/attribute/attribute-tooltip.component.d.ts +2 -1
  136. package/widgets/widget-aggregated-chart/component/widget-aggregated-chart.component.d.ts +2 -0
  137. package/widgets/widget-aggregated-chart/i18n/en.translations.d.ts +1 -0
  138. package/widgets/widget-aggregated-chart/i18n/fr.translations.d.ts +1 -0
  139. package/widgets/widget-graph/style/_o-widget-graph.scss +15 -1
  140. package/widgets/widget-map/component/widget-map-layer.service.d.ts +3 -1
  141. package/widgets/widget-map/component/widget-map.component.d.ts +4 -7
  142. package/widgets/widget-map/style/_o-widget-map.scss +14 -0
  143. package/esm2022/lib/core/components/overlay/tooltip.directive.mjs +0 -121
  144. package/lib/core/components/overlay/tooltip.directive.d.ts +0 -28
@@ -15,7 +15,10 @@ export const frTranslations = {
15
15
  or: 'ou',
16
16
  title: 'Mes recherches',
17
17
  ssTitle: 'Nouvelle recherche',
18
- searchByCriteria: 'Recherche par critères'
18
+ searchByCriteria: 'Recherche par critères',
19
+ associatedWidget: 'le widget associé à cette recherche',
20
+ showAssociatedWidget: 'Afficher le widget associé à cette recherche',
21
+ otherActions: 'Autres actions'
19
22
  },
20
23
  attribute: {
21
24
  title: 'Attribut : ',
@@ -104,12 +107,15 @@ export const frTranslations = {
104
107
  allClasses: 'Toutes les classes',
105
108
  oneClass: 'Une classe sélectionnée',
106
109
  manyClasses: '{{nb}} classes sélectionnées',
107
- search: 'Lancer la recherche'
110
+ selectClass: 'Sélectionner la classe',
111
+ search: 'Lancer la recherche',
112
+ clear: 'Effacer la saisie'
108
113
  },
109
114
  multi: {
110
115
  title: 'Ajouter des critères',
111
116
  addCondition: 'Ajouter un critère',
112
117
  options: 'Options',
118
+ extraOptions: 'Options supplémentaires',
113
119
  multiType: 'Associer les critères',
114
120
  search: 'Rechercher',
115
121
  requiredError: 'La valeur est manquante',
@@ -129,4 +135,4 @@ export const frTranslations = {
129
135
  }
130
136
  }
131
137
  };
132
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnIudHJhbnNsYXRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvc2VhcmNoL2kxOG4vZnIudHJhbnNsYXRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRztJQUM1QixNQUFNLEVBQUU7UUFDTixNQUFNLEVBQUU7WUFDTixLQUFLLEVBQUUsV0FBVztZQUNsQixNQUFNLEVBQUU7Z0JBQ04sTUFBTSxFQUFFLGFBQWE7Z0JBQ3JCLE1BQU0sRUFBRSxZQUFZO2dCQUNwQixNQUFNLEVBQUUsU0FBUztnQkFDakIsS0FBSyxFQUFFLGVBQWU7Z0JBQ3RCLFVBQVUsRUFBRSxrQ0FBa0M7Z0JBQzlDLElBQUksRUFBRSxzQkFBc0I7Z0JBQzVCLEtBQUssRUFBRSw2QkFBNkI7YUFDckM7WUFDRCxJQUFJLEVBQUU7Z0JBQ0osRUFBRSxFQUFFLElBQUk7Z0JBQ1IsS0FBSyxFQUFFLGdCQUFnQjtnQkFDdkIsT0FBTyxFQUFFLG9CQUFvQjtnQkFDN0IsZ0JBQWdCLEVBQUUsd0JBQXdCO2FBQzNDO1lBQ0QsU0FBUyxFQUFFO2dCQUNULEtBQUssRUFBRSxhQUFhO2dCQUNwQixNQUFNLEVBQUUsbUJBQW1CO2FBQzVCO1lBQ0QsSUFBSSxFQUFFO2dCQUNKLEdBQUcsRUFBRSxJQUFJO2dCQUNULEVBQUUsRUFBRSxJQUFJO2FBQ1Q7WUFDRCxRQUFRLEVBQUU7Z0JBQ1IsS0FBSyxFQUFFLFFBQVE7Z0JBQ2YsS0FBSyxFQUFFLHFCQUFxQjtnQkFDNUIsS0FBSyxFQUFFLGdCQUFnQjtnQkFDdkIsTUFBTSxFQUFFLFdBQVc7Z0JBQ25CLE1BQU0sRUFBRSxhQUFhO2dCQUNyQixTQUFTLEVBQUUsV0FBVztnQkFDdEIsaUJBQWlCLEVBQUUsdUJBQXVCO2dCQUMxQyxrQkFBa0IsRUFBRSxvREFBb0Q7Z0JBQ3hFLFlBQVksRUFBRSx1QkFBdUI7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VCxzR0FBc0c7aUJBQ3pHO2FBQ0Y7U0FDRjtLQUNGO0NBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBmclRyYW5zbGF0aW9ucyA9IHtcbiAgJ0BwcnknOiB7XG4gICAgc2VhcmNoOiB7XG4gICAgICB0aXRsZTogJ1JlY2hlcmNoZScsXG4gICAgICBidXR0b246IHtcbiAgICAgICAgdXBkYXRlOiAnRW5yZWdpc3RyZXInLFxuICAgICAgICBzZWFyY2g6ICdSZWNoZXJjaGVyJyxcbiAgICAgICAgY2FuY2VsOiAnQW5udWxlcicsXG4gICAgICAgIHJlc2V0OiAnUmVtaXNlIMOgIHrDqXJvJyxcbiAgICAgICAgYmFja1NlYXJjaDogJ1JldG91ciDDoCBsYSBsaXN0ZSBkZXMgcmVjaGVyY2hlcycsXG4gICAgICAgIG1vbm86ICdSZWNoZXJjaGUgcGFyIGNsYXNzZScsXG4gICAgICAgIG11bHRpOiAnUmVjaGVyY2hlIHBhciBjaGFtcHMgbcOpdGllcidcbiAgICAgIH0sXG4gICAgICBob21lOiB7XG4gICAgICAgIG9yOiAnb3UnLFxuICAgICAgICB0aXRsZTogJ01lcyByZWNoZXJjaGVzJyxcbiAgICAgICAgc3NUaXRsZTogJ05vdXZlbGxlIHJlY2hlcmNoZScsXG4gICAgICAgIHNlYXJjaEJ5Q3JpdGVyaWE6ICdSZWNoZXJjaGUgcGFyIGNyaXTDqHJlcydcbiAgICAgIH0sXG4gICAgICBhdHRyaWJ1dGU6IHtcbiAgICAgICAgdGl0bGU6ICdBdHRyaWJ1dCA6ICcsXG4gICAgICAgIHJlbW92ZTogJ1JldGlyZXIgbGUgZmlsdHJlJ1xuICAgICAgfSxcbiAgICAgIHR5cGU6IHtcbiAgICAgICAgYW5kOiAnRVQnLFxuICAgICAgICBvcjogJ09VJ1xuICAgICAgfSxcbiAgICAgIGNvbXBvc2VkOiB7XG4gICAgICAgIGNsYXNzOiAnQ2xhc3NlJyxcbiAgICAgICAgdGl0bGU6ICdJbmNsdWV6IGRlcyBmaWx0cmVzJyxcbiAgICAgICAgb3JkZXI6ICdBam91dGVyIHVuIHRyaScsXG4gICAgICAgIG9yZGVyQTogJ0Nyb2lzc2FudCcsXG4gICAgICAgIG9yZGVyRDogJ0TDqWNyb2lzc2FudCcsXG4gICAgICAgIG9yZGVyTm9uZTogJ0F1Y3VuIHRyaScsXG4gICAgICAgIHNob3VsZFNlbGVjdENsYXNzOiAnQ2hvaXNpc3NleiB1bmUgY2xhc3NlJyxcbiAgICAgICAgY2hhbmdlQ2xhc3NXYXJuaW5nOiAnQ2hhbmdlciBkZSBjbGFzc2Ugc3VwcHJpbWVyYSB0b3V0ZXMgbGVzIGNvbmRpdGlvbnMnLFxuICAgICAgICBhZGRDb25kaXRpb246ICdBam91dGVyIHVuZSBjb25kaXRpb24nLFxuICAgICAgICBhZGRHcm91cDogJ0Fqb3V0ZXIgdW4gc291cy1ncm91cGUnLFxuICAgICAgICByZW1vdmVHcm91cDogJ1N1cHByaW1lciB1biBzb3VzLWdyb3VwZSdcbiAgICAgIH0sXG4gICAgICBvcGVyYXRvcjoge1xuICAgICAgICBjb250YWluczogJ0NvbnRpZW50JyxcbiAgICAgICAgc3RhcnRXaXRoOiAnQ29tbWVuY2UgcGFyJyxcbiAgICAgICAgZW5kV2l0aDogJ0ZpbmkgcGFyJyxcbiAgICAgICAgbm90RXF1YWxzU3RyaW5nOiAnRGlmZsOpcmVudCBkZScsXG4gICAgICAgIGVxdWFsc1N0cmluZzogJ0V4YWN0ZW1lbnQnLFxuICAgICAgICBlcXVhbHNOdW1iZXI6ICdFZ2FsJyxcbiAgICAgICAgZ3JlYXRlclRoYW5OdW1iZXI6ICdTdXDDqXJpZXVyIMOgJyxcbiAgICAgICAgbG93ZXJUaGFuTnVtYmVyOiAnSW5mw6lyaWV1ciDDoCcsXG4gICAgICAgIGlubmVyQm91bmRzTnVtYmVyOiAnQ29tcHJpcyBlbnRyZScsXG4gICAgICAgIG91dGVyQm91bmRzTnVtYmVyOiBcIkEgbCdleHTDqXJpZXVyIGRlXCIsXG4gICAgICAgIGdyZWF0ZXJUaGFuRGF0ZTogJ0FwcsOocycsXG4gICAgICAgIGxvd2VyVGhhbkRhdGU6ICdBdmFudCcsXG4gICAgICAgIGlubmVyQm91bmRzRGF0ZTogJ0VudHJlIGRldXggZGF0ZXMnLFxuICAgICAgICBvdXRlckJvdW5kc0RhdGU6IFwiQSBsJ2V4dMOpcmlldXIgZCd1bmUgcMOpcmlvZGVcIlxuICAgICAgfSxcbiAgICAgIHBsYWNlaG9sZGVyOiB7XG4gICAgICAgIHNlYXJjaDogJ0VudHJlciBsYSB2YWxldXIgLi4uJyxcbiAgICAgICAgbWluVmFsdWU6ICdWYWxldXIgbWluIC4uLicsXG4gICAgICAgIG1heFZhbHVlOiAnVmFsZXVyIG1heCAuLi4nXG4gICAgICB9LFxuICAgICAgbmFtZWRRdWVyeToge1xuICAgICAgICBlbXB0eU5hbWVkUXVlcnk6ICdBdWN1bmUgcmVjaGVyY2hlIGVucmVnaXN0csOpZScsXG4gICAgICAgIG9wZW46ICdFbnJlZ2lzdHJlciBsYSByZWNoZXJjaGUgc291cy4uLicsXG4gICAgICAgIHRpdGxlOiAnTm9tbWV6IGNldHRlIHJlY2hlcmNoZScsXG4gICAgICAgIHNhdmVUaXRsZTogJ1NhdXZlZ2FyZGVyIGNldHRlIHJlY2hlcmNoZScsXG4gICAgICAgIHJlbmFtZVRpdGxlOiAnUmVub21tZXIgY2V0dGUgcmVjaGVyY2hlJyxcbiAgICAgICAgcmVuYW1lOiAnUmVub21tZXInLFxuICAgICAgICBuYW1lOiAnTm9tJyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdEZXNjcmlwdGlvbicsXG4gICAgICAgIGZhdm9yaXRlOiAnRXBpbmdsZXInLFxuICAgICAgICBub0Zhdm9yaXRlOiAnRMOpdGFjaGVyJyxcbiAgICAgICAgZGlzcGxheTogJ0FmZmljaGVyJyxcbiAgICAgICAgcmVmcmVzaERhdGE6ICdBY3R1YWxpc2VyJyxcbiAgICAgICAgbm9TcG90OiAnUmVjaGVyY2hlIG5vbiB1dGlsaXPDqWUnLFxuICAgICAgICBjb2xvcjogJ0NvdWxldXIgamV1IGRlIGRvbm7DqWVzJyxcbiAgICAgICAgc3BvdDogJ1JlcMOpcmVyJyxcbiAgICAgICAgc3BvdFRpdGxlOiAnTGEgcmVjaGVyY2hlIGVzdCB1dGlsaXPDqWUgw6Age3tsZW5ndGh9fSBlbmRyb2l0czonLFxuICAgICAgICB1c2U6ICdWdWUgbsKwe3t3aW5kb3dJbmRleH19JyxcbiAgICAgICAgZGVsZXRlOiAnU3VwcHJpbWVyJyxcbiAgICAgICAgZWRpdDogJ0VkaXRlcicsXG4gICAgICAgIHNlZUxlc3M6ICd2b2lyIG1vaW5zJyxcbiAgICAgICAgc2VlTW9yZTogJ3ZvaXIgcGx1cycsXG4gICAgICAgIGV4cGxvcmU6ICdSZWNoZXJjaGUgZXhwbG9yYXRvaXJlJyxcbiAgICAgICAgdHlwZToge1xuICAgICAgICAgIG1hcDogJ0NhcnRlJyxcbiAgICAgICAgICB0YWJsZTogJ1RhYmxlYXUnLFxuICAgICAgICAgIGNoYXJ0OiAnR3JhcGhpcXVlJyxcbiAgICAgICAgICBncmFwaDogJ1JlbGF0aW9ucydcbiAgICAgICAgfSxcbiAgICAgICAgYWxyZWFkeUVkaXRpbmc6ICdWb3VzIGF2ZXogZMOpasOgIHVuZSDDqWRpdGlvbiBkZSByZWNoZXJjaGUgZW4gY291cnMuJyxcbiAgICAgICAgcmVmcmVzaDoge1xuICAgICAgICAgIHRpdGxlOiAnUmFmcmFpY2hpc3NlbWVudCBhdXRvbWF0aXF1ZScsXG4gICAgICAgICAgMDogJ0luYWN0aWYnLFxuICAgICAgICAgIDEwOiAnMTAgc2Vjb25kZXMnLFxuICAgICAgICAgIDMwOiAnMzAgc2Vjb25kZXMnLFxuICAgICAgICAgIDYwOiAnMSBtaW51dGUnXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBtb25vOiB7XG4gICAgICAgIHRpdGxlOiAnUmVjaGVyY2hlIGNyaXTDqHJlcyBhdmFuY8OpcydcbiAgICAgIH0sXG4gICAgICBmdWxsdGV4dDoge1xuICAgICAgICBhbGxDbGFzc2VzOiAnVG91dGVzIGxlcyBjbGFzc2VzJyxcbiAgICAgICAgb25lQ2xhc3M6ICdVbmUgY2xhc3NlIHPDqWxlY3Rpb25uw6llJyxcbiAgICAgICAgbWFueUNsYXNzZXM6ICd7e25ifX0gY2xhc3NlcyBzw6lsZWN0aW9ubsOpZXMnLFxuICAgICAgICBzZWFyY2g6ICdMYW5jZXIgbGEgcmVjaGVyY2hlJ1xuICAgICAgfSxcbiAgICAgIG11bHRpOiB7XG4gICAgICAgIHRpdGxlOiAnQWpvdXRlciBkZXMgY3JpdMOocmVzJyxcbiAgICAgICAgYWRkQ29uZGl0aW9uOiAnQWpvdXRlciB1biBjcml0w6hyZScsXG4gICAgICAgIG9wdGlvbnM6ICdPcHRpb25zJyxcbiAgICAgICAgbXVsdGlUeXBlOiAnQXNzb2NpZXIgbGVzIGNyaXTDqHJlcycsXG4gICAgICAgIHNlYXJjaDogJ1JlY2hlcmNoZXInLFxuICAgICAgICByZXF1aXJlZEVycm9yOiAnTGEgdmFsZXVyIGVzdCBtYW5xdWFudGUnLFxuICAgICAgICBwYXR0ZXJuRXJyb3I6ICdMZSBmb3JtYXQgZXN0IGluY29ycmVjdCcsXG4gICAgICAgIHNlbGVjdEZpZWxkOiAnU8OpbGVjdGlvbm5lciB1biBjcml0w6hyZScsXG4gICAgICAgIGxlZ2VuZDogJ0NyaXTDqHJlIC8gY2xhc3NlcyB1dGlsaXNhbnQgY2UgY3JpdMOocmUnLFxuICAgICAgICBpbjogJ2RhbnMnXG4gICAgICB9LFxuICAgICAgcGFyYW1zOiB7XG4gICAgICAgIHRpdGxlOiAnUGFyYW3DqHRyZXMgZGUgcmVjaGVyY2hlJyxcbiAgICAgICAgYnV0dG9uOiAnRW5yZWdpc3RyZXIgbGVzIHBhcmFtw6h0cmVzJyxcbiAgICAgICAgbmFtZWRRdWVyeToge1xuICAgICAgICAgIHRpdGxlOiAnUmVjaGVyY2hlcycsXG4gICAgICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgICAgICBcIkNldHRlIHBhcnRpZSByZWdyb3VwZSBsZXMgcGFyYW3DqHRyZXMgcGFyIGTDqWZhdXQgZCd1bmUgbm91dmVsbGUgcmVjaGVyY2hlKGxhIGNvdWxldXIgw6AgdXRpbGlzZXIsIC4uLilcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59O1xuIl19
138
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnIudHJhbnNsYXRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvc2VhcmNoL2kxOG4vZnIudHJhbnNsYXRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRztJQUM1QixNQUFNLEVBQUU7UUFDTixNQUFNLEVBQUU7WUFDTixLQUFLLEVBQUUsV0FBVztZQUNsQixNQUFNLEVBQUU7Z0JBQ04sTUFBTSxFQUFFLGFBQWE7Z0JBQ3JCLE1BQU0sRUFBRSxZQUFZO2dCQUNwQixNQUFNLEVBQUUsU0FBUztnQkFDakIsS0FBSyxFQUFFLGVBQWU7Z0JBQ3RCLFVBQVUsRUFBRSxrQ0FBa0M7Z0JBQzlDLElBQUksRUFBRSxzQkFBc0I7Z0JBQzVCLEtBQUssRUFBRSw2QkFBNkI7YUFDckM7WUFDRCxJQUFJLEVBQUU7Z0JBQ0osRUFBRSxFQUFFLElBQUk7Z0JBQ1IsS0FBSyxFQUFFLGdCQUFnQjtnQkFDdkIsT0FBTyxFQUFFLG9CQUFvQjtnQkFDN0IsZ0JBQWdCLEVBQUUsd0JBQXdCO2dCQUMxQyxnQkFBZ0IsRUFBRSxxQ0FBcUM7Z0JBQ3ZELG9CQUFvQixFQUFFLDhDQUE4QztnQkFDcEUsWUFBWSxFQUFFLGdCQUFnQjthQUMvQjtZQUNELFNBQVMsRUFBRTtnQkFDVCxLQUFLLEVBQUUsYUFBYTtnQkFDcEIsTUFBTSxFQUFFLG1CQUFtQjthQUM1QjtZQUNELElBQUksRUFBRTtnQkFDSixHQUFHLEVBQUUsSUFBSTtnQkFDVCxFQUFFLEVBQUUsSUFBSTthQUNUO1lBQ0QsUUFBUSxFQUFFO2dCQUNSLEtBQUssRUFBRSxRQUFRO2dCQUNmLEtBQUssRUFBRSxxQkFBcUI7Z0JBQzVCLEtBQUssRUFBRSxnQkFBZ0I7Z0JBQ3ZCLE1BQU0sRUFBRSxXQUFXO2dCQUNuQixNQUFNLEVBQUUsYUFBYTtnQkFDckIsU0FBUyxFQUFFLFdBQVc7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Q0FBd0M7Z0JBQ2hELEVBQUUsRUFBRSxNQUFNO2FBQ1g7WUFDRCxNQUFNLEVBQUU7Z0JBQ04sS0FBSyxFQUFFLHlCQUF5QjtnQkFDaEMsTUFBTSxFQUFFLDRCQUE0QjtnQkFDcEMsVUFBVSxFQUFFO29CQUNWLEtBQUssRUFBRSxZQUFZO29CQUNuQixXQUFXLEVBQ1Qsc0dBQXNHO2lCQUN6RzthQUNGO1NBQ0Y7S0FDRjtDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgZnJUcmFuc2xhdGlvbnMgPSB7XG4gICdAcHJ5Jzoge1xuICAgIHNlYXJjaDoge1xuICAgICAgdGl0bGU6ICdSZWNoZXJjaGUnLFxuICAgICAgYnV0dG9uOiB7XG4gICAgICAgIHVwZGF0ZTogJ0VucmVnaXN0cmVyJyxcbiAgICAgICAgc2VhcmNoOiAnUmVjaGVyY2hlcicsXG4gICAgICAgIGNhbmNlbDogJ0FubnVsZXInLFxuICAgICAgICByZXNldDogJ1JlbWlzZSDDoCB6w6lybycsXG4gICAgICAgIGJhY2tTZWFyY2g6ICdSZXRvdXIgw6AgbGEgbGlzdGUgZGVzIHJlY2hlcmNoZXMnLFxuICAgICAgICBtb25vOiAnUmVjaGVyY2hlIHBhciBjbGFzc2UnLFxuICAgICAgICBtdWx0aTogJ1JlY2hlcmNoZSBwYXIgY2hhbXBzIG3DqXRpZXInXG4gICAgICB9LFxuICAgICAgaG9tZToge1xuICAgICAgICBvcjogJ291JyxcbiAgICAgICAgdGl0bGU6ICdNZXMgcmVjaGVyY2hlcycsXG4gICAgICAgIHNzVGl0bGU6ICdOb3V2ZWxsZSByZWNoZXJjaGUnLFxuICAgICAgICBzZWFyY2hCeUNyaXRlcmlhOiAnUmVjaGVyY2hlIHBhciBjcml0w6hyZXMnLFxuICAgICAgICBhc3NvY2lhdGVkV2lkZ2V0OiAnbGUgd2lkZ2V0IGFzc29jacOpIMOgIGNldHRlIHJlY2hlcmNoZScsXG4gICAgICAgIHNob3dBc3NvY2lhdGVkV2lkZ2V0OiAnQWZmaWNoZXIgbGUgd2lkZ2V0IGFzc29jacOpIMOgIGNldHRlIHJlY2hlcmNoZScsXG4gICAgICAgIG90aGVyQWN0aW9uczogJ0F1dHJlcyBhY3Rpb25zJ1xuICAgICAgfSxcbiAgICAgIGF0dHJpYnV0ZToge1xuICAgICAgICB0aXRsZTogJ0F0dHJpYnV0IDogJyxcbiAgICAgICAgcmVtb3ZlOiAnUmV0aXJlciBsZSBmaWx0cmUnXG4gICAgICB9LFxuICAgICAgdHlwZToge1xuICAgICAgICBhbmQ6ICdFVCcsXG4gICAgICAgIG9yOiAnT1UnXG4gICAgICB9LFxuICAgICAgY29tcG9zZWQ6IHtcbiAgICAgICAgY2xhc3M6ICdDbGFzc2UnLFxuICAgICAgICB0aXRsZTogJ0luY2x1ZXogZGVzIGZpbHRyZXMnLFxuICAgICAgICBvcmRlcjogJ0Fqb3V0ZXIgdW4gdHJpJyxcbiAgICAgICAgb3JkZXJBOiAnQ3JvaXNzYW50JyxcbiAgICAgICAgb3JkZXJEOiAnRMOpY3JvaXNzYW50JyxcbiAgICAgICAgb3JkZXJOb25lOiAnQXVjdW4gdHJpJyxcbiAgICAgICAgc2hvdWxkU2VsZWN0Q2xhc3M6ICdDaG9pc2lzc2V6IHVuZSBjbGFzc2UnLFxuICAgICAgICBjaGFuZ2VDbGFzc1dhcm5pbmc6ICdDaGFuZ2VyIGRlIGNsYXNzZSBzdXBwcmltZXJhIHRvdXRlcyBsZXMgY29uZGl0aW9ucycsXG4gICAgICAgIGFkZENvbmRpdGlvbjogJ0Fqb3V0ZXIgdW5lIGNvbmRpdGlvbicsXG4gICAgICAgIGFkZEdyb3VwOiAnQWpvdXRlciB1biBzb3VzLWdyb3VwZScsXG4gICAgICAgIHJlbW92ZUdyb3VwOiAnU3VwcHJpbWVyIHVuIHNvdXMtZ3JvdXBlJ1xuICAgICAgfSxcbiAgICAgIG9wZXJhdG9yOiB7XG4gICAgICAgIGNvbnRhaW5zOiAnQ29udGllbnQnLFxuICAgICAgICBzdGFydFdpdGg6ICdDb21tZW5jZSBwYXInLFxuICAgICAgICBlbmRXaXRoOiAnRmluaSBwYXInLFxuICAgICAgICBub3RFcXVhbHNTdHJpbmc6ICdEaWZmw6lyZW50IGRlJyxcbiAgICAgICAgZXF1YWxzU3RyaW5nOiAnRXhhY3RlbWVudCcsXG4gICAgICAgIGVxdWFsc051bWJlcjogJ0VnYWwnLFxuICAgICAgICBncmVhdGVyVGhhbk51bWJlcjogJ1N1cMOpcmlldXIgw6AnLFxuICAgICAgICBsb3dlclRoYW5OdW1iZXI6ICdJbmbDqXJpZXVyIMOgJyxcbiAgICAgICAgaW5uZXJCb3VuZHNOdW1iZXI6ICdDb21wcmlzIGVudHJlJyxcbiAgICAgICAgb3V0ZXJCb3VuZHNOdW1iZXI6IFwiQSBsJ2V4dMOpcmlldXIgZGVcIixcbiAgICAgICAgZ3JlYXRlclRoYW5EYXRlOiAnQXByw6hzJyxcbiAgICAgICAgbG93ZXJUaGFuRGF0ZTogJ0F2YW50JyxcbiAgICAgICAgaW5uZXJCb3VuZHNEYXRlOiAnRW50cmUgZGV1eCBkYXRlcycsXG4gICAgICAgIG91dGVyQm91bmRzRGF0ZTogXCJBIGwnZXh0w6lyaWV1ciBkJ3VuZSBww6lyaW9kZVwiXG4gICAgICB9LFxuICAgICAgcGxhY2Vob2xkZXI6IHtcbiAgICAgICAgc2VhcmNoOiAnRW50cmVyIGxhIHZhbGV1ciAuLi4nLFxuICAgICAgICBtaW5WYWx1ZTogJ1ZhbGV1ciBtaW4gLi4uJyxcbiAgICAgICAgbWF4VmFsdWU6ICdWYWxldXIgbWF4IC4uLidcbiAgICAgIH0sXG4gICAgICBuYW1lZFF1ZXJ5OiB7XG4gICAgICAgIGVtcHR5TmFtZWRRdWVyeTogJ0F1Y3VuZSByZWNoZXJjaGUgZW5yZWdpc3Ryw6llJyxcbiAgICAgICAgb3BlbjogJ0VucmVnaXN0cmVyIGxhIHJlY2hlcmNoZSBzb3VzLi4uJyxcbiAgICAgICAgdGl0bGU6ICdOb21tZXogY2V0dGUgcmVjaGVyY2hlJyxcbiAgICAgICAgc2F2ZVRpdGxlOiAnU2F1dmVnYXJkZXIgY2V0dGUgcmVjaGVyY2hlJyxcbiAgICAgICAgcmVuYW1lVGl0bGU6ICdSZW5vbW1lciBjZXR0ZSByZWNoZXJjaGUnLFxuICAgICAgICByZW5hbWU6ICdSZW5vbW1lcicsXG4gICAgICAgIG5hbWU6ICdOb20nLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ0Rlc2NyaXB0aW9uJyxcbiAgICAgICAgZmF2b3JpdGU6ICdFcGluZ2xlcicsXG4gICAgICAgIG5vRmF2b3JpdGU6ICdEw6l0YWNoZXInLFxuICAgICAgICBkaXNwbGF5OiAnQWZmaWNoZXInLFxuICAgICAgICByZWZyZXNoRGF0YTogJ0FjdHVhbGlzZXInLFxuICAgICAgICBub1Nwb3Q6ICdSZWNoZXJjaGUgbm9uIHV0aWxpc8OpZScsXG4gICAgICAgIGNvbG9yOiAnQ291bGV1ciBqZXUgZGUgZG9ubsOpZXMnLFxuICAgICAgICBzcG90OiAnUmVww6lyZXInLFxuICAgICAgICBzcG90VGl0bGU6ICdMYSByZWNoZXJjaGUgZXN0IHV0aWxpc8OpZSDDoCB7e2xlbmd0aH19IGVuZHJvaXRzOicsXG4gICAgICAgIHVzZTogJ1Z1ZSBuwrB7e3dpbmRvd0luZGV4fX0nLFxuICAgICAgICBkZWxldGU6ICdTdXBwcmltZXInLFxuICAgICAgICBlZGl0OiAnRWRpdGVyJyxcbiAgICAgICAgc2VlTGVzczogJ3ZvaXIgbW9pbnMnLFxuICAgICAgICBzZWVNb3JlOiAndm9pciBwbHVzJyxcbiAgICAgICAgZXhwbG9yZTogJ1JlY2hlcmNoZSBleHBsb3JhdG9pcmUnLFxuICAgICAgICB0eXBlOiB7XG4gICAgICAgICAgbWFwOiAnQ2FydGUnLFxuICAgICAgICAgIHRhYmxlOiAnVGFibGVhdScsXG4gICAgICAgICAgY2hhcnQ6ICdHcmFwaGlxdWUnLFxuICAgICAgICAgIGdyYXBoOiAnUmVsYXRpb25zJ1xuICAgICAgICB9LFxuICAgICAgICBhbHJlYWR5RWRpdGluZzogJ1ZvdXMgYXZleiBkw6lqw6AgdW5lIMOpZGl0aW9uIGRlIHJlY2hlcmNoZSBlbiBjb3Vycy4nLFxuICAgICAgICByZWZyZXNoOiB7XG4gICAgICAgICAgdGl0bGU6ICdSYWZyYWljaGlzc2VtZW50IGF1dG9tYXRpcXVlJyxcbiAgICAgICAgICAwOiAnSW5hY3RpZicsXG4gICAgICAgICAgMTA6ICcxMCBzZWNvbmRlcycsXG4gICAgICAgICAgMzA6ICczMCBzZWNvbmRlcycsXG4gICAgICAgICAgNjA6ICcxIG1pbnV0ZSdcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIG1vbm86IHtcbiAgICAgICAgdGl0bGU6ICdSZWNoZXJjaGUgY3JpdMOocmVzIGF2YW5jw6lzJ1xuICAgICAgfSxcbiAgICAgIGZ1bGx0ZXh0OiB7XG4gICAgICAgIGFsbENsYXNzZXM6ICdUb3V0ZXMgbGVzIGNsYXNzZXMnLFxuICAgICAgICBvbmVDbGFzczogJ1VuZSBjbGFzc2Ugc8OpbGVjdGlvbm7DqWUnLFxuICAgICAgICBtYW55Q2xhc3NlczogJ3t7bmJ9fSBjbGFzc2VzIHPDqWxlY3Rpb25uw6llcycsXG4gICAgICAgIHNlbGVjdENsYXNzOiAnU8OpbGVjdGlvbm5lciBsYSBjbGFzc2UnLFxuICAgICAgICBzZWFyY2g6ICdMYW5jZXIgbGEgcmVjaGVyY2hlJyxcbiAgICAgICAgY2xlYXI6ICdFZmZhY2VyIGxhIHNhaXNpZSdcbiAgICAgIH0sXG4gICAgICBtdWx0aToge1xuICAgICAgICB0aXRsZTogJ0Fqb3V0ZXIgZGVzIGNyaXTDqHJlcycsXG4gICAgICAgIGFkZENvbmRpdGlvbjogJ0Fqb3V0ZXIgdW4gY3JpdMOocmUnLFxuICAgICAgICBvcHRpb25zOiAnT3B0aW9ucycsXG4gICAgICAgIGV4dHJhT3B0aW9uczogJ09wdGlvbnMgc3VwcGzDqW1lbnRhaXJlcycsXG4gICAgICAgIG11bHRpVHlwZTogJ0Fzc29jaWVyIGxlcyBjcml0w6hyZXMnLFxuICAgICAgICBzZWFyY2g6ICdSZWNoZXJjaGVyJyxcbiAgICAgICAgcmVxdWlyZWRFcnJvcjogJ0xhIHZhbGV1ciBlc3QgbWFucXVhbnRlJyxcbiAgICAgICAgcGF0dGVybkVycm9yOiAnTGUgZm9ybWF0IGVzdCBpbmNvcnJlY3QnLFxuICAgICAgICBzZWxlY3RGaWVsZDogJ1PDqWxlY3Rpb25uZXIgdW4gY3JpdMOocmUnLFxuICAgICAgICBsZWdlbmQ6ICdDcml0w6hyZSAvIGNsYXNzZXMgdXRpbGlzYW50IGNlIGNyaXTDqHJlJyxcbiAgICAgICAgaW46ICdkYW5zJ1xuICAgICAgfSxcbiAgICAgIHBhcmFtczoge1xuICAgICAgICB0aXRsZTogJ1BhcmFtw6h0cmVzIGRlIHJlY2hlcmNoZScsXG4gICAgICAgIGJ1dHRvbjogJ0VucmVnaXN0cmVyIGxlcyBwYXJhbcOodHJlcycsXG4gICAgICAgIG5hbWVkUXVlcnk6IHtcbiAgICAgICAgICB0aXRsZTogJ1JlY2hlcmNoZXMnLFxuICAgICAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICAgICAgXCJDZXR0ZSBwYXJ0aWUgcmVncm91cGUgbGVzIHBhcmFtw6h0cmVzIHBhciBkw6lmYXV0IGQndW5lIG5vdXZlbGxlIHJlY2hlcmNoZShsYSBjb3VsZXVyIMOgIHV0aWxpc2VyLCAuLi4pXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufTtcbiJdfQ==
@@ -166,11 +166,11 @@ export class PrySearchFulltextComponent {
166
166
  this.searchChange.emit(payload);
167
167
  }
168
168
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: PrySearchFulltextComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
169
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: PrySearchFulltextComponent, selector: "pry-search-fulltext", inputs: { mode: "mode", launchButton: "launchButton", currentEdit: "currentEdit" }, outputs: { searchChange: "searchChange" }, host: { listeners: { "document:click": "clickout($event)", "window:keyup.enter": "keyEvent($event)" } }, viewQueries: [{ propertyName: "searchButton", first: true, predicate: ["searchButton"], descendants: true, read: ElementRef }, { propertyName: "searchTrigger", first: true, predicate: ["searchTrigger"], descendants: true, read: ElementRef }, { propertyName: "searchInputRef", first: true, predicate: ["searchInput"], descendants: true, read: ElementRef }, { propertyName: "searchOverlayRef", first: true, predicate: ["searchOverlay"], descendants: true, read: ElementRef }, { propertyName: "searchClass", first: true, predicate: ["searchClass"], descendants: true }, { propertyName: "chooseClasses", first: true, predicate: ["chooseClasses"], descendants: true }], ngImport: i0, template: "<pry-search-css></pry-search-css>\n<div class=\"o-search-fulltext\" [class.o-search-fulltext--vertical]=\"mode === 'vertical'\">\n <div class=\"o-search-fulltext__container\">\n <button\n #searchClass\n type=\"button\"\n class=\"o-search-fulltext__classes\"\n [class.o-search-fulltext__classes--inline]=\"mode === 'inline'\"\n [pryOverlay]=\"classesOverlay\"\n [(overlayOpen)]=\"panelClassesOpen\"\n pryOverlayPosition=\"start-top\"\n [pryOverlaySticky]=\"true\"\n [pryOverlayNoPadding]=\"true\"\n (click)=\"panelClassesOpen = true\"\n >\n <span\n class=\"o-search-fulltext__classes__content\"\n [pryTooltip]=\"infoTooltip\"\n pryTooltipPosition=\"bottom\"\n aria-describedby=\"infoTooltip_searchfulltext\"\n >\n <pry-icon\n [iconSvg]=\"classesSelected.length === 0 ? 'apps' : 'detail'\"\n [height]=\"20\"\n [width]=\"20\"\n [animation]=\"false\"\n ></pry-icon>\n <span class=\"o-search-fulltext__classes__content__label\" *ngIf=\"mode === 'inline'\">\n {{ classesSelectedLabel | i18n: { nb: classesSelected.length } }}\n </span>\n </span>\n\n <span class=\"o-search-fulltext__classes__arrow\">\n <pry-icon\n iconSvg=\"fleche_bas\"\n [width]=\"17\"\n [height]=\"17\"\n [animation]=\"false\"\n class=\"o-search-fulltext__classes__arrow__icon\"\n [class.is-open]=\"panelClassesOpen\"\n ></pry-icon>\n </span>\n </button>\n\n <pry-choose-widget\n [mode]=\"'input'\"\n [class.m-choose-widget__input__inline]=\"mode === 'inline'\"\n [panelOpen]=\"panelSearchOpen\"\n [width]=\"searchPanelWidth ?? 200\"\n (selected)=\"onSelectWidget($event)\"\n >\n <input\n #searchInput\n [(ngModel)]=\"search\"\n (input)=\"onChangeSearch($event)\"\n (focusin)=\"onOpenSearchPanel()\"\n (focusout)=\"onFocusOut()\"\n />\n <div\n *ngIf=\"!searchDisabled\"\n class=\"o-search-fulltext__input__clear\"\n [pryTooltip]=\"infoTooltipClose\"\n pryTooltipPosition=\"bottom\"\n aria-describedby=\"infoTooltipClose_searchfulltext\"\n >\n <div class=\"o-search-fulltext__input__clear__wrapper\" (click)=\"onClearSearch($event)\">\n <pry-icon iconSvg=\"close\" [height]=\"16\" [width]=\"16\" [animation]=\"false\"></pry-icon>\n <span class=\"u-visually-hidden\">Effacer la saisie</span>\n </div>\n </div>\n </pry-choose-widget>\n </div>\n\n <button\n #searchButton\n class=\"a-btn a-btn--primary\"\n (click)=\"onSearch()\"\n [class.o-search-fulltext__button__inline]=\"mode === 'inline'\"\n [ngClass]=\"{ ' -width-full': mode === 'vertical' }\"\n [disabled]=\"searchDisabled\"\n *ngIf=\"launchButton\"\n [pryTooltip]=\"infoTooltipSearch\"\n pryTooltipPosition=\"bottom\"\n aria-describedby=\"infoTooltipSearch_searchfulltext\"\n >\n <pry-icon iconSvg=\"search-line\" [animation]=\"false\"></pry-icon>\n <span *ngIf=\"mode === 'vertical'\">{{ '@pry.search.fulltext.search' | i18n }}</span>\n <span class=\"u-visually-hidden\">Lancer la recherche</span>\n </button>\n</div>\n\n<ng-template #classesOverlay>\n <div\n class=\"o-search-fulltext__classes-overlay\"\n #chooseClasses\n (keydown.escape)=\"closeFocus()\"\n (keydown.arrowDown)=\"onArrowDown()\"\n (keydown.arrowUp)=\"onArrowUp()\"\n >\n <button class=\"o-search-fulltext__classes-overlay__item\" (click)=\"onSelectAllClasses()\">\n <pry-icon iconSvg=\"apps\" [width]=\"20\" [height]=\"20\"></pry-icon>\n <span class=\"o-search-fulltext__classes-overlay__item__label\">{{\n '@pry.search.fulltext.allClasses' | i18n\n }}</span>\n </button>\n <ng-container *ngFor=\"let clazz of classes$ | async; let last = last\">\n <button\n type=\"button\"\n class=\"o-search-fulltext__classes-overlay__item\"\n (click)=\"onSelectClass(clazz)\"\n [class.o-search-fulltext__classes-overlay__item__selected]=\"classesSelected.includes(clazz.id)\"\n (keydown.tab)=\"last ? closeFocus() : null\"\n >\n <img\n alt=\"class\"\n [height]=\"20\"\n [width]=\"20\"\n [src]=\"clazz.id | translateId: { type: 'class', output: 'icon' } | async\"\n />\n <span class=\"o-search-fulltext__classes-overlay__item__label\">{{ clazz.name }}</span>\n </button>\n </ng-container>\n </div>\n</ng-template>\n\n<ng-template #infoTooltip>\n <div class=\"m-tooltip\" role=\"tooltip\" id=\"infoTooltip_searchfulltext\">\n <span class=\"m-tooltip__text\"> S\u00E9lectionner la classe </span>\n </div>\n</ng-template>\n\n<ng-template #infoTooltipSearch>\n <div class=\"m-tooltip\" role=\"tooltip\" id=\"infoTooltipSearch_searchfulltext\">\n <span class=\"m-tooltip__text\"> Lancer la recherche </span>\n </div>\n</ng-template>\n\n<ng-template #infoTooltipClose>\n <div class=\"m-tooltip\" role=\"tooltip\" id=\"infoTooltipClose_searchfulltext\">\n <span class=\"m-tooltip__text\"> Effacer la saisie </span>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.PryTooltipDirective, selector: "[pryTooltip]", inputs: ["pryTooltip", "styleReversed", "pryTooltipContext", "pryTooltipPosition", "pryTooltipShowDelay"] }, { kind: "directive", type: i3.PryOverlayDirective, selector: "[pryOverlay]", inputs: ["pryOverlay", "styleReversed", "pryOverlaySticky", "pryOverlayNoPadding", "pryOverlayPosition", "overlayOpen", "hasBackdrop"], outputs: ["overlayOpenChange"] }, { kind: "component", type: i5.ChooseWidgetComponent, selector: "pry-choose-widget", inputs: ["panelOpen", "mode", "width"], outputs: ["selected"] }, { kind: "component", type: i6.PrySearchCssComponent, selector: "pry-search-css" }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.TranslateIdPipe, name: "translateId" }, { kind: "pipe", type: i3.I18nPipe, name: "i18n" }] }); }
169
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: PrySearchFulltextComponent, selector: "pry-search-fulltext", inputs: { mode: "mode", launchButton: "launchButton", currentEdit: "currentEdit" }, outputs: { searchChange: "searchChange" }, host: { listeners: { "document:click": "clickout($event)", "window:keyup.enter": "keyEvent($event)" } }, viewQueries: [{ propertyName: "searchButton", first: true, predicate: ["searchButton"], descendants: true, read: ElementRef }, { propertyName: "searchTrigger", first: true, predicate: ["searchTrigger"], descendants: true, read: ElementRef }, { propertyName: "searchInputRef", first: true, predicate: ["searchInput"], descendants: true, read: ElementRef }, { propertyName: "searchOverlayRef", first: true, predicate: ["searchOverlay"], descendants: true, read: ElementRef }, { propertyName: "searchClass", first: true, predicate: ["searchClass"], descendants: true }, { propertyName: "chooseClasses", first: true, predicate: ["chooseClasses"], descendants: true }], ngImport: i0, template: "<pry-search-css></pry-search-css>\n<div class=\"o-search-fulltext\" [class.o-search-fulltext--vertical]=\"mode === 'vertical'\">\n <div class=\"o-search-fulltext__container\">\n <button\n #searchClass\n type=\"button\"\n class=\"o-search-fulltext__classes\"\n [class.o-search-fulltext__classes--inline]=\"mode === 'inline'\"\n [pryOverlay]=\"classesOverlay\"\n [(overlayOpen)]=\"panelClassesOpen\"\n pryOverlayPosition=\"start-top\"\n [pryOverlaySticky]=\"true\"\n [pryOverlayNoPadding]=\"true\"\n (click)=\"panelClassesOpen = true\"\n >\n <span\n class=\"o-search-fulltext__classes__content a-tooltip\"\n [attr.data-tooltip]=\"'@pry.search.fulltext.selectClass' | i18n\"\n data-tooltip-position=\"bottom\"\n >\n <pry-icon\n [iconSvg]=\"classesSelected.length === 0 ? 'apps' : 'detail'\"\n [height]=\"20\"\n [width]=\"20\"\n [animation]=\"false\"\n ></pry-icon>\n <span class=\"o-search-fulltext__classes__content__label\" *ngIf=\"mode === 'inline'\">\n {{ classesSelectedLabel | i18n : { nb: classesSelected.length } }}\n </span>\n </span>\n\n <span class=\"o-search-fulltext__classes__arrow\">\n <pry-icon\n iconSvg=\"fleche_bas\"\n [width]=\"17\"\n [height]=\"17\"\n [animation]=\"false\"\n class=\"o-search-fulltext__classes__arrow__icon\"\n [class.is-open]=\"panelClassesOpen\"\n ></pry-icon>\n </span>\n </button>\n\n <pry-choose-widget\n [mode]=\"'input'\"\n [class.m-choose-widget__input__inline]=\"mode === 'inline'\"\n [panelOpen]=\"panelSearchOpen\"\n [width]=\"searchPanelWidth ?? 200\"\n (selected)=\"onSelectWidget($event)\"\n >\n <input\n #searchInput\n [(ngModel)]=\"search\"\n (input)=\"onChangeSearch($event)\"\n (focusin)=\"onOpenSearchPanel()\"\n (focusout)=\"onFocusOut()\"\n />\n <div *ngIf=\"!searchDisabled\" class=\"o-search-fulltext__input__clear\">\n <div class=\"o-search-fulltext__input__clear__wrapper\" (click)=\"onClearSearch($event)\">\n <div\n class=\"a-tooltip\"\n [attr.data-tooltip]=\"'@pry.search.fulltext.clear' | i18n\"\n data-tooltip-position=\"bottom\"\n >\n <pry-icon iconSvg=\"close\" [height]=\"16\" [width]=\"16\" [animation]=\"false\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.search.fulltext.clear' | i18n }}</span>\n </div>\n </div>\n </div>\n </pry-choose-widget>\n </div>\n\n <button\n #searchButton\n class=\"a-btn a-btn--primary a-tooltip\"\n (click)=\"onSearch()\"\n [class.o-search-fulltext__button__inline]=\"mode === 'inline'\"\n [ngClass]=\"{ ' -width-full': mode === 'vertical' }\"\n [disabled]=\"searchDisabled\"\n *ngIf=\"launchButton\"\n [attr.data-tooltip]=\"'@pry.search.fulltext.search' | i18n\"\n data-tooltip-position=\"bottom\"\n >\n <pry-icon iconSvg=\"search-line\" [animation]=\"false\"></pry-icon>\n <span *ngIf=\"mode === 'vertical'\">{{ '@pry.search.fulltext.search' | i18n }}</span>\n <span class=\"u-visually-hidden\">{{ '@pry.search.fulltext.search' | i18n }}</span>\n </button>\n</div>\n\n<ng-template #classesOverlay>\n <div\n class=\"o-search-fulltext__classes-overlay\"\n #chooseClasses\n (keydown.escape)=\"closeFocus()\"\n (keydown.arrowDown)=\"onArrowDown()\"\n (keydown.arrowUp)=\"onArrowUp()\"\n >\n <button class=\"o-search-fulltext__classes-overlay__item\" (click)=\"onSelectAllClasses()\">\n <pry-icon iconSvg=\"apps\" [width]=\"20\" [height]=\"20\"></pry-icon>\n <span class=\"o-search-fulltext__classes-overlay__item__label\">{{\n '@pry.search.fulltext.allClasses' | i18n\n }}</span>\n </button>\n <ng-container *ngFor=\"let clazz of classes$ | async; let last = last\">\n <button\n type=\"button\"\n class=\"o-search-fulltext__classes-overlay__item\"\n (click)=\"onSelectClass(clazz)\"\n [class.o-search-fulltext__classes-overlay__item__selected]=\"classesSelected.includes(clazz.id)\"\n (keydown.tab)=\"last ? closeFocus() : null\"\n >\n <img\n alt=\"class\"\n [height]=\"20\"\n [width]=\"20\"\n [src]=\"clazz.id | translateId : { type: 'class', output: 'icon' } | async\"\n />\n <span class=\"o-search-fulltext__classes-overlay__item__label\">{{ clazz.name }}</span>\n </button>\n </ng-container>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.PryOverlayDirective, selector: "[pryOverlay]", inputs: ["pryOverlay", "styleReversed", "pryOverlaySticky", "pryOverlayNoPadding", "pryOverlayPosition", "overlayOpen", "hasBackdrop"], outputs: ["overlayOpenChange"] }, { kind: "component", type: i5.ChooseWidgetComponent, selector: "pry-choose-widget", inputs: ["panelOpen", "mode", "width"], outputs: ["selected"] }, { kind: "component", type: i6.PrySearchCssComponent, selector: "pry-search-css" }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.TranslateIdPipe, name: "translateId" }, { kind: "pipe", type: i3.I18nPipe, name: "i18n" }] }); }
170
170
  }
171
171
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: PrySearchFulltextComponent, decorators: [{
172
172
  type: Component,
173
- args: [{ selector: 'pry-search-fulltext', template: "<pry-search-css></pry-search-css>\n<div class=\"o-search-fulltext\" [class.o-search-fulltext--vertical]=\"mode === 'vertical'\">\n <div class=\"o-search-fulltext__container\">\n <button\n #searchClass\n type=\"button\"\n class=\"o-search-fulltext__classes\"\n [class.o-search-fulltext__classes--inline]=\"mode === 'inline'\"\n [pryOverlay]=\"classesOverlay\"\n [(overlayOpen)]=\"panelClassesOpen\"\n pryOverlayPosition=\"start-top\"\n [pryOverlaySticky]=\"true\"\n [pryOverlayNoPadding]=\"true\"\n (click)=\"panelClassesOpen = true\"\n >\n <span\n class=\"o-search-fulltext__classes__content\"\n [pryTooltip]=\"infoTooltip\"\n pryTooltipPosition=\"bottom\"\n aria-describedby=\"infoTooltip_searchfulltext\"\n >\n <pry-icon\n [iconSvg]=\"classesSelected.length === 0 ? 'apps' : 'detail'\"\n [height]=\"20\"\n [width]=\"20\"\n [animation]=\"false\"\n ></pry-icon>\n <span class=\"o-search-fulltext__classes__content__label\" *ngIf=\"mode === 'inline'\">\n {{ classesSelectedLabel | i18n: { nb: classesSelected.length } }}\n </span>\n </span>\n\n <span class=\"o-search-fulltext__classes__arrow\">\n <pry-icon\n iconSvg=\"fleche_bas\"\n [width]=\"17\"\n [height]=\"17\"\n [animation]=\"false\"\n class=\"o-search-fulltext__classes__arrow__icon\"\n [class.is-open]=\"panelClassesOpen\"\n ></pry-icon>\n </span>\n </button>\n\n <pry-choose-widget\n [mode]=\"'input'\"\n [class.m-choose-widget__input__inline]=\"mode === 'inline'\"\n [panelOpen]=\"panelSearchOpen\"\n [width]=\"searchPanelWidth ?? 200\"\n (selected)=\"onSelectWidget($event)\"\n >\n <input\n #searchInput\n [(ngModel)]=\"search\"\n (input)=\"onChangeSearch($event)\"\n (focusin)=\"onOpenSearchPanel()\"\n (focusout)=\"onFocusOut()\"\n />\n <div\n *ngIf=\"!searchDisabled\"\n class=\"o-search-fulltext__input__clear\"\n [pryTooltip]=\"infoTooltipClose\"\n pryTooltipPosition=\"bottom\"\n aria-describedby=\"infoTooltipClose_searchfulltext\"\n >\n <div class=\"o-search-fulltext__input__clear__wrapper\" (click)=\"onClearSearch($event)\">\n <pry-icon iconSvg=\"close\" [height]=\"16\" [width]=\"16\" [animation]=\"false\"></pry-icon>\n <span class=\"u-visually-hidden\">Effacer la saisie</span>\n </div>\n </div>\n </pry-choose-widget>\n </div>\n\n <button\n #searchButton\n class=\"a-btn a-btn--primary\"\n (click)=\"onSearch()\"\n [class.o-search-fulltext__button__inline]=\"mode === 'inline'\"\n [ngClass]=\"{ ' -width-full': mode === 'vertical' }\"\n [disabled]=\"searchDisabled\"\n *ngIf=\"launchButton\"\n [pryTooltip]=\"infoTooltipSearch\"\n pryTooltipPosition=\"bottom\"\n aria-describedby=\"infoTooltipSearch_searchfulltext\"\n >\n <pry-icon iconSvg=\"search-line\" [animation]=\"false\"></pry-icon>\n <span *ngIf=\"mode === 'vertical'\">{{ '@pry.search.fulltext.search' | i18n }}</span>\n <span class=\"u-visually-hidden\">Lancer la recherche</span>\n </button>\n</div>\n\n<ng-template #classesOverlay>\n <div\n class=\"o-search-fulltext__classes-overlay\"\n #chooseClasses\n (keydown.escape)=\"closeFocus()\"\n (keydown.arrowDown)=\"onArrowDown()\"\n (keydown.arrowUp)=\"onArrowUp()\"\n >\n <button class=\"o-search-fulltext__classes-overlay__item\" (click)=\"onSelectAllClasses()\">\n <pry-icon iconSvg=\"apps\" [width]=\"20\" [height]=\"20\"></pry-icon>\n <span class=\"o-search-fulltext__classes-overlay__item__label\">{{\n '@pry.search.fulltext.allClasses' | i18n\n }}</span>\n </button>\n <ng-container *ngFor=\"let clazz of classes$ | async; let last = last\">\n <button\n type=\"button\"\n class=\"o-search-fulltext__classes-overlay__item\"\n (click)=\"onSelectClass(clazz)\"\n [class.o-search-fulltext__classes-overlay__item__selected]=\"classesSelected.includes(clazz.id)\"\n (keydown.tab)=\"last ? closeFocus() : null\"\n >\n <img\n alt=\"class\"\n [height]=\"20\"\n [width]=\"20\"\n [src]=\"clazz.id | translateId: { type: 'class', output: 'icon' } | async\"\n />\n <span class=\"o-search-fulltext__classes-overlay__item__label\">{{ clazz.name }}</span>\n </button>\n </ng-container>\n </div>\n</ng-template>\n\n<ng-template #infoTooltip>\n <div class=\"m-tooltip\" role=\"tooltip\" id=\"infoTooltip_searchfulltext\">\n <span class=\"m-tooltip__text\"> S\u00E9lectionner la classe </span>\n </div>\n</ng-template>\n\n<ng-template #infoTooltipSearch>\n <div class=\"m-tooltip\" role=\"tooltip\" id=\"infoTooltipSearch_searchfulltext\">\n <span class=\"m-tooltip__text\"> Lancer la recherche </span>\n </div>\n</ng-template>\n\n<ng-template #infoTooltipClose>\n <div class=\"m-tooltip\" role=\"tooltip\" id=\"infoTooltipClose_searchfulltext\">\n <span class=\"m-tooltip__text\"> Effacer la saisie </span>\n </div>\n</ng-template>\n" }]
173
+ args: [{ selector: 'pry-search-fulltext', template: "<pry-search-css></pry-search-css>\n<div class=\"o-search-fulltext\" [class.o-search-fulltext--vertical]=\"mode === 'vertical'\">\n <div class=\"o-search-fulltext__container\">\n <button\n #searchClass\n type=\"button\"\n class=\"o-search-fulltext__classes\"\n [class.o-search-fulltext__classes--inline]=\"mode === 'inline'\"\n [pryOverlay]=\"classesOverlay\"\n [(overlayOpen)]=\"panelClassesOpen\"\n pryOverlayPosition=\"start-top\"\n [pryOverlaySticky]=\"true\"\n [pryOverlayNoPadding]=\"true\"\n (click)=\"panelClassesOpen = true\"\n >\n <span\n class=\"o-search-fulltext__classes__content a-tooltip\"\n [attr.data-tooltip]=\"'@pry.search.fulltext.selectClass' | i18n\"\n data-tooltip-position=\"bottom\"\n >\n <pry-icon\n [iconSvg]=\"classesSelected.length === 0 ? 'apps' : 'detail'\"\n [height]=\"20\"\n [width]=\"20\"\n [animation]=\"false\"\n ></pry-icon>\n <span class=\"o-search-fulltext__classes__content__label\" *ngIf=\"mode === 'inline'\">\n {{ classesSelectedLabel | i18n : { nb: classesSelected.length } }}\n </span>\n </span>\n\n <span class=\"o-search-fulltext__classes__arrow\">\n <pry-icon\n iconSvg=\"fleche_bas\"\n [width]=\"17\"\n [height]=\"17\"\n [animation]=\"false\"\n class=\"o-search-fulltext__classes__arrow__icon\"\n [class.is-open]=\"panelClassesOpen\"\n ></pry-icon>\n </span>\n </button>\n\n <pry-choose-widget\n [mode]=\"'input'\"\n [class.m-choose-widget__input__inline]=\"mode === 'inline'\"\n [panelOpen]=\"panelSearchOpen\"\n [width]=\"searchPanelWidth ?? 200\"\n (selected)=\"onSelectWidget($event)\"\n >\n <input\n #searchInput\n [(ngModel)]=\"search\"\n (input)=\"onChangeSearch($event)\"\n (focusin)=\"onOpenSearchPanel()\"\n (focusout)=\"onFocusOut()\"\n />\n <div *ngIf=\"!searchDisabled\" class=\"o-search-fulltext__input__clear\">\n <div class=\"o-search-fulltext__input__clear__wrapper\" (click)=\"onClearSearch($event)\">\n <div\n class=\"a-tooltip\"\n [attr.data-tooltip]=\"'@pry.search.fulltext.clear' | i18n\"\n data-tooltip-position=\"bottom\"\n >\n <pry-icon iconSvg=\"close\" [height]=\"16\" [width]=\"16\" [animation]=\"false\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.search.fulltext.clear' | i18n }}</span>\n </div>\n </div>\n </div>\n </pry-choose-widget>\n </div>\n\n <button\n #searchButton\n class=\"a-btn a-btn--primary a-tooltip\"\n (click)=\"onSearch()\"\n [class.o-search-fulltext__button__inline]=\"mode === 'inline'\"\n [ngClass]=\"{ ' -width-full': mode === 'vertical' }\"\n [disabled]=\"searchDisabled\"\n *ngIf=\"launchButton\"\n [attr.data-tooltip]=\"'@pry.search.fulltext.search' | i18n\"\n data-tooltip-position=\"bottom\"\n >\n <pry-icon iconSvg=\"search-line\" [animation]=\"false\"></pry-icon>\n <span *ngIf=\"mode === 'vertical'\">{{ '@pry.search.fulltext.search' | i18n }}</span>\n <span class=\"u-visually-hidden\">{{ '@pry.search.fulltext.search' | i18n }}</span>\n </button>\n</div>\n\n<ng-template #classesOverlay>\n <div\n class=\"o-search-fulltext__classes-overlay\"\n #chooseClasses\n (keydown.escape)=\"closeFocus()\"\n (keydown.arrowDown)=\"onArrowDown()\"\n (keydown.arrowUp)=\"onArrowUp()\"\n >\n <button class=\"o-search-fulltext__classes-overlay__item\" (click)=\"onSelectAllClasses()\">\n <pry-icon iconSvg=\"apps\" [width]=\"20\" [height]=\"20\"></pry-icon>\n <span class=\"o-search-fulltext__classes-overlay__item__label\">{{\n '@pry.search.fulltext.allClasses' | i18n\n }}</span>\n </button>\n <ng-container *ngFor=\"let clazz of classes$ | async; let last = last\">\n <button\n type=\"button\"\n class=\"o-search-fulltext__classes-overlay__item\"\n (click)=\"onSelectClass(clazz)\"\n [class.o-search-fulltext__classes-overlay__item__selected]=\"classesSelected.includes(clazz.id)\"\n (keydown.tab)=\"last ? closeFocus() : null\"\n >\n <img\n alt=\"class\"\n [height]=\"20\"\n [width]=\"20\"\n [src]=\"clazz.id | translateId : { type: 'class', output: 'icon' } | async\"\n />\n <span class=\"o-search-fulltext__classes-overlay__item__label\">{{ clazz.name }}</span>\n </button>\n </ng-container>\n </div>\n</ng-template>\n" }]
174
174
  }], ctorParameters: function () { return [{ type: i1.Store }]; }, propDecorators: { searchButton: [{
175
175
  type: ViewChild,
176
176
  args: ['searchButton', { read: ElementRef }]
@@ -204,4 +204,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImpor
204
204
  type: HostListener,
205
205
  args: ['window:keyup.enter', ['$event']]
206
206
  }] } });
207
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWZ1bGx0ZXh0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL3NlYXJjaC9zZWFyY2gtZnVsbHRleHQvc2VhcmNoLWZ1bGx0ZXh0L3NlYXJjaC1mdWxsdGV4dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9zZWFyY2gvc2VhcmNoLWZ1bGx0ZXh0L3NlYXJjaC1mdWxsdGV4dC9zZWFyY2gtZnVsbHRleHQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVwSCxPQUFPLEVBRUwsY0FBYyxFQUVkLGdCQUFnQixFQUNoQixzQkFBc0IsRUFHdkIsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBQWMsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOzs7Ozs7OztBQVd6RSxNQUFNLE9BQU8sMEJBQTBCO0lBZXJDLElBQWEsV0FBVyxDQUFDLEVBQWlDO1FBQ3hELElBQUksRUFBRSxFQUFFO1lBQ04sTUFBTSxPQUFPLEdBQUcsRUFBRSxDQUFDLE9BQWdDLENBQUM7WUFDcEQsSUFBSSxDQUFDLE1BQU0sR0FBRyxPQUFPLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQztZQUN4QyxJQUFJLENBQUMsZUFBZSxHQUFHLE9BQU8sQ0FBQyxRQUFRLElBQUksRUFBRSxDQUFDO1NBQy9DO2FBQU07WUFDTCxJQUFJLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQztZQUNqQixJQUFJLENBQUMsZUFBZSxHQUFHLEVBQUUsQ0FBQztTQUMzQjtRQUNELElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLE1BQU0sS0FBSyxFQUFFLENBQUM7UUFDekMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBNkJELFlBQW9CLEtBQXdCO1FBQXhCLFVBQUssR0FBTCxLQUFLLENBQW1CO1FBL0M1QyxxQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFDekIsb0JBQWUsR0FBRyxLQUFLLENBQUM7UUFHZixTQUFJLEdBQTBCLFFBQVEsQ0FBQztRQUN2QyxpQkFBWSxHQUFZLElBQUksQ0FBQztRQWV0QyxXQUFNLEdBQUcsRUFBRSxDQUFDO1FBQ1osY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNSLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQXdCLENBQUM7UUFFakQsb0JBQWUsR0FBc0I7WUFDcEQsT0FBTyxFQUFFLE9BQU87WUFDaEIsT0FBTyxFQUFFLFFBQVE7WUFDakIsUUFBUSxFQUFFLE9BQU87WUFDakIsUUFBUSxFQUFFLEtBQUs7U0FDaEIsQ0FBQztRQUNlLGlCQUFZLEdBQXNCO1lBQ2pELE9BQU8sRUFBRSxPQUFPO1lBQ2hCLE9BQU8sRUFBRSxLQUFLO1lBQ2QsUUFBUSxFQUFFLE9BQU87WUFDakIsUUFBUSxFQUFFLFFBQVE7U0FDbkIsQ0FBQztRQUNGLGNBQVMsR0FBd0IsQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUkzRSxvQkFBZSxHQUFhLEVBQUUsQ0FBQztRQUcvQix5QkFBb0IsR0FBRyxpQ0FBaUMsQ0FBQztRQUN6RCxtQkFBYyxHQUFHLElBQUksQ0FBQztRQUlwQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVELFNBQVM7UUFDUCxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQztRQUN0RSxJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxzQkFBc0IsRUFBRTtZQUNsRCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixFQUFFLHNCQUFzQixDQUFDO1NBQ3pFO2FBQU07WUFDTCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsV0FBVyxDQUFDO1NBQ3RDO1FBQ0QsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLGlCQUFzQyxDQUFDO1FBQ2pFLFlBQVksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRUQsV0FBVztRQUNULE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLGlCQUFpQixDQUFDO1FBQ3hFLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFLGtCQUFrQixFQUFFO1lBQzlDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsa0JBQWtCLENBQUM7U0FDckU7YUFBTTtZQUNMLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxZQUFZLENBQUM7U0FDdkM7UUFDRCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsaUJBQXNDLENBQUM7UUFDakUsWUFBWSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFHRCxRQUFRLENBQUMsS0FBVTtRQUNqQixJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUU7WUFDeEIsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDZCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxhQUFhLEVBQUUsaUJBQWlCLENBQUM7WUFDaEYsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ1AsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRSxhQUFhLEVBQUUsUUFBUSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUM5RSxJQUFJLENBQUMsVUFBVSxFQUFFO2dCQUNmLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxhQUFhLEVBQUUsUUFBUSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDaEYsSUFBSSxDQUFDLFVBQVUsRUFBRTtvQkFDZixJQUFJLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQztpQkFDOUI7YUFDRjtTQUNGO0lBQ0gsQ0FBQztJQUdELFFBQVEsQ0FBQyxLQUFvQjtRQUMzQixJQUFJLENBQUMsYUFBYSxFQUFFLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUM3RCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxhQUFhLEVBQUUsaUJBQWlCLENBQUM7UUFDOUUsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUMzQixJQUFJLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFO1lBQ3JFLElBQUksQ0FBQyxZQUFZLEVBQUUsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO1NBQzFDO0lBQ0gsQ0FBQztJQUVELFVBQVU7UUFDUixJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtZQUN6QixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDO1lBQzlCLElBQUksQ0FBQyxXQUFXLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSxDQUFDO1NBQzFDO0lBQ0gsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQztRQUM3QixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQzNCLElBQUksQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ3pCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUM7WUFDckMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMscUJBQXFCLENBQUMsTUFBTSxDQUFDLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQztZQUN2RSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FDakIsZ0JBQWdCLENBQUMsMEJBQTBCLENBQUM7Z0JBQzFDLEVBQUUsRUFBRSxzQkFBc0I7Z0JBQzFCLFVBQVUsRUFBRSxJQUFJLENBQUMsY0FBYyxJQUFJLE9BQU87YUFDM0MsQ0FBQyxDQUNILENBQUM7U0FDSDtJQUNILENBQUM7SUFFRCxjQUFjLENBQUMsR0FBUTtRQUNyQixNQUFNLEtBQUssR0FBRyxHQUFHLEVBQUUsTUFBTSxFQUFFLEtBQUssSUFBSSxFQUFFLENBQUM7UUFDdkMsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLEtBQUssRUFBRSxDQUFDO1FBQ25DLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQsYUFBYSxDQUFDLEdBQVE7UUFDcEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7UUFDM0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRUQsaUJBQWlCO1FBQ2YsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDdEIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDLHFCQUFxQixFQUFFLENBQUMsS0FBSyxDQUFDO1FBQ3hGLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDO0lBQzlCLENBQUM7SUFFRCxVQUFVO1FBQ1IsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7SUFDekIsQ0FBQztJQUVELGNBQWMsQ0FBQyxNQUFjO1FBQzNCLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLGNBQWMsS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQzVFLENBQUM7SUFFRCxrQkFBa0I7UUFDaEIsSUFBSSxDQUFDLGVBQWUsR0FBRyxFQUFFLENBQUM7UUFDMUIsSUFBSSxDQUFDLG9CQUFvQixHQUFHLGlDQUFpQyxDQUFDO0lBQ2hFLENBQUM7SUFFRCxhQUFhLENBQUMsS0FBWTtRQUN4QixJQUFJLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRTtZQUNqRCxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO1NBQzNFO2FBQU07WUFDTCxJQUFJLENBQUMsZUFBZSxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsZUFBZSxFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztTQUM1RDtRQUVELElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7UUFFbkQsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDdEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7Z0JBQ2hELElBQUksQ0FBQyxvQkFBb0I7b0JBQ3ZCLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLElBQUksSUFBSSwrQkFBK0IsQ0FBQztZQUNuRyxDQUFDLENBQUMsQ0FBQztTQUNKO2FBQU0sSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDM0MsSUFBSSxDQUFDLG9CQUFvQixHQUFHLGtDQUFrQyxDQUFDO1NBQ2hFO2FBQU07WUFDTCxJQUFJLENBQUMsb0JBQW9CLEdBQUcsaUNBQWlDLENBQUM7U0FDL0Q7SUFDSCxDQUFDO0lBRU8sVUFBVSxDQUFDLEtBQWEsRUFBRSxPQUFpQjtRQUNqRCxNQUFNLE9BQU8sR0FBRyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsQ0FBQztRQUNuQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNsQyxDQUFDOzhHQTVMVSwwQkFBMEI7a0dBQTFCLDBCQUEwQiw0WEFDRixVQUFVLHlHQUNULFVBQVUsd0dBQ1osVUFBVSw0R0FDUixVQUFVLDJOQzVCaEQsNG5LQThJQTs7MkZEdEhhLDBCQUEwQjtrQkFKdEMsU0FBUzsrQkFDRSxxQkFBcUI7NEZBSWtCLFlBQVk7c0JBQTVELFNBQVM7dUJBQUMsY0FBYyxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRTtnQkFDRyxhQUFhO3NCQUE5RCxTQUFTO3VCQUFDLGVBQWUsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7Z0JBQ0EsY0FBYztzQkFBN0QsU0FBUzt1QkFBQyxhQUFhLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFO2dCQUNJLGdCQUFnQjtzQkFBakUsU0FBUzt1QkFBQyxlQUFlLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFO2dCQUN0QixXQUFXO3NCQUFwQyxTQUFTO3VCQUFDLGFBQWE7Z0JBQ0ksYUFBYTtzQkFBeEMsU0FBUzt1QkFBQyxlQUFlO2dCQU1qQixJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFFTyxXQUFXO3NCQUF2QixLQUFLO2dCQWVJLFlBQVk7c0JBQXJCLE1BQU07Z0JBd0RQLFFBQVE7c0JBRFAsWUFBWTt1QkFBQyxnQkFBZ0IsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFpQjFDLFFBQVE7c0JBRFAsWUFBWTt1QkFBQyxvQkFBb0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbm5lY3RlZFBvc2l0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHtcbiAgQ2xhc3MsXG4gIENsYXNzU2VsZWN0b3JzLFxuICBDbGFzc1N0YXRlLFxuICBEYXNoYm9hcmRBY3Rpb25zLFxuICBERUZBVUxUX05BTUVEX1FVRVJZX0lELFxuICBGdWxsVGV4dFNlYXJjaFBheWxvYWQsXG4gIE5hbWVkUXVlcnlcbn0gZnJvbSAnQHByb3ZvbHkvZGFzaGJvYXJkJztcbmltcG9ydCB7IE9ic2VydmFibGUsIHRha2UgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHNlYXJjaEZ1bGx0ZXh0QWN0aW9ucyB9IGZyb20gJy4uL3N0b3JlL3NlYXJjaC1mdWxsdGV4dC5hY3Rpb25zJztcblxuZXhwb3J0IGludGVyZmFjZSBTZWFyY2hGdWxsdGV4dENoYW5nZSB7XG4gIGNsYXNzZXM6IHN0cmluZ1tdO1xuICB2YWx1ZTogc3RyaW5nO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwcnktc2VhcmNoLWZ1bGx0ZXh0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NlYXJjaC1mdWxsdGV4dC5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgUHJ5U2VhcmNoRnVsbHRleHRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBAVmlld0NoaWxkKCdzZWFyY2hCdXR0b24nLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSkgc2VhcmNoQnV0dG9uPzogRWxlbWVudFJlZjtcbiAgQFZpZXdDaGlsZCgnc2VhcmNoVHJpZ2dlcicsIHsgcmVhZDogRWxlbWVudFJlZiB9KSBzZWFyY2hUcmlnZ2VyITogRWxlbWVudFJlZjtcbiAgQFZpZXdDaGlsZCgnc2VhcmNoSW5wdXQnLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSkgc2VhcmNoSW5wdXRSZWYhOiBFbGVtZW50UmVmO1xuICBAVmlld0NoaWxkKCdzZWFyY2hPdmVybGF5JywgeyByZWFkOiBFbGVtZW50UmVmIH0pIHNlYXJjaE92ZXJsYXlSZWYhOiBFbGVtZW50UmVmO1xuICBAVmlld0NoaWxkKCdzZWFyY2hDbGFzcycpIHNlYXJjaENsYXNzITogRWxlbWVudFJlZjxIVE1MQnV0dG9uRWxlbWVudD47XG4gIEBWaWV3Q2hpbGQoJ2Nob29zZUNsYXNzZXMnKSBjaG9vc2VDbGFzc2VzITogRWxlbWVudFJlZjtcbiAgc2VsZWN0ZWRDbGFzc0l0ZW0/OiBFbGVtZW50IHwgbnVsbDtcbiAgcGFuZWxDbGFzc2VzT3BlbiA9IGZhbHNlO1xuICBwYW5lbFNlYXJjaE9wZW4gPSBmYWxzZTtcbiAgc2VhcmNoUGFuZWxXaWR0aD86IG51bWJlcjtcblxuICBASW5wdXQoKSBtb2RlOiAnaW5saW5lJyB8ICd2ZXJ0aWNhbCcgPSAnaW5saW5lJztcbiAgQElucHV0KCkgbGF1bmNoQnV0dG9uOiBib29sZWFuID0gdHJ1ZTtcblxuICBASW5wdXQoKSBzZXQgY3VycmVudEVkaXQobnE6IE5hbWVkUXVlcnkgfCBudWxsIHwgdW5kZWZpbmVkKSB7XG4gICAgaWYgKG5xKSB7XG4gICAgICBjb25zdCByZXF1ZXN0ID0gbnEucmVxdWVzdCBhcyBGdWxsVGV4dFNlYXJjaFBheWxvYWQ7XG4gICAgICB0aGlzLnNlYXJjaCA9IHJlcXVlc3QuZnVsbFNlYXJjaD8udmFsdWU7XG4gICAgICB0aGlzLmNsYXNzZXNTZWxlY3RlZCA9IHJlcXVlc3Qub0NsYXNzZXMgPz8gW107XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2VhcmNoID0gJyc7XG4gICAgICB0aGlzLmNsYXNzZXNTZWxlY3RlZCA9IFtdO1xuICAgIH1cbiAgICB0aGlzLnNlYXJjaERpc2FibGVkID0gdGhpcy5zZWFyY2ggPT09ICcnO1xuICAgIHRoaXMuZW1pdENoYW5nZSh0aGlzLnNlYXJjaCwgdGhpcy5jbGFzc2VzU2VsZWN0ZWQpO1xuICB9XG5cbiAgc2VhcmNoID0gJyc7XG4gIGlzRm9jdXNlZCA9IGZhbHNlO1xuICBAT3V0cHV0KCkgc2VhcmNoQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxTZWFyY2hGdWxsdGV4dENoYW5nZT4oKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IEJPVFRPTV9QT1NJVElPTjogQ29ubmVjdGVkUG9zaXRpb24gPSB7XG4gICAgb3JpZ2luWDogJ3N0YXJ0JyxcbiAgICBvcmlnaW5ZOiAnYm90dG9tJyxcbiAgICBvdmVybGF5WDogJ3N0YXJ0JyxcbiAgICBvdmVybGF5WTogJ3RvcCdcbiAgfTtcbiAgcHJpdmF0ZSByZWFkb25seSBUT1BfUE9TSVRJT046IENvbm5lY3RlZFBvc2l0aW9uID0ge1xuICAgIG9yaWdpblg6ICdzdGFydCcsXG4gICAgb3JpZ2luWTogJ3RvcCcsXG4gICAgb3ZlcmxheVg6ICdzdGFydCcsXG4gICAgb3ZlcmxheVk6ICdib3R0b20nXG4gIH07XG4gIHBvc2l0aW9uczogQ29ubmVjdGVkUG9zaXRpb25bXSA9IFt0aGlzLkJPVFRPTV9QT1NJVElPTiwgdGhpcy5UT1BfUE9TSVRJT05dO1xuXG4gIHdpZGdldFNlbGVjdGVkPzogc3RyaW5nO1xuXG4gIGNsYXNzZXNTZWxlY3RlZDogc3RyaW5nW10gPSBbXTtcblxuICBjbGFzc2VzJDogT2JzZXJ2YWJsZTxDbGFzc1tdPjtcbiAgY2xhc3Nlc1NlbGVjdGVkTGFiZWwgPSAnQHByeS5zZWFyY2guZnVsbHRleHQuYWxsQ2xhc3Nlcyc7XG4gIHNlYXJjaERpc2FibGVkID0gdHJ1ZTtcbiAgcGFuZWxCb3R0b206IGFueTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHN0b3JlOiBTdG9yZTxDbGFzc1N0YXRlPikge1xuICAgIHRoaXMuY2xhc3NlcyQgPSB0aGlzLnN0b3JlLnNlbGVjdChDbGFzc1NlbGVjdG9ycy5jbGFzc2VzKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZW1pdENoYW5nZSh0aGlzLnNlYXJjaCwgdGhpcy5jbGFzc2VzU2VsZWN0ZWQpO1xuICB9XG5cbiAgb25BcnJvd1VwKCkge1xuICAgIGNvbnN0IGxhc3RFbGVtZW50ID0gdGhpcy5jaG9vc2VDbGFzc2VzLm5hdGl2ZUVsZW1lbnQubGFzdEVsZW1lbnRDaGlsZDtcbiAgICBpZiAodGhpcy5zZWxlY3RlZENsYXNzSXRlbT8ucHJldmlvdXNFbGVtZW50U2libGluZykge1xuICAgICAgdGhpcy5zZWxlY3RlZENsYXNzSXRlbSA9IHRoaXMuc2VsZWN0ZWRDbGFzc0l0ZW0/LnByZXZpb3VzRWxlbWVudFNpYmxpbmc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRDbGFzc0l0ZW0gPSBsYXN0RWxlbWVudDtcbiAgICB9XG4gICAgY29uc3QgZm9jdXNFbGVtZW50ID0gdGhpcy5zZWxlY3RlZENsYXNzSXRlbSBhcyBIVE1MQnV0dG9uRWxlbWVudDtcbiAgICBmb2N1c0VsZW1lbnQuZm9jdXMoKTtcbiAgfVxuXG4gIG9uQXJyb3dEb3duKCkge1xuICAgIGNvbnN0IGZpcnN0RWxlbWVudCA9IHRoaXMuY2hvb3NlQ2xhc3Nlcy5uYXRpdmVFbGVtZW50LmZpcnN0RWxlbWVudENoaWxkO1xuICAgIGlmICh0aGlzLnNlbGVjdGVkQ2xhc3NJdGVtPy5uZXh0RWxlbWVudFNpYmxpbmcpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRDbGFzc0l0ZW0gPSB0aGlzLnNlbGVjdGVkQ2xhc3NJdGVtPy5uZXh0RWxlbWVudFNpYmxpbmc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRDbGFzc0l0ZW0gPSBmaXJzdEVsZW1lbnQ7XG4gICAgfVxuICAgIGNvbnN0IGZvY3VzRWxlbWVudCA9IHRoaXMuc2VsZWN0ZWRDbGFzc0l0ZW0gYXMgSFRNTEJ1dHRvbkVsZW1lbnQ7XG4gICAgZm9jdXNFbGVtZW50LmZvY3VzKCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDpjbGljaycsIFsnJGV2ZW50J10pXG4gIGNsaWNrb3V0KGV2ZW50OiBhbnkpIHtcbiAgICBpZiAodGhpcy5wYW5lbFNlYXJjaE9wZW4pIHtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLnNlbGVjdGVkQ2xhc3NJdGVtID0gdGhpcy5jaG9vc2VDbGFzc2VzPy5uYXRpdmVFbGVtZW50Py5maXJzdEVsZW1lbnRDaGlsZDtcbiAgICAgIH0sIDEwKTtcbiAgICAgIGNvbnN0IGNsaWNrSW5wdXQgPSB0aGlzLnNlYXJjaElucHV0UmVmPy5uYXRpdmVFbGVtZW50Py5jb250YWlucyhldmVudC50YXJnZXQpO1xuICAgICAgaWYgKCFjbGlja0lucHV0KSB7XG4gICAgICAgIGNvbnN0IGNsaWNrUGFuZWwgPSB0aGlzLnNlYXJjaE92ZXJsYXlSZWY/Lm5hdGl2ZUVsZW1lbnQ/LmNvbnRhaW5zKGV2ZW50LnRhcmdldCk7XG4gICAgICAgIGlmICghY2xpY2tQYW5lbCkge1xuICAgICAgICAgIHRoaXMucGFuZWxTZWFyY2hPcGVuID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6a2V5dXAuZW50ZXInLCBbJyRldmVudCddKVxuICBrZXlFdmVudChldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIHRoaXMuY2hvb3NlQ2xhc3Nlcz8ubmF0aXZlRWxlbWVudD8uZmlyc3RFbGVtZW50Q2hpbGQuZm9jdXMoKTtcbiAgICB0aGlzLnNlbGVjdGVkQ2xhc3NJdGVtID0gdGhpcy5jaG9vc2VDbGFzc2VzPy5uYXRpdmVFbGVtZW50Py5maXJzdEVsZW1lbnRDaGlsZDtcbiAgICBjb25zdCBzZWFyY2ggPSB0aGlzLnNlYXJjaDtcbiAgICBpZiAoKHNlYXJjaCA/PyAnJykgIT09ICcnICYmICh0aGlzLnBhbmVsU2VhcmNoT3BlbiB8fCB0aGlzLmlzRm9jdXNlZCkpIHtcbiAgICAgIHRoaXMuc2VhcmNoQnV0dG9uPy5uYXRpdmVFbGVtZW50LmNsaWNrKCk7XG4gICAgfVxuICB9XG5cbiAgY2xvc2VGb2N1cygpIHtcbiAgICBpZiAodGhpcy5wYW5lbENsYXNzZXNPcGVuKSB7XG4gICAgICB0aGlzLnBhbmVsQ2xhc3Nlc09wZW4gPSBmYWxzZTtcbiAgICAgIHRoaXMuc2VhcmNoQ2xhc3M/Lm5hdGl2ZUVsZW1lbnQ/LmZvY3VzKCk7XG4gICAgfVxuICB9XG5cbiAgb25TZWFyY2goKSB7XG4gICAgdGhpcy5wYW5lbFNlYXJjaE9wZW4gPSBmYWxzZTtcbiAgICBjb25zdCBzZWFyY2ggPSB0aGlzLnNlYXJjaDtcbiAgICBpZiAoKHNlYXJjaCA/PyAnJykgIT09ICcnKSB7XG4gICAgICBjb25zdCBjbGFzc2VzID0gdGhpcy5jbGFzc2VzU2VsZWN0ZWQ7XG4gICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKHNlYXJjaEZ1bGx0ZXh0QWN0aW9ucy5zZWFyY2goeyBjbGFzc2VzLCBzZWFyY2ggfSkpO1xuICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChcbiAgICAgICAgRGFzaGJvYXJkQWN0aW9ucy51cGRhdGVXaWRnZXRJblByZXNlbnRhdGlvbih7XG4gICAgICAgICAgaWQ6IERFRkFVTFRfTkFNRURfUVVFUllfSUQsXG4gICAgICAgICAgd2lkZ2V0VHlwZTogdGhpcy53aWRnZXRTZWxlY3RlZCA/PyAndGFibGUnXG4gICAgICAgIH0pXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIG9uQ2hhbmdlU2VhcmNoKGV2dDogYW55KSB7XG4gICAgY29uc3QgdmFsdWUgPSBldnQ/LnRhcmdldD8udmFsdWUgPz8gJyc7XG4gICAgdGhpcy5zZWFyY2hEaXNhYmxlZCA9IHZhbHVlID09PSAnJztcbiAgICB0aGlzLmVtaXRDaGFuZ2UodmFsdWUsIHRoaXMuY2xhc3Nlc1NlbGVjdGVkKTtcbiAgfVxuXG4gIG9uQ2xlYXJTZWFyY2goZXZ0OiBhbnkpIHtcbiAgICB0aGlzLnNlYXJjaCA9ICcnO1xuICAgIHRoaXMuc2VhcmNoRGlzYWJsZWQgPSB0cnVlO1xuICAgIHRoaXMuZW1pdENoYW5nZSh0aGlzLnNlYXJjaCwgdGhpcy5jbGFzc2VzU2VsZWN0ZWQpO1xuICB9XG5cbiAgb25PcGVuU2VhcmNoUGFuZWwoKSB7XG4gICAgdGhpcy5pc0ZvY3VzZWQgPSB0cnVlO1xuICAgIHRoaXMuc2VhcmNoUGFuZWxXaWR0aCA9IHRoaXMuc2VhcmNoSW5wdXRSZWYubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aDtcbiAgICB0aGlzLnBhbmVsU2VhcmNoT3BlbiA9IHRydWU7XG4gIH1cblxuICBvbkZvY3VzT3V0KCkge1xuICAgIHRoaXMuaXNGb2N1c2VkID0gZmFsc2U7XG4gIH1cblxuICBvblNlbGVjdFdpZGdldCh3aWRnZXQ6IHN0cmluZykge1xuICAgIHRoaXMud2lkZ2V0U2VsZWN0ZWQgPSB0aGlzLndpZGdldFNlbGVjdGVkID09PSB3aWRnZXQgPyB1bmRlZmluZWQgOiB3aWRnZXQ7XG4gIH1cblxuICBvblNlbGVjdEFsbENsYXNzZXMoKSB7XG4gICAgdGhpcy5jbGFzc2VzU2VsZWN0ZWQgPSBbXTtcbiAgICB0aGlzLmNsYXNzZXNTZWxlY3RlZExhYmVsID0gJ0Bwcnkuc2VhcmNoLmZ1bGx0ZXh0LmFsbENsYXNzZXMnO1xuICB9XG5cbiAgb25TZWxlY3RDbGFzcyhjbGF6ejogQ2xhc3MpIHtcbiAgICBpZiAodGhpcy5jbGFzc2VzU2VsZWN0ZWQuaW5kZXhPZihjbGF6ei5pZCkgIT09IC0xKSB7XG4gICAgICB0aGlzLmNsYXNzZXNTZWxlY3RlZCA9IHRoaXMuY2xhc3Nlc1NlbGVjdGVkLmZpbHRlcigoYykgPT4gY2xhenouaWQgIT09IGMpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNsYXNzZXNTZWxlY3RlZCA9IFsuLi50aGlzLmNsYXNzZXNTZWxlY3RlZCwgY2xhenouaWRdO1xuICAgIH1cblxuICAgIHRoaXMuZW1pdENoYW5nZSh0aGlzLnNlYXJjaCwgdGhpcy5jbGFzc2VzU2VsZWN0ZWQpO1xuXG4gICAgaWYgKHRoaXMuY2xhc3Nlc1NlbGVjdGVkPy5sZW5ndGggPT09IDEpIHtcbiAgICAgIHRoaXMuY2xhc3NlcyQucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoKGNsYXNzZXMpID0+IHtcbiAgICAgICAgdGhpcy5jbGFzc2VzU2VsZWN0ZWRMYWJlbCA9XG4gICAgICAgICAgY2xhc3Nlcy5maW5kKChjKSA9PiB0aGlzLmNsYXNzZXNTZWxlY3RlZFswXSA9PT0gYy5pZCk/Lm5hbWUgPz8gJ0Bwcnkuc2VhcmNoLmZ1bGx0ZXh0Lm9uZUNsYXNzJztcbiAgICAgIH0pO1xuICAgIH0gZWxzZSBpZiAodGhpcy5jbGFzc2VzU2VsZWN0ZWQ/Lmxlbmd0aCA+IDEpIHtcbiAgICAgIHRoaXMuY2xhc3Nlc1NlbGVjdGVkTGFiZWwgPSAnQHByeS5zZWFyY2guZnVsbHRleHQubWFueUNsYXNzZXMnO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNsYXNzZXNTZWxlY3RlZExhYmVsID0gJ0Bwcnkuc2VhcmNoLmZ1bGx0ZXh0LmFsbENsYXNzZXMnO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZW1pdENoYW5nZSh2YWx1ZTogc3RyaW5nLCBjbGFzc2VzOiBzdHJpbmdbXSkge1xuICAgIGNvbnN0IHBheWxvYWQgPSB7IHZhbHVlLCBjbGFzc2VzIH07XG4gICAgdGhpcy5zZWFyY2hDaGFuZ2UuZW1pdChwYXlsb2FkKTtcbiAgfVxufVxuIiwiPHByeS1zZWFyY2gtY3NzPjwvcHJ5LXNlYXJjaC1jc3M+XG48ZGl2IGNsYXNzPVwiby1zZWFyY2gtZnVsbHRleHRcIiBbY2xhc3Muby1zZWFyY2gtZnVsbHRleHQtLXZlcnRpY2FsXT1cIm1vZGUgPT09ICd2ZXJ0aWNhbCdcIj5cbiAgPGRpdiBjbGFzcz1cIm8tc2VhcmNoLWZ1bGx0ZXh0X19jb250YWluZXJcIj5cbiAgICA8YnV0dG9uXG4gICAgICAjc2VhcmNoQ2xhc3NcbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgY2xhc3M9XCJvLXNlYXJjaC1mdWxsdGV4dF9fY2xhc3Nlc1wiXG4gICAgICBbY2xhc3Muby1zZWFyY2gtZnVsbHRleHRfX2NsYXNzZXMtLWlubGluZV09XCJtb2RlID09PSAnaW5saW5lJ1wiXG4gICAgICBbcHJ5T3ZlcmxheV09XCJjbGFzc2VzT3ZlcmxheVwiXG4gICAgICBbKG92ZXJsYXlPcGVuKV09XCJwYW5lbENsYXNzZXNPcGVuXCJcbiAgICAgIHByeU92ZXJsYXlQb3NpdGlvbj1cInN0YXJ0LXRvcFwiXG4gICAgICBbcHJ5T3ZlcmxheVN0aWNreV09XCJ0cnVlXCJcbiAgICAgIFtwcnlPdmVybGF5Tm9QYWRkaW5nXT1cInRydWVcIlxuICAgICAgKGNsaWNrKT1cInBhbmVsQ2xhc3Nlc09wZW4gPSB0cnVlXCJcbiAgICA+XG4gICAgICA8c3BhblxuICAgICAgICBjbGFzcz1cIm8tc2VhcmNoLWZ1bGx0ZXh0X19jbGFzc2VzX19jb250ZW50XCJcbiAgICAgICAgW3ByeVRvb2x0aXBdPVwiaW5mb1Rvb2x0aXBcIlxuICAgICAgICBwcnlUb29sdGlwUG9zaXRpb249XCJib3R0b21cIlxuICAgICAgICBhcmlhLWRlc2NyaWJlZGJ5PVwiaW5mb1Rvb2x0aXBfc2VhcmNoZnVsbHRleHRcIlxuICAgICAgPlxuICAgICAgICA8cHJ5LWljb25cbiAgICAgICAgICBbaWNvblN2Z109XCJjbGFzc2VzU2VsZWN0ZWQubGVuZ3RoID09PSAwID8gJ2FwcHMnIDogJ2RldGFpbCdcIlxuICAgICAgICAgIFtoZWlnaHRdPVwiMjBcIlxuICAgICAgICAgIFt3aWR0aF09XCIyMFwiXG4gICAgICAgICAgW2FuaW1hdGlvbl09XCJmYWxzZVwiXG4gICAgICAgID48L3ByeS1pY29uPlxuICAgICAgICA8c3BhbiBjbGFzcz1cIm8tc2VhcmNoLWZ1bGx0ZXh0X19jbGFzc2VzX19jb250ZW50X19sYWJlbFwiICpuZ0lmPVwibW9kZSA9PT0gJ2lubGluZSdcIj5cbiAgICAgICAgICB7eyBjbGFzc2VzU2VsZWN0ZWRMYWJlbCB8IGkxOG46IHsgbmI6IGNsYXNzZXNTZWxlY3RlZC5sZW5ndGggfSB9fVxuICAgICAgICA8L3NwYW4+XG4gICAgICA8L3NwYW4+XG5cbiAgICAgIDxzcGFuIGNsYXNzPVwiby1zZWFyY2gtZnVsbHRleHRfX2NsYXNzZXNfX2Fycm93XCI+XG4gICAgICAgIDxwcnktaWNvblxuICAgICAgICAgIGljb25Tdmc9XCJmbGVjaGVfYmFzXCJcbiAgICAgICAgICBbd2lkdGhdPVwiMTdcIlxuICAgICAgICAgIFtoZWlnaHRdPVwiMTdcIlxuICAgICAgICAgIFthbmltYXRpb25dPVwiZmFsc2VcIlxuICAgICAgICAgIGNsYXNzPVwiby1zZWFyY2gtZnVsbHRleHRfX2NsYXNzZXNfX2Fycm93X19pY29uXCJcbiAgICAgICAgICBbY2xhc3MuaXMtb3Blbl09XCJwYW5lbENsYXNzZXNPcGVuXCJcbiAgICAgICAgPjwvcHJ5LWljb24+XG4gICAgICA8L3NwYW4+XG4gICAgPC9idXR0b24+XG5cbiAgICA8cHJ5LWNob29zZS13aWRnZXRcbiAgICAgIFttb2RlXT1cIidpbnB1dCdcIlxuICAgICAgW2NsYXNzLm0tY2hvb3NlLXdpZGdldF9faW5wdXRfX2lubGluZV09XCJtb2RlID09PSAnaW5saW5lJ1wiXG4gICAgICBbcGFuZWxPcGVuXT1cInBhbmVsU2VhcmNoT3BlblwiXG4gICAgICBbd2lkdGhdPVwic2VhcmNoUGFuZWxXaWR0aCA/PyAyMDBcIlxuICAgICAgKHNlbGVjdGVkKT1cIm9uU2VsZWN0V2lkZ2V0KCRldmVudClcIlxuICAgID5cbiAgICAgIDxpbnB1dFxuICAgICAgICAjc2VhcmNoSW5wdXRcbiAgICAgICAgWyhuZ01vZGVsKV09XCJzZWFyY2hcIlxuICAgICAgICAoaW5wdXQpPVwib25DaGFuZ2VTZWFyY2goJGV2ZW50KVwiXG4gICAgICAgIChmb2N1c2luKT1cIm9uT3BlblNlYXJjaFBhbmVsKClcIlxuICAgICAgICAoZm9jdXNvdXQpPVwib25Gb2N1c091dCgpXCJcbiAgICAgIC8+XG4gICAgICA8ZGl2XG4gICAgICAgICpuZ0lmPVwiIXNlYXJjaERpc2FibGVkXCJcbiAgICAgICAgY2xhc3M9XCJvLXNlYXJjaC1mdWxsdGV4dF9faW5wdXRfX2NsZWFyXCJcbiAgICAgICAgW3ByeVRvb2x0aXBdPVwiaW5mb1Rvb2x0aXBDbG9zZVwiXG4gICAgICAgIHByeVRvb2x0aXBQb3NpdGlvbj1cImJvdHRvbVwiXG4gICAgICAgIGFyaWEtZGVzY3JpYmVkYnk9XCJpbmZvVG9vbHRpcENsb3NlX3NlYXJjaGZ1bGx0ZXh0XCJcbiAgICAgID5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm8tc2VhcmNoLWZ1bGx0ZXh0X19pbnB1dF9fY2xlYXJfX3dyYXBwZXJcIiAoY2xpY2spPVwib25DbGVhclNlYXJjaCgkZXZlbnQpXCI+XG4gICAgICAgICAgPHByeS1pY29uIGljb25Tdmc9XCJjbG9zZVwiIFtoZWlnaHRdPVwiMTZcIiBbd2lkdGhdPVwiMTZcIiBbYW5pbWF0aW9uXT1cImZhbHNlXCI+PC9wcnktaWNvbj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInUtdmlzdWFsbHktaGlkZGVuXCI+RWZmYWNlciBsYSBzYWlzaWU8L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9wcnktY2hvb3NlLXdpZGdldD5cbiAgPC9kaXY+XG5cbiAgPGJ1dHRvblxuICAgICNzZWFyY2hCdXR0b25cbiAgICBjbGFzcz1cImEtYnRuIGEtYnRuLS1wcmltYXJ5XCJcbiAgICAoY2xpY2spPVwib25TZWFyY2goKVwiXG4gICAgW2NsYXNzLm8tc2VhcmNoLWZ1bGx0ZXh0X19idXR0b25fX2lubGluZV09XCJtb2RlID09PSAnaW5saW5lJ1wiXG4gICAgW25nQ2xhc3NdPVwieyAnIC13aWR0aC1mdWxsJzogbW9kZSA9PT0gJ3ZlcnRpY2FsJyB9XCJcbiAgICBbZGlzYWJsZWRdPVwic2VhcmNoRGlzYWJsZWRcIlxuICAgICpuZ0lmPVwibGF1bmNoQnV0dG9uXCJcbiAgICBbcHJ5VG9vbHRpcF09XCJpbmZvVG9vbHRpcFNlYXJjaFwiXG4gICAgcHJ5VG9vbHRpcFBvc2l0aW9uPVwiYm90dG9tXCJcbiAgICBhcmlhLWRlc2NyaWJlZGJ5PVwiaW5mb1Rvb2x0aXBTZWFyY2hfc2VhcmNoZnVsbHRleHRcIlxuICA+XG4gICAgPHByeS1pY29uIGljb25Tdmc9XCJzZWFyY2gtbGluZVwiIFthbmltYXRpb25dPVwiZmFsc2VcIj48L3ByeS1pY29uPlxuICAgIDxzcGFuICpuZ0lmPVwibW9kZSA9PT0gJ3ZlcnRpY2FsJ1wiPnt7ICdAcHJ5LnNlYXJjaC5mdWxsdGV4dC5zZWFyY2gnIHwgaTE4biB9fTwvc3Bhbj5cbiAgICA8c3BhbiBjbGFzcz1cInUtdmlzdWFsbHktaGlkZGVuXCI+TGFuY2VyIGxhIHJlY2hlcmNoZTwvc3Bhbj5cbiAgPC9idXR0b24+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNjbGFzc2VzT3ZlcmxheT5cbiAgPGRpdlxuICAgIGNsYXNzPVwiby1zZWFyY2gtZnVsbHRleHRfX2NsYXNzZXMtb3ZlcmxheVwiXG4gICAgI2Nob29zZUNsYXNzZXNcbiAgICAoa2V5ZG93bi5lc2NhcGUpPVwiY2xvc2VGb2N1cygpXCJcbiAgICAoa2V5ZG93bi5hcnJvd0Rvd24pPVwib25BcnJvd0Rvd24oKVwiXG4gICAgKGtleWRvd24uYXJyb3dVcCk9XCJvbkFycm93VXAoKVwiXG4gID5cbiAgICA8YnV0dG9uIGNsYXNzPVwiby1zZWFyY2gtZnVsbHRleHRfX2NsYXNzZXMtb3ZlcmxheV9faXRlbVwiIChjbGljayk9XCJvblNlbGVjdEFsbENsYXNzZXMoKVwiPlxuICAgICAgPHByeS1pY29uIGljb25Tdmc9XCJhcHBzXCIgW3dpZHRoXT1cIjIwXCIgW2hlaWdodF09XCIyMFwiPjwvcHJ5LWljb24+XG4gICAgICA8c3BhbiBjbGFzcz1cIm8tc2VhcmNoLWZ1bGx0ZXh0X19jbGFzc2VzLW92ZXJsYXlfX2l0ZW1fX2xhYmVsXCI+e3tcbiAgICAgICAgJ0Bwcnkuc2VhcmNoLmZ1bGx0ZXh0LmFsbENsYXNzZXMnIHwgaTE4blxuICAgICAgfX08L3NwYW4+XG4gICAgPC9idXR0b24+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY2xhenogb2YgY2xhc3NlcyQgfCBhc3luYzsgbGV0IGxhc3QgPSBsYXN0XCI+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICBjbGFzcz1cIm8tc2VhcmNoLWZ1bGx0ZXh0X19jbGFzc2VzLW92ZXJsYXlfX2l0ZW1cIlxuICAgICAgICAoY2xpY2spPVwib25TZWxlY3RDbGFzcyhjbGF6eilcIlxuICAgICAgICBbY2xhc3Muby1zZWFyY2gtZnVsbHRleHRfX2NsYXNzZXMtb3ZlcmxheV9faXRlbV9fc2VsZWN0ZWRdPVwiY2xhc3Nlc1NlbGVjdGVkLmluY2x1ZGVzKGNsYXp6LmlkKVwiXG4gICAgICAgIChrZXlkb3duLnRhYik9XCJsYXN0ID8gY2xvc2VGb2N1cygpIDogbnVsbFwiXG4gICAgICA+XG4gICAgICAgIDxpbWdcbiAgICAgICAgICBhbHQ9XCJjbGFzc1wiXG4gICAgICAgICAgW2hlaWdodF09XCIyMFwiXG4gICAgICAgICAgW3dpZHRoXT1cIjIwXCJcbiAgICAgICAgICBbc3JjXT1cImNsYXp6LmlkIHwgdHJhbnNsYXRlSWQ6IHsgdHlwZTogJ2NsYXNzJywgb3V0cHV0OiAnaWNvbicgfSB8IGFzeW5jXCJcbiAgICAgICAgLz5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJvLXNlYXJjaC1mdWxsdGV4dF9fY2xhc3Nlcy1vdmVybGF5X19pdGVtX19sYWJlbFwiPnt7IGNsYXp6Lm5hbWUgfX08L3NwYW4+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2luZm9Ub29sdGlwPlxuICA8ZGl2IGNsYXNzPVwibS10b29sdGlwXCIgcm9sZT1cInRvb2x0aXBcIiBpZD1cImluZm9Ub29sdGlwX3NlYXJjaGZ1bGx0ZXh0XCI+XG4gICAgPHNwYW4gY2xhc3M9XCJtLXRvb2x0aXBfX3RleHRcIj4gU8OpbGVjdGlvbm5lciBsYSBjbGFzc2UgPC9zcGFuPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjaW5mb1Rvb2x0aXBTZWFyY2g+XG4gIDxkaXYgY2xhc3M9XCJtLXRvb2x0aXBcIiByb2xlPVwidG9vbHRpcFwiIGlkPVwiaW5mb1Rvb2x0aXBTZWFyY2hfc2VhcmNoZnVsbHRleHRcIj5cbiAgICA8c3BhbiBjbGFzcz1cIm0tdG9vbHRpcF9fdGV4dFwiPiBMYW5jZXIgbGEgcmVjaGVyY2hlIDwvc3Bhbj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2luZm9Ub29sdGlwQ2xvc2U+XG4gIDxkaXYgY2xhc3M9XCJtLXRvb2x0aXBcIiByb2xlPVwidG9vbHRpcFwiIGlkPVwiaW5mb1Rvb2x0aXBDbG9zZV9zZWFyY2hmdWxsdGV4dFwiPlxuICAgIDxzcGFuIGNsYXNzPVwibS10b29sdGlwX190ZXh0XCI+IEVmZmFjZXIgbGEgc2Fpc2llIDwvc3Bhbj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
207
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWZ1bGx0ZXh0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL3NlYXJjaC9zZWFyY2gtZnVsbHRleHQvc2VhcmNoLWZ1bGx0ZXh0L3NlYXJjaC1mdWxsdGV4dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9zZWFyY2gvc2VhcmNoLWZ1bGx0ZXh0L3NlYXJjaC1mdWxsdGV4dC9zZWFyY2gtZnVsbHRleHQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVwSCxPQUFPLEVBRUwsY0FBYyxFQUVkLGdCQUFnQixFQUNoQixzQkFBc0IsRUFHdkIsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBQWMsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOzs7Ozs7OztBQVd6RSxNQUFNLE9BQU8sMEJBQTBCO0lBZXJDLElBQWEsV0FBVyxDQUFDLEVBQWlDO1FBQ3hELElBQUksRUFBRSxFQUFFO1lBQ04sTUFBTSxPQUFPLEdBQUcsRUFBRSxDQUFDLE9BQWdDLENBQUM7WUFDcEQsSUFBSSxDQUFDLE1BQU0sR0FBRyxPQUFPLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQztZQUN4QyxJQUFJLENBQUMsZUFBZSxHQUFHLE9BQU8sQ0FBQyxRQUFRLElBQUksRUFBRSxDQUFDO1NBQy9DO2FBQU07WUFDTCxJQUFJLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQztZQUNqQixJQUFJLENBQUMsZUFBZSxHQUFHLEVB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d0RQLFFBQVE7c0JBRFAsWUFBWTt1QkFBQyxnQkFBZ0IsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFpQjFDLFFBQVE7c0JBRFAsWUFBWTt1QkFBQyxvQkFBb0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbm5lY3RlZFBvc2l0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHtcbiAgQ2xhc3MsXG4gIENsYXNzU2VsZWN0b3JzLFxuICBDbGFzc1N0YXRlLFxuICBEYXNoYm9hcmRBY3Rpb25zLFxuICBERUZBVUxUX05BTUVEX1FVRVJZX0lELFxuICBGdWxsVGV4dFNlYXJjaFBheWxvYWQsXG4gIE5hbWVkUXVlcnlcbn0gZnJvbSAnQHByb3ZvbHkvZGFzaGJvYXJkJztcbmltcG9ydCB7IE9ic2VydmFibGUsIHRha2UgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHNlYXJjaEZ1bGx0ZXh0QWN0aW9ucyB9IGZyb20gJy4uL3N0b3JlL3NlYXJjaC1mdWxsdGV4dC5hY3Rpb25zJztcblxuZXhwb3J0IGludGVyZmFjZSBTZWFyY2hGdWxsdGV4dENoYW5nZSB7XG4gIGNsYXNzZXM6IHN0cmluZ1tdO1xuICB2YWx1ZTogc3RyaW5nO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwcnktc2VhcmNoLWZ1bGx0ZXh0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NlYXJjaC1mdWxsdGV4dC5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgUHJ5U2VhcmNoRnVsbHRleHRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBAVmlld0NoaWxkKCdzZWFyY2hCdXR0b24nLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSkgc2VhcmNoQnV0dG9uPzogRWxlbWVudFJlZjtcbiAgQFZpZXdDaGlsZCgnc2VhcmNoVHJpZ2dlcicsIHsgcmVhZDogRWxlbWVudFJlZiB9KSBzZWFyY2hUcmlnZ2VyITogRWxlbWVudFJlZjtcbiAgQFZpZXdDaGlsZCgnc2VhcmNoSW5wdXQnLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSkgc2VhcmNoSW5wdXRSZWYhOiBFbGVtZW50UmVmO1xuICBAVmlld0NoaWxkKCdzZWFyY2hPdmVybGF5JywgeyByZWFkOiBFbGVtZW50UmVmIH0pIHNlYXJjaE92ZXJsYXlSZWYhOiBFbGVtZW50UmVmO1xuICBAVmlld0NoaWxkKCdzZWFyY2hDbGFzcycpIHNlYXJjaENsYXNzITogRWxlbWVudFJlZjxIVE1MQnV0dG9uRWxlbWVudD47XG4gIEBWaWV3Q2hpbGQoJ2Nob29zZUNsYXNzZXMnKSBjaG9vc2VDbGFzc2VzITogRWxlbWVudFJlZjtcbiAgc2VsZWN0ZWRDbGFzc0l0ZW0/OiBFbGVtZW50IHwgbnVsbDtcbiAgcGFuZWxDbGFzc2VzT3BlbiA9IGZhbHNlO1xuICBwYW5lbFNlYXJjaE9wZW4gPSBmYWxzZTtcbiAgc2VhcmNoUGFuZWxXaWR0aD86IG51bWJlcjtcblxuICBASW5wdXQoKSBtb2RlOiAnaW5saW5lJyB8ICd2ZXJ0aWNhbCcgPSAnaW5saW5lJztcbiAgQElucHV0KCkgbGF1bmNoQnV0dG9uOiBib29sZWFuID0gdHJ1ZTtcblxuICBASW5wdXQoKSBzZXQgY3VycmVudEVkaXQobnE6IE5hbWVkUXVlcnkgfCBudWxsIHwgdW5kZWZpbmVkKSB7XG4gICAgaWYgKG5xKSB7XG4gICAgICBjb25zdCByZXF1ZXN0ID0gbnEucmVxdWVzdCBhcyBGdWxsVGV4dFNlYXJjaFBheWxvYWQ7XG4gICAgICB0aGlzLnNlYXJjaCA9IHJlcXVlc3QuZnVsbFNlYXJjaD8udmFsdWU7XG4gICAgICB0aGlzLmNsYXNzZXNTZWxlY3RlZCA9IHJlcXVlc3Qub0NsYXNzZXMgPz8gW107XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2VhcmNoID0gJyc7XG4gICAgICB0aGlzLmNsYXNzZXNTZWxlY3RlZCA9IFtdO1xuICAgIH1cbiAgICB0aGlzLnNlYXJjaERpc2FibGVkID0gdGhpcy5zZWFyY2ggPT09ICcnO1xuICAgIHRoaXMuZW1pdENoYW5nZSh0aGlzLnNlYXJjaCwgdGhpcy5jbGFzc2VzU2VsZWN0ZWQpO1xuICB9XG5cbiAgc2VhcmNoID0gJyc7XG4gIGlzRm9jdXNlZCA9IGZhbHNlO1xuICBAT3V0cHV0KCkgc2VhcmNoQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxTZWFyY2hGdWxsdGV4dENoYW5nZT4oKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IEJPVFRPTV9QT1NJVElPTjogQ29ubmVjdGVkUG9zaXRpb24gPSB7XG4gICAgb3JpZ2luWDogJ3N0YXJ0JyxcbiAgICBvcmlnaW5ZOiAnYm90dG9tJyxcbiAgICBvdmVybGF5WDogJ3N0YXJ0JyxcbiAgICBvdmVybGF5WTogJ3RvcCdcbiAgfTtcbiAgcHJpdmF0ZSByZWFkb25seSBUT1BfUE9TSVRJT046IENvbm5lY3RlZFBvc2l0aW9uID0ge1xuICAgIG9yaWdpblg6ICdzdGFydCcsXG4gICAgb3JpZ2luWTogJ3RvcCcsXG4gICAgb3ZlcmxheVg6ICdzdGFydCcsXG4gICAgb3ZlcmxheVk6ICdib3R0b20nXG4gIH07XG4gIHBvc2l0aW9uczogQ29ubmVjdGVkUG9zaXRpb25bXSA9IFt0aGlzLkJPVFRPTV9QT1NJVElPTiwgdGhpcy5UT1BfUE9TSVRJT05dO1xuXG4gIHdpZGdldFNlbGVjdGVkPzogc3RyaW5nO1xuXG4gIGNsYXNzZXNTZWxlY3RlZDogc3RyaW5nW10gPSBbXTtcblxuICBjbGFzc2VzJDogT2JzZXJ2YWJsZTxDbGFzc1tdPjtcbiAgY2xhc3Nlc1NlbGVjdGVkTGFiZWwgPSAnQHByeS5zZWFyY2guZnVsbHRleHQuYWxsQ2xhc3Nlcyc7XG4gIHNlYXJjaERpc2FibGVkID0gdHJ1ZTtcbiAgcGFuZWxCb3R0b206IGFueTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHN0b3JlOiBTdG9yZTxDbGFzc1N0YXRlPikge1xuICAgIHRoaXMuY2xhc3NlcyQgPSB0aGlzLnN0b3JlLnNlbGVjdChDbGFzc1NlbGVjdG9ycy5jbGFzc2VzKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZW1pdENoYW5nZSh0aGlzLnNlYXJjaCwgdGhpcy5jbGFzc2VzU2VsZWN0ZWQpO1xuICB9XG5cbiAgb25BcnJvd1VwKCkge1xuICAgIGNvbnN0IGxhc3RFbGVtZW50ID0gdGhpcy5jaG9vc2VDbGFzc2VzLm5hdGl2ZUVsZW1lbnQubGFzdEVsZW1lbnRDaGlsZDtcbiAgICBpZiAodGhpcy5zZWxlY3RlZENsYXNzSXRlbT8ucHJldmlvdXNFbGVtZW50U2libGluZykge1xuICAgICAgdGhpcy5zZWxlY3RlZENsYXNzSXRlbSA9IHRoaXMuc2VsZWN0ZWRDbGFzc0l0ZW0/LnByZXZpb3VzRWxlbWVudFNpYmxpbmc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRDbGFzc0l0ZW0gPSBsYXN0RWxlbWVudDtcbiAgICB9XG4gICAgY29uc3QgZm9jdXNFbGVtZW50ID0gdGhpcy5zZWxlY3RlZENsYXNzSXRlbSBhcyBIVE1MQnV0dG9uRWxlbWVudDtcbiAgICBmb2N1c0VsZW1lbnQuZm9jdXMoKTtcbiAgfVxuXG4gIG9uQXJyb3dEb3duKCkge1xuICAgIGNvbnN0IGZpcnN0RWxlbWVudCA9IHRoaXMuY2hvb3NlQ2xhc3Nlcy5uYXRpdmVFbGVtZW50LmZpcnN0RWxlbWVudENoaWxkO1xuICAgIGlmICh0aGlzLnNlbGVjdGVkQ2xhc3NJdGVtPy5uZXh0RWxlbWVudFNpYmxpbmcpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRDbGFzc0l0ZW0gPSB0aGlzLnNlbGVjdGVkQ2xhc3NJdGVtPy5uZXh0RWxlbWVudFNpYmxpbmc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRDbGFzc0l0ZW0gPSBmaXJzdEVsZW1lbnQ7XG4gICAgfVxuICAgIGNvbnN0IGZvY3VzRWxlbWVudCA9IHRoaXMuc2VsZWN0ZWRDbGFzc0l0ZW0gYXMgSFRNTEJ1dHRvbkVsZW1lbnQ7XG4gICAgZm9jdXNFbGVtZW50LmZvY3VzKCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDpjbGljaycsIFsnJGV2ZW50J10pXG4gIGNsaWNrb3V0KGV2ZW50OiBhbnkpIHtcbiAgICBpZiAodGhpcy5wYW5lbFNlYXJjaE9wZW4pIHtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLnNlbGVjdGVkQ2xhc3NJdGVtID0gdGhpcy5jaG9vc2VDbGFzc2VzPy5uYXRpdmVFbGVtZW50Py5maXJzdEVsZW1lbnRDaGlsZDtcbiAgICAgIH0sIDEwKTtcbiAgICAgIGNvbnN0IGNsaWNrSW5wdXQgPSB0aGlzLnNlYXJjaElucHV0UmVmPy5uYXRpdmVFbGVtZW50Py5jb250YWlucyhldmVudC50YXJnZXQpO1xuICAgICAgaWYgKCFjbGlja0lucHV0KSB7XG4gICAgICAgIGNvbnN0IGNsaWNrUGFuZWwgPSB0aGlzLnNlYXJjaE92ZXJsYXlSZWY/Lm5hdGl2ZUVsZW1lbnQ/LmNvbnRhaW5zKGV2ZW50LnRhcmdldCk7XG4gICAgICAgIGlmICghY2xpY2tQYW5lbCkge1xuICAgICAgICAgIHRoaXMucGFuZWxTZWFyY2hPcGVuID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6a2V5dXAuZW50ZXInLCBbJyRldmVudCddKVxuICBrZXlFdmVudChldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIHRoaXMuY2hvb3NlQ2xhc3Nlcz8ubmF0aXZlRWxlbWVudD8uZmlyc3RFbGVtZW50Q2hpbGQuZm9jdXMoKTtcbiAgICB0aGlzLnNlbGVjdGVkQ2xhc3NJdGVtID0gdGhpcy5jaG9vc2VDbGFzc2VzPy5uYXRpdmVFbGVtZW50Py5maXJzdEVsZW1lbnRDaGlsZDtcbiAgICBjb25zdCBzZWFyY2ggPSB0aGlzLnNlYXJjaDtcbiAgICBpZiAoKHNlYXJjaCA/PyAnJykgIT09ICcnICYmICh0aGlzLnBhbmVsU2VhcmNoT3BlbiB8fCB0aGlzLmlzRm9jdXNlZCkpIHtcbiAgICAgIHRoaXMuc2VhcmNoQnV0dG9uPy5uYXRpdmVFbGVtZW50LmNsaWNrKCk7XG4gICAgfVxuICB9XG5cbiAgY2xvc2VGb2N1cygpIHtcbiAgICBpZiAodGhpcy5wYW5lbENsYXNzZXNPcGVuKSB7XG4gICAgICB0aGlzLnBhbmVsQ2xhc3Nlc09wZW4gPSBmYWxzZTtcbiAgICAgIHRoaXMuc2VhcmNoQ2xhc3M/Lm5hdGl2ZUVsZW1lbnQ/LmZvY3VzKCk7XG4gICAgfVxuICB9XG5cbiAgb25TZWFyY2goKSB7XG4gICAgdGhpcy5wYW5lbFNlYXJjaE9wZW4gPSBmYWxzZTtcbiAgICBjb25zdCBzZWFyY2ggPSB0aGlzLnNlYXJjaDtcbiAgICBpZiAoKHNlYXJjaCA/PyAnJykgIT09ICcnKSB7XG4gICAgICBjb25zdCBjbGFzc2VzID0gdGhpcy5jbGFzc2VzU2VsZWN0ZWQ7XG4gICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKHNlYXJjaEZ1bGx0ZXh0QWN0aW9ucy5zZWFyY2goeyBjbGFzc2VzLCBzZWFyY2ggfSkpO1xuICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChcbiAgICAgICAgRGFzaGJvYXJkQWN0aW9ucy51cGRhdGVXaWRnZXRJblByZXNlbnRhdGlvbih7XG4gICAgICAgICAgaWQ6IERFRkFVTFRfTkFNRURfUVVFUllfSUQsXG4gICAgICAgICAgd2lkZ2V0VHlwZTogdGhpcy53aWRnZXRTZWxlY3RlZCA/PyAndGFibGUnXG4gICAgICAgIH0pXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIG9uQ2hhbmdlU2VhcmNoKGV2dDogYW55KSB7XG4gICAgY29uc3QgdmFsdWUgPSBldnQ/LnRhcmdldD8udmFsdWUgPz8gJyc7XG4gICAgdGhpcy5zZWFyY2hEaXNhYmxlZCA9IHZhbHVlID09PSAnJztcbiAgICB0aGlzLmVtaXRDaGFuZ2UodmFsdWUsIHRoaXMuY2xhc3Nlc1NlbGVjdGVkKTtcbiAgfVxuXG4gIG9uQ2xlYXJTZWFyY2goZXZ0OiBhbnkpIHtcbiAgICB0aGlzLnNlYXJjaCA9ICcnO1xuICAgIHRoaXMuc2VhcmNoRGlzYWJsZWQgPSB0cnVlO1xuICAgIHRoaXMuZW1pdENoYW5nZSh0aGlzLnNlYXJjaCwgdGhpcy5jbGFzc2VzU2VsZWN0ZWQpO1xuICB9XG5cbiAgb25PcGVuU2VhcmNoUGFuZWwoKSB7XG4gICAgdGhpcy5pc0ZvY3VzZWQgPSB0cnVlO1xuICAgIHRoaXMuc2VhcmNoUGFuZWxXaWR0aCA9IHRoaXMuc2VhcmNoSW5wdXRSZWYubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aDtcbiAgICB0aGlzLnBhbmVsU2VhcmNoT3BlbiA9IHRydWU7XG4gIH1cblxuICBvbkZvY3VzT3V0KCkge1xuICAgIHRoaXMuaXNGb2N1c2VkID0gZmFsc2U7XG4gIH1cblxuICBvblNlbGVjdFdpZGdldCh3aWRnZXQ6IHN0cmluZykge1xuICAgIHRoaXMud2lkZ2V0U2VsZWN0ZWQgPSB0aGlzLndpZGdldFNlbGVjdGVkID09PSB3aWRnZXQgPyB1bmRlZmluZWQgOiB3aWRnZXQ7XG4gIH1cblxuICBvblNlbGVjdEFsbENsYXNzZXMoKSB7XG4gICAgdGhpcy5jbGFzc2VzU2VsZWN0ZWQgPSBbXTtcbiAgICB0aGlzLmNsYXNzZXNTZWxlY3RlZExhYmVsID0gJ0Bwcnkuc2VhcmNoLmZ1bGx0ZXh0LmFsbENsYXNzZXMnO1xuICB9XG5cbiAgb25TZWxlY3RDbGFzcyhjbGF6ejogQ2xhc3MpIHtcbiAgICBpZiAodGhpcy5jbGFzc2VzU2VsZWN0ZWQuaW5kZXhPZihjbGF6ei5pZCkgIT09IC0xKSB7XG4gICAgICB0aGlzLmNsYXNzZXNTZWxlY3RlZCA9IHRoaXMuY2xhc3Nlc1NlbGVjdGVkLmZpbHRlcigoYykgPT4gY2xhenouaWQgIT09IGMpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNsYXNzZXNTZWxlY3RlZCA9IFsuLi50aGlzLmNsYXNzZXNTZWxlY3RlZCwgY2xhenouaWRdO1xuICAgIH1cblxuICAgIHRoaXMuZW1pdENoYW5nZSh0aGlzLnNlYXJjaCwgdGhpcy5jbGFzc2VzU2VsZWN0ZWQpO1xuXG4gICAgaWYgKHRoaXMuY2xhc3Nlc1NlbGVjdGVkPy5sZW5ndGggPT09IDEpIHtcbiAgICAgIHRoaXMuY2xhc3NlcyQucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoKGNsYXNzZXMpID0+IHtcbiAgICAgICAgdGhpcy5jbGFzc2VzU2VsZWN0ZWRMYWJlbCA9XG4gICAgICAgICAgY2xhc3Nlcy5maW5kKChjKSA9PiB0aGlzLmNsYXNzZXNTZWxlY3RlZFswXSA9PT0gYy5pZCk/Lm5hbWUgPz8gJ0Bwcnkuc2VhcmNoLmZ1bGx0ZXh0Lm9uZUNsYXNzJztcbiAgICAgIH0pO1xuICAgIH0gZWxzZSBpZiAodGhpcy5jbGFzc2VzU2VsZWN0ZWQ/Lmxlbmd0aCA+IDEpIHtcbiAgICAgIHRoaXMuY2xhc3Nlc1NlbGVjdGVkTGFiZWwgPSAnQHByeS5zZWFyY2guZnVsbHRleHQubWFueUNsYXNzZXMnO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNsYXNzZXNTZWxlY3RlZExhYmVsID0gJ0Bwcnkuc2VhcmNoLmZ1bGx0ZXh0LmFsbENsYXNzZXMnO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZW1pdENoYW5nZSh2YWx1ZTogc3RyaW5nLCBjbGFzc2VzOiBzdHJpbmdbXSkge1xuICAgIGNvbnN0IHBheWxvYWQgPSB7IHZhbHVlLCBjbGFzc2VzIH07XG4gICAgdGhpcy5zZWFyY2hDaGFuZ2UuZW1pdChwYXlsb2FkKTtcbiAgfVxufVxuIiwiPHByeS1zZWFyY2gtY3NzPjwvcHJ5LXNlYXJjaC1jc3M+XG48ZGl2IGNsYXNzPVwiby1zZWFyY2gtZnVsbHRleHRcIiBbY2xhc3Muby1zZWFyY2gtZnVsbHRleHQtLXZlcnRpY2FsXT1cIm1vZGUgPT09ICd2ZXJ0aWNhbCdcIj5cbiAgPGRpdiBjbGFzcz1cIm8tc2VhcmNoLWZ1bGx0ZXh0X19jb250YWluZXJcIj5cbiAgICA8YnV0dG9uXG4gICAgICAjc2VhcmNoQ2xhc3NcbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgY2xhc3M9XCJvLXNlYXJjaC1mdWxsdGV4dF9fY2xhc3Nlc1wiXG4gICAgICBbY2xhc3Muby1zZWFyY2gtZnVsbHRleHRfX2NsYXNzZXMtLWlubGluZV09XCJtb2RlID09PSAnaW5saW5lJ1wiXG4gICAgICBbcHJ5T3ZlcmxheV09XCJjbGFzc2VzT3ZlcmxheVwiXG4gICAgICBbKG92ZXJsYXlPcGVuKV09XCJwYW5lbENsYXNzZXNPcGVuXCJcbiAgICAgIHByeU92ZXJsYXlQb3NpdGlvbj1cInN0YXJ0LXRvcFwiXG4gICAgICBbcHJ5T3ZlcmxheVN0aWNreV09XCJ0cnVlXCJcbiAgICAgIFtwcnlPdmVybGF5Tm9QYWRkaW5nXT1cInRydWVcIlxuICAgICAgKGNsaWNrKT1cInBhbmVsQ2xhc3Nlc09wZW4gPSB0cnVlXCJcbiAgICA+XG4gICAgICA8c3BhblxuICAgICAgICBjbGFzcz1cIm8tc2VhcmNoLWZ1bGx0ZXh0X19jbGFzc2VzX19jb250ZW50IGEtdG9vbHRpcFwiXG4gICAgICAgIFthdHRyLmRhdGEtdG9vbHRpcF09XCInQHByeS5zZWFyY2guZnVsbHRleHQuc2VsZWN0Q2xhc3MnIHwgaTE4blwiXG4gICAgICAgIGRhdGEtdG9vbHRpcC1wb3NpdGlvbj1cImJvdHRvbVwiXG4gICAgICA+XG4gICAgICAgIDxwcnktaWNvblxuICAgICAgICAgIFtpY29uU3ZnXT1cImNsYXNzZXNTZWxlY3RlZC5sZW5ndGggPT09IDAgPyAnYXBwcycgOiAnZGV0YWlsJ1wiXG4gICAgICAgICAgW2hlaWdodF09XCIyMFwiXG4gICAgICAgICAgW3dpZHRoXT1cIjIwXCJcbiAgICAgICAgICBbYW5pbWF0aW9uXT1cImZhbHNlXCJcbiAgICAgICAgPjwvcHJ5LWljb24+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiby1zZWFyY2gtZnVsbHRleHRfX2NsYXNzZXNfX2NvbnRlbnRfX2xhYmVsXCIgKm5nSWY9XCJtb2RlID09PSAnaW5saW5lJ1wiPlxuICAgICAgICAgIHt7IGNsYXNzZXNTZWxlY3RlZExhYmVsIHwgaTE4biA6IHsgbmI6IGNsYXNzZXNTZWxlY3RlZC5sZW5ndGggfSB9fVxuICAgICAgICA8L3NwYW4+XG4gICAgICA8L3NwYW4+XG5cbiAgICAgIDxzcGFuIGNsYXNzPVwiby1zZWFyY2gtZnVsbHRleHRfX2NsYXNzZXNfX2Fycm93XCI+XG4gICAgICAgIDxwcnktaWNvblxuICAgICAgICAgIGljb25Tdmc9XCJmbGVjaGVfYmFzXCJcbiAgICAgICAgICBbd2lkdGhdPVwiMTdcIlxuICAgICAgICAgIFtoZWlnaHRdPVwiMTdcIlxuICAgICAgICAgIFthbmltYXRpb25dPVwiZmFsc2VcIlxuICAgICAgICAgIGNsYXNzPVwiby1zZWFyY2gtZnVsbHRleHRfX2NsYXNzZXNfX2Fycm93X19pY29uXCJcbiAgICAgICAgICBbY2xhc3MuaXMtb3Blbl09XCJwYW5lbENsYXNzZXNPcGVuXCJcbiAgICAgICAgPjwvcHJ5LWljb24+XG4gICAgICA8L3NwYW4+XG4gICAgPC9idXR0b24+XG5cbiAgICA8cHJ5LWNob29zZS13aWRnZXRcbiAgICAgIFttb2RlXT1cIidpbnB1dCdcIlxuICAgICAgW2NsYXNzLm0tY2hvb3NlLXdpZGdldF9faW5wdXRfX2lubGluZV09XCJtb2RlID09PSAnaW5saW5lJ1wiXG4gICAgICBbcGFuZWxPcGVuXT1cInBhbmVsU2VhcmNoT3BlblwiXG4gICAgICBbd2lkdGhdPVwic2VhcmNoUGFuZWxXaWR0aCA/PyAyMDBcIlxuICAgICAgKHNlbGVjdGVkKT1cIm9uU2VsZWN0V2lkZ2V0KCRldmVudClcIlxuICAgID5cbiAgICAgIDxpbnB1dFxuICAgICAgICAjc2VhcmNoSW5wdXRcbiAgICAgICAgWyhuZ01vZGVsKV09XCJzZWFyY2hcIlxuICAgICAgICAoaW5wdXQpPVwib25DaGFuZ2VTZWFyY2goJGV2ZW50KVwiXG4gICAgICAgIChmb2N1c2luKT1cIm9uT3BlblNlYXJjaFBhbmVsKClcIlxuICAgICAgICAoZm9jdXNvdXQpPVwib25Gb2N1c091dCgpXCJcbiAgICAgIC8+XG4gICAgICA8ZGl2ICpuZ0lmPVwiIXNlYXJjaERpc2FibGVkXCIgY2xhc3M9XCJvLXNlYXJjaC1mdWxsdGV4dF9faW5wdXRfX2NsZWFyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJvLXNlYXJjaC1mdWxsdGV4dF9faW5wdXRfX2NsZWFyX193cmFwcGVyXCIgKGNsaWNrKT1cIm9uQ2xlYXJTZWFyY2goJGV2ZW50KVwiPlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwiYS10b29sdGlwXCJcbiAgICAgICAgICAgIFthdHRyLmRhdGEtdG9vbHRpcF09XCInQHByeS5zZWFyY2guZnVsbHRleHQuY2xlYXInIHwgaTE4blwiXG4gICAgICAgICAgICBkYXRhLXRvb2x0aXAtcG9zaXRpb249XCJib3R0b21cIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxwcnktaWNvbiBpY29uU3ZnPVwiY2xvc2VcIiBbaGVpZ2h0XT1cIjE2XCIgW3dpZHRoXT1cIjE2XCIgW2FuaW1hdGlvbl09XCJmYWxzZVwiPjwvcHJ5LWljb24+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInUtdmlzdWFsbHktaGlkZGVuXCI+e3sgJ0Bwcnkuc2VhcmNoLmZ1bGx0ZXh0LmNsZWFyJyB8IGkxOG4gfX08L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9wcnktY2hvb3NlLXdpZGdldD5cbiAgPC9kaXY+XG5cbiAgPGJ1dHRvblxuICAgICNzZWFyY2hCdXR0b25cbiAgICBjbGFzcz1cImEtYnRuIGEtYnRuLS1wcmltYXJ5IGEtdG9vbHRpcFwiXG4gICAgKGNsaWNrKT1cIm9uU2VhcmNoKClcIlxuICAgIFtjbGFzcy5vLXNlYXJjaC1mdWxsdGV4dF9fYnV0dG9uX19pbmxpbmVdPVwibW9kZSA9PT0gJ2lubGluZSdcIlxuICAgIFtuZ0NsYXNzXT1cInsgJyAtd2lkdGgtZnVsbCc6IG1vZGUgPT09ICd2ZXJ0aWNhbCcgfVwiXG4gICAgW2Rpc2FibGVkXT1cInNlYXJjaERpc2FibGVkXCJcbiAgICAqbmdJZj1cImxhdW5jaEJ1dHRvblwiXG4gICAgW2F0dHIuZGF0YS10b29sdGlwXT1cIidAcHJ5LnNlYXJjaC5mdWxsdGV4dC5zZWFyY2gnIHwgaTE4blwiXG4gICAgZGF0YS10b29sdGlwLXBvc2l0aW9uPVwiYm90dG9tXCJcbiAgPlxuICAgIDxwcnktaWNvbiBpY29uU3ZnPVwic2VhcmNoLWxpbmVcIiBbYW5pbWF0aW9uXT1cImZhbHNlXCI+PC9wcnktaWNvbj5cbiAgICA8c3BhbiAqbmdJZj1cIm1vZGUgPT09ICd2ZXJ0aWNhbCdcIj57eyAnQHByeS5zZWFyY2guZnVsbHRleHQuc2VhcmNoJyB8IGkxOG4gfX08L3NwYW4+XG4gICAgPHNwYW4gY2xhc3M9XCJ1LXZpc3VhbGx5LWhpZGRlblwiPnt7ICdAcHJ5LnNlYXJjaC5mdWxsdGV4dC5zZWFyY2gnIHwgaTE4biB9fTwvc3Bhbj5cbiAgPC9idXR0b24+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNjbGFzc2VzT3ZlcmxheT5cbiAgPGRpdlxuICAgIGNsYXNzPVwiby1zZWFyY2gtZnVsbHRleHRfX2NsYXNzZXMtb3ZlcmxheVwiXG4gICAgI2Nob29zZUNsYXNzZXNcbiAgICAoa2V5ZG93bi5lc2NhcGUpPVwiY2xvc2VGb2N1cygpXCJcbiAgICAoa2V5ZG93bi5hcnJvd0Rvd24pPVwib25BcnJvd0Rvd24oKVwiXG4gICAgKGtleWRvd24uYXJyb3dVcCk9XCJvbkFycm93VXAoKVwiXG4gID5cbiAgICA8YnV0dG9uIGNsYXNzPVwiby1zZWFyY2gtZnVsbHRleHRfX2NsYXNzZXMtb3ZlcmxheV9faXRlbVwiIChjbGljayk9XCJvblNlbGVjdEFsbENsYXNzZXMoKVwiPlxuICAgICAgPHByeS1pY29uIGljb25Tdmc9XCJhcHBzXCIgW3dpZHRoXT1cIjIwXCIgW2hlaWdodF09XCIyMFwiPjwvcHJ5LWljb24+XG4gICAgICA8c3BhbiBjbGFzcz1cIm8tc2VhcmNoLWZ1bGx0ZXh0X19jbGFzc2VzLW92ZXJsYXlfX2l0ZW1fX2xhYmVsXCI+e3tcbiAgICAgICAgJ0Bwcnkuc2VhcmNoLmZ1bGx0ZXh0LmFsbENsYXNzZXMnIHwgaTE4blxuICAgICAgfX08L3NwYW4+XG4gICAgPC9idXR0b24+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY2xhenogb2YgY2xhc3NlcyQgfCBhc3luYzsgbGV0IGxhc3QgPSBsYXN0XCI+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICBjbGFzcz1cIm8tc2VhcmNoLWZ1bGx0ZXh0X19jbGFzc2VzLW92ZXJsYXlfX2l0ZW1cIlxuICAgICAgICAoY2xpY2spPVwib25TZWxlY3RDbGFzcyhjbGF6eilcIlxuICAgICAgICBbY2xhc3Muby1zZWFyY2gtZnVsbHRleHRfX2NsYXNzZXMtb3ZlcmxheV9faXRlbV9fc2VsZWN0ZWRdPVwiY2xhc3Nlc1NlbGVjdGVkLmluY2x1ZGVzKGNsYXp6LmlkKVwiXG4gICAgICAgIChrZXlkb3duLnRhYik9XCJsYXN0ID8gY2xvc2VGb2N1cygpIDogbnVsbFwiXG4gICAgICA+XG4gICAgICAgIDxpbWdcbiAgICAgICAgICBhbHQ9XCJjbGFzc1wiXG4gICAgICAgICAgW2hlaWdodF09XCIyMFwiXG4gICAgICAgICAgW3dpZHRoXT1cIjIwXCJcbiAgICAgICAgICBbc3JjXT1cImNsYXp6LmlkIHwgdHJhbnNsYXRlSWQgOiB7IHR5cGU6ICdjbGFzcycsIG91dHB1dDogJ2ljb24nIH0gfCBhc3luY1wiXG4gICAgICAgIC8+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiby1zZWFyY2gtZnVsbHRleHRfX2NsYXNzZXMtb3ZlcmxheV9faXRlbV9fbGFiZWxcIj57eyBjbGF6ei5uYW1lIH19PC9zcGFuPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==