@flogeez/angular-tiptap-editor 2.4.0 → 2.4.1

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 (104) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/esm2022/flogeez-angular-tiptap-editor.mjs +5 -0
  3. package/esm2022/lib/ate-editor.provider.mjs +38 -0
  4. package/esm2022/lib/components/bubble-menus/base/ate-base-bubble-menu.mjs +207 -0
  5. package/esm2022/lib/components/bubble-menus/base/ate-base-sub-bubble-menu.mjs +133 -0
  6. package/esm2022/lib/components/bubble-menus/color/ate-color-bubble-menu.component.mjs +365 -0
  7. package/esm2022/lib/components/bubble-menus/image/ate-image-bubble-menu.component.mjs +226 -0
  8. package/esm2022/lib/components/bubble-menus/link/ate-link-bubble-menu.component.mjs +247 -0
  9. package/esm2022/lib/components/bubble-menus/table/ate-cell-bubble-menu.component.mjs +121 -0
  10. package/esm2022/lib/components/bubble-menus/table/ate-table-bubble-menu.component.mjs +266 -0
  11. package/esm2022/lib/components/bubble-menus/text/ate-bubble-menu.component.mjs +294 -0
  12. package/esm2022/lib/components/color-picker/ate-color-picker.component.mjs +122 -0
  13. package/esm2022/lib/components/edit-toggle/ate-edit-toggle.component.mjs +42 -0
  14. package/esm2022/lib/components/editor/angular-tiptap-editor.component.mjs +953 -0
  15. package/esm2022/lib/components/slash-commands/ate-slash-commands.component.mjs +329 -0
  16. package/esm2022/lib/components/toolbar/ate-toolbar.component.mjs +531 -0
  17. package/esm2022/lib/components/ui/ate-button.component.mjs +90 -0
  18. package/esm2022/lib/components/ui/ate-separator.component.mjs +31 -0
  19. package/esm2022/lib/config/ate-editor.config.mjs +76 -0
  20. package/esm2022/lib/config/ate-global-config.token.mjs +6 -0
  21. package/esm2022/lib/config/ate-slash-commands.config.mjs +130 -0
  22. package/esm2022/lib/directives/ate-noop-value-accessor.directive.mjs +40 -0
  23. package/esm2022/lib/extensions/ate-link-click-behavior.extension.mjs +32 -0
  24. package/esm2022/lib/extensions/ate-resizable-image.extension.mjs +270 -0
  25. package/esm2022/lib/extensions/ate-table.extension.mjs +29 -0
  26. package/esm2022/lib/extensions/ate-tiptap-state.extension.mjs +85 -0
  27. package/esm2022/lib/extensions/ate-upload-progress.extension.mjs +195 -0
  28. package/esm2022/lib/extensions/calculators/ate-discovery.calculator.mjs +62 -0
  29. package/esm2022/lib/extensions/calculators/ate-image.calculator.mjs +8 -0
  30. package/esm2022/lib/extensions/calculators/ate-marks.calculator.mjs +75 -0
  31. package/esm2022/lib/extensions/calculators/ate-selection.calculator.mjs +35 -0
  32. package/esm2022/lib/extensions/calculators/ate-structure.calculator.mjs +34 -0
  33. package/esm2022/lib/extensions/calculators/ate-table.calculator.mjs +38 -0
  34. package/esm2022/lib/models/ate-bubble-menu.model.mjs +49 -0
  35. package/esm2022/lib/models/ate-editor-config.model.mjs +2 -0
  36. package/esm2022/lib/models/ate-editor-state.model.mjs +90 -0
  37. package/esm2022/lib/models/ate-image.model.mjs +2 -0
  38. package/esm2022/lib/models/ate-toolbar.model.mjs +35 -0
  39. package/esm2022/lib/node-view/ate-angular-node-view.mjs +97 -0
  40. package/esm2022/lib/node-view/ate-injector.registry.mjs +16 -0
  41. package/esm2022/lib/node-view/ate-node-view.factory.mjs +125 -0
  42. package/esm2022/lib/node-view/ate-node-view.models.mjs +2 -0
  43. package/esm2022/lib/node-view/ate-node-view.renderer.mjs +154 -0
  44. package/esm2022/lib/node-view/ate-register-angular-component.mjs +49 -0
  45. package/esm2022/lib/services/ate-color-picker.service.mjs +193 -0
  46. package/esm2022/lib/services/ate-editor-commands.service.mjs +465 -0
  47. package/esm2022/lib/services/ate-i18n.service.mjs +410 -0
  48. package/esm2022/lib/services/ate-image.service.mjs +368 -0
  49. package/esm2022/lib/services/ate-link.service.mjs +97 -0
  50. package/esm2022/lib/utils/ate-color.utils.mjs +60 -0
  51. package/esm2022/public-api.mjs +93 -0
  52. package/fesm2022/flogeez-angular-tiptap-editor.mjs +313 -346
  53. package/fesm2022/flogeez-angular-tiptap-editor.mjs.map +1 -1
  54. package/index.d.ts +3 -1673
  55. package/lib/ate-editor.provider.d.ts +21 -0
  56. package/lib/components/bubble-menus/base/ate-base-bubble-menu.d.ts +71 -0
  57. package/lib/components/bubble-menus/base/ate-base-sub-bubble-menu.d.ts +60 -0
  58. package/lib/components/bubble-menus/color/ate-color-bubble-menu.component.d.ts +77 -0
  59. package/lib/components/bubble-menus/image/ate-image-bubble-menu.component.d.ts +52 -0
  60. package/lib/components/bubble-menus/link/ate-link-bubble-menu.component.d.ts +55 -0
  61. package/lib/components/bubble-menus/table/ate-cell-bubble-menu.component.d.ts +12 -0
  62. package/lib/components/bubble-menus/table/ate-table-bubble-menu.component.d.ts +24 -0
  63. package/lib/components/bubble-menus/text/ate-bubble-menu.component.d.ts +53 -0
  64. package/lib/components/color-picker/ate-color-picker.component.d.ts +54 -0
  65. package/lib/components/edit-toggle/ate-edit-toggle.component.d.ts +13 -0
  66. package/lib/components/editor/angular-tiptap-editor.component.d.ts +235 -0
  67. package/lib/components/slash-commands/ate-slash-commands.component.d.ts +43 -0
  68. package/lib/components/toolbar/ate-toolbar.component.d.ts +47 -0
  69. package/lib/components/ui/ate-button.component.d.ts +25 -0
  70. package/lib/components/ui/ate-separator.component.d.ts +7 -0
  71. package/lib/config/ate-editor.config.d.ts +7 -0
  72. package/lib/config/ate-global-config.token.d.ts +6 -0
  73. package/lib/config/ate-slash-commands.config.d.ts +41 -0
  74. package/lib/directives/ate-noop-value-accessor.directive.d.ts +13 -0
  75. package/lib/extensions/ate-link-click-behavior.extension.d.ts +2 -0
  76. package/lib/extensions/ate-resizable-image.extension.d.ts +27 -0
  77. package/lib/extensions/ate-table.extension.d.ts +2 -0
  78. package/lib/extensions/ate-tiptap-state.extension.d.ts +7 -0
  79. package/lib/extensions/ate-upload-progress.extension.d.ts +7 -0
  80. package/lib/extensions/calculators/ate-discovery.calculator.d.ts +7 -0
  81. package/lib/extensions/calculators/ate-image.calculator.d.ts +2 -0
  82. package/lib/extensions/calculators/ate-marks.calculator.d.ts +2 -0
  83. package/lib/extensions/calculators/ate-selection.calculator.d.ts +2 -0
  84. package/lib/extensions/calculators/ate-structure.calculator.d.ts +2 -0
  85. package/lib/extensions/calculators/ate-table.calculator.d.ts +2 -0
  86. package/lib/models/ate-bubble-menu.model.d.ts +33 -0
  87. package/lib/models/ate-editor-config.model.d.ts +100 -0
  88. package/lib/models/ate-editor-state.model.d.ts +109 -0
  89. package/lib/models/ate-image.model.d.ts +104 -0
  90. package/lib/models/ate-toolbar.model.d.ts +18 -0
  91. package/lib/node-view/ate-angular-node-view.d.ts +115 -0
  92. package/lib/node-view/ate-injector.registry.d.ts +3 -0
  93. package/lib/node-view/ate-node-view.factory.d.ts +10 -0
  94. package/lib/node-view/ate-node-view.models.d.ts +138 -0
  95. package/lib/node-view/ate-node-view.renderer.d.ts +23 -0
  96. package/lib/node-view/ate-register-angular-component.d.ts +35 -0
  97. package/lib/services/ate-color-picker.service.d.ts +65 -0
  98. package/lib/services/ate-editor-commands.service.d.ts +72 -0
  99. package/lib/services/ate-i18n.service.d.ts +394 -0
  100. package/lib/services/ate-image.service.d.ts +71 -0
  101. package/lib/services/ate-link.service.d.ts +42 -0
  102. package/lib/utils/ate-color.utils.d.ts +12 -0
  103. package/package.json +3 -1
  104. package/public-api.d.ts +112 -0
@@ -0,0 +1,93 @@
1
+ /*
2
+ * Public API Surface of tiptap-editor
3
+ */
4
+ // Main component & Provider
5
+ export * from "./lib/components/editor/angular-tiptap-editor.component";
6
+ export * from "./lib/ate-editor.provider";
7
+ // Host directive for FormControl integration (Required by Angular)
8
+ export * from "./lib/directives/ate-noop-value-accessor.directive";
9
+ // Services
10
+ export * from "./lib/services/ate-i18n.service";
11
+ export * from "./lib/services/ate-editor-commands.service";
12
+ export * from "./lib/services/ate-image.service";
13
+ export * from "./lib/services/ate-color-picker.service";
14
+ export * from "./lib/services/ate-link.service";
15
+ // State & Calculators (Essential for custom plugins)
16
+ export * from "./lib/models/ate-editor-state.model";
17
+ export * from "./lib/extensions/calculators/ate-discovery.calculator";
18
+ export * from "./lib/extensions/calculators/ate-image.calculator";
19
+ export * from "./lib/extensions/calculators/ate-marks.calculator";
20
+ export * from "./lib/extensions/calculators/ate-selection.calculator";
21
+ export * from "./lib/extensions/calculators/ate-structure.calculator";
22
+ export * from "./lib/extensions/calculators/ate-table.calculator";
23
+ // Types and interfaces for configuration
24
+ export * from "./lib/models/ate-toolbar.model";
25
+ export * from "./lib/models/ate-image.model";
26
+ export * from "./lib/models/ate-bubble-menu.model";
27
+ export * from "./lib/models/ate-editor-config.model";
28
+ // Default configurations
29
+ export * from "./lib/config/ate-editor.config";
30
+ export * from "./lib/config/ate-global-config.token";
31
+ // Utility functions for slash commands
32
+ export * from "./lib/config/ate-slash-commands.config";
33
+ // Angular NodeView Integration
34
+ export { AteAngularNodeView } from "./lib/node-view/ate-angular-node-view";
35
+ export { AteNodeViewRenderer } from "./lib/node-view/ate-node-view.renderer";
36
+ export { createAngularComponentExtension } from "./lib/node-view/ate-node-view.factory";
37
+ export { registerAngularComponent } from "./lib/node-view/ate-register-angular-component";
38
+ // ============================================
39
+ // Deprecated Aliases (to be removed in v3.0.0)
40
+ // ============================================
41
+ import { AteI18nService } from "./lib/services/ate-i18n.service";
42
+ import { AteEditorCommandsService } from "./lib/services/ate-editor-commands.service";
43
+ import { AteImageService } from "./lib/services/ate-image.service";
44
+ import { AteColorPickerService } from "./lib/services/ate-color-picker.service";
45
+ import { AteLinkService } from "./lib/services/ate-link.service";
46
+ import { ATE_INITIAL_EDITOR_STATE, } from "./lib/models/ate-editor-state.model";
47
+ import { ATE_SLASH_COMMAND_KEYS, ATE_DEFAULT_SLASH_COMMANDS_CONFIG, } from "./lib/config/ate-slash-commands.config";
48
+ import { AteDiscoveryCalculator } from "./lib/extensions/calculators/ate-discovery.calculator";
49
+ import { AteImageCalculator } from "./lib/extensions/calculators/ate-image.calculator";
50
+ import { AteMarksCalculator } from "./lib/extensions/calculators/ate-marks.calculator";
51
+ import { AteSelectionCalculator } from "./lib/extensions/calculators/ate-selection.calculator";
52
+ import { AteStructureCalculator } from "./lib/extensions/calculators/ate-structure.calculator";
53
+ import { AteTableCalculator } from "./lib/extensions/calculators/ate-table.calculator";
54
+ import { ATE_DEFAULT_TOOLBAR_CONFIG, ATE_DEFAULT_BUBBLE_MENU_CONFIG, ATE_DEFAULT_IMAGE_BUBBLE_MENU_CONFIG, ATE_DEFAULT_TABLE_MENU_CONFIG, ATE_DEFAULT_CELL_MENU_CONFIG, } from "./lib/config/ate-editor.config";
55
+ /** @deprecated Renamed to `AteI18nService`. This alias will be removed in v3.0.0. */
56
+ export { AteI18nService as TiptapI18nService };
57
+ /** @deprecated Renamed to `AteEditorCommandsService`. This alias will be removed in v3.0.0. */
58
+ export { AteEditorCommandsService as EditorCommandsService };
59
+ /** @deprecated Renamed to `AteImageService`. This alias will be removed in v3.0.0. */
60
+ export { AteImageService as ImageService };
61
+ /** @deprecated Renamed to `AteColorPickerService`. This alias will be removed in v3.0.0. */
62
+ export { AteColorPickerService as ColorPickerService };
63
+ /** @deprecated Renamed to `AteLinkService`. This alias will be removed in v3.0.0. */
64
+ export { AteLinkService as LinkService };
65
+ /** @deprecated Renamed to `ATE_INITIAL_EDITOR_STATE`. This alias will be removed in v3.0.0. */
66
+ export const INITIAL_EDITOR_STATE = ATE_INITIAL_EDITOR_STATE;
67
+ /** @deprecated Renamed to `ATE_SLASH_COMMAND_KEYS`. This alias will be removed in v3.0.0. */
68
+ export const SLASH_COMMAND_KEYS = ATE_SLASH_COMMAND_KEYS;
69
+ /** @deprecated Renamed to `ATE_DEFAULT_SLASH_COMMANDS_CONFIG`. This alias will be removed in v3.0.0. */
70
+ export const DEFAULT_SLASH_COMMANDS_CONFIG = ATE_DEFAULT_SLASH_COMMANDS_CONFIG;
71
+ /** @deprecated Renamed to `AteDiscoveryCalculator`. This alias will be removed in v3.0.0. */
72
+ export const DiscoveryCalculator = AteDiscoveryCalculator;
73
+ /** @deprecated Renamed to `AteImageCalculator`. This alias will be removed in v3.0.0. */
74
+ export const ImageCalculator = AteImageCalculator;
75
+ /** @deprecated Renamed to `AteMarksCalculator`. This alias will be removed in v3.0.0. */
76
+ export const MarksCalculator = AteMarksCalculator;
77
+ /** @deprecated Renamed to `AteSelectionCalculator`. This alias will be removed in v3.0.0. */
78
+ export const SelectionCalculator = AteSelectionCalculator;
79
+ /** @deprecated Renamed to `AteStructureCalculator`. This alias will be removed in v3.0.0. */
80
+ export const StructureCalculator = AteStructureCalculator;
81
+ /** @deprecated Renamed to `AteTableCalculator`. This alias will be removed in v3.0.0. */
82
+ export const TableCalculator = AteTableCalculator;
83
+ /** @deprecated Renamed to `ATE_DEFAULT_TOOLBAR_CONFIG`. This alias will be removed in v3.0.0. */
84
+ export const DEFAULT_TOOLBAR_CONFIG = ATE_DEFAULT_TOOLBAR_CONFIG;
85
+ /** @deprecated Renamed to `ATE_DEFAULT_BUBBLE_MENU_CONFIG`. This alias will be removed in v3.0.0. */
86
+ export const DEFAULT_BUBBLE_MENU_CONFIG = ATE_DEFAULT_BUBBLE_MENU_CONFIG;
87
+ /** @deprecated Renamed to `ATE_DEFAULT_IMAGE_BUBBLE_MENU_CONFIG`. This alias will be removed in v3.0.0. */
88
+ export const DEFAULT_IMAGE_BUBBLE_MENU_CONFIG = ATE_DEFAULT_IMAGE_BUBBLE_MENU_CONFIG;
89
+ /** @deprecated Renamed to `ATE_DEFAULT_TABLE_MENU_CONFIG`. This alias will be removed in v3.0.0. */
90
+ export const DEFAULT_TABLE_MENU_CONFIG = ATE_DEFAULT_TABLE_MENU_CONFIG;
91
+ /** @deprecated Renamed to `ATE_DEFAULT_CELL_MENU_CONFIG`. This alias will be removed in v3.0.0. */
92
+ export const DEFAULT_CELL_MENU_CONFIG = ATE_DEFAULT_CELL_MENU_CONFIG;
93
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdGlwdGFwLWVkaXRvci9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILDRCQUE0QjtBQUM1QixjQUFjLHlEQUF5RCxDQUFDO0FBQ3hFLGNBQWMsMkJBQTJCLENBQUM7QUFFMUMsbUVBQW1FO0FBQ25FLGNBQWMsb0RBQW9ELENBQUM7QUFFbkUsV0FBVztBQUNYLGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMseUNBQXlDLENBQUM7QUFDeEQsY0FBYyxpQ0FBaUMsQ0FBQztBQUVoRCxxREFBcUQ7QUFDckQsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLHVEQUF1RCxDQUFDO0FBQ3RFLGNBQWMsbURBQW1ELENBQUM7QUFDbEUsY0FBYyxtREFBbUQsQ0FBQztBQUNsRSxjQUFjLHVEQUF1RCxDQUFDO0FBQ3RFLGNBQWMsdURBQXVELENBQUM7QUFDdEUsY0FBYyxtREFBbUQsQ0FBQztBQUVsRSx5Q0FBeUM7QUFDekMsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyxzQ0FBc0MsQ0FBQztBQU1yRCx5QkFBeUI7QUFDekIsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxjQUFjLHNDQUFzQyxDQUFDO0FBRXJELHVDQUF1QztBQUN2QyxjQUFjLHdDQUF3QyxDQUFDO0FBS3ZELCtCQUErQjtBQUMvQixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUM3RSxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztB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Q0FBQztBQUN2RSxtR0FBbUc7QUFDbkcsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsNEJBQTRCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIHRpcHRhcC1lZGl0b3JcbiAqL1xuXG4vLyBNYWluIGNvbXBvbmVudCAmIFByb3ZpZGVyXG5leHBvcnQgKiBmcm9tIFwiLi9saWIvY29tcG9uZW50cy9lZGl0b3IvYW5ndWxhci10aXB0YXAtZWRpdG9yLmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL2F0ZS1lZGl0b3IucHJvdmlkZXJcIjtcblxuLy8gSG9zdCBkaXJlY3RpdmUgZm9yIEZvcm1Db250cm9sIGludGVncmF0aW9uIChSZXF1aXJlZCBieSBBbmd1bGFyKVxuZXhwb3J0ICogZnJvbSBcIi4vbGliL2RpcmVjdGl2ZXMvYXRlLW5vb3AtdmFsdWUtYWNjZXNzb3IuZGlyZWN0aXZlXCI7XG5cbi8vIFNlcnZpY2VzXG5leHBvcnQgKiBmcm9tIFwiLi9saWIvc2VydmljZXMvYXRlLWkxOG4uc2VydmljZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL3NlcnZpY2VzL2F0ZS1lZGl0b3ItY29tbWFuZHMuc2VydmljZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL3NlcnZpY2VzL2F0ZS1pbWFnZS5zZXJ2aWNlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvc2VydmljZXMvYXRlLWNvbG9yLXBpY2tlci5zZXJ2aWNlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvc2VydmljZXMvYXRlLWxpbmsuc2VydmljZVwiO1xuXG4vLyBTdGF0ZSAmIENhbGN1bGF0b3JzIChFc3NlbnRpYWwgZm9yIGN1c3RvbSBwbHVnaW5zKVxuZXhwb3J0ICogZnJvbSBcIi4vbGliL21vZGVscy9hdGUtZWRpdG9yLXN0YXRlLm1vZGVsXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvZXh0ZW5zaW9ucy9jYWxjdWxhdG9ycy9hdGUtZGlzY292ZXJ5LmNhbGN1bGF0b3JcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9leHRlbnNpb25zL2NhbGN1bGF0b3JzL2F0ZS1pbWFnZS5jYWxjdWxhdG9yXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvZXh0ZW5zaW9ucy9jYWxjdWxhdG9ycy9hdGUtbWFya3MuY2FsY3VsYXRvclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL2V4dGVuc2lvbnMvY2FsY3VsYXRvcnMvYXRlLXNlbGVjdGlvbi5jYWxjdWxhdG9yXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvZXh0ZW5zaW9ucy9jYWxjdWxhdG9ycy9hdGUtc3RydWN0dXJlLmNhbGN1bGF0b3JcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9leHRlbnNpb25zL2NhbGN1bGF0b3JzL2F0ZS10YWJsZS5jYWxjdWxhdG9yXCI7XG5cbi8vIFR5cGVzIGFuZCBpbnRlcmZhY2VzIGZvciBjb25maWd1cmF0aW9uXG5leHBvcnQgKiBmcm9tIFwiLi9saWIvbW9kZWxzL2F0ZS10b29sYmFyLm1vZGVsXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvbW9kZWxzL2F0ZS1pbWFnZS5tb2RlbFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL21vZGVscy9hdGUtYnViYmxlLW1lbnUubW9kZWxcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9tb2RlbHMvYXRlLWVkaXRvci1jb25maWcubW9kZWxcIjtcbmV4cG9ydCB0eXBlIHtcbiAgQXRlQ3VzdG9tU2xhc2hDb21tYW5kcyxcbiAgQXRlU2xhc2hDb21tYW5kSXRlbSxcbn0gZnJvbSBcIi4vbGliL2NvbXBvbmVudHMvc2xhc2gtY29tbWFuZHMvYXRlLXNsYXNoLWNvbW1hbmRzLmNvbXBvbmVudFwiO1xuXG4vLyBEZWZhdWx0IGNvbmZpZ3VyYXRpb25zXG5leHBvcnQgKiBmcm9tIFwiLi9saWIvY29uZmlnL2F0ZS1lZGl0b3IuY29uZmlnXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvY29uZmlnL2F0ZS1nbG9iYWwtY29uZmlnLnRva2VuXCI7XG5cbi8vIFV0aWxpdHkgZnVuY3Rpb25zIGZvciBzbGFzaCBjb21tYW5kc1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL2NvbmZpZy9hdGUtc2xhc2gtY29tbWFuZHMuY29uZmlnXCI7XG5cbi8vIFRyYW5zbGF0aW9uc1xuZXhwb3J0IHR5cGUgeyBTdXBwb3J0ZWRMb2NhbGUgfSBmcm9tIFwiLi9saWIvc2VydmljZXMvYXRlLWkxOG4uc2VydmljZVwiO1xuXG4vLyBBbmd1bGFyIE5vZGVWaWV3IEludGVncmF0aW9uXG5leHBvcnQgeyBBdGVBbmd1bGFyTm9kZVZpZXcgfSBmcm9tIFwiLi9saWIvbm9kZS12aWV3L2F0ZS1hbmd1bGFyLW5vZGUtdmlld1wiO1xuZXhwb3J0IHsgQXRlTm9kZVZpZXdSZW5kZXJlciB9IGZyb20gXCIuL2xpYi9ub2RlLXZpZXcvYXRlLW5vZGUtdmlldy5yZW5kZXJlclwiO1xuZXhwb3J0IHsgY3JlYXRlQW5ndWxhckNvbXBvbmVudEV4dGVuc2lvbiB9IGZyb20gXCIuL2xpYi9ub2RlLXZpZXcvYXRlLW5vZGUtdmlldy5mYWN0b3J5XCI7XG5leHBvcnQgeyByZWdpc3RlckFuZ3VsYXJDb21wb25lbnQgfSBmcm9tIFwiLi9saWIvbm9kZS12aWV3L2F0ZS1yZWdpc3Rlci1hbmd1bGFyLWNvbXBvbmVudFwiO1xuXG4vLyBOb2RlIFZpZXcgVHlwZXMgLSBBdGVBbmd1bGFyTm9kZSBpcyB0aGUgcHJpbWFyeSBwdWJsaWMgdHlwZVxuZXhwb3J0IHR5cGUgeyBBdGVBbmd1bGFyTm9kZSB9IGZyb20gXCIuL2xpYi9tb2RlbHMvYXRlLWVkaXRvci1jb25maWcubW9kZWxcIjtcbi8vIEFkdmFuY2VkOiBMb3ctbGV2ZWwgb3B0aW9ucyBmb3IgZnVsbCBjb250cm9sIG92ZXIgbm9kZSByZWdpc3RyYXRpb25cbmV4cG9ydCB0eXBlIHtcbiAgUmVnaXN0ZXJBbmd1bGFyQ29tcG9uZW50T3B0aW9ucyxcbiAgQXRlQ29tcG9uZW50UmVuZGVyT3B0aW9ucyxcbn0gZnJvbSBcIi4vbGliL25vZGUtdmlldy9hdGUtbm9kZS12aWV3Lm1vZGVsc1wiO1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gRGVwcmVjYXRlZCBBbGlhc2VzICh0byBiZSByZW1vdmVkIGluIHYzLjAuMClcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbmltcG9ydCB7IEF0ZUkxOG5TZXJ2aWNlIH0gZnJvbSBcIi4vbGliL3NlcnZpY2VzL2F0ZS1pMThuLnNlcnZpY2VcIjtcbmltcG9ydCB7IEF0ZUVkaXRvckNvbW1hbmRzU2VydmljZSB9IGZyb20gXCIuL2xpYi9zZXJ2aWNlcy9hdGUtZWRpdG9yLWNvbW1hbmRzLnNlcnZpY2VcIjtcbmltcG9ydCB7IEF0ZUltYWdlU2VydmljZSB9IGZyb20gXCIuL2xpYi9zZXJ2aWNlcy9hdGUtaW1hZ2Uuc2VydmljZVwiO1xuaW1wb3J0IHsgQXRlQ29sb3JQaWNrZXJTZXJ2aWNlIH0gZnJvbSBcIi4vbGliL3NlcnZpY2VzL2F0ZS1jb2xvci1waWNrZXIuc2VydmljZVwiO1xuaW1wb3J0IHsgQXRlTGlua1NlcnZpY2UgfSBmcm9tIFwiLi9saWIvc2VydmljZXMvYXRlLWxpbmsuc2VydmljZVwiO1xuaW1wb3J0IHtcbiAgQXRlRWRpdG9yU3RhdGVTbmFwc2hvdCxcbiAgQVRFX0lOSVRJQUxfRURJVE9SX1NUQVRFLFxufSBmcm9tIFwiLi9saWIvbW9kZWxzL2F0ZS1lZGl0b3Itc3RhdGUubW9kZWxcIjtcbmltcG9ydCB7IEF0ZVRvb2xiYXJDb25maWcgfSBmcm9tIFwiLi9saWIvbW9kZWxzL2F0ZS10b29sYmFyLm1vZGVsXCI7XG5pbXBvcnQge1xuICBBdGVCdWJibGVNZW51Q29uZmlnLFxuICBBdGVUYWJsZUJ1YmJsZU1lbnVDb25maWcsXG4gIEF0ZUNlbGxCdWJibGVNZW51Q29uZmlnLFxuICBBdGVJbWFnZUJ1YmJsZU1lbnVDb25maWcsXG59IGZyb20gXCIuL2xpYi9tb2RlbHMvYXRlLWJ1YmJsZS1tZW51Lm1vZGVsXCI7XG5pbXBvcnQge1xuICBBdGVTbGFzaENvbW1hbmRzQ29uZmlnLFxuICBBdGVTbGFzaENvbW1hbmRLZXksXG4gIEFURV9TTEFTSF9DT01NQU5EX0tFWVMsXG4gIEFURV9ERUZBVUxUX1NMQVNIX0NPTU1BTkRTX0NPTkZJRyxcbn0gZnJvbSBcIi4vbGliL2NvbmZpZy9hdGUtc2xhc2gtY29tbWFuZHMuY29uZmlnXCI7XG5pbXBvcnQgeyBBdGVFZGl0b3JDb25maWcgfSBmcm9tIFwiLi9saWIvbW9kZWxzL2F0ZS1lZGl0b3ItY29uZmlnLm1vZGVsXCI7XG5pbXBvcnQge1xuICBBdGVJbWFnZVVwbG9hZE9wdGlvbnMsXG4gIEF0ZUltYWdlVXBsb2FkSGFuZGxlcixcbiAgQXRlSW1hZ2VVcGxvYWRSZXN1bHQsXG4gIEF0ZUltYWdlRGF0YSxcbiAgQXRlUmVzaXplT3B0aW9ucyxcbn0gZnJvbSBcIi4vbGliL21vZGVscy9hdGUtaW1hZ2UubW9kZWxcIjtcbmltcG9ydCB7XG4gIEF0ZUN1c3RvbVNsYXNoQ29tbWFuZHMsXG4gIEF0ZVNsYXNoQ29tbWFuZEl0ZW0sXG59IGZyb20gXCIuL2xpYi9jb21wb25lbnRzL3NsYXNoLWNvbW1hbmRzL2F0ZS1zbGFzaC1jb21tYW5kcy5jb21wb25lbnRcIjtcbmltcG9ydCB7IEF0ZURpc2NvdmVyeUNhbGN1bGF0b3IgfSBmcm9tIFwiLi9saWIvZXh0ZW5zaW9ucy9jYWxjdWxhdG9ycy9hdGUtZGlzY292ZXJ5LmNhbGN1bGF0b3JcIjtcbmltcG9ydCB7IEF0ZUltYWdlQ2FsY3VsYXRvciB9IGZyb20gXCIuL2xpYi9leHRlbnNpb25zL2NhbGN1bGF0b3JzL2F0ZS1pbWFnZS5jYWxjdWxhdG9yXCI7XG5pbXBvcnQgeyBBdGVNYXJrc0NhbGN1bGF0b3IgfSBmcm9tIFwiLi9saWIvZXh0ZW5zaW9ucy9jYWxjdWxhdG9ycy9hdGUtbWFya3MuY2FsY3VsYXRvclwiO1xuaW1wb3J0IHsgQXRlU2VsZWN0aW9uQ2FsY3VsYXRvciB9IGZyb20gXCIuL2xpYi9leHRlbnNpb25zL2NhbGN1bGF0b3JzL2F0ZS1zZWxlY3Rpb24uY2FsY3VsYXRvclwiO1xuaW1wb3J0IHsgQXRlU3RydWN0dXJlQ2FsY3VsYXRvciB9IGZyb20gXCIuL2xpYi9leHRlbnNpb25zL2NhbGN1bGF0b3JzL2F0ZS1zdHJ1Y3R1cmUuY2FsY3VsYXRvclwiO1xuaW1wb3J0IHsgQXRlVGFibGVDYWxjdWxhdG9yIH0gZnJvbSBcIi4vbGliL2V4dGVuc2lvbnMvY2FsY3VsYXRvcnMvYXRlLXRhYmxlLmNhbGN1bGF0b3JcIjtcbmltcG9ydCB7XG4gIEFURV9ERUZBVUxUX1RPT0xCQVJfQ09ORklHLFxuICBBVEVfREVGQVVMVF9CVUJCTEVfTUVOVV9DT05GSUcsXG4gIEFURV9ERUZBVUxUX0lNQUdFX0JVQkJMRV9NRU5VX0NPTkZJRyxcbiAgQVRFX0RFRkFVTFRfVEFCTEVfTUVOVV9DT05GSUcsXG4gIEFURV9ERUZBVUxUX0NFTExfTUVOVV9DT05GSUcsXG59IGZyb20gXCIuL2xpYi9jb25maWcvYXRlLWVkaXRvci5jb25maWdcIjtcblxuLyoqIEBkZXByZWNhdGVkIFJlbmFtZWQgdG8gYEF0ZUkxOG5TZXJ2aWNlYC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjMuMC4wLiAqL1xuZXhwb3J0IHsgQXRlSTE4blNlcnZpY2UgYXMgVGlwdGFwSTE4blNlcnZpY2UgfTtcbi8qKiBAZGVwcmVjYXRlZCBSZW5hbWVkIHRvIGBBdGVFZGl0b3JDb21tYW5kc1NlcnZpY2VgLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2My4wLjAuICovXG5leHBvcnQgeyBBdGVFZGl0b3JDb21tYW5kc1NlcnZpY2UgYXMgRWRpdG9yQ29tbWFuZHNTZXJ2aWNlIH07XG4vKiogQGRlcHJlY2F0ZWQgUmVuYW1lZCB0byBgQXRlSW1hZ2VTZXJ2aWNlYC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjMuMC4wLiAqL1xuZXhwb3J0IHsgQXRlSW1hZ2VTZXJ2aWNlIGFzIEltYWdlU2VydmljZSB9O1xuLyoqIEBkZXByZWNhdGVkIFJlbmFtZWQgdG8gYEF0ZUNvbG9yUGlja2VyU2VydmljZWAuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYzLjAuMC4gKi9cbmV4cG9ydCB7IEF0ZUNvbG9yUGlja2VyU2VydmljZSBhcyBDb2xvclBpY2tlclNlcnZpY2UgfTtcbi8qKiBAZGVwcmVjYXRlZCBSZW5hbWVkIHRvIGBBdGVMaW5rU2VydmljZWAuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYzLjAuMC4gKi9cbmV4cG9ydCB7IEF0ZUxpbmtTZXJ2aWNlIGFzIExpbmtTZXJ2aWNlIH07XG5cbi8qKiBAZGVwcmVjYXRlZCBSZW5hbWVkIHRvIGBBdGVFZGl0b3JTdGF0ZVNuYXBzaG90YC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjMuMC4wLiAqL1xuZXhwb3J0IHR5cGUgeyBBdGVFZGl0b3JTdGF0ZVNuYXBzaG90IGFzIEVkaXRvclN0YXRlU25hcHNob3QgfTtcbi8qKiBAZGVwcmVjYXRlZCBSZW5hbWVkIHRvIGBBVEVfSU5JVElBTF9FRElUT1JfU1RBVEVgLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2My4wLjAuICovXG5leHBvcnQgY29uc3QgSU5JVElBTF9FRElUT1JfU1RBVEUgPSBBVEVfSU5JVElBTF9FRElUT1JfU1RBVEU7XG5cbi8qKiBAZGVwcmVjYXRlZCBSZW5hbWVkIHRvIGBBdGVUb29sYmFyQ29uZmlnYC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjMuMC4wLiAqL1xuZXhwb3J0IHR5cGUgeyBBdGVUb29sYmFyQ29uZmlnIGFzIFRvb2xiYXJDb25maWcgfTtcbi8qKiBAZGVwcmVjYXRlZCBSZW5hbWVkIHRvIGBBdGVCdWJibGVNZW51Q29uZmlnYC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjMuMC4wLiAqL1xuZXhwb3J0IHR5cGUgeyBBdGVCdWJibGVNZW51Q29uZmlnIGFzIEJ1YmJsZU1lbnVDb25maWcgfTtcbi8qKiBAZGVwcmVjYXRlZCBSZW5hbWVkIHRvIGBBdGVUYWJsZUJ1YmJsZU1lbnVDb25maWdgLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2My4wLjAuICovXG5leHBvcnQgdHlwZSB7IEF0ZVRhYmxlQnViYmxlTWVudUNvbmZpZyBhcyBUYWJsZUJ1YmJsZU1lbnVDb25maWcgfTtcbi8qKiBAZGVwcmVjYXRlZCBSZW5hbWVkIHRvIGBBdGVDZWxsQnViYmxlTWVudUNvbmZpZ2AuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYzLjAuMC4gKi9cbmV4cG9ydCB0eXBlIHsgQXRlQ2VsbEJ1YmJsZU1lbnVDb25maWcgYXMgQ2VsbEJ1YmJsZU1lbnVDb25maWcgfTtcbi8qKiBAZGVwcmVjYXRlZCBSZW5hbWVkIHRvIGBBdGVJbWFnZUJ1YmJsZU1lbnVDb25maWdgLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2My4wLjAuICovXG5leHBvcnQgdHlwZSB7IEF0ZUltYWdlQnViYmxlTWVudUNvbmZpZyBhcyBJbWFnZUJ1YmJsZU1lbnVDb25maWcgfTtcblxuLyoqIEBkZXByZWNhdGVkIFJlbmFtZWQgdG8gYEF0ZVNsYXNoQ29tbWFuZHNDb25maWdgLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2My4wLjAuICovXG5leHBvcnQgdHlwZSB7IEF0ZVNsYXNoQ29tbWFuZHNDb25maWcgYXMgU2xhc2hDb21tYW5kc0NvbmZpZyB9O1xuLyoqIEBkZXByZWNhdGVkIFJlbmFtZWQgdG8gYEF0ZVNsYXNoQ29tbWFuZEtleWAuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYzLjAuMC4gKi9cbmV4cG9ydCB0eXBlIHsgQXRlU2xhc2hDb21tYW5kS2V5IGFzIFNsYXNoQ29tbWFuZEtleSB9O1xuLyoqIEBkZXByZWNhdGVkIFJlbmFtZWQgdG8gYEFURV9TTEFTSF9DT01NQU5EX0tFWVNgLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2My4wLjAuICovXG5leHBvcnQgY29uc3QgU0xBU0hfQ09NTUFORF9LRVlTID0gQVRFX1NMQVNIX0NPTU1BTkRfS0VZUztcbi8qKiBAZGVwcmVjYXRlZCBSZW5hbWVkIHRvIGBBVEVfREVGQVVMVF9TTEFTSF9DT01NQU5EU19DT05GSUdgLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2My4wLjAuICovXG5leHBvcnQgY29uc3QgREVGQVVMVF9TTEFTSF9DT01NQU5EU19DT05GSUcgPSBBVEVfREVGQVVMVF9TTEFTSF9DT01NQU5EU19DT05GSUc7XG5cbi8qKiBAZGVwcmVjYXRlZCBSZW5hbWVkIHRvIGBBdGVFZGl0b3JDb25maWdgLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2My4wLjAuICovXG5leHBvcnQgdHlwZSB7IEF0ZUVkaXRvckNvbmZpZyBhcyBFZGl0b3JDb25maWcgfTtcblxuLyoqIEBkZXByZWNhdGVkIFJlbmFtZWQgdG8gYEF0ZUltYWdlVXBsb2FkT3B0aW9uc2AuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYzLjAuMC4gKi9cbmV4cG9ydCB0eXBlIHsgQXRlSW1hZ2VVcGxvYWRPcHRpb25zIGFzIEltYWdlVXBsb2FkT3B0aW9ucyB9O1xuLyoqIEBkZXByZWNhdGVkIFJlbmFtZWQgdG8gYEF0ZUltYWdlVXBsb2FkSGFuZGxlcmAuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYzLjAuMC4gKi9cbmV4cG9ydCB0eXBlIHsgQXRlSW1hZ2VVcGxvYWRIYW5kbGVyIGFzIEltYWdlVXBsb2FkSGFuZGxlciB9O1xuLyoqIEBkZXByZWNhdGVkIFJlbmFtZWQgdG8gYEF0ZUltYWdlVXBsb2FkUmVzdWx0YC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjMuMC4wLiAqL1xuZXhwb3J0IHR5cGUgeyBBdGVJbWFnZVVwbG9hZFJlc3VsdCBhcyBJbWFnZVVwbG9hZFJlc3VsdCB9O1xuLyoqIEBkZXByZWNhdGVkIFJlbmFtZWQgdG8gYEF0ZUltYWdlRGF0YWAuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYzLjAuMC4gKi9cbmV4cG9ydCB0eXBlIHsgQXRlSW1hZ2VEYXRhIGFzIEltYWdlRGF0YSB9O1xuLyoqIEBkZXByZWNhdGVkIFJlbmFtZWQgdG8gYEF0ZVJlc2l6ZU9wdGlvbnNgLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2My4wLjAuICovXG5leHBvcnQgdHlwZSB7IEF0ZVJlc2l6ZU9wdGlvbnMgYXMgUmVzaXplT3B0aW9ucyB9O1xuXG4vKiogQGRlcHJlY2F0ZWQgUmVuYW1lZCB0byBgQXRlQ3VzdG9tU2xhc2hDb21tYW5kc2AuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYzLjAuMC4gKi9cbmV4cG9ydCB0eXBlIHsgQXRlQ3VzdG9tU2xhc2hDb21tYW5kcyBhcyBDdXN0b21TbGFzaENvbW1hbmRzIH07XG4vKiogQGRlcHJlY2F0ZWQgUmVuYW1lZCB0byBgQXRlU2xhc2hDb21tYW5kSXRlbWAuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYzLjAuMC4gKi9cbmV4cG9ydCB0eXBlIHsgQXRlU2xhc2hDb21tYW5kSXRlbSBhcyBTbGFzaENvbW1hbmRJdGVtIH07XG5cbi8qKiBAZGVwcmVjYXRlZCBSZW5hbWVkIHRvIGBBdGVEaXNjb3ZlcnlDYWxjdWxhdG9yYC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjMuMC4wLiAqL1xuZXhwb3J0IGNvbnN0IERpc2NvdmVyeUNhbGN1bGF0b3IgPSBBdGVEaXNjb3ZlcnlDYWxjdWxhdG9yO1xuLyoqIEBkZXByZWNhdGVkIFJlbmFtZWQgdG8gYEF0ZUltYWdlQ2FsY3VsYXRvcmAuIFRoaXMgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIHYzLjAuMC4gKi9cbmV4cG9ydCBjb25zdCBJbWFnZUNhbGN1bGF0b3IgPSBBdGVJbWFnZUNhbGN1bGF0b3I7XG4vKiogQGRlcHJlY2F0ZWQgUmVuYW1lZCB0byBgQXRlTWFya3NDYWxjdWxhdG9yYC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjMuMC4wLiAqL1xuZXhwb3J0IGNvbnN0IE1hcmtzQ2FsY3VsYXRvciA9IEF0ZU1hcmtzQ2FsY3VsYXRvcjtcbi8qKiBAZGVwcmVjYXRlZCBSZW5hbWVkIHRvIGBBdGVTZWxlY3Rpb25DYWxjdWxhdG9yYC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjMuMC4wLiAqL1xuZXhwb3J0IGNvbnN0IFNlbGVjdGlvbkNhbGN1bGF0b3IgPSBBdGVTZWxlY3Rpb25DYWxjdWxhdG9yO1xuLyoqIEBkZXByZWNhdGVkIFJlbmFtZWQgdG8gYEF0ZVN0cnVjdHVyZUNhbGN1bGF0b3JgLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2My4wLjAuICovXG5leHBvcnQgY29uc3QgU3RydWN0dXJlQ2FsY3VsYXRvciA9IEF0ZVN0cnVjdHVyZUNhbGN1bGF0b3I7XG4vKiogQGRlcHJlY2F0ZWQgUmVuYW1lZCB0byBgQXRlVGFibGVDYWxjdWxhdG9yYC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjMuMC4wLiAqL1xuZXhwb3J0IGNvbnN0IFRhYmxlQ2FsY3VsYXRvciA9IEF0ZVRhYmxlQ2FsY3VsYXRvcjtcblxuLyoqIEBkZXByZWNhdGVkIFJlbmFtZWQgdG8gYEFURV9ERUZBVUxUX1RPT0xCQVJfQ09ORklHYC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjMuMC4wLiAqL1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfVE9PTEJBUl9DT05GSUcgPSBBVEVfREVGQVVMVF9UT09MQkFSX0NPTkZJRztcbi8qKiBAZGVwcmVjYXRlZCBSZW5hbWVkIHRvIGBBVEVfREVGQVVMVF9CVUJCTEVfTUVOVV9DT05GSUdgLiBUaGlzIGFsaWFzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2My4wLjAuICovXG5leHBvcnQgY29uc3QgREVGQVVMVF9CVUJCTEVfTUVOVV9DT05GSUcgPSBBVEVfREVGQVVMVF9CVUJCTEVfTUVOVV9DT05GSUc7XG4vKiogQGRlcHJlY2F0ZWQgUmVuYW1lZCB0byBgQVRFX0RFRkFVTFRfSU1BR0VfQlVCQkxFX01FTlVfQ09ORklHYC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjMuMC4wLiAqL1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfSU1BR0VfQlVCQkxFX01FTlVfQ09ORklHID0gQVRFX0RFRkFVTFRfSU1BR0VfQlVCQkxFX01FTlVfQ09ORklHO1xuLyoqIEBkZXByZWNhdGVkIFJlbmFtZWQgdG8gYEFURV9ERUZBVUxUX1RBQkxFX01FTlVfQ09ORklHYC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjMuMC4wLiAqL1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfVEFCTEVfTUVOVV9DT05GSUcgPSBBVEVfREVGQVVMVF9UQUJMRV9NRU5VX0NPTkZJRztcbi8qKiBAZGVwcmVjYXRlZCBSZW5hbWVkIHRvIGBBVEVfREVGQVVMVF9DRUxMX01FTlVfQ09ORklHYC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjMuMC4wLiAqL1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfQ0VMTF9NRU5VX0NPTkZJRyA9IEFURV9ERUZBVUxUX0NFTExfTUVOVV9DT05GSUc7XG4iXX0=