bways-report 0.1.0

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 (185) hide show
  1. package/LICENSE +26 -0
  2. package/README.md +477 -0
  3. package/esm2022/bways-report.mjs +5 -0
  4. package/esm2022/lib/core/errors/index.mjs +2 -0
  5. package/esm2022/lib/core/errors/reporting-errors.mjs +65 -0
  6. package/esm2022/lib/core/index.mjs +8 -0
  7. package/esm2022/lib/core/models/component-event.model.mjs +8 -0
  8. package/esm2022/lib/core/models/index.mjs +5 -0
  9. package/esm2022/lib/core/models/report-component.model.mjs +10 -0
  10. package/esm2022/lib/core/models/report-datasource.model.mjs +9 -0
  11. package/esm2022/lib/core/models/report-definition.model.mjs +13 -0
  12. package/esm2022/lib/core/models/report-grid.model.mjs +10 -0
  13. package/esm2022/lib/core/models/report-layout.model.mjs +9 -0
  14. package/esm2022/lib/core/models/report-parameter.model.mjs +9 -0
  15. package/esm2022/lib/core/models/validation.model.mjs +8 -0
  16. package/esm2022/lib/core/registry/component-category.mjs +8 -0
  17. package/esm2022/lib/core/registry/component-registry.mjs +90 -0
  18. package/esm2022/lib/core/registry/index.mjs +2 -0
  19. package/esm2022/lib/core/registry/property-definition.model.mjs +10 -0
  20. package/esm2022/lib/core/services/dynamic-form-builder.service.mjs +55 -0
  21. package/esm2022/lib/core/services/index.mjs +3 -0
  22. package/esm2022/lib/core/services/report-session-context.service.mjs +314 -0
  23. package/esm2022/lib/core/tokens/index.mjs +3 -0
  24. package/esm2022/lib/core/tokens/reporting-config.token.mjs +26 -0
  25. package/esm2022/lib/core/tokens/session-context.token.mjs +18 -0
  26. package/esm2022/lib/core/utilities/id-generator.mjs +17 -0
  27. package/esm2022/lib/core/utilities/index.mjs +3 -0
  28. package/esm2022/lib/core/utilities/schema-migration.mjs +38 -0
  29. package/esm2022/lib/core/utils/identifier-humanizer.mjs +88 -0
  30. package/esm2022/lib/core/validation/index.mjs +2 -0
  31. package/esm2022/lib/core/validation/validation-factory.mjs +70 -0
  32. package/esm2022/lib/data-access/adapters/http-lookup.adapter.mjs +107 -0
  33. package/esm2022/lib/data-access/adapters/http-schema-discovery.adapter.mjs +119 -0
  34. package/esm2022/lib/data-access/adapters/index.mjs +3 -0
  35. package/esm2022/lib/data-access/contracts/data-source.contract.mjs +28 -0
  36. package/esm2022/lib/data-access/contracts/index.mjs +7 -0
  37. package/esm2022/lib/data-access/contracts/lookup.contract.mjs +6 -0
  38. package/esm2022/lib/data-access/contracts/master-data.provider.mjs +24 -0
  39. package/esm2022/lib/data-access/contracts/report-persistence.contract.mjs +25 -0
  40. package/esm2022/lib/data-access/contracts/schema-discovery.contract.mjs +7 -0
  41. package/esm2022/lib/data-access/contracts/translation.contract.mjs +9 -0
  42. package/esm2022/lib/data-access/index.mjs +3 -0
  43. package/esm2022/lib/features/designer/components/component-palette/component-palette.component.mjs +542 -0
  44. package/esm2022/lib/features/designer/components/design-canvas/design-canvas.component.mjs +843 -0
  45. package/esm2022/lib/features/designer/components/property-editor/parameter-binding-editor.component.mjs +556 -0
  46. package/esm2022/lib/features/designer/components/property-editor/property-editor-datasource.component.mjs +845 -0
  47. package/esm2022/lib/features/designer/components/property-editor/property-editor-general.component.mjs +185 -0
  48. package/esm2022/lib/features/designer/components/property-editor/property-editor-grid.component.mjs +452 -0
  49. package/esm2022/lib/features/designer/components/property-editor/property-editor-layout.component.mjs +350 -0
  50. package/esm2022/lib/features/designer/components/property-editor/property-editor-report.component.mjs +175 -0
  51. package/esm2022/lib/features/designer/components/property-editor/property-editor-validation.component.mjs +137 -0
  52. package/esm2022/lib/features/designer/components/property-editor/property-editor.component.mjs +608 -0
  53. package/esm2022/lib/features/designer/components/toolbar/designer-toolbar.component.mjs +225 -0
  54. package/esm2022/lib/features/designer/designer.component.mjs +285 -0
  55. package/esm2022/lib/features/designer/index.mjs +7 -0
  56. package/esm2022/lib/features/designer/services/designer-state.service.mjs +310 -0
  57. package/esm2022/lib/features/designer/services/index.mjs +2 -0
  58. package/esm2022/lib/features/designer/utilities/canvas-layout.util.mjs +124 -0
  59. package/esm2022/lib/features/export/index.mjs +2 -0
  60. package/esm2022/lib/features/export/models/export.models.mjs +2 -0
  61. package/esm2022/lib/features/export/services/report-export.service.mjs +107 -0
  62. package/esm2022/lib/features/index.mjs +6 -0
  63. package/esm2022/lib/features/persistence/index.mjs +2 -0
  64. package/esm2022/lib/features/persistence/services/index.mjs +4 -0
  65. package/esm2022/lib/features/persistence/services/report-store.service.mjs +183 -0
  66. package/esm2022/lib/features/persistence/services/report-versioning.service.mjs +81 -0
  67. package/esm2022/lib/features/persistence/services/schema-validator.service.mjs +102 -0
  68. package/esm2022/lib/features/routing/components/routed-report-designer.component.mjs +156 -0
  69. package/esm2022/lib/features/routing/components/routed-report-runtime.component.mjs +163 -0
  70. package/esm2022/lib/features/routing/index.mjs +6 -0
  71. package/esm2022/lib/features/routing/models/report-route.models.mjs +2 -0
  72. package/esm2022/lib/features/routing/report-routes.mjs +49 -0
  73. package/esm2022/lib/features/routing/resolvers/report.resolver.mjs +22 -0
  74. package/esm2022/lib/features/routing/services/report-menu.service.mjs +77 -0
  75. package/esm2022/lib/features/runtime/dynamic-renderer.component.mjs +222 -0
  76. package/esm2022/lib/features/runtime/index.mjs +4 -0
  77. package/esm2022/lib/features/runtime/report-grid-bridge.component.mjs +409 -0
  78. package/esm2022/lib/features/runtime/report-runtime.component.mjs +147 -0
  79. package/esm2022/lib/primitives/components/button/rpt-button.component.mjs +88 -0
  80. package/esm2022/lib/primitives/components/chart-bridge/report-chart-bridge.component.mjs +361 -0
  81. package/esm2022/lib/primitives/components/checkbox/rpt-checkbox.component.mjs +86 -0
  82. package/esm2022/lib/primitives/components/date/rpt-date.component.mjs +91 -0
  83. package/esm2022/lib/primitives/components/dropdown/rpt-dropdown.component.mjs +204 -0
  84. package/esm2022/lib/primitives/components/icon/rpt-icon.component.mjs +476 -0
  85. package/esm2022/lib/primitives/components/index.mjs +10 -0
  86. package/esm2022/lib/primitives/components/input/rpt-input.component.mjs +88 -0
  87. package/esm2022/lib/primitives/components/kpi-card/rpt-kpi-card.component.mjs +197 -0
  88. package/esm2022/lib/primitives/components/number/rpt-number.component.mjs +110 -0
  89. package/esm2022/lib/primitives/index.mjs +3 -0
  90. package/esm2022/lib/primitives/register-builtins.mjs +328 -0
  91. package/esm2022/lib/provide-reporting.mjs +92 -0
  92. package/esm2022/public-api.mjs +9 -0
  93. package/fesm2022/bways-report.mjs +10360 -0
  94. package/fesm2022/bways-report.mjs.map +1 -0
  95. package/index.d.ts +5 -0
  96. package/lib/core/errors/index.d.ts +1 -0
  97. package/lib/core/errors/reporting-errors.d.ts +42 -0
  98. package/lib/core/index.d.ts +7 -0
  99. package/lib/core/models/component-event.model.d.ts +37 -0
  100. package/lib/core/models/index.d.ts +11 -0
  101. package/lib/core/models/report-component.model.d.ts +95 -0
  102. package/lib/core/models/report-datasource.model.d.ts +39 -0
  103. package/lib/core/models/report-definition.model.d.ts +100 -0
  104. package/lib/core/models/report-grid.model.d.ts +73 -0
  105. package/lib/core/models/report-layout.model.d.ts +43 -0
  106. package/lib/core/models/report-parameter.model.d.ts +22 -0
  107. package/lib/core/models/validation.model.d.ts +30 -0
  108. package/lib/core/registry/component-category.d.ts +16 -0
  109. package/lib/core/registry/component-registry.d.ts +101 -0
  110. package/lib/core/registry/index.d.ts +4 -0
  111. package/lib/core/registry/property-definition.model.d.ts +38 -0
  112. package/lib/core/services/dynamic-form-builder.service.d.ts +30 -0
  113. package/lib/core/services/index.d.ts +3 -0
  114. package/lib/core/services/report-session-context.service.d.ts +87 -0
  115. package/lib/core/tokens/index.d.ts +4 -0
  116. package/lib/core/tokens/reporting-config.token.d.ts +42 -0
  117. package/lib/core/tokens/session-context.token.d.ts +36 -0
  118. package/lib/core/utilities/id-generator.d.ts +9 -0
  119. package/lib/core/utilities/index.d.ts +3 -0
  120. package/lib/core/utilities/schema-migration.d.ts +10 -0
  121. package/lib/core/utils/identifier-humanizer.d.ts +22 -0
  122. package/lib/core/validation/index.d.ts +1 -0
  123. package/lib/core/validation/validation-factory.d.ts +31 -0
  124. package/lib/data-access/adapters/http-lookup.adapter.d.ts +19 -0
  125. package/lib/data-access/adapters/http-schema-discovery.adapter.d.ts +20 -0
  126. package/lib/data-access/adapters/index.d.ts +2 -0
  127. package/lib/data-access/contracts/data-source.contract.d.ts +37 -0
  128. package/lib/data-access/contracts/index.d.ts +9 -0
  129. package/lib/data-access/contracts/lookup.contract.d.ts +32 -0
  130. package/lib/data-access/contracts/master-data.provider.d.ts +54 -0
  131. package/lib/data-access/contracts/report-persistence.contract.d.ts +36 -0
  132. package/lib/data-access/contracts/schema-discovery.contract.d.ts +52 -0
  133. package/lib/data-access/contracts/translation.contract.d.ts +16 -0
  134. package/lib/data-access/index.d.ts +2 -0
  135. package/lib/features/designer/components/component-palette/component-palette.component.d.ts +39 -0
  136. package/lib/features/designer/components/design-canvas/design-canvas.component.d.ts +42 -0
  137. package/lib/features/designer/components/property-editor/parameter-binding-editor.component.d.ts +36 -0
  138. package/lib/features/designer/components/property-editor/property-editor-datasource.component.d.ts +68 -0
  139. package/lib/features/designer/components/property-editor/property-editor-general.component.d.ts +20 -0
  140. package/lib/features/designer/components/property-editor/property-editor-grid.component.d.ts +20 -0
  141. package/lib/features/designer/components/property-editor/property-editor-layout.component.d.ts +18 -0
  142. package/lib/features/designer/components/property-editor/property-editor-report.component.d.ts +15 -0
  143. package/lib/features/designer/components/property-editor/property-editor-validation.component.d.ts +12 -0
  144. package/lib/features/designer/components/property-editor/property-editor.component.d.ts +44 -0
  145. package/lib/features/designer/components/toolbar/designer-toolbar.component.d.ts +18 -0
  146. package/lib/features/designer/designer.component.d.ts +36 -0
  147. package/lib/features/designer/index.d.ts +7 -0
  148. package/lib/features/designer/services/designer-state.service.d.ts +103 -0
  149. package/lib/features/designer/services/index.d.ts +2 -0
  150. package/lib/features/designer/utilities/canvas-layout.util.d.ts +55 -0
  151. package/lib/features/export/index.d.ts +2 -0
  152. package/lib/features/export/models/export.models.d.ts +16 -0
  153. package/lib/features/export/services/report-export.service.d.ts +27 -0
  154. package/lib/features/index.d.ts +5 -0
  155. package/lib/features/persistence/index.d.ts +1 -0
  156. package/lib/features/persistence/services/index.d.ts +5 -0
  157. package/lib/features/persistence/services/report-store.service.d.ts +53 -0
  158. package/lib/features/persistence/services/report-versioning.service.d.ts +29 -0
  159. package/lib/features/persistence/services/schema-validator.service.d.ts +34 -0
  160. package/lib/features/routing/components/routed-report-designer.component.d.ts +18 -0
  161. package/lib/features/routing/components/routed-report-runtime.component.d.ts +18 -0
  162. package/lib/features/routing/index.d.ts +6 -0
  163. package/lib/features/routing/models/report-route.models.d.ts +41 -0
  164. package/lib/features/routing/report-routes.d.ts +16 -0
  165. package/lib/features/routing/resolvers/report.resolver.d.ts +7 -0
  166. package/lib/features/routing/services/report-menu.service.d.ts +30 -0
  167. package/lib/features/runtime/dynamic-renderer.component.d.ts +30 -0
  168. package/lib/features/runtime/index.d.ts +3 -0
  169. package/lib/features/runtime/report-grid-bridge.component.d.ts +94 -0
  170. package/lib/features/runtime/report-runtime.component.d.ts +26 -0
  171. package/lib/primitives/components/button/rpt-button.component.d.ts +19 -0
  172. package/lib/primitives/components/chart-bridge/report-chart-bridge.component.d.ts +45 -0
  173. package/lib/primitives/components/checkbox/rpt-checkbox.component.d.ts +14 -0
  174. package/lib/primitives/components/date/rpt-date.component.d.ts +17 -0
  175. package/lib/primitives/components/dropdown/rpt-dropdown.component.d.ts +32 -0
  176. package/lib/primitives/components/icon/rpt-icon.component.d.ts +41 -0
  177. package/lib/primitives/components/index.d.ts +12 -0
  178. package/lib/primitives/components/input/rpt-input.component.d.ts +16 -0
  179. package/lib/primitives/components/kpi-card/rpt-kpi-card.component.d.ts +43 -0
  180. package/lib/primitives/components/number/rpt-number.component.d.ts +20 -0
  181. package/lib/primitives/index.d.ts +2 -0
  182. package/lib/primitives/register-builtins.d.ts +11 -0
  183. package/lib/provide-reporting.d.ts +75 -0
  184. package/package.json +55 -0
  185. package/public-api.d.ts +5 -0
@@ -0,0 +1,476 @@
1
+ import { ChangeDetectionStrategy, Component, computed, input, } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import * as i0 from "@angular/core";
4
+ /**
5
+ * Enterprise SVG Icon component for BWays-Report.
6
+ * Provides crisp, scalable vector icons without external font dependencies.
7
+ */
8
+ export class RptIconComponent {
9
+ /** Icon name (e.g. 'search', 'edit', 'save', 'kpi', 'chart-bar', 'trend-up') */
10
+ name = input.required();
11
+ /** Icon dimension in pixels. Defaults to 16. */
12
+ size = input(16);
13
+ /** Stroke/fill color. Defaults to 'currentColor'. */
14
+ color = input('currentColor');
15
+ /** Stroke width for line-based icons. Defaults to 2. */
16
+ strokeWidth = input(2);
17
+ viewBox = computed(() => '0 0 24 24');
18
+ stroke = computed(() => 'currentColor');
19
+ fill = computed(() => 'none');
20
+ iconData = computed(() => {
21
+ const n = this.name()?.toLowerCase().trim() || 'box';
22
+ return ICON_REGISTRY[n] || ICON_REGISTRY['box'] || { paths: [] };
23
+ });
24
+ paths = computed(() => this.iconData().paths || []);
25
+ circles = computed(() => this.iconData().circles || []);
26
+ rects = computed(() => this.iconData().rects || []);
27
+ lines = computed(() => this.iconData().lines || []);
28
+ polylines = computed(() => this.iconData().polylines || []);
29
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RptIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
30
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: RptIconComponent, isStandalone: true, selector: "rpt-icon", inputs: { name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: true, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, strokeWidth: { classPropertyName: "strokeWidth", publicName: "strokeWidth", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
31
+ <svg
32
+ class="rpt-svg-icon"
33
+ [attr.width]="size()"
34
+ [attr.height]="size()"
35
+ [attr.viewBox]="viewBox()"
36
+ [attr.stroke]="stroke()"
37
+ [attr.fill]="fill()"
38
+ [attr.stroke-width]="strokeWidth()"
39
+ stroke-linecap="round"
40
+ stroke-linejoin="round"
41
+ [style.color]="color()"
42
+ aria-hidden="true"
43
+ >
44
+ @for (d of paths(); track d) {
45
+ <path [attr.d]="d" />
46
+ }
47
+ @for (c of circles(); track c.cx + '-' + c.cy) {
48
+ <circle [attr.cx]="c.cx" [attr.cy]="c.cy" [attr.r]="c.r" />
49
+ }
50
+ @for (r of rects(); track r.x + '-' + r.y) {
51
+ <rect
52
+ [attr.x]="r.x"
53
+ [attr.y]="r.y"
54
+ [attr.width]="r.width"
55
+ [attr.height]="r.height"
56
+ [attr.rx]="r.rx || 0"
57
+ />
58
+ }
59
+ @for (l of lines(); track l.x1 + '-' + l.y1) {
60
+ <line
61
+ [attr.x1]="l.x1"
62
+ [attr.y1]="l.y1"
63
+ [attr.x2]="l.x2"
64
+ [attr.y2]="l.y2"
65
+ />
66
+ }
67
+ @for (p of polylines(); track p) {
68
+ <polyline [attr.points]="p" />
69
+ }
70
+ </svg>
71
+ `, isInline: true, styles: [":host{display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;line-height:1}.rpt-svg-icon{display:inline-block;flex-shrink:0;color:inherit}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
72
+ }
73
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RptIconComponent, decorators: [{
74
+ type: Component,
75
+ args: [{ selector: 'rpt-icon', standalone: true, imports: [CommonModule], changeDetection: ChangeDetectionStrategy.OnPush, template: `
76
+ <svg
77
+ class="rpt-svg-icon"
78
+ [attr.width]="size()"
79
+ [attr.height]="size()"
80
+ [attr.viewBox]="viewBox()"
81
+ [attr.stroke]="stroke()"
82
+ [attr.fill]="fill()"
83
+ [attr.stroke-width]="strokeWidth()"
84
+ stroke-linecap="round"
85
+ stroke-linejoin="round"
86
+ [style.color]="color()"
87
+ aria-hidden="true"
88
+ >
89
+ @for (d of paths(); track d) {
90
+ <path [attr.d]="d" />
91
+ }
92
+ @for (c of circles(); track c.cx + '-' + c.cy) {
93
+ <circle [attr.cx]="c.cx" [attr.cy]="c.cy" [attr.r]="c.r" />
94
+ }
95
+ @for (r of rects(); track r.x + '-' + r.y) {
96
+ <rect
97
+ [attr.x]="r.x"
98
+ [attr.y]="r.y"
99
+ [attr.width]="r.width"
100
+ [attr.height]="r.height"
101
+ [attr.rx]="r.rx || 0"
102
+ />
103
+ }
104
+ @for (l of lines(); track l.x1 + '-' + l.y1) {
105
+ <line
106
+ [attr.x1]="l.x1"
107
+ [attr.y1]="l.y1"
108
+ [attr.x2]="l.x2"
109
+ [attr.y2]="l.y2"
110
+ />
111
+ }
112
+ @for (p of polylines(); track p) {
113
+ <polyline [attr.points]="p" />
114
+ }
115
+ </svg>
116
+ `, styles: [":host{display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;line-height:1}.rpt-svg-icon{display:inline-block;flex-shrink:0;color:inherit}\n"] }]
117
+ }] });
118
+ const ICON_REGISTRY = {
119
+ // Input / Text
120
+ 'input': {
121
+ paths: ['M17 3a2.828 2.828 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5L17 3z']
122
+ },
123
+ 'text-fields': {
124
+ lines: [
125
+ { x1: 4, y1: 7, x2: 4, y2: 4 },
126
+ { x1: 4, y1: 4, x2: 20, y2: 4 },
127
+ { x1: 20, y1: 4, x2: 20, y2: 7 },
128
+ { x1: 12, y1: 4, x2: 12, y2: 20 },
129
+ { x1: 9, y1: 20, x2: 15, y2: 20 }
130
+ ]
131
+ },
132
+ 'edit': {
133
+ paths: [
134
+ 'M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7',
135
+ 'M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z'
136
+ ]
137
+ },
138
+ 'design': {
139
+ rects: [{ x: 3, y: 3, width: 18, height: 18, rx: 2 }],
140
+ lines: [
141
+ { x1: 3, y1: 9, x2: 21, y2: 9 },
142
+ { x1: 9, y1: 21, x2: 9, y2: 9 }
143
+ ]
144
+ },
145
+ // Dropdown / Select
146
+ 'dropdown': {
147
+ rects: [{ x: 3, y: 3, width: 18, height: 18, rx: 4 }],
148
+ polylines: ['8 10 12 14 16 10']
149
+ },
150
+ 'chevron-down': {
151
+ polylines: ['6 9 12 15 18 9']
152
+ },
153
+ 'chevron-up': {
154
+ polylines: ['18 15 12 9 6 15']
155
+ },
156
+ // Date / Calendar
157
+ 'date': {
158
+ rects: [{ x: 3, y: 4, width: 18, height: 18, rx: 3 }],
159
+ lines: [
160
+ { x1: 16, y1: 2, x2: 16, y2: 6 },
161
+ { x1: 8, y1: 2, x2: 8, y2: 6 },
162
+ { x1: 3, y1: 10, x2: 21, y2: 10 }
163
+ ]
164
+ },
165
+ 'calendar': {
166
+ rects: [{ x: 3, y: 4, width: 18, height: 18, rx: 3 }],
167
+ lines: [
168
+ { x1: 16, y1: 2, x2: 16, y2: 6 },
169
+ { x1: 8, y1: 2, x2: 8, y2: 6 },
170
+ { x1: 3, y1: 10, x2: 21, y2: 10 }
171
+ ]
172
+ },
173
+ 'calendar-today': {
174
+ rects: [{ x: 3, y: 4, width: 18, height: 18, rx: 3 }],
175
+ lines: [
176
+ { x1: 16, y1: 2, x2: 16, y2: 6 },
177
+ { x1: 8, y1: 2, x2: 8, y2: 6 },
178
+ { x1: 3, y1: 10, x2: 21, y2: 10 }
179
+ ]
180
+ },
181
+ // Number / Hash
182
+ 'number': {
183
+ lines: [
184
+ { x1: 4, y1: 9, x2: 20, y2: 9 },
185
+ { x1: 4, y1: 15, x2: 20, y2: 15 },
186
+ { x1: 10, y1: 3, x2: 8, y2: 21 },
187
+ { x1: 16, y1: 3, x2: 14, y2: 21 }
188
+ ]
189
+ },
190
+ // Checkbox
191
+ 'checkbox': {
192
+ rects: [{ x: 3, y: 3, width: 18, height: 18, rx: 4 }],
193
+ polylines: ['9 12 11 14 15 10']
194
+ },
195
+ // Button
196
+ 'button': {
197
+ rects: [{ x: 3, y: 7, width: 18, height: 10, rx: 4 }],
198
+ lines: [{ x1: 8, y1: 12, x2: 16, y2: 12 }]
199
+ },
200
+ // KPI & Trends
201
+ 'kpi': {
202
+ paths: ['M22 12h-4l-3 9L9 3l-3 9H2']
203
+ },
204
+ 'monitoring': {
205
+ paths: ['M22 12h-4l-3 9L9 3l-3 9H2']
206
+ },
207
+ 'trend-up': {
208
+ polylines: ['23 6 13.5 15.5 8.5 10.5 1 18', '17 6 23 6 23 12']
209
+ },
210
+ 'trend-down': {
211
+ polylines: ['23 18 13.5 8.5 8.5 13.5 1 6', '17 18 23 18 23 12']
212
+ },
213
+ // Charts
214
+ 'chart': {
215
+ lines: [
216
+ { x1: 18, y1: 20, x2: 18, y2: 10 },
217
+ { x1: 12, y1: 20, x2: 12, y2: 4 },
218
+ { x1: 6, y1: 20, x2: 6, y2: 14 }
219
+ ]
220
+ },
221
+ 'chart-bar': {
222
+ lines: [
223
+ { x1: 18, y1: 20, x2: 18, y2: 10 },
224
+ { x1: 12, y1: 20, x2: 12, y2: 4 },
225
+ { x1: 6, y1: 20, x2: 6, y2: 14 }
226
+ ]
227
+ },
228
+ 'bar-chart': {
229
+ lines: [
230
+ { x1: 18, y1: 20, x2: 18, y2: 10 },
231
+ { x1: 12, y1: 20, x2: 12, y2: 4 },
232
+ { x1: 6, y1: 20, x2: 6, y2: 14 }
233
+ ]
234
+ },
235
+ 'chart-line': {
236
+ polylines: ['22 12 18 12 15 21 9 3 6 12 2 12']
237
+ },
238
+ 'chart-donut': {
239
+ circles: [
240
+ { cx: 12, cy: 12, r: 10 },
241
+ { cx: 12, cy: 12, r: 4 }
242
+ ]
243
+ },
244
+ // Grid / Table / Layout
245
+ 'grid': {
246
+ rects: [{ x: 3, y: 3, width: 18, height: 18, rx: 3 }],
247
+ lines: [
248
+ { x1: 3, y1: 9, x2: 21, y2: 9 },
249
+ { x1: 3, y1: 15, x2: 21, y2: 15 },
250
+ { x1: 9, y1: 3, x2: 9, y2: 21 },
251
+ { x1: 15, y1: 3, x2: 15, y2: 21 }
252
+ ]
253
+ },
254
+ 'database': {
255
+ paths: [
256
+ 'M3 5c0-1.657 4.03-3 9-3s9 1.343 9 3v14c0 1.657-4.03 3-9 3s-9-1.343-9-3V5z',
257
+ 'M3 12c0 1.657 4.03 3 9 3s9-1.343 9-3'
258
+ ]
259
+ },
260
+ 'table': {
261
+ rects: [{ x: 3, y: 3, width: 18, height: 18, rx: 3 }],
262
+ lines: [
263
+ { x1: 3, y1: 9, x2: 21, y2: 9 },
264
+ { x1: 9, y1: 9, x2: 9, y2: 21 }
265
+ ]
266
+ },
267
+ 'layout': {
268
+ rects: [{ x: 3, y: 3, width: 18, height: 18, rx: 3 }],
269
+ lines: [
270
+ { x1: 3, y1: 9, x2: 21, y2: 9 },
271
+ { x1: 9, y1: 21, x2: 9, y2: 9 }
272
+ ]
273
+ },
274
+ 'list': {
275
+ lines: [
276
+ { x1: 8, y1: 6, x2: 21, y2: 6 },
277
+ { x1: 8, y1: 12, x2: 21, y2: 12 },
278
+ { x1: 8, y1: 18, x2: 21, y2: 18 },
279
+ { x1: 3, y1: 6, x2: 4, y2: 6 },
280
+ { x1: 3, y1: 12, x2: 4, y2: 12 },
281
+ { x1: 3, y1: 18, x2: 4, y2: 18 }
282
+ ]
283
+ },
284
+ // Selection / Cursor
285
+ 'cursor': {
286
+ paths: ['M3 3l7.07 16.97 2.51-7.39 7.39-2.51L3 3z'],
287
+ lines: [{ x1: 13, y1: 13, x2: 19, y2: 19 }]
288
+ },
289
+ 'mouse-pointer': {
290
+ paths: ['M3 3l7.07 16.97 2.51-7.39 7.39-2.51L3 3z'],
291
+ lines: [{ x1: 13, y1: 13, x2: 19, y2: 19 }]
292
+ },
293
+ // Alert / Warning
294
+ 'warning': {
295
+ paths: ['M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z'],
296
+ lines: [{ x1: 12, y1: 9, x2: 12, y2: 13 }, { x1: 12, y1: 17, x2: 12.01, y2: 17 }]
297
+ },
298
+ 'alert-triangle': {
299
+ paths: ['M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z'],
300
+ lines: [{ x1: 12, y1: 9, x2: 12, y2: 13 }, { x1: 12, y1: 17, x2: 12.01, y2: 17 }]
301
+ },
302
+ // Actions
303
+ 'undo': {
304
+ paths: ['M3 7v6h6', 'M21 17a9 9 0 0 0-9-9 9 9 0 0 0-6 2.3L3 13']
305
+ },
306
+ 'redo': {
307
+ paths: ['M21 7v6h-6', 'M3 17a9 9 0 0 1 9-9 9 9 0 0 1 6 2.3L21 13']
308
+ },
309
+ 'save': {
310
+ paths: [
311
+ 'M19 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11l5 5v11a2 2 0 0 1-2 2z',
312
+ 'M17 21v-8H7v8',
313
+ 'M7 3v5h8'
314
+ ]
315
+ },
316
+ 'download': {
317
+ paths: [
318
+ 'M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4',
319
+ 'M7 10l5 5 5-5',
320
+ 'M12 15V3'
321
+ ]
322
+ },
323
+ 'export': {
324
+ paths: [
325
+ 'M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4',
326
+ 'M7 10l5 5 5-5',
327
+ 'M12 15V3'
328
+ ]
329
+ },
330
+ 'search': {
331
+ circles: [{ cx: 11, cy: 11, r: 8 }],
332
+ lines: [{ x1: 21, y1: 21, x2: 16.65, y2: 16.65 }]
333
+ },
334
+ 'filter': {
335
+ polylines: ['22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3']
336
+ },
337
+ 'copy': {
338
+ rects: [{ x: 9, y: 9, width: 13, height: 13, rx: 2 }],
339
+ paths: ['M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1']
340
+ },
341
+ 'duplicate': {
342
+ rects: [{ x: 9, y: 9, width: 13, height: 13, rx: 2 }],
343
+ paths: ['M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1']
344
+ },
345
+ 'trash': {
346
+ paths: [
347
+ 'M3 6h18',
348
+ 'M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2',
349
+ 'M10 11v6',
350
+ 'M14 11v6'
351
+ ]
352
+ },
353
+ 'delete': {
354
+ paths: [
355
+ 'M3 6h18',
356
+ 'M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2'
357
+ ]
358
+ },
359
+ 'settings': {
360
+ circles: [{ cx: 12, cy: 12, r: 3 }],
361
+ paths: [
362
+ 'M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1 0 2.83 2 2 0 0 1-2.83 0l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-2 2 2 2 0 0 1-2-2v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83 0 2 2 0 0 1 0-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1-2-2 2 2 0 0 1 2-2h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 0-2.83 2 2 0 0 1 2.83 0l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 2-2 2 2 0 0 1 2 2v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 0 2 2 0 0 1 0 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 2 2 2 2 0 0 1-2 2h-.09a1.65 1.65 0 0 0-1.51 1z'
363
+ ]
364
+ },
365
+ 'gear': {
366
+ circles: [{ cx: 12, cy: 12, r: 3 }],
367
+ paths: [
368
+ 'M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1 0 2.83 2 2 0 0 1-2.83 0l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-2 2 2 2 0 0 1-2-2v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83 0 2 2 0 0 1 0-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1-2-2 2 2 0 0 1 2-2h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 0-2.83 2 2 0 0 1 2.83 0l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 2-2 2 2 0 0 1 2 2v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 0 2 2 0 0 1 0 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 2 2 2 2 0 0 1-2 2h-.09a1.65 1.65 0 0 0-1.51 1z'
369
+ ]
370
+ },
371
+ 'eye': {
372
+ paths: ['M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z'],
373
+ circles: [{ cx: 12, cy: 12, r: 3 }]
374
+ },
375
+ 'preview': {
376
+ paths: ['M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z'],
377
+ circles: [{ cx: 12, cy: 12, r: 3 }]
378
+ },
379
+ 'code': {
380
+ polylines: ['16 18 22 12 16 6', '8 6 2 12 8 18']
381
+ },
382
+ 'json': {
383
+ polylines: ['16 18 22 12 16 6', '8 6 2 12 8 18']
384
+ },
385
+ // Navigation & Direction
386
+ 'arrow-left': {
387
+ lines: [{ x1: 19, y1: 12, x2: 5, y2: 12 }],
388
+ polylines: ['12 19 5 12 12 5']
389
+ },
390
+ 'arrow-right': {
391
+ lines: [{ x1: 5, y1: 12, x2: 19, y2: 12 }],
392
+ polylines: ['12 5 19 12 12 19']
393
+ },
394
+ 'arrow-up': {
395
+ lines: [{ x1: 12, y1: 19, x2: 12, y2: 5 }],
396
+ polylines: ['5 12 12 5 19 12']
397
+ },
398
+ 'arrow-down': {
399
+ lines: [{ x1: 12, y1: 5, x2: 12, y2: 19 }],
400
+ polylines: ['19 12 12 19 5 12']
401
+ },
402
+ 'corner-down-right': {
403
+ polylines: ['15 10 20 15 15 20'],
404
+ paths: ['M4 4v7a4 4 0 0 0 4 4h12']
405
+ },
406
+ 'new-row': {
407
+ polylines: ['15 10 20 15 15 20'],
408
+ paths: ['M4 4v7a4 4 0 0 0 4 4h12']
409
+ },
410
+ // General Status & Common
411
+ 'check': {
412
+ polylines: ['20 6 9 17 4 12']
413
+ },
414
+ 'close': {
415
+ lines: [
416
+ { x1: 18, y1: 6, x2: 6, y2: 18 },
417
+ { x1: 6, y1: 6, x2: 18, y2: 18 }
418
+ ]
419
+ },
420
+ 'plus': {
421
+ lines: [
422
+ { x1: 12, y1: 5, x2: 12, y2: 19 },
423
+ { x1: 5, y1: 12, x2: 19, y2: 12 }
424
+ ]
425
+ },
426
+ 'minus': {
427
+ lines: [{ x1: 5, y1: 12, x2: 19, y2: 12 }]
428
+ },
429
+ 'dollar': {
430
+ lines: [{ x1: 12, y1: 1, x2: 12, y2: 23 }],
431
+ paths: ['M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6']
432
+ },
433
+ 'clock': {
434
+ circles: [{ cx: 12, cy: 12, r: 10 }],
435
+ polylines: ['12 6 12 12 16 14']
436
+ },
437
+ 'box': {
438
+ paths: [
439
+ 'M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z',
440
+ 'M3.27 6.96L12 12.01l8.73-5.05',
441
+ 'M12 22.08V12'
442
+ ]
443
+ },
444
+ 'lightning': {
445
+ polylines: ['13 2 3 14 12 14 11 22 21 10 12 10 13 2']
446
+ },
447
+ 'link': {
448
+ paths: [
449
+ 'M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71',
450
+ 'M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71'
451
+ ]
452
+ },
453
+ 'user': {
454
+ paths: ['M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2'],
455
+ circles: [{ cx: 12, cy: 7, r: 4 }]
456
+ },
457
+ 'sliders': {
458
+ lines: [
459
+ { x1: 4, y1: 21, x2: 4, y2: 14 },
460
+ { x1: 4, y1: 10, x2: 4, y2: 3 },
461
+ { x1: 12, y1: 21, x2: 12, y2: 12 },
462
+ { x1: 12, y1: 8, x2: 12, y2: 3 },
463
+ { x1: 20, y1: 21, x2: 20, y2: 16 },
464
+ { x1: 20, y1: 12, x2: 20, y2: 3 },
465
+ { x1: 1, y1: 14, x2: 7, y2: 14 },
466
+ { x1: 9, y1: 8, x2: 15, y2: 8 },
467
+ { x1: 17, y1: 16, x2: 23, y2: 16 }
468
+ ]
469
+ },
470
+ 'sparkles': {
471
+ paths: [
472
+ 'M12 3v3m0 12v3M3 12h3m12 0h3M5.6 5.6l2.1 2.1m8.6 8.6l2.1 2.1M5.6 18.4l2.1-2.1m8.6-8.6l2.1-2.1'
473
+ ]
474
+ }
475
+ };
476
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnB0LWljb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYndheXMtcmVwb3J0L3NyYy9saWIvcHJpbWl0aXZlcy9jb21wb25lbnRzL2ljb24vcnB0LWljb24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFFBQVEsRUFDUixLQUFLLEdBQ04sTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQUUvQzs7O0dBR0c7QUFnRUgsTUFBTSxPQUFPLGdCQUFnQjtJQUMzQixnRkFBZ0Y7SUFDdkUsSUFBSSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQVUsQ0FBQztJQUV6QyxnREFBZ0Q7SUFDdkMsSUFBSSxHQUFHLEtBQUssQ0FBUyxFQUFFLENBQUMsQ0FBQztJQUVsQyxxREFBcUQ7SUFDNUMsS0FBSyxHQUFHLEtBQUssQ0FBUyxjQUFjLENBQUMsQ0FBQztJQUUvQyx3REFBd0Q7SUFDL0MsV0FBVyxHQUFHLEtBQUssQ0FBUyxDQUFDLENBQUMsQ0FBQztJQUUvQixPQUFPLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3RDLE1BQU0sR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDeEMsSUFBSSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUV0QixRQUFRLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtRQUN4QyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLEVBQUUsV0FBVyxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksS0FBSyxDQUFDO1FBQ3JELE9BQU8sYUFBYSxDQUFDLENBQUMsQ0FBQyxJQUFJLGFBQWEsQ0FB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QUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRTtZQUNoQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUU7WUFDOUIsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFO1NBQ2xDO0tBQ0Y7SUFDRCxnQkFBZ0IsRUFBRTtRQUNoQixLQUFLLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDO1FBQ3JELEtBQUssRUFBRTtZQUNMLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRTtZQUNoQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUU7WUFDOUIsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFO1NBQ2xDO0tBQ0Y7SUFFRCxnQkFBZ0I7SUFDaEIsUUFBUSxFQUFFO1FBQ1IsS0FBSyxFQUFFO1lBQ0wsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFO1lBQy9CLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVB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RTtZQUNoQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUU7WUFDL0IsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFO1lBQ2xDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRTtZQUNoQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUU7WUFDbEMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFO1lBQ2pDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRTtZQUNoQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUU7WUFDL0IsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFO1NBQ25DO0tBQ0Y7SUFDRCxVQUFVLEVBQUU7UUFDVixLQUFLLEVBQUU7WUFDTCwrRkFBK0Y7U0FDaEc7S0FDRjtDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBjb21wdXRlZCxcbiAgaW5wdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuLyoqXG4gKiBFbnRlcnByaXNlIFNWRyBJY29uIGNvbXBvbmVudCBmb3IgQldheXMtUmVwb3J0LlxuICogUHJvdmlkZXMgY3Jpc3AsIHNjYWxhYmxlIHZlY3RvciBpY29ucyB3aXRob3V0IGV4dGVybmFsIGZvbnQgZGVwZW5kZW5jaWVzLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdycHQtaWNvbicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6IGBcbiAgICA8c3ZnXG4gICAgICBjbGFzcz1cInJwdC1zdmctaWNvblwiXG4gICAgICBbYXR0ci53aWR0aF09XCJzaXplKClcIlxuICAgICAgW2F0dHIuaGVpZ2h0XT1cInNpemUoKVwiXG4gICAgICBbYXR0ci52aWV3Qm94XT1cInZpZXdCb3goKVwiXG4gICAgICBbYXR0ci5zdHJva2VdPVwic3Ryb2tlKClcIlxuICAgICAgW2F0dHIuZmlsbF09XCJmaWxsKClcIlxuICAgICAgW2F0dHIuc3Ryb2tlLXdpZHRoXT1cInN0cm9rZVdpZHRoKClcIlxuICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXG4gICAgICBbc3R5bGUuY29sb3JdPVwiY29sb3IoKVwiXG4gICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgID5cbiAgICAgIEBmb3IgKGQgb2YgcGF0aHMoKTsgdHJhY2sgZCkge1xuICAgICAgICA8cGF0aCBbYXR0ci5kXT1cImRcIiAvPlxuICAgICAgfVxuICAgICAgQGZvciAoYyBvZiBjaXJjbGVzKCk7IHRyYWNrIGMuY3ggKyAnLScgKyBjLmN5KSB7XG4gICAgICAgIDxjaXJjbGUgW2F0dHIuY3hdPVwiYy5jeFwiIFthdHRyLmN5XT1cImMuY3lcIiBbYXR0ci5yXT1cImMuclwiIC8+XG4gICAgICB9XG4gICAgICBAZm9yIChyIG9mIHJlY3RzKCk7IHRyYWNrIHIueCArICctJyArIHIueSkge1xuICAgICAgICA8cmVjdFxuICAgICAgICAgIFthdHRyLnhdPVwici54XCJcbiAgICAgICAgICBbYXR0ci55XT1cInIueVwiXG4gICAgICAgICAgW2F0dHIud2lkdGhdPVwici53aWR0aFwiXG4gICAgICAgICAgW2F0dHIuaGVpZ2h0XT1cInIuaGVpZ2h0XCJcbiAgICAgICAgICBbYXR0ci5yeF09XCJyLnJ4IHx8IDBcIlxuICAgICAgICAvPlxuICAgICAgfVxuICAgICAgQGZvciAobCBvZiBsaW5lcygpOyB0cmFjayBsLngxICsgJy0nICsgbC55MSkge1xuICAgICAgICA8bGluZVxuICAgICAgICAgIFthdHRyLngxXT1cImwueDFcIlxuICAgICAgICAgIFthdHRyLnkxXT1cImwueTFcIlxuICAgICAgICAgIFthdHRyLngyXT1cImwueDJcIlxuICAgICAgICAgIFthdHRyLnkyXT1cImwueTJcIlxuICAgICAgICAvPlxuICAgICAgfVxuICAgICAgQGZvciAocCBvZiBwb2x5bGluZXMoKTsgdHJhY2sgcCkge1xuICAgICAgICA8cG9seWxpbmUgW2F0dHIucG9pbnRzXT1cInBcIiAvPlxuICAgICAgfVxuICAgIDwvc3ZnPlxuICBgLFxuICBzdHlsZXM6IFtgXG4gICAgOmhvc3Qge1xuICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgfVxuXG4gICAgLnJwdC1zdmctaWNvbiB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBmbGV4LXNocmluazogMDtcbiAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIH1cbiAgYF1cbn0pXG5leHBvcnQgY2xhc3MgUnB0SWNvbkNvbXBvbmVudCB7XG4gIC8qKiBJY29uIG5hbWUgKGUuZy4gJ3NlYXJjaCcsICdlZGl0JywgJ3NhdmUnLCAna3BpJywgJ2NoYXJ0LWJhcicsICd0cmVuZC11cCcpICovXG4gIHJlYWRvbmx5IG5hbWUgPSBpbnB1dC5yZXF1aXJlZDxzdHJpbmc+KCk7XG5cbiAgLyoqIEljb24gZGltZW5zaW9uIGluIHBpeGVscy4gRGVmYXVsdHMgdG8gMTYuICovXG4gIHJlYWRvbmx5IHNpemUgPSBpbnB1dDxudW1iZXI+KDE2KTtcblxuICAvKiogU3Ryb2tlL2ZpbGwgY29sb3IuIERlZmF1bHRzIHRvICdjdXJyZW50Q29sb3InLiAqL1xuICByZWFkb25seSBjb2xvciA9IGlucHV0PHN0cmluZz4oJ2N1cnJlbnRDb2xvcicpO1xuXG4gIC8qKiBTdHJva2Ugd2lkdGggZm9yIGxpbmUtYmFzZWQgaWNvbnMuIERlZmF1bHRzIHRvIDIuICovXG4gIHJlYWRvbmx5IHN0cm9rZVdpZHRoID0gaW5wdXQ8bnVtYmVyPigyKTtcblxuICByZWFkb25seSB2aWV3Qm94ID0gY29tcHV0ZWQoKCkgPT4gJzAgMCAyNCAyNCcpO1xuICByZWFkb25seSBzdHJva2UgPSBjb21wdXRlZCgoKSA9PiAnY3VycmVudENvbG9yJyk7XG4gIHJlYWRvbmx5IGZpbGwgPSBjb21wdXRlZCgoKSA9PiAnbm9uZScpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgaWNvbkRhdGEgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgbiA9IHRoaXMubmFtZSgpPy50b0xvd2VyQ2FzZSgpLnRyaW0oKSB8fCAnYm94JztcbiAgICByZXR1cm4gSUNPTl9SRUdJU1RSWVtuXSB8fCBJQ09OX1JFR0lTVFJZWydib3gnXSB8fCB7IHBhdGhzOiBbXSB9O1xuICB9KTtcblxuICByZWFkb25seSBwYXRocyA9IGNvbXB1dGVkKCgpID0+IHRoaXMuaWNvbkRhdGEoKS5wYXRocyB8fCBbXSk7XG4gIHJlYWRvbmx5IGNpcmNsZXMgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmljb25EYXRhKCkuY2lyY2xlcyB8fCBbXSk7XG4gIHJlYWRvbmx5IHJlY3RzID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5pY29uRGF0YSgpLnJlY3RzIHx8IFtdKTtcbiAgcmVhZG9ubHkgbGluZXMgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmljb25EYXRhKCkubGluZXMgfHwgW10pO1xuICByZWFkb25seSBwb2x5bGluZXMgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmljb25EYXRhKCkucG9seWxpbmVzIHx8IFtdKTtcbn1cblxuaW50ZXJmYWNlIEljb25EZWZpbml0aW9uIHtcbiAgcGF0aHM/OiBzdHJpbmdbXTtcbiAgY2lyY2xlcz86IHsgY3g6IG51bWJlcjsgY3k6IG51bWJlcjsgcjogbnVtYmVyIH1bXTtcbiAgcmVjdHM/OiB7IHg6IG51bWJlcjsgeTogbnVtYmVyOyB3aWR0aDogbnVtYmVyOyBoZWlnaHQ6IG51bWJlcjsgcng/OiBudW1iZXIgfVtdO1xuICBsaW5lcz86IHsgeDE6IG51bWJlcjsgeTE6IG51bWJlcjsgeDI6IG51bWJlcjsgeTI6IG51bWJlciB9W107XG4gIHBvbHlsaW5lcz86IHN0cmluZ1tdO1xufVxuXG5jb25zdCBJQ09OX1JFR0lTVFJZOiBSZWNvcmQ8c3RyaW5nLCBJY29uRGVmaW5pdGlvbj4gPSB7XG4gIC8vIElucHV0IC8gVGV4dFxuICAnaW5wdXQnOiB7XG4gICAgcGF0aHM6IFsnTTE3IDNhMi44MjggMi44MjggMCAxIDEgNCA0TDcuNSAyMC41IDIgMjJsMS41LTUuNUwxNyAzeiddXG4gIH0sXG4gICd0ZXh0LWZpZWxkcyc6IHtcbiAgICBsaW5lczogW1xuICAgICAgeyB4MTogNCwgeTE6IDcsIHgyOiA0LCB5MjogNCB9LFxuICAgICAgeyB4MTogNCwgeTE6IDQsIHgyOiAyMCwgeTI6IDQgfSxcbiAgICAgIHsgeDE6IDIwLCB5MTogNCwgeDI6IDIwLCB5MjogNyB9LFxuICAgICAgeyB4MTogMTIsIHkxOiA0LCB4MjogMTIsIHkyOiAyMCB9LFxuICAgICAgeyB4MTogOSwgeTE6IDIwLCB4MjogMTUsIHkyOiAyMCB9XG4gICAgXVxuICB9LFxuICAnZWRpdCc6IHtcbiAgICBwYXRoczogW1xuICAgICAgJ00xMSA0SDRhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDE0YTIgMiAwIDAgMCAyLTJ2LTcnLFxuICAgICAgJ00xOC41IDIuNWEyLjEyMSAyLjEyMSAwIDAgMSAzIDNMMTIgMTVsLTQgMSAxLTQgOS41LTkuNXonXG4gICAgXVxuICB9LFxuICAnZGVzaWduJzoge1xuICAgIHJlY3RzOiBbeyB4OiAzLCB5OiAzLCB3aWR0aDogMTgsIGhlaWdodDogMTgsIHJ4OiAyIH1dLFxuICAgIGxpbmVzOiBbXG4gICAgICB7IHgxOiAzLCB5MTogOSwgeDI6IDIxLCB5MjogOSB9LFxuICAgICAgeyB4MTogOSwgeTE6IDIxLCB4MjogOSwgeTI6IDkgfVxuICAgIF1cbiAgfSxcblxuICAvLyBEcm9wZG93biAvIFNlbGVjdFxuICAnZHJvcGRvd24nOiB7XG4gICAgcmVjdHM6IFt7IHg6IDMsIHk6IDMsIHdpZHRoOiAxOCwgaGVpZ2h0OiAxOCwgcng6IDQgfV0sXG4gICAgcG9seWxpbmVzOiBbJzggMTAgMTIgMTQgMTYgMTAnXVxuICB9LFxuICAnY2hldnJvbi1kb3duJzoge1xuICAgIHBvbHlsaW5lczogWyc2IDkgMTIgMTUgMTggOSddXG4gIH0sXG4gICdjaGV2cm9uLXVwJzoge1xuICAgIHBvbHlsaW5lczogWycxOCAxNSAxMiA5IDYgMTUnXVxuICB9LFxuXG4gIC8vIERhdGUgLyBDYWxlbmRhclxuICAnZGF0ZSc6IHtcbiAgICByZWN0czogW3sgeDogMywgeTogNCwgd2lkdGg6IDE4LCBoZWlnaHQ6IDE4LCByeDogMyB9XSxcbiAgICBsaW5lczogW1xuICAgICAgeyB4MTogMTYsIHkxOiAyLCB4MjogMTYsIHkyOiA2IH0sXG4gICAgICB7IHgxOiA4LCB5MTogMiwgeDI6IDgsIHkyOiA2IH0sXG4gICAgICB7IHgxOiAzLCB5MTogMTAsIHgyOiAyMSwgeTI6IDEwIH1cbiAgICBdXG4gIH0sXG4gICdjYWxlbmRhcic6IHtcbiAgICByZWN0czogW3sgeDogMywgeTogNCwgd2lkdGg6IDE4LCBoZWlnaHQ6IDE4LCByeDogMyB9XSxcbiAgICBsaW5lczogW1xuICAgICAgeyB4MTogMTYsIHkxOiAyLCB4MjogMTYsIHkyOiA2IH0sXG4gICAgICB7IHgxOiA4LCB5MTogMiwgeDI6IDgsIHkyOiA2IH0sXG4gICAgICB7IHgxOiAzLCB5MTogMTAsIHgyOiAyMSwgeTI6IDEwIH1cbiAgICBdXG4gIH0sXG4gICdjYWxlbmRhci10b2RheSc6IHtcbiAgICByZWN0czogW3sgeDogMywgeTogNCwgd2lkdGg6IDE4LCBoZWlnaHQ6IDE4LCByeDogMyB9XSxcbiAgICBsaW5lczogW1xuICAgICAgeyB4MTogMTYsIHkxOiAyLCB4MjogMTYsIHkyOiA2IH0sXG4gICAgICB7IHgxOiA4LCB5MTogMiwgeDI6IDgsIHkyOiA2IH0sXG4gICAgICB7IHgxOiAzLCB5MTogMTAsIHgyOiAyMSwgeTI6IDEwIH1cbiAgICBdXG4gIH0sXG5cbiAgLy8gTnVtYmVyIC8gSGFzaFxuICAnbnVtYmVyJzoge1xuICAgIGxpbmVzOiBbXG4gICAgICB7IHgxOiA0LCB5MTogOSwgeDI6IDIwLCB5MjogOSB9LFxuICAgICAgeyB4MTogNCwgeTE6IDE1LCB4MjogMjAsIHkyOiAxNSB9LFxuICAgICAgeyB4MTogMTAsIHkxOiAzLCB4MjogOCwgeTI6IDIxIH0sXG4gICAgICB7IHgxOiAxNiwgeTE6IDMsIHgyOiAxNCwgeTI6IDIxIH1cbiAgICBdXG4gIH0sXG5cbiAgLy8gQ2hlY2tib3hcbiAgJ2NoZWNrYm94Jzoge1xuICAgIHJlY3RzOiBbeyB4OiAzLCB5OiAzLCB3aWR0aDogMTgsIGhlaWdodDogMTgsIHJ4OiA0IH1dLFxuICAgIHBvbHlsaW5lczogWyc5IDEyIDExIDE0IDE1IDEwJ11cbiAgfSxcblxuICAvLyBCdXR0b25cbiAgJ2J1dHRvbic6IHtcbiAgICByZWN0czogW3sgeDogMywgeTogNywgd2lkdGg6IDE4LCBoZWlnaHQ6IDEwLCByeDogNCB9XSxcbiAgICBsaW5lczogW3sgeDE6IDgsIHkxOiAxMiwgeDI6IDE2LCB5MjogMTIgfV1cbiAgfSxcblxuICAvLyBLUEkgJiBUcmVuZHNcbiAgJ2twaSc6IHtcbiAgICBwYXRoczogWydNMjIgMTJoLTRsLTMgOUw5IDNsLTMgOUgyJ11cbiAgfSxcbiAgJ21vbml0b3JpbmcnOiB7XG4gICAgcGF0aHM6IFsnTTIyIDEyaC00bC0zIDlMOSAzbC0zIDlIMiddXG4gIH0sXG4gICd0cmVuZC11cCc6IHtcbiAgICBwb2x5bGluZXM6IFsnMjMgNiAxMy41IDE1LjUgOC41IDEwLjUgMSAxOCcsICcxNyA2IDIzIDYgMjMgMTInXVxuICB9LFxuICAndHJlbmQtZG93bic6IHtcbiAgICBwb2x5bGluZXM6IFsnMjMgMTggMTMuNSA4LjUgOC41IDEzLjUgMSA2JywgJzE3IDE4IDIzIDE4IDIzIDEyJ11cbiAgfSxcblxuICAvLyBDaGFydHNcbiAgJ2NoYXJ0Jzoge1xuICAgIGxpbmVzOiBbXG4gICAgICB7IHgxOiAxOCwgeTE6IDIwLCB4MjogMTgsIHkyOiAxMCB9LFxuICAgICAgeyB4MTogMTIsIHkxOiAyMCwgeDI6IDEyLCB5MjogNCB9LFxuICAgICAgeyB4MTogNiwgeTE6IDIwLCB4MjogNiwgeTI6IDE0IH1cbiAgICBdXG4gIH0sXG4gICdjaGFydC1iYXInOiB7XG4gICAgbGluZXM6IFtcbiAgICAgIHsgeDE6IDE4LCB5MTogMjAsIHgyOiAxOCwgeTI6IDEwIH0sXG4gICAgICB7IHgxOiAxMiwgeTE6IDIwLCB4MjogMTIsIHkyOiA0IH0sXG4gICAgICB7IHgxOiA2LCB5MTogMjAsIHgyOiA2LCB5MjogMTQgfVxuICAgIF1cbiAgfSxcbiAgJ2Jhci1jaGFydCc6IHtcbiAgICBsaW5lczogW1xuICAgICAgeyB4MTogMTgsIHkxOiAyMCwgeDI6IDE4LCB5MjogMTAgfSxcbiAgICAgIHsgeDE6IDEyLCB5MTogMjAsIHgyOiAxMiwgeTI6IDQgfSxcbiAgICAgIHsgeDE6IDYsIHkxOiAyMCwgeDI6IDYsIHkyOiAxNCB9XG4gICAgXVxuICB9LFxuICAnY2hhcnQtbGluZSc6IHtcbiAgICBwb2x5bGluZXM6IFsnMjIgMTIgMTggMTIgMTUgMjEgOSAzIDYgMTIgMiAxMiddXG4gIH0sXG4gICdjaGFydC1kb251dCc6IHtcbiAgICBjaXJjbGVzOiBbXG4gICAgICB7IGN4OiAxMiwgY3k6IDEyLCByOiAxMCB9LFxuICAgICAgeyBjeDogMTIsIGN5OiAxMiwgcjogNCB9XG4gICAgXVxuICB9LFxuXG4gIC8vIEdyaWQgLyBUYWJsZSAvIExheW91dFxuICAnZ3JpZCc6IHtcbiAgICByZWN0czogW3sgeDogMywgeTogMywgd2lkdGg6IDE4LCBoZWlnaHQ6IDE4LCByeDogMyB9XSxcbiAgICBsaW5lczogW1xuICAgICAgeyB4MTogMywgeTE6IDksIHgyOiAyMSwgeTI6IDkgfSxcbiAgICAgIHsgeDE6IDMsIHkxOiAxNSwgeDI6IDIxLCB5MjogMTUgfSxcbiAgICAgIHsgeDE6IDksIHkxOiAzLCB4MjogOSwgeTI6IDIxIH0sXG4gICAgICB7IHgxOiAxNSwgeTE6IDMsIHgyOiAxNSwgeTI6IDIxIH1cbiAgICBdXG4gIH0sXG4gICdkYXRhYmFzZSc6IHtcbiAgICBwYXRoczogW1xuICAgICAgJ00zIDVjMC0xLjY1NyA0LjAzLTMgOS0zczkgMS4zNDMgOSAzdjE0YzAgMS42NTctNC4wMyAzLTkgM3MtOS0xLjM0My05LTNWNXonLFxuICAgICAgJ00zIDEyYzAgMS42NTcgNC4wMyAzIDkgM3M5LTEuMzQzIDktMydcbiAgICBdXG4gIH0sXG4gICd0YWJsZSc6IHtcbiAgICByZWN0czogW3sgeDogMywgeTogMywgd2lkdGg6IDE4LCBoZWlnaHQ6IDE4LCByeDogMyB9XSxcbiAgICBsaW5lczogW1xuICAgICAgeyB4MTogMywgeTE6IDksIHgyOiAyMSwgeTI6IDkgfSxcbiAgICAgIHsgeDE6IDksIHkxOiA5LCB4MjogOSwgeTI6IDIxIH1cbiAgICBdXG4gIH0sXG4gICdsYXlvdXQnOiB7XG4gICAgcmVjdHM6IFt7IHg6IDMsIHk6IDMsIHdpZHRoOiAxOCwgaGVpZ2h0OiAxOCwgcng6IDMgfV0sXG4gICAgbGluZXM6IFtcbiAgICAgIHsgeDE6IDMsIHkxOiA5LCB4MjogMjEsIHkyOiA5IH0sXG4gICAgICB7IHgxOiA5LCB5MTogMjEsIHgyOiA5LCB5MjogOSB9XG4gICAgXVxuICB9LFxuICAnbGlzdCc6IHtcbiAgICBsaW5lczogW1xuICAgICAgeyB4MTogOCwgeTE6IDYsIHgyOiAyMSwgeTI6IDYgfSxcbiAgICAgIHsgeDE6IDgsIHkxOiAxMiwgeDI6IDIxLCB5MjogMTIgfSxcbiAgICAgIHsgeDE6IDgsIHkxOiAxOCwgeDI6IDIxLCB5MjogMTggfSxcbiAgICAgIHsgeDE6IDMsIHkxOiA2LCB4MjogNCwgeTI6IDYgfSxcbiAgICAgIHsgeDE6IDMsIHkxOiAxMiwgeDI6IDQsIHkyOiAxMiB9LFxuICAgICAgeyB4MTogMywgeTE6IDE4LCB4MjogNCwgeTI6IDE4IH1cbiAgICBdXG4gIH0sXG5cbiAgLy8gU2VsZWN0aW9uIC8gQ3Vyc29yXG4gICdjdXJzb3InOiB7XG4gICAgcGF0aHM6IFsnTTMgM2w3LjA3IDE2Ljk3IDIuNTEtNy4zOSA3LjM5LTIuNTFMMyAzeiddLFxuICAgIGxpbmVzOiBbeyB4MTogMTMsIHkxOiAxMywgeDI6IDE5LCB5MjogMTkgfV1cbiAgfSxcbiAgJ21vdXNlLXBvaW50ZXInOiB7XG4gICAgcGF0aHM6IFsnTTMgM2w3LjA3IDE2Ljk3IDIuNTEtNy4zOSA3LjM5LTIuNTFMMyAzeiddLFxuICAgIGxpbmVzOiBbeyB4MTogMTMsIHkxOiAxMywgeDI6IDE5LCB5MjogMTkgfV1cbiAgfSxcblxuICAvLyBBbGVydCAvIFdhcm5pbmdcbiAgJ3dhcm5pbmcnOiB7XG4gICAgcGF0aHM6IFsnTTEwLjI5IDMuODZMMS44MiAxOGEyIDIgMCAwIDAgMS43MSAzaDE2Ljk0YTIgMiAwIDAgMCAxLjcxLTNMMTMuNzEgMy44NmEyIDIgMCAwIDAtMy40MiAweiddLFxuICAgIGxpbmVzOiBbeyB4MTogMTIsIHkxOiA5LCB4MjogMTIsIHkyOiAxMyB9LCB7IHgxOiAxMiwgeTE6IDE3LCB4MjogMTIuMDEsIHkyOiAxNyB9XVxuICB9LFxuICAnYWxlcnQtdHJpYW5nbGUnOiB7XG4gICAgcGF0aHM6IFsnTTEwLjI5IDMuODZMMS44MiAxOGEyIDIgMCAwIDAgMS43MSAzaDE2Ljk0YTIgMiAwIDAgMCAxLjcxLTNMMTMuNzEgMy44NmEyIDIgMCAwIDAtMy40MiAweiddLFxuICAgIGxpbmVzOiBbeyB4MTogMTIsIHkxOiA5LCB4MjogMTIsIHkyOiAxMyB9LCB7IHgxOiAxMiwgeTE6IDE3LCB4MjogMTIuMDEsIHkyOiAxNyB9XVxuICB9LFxuXG4gIC8vIEFjdGlvbnNcbiAgJ3VuZG8nOiB7XG4gICAgcGF0aHM6IFsnTTMgN3Y2aDYnLCAnTTIxIDE3YTkgOSAwIDAgMC05LTkgOSA5IDAgMCAwLTYgMi4zTDMgMTMnXVxuICB9LFxuICAncmVkbyc6IHtcbiAgICBwYXRoczogWydNMjEgN3Y2aC02JywgJ00zIDE3YTkgOSAwIDAgMSA5LTkgOSA5IDAgMCAxIDYgMi4zTDIxIDEzJ11cbiAgfSxcbiAgJ3NhdmUnOiB7XG4gICAgcGF0aHM6IFtcbiAgICAgICdNMTkgMjFINWEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmgxMWw1IDV2MTFhMiAyIDAgMCAxLTIgMnonLFxuICAgICAgJ00xNyAyMXYtOEg3djgnLFxuICAgICAgJ003IDN2NWg4J1xuICAgIF1cbiAgfSxcbiAgJ2Rvd25sb2FkJzoge1xuICAgIHBhdGhzOiBbXG4gICAgICAnTTIxIDE1djRhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJ2LTQnLFxuICAgICAgJ003IDEwbDUgNSA1LTUnLFxuICAgICAgJ00xMiAxNVYzJ1xuICAgIF1cbiAgfSxcbiAgJ2V4cG9ydCc6IHtcbiAgICBwYXRoczogW1xuICAgICAgJ00yMSAxNXY0YTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0ydi00JyxcbiAgICAgICdNNyAxMGw1IDUgNS01JyxcbiAgICAgICdNMTIgMTVWMydcbiAgICBdXG4gIH0sXG4gICdzZWFyY2gnOiB7XG4gICAgY2lyY2xlczogW3sgY3g6IDExLCBjeTogMTEsIHI6IDggfV0sXG4gICAgbGluZXM6IFt7IHgxOiAyMSwgeTE6IDIxLCB4MjogMTYuNjUsIHkyOiAxNi42NSB9XVxuICB9LFxuICAnZmlsdGVyJzoge1xuICAgIHBvbHlsaW5lczogWycyMiAzIDIgMyAxMCAxMi40NiAxMCAxOSAxNCAyMSAxNCAxMi40NiAyMiAzJ11cbiAgfSxcbiAgJ2NvcHknOiB7XG4gICAgcmVjdHM6IFt7IHg6IDksIHk6IDksIHdpZHRoOiAxMywgaGVpZ2h0OiAxMywgcng6IDIgfV0sXG4gICAgcGF0aHM6IFsnTTUgMTVINGEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg5YTIgMiAwIDAgMSAyIDJ2MSddXG4gIH0sXG4gICdkdXBsaWNhdGUnOiB7XG4gICAgcmVjdHM6IFt7IHg6IDksIHk6IDksIHdpZHRoOiAxMywgaGVpZ2h0OiAxMywgcng6IDIgfV0sXG4gICAgcGF0aHM6IFsnTTUgMTVINGEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg5YTIgMiAwIDAgMSAyIDJ2MSddXG4gIH0sXG4gICd0cmFzaCc6IHtcbiAgICBwYXRoczogW1xuICAgICAgJ00zIDZoMTgnLFxuICAgICAgJ00xOSA2djE0YTIgMiAwIDAgMS0yIDJIN2EyIDIgMCAwIDEtMi0yVjZtMyAwVjRhMiAyIDAgMCAxIDItMmg0YTIgMiAwIDAgMSAyIDJ2MicsXG4gICAgICAnTTEwIDExdjYnLFxuICAgICAgJ00xNCAxMXY2J1xuICAgIF1cbiAgfSxcbiAgJ2RlbGV0ZSc6IHtcbiAgICBwYXRoczogW1xuICAgICAgJ00zIDZoMTgnLFxuICAgICAgJ00xOSA2djE0YTIgMiAwIDAgMS0yIDJIN2EyIDIgMCAwIDEtMi0yVjZtMyAwVjRhMiAyIDAgMCAxIDItMmg0YTIgMiAwIDAgMSAyIDJ2MidcbiAgICBdXG4gIH0sXG4gICdzZXR0aW5ncyc6IHtcbiAgICBjaXJjbGVzOiBbeyBjeDogMTIsIGN5OiAxMiwgcjogMyB9XSxcbiAgICBwYXRoczogW1xuICAgICAgJ00xOS40IDE1YTEuNjUgMS42NSAwIDAgMCAuMzMgMS44MmwuMDYuMDZhMiAyIDAgMCAxIDAgMi44MyAyIDIgMCAwIDEtMi44MyAwbC0uMDYtLjA2YTEuNjUgMS42NSAwIDAgMC0xLjgyLS4zMyAxLjY1IDEuNjUgMCAwIDAtMSAxLjUxVjIxYTIgMiAwIDAgMS0yIDIgMiAyIDAgMCAxLTItMnYtLjA5QTEuNjUgMS42NSAwIDAgMCA5IDE5LjRhMS42NSAxLjY1IDAgMCAwLTEuODIuMzNsLS4wNi4wNmEyIDIgMCAwIDEtMi44MyAwIDIgMiAwIDAgMSAwLTIuODNsLjA2LS4wNmExLjY1IDEuNjUgMCAwIDAgLjMzLTEuODIgMS42NSAxLjY1IDAgMCAwLTEuNTEtMUgzYTIgMiAwIDAgMS0yLTIgMiAyIDAgMCAxIDItMmguMDlBMS42NSAxLjY1IDAgMCAwIDQuNiA5YTEuNjUgMS42NSAwIDAgMC0uMzMtMS44MmwtLjA2LS4wNmEyIDIgMCAwIDEgMC0yLjgzIDIgMiAwIDAgMSAyLjgzIDBsLjA2LjA2YTEuNjUgMS42NSAwIDAgMCAxLjgyLjMzSDlhMS42NSAxLjY1IDAgMCAwIDEtMS41MVYzYTIgMiAwIDAgMSAyLTIgMiAyIDAgMCAxIDIgMnYuMDlhMS42NSAxLjY1IDAgMCAwIDEgMS41MSAxLjY1IDEuNjUgMCAwIDAgMS44Mi0uMzNsLjA2LS4wNmEyIDIgMCAwIDEgMi44MyAwIDIgMiAwIDAgMSAwIDIuODNsLS4wNi4wNmExLjY1IDEuNjUgMCAwIDAtLjMzIDEuODJWOWExLjY1IDEuNjUgMCAwIDAgMS41MSAxSDIxYTIgMiAwIDAgMSAyIDIgMiAyIDAgMCAxLTIgMmgtLjA5YTEuNjUgMS42NSAwIDAgMC0xLjUxIDF6J1xuICAgIF1cbiAgfSxcbiAgJ2dlYXInOiB7XG4gICAgY2lyY2xlczogW3sgY3g6IDEyLCBjeTogMTIsIHI6IDMgfV0sXG4gICAgcGF0aHM6IFtcbiAgICAgICdNMTkuNCAxNWExLjY1IDEuNjUgMCAwIDAgLjMzIDEuODJsLjA2LjA2YTIgMiAwIDAgMSAwIDIuODMgMiAyIDAgMCAxLTIuODMgMGwtLjA2LS4wNmExLjY1IDEuNjUgMCAwIDAtMS44Mi0uMzMgMS42NSAxLjY1IDAgMCAwLTEgMS41MVYyMWEyIDIgMCAwIDEtMiAyIDIgMiAwIDAgMS0yLTJ2LS4wOUExLjY1IDEuNjUgMCAwIDAgOSAxOS40YTEuNjUgMS42NSAwIDAgMC0xLjgyLjMzbC0uMDYuMDZhMiAyIDAgMCAxLTIuODMgMCAyIDIgMCAwIDEgMC0yLjgzbC4wNi0uMDZhMS42NSAxLjY1IDAgMCAwIC4zMy0xLjgyIDEuNjUgMS42NSAwIDAgMC0xLjUxLTFIM2EyIDIgMCAwIDEtMi0yIDIgMiAwIDAgMSAyLTJoLjA5QTEuNjUgMS42NSAwIDAgMCA0LjYgOWExLjY1IDEuNjUgMCAwIDAtLjMzLTEuODJsLS4wNi0uMDZhMiAyIDAgMCAxIDAtMi44MyAyIDIgMCAwIDEgMi44MyAwbC4wNi4wNmExLjY1IDEuNjUgMCAwIDAgMS44Mi4zM0g5YTEuNjUgMS42NSAwIDAgMCAxLTEuNTFWM2EyIDIgMCAwIDEgMi0yIDIgMiAwIDAgMSAyIDJ2LjA5YTEuNjUgMS42NSAwIDAgMCAxIDEuNTEgMS42NSAxLjY1IDAgMCAwIDEuODItLjMzbC4wNi0uMDZhMiAyIDAgMCAxIDIuODMgMCAyIDIgMCAwIDEgMCAyLjgzbC0uMDYuMDZhMS42NSAxLjY1IDAgMCAwLS4zMyAxLjgyVjlhMS42NSAxLjY1IDAgMCAwIDEuNTEgMUgyMWEyIDIgMCAwIDEgMiAyIDIgMiAwIDAgMS0yIDJoLS4wOWExLjY1IDEuNjUgMCAwIDAtMS41MSAxeidcbiAgICBdXG4gIH0sXG4gICdleWUnOiB7XG4gICAgcGF0aHM6IFsnTTEgMTJzNC04IDExLTggMTEgOCAxMSA4LTQgOC0xMSA4LTExLTgtMTEtOHonXSxcbiAgICBjaXJjbGVzOiBbeyBjeDogMTIsIGN5OiAxMiwgcjogMyB9XVxuICB9LFxuICAncHJldmlldyc6IHtcbiAgICBwYXRoczogWydNMSAxMnM0LTggMTEtOCAxMSA4IDExIDgtNCA4LTExIDgtMTEtOC0xMS04eiddLFxuICAgIGNpcmNsZXM6IFt7IGN4OiAxMiwgY3k6IDEyLCByOiAzIH1dXG4gIH0sXG4gICdjb2RlJzoge1xuICAgIHBvbHlsaW5lczogWycxNiAxOCAyMiAxMiAxNiA2JywgJzggNiAyIDEyIDggMTgnXVxuICB9LFxuICAnanNvbic6IHtcbiAgICBwb2x5bGluZXM6IFsnMTYgMTggMjIgMTIgMTYgNicsICc4IDYgMiAxMiA4IDE4J11cbiAgfSxcblxuICAvLyBOYXZpZ2F0aW9uICYgRGlyZWN0aW9uXG4gICdhcnJvdy1sZWZ0Jzoge1xuICAgIGxpbmVzOiBbeyB4MTogMTksIHkxOiAxMiwgeDI6IDUsIHkyOiAxMiB9XSxcbiAgICBwb2x5bGluZXM6IFsnMTIgMTkgNSAxMiAxMiA1J11cbiAgfSxcbiAgJ2Fycm93LXJpZ2h0Jzoge1xuICAgIGxpbmVzOiBbeyB4MTogNSwgeTE6IDEyLCB4MjogMTksIHkyOiAxMiB9XSxcbiAgICBwb2x5bGluZXM6IFsnMTIgNSAxOSAxMiAxMiAxOSddXG4gIH0sXG4gICdhcnJvdy11cCc6IHtcbiAgICBsaW5lczogW3sgeDE6IDEyLCB5MTogMTksIHgyOiAxMiwgeTI6IDUgfV0sXG4gICAgcG9seWxpbmVzOiBbJzUgMTIgMTIgNSAxOSAxMiddXG4gIH0sXG4gICdhcnJvdy1kb3duJzoge1xuICAgIGxpbmVzOiBbeyB4MTogMTIsIHkxOiA1LCB4MjogMTIsIHkyOiAxOSB9XSxcbiAgICBwb2x5bGluZXM6IFsnMTkgMTIgMTIgMTkgNSAxMiddXG4gIH0sXG4gICdjb3JuZXItZG93bi1yaWdodCc6IHtcbiAgICBwb2x5bGluZXM6IFsnMTUgMTAgMjAgMTUgMTUgMjAnXSxcbiAgICBwYXRoczogWydNNCA0djdhNCA0IDAgMCAwIDQgNGgxMiddXG4gIH0sXG4gICduZXctcm93Jzoge1xuICAgIHBvbHlsaW5lczogWycxNSAxMCAyMCAxNSAxNSAyMCddLFxuICAgIHBhdGhzOiBbJ000IDR2N2E0IDQgMCAwIDAgNCA0aDEyJ11cbiAgfSxcblxuICAvLyBHZW5lcmFsIFN0YXR1cyAmIENvbW1vblxuICAnY2hlY2snOiB7XG4gICAgcG9seWxpbmVzOiBbJzIwIDYgOSAxNyA0IDEyJ11cbiAgfSxcbiAgJ2Nsb3NlJzoge1xuICAgIGxpbmVzOiBbXG4gICAgICB7IHgxOiAxOCwgeTE6IDYsIHgyOiA2LCB5MjogMTggfSxcbiAgICAgIHsgeDE6IDYsIHkxOiA2LCB4MjogMTgsIHkyOiAxOCB9XG4gICAgXVxuICB9LFxuICAncGx1cyc6IHtcbiAgICBsaW5lczogW1xuICAgICAgeyB4MTogMTIsIHkxOiA1LCB4MjogMTIsIHkyOiAxOSB9LFxuICAgICAgeyB4MTogNSwgeTE6IDEyLCB4MjogMTksIHkyOiAxMiB9XG4gICAgXVxuICB9LFxuICAnbWludXMnOiB7XG4gICAgbGluZXM6IFt7IHgxOiA1LCB5MTogMTIsIHgyOiAxOSwgeTI6IDEyIH1dXG4gIH0sXG4gICdkb2xsYXInOiB7XG4gICAgbGluZXM6IFt7IHgxOiAxMiwgeTE6IDEsIHgyOiAxMiwgeTI6IDIzIH1dLFxuICAgIHBhdGhzOiBbJ00xNyA1SDkuNWEzLjUgMy41IDAgMCAwIDAgN2g1YTMuNSAzLjUgMCAwIDEgMCA3SDYnXVxuICB9LFxuICAnY2xvY2snOiB7XG4gICAgY2lyY2xlczogW3sgY3g6IDEyLCBjeTogMTIsIHI6IDEwIH1dLFxuICAgIHBvbHlsaW5lczogWycxMiA2IDEyIDEyIDE2IDE0J11cbiAgfSxcbiAgJ2JveCc6IHtcbiAgICBwYXRoczogW1xuICAgICAgJ00yMSAxNlY4YTIgMiAwIDAgMC0xLTEuNzNsLTctNGEyIDIgMCAwIDAtMiAwbC03IDRBMiAyIDAgMCAwIDMgOHY4YTIgMiAwIDAgMCAxIDEuNzNsNyA0YTIgMiAwIDAgMCAyIDBsNy00QTIgMiAwIDAgMCAyMSAxNnonLFxuICAgICAgJ00zLjI3IDYuOTZMMTIgMTIuMDFsOC43My01LjA1JyxcbiAgICAgICdNMTIgMjIuMDhWMTInXG4gICAgXVxuICB9LFxuICAnbGlnaHRuaW5nJzoge1xuICAgIHBvbHlsaW5lczogWycxMyAyIDMgMTQgMTIgMTQgMTEgMjIgMjEgMTAgMTIgMTAgMTMgMiddXG4gIH0sXG4gICdsaW5rJzoge1xuICAgIHBhdGhzOiBbXG4gICAgICAnTTEwIDEzYTUgNSAwIDAgMCA3LjU0LjU0bDMtM2E1IDUgMCAwIDAtNy4wNy03LjA3bC0xLjcyIDEuNzEnLFxuICAgICAgJ00xNCAxMWE1IDUgMCAwIDAtNy41NC0uNTRsLTMgM2E1IDUgMCAwIDAgNy4wNyA3LjA3bDEuNzEtMS43MSdcbiAgICBdXG4gIH0sXG4gICd1c2VyJzoge1xuICAgIHBhdGhzOiBbJ00yMCAyMXYtMmE0IDQgMCAwIDAtNC00SDhhNCA0IDAgMCAwLTQgNHYyJ10sXG4gICAgY2lyY2xlczogW3sgY3g6IDEyLCBjeTogNywgcjogNCB9XVxuICB9LFxuICAnc2xpZGVycyc6IHtcbiAgICBsaW5lczogW1xuICAgICAgeyB4MTogNCwgeTE6IDIxLCB4MjogNCwgeTI6IDE0IH0sXG4gICAgICB7IHgxOiA0LCB5MTogMTAsIHgyOiA0LCB5MjogMyB9LFxuICAgICAgeyB4MTogMTIsIHkxOiAyMSwgeDI6IDEyLCB5MjogMTIgfSxcbiAgICAgIHsgeDE6IDEyLCB5MTogOCwgeDI6IDEyLCB5MjogMyB9LFxuICAgICAgeyB4MTogMjAsIHkxOiAyMSwgeDI6IDIwLCB5MjogMTYgfSxcbiAgICAgIHsgeDE6IDIwLCB5MTogMTIsIHgyOiAyMCwgeTI6IDMgfSxcbiAgICAgIHsgeDE6IDEsIHkxOiAxNCwgeDI6IDcsIHkyOiAxNCB9LFxuICAgICAgeyB4MTogOSwgeTE6IDgsIHgyOiAxNSwgeTI6IDggfSxcbiAgICAgIHsgeDE6IDE3LCB5MTogMTYsIHgyOiAyMywgeTI6IDE2IH1cbiAgICBdXG4gIH0sXG4gICdzcGFya2xlcyc6IHtcbiAgICBwYXRoczogW1xuICAgICAgJ00xMiAzdjNtMCAxMnYzTTMgMTJoM20xMiAwaDNNNS42IDUuNmwyLjEgMi4xbTguNiA4LjZsMi4xIDIuMU01LjYgMTguNGwyLjEtMi4xbTguNi04LjZsMi4xLTIuMSdcbiAgICBdXG4gIH1cbn07XG4iXX0=
@@ -0,0 +1,10 @@
1
+ export { RptInputComponent } from './input/rpt-input.component';
2
+ export { RptDropdownComponent } from './dropdown/rpt-dropdown.component';
3
+ export { RptDateComponent } from './date/rpt-date.component';
4
+ export { RptNumberComponent } from './number/rpt-number.component';
5
+ export { RptCheckboxComponent } from './checkbox/rpt-checkbox.component';
6
+ export { RptButtonComponent } from './button/rpt-button.component';
7
+ export { RptKpiCardComponent } from './kpi-card/rpt-kpi-card.component';
8
+ export { ReportChartBridgeComponent } from './chart-bridge/report-chart-bridge.component';
9
+ export { RptIconComponent } from './icon/rpt-icon.component';
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9id2F5cy1yZXBvcnQvc3JjL2xpYi9wcmltaXRpdmVzL2NvbXBvbmVudHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDaEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFekUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbkUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDekUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbkUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFeEUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFFMUYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBScHRJbnB1dENvbXBvbmVudCB9IGZyb20gJy4vaW5wdXQvcnB0LWlucHV0LmNvbXBvbmVudCc7XG5leHBvcnQgeyBScHREcm9wZG93bkNvbXBvbmVudCB9IGZyb20gJy4vZHJvcGRvd24vcnB0LWRyb3Bkb3duLmNvbXBvbmVudCc7XG5leHBvcnQgdHlwZSB7IERyb3Bkb3duT3B0aW9uIH0gZnJvbSAnLi9kcm9wZG93bi9ycHQtZHJvcGRvd24uY29tcG9uZW50JztcbmV4cG9ydCB7IFJwdERhdGVDb21wb25lbnQgfSBmcm9tICcuL2RhdGUvcnB0LWRhdGUuY29tcG9uZW50JztcbmV4cG9ydCB7IFJwdE51bWJlckNvbXBvbmVudCB9IGZyb20gJy4vbnVtYmVyL3JwdC1udW1iZXIuY29tcG9uZW50JztcbmV4cG9ydCB7IFJwdENoZWNrYm94Q29tcG9uZW50IH0gZnJvbSAnLi9jaGVja2JveC9ycHQtY2hlY2tib3guY29tcG9uZW50JztcbmV4cG9ydCB7IFJwdEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4vYnV0dG9uL3JwdC1idXR0b24uY29tcG9uZW50JztcbmV4cG9ydCB7IFJwdEtwaUNhcmRDb21wb25lbnQgfSBmcm9tICcuL2twaS1jYXJkL3JwdC1rcGktY2FyZC5jb21wb25lbnQnO1xuZXhwb3J0IHR5cGUgeyBLcGlUaGVtZSwgVHJlbmREaXJlY3Rpb24gfSBmcm9tICcuL2twaS1jYXJkL3JwdC1rcGktY2FyZC5jb21wb25lbnQnO1xuZXhwb3J0IHsgUmVwb3J0Q2hhcnRCcmlkZ2VDb21wb25lbnQgfSBmcm9tICcuL2NoYXJ0LWJyaWRnZS9yZXBvcnQtY2hhcnQtYnJpZGdlLmNvbXBvbmVudCc7XG5leHBvcnQgdHlwZSB7IENoYXJ0RGF0YUl0ZW0sIENoYXJ0VHlwZSB9IGZyb20gJy4vY2hhcnQtYnJpZGdlL3JlcG9ydC1jaGFydC1icmlkZ2UuY29tcG9uZW50JztcbmV4cG9ydCB7IFJwdEljb25Db21wb25lbnQgfSBmcm9tICcuL2ljb24vcnB0LWljb24uY29tcG9uZW50JztcblxuXG4iXX0=