@jax-data-science/sci-image-visualizer 0.9.0 → 0.11.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 (149) hide show
  1. package/esm2022/index.mjs +10 -1
  2. package/esm2022/lib/contracts/image.contract.mjs +1 -1
  3. package/esm2022/lib/contracts/ports/region-io.port.mjs +1 -1
  4. package/esm2022/lib/contracts/region-editor-api.contract.mjs +1 -1
  5. package/esm2022/lib/contracts/region-store.contract.mjs +1 -1
  6. package/esm2022/lib/contracts/section-view.contract.mjs +2 -0
  7. package/esm2022/lib/contracts/visualizer.contract.mjs +1 -1
  8. package/esm2022/lib/contracts/viz-config.mjs +1 -1
  9. package/esm2022/lib/geometry/loft.mjs +128 -0
  10. package/esm2022/lib/geometry/polylabel.mjs +156 -0
  11. package/esm2022/lib/geometry/reconstruct.mjs +315 -0
  12. package/esm2022/lib/geometry/reslice-image.mjs +57 -0
  13. package/esm2022/lib/geometry/section.mjs +215 -0
  14. package/esm2022/lib/implementations/napari-js/napari-loading-badge.mjs +11 -7
  15. package/esm2022/lib/implementations/napari-js/napari-loading-state.mjs +20 -3
  16. package/esm2022/lib/implementations/napari-js/napari-region-mesh-pointer.mjs +100 -0
  17. package/esm2022/lib/implementations/napari-js/napari-region-overlay.mjs +28 -5
  18. package/esm2022/lib/implementations/napari-js/napari-scene.mjs +1 -1
  19. package/esm2022/lib/implementations/napari-js/napari-spatial-hover.mjs +9 -2
  20. package/esm2022/lib/implementations/napari-js/napari-tool-bridge.mjs +5 -2
  21. package/esm2022/lib/implementations/napari-js/napari-visualizer.service.mjs +81 -1
  22. package/esm2022/lib/implementations/napari-js/napari-volume-region-meshes.mjs +129 -0
  23. package/esm2022/lib/implementations/napari-js/napari-volume-scene.mjs +115 -4
  24. package/esm2022/lib/implementations/napari-js/napari-volume-slice-planes.mjs +103 -0
  25. package/esm2022/lib/implementations/napari-js/region-overlay/region-svg-renderer.mjs +15 -3
  26. package/esm2022/lib/implementations/osd/openseadragon-viewer-options.mjs +18 -2
  27. package/esm2022/lib/implementations/osd/openseadragon-visualizer.service.mjs +9 -1
  28. package/esm2022/lib/implementations/osd/osd-region-overlay-draw.mjs +18 -7
  29. package/esm2022/lib/implementations/osd/osd-region-overlay.mjs +38 -8
  30. package/esm2022/lib/implementations/osd/osd-tile-loading.mjs +71 -0
  31. package/esm2022/lib/implementations/osd/osd-viewer-like.mjs +1 -1
  32. package/esm2022/lib/implementations/osd/slice-cache.mjs +35 -6
  33. package/esm2022/lib/implementations/tile-server/tile-protocol.mjs +1 -1
  34. package/esm2022/lib/models/class-preset.mjs +1 -1
  35. package/esm2022/lib/models/polygon-factory.mjs +17 -1
  36. package/esm2022/lib/models/region-geojson.mjs +44 -6
  37. package/esm2022/lib/models/region.mjs +1 -1
  38. package/esm2022/lib/region-editor/class-tree/class-tree.component.mjs +156 -0
  39. package/esm2022/lib/region-editor/class-tree/class-tree.mjs +108 -0
  40. package/esm2022/lib/region-editor/classes-panel/classes-panel.component.mjs +77 -13
  41. package/esm2022/lib/region-editor/region-editor.component.mjs +670 -42
  42. package/esm2022/lib/region-editor/region-metrics.mjs +20 -2
  43. package/esm2022/lib/region-editor/region-persistence.service.mjs +44 -10
  44. package/esm2022/lib/region-editor/region-table/region-table.component.mjs +24 -8
  45. package/esm2022/lib/region-import/label-classes.mjs +149 -0
  46. package/esm2022/lib/region-import/label-volume.mjs +194 -0
  47. package/esm2022/lib/region-import/region-import.mjs +71 -0
  48. package/esm2022/lib/region-overlay/region-geometry.mjs +3 -3
  49. package/esm2022/lib/region-overlay/region-source-layer.mjs +378 -0
  50. package/esm2022/lib/region-overlay/region-style.mjs +97 -0
  51. package/esm2022/lib/region-source/http-region-source.mjs +104 -0
  52. package/esm2022/lib/region-source/region-source-ops.mjs +53 -0
  53. package/esm2022/lib/region-source/region-source-worker.mjs +10 -0
  54. package/esm2022/lib/region-source/region-source.mjs +67 -0
  55. package/esm2022/lib/region-source/region-tiles.mjs +708 -0
  56. package/esm2022/lib/region-source/worker-region-source.mjs +229 -0
  57. package/esm2022/lib/routing-visualizer.service.mjs +510 -22
  58. package/esm2022/lib/section-pane/section-pane.component.mjs +299 -0
  59. package/esm2022/lib/store/class-color.util.mjs +10 -5
  60. package/esm2022/lib/store/class-signatures.mjs +63 -0
  61. package/esm2022/lib/store/region-scope-cache.mjs +5 -1
  62. package/esm2022/lib/store/region-source-scope.mjs +186 -0
  63. package/esm2022/lib/store/region-store.service.mjs +774 -12
  64. package/esm2022/lib/store/visualizer-store.service.mjs +33 -6
  65. package/esm2022/lib/toolbar/region-tools/region-tools.component.mjs +8 -2
  66. package/esm2022/lib/toolbar/stack-controls/stack-controls.component.mjs +55 -15
  67. package/esm2022/lib/toolbar/toolbar.component.mjs +19 -5
  68. package/esm2022/lib/visualizer/region-load.mjs +67 -4
  69. package/esm2022/lib/visualizer/volume-sections.mjs +175 -0
  70. package/esm2022/lib/visualizer.component.mjs +155 -7
  71. package/fesm2022/{jax-data-science-sci-image-visualizer-jax-data-science-sci-image-visualizer-Csxlnq7I.mjs → jax-data-science-sci-image-visualizer-jax-data-science-sci-image-visualizer-BELcx0jv.mjs} +9851 -2904
  72. package/fesm2022/jax-data-science-sci-image-visualizer-jax-data-science-sci-image-visualizer-BELcx0jv.mjs.map +1 -0
  73. package/fesm2022/{jax-data-science-sci-image-visualizer-onnx-sam-session-Bkujqg7m.mjs → jax-data-science-sci-image-visualizer-onnx-sam-session-DEDSm_NL.mjs} +4 -4
  74. package/fesm2022/{jax-data-science-sci-image-visualizer-onnx-sam-session-Bkujqg7m.mjs.map → jax-data-science-sci-image-visualizer-onnx-sam-session-DEDSm_NL.mjs.map} +1 -1
  75. package/fesm2022/jax-data-science-sci-image-visualizer-region-source-worker-CAqBjM5L.mjs +12 -0
  76. package/fesm2022/jax-data-science-sci-image-visualizer-region-source-worker-CAqBjM5L.mjs.map +1 -0
  77. package/fesm2022/jax-data-science-sci-image-visualizer.mjs +3 -3
  78. package/fesm2022/region-source.worker.js +1067 -0
  79. package/index.d.ts +12 -0
  80. package/lib/contracts/image.contract.d.ts +4 -0
  81. package/lib/contracts/ports/region-io.port.d.ts +24 -0
  82. package/lib/contracts/region-editor-api.contract.d.ts +102 -0
  83. package/lib/contracts/region-store.contract.d.ts +22 -0
  84. package/lib/contracts/section-view.contract.d.ts +44 -0
  85. package/lib/contracts/visualizer.contract.d.ts +10 -0
  86. package/lib/contracts/viz-config.d.ts +8 -0
  87. package/lib/geometry/loft.d.ts +22 -0
  88. package/lib/geometry/polylabel.d.ts +23 -0
  89. package/lib/geometry/reconstruct.d.ts +54 -0
  90. package/lib/geometry/reslice-image.d.ts +33 -0
  91. package/lib/geometry/section.d.ts +52 -0
  92. package/lib/implementations/napari-js/napari-loading-badge.d.ts +4 -2
  93. package/lib/implementations/napari-js/napari-loading-state.d.ts +8 -1
  94. package/lib/implementations/napari-js/napari-region-mesh-pointer.d.ts +32 -0
  95. package/lib/implementations/napari-js/napari-region-overlay.d.ts +6 -1
  96. package/lib/implementations/napari-js/napari-scene.d.ts +33 -0
  97. package/lib/implementations/napari-js/napari-spatial-hover.d.ts +3 -1
  98. package/lib/implementations/napari-js/napari-visualizer.service.d.ts +48 -0
  99. package/lib/implementations/napari-js/napari-volume-region-meshes.d.ts +66 -0
  100. package/lib/implementations/napari-js/napari-volume-scene.d.ts +45 -1
  101. package/lib/implementations/napari-js/napari-volume-slice-planes.d.ts +43 -0
  102. package/lib/implementations/osd/openseadragon-viewer-options.d.ts +2 -0
  103. package/lib/implementations/osd/openseadragon-visualizer.service.d.ts +2 -0
  104. package/lib/implementations/osd/osd-region-overlay-draw.d.ts +4 -3
  105. package/lib/implementations/osd/osd-region-overlay.d.ts +10 -3
  106. package/lib/implementations/osd/osd-tile-loading.d.ts +43 -0
  107. package/lib/implementations/osd/osd-viewer-like.d.ts +14 -0
  108. package/lib/implementations/osd/slice-cache.d.ts +13 -3
  109. package/lib/implementations/tile-server/tile-protocol.d.ts +3 -0
  110. package/lib/models/class-preset.d.ts +7 -0
  111. package/lib/models/polygon-factory.d.ts +5 -0
  112. package/lib/models/region-geojson.d.ts +40 -0
  113. package/lib/models/region.d.ts +19 -0
  114. package/lib/region-editor/class-tree/class-tree.component.d.ts +78 -0
  115. package/lib/region-editor/class-tree/class-tree.d.ts +31 -0
  116. package/lib/region-editor/classes-panel/classes-panel.component.d.ts +36 -6
  117. package/lib/region-editor/region-editor.component.d.ts +159 -17
  118. package/lib/region-editor/region-metrics.d.ts +8 -0
  119. package/lib/region-editor/region-persistence.service.d.ts +17 -5
  120. package/lib/region-editor/region-table/region-table.component.d.ts +10 -4
  121. package/lib/region-import/label-classes.d.ts +39 -0
  122. package/lib/region-import/label-volume.d.ts +31 -0
  123. package/lib/region-import/region-import.d.ts +46 -0
  124. package/lib/region-overlay/region-geometry.d.ts +4 -3
  125. package/lib/region-overlay/region-source-layer.d.ts +96 -0
  126. package/lib/region-overlay/region-style.d.ts +52 -0
  127. package/lib/region-source/http-region-source.d.ts +45 -0
  128. package/lib/region-source/region-source-ops.d.ts +89 -0
  129. package/lib/region-source/region-source-worker.d.ts +7 -0
  130. package/lib/region-source/region-source.d.ts +82 -0
  131. package/lib/region-source/region-tiles.d.ts +289 -0
  132. package/lib/region-source/worker-region-source.d.ts +65 -0
  133. package/lib/routing-visualizer.service.d.ts +168 -1
  134. package/lib/section-pane/section-pane.component.d.ts +47 -0
  135. package/lib/store/class-color.util.d.ts +6 -3
  136. package/lib/store/class-signatures.d.ts +11 -0
  137. package/lib/store/region-scope-cache.d.ts +2 -0
  138. package/lib/store/region-source-scope.d.ts +74 -0
  139. package/lib/store/region-store.service.d.ts +216 -2
  140. package/lib/store/visualizer-store.service.d.ts +10 -0
  141. package/lib/toolbar/region-tools/region-tools.component.d.ts +3 -1
  142. package/lib/toolbar/stack-controls/stack-controls.component.d.ts +20 -9
  143. package/lib/toolbar/toolbar.component.d.ts +9 -2
  144. package/lib/visualizer/region-load.d.ts +23 -4
  145. package/lib/visualizer/volume-sections.d.ts +64 -0
  146. package/lib/visualizer.component.d.ts +40 -0
  147. package/package.json +2 -2
  148. package/src/lib/assets/slice.svg +23 -0
  149. package/fesm2022/jax-data-science-sci-image-visualizer-jax-data-science-sci-image-visualizer-Csxlnq7I.mjs.map +0 -1
package/esm2022/index.mjs CHANGED
@@ -58,6 +58,15 @@ export { clearSamModelCache } from './lib/toolbar/segmentation/sam-onnx-core';
58
58
  export * from './lib/models/region';
59
59
  export * from './lib/models/class-preset';
60
60
  export { ShapeSelection } from './lib/models/shape';
61
+ // ── Region sources: large region sets, drawn by level of detail ─────────
62
+ // A host hands one over through `IImageInfo.regionSourceUrl` or a large `roiJsonStr`; these
63
+ // open one directly (e.g. for a custom loader, or a test).
64
+ export { openGeoJsonRegionSource } from './lib/region-source/worker-region-source';
65
+ export { openHttpRegionSource } from './lib/region-source/http-region-source';
66
+ export { REGION_SOURCE_MIN_CHARS } from './lib/region-source/region-source';
67
+ export { isLabelVolumeName, readLabelVolume } from './lib/region-import/label-volume';
68
+ export { labelClasses, labelSliceGeoJson } from './lib/region-import/label-classes';
69
+ export { importFile, planRegionImport } from './lib/region-import/region-import';
61
70
  // ── Angular module + providers ───────────────────────────────────────────
62
71
  // DEPRECATED, kept for one minor release: a shim re-exporting the standalone components
63
72
  // below and binding the host-facing tokens at root.
@@ -85,4 +94,4 @@ export { SpatialChartsComponent } from './lib/spatial-controls/spatial-charts/sp
85
94
  // Pure chart builders, exported so a host can render the same distributions
86
95
  // wherever it likes (a report, a different charting surface).
87
96
  export { buildOmicsTraces, omicsLayout, benefitsFromGrouping, } from './lib/implementations/plotly/omics-trace-builders';
88
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7O0dBUUc7QUFFSCw0RUFBNEU7QUFDNUUsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLDRDQUE0QyxDQUFDO0FBQzNELGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxjQUFjLHNDQUFzQyxDQUFDO0FBQ3JELGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLDBDQUEwQyxDQUFDO0FBQ3pELGNBQWMsZ0RBQWdELENBQUM7QUFDL0QsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsaURBQWlELENBQUM7QUFDaEUsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBRWpHLDRFQUE0RTtBQUM1RSx1RUFBdUU7QUFDdkUseUVBQXlFO0FBQ3pFLG1FQUFtRTtBQUNuRSxPQUFPLEVBQ0wsc0JBQXNCLEVBQ3RCLGVBQWUsR0FDaEIsTUFBTSxtRUFBbUUsQ0FBQztBQUMzRSxPQUFPLEVBQ0wsb0JBQW9CLEVBQ3BCLGNBQWMsRUFDZCxxQkFBcUIsRUFDckIsbUJBQW1CLEVBQ25CLFlBQVksRUFDWixZQUFZLEVBQ1osWUFBWSxFQUNaLG1CQUFtQixFQUNuQixjQUFjLEdBQ2YsTUFBTSxzREFBc0QsQ0FBQztBQU05RCwyRUFBMkU7QUFDM0UsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixnQkFBZ0IsRUFDaEIscUJBQXFCLEVBQ3JCLGNBQWMsRUFDZCxlQUFlLEVBQ2YsTUFBTSxFQUNOLDJCQUEyQixFQUMzQixxQkFBcUIsRUFDckIsYUFBYSxHQUNkLE1BQU0sZ0NBQWdDLENBQUM7QUFFeEMsdUZBQXVGO0FBQ3ZGLGtFQUFrRTtBQUNsRSx5QkFBeUI7QUFDekIsT0FBTyxFQUNMLGVBQWUsRUFDZixnQkFBZ0IsRUFDaEIsa0JBQWtCLEVBQ2xCLFdBQVcsRUFDWCxjQUFjLEVBQ2QsU0FBUyxFQUNULGFBQWEsR0FDZCxNQUFNLGlDQUFpQyxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzlFLGNBQWMsNkNBQTZDLENBQUM7QUFDNUQsY0FBYyw2Q0FBNkMsQ0FBQztBQUU1RCw4RUFBOEU7QUFDOUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxTQUFTLEVBQW9CLE1BQU0sNkJBQTZCLENBQUM7QUFDMUUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFFakYsNkVBQTZFO0FBQzdFLE9BQU8sRUFDTCxVQUFVLEVBQ1Ysb0JBQW9CLEVBQ3BCLFdBQVcsRUFDWCxlQUFlLEVBQ2YsZUFBZSxFQUNmLGtCQUFrQixFQUNsQixvQkFBb0IsR0FDckIsTUFBTSwrQ0FBK0MsQ0FBQztBQUV2RCw4RUFBOEU7QUFDOUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxjQUFjLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUMvRixzRkFBc0Y7QUFDdEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFFOUUsNEVBQTRFO0FBQzVFLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFcEQsNEVBQTRFO0FBQzVFLHdGQUF3RjtBQUN4RixvREFBb0Q7QUFDcEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDakUsaUZBQWlGO0FBQ2pGLG9GQUFvRjtBQUNwRixnRkFBZ0Y7QUFDaEYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDNUUsNkVBQTZFO0FBQzdFLG1FQUFtRTtBQUNuRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUVuRSxrRkFBa0Y7QUFDbEYsd0ZBQXdGO0FBQ3hGLE9BQU8sRUFBRSxhQUFhLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV6RSxnRkFBZ0Y7QUFDaEYsb0ZBQW9GO0FBQ3BGLHdGQUF3RjtBQUN4Rix3RkFBd0Y7QUFDeEYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDakUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDcEYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFDNUYsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0scURBQXFELENBQUM7QUFDaEcsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFFN0YsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sZ0VBQWdFLENBQUM7QUFDeEcsNEVBQTRFO0FBQzVFLDhEQUE4RDtBQUM5RCxPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLFdBQVcsRUFDWCxvQkFBb0IsR0FDckIsTUFBTSxtREFBbUQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogUHVibGljIEFQSSBvZiBgQGpheC1kYXRhLXNjaWVuY2Uvc2NpLWltYWdlLXZpc3VhbGl6ZXJgLiBFeHRlcm5hbCBjb25zdW1lcnMgaW1wb3J0XG4gKiBPTkxZIGZyb20gaGVyZTsgZXZlcnl0aGluZyBlbHNlIHVuZGVyIGBsaWIvYCBpcyBpbnRlcm5hbC4gVGhlIHN1cmZhY2UgaXNcbiAqIGNvbnRyYWN0cyArIHRva2VucyArIG5ldXRyYWwgbW9kZWxzICsgdGhlIEFuZ3VsYXIgbW9kdWxlIGFuZCBjb21wb25lbnRzLCBwbHVzXG4gKiBgcHJvdmlkZVZpc3VhbGl6YXRpb24oKWAgZm9yIGFuIGlzb2xhdGVkLCBjb21wb25lbnQtc2NvcGVkIHZpZXdlci4gVGhlIGxpYnJhcnlcbiAqIGJpbmRzIHRoZSB0b2tlbnMgaXRzZWxmIChWaXN1YWxpemF0aW9uTW9kdWxlIC8gcHJvdmlkZVZpc3VhbGl6YXRpb24pLCBzbyBhIGhvc3RcbiAqIGluamVjdHMgYFZJU1VBTElaRVJgLCBgUkVHSU9OX0VESVRPUl9BUElgIGFuZCBgQ0hBTk5FTF9ISVNUT0dSQU1fQVBJYCBhbmQgc3VwcGxpZXNcbiAqIG9ubHkgdGhlIHBvcnRzIGFuZCBgVklaX0NPTkZJR2AuXG4gKi9cblxuLy8g4pSA4pSAIENvbnRyYWN0cyAmIERJIHRva2VucyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbnRyYWN0cy92aXN1YWxpemVyLmNvbnRyYWN0JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbnRyYWN0cy9yZWdpb24tZWRpdG9yLWFwaS5jb250cmFjdCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb250cmFjdHMvcG9ydHMvaW1hZ2Utc3RhdGUucG9ydCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb250cmFjdHMvcG9ydHMvdGlsZS1hY2Nlc3MucG9ydCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb250cmFjdHMvcG9ydHMvcmVnaW9uLWlvLnBvcnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29udHJhY3RzL3BvcnRzL3ByZWZlcmVuY2VzLnBvcnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29udHJhY3RzL3BvcnRzL3NwYXRpYWwtZGF0YS5wb3J0JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbnRyYWN0cy9zcGF0aWFsLWRhdGFzZXQuY29udHJhY3QnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29udHJhY3RzL2NoYW5uZWwtaGlzdG9ncmFtLWFwaS5jb250cmFjdCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb250cmFjdHMvdml6LWNvbmZpZyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb250cmFjdHMvaW1hZ2UuY29udHJhY3QnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29udHJhY3RzL3Bsb3QtdHlwZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb250cmFjdHMvdG9vbGJhci1jb25maWcnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29udHJhY3RzL3Rvb2xiYXItdG9vbC5jb250cmFjdCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb250cmFjdHMvcGxvdC10eXBlLWNvbnRyaWJ1dGlvbi5jb250cmFjdCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb250cmFjdHMvY2FwYWJpbGl0aWVzLmNvbnRyYWN0JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbnRyYWN0cy9yZWdpb24tb3ZlcmxheS5jb250cmFjdCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb250cmFjdHMvZGlzcGxheS10eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb250cmFjdHMvc2FtLmNvbnRyYWN0JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbnRyYWN0cy9jZWxsLXNlZ21lbnRlci5jb250cmFjdCc7XG5leHBvcnQgeyBDZWxscG9zZVNlZ21lbnRlclNlcnZpY2UgfSBmcm9tICcuL2xpYi90b29sYmFyL3NlZ21lbnRhdGlvbi9jZWxscG9zZS1zZWdtZW50ZXIuc2VydmljZSc7XG5cbi8vIOKUgOKUgCBTcGF0aWFsLW9taWNzIGRhdGEgcGxhbmUg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4vLyBUaGUgd2lyZSBmb3JtYXQgdGhlIGJ1bmRsZWQgZXhhbXBsZSBzZXJ2ZXIgc3BlYWtzLCBwbHVzIGEgcmVhZHktbWFkZVxuLy8gU3BhdGlhbERhdGFQb3J0IGFkYXB0ZXIgZm9yIGl0LiBCb3RoIGFyZSBPUFRJT05BTDogYSBob3N0IHdpdGggaXRzIG93blxuLy8gYmFja2VuZCBpbXBsZW1lbnRzIFNwYXRpYWxEYXRhUG9ydCBkaXJlY3RseSBhbmQgaW1wb3J0cyBuZWl0aGVyLlxuZXhwb3J0IHtcbiAgU3BhdGlhbERhdGFIdHRwU2VydmljZSxcbiAgU3VwZXJzZWRlZEVycm9yLFxufSBmcm9tICcuL2xpYi9pbXBsZW1lbnRhdGlvbnMvc3BhdGlhbC1kYXRhLWh0dHAvc3BhdGlhbC1kYXRhLWh0dHAuc2VydmljZSc7XG5leHBvcnQge1xuICBTUEFUSUFMX1dJUkVfVkVSU0lPTixcbiAgaXNMaXR0bGVFbmRpYW4sXG4gIGFzc2VydE1hbmlmZXN0VmVyc2lvbixcbiAgZGF0YXNldEZyb21NYW5pZmVzdCxcbiAgZGVjb2RlQ29vcmRzLFxuICBkZWNvZGVSYWRpdXMsXG4gIGRlY29kZUNvbHVtbixcbiAgZGVjb2RlRmVhdHVyZVZlY3RvcixcbiAgZGVjb2RlUG9seWdvbnMsXG59IGZyb20gJy4vbGliL2ltcGxlbWVudGF0aW9ucy9zcGF0aWFsLWRhdGEtaHR0cC9zcGF0aWFsLXdpcmUnO1xuZXhwb3J0IHR5cGUge1xuICBTcGF0aWFsTWFuaWZlc3QsXG4gIFNwYXRpYWxEYXRhc2V0U3VtbWFyeSxcbiAgU3BhdGlhbFJhZGl1c1NwZWMsXG59IGZyb20gJy4vbGliL2ltcGxlbWVudGF0aW9ucy9zcGF0aWFsLWRhdGEtaHR0cC9zcGF0aWFsLXdpcmUnO1xuLy8gQmFja2VuZC1uZXV0cmFsIGVuY29kaW5nczogY29sdW1ucy9nZW5lcyAtPiBwZXItcG9pbnQgY29sb3VycyBhbmQgc2l6ZXMuXG5leHBvcnQge1xuICBlbmNvZGVDYXRlZ29yaWNhbCxcbiAgZW5jb2RlQ29udGludW91cyxcbiAgcmVzb2x2ZUNhdGVnb3J5Q29sb3JzLFxuICBjb250cmFzdFdpbmRvdyxcbiAgbWFya2VyRGlhbWV0ZXJzLFxuICBsdXRGb3IsXG4gIERFRkFVTFRfQ0FURUdPUklDQUxfUEFMRVRURSxcbiAgREVGQVVMVF9NVVRFRF9PUEFDSVRZLFxuICBNSVNTSU5HX0NPTE9SLFxufSBmcm9tICcuL2xpYi9zcGF0aWFsL3NwYXRpYWwtZW5jb2RpbmcnO1xuZXhwb3J0IHR5cGUgeyBSR0JBLCBDYXRlZ29yaWNhbEVuY29kaW5nT3B0aW9ucywgQ29udGludW91c0VuY29kaW5nT3B0aW9ucyB9IGZyb20gJy4vbGliL3NwYXRpYWwvc3BhdGlhbC1lbmNvZGluZyc7XG4vLyBTZWxlY3Rpb246IHdoaWNoIG9ic2VydmF0aW9ucyBmYWxsIGluc2lkZSB0aGUgZHJhd24gUk9JcyAoYXMgYSBTcGF0aWFsU2VsZWN0aW9uTWFzayxcbi8vIGV4cG9ydGVkIHdpdGggdGhlIGRhdGFzZXQgY29udHJhY3QgYWJvdmUpLCBhbmQgdGhlIHNoYXJlZCBzdG9yZVxuLy8gdGhhdCBob2xkcyB0aGUgYW5zd2VyLlxuZXhwb3J0IHtcbiAgc2VsZWN0SW5SZWdpb25zLFxuICBzZWxlY3RCeUNhdGVnb3J5LFxuICBtdXRlZEZyb21TZWxlY3Rpb24sXG4gIHBvaW50SW5SaW5nLFxuICBlbXB0eVNlbGVjdGlvbixcbiAgY291bnRNYXNrLFxuICBtYXNrVG9JbmRpY2VzLFxufSBmcm9tICcuL2xpYi9zcGF0aWFsL3NwYXRpYWwtc2VsZWN0aW9uJztcbmV4cG9ydCB7IFNwYXRpYWxTZWxlY3Rpb25TdG9yZSB9IGZyb20gJy4vbGliL3N0b3JlL3NwYXRpYWwtc2VsZWN0aW9uLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29udHJhY3RzL2luc3RhbmNlLXNlZ21lbnRlci5jb250cmFjdCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb250cmFjdHMvc2VtYW50aWMtc2VnbWVudGVyLmNvbnRyYWN0JztcblxuLy8g4pSA4pSAIEdlbmVyaWMgY2xpZW50LXNpZGUgaW1hZ2UgdXRpbGl0aWVzIChzaGFyZWQgd2l0aCB0aGUgaG9zdCdzIHBpcGVsaW5lKSDilIDilIBcbmV4cG9ydCB7IFByb2Nlc3NpbmdJbWFnZSB9IGZyb20gJy4vbGliL3Byb2Nlc3NpbmcvcHJvY2Vzc2luZy1pbWFnZSc7XG5leHBvcnQgeyBjcm9wSW1hZ2UsIENyb3BJbWFnZU9wdGlvbnMgfSBmcm9tICcuL2xpYi9wcm9jZXNzaW5nL2ltYWdlLWNyb3AnO1xuZXhwb3J0IHsgSW1hZ2VDb252ZXJ0ZXJTZXJ2aWNlIH0gZnJvbSAnLi9saWIvcHJvY2Vzc2luZy9pbWFnZS1jb252ZXJ0ZXIuc2VydmljZSc7XG5cbi8vIOKUgOKUgCBTQU0gbW9kZWwgcmVnaXN0cnkgKGhvc3QgY29uZmlndXJlcyBob3N0ZWQgT05OWCBVUkxzIG9uY2UgYXZhaWxhYmxlKSDilIDilIBcbmV4cG9ydCB7XG4gIFNBTV9NT0RFTFMsXG4gIERFRkFVTFRfU0FNX01PREVMX0lELFxuICBnZXRTYW1Nb2RlbCxcbiAgaXNTYW1Nb2RlbFJlYWR5LFxuICBzZXRTYW1Nb2RlbFVybHMsXG4gIHNldERlZmF1bHRTYW1Nb2RlbCxcbiAgZ2V0RGVmYXVsdFNhbU1vZGVsSWQsXG59IGZyb20gJy4vbGliL3Rvb2xiYXIvc2VnbWVudGF0aW9uL3NhbS1tb2RlbC1yZWdpc3RyeSc7XG5cbi8vIOKUgOKUgCBvbm54cnVudGltZS13ZWIgV0FTTSBsb2NhdGlvbiAoaG9zdCBvdmVycmlkZXMgb25jZSwgYXQgYXBwIGluaXQpIOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuZXhwb3J0IHsgc2V0T3J0V2FzbUJhc2UsIGdldE9ydFdhc21CYXNlIH0gZnJvbSAnLi9saWIvdG9vbGJhci9zZWdtZW50YXRpb24vb3J0LXJ1bnRpbWUtY29uZmlnJztcbi8vIEZyZWVzIHRoZSBzZXZlcmFsIGh1bmRyZWQgTUIgb2YgZG93bmxvYWRlZCBTQU0gbW9kZWxzIHRoZSBicm93c2VyIGtlZXBzIHBlciBvcmlnaW4uXG5leHBvcnQgeyBjbGVhclNhbU1vZGVsQ2FjaGUgfSBmcm9tICcuL2xpYi90b29sYmFyL3NlZ21lbnRhdGlvbi9zYW0tb25ueC1jb3JlJztcblxuLy8g4pSA4pSAIE5ldXRyYWwgZGF0YSBtb2RlbHMg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvcmVnaW9uJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9jbGFzcy1wcmVzZXQnO1xuZXhwb3J0IHsgU2hhcGVTZWxlY3Rpb24gfSBmcm9tICcuL2xpYi9tb2RlbHMvc2hhcGUnO1xuXG4vLyDilIDilIAgQW5ndWxhciBtb2R1bGUgKyBwcm92aWRlcnMg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4vLyBERVBSRUNBVEVELCBrZXB0IGZvciBvbmUgbWlub3IgcmVsZWFzZTogYSBzaGltIHJlLWV4cG9ydGluZyB0aGUgc3RhbmRhbG9uZSBjb21wb25lbnRzXG4vLyBiZWxvdyBhbmQgYmluZGluZyB0aGUgaG9zdC1mYWNpbmcgdG9rZW5zIGF0IHJvb3QuXG5leHBvcnQgeyBWaXN1YWxpemF0aW9uTW9kdWxlIH0gZnJvbSAnLi9saWIvdmlzdWFsaXphdGlvbi5tb2R1bGUnO1xuLy8gREVQUkVDQVRFRCBhcyBwdWJsaWMgQVBJLCBrZXB0IGZvciBvbmUgcmVsZWFzZTogaG9zdHMgc2hvdWxkIGluamVjdCB0aGUgdG9rZW5zXG4vLyAoVklTVUFMSVpFUiAvIFJFR0lPTl9FRElUT1JfQVBJIC8gQ0hBTk5FTF9ISVNUT0dSQU1fQVBJKSwgd2hpY2ggdGhlIGxpYnJhcnkgYmluZHNcbi8vIHRvIHRoaXMgcm91dGVyIGl0c2VsZi4gUmVhY2hpbmcgZm9yIHRoZSBjb25jcmV0ZSBjbGFzcyBieXBhc3NlcyB0aGF0IGJpbmRpbmcuXG5leHBvcnQgeyBSb3V0aW5nVmlzdWFsaXplclNlcnZpY2UgfSBmcm9tICcuL2xpYi9yb3V0aW5nLXZpc3VhbGl6ZXIuc2VydmljZSc7XG4vLyBQcm92aWRlciBmYWN0b3J5IGZvciBhbiBpc29sYXRlZCwgY29tcG9uZW50LXNjb3BlZCB2aWV3ZXIgaW5zdGFuY2UgKGUuZy4gYVxuLy8gbW9kYWwgdGhhdCBtdXN0IG5vdCBzaGFyZSB0aGUgbWFpbiB2aWV3ZXIncyByZWdpb24vaW1hZ2Ugc3RhdGUpLlxuZXhwb3J0IHsgcHJvdmlkZVZpc3VhbGl6YXRpb24gfSBmcm9tICcuL2xpYi9wcm92aWRlLXZpc3VhbGl6YXRpb24nO1xuXG4vLyBLZXlzIG9mIHRoZSB0b2FzdCBvdXRsZXRzIHRoZSB2aXN1YWxpemVyIHJlbmRlcnMgZm9yIHRoZSBsaWJyYXJ5J3Mgb3duIG5vdGljZXMuXG4vLyBBIGhvc3QgdGhhdCByZW5kZXJzIGl0cyBvd24gPHAtdG9hc3Q+IHdpdGggb25lIG9mIHRoZXNlIGtleXMgc2hvd3MgZWFjaCBub3RpY2UgdHdpY2UuXG5leHBvcnQgeyBWSVpfVE9BU1RfS0VZLCBWSVpfQUxFUlRfVE9BU1RfS0VZIH0gZnJvbSAnLi9saWIvdG9hc3Qtb3V0bGV0cyc7XG5cbi8vIOKUgOKUgCBQdWJsaWMgY29tcG9uZW50cyAoc3RhbmRhbG9uZTsgYWxzbyByZS1leHBvcnRlZCBieSBWaXN1YWxpemF0aW9uTW9kdWxlKSDilIDilIBcbi8vIFRoZSBlbWJlZGRhYmxlIGVsZW1lbnRzIChgPHZpc3VhbGl6ZXI+YCwgYDxyZWdpb24tZWRpdG9yPmAsIGA8aGV4LWNvbG9yLXBpY2tlcj5gLFxuLy8gYDxjaGFubmVsLWhpc3RvZ3JhbT5gLCBgPHNwYXRpYWwtY29udHJvbHM+YCwgYDxzcGF0aWFsLWNoYXJ0cz5gKS4gRWFjaCBpcyBzdGFuZGFsb25lOlxuLy8gYSBob3N0IGltcG9ydHMgaXQgZGlyZWN0bHkgYW5kIGJpbmRzIHRoZSBiYWNrZW5kIGNoYWluIHdpdGggYHByb3ZpZGVWaXN1YWxpemF0aW9uKClgLlxuZXhwb3J0IHsgVmlzdWFsaXplckNvbXBvbmVudCB9IGZyb20gJy4vbGliL3Zpc3VhbGl6ZXIuY29tcG9uZW50JztcbmV4cG9ydCB7IFJlZ2lvbkVkaXRvckNvbXBvbmVudCB9IGZyb20gJy4vbGliL3JlZ2lvbi1lZGl0b3IvcmVnaW9uLWVkaXRvci5jb21wb25lbnQnO1xuZXhwb3J0IHsgSGV4Q29sb3JQaWNrZXJDb21wb25lbnQgfSBmcm9tICcuL2xpYi9oZXgtY29sb3ItcGlja2VyL2hleC1jb2xvci1waWNrZXIuY29tcG9uZW50JztcbmV4cG9ydCB7IENoYW5uZWxIaXN0b2dyYW1Db21wb25lbnQgfSBmcm9tICcuL2xpYi9jaGFubmVsLWhpc3RvZ3JhbS9jaGFubmVsLWhpc3RvZ3JhbS5jb21wb25lbnQnO1xuZXhwb3J0IHsgU3BhdGlhbENvbnRyb2xzQ29tcG9uZW50IH0gZnJvbSAnLi9saWIvc3BhdGlhbC1jb250cm9scy9zcGF0aWFsLWNvbnRyb2xzLmNvbXBvbmVudCc7XG5leHBvcnQgdHlwZSB7IFNwYXRpYWxMZWdlbmRFbnRyeSB9IGZyb20gJy4vbGliL3NwYXRpYWwtY29udHJvbHMvc3BhdGlhbC1jb250cm9scy5jb21wb25lbnQnO1xuZXhwb3J0IHsgU3BhdGlhbENoYXJ0c0NvbXBvbmVudCB9IGZyb20gJy4vbGliL3NwYXRpYWwtY29udHJvbHMvc3BhdGlhbC1jaGFydHMvc3BhdGlhbC1jaGFydHMuY29tcG9uZW50Jztcbi8vIFB1cmUgY2hhcnQgYnVpbGRlcnMsIGV4cG9ydGVkIHNvIGEgaG9zdCBjYW4gcmVuZGVyIHRoZSBzYW1lIGRpc3RyaWJ1dGlvbnNcbi8vIHdoZXJldmVyIGl0IGxpa2VzIChhIHJlcG9ydCwgYSBkaWZmZXJlbnQgY2hhcnRpbmcgc3VyZmFjZSkuXG5leHBvcnQge1xuICBidWlsZE9taWNzVHJhY2VzLFxuICBvbWljc0xheW91dCxcbiAgYmVuZWZpdHNGcm9tR3JvdXBpbmcsXG59IGZyb20gJy4vbGliL2ltcGxlbWVudGF0aW9ucy9wbG90bHkvb21pY3MtdHJhY2UtYnVpbGRlcnMnO1xuZXhwb3J0IHR5cGUge1xuICBPbWljc0NoYXJ0S2luZCxcbiAgT21pY3NHcm91cGluZyxcbiAgT21pY3NUcmFjZUlucHV0LFxufSBmcm9tICcuL2xpYi9pbXBsZW1lbnRhdGlvbnMvcGxvdGx5L29taWNzLXRyYWNlLWJ1aWxkZXJzJztcbiJdfQ==
97
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7O0dBUUc7QUFFSCw0RUFBNEU7QUFDNUUsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLDRDQUE0QyxDQUFDO0FBQzNELGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxjQUFjLHNDQUFzQyxDQUFDO0FBQ3JELGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLDBDQUEwQyxDQUFDO0FBQ3pELGNBQWMsZ0RBQWdELENBQUM7QUFDL0QsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsaURBQWlELENBQUM7QUFDaEUsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBRWpHLDRFQUE0RTtBQUM1RSx1RUFBdUU7QUFDdkUseUVBQXlFO0FBQ3pFLG1FQUFtRTtBQUNuRSxPQUFPLEVBQ0wsc0JBQXNCLEVBQ3RCLGVBQWUsR0FDaEIsTUFBTSxtRUFBbUUsQ0FBQztBQUMzRSxPQUFPLEVBQ0wsb0JBQW9CLEVBQ3BCLGNBQWMsRUFDZCxxQkFBcUIsRUFDckIsbUJBQW1CLEVBQ25CLFlBQVksRUFDWixZQUFZLEVBQ1osWUFBWSxFQUNaLG1CQUFtQixFQUNuQixjQUFjLEdBQ2YsTUFBTSxzREFBc0QsQ0FBQztBQU05RCwyRUFBMkU7QUFDM0UsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixnQkFBZ0IsRUFDaEIscUJBQXFCLEVBQ3JCLGNBQWMsRUFDZCxlQUFlLEVBQ2YsTUFBTSxFQUNOLDJCQUEyQixFQUMzQixxQkFBcUIsRUFDckIsYUFBYSxHQUNkLE1BQU0sZ0NBQWdDLENBQUM7QUFFeEMsdUZBQXVGO0FBQ3ZGLGtFQUFrRTtBQUNsRSx5QkFBeUI7QUFDekIsT0FBTyxFQUNMLGVBQWUsRUFDZixnQkFBZ0IsRUFDaEIsa0JBQWtCLEVBQ2xCLFdBQVcsRUFDWCxjQUFjLEVBQ2QsU0FBUyxFQUNULGFBQWEsR0FDZCxNQUFNLGlDQUFpQyxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzlFLGNBQWMsNkNBQTZDLENBQUM7QUFDNUQsY0FBYyw2Q0FBNkMsQ0FBQztBQUU1RCw4RUFBOEU7QUFDOUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxTQUFTLEVBQW9CLE1BQU0sNkJBQTZCLENBQUM7QUFDMUUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFFakYsNkVBQTZFO0FBQzdFLE9BQU8sRUFDTCxVQUFVLEVBQ1Ysb0JBQW9CLEVBQ3BCLFdBQVcsRUFDWCxlQUFlLEVBQ2YsZUFBZSxFQUNmLGtCQUFrQixFQUNsQixvQkFBb0IsR0FDckIsTUFBTSwrQ0FBK0MsQ0FBQztBQUV2RCw4RUFBOEU7QUFDOUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxjQUFjLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUMvRixzRkFBc0Y7QUFDdEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFFOUUsNEVBQTRFO0FBQzVFLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFcEQsMkVBQTJFO0FBQzNFLDRGQUE0RjtBQUM1RiwyREFBMkQ7QUFDM0QsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDbkYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFFOUUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDNUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGVBQWUsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBRXRGLE9BQU8sRUFBRSxZQUFZLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUVwRixPQUFPLEVBQUUsVUFBVSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFhakYsNEVBQTRFO0FBQzVFLHdGQUF3RjtBQUN4RixvREFBb0Q7QUFDcEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDakUsaUZBQWlGO0FBQ2pGLG9GQUFvRjtBQUNwRixnRkFBZ0Y7QUFDaEYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDNUUsNkVBQTZFO0FBQzdFLG1FQUFtRTtBQUNuRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUVuRSxrRkFBa0Y7QUFDbEYsd0ZBQXdGO0FBQ3hGLE9BQU8sRUFBRSxhQUFhLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV6RSxnRkFBZ0Y7QUFDaEYsb0ZBQW9GO0FBQ3BGLHdGQUF3RjtBQUN4Rix3RkFBd0Y7QUFDeEYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDakUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDcEYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFDNUYsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0scURBQXFELENBQUM7QUFDaEcsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFFN0YsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sZ0VBQWdFLENBQUM7QUFDeEcsNEVBQTRFO0FBQzVFLDhEQUE4RDtBQUM5RCxPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLFdBQVcsRUFDWCxvQkFBb0IsR0FDckIsTUFBTSxtREFBbUQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogUHVibGljIEFQSSBvZiBgQGpheC1kYXRhLXNjaWVuY2Uvc2NpLWltYWdlLXZpc3VhbGl6ZXJgLiBFeHRlcm5hbCBjb25zdW1lcnMgaW1wb3J0XG4gKiBPTkxZIGZyb20gaGVyZTsgZXZlcnl0aGluZyBlbHNlIHVuZGVyIGBsaWIvYCBpcyBpbnRlcm5hbC4gVGhlIHN1cmZhY2UgaXNcbiAqIGNvbnRyYWN0cyArIHRva2VucyArIG5ldXRyYWwgbW9kZWxzICsgdGhlIEFuZ3VsYXIgbW9kdWxlIGFuZCBjb21wb25lbnRzLCBwbHVzXG4gKiBgcHJvdmlkZVZpc3VhbGl6YXRpb24oKWAgZm9yIGFuIGlzb2xhdGVkLCBjb21wb25lbnQtc2NvcGVkIHZpZXdlci4gVGhlIGxpYnJhcnlcbiAqIGJpbmRzIHRoZSB0b2tlbnMgaXRzZWxmIChWaXN1YWxpemF0aW9uTW9kdWxlIC8gcHJvdmlkZVZpc3VhbGl6YXRpb24pLCBzbyBhIGhvc3RcbiAqIGluamVjdHMgYFZJU1VBTElaRVJgLCBgUkVHSU9OX0VESVRPUl9BUElgIGFuZCBgQ0hBTk5FTF9ISVNUT0dSQU1fQVBJYCBhbmQgc3VwcGxpZXNcbiAqIG9ubHkgdGhlIHBvcnRzIGFuZCBgVklaX0NPTkZJR2AuXG4gKi9cblxuLy8g4pSA4pSAIENvbnRyYWN0cyAmIERJIHRva2VucyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbnRyYWN0cy92aXN1YWxpemVyLmNvbnRyYWN0JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbnRyYWN0cy9yZWdpb24tZWRpdG9yLWFwaS5jb250cmFjdCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb250cmFjdHMvcG9ydHMvaW1hZ2Utc3RhdGUucG9ydCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb250cmFjdHMvcG9ydHMvdGlsZS1hY2Nlc3MucG9ydCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb250cmFjdHMvcG9ydHMvcmVnaW9uLWlvLnBvcnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29udHJhY3RzL3BvcnRzL3ByZWZlcmVuY2VzLnBvcnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29udHJhY3RzL3BvcnRzL3NwYXRpYWwtZGF0YS5wb3J0JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbnRyYWN0cy9zcGF0aWFsLWRhdGFzZXQuY29udHJhY3QnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29udHJhY3RzL2NoYW5uZWwtaGlzdG9ncmFtLWFwaS5jb250cmFjdCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb250cmFjdHMvdml6LWNvbmZpZyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb250cmFjdHMvaW1hZ2UuY29udHJhY3QnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29udHJhY3RzL3Bsb3QtdHlwZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb250cmFjdHMvdG9vbGJhci1jb25maWcnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29udHJhY3RzL3Rvb2xiYXItdG9vbC5jb250cmFjdCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb250cmFjdHMvcGxvdC10eXBlLWNvbnRyaWJ1dGlvbi5jb250cmFjdCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb250cmFjdHMvY2FwYWJpbGl0aWVzLmNvbnRyYWN0JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbnRyYWN0cy9yZWdpb24tb3ZlcmxheS5jb250cmFjdCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb250cmFjdHMvZGlzcGxheS10eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb250cmFjdHMvc2FtLmNvbnRyYWN0JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbnRyYWN0cy9jZWxsLXNlZ21lbnRlci5jb250cmFjdCc7XG5leHBvcnQgeyBDZWxscG9zZVNlZ21lbnRlclNlcnZpY2UgfSBmcm9tICcuL2xpYi90b29sYmFyL3NlZ21lbnRhdGlvbi9jZWxscG9zZS1zZWdtZW50ZXIuc2VydmljZSc7XG5cbi8vIOKUgOKUgCBTcGF0aWFsLW9taWNzIGRhdGEgcGxhbmUg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4vLyBUaGUgd2lyZSBmb3JtYXQgdGhlIGJ1bmRsZWQgZXhhbXBsZSBzZXJ2ZXIgc3BlYWtzLCBwbHVzIGEgcmVhZHktbWFkZVxuLy8gU3BhdGlhbERhdGFQb3J0IGFkYXB0ZXIgZm9yIGl0LiBCb3RoIGFyZSBPUFRJT05BTDogYSBob3N0IHdpdGggaXRzIG93blxuLy8gYmFja2VuZCBpbXBsZW1lbnRzIFNwYXRpYWxEYXRhUG9ydCBkaXJlY3RseSBhbmQgaW1wb3J0cyBuZWl0aGVyLlxuZXhwb3J0IHtcbiAgU3BhdGlhbERhdGFIdHRwU2VydmljZSxcbiAgU3VwZXJzZWRlZEVycm9yLFxufSBmcm9tICcuL2xpYi9pbXBsZW1lbnRhdGlvbnMvc3BhdGlhbC1kYXRhLWh0dHAvc3BhdGlhbC1kYXRhLWh0dHAuc2VydmljZSc7XG5leHBvcnQge1xuICBTUEFUSUFMX1dJUkVfVkVSU0lPTixcbiAgaXNMaXR0bGVFbmRpYW4sXG4gIGFzc2VydE1hbmlmZXN0VmVyc2lvbixcbiAgZGF0YXNldEZyb21NYW5pZmVzdCxcbiAgZGVjb2RlQ29vcmRzLFxuICBkZWNvZGVSYWRpdXMsXG4gIGRlY29kZUNvbHVtbixcbiAgZGVjb2RlRmVhdHVyZVZlY3RvcixcbiAgZGVjb2RlUG9seWdvbnMsXG59IGZyb20gJy4vbGliL2ltcGxlbWVudGF0aW9ucy9zcGF0aWFsLWRhdGEtaHR0cC9zcGF0aWFsLXdpcmUnO1xuZXhwb3J0IHR5cGUge1xuICBTcGF0aWFsTWFuaWZlc3QsXG4gIFNwYXRpYWxEYXRhc2V0U3VtbWFyeSxcbiAgU3BhdGlhbFJhZGl1c1NwZWMsXG59IGZyb20gJy4vbGliL2ltcGxlbWVudGF0aW9ucy9zcGF0aWFsLWRhdGEtaHR0cC9zcGF0aWFsLXdpcmUnO1xuLy8gQmFja2VuZC1uZXV0cmFsIGVuY29kaW5nczogY29sdW1ucy9nZW5lcyAtPiBwZXItcG9pbnQgY29sb3VycyBhbmQgc2l6ZXMuXG5leHBvcnQge1xuICBlbmNvZGVDYXRlZ29yaWNhbCxcbiAgZW5jb2RlQ29udGludW91cyxcbiAgcmVzb2x2ZUNhdGVnb3J5Q29sb3JzLFxuICBjb250cmFzdFdpbmRvdyxcbiAgbWFya2VyRGlhbWV0ZXJzLFxuICBsdXRGb3IsXG4gIERFRkFVTFRfQ0FURUdPUklDQUxfUEFMRVRURSxcbiAgREVGQVVMVF9NVVRFRF9PUEFDSVRZLFxuICBNSVNTSU5HX0NPTE9SLFxufSBmcm9tICcuL2xpYi9zcGF0aWFsL3NwYXRpYWwtZW5jb2RpbmcnO1xuZXhwb3J0IHR5cGUgeyBSR0JBLCBDYXRlZ29yaWNhbEVuY29kaW5nT3B0aW9ucywgQ29udGludW91c0VuY29kaW5nT3B0aW9ucyB9IGZyb20gJy4vbGliL3NwYXRpYWwvc3BhdGlhbC1lbmNvZGluZyc7XG4vLyBTZWxlY3Rpb246IHdoaWNoIG9ic2VydmF0aW9ucyBmYWxsIGluc2lkZSB0aGUgZHJhd24gUk9JcyAoYXMgYSBTcGF0aWFsU2VsZWN0aW9uTWFzayxcbi8vIGV4cG9ydGVkIHdpdGggdGhlIGRhdGFzZXQgY29udHJhY3QgYWJvdmUpLCBhbmQgdGhlIHNoYXJlZCBzdG9yZVxuLy8gdGhhdCBob2xkcyB0aGUgYW5zd2VyLlxuZXhwb3J0IHtcbiAgc2VsZWN0SW5SZWdpb25zLFxuICBzZWxlY3RCeUNhdGVnb3J5LFxuICBtdXRlZEZyb21TZWxlY3Rpb24sXG4gIHBvaW50SW5SaW5nLFxuICBlbXB0eVNlbGVjdGlvbixcbiAgY291bnRNYXNrLFxuICBtYXNrVG9JbmRpY2VzLFxufSBmcm9tICcuL2xpYi9zcGF0aWFsL3NwYXRpYWwtc2VsZWN0aW9uJztcbmV4cG9ydCB7IFNwYXRpYWxTZWxlY3Rpb25TdG9yZSB9IGZyb20gJy4vbGliL3N0b3JlL3NwYXRpYWwtc2VsZWN0aW9uLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29udHJhY3RzL2luc3RhbmNlLXNlZ21lbnRlci5jb250cmFjdCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb250cmFjdHMvc2VtYW50aWMtc2VnbWVudGVyLmNvbnRyYWN0JztcblxuLy8g4pSA4pSAIEdlbmVyaWMgY2xpZW50LXNpZGUgaW1hZ2UgdXRpbGl0aWVzIChzaGFyZWQgd2l0aCB0aGUgaG9zdCdzIHBpcGVsaW5lKSDilIDilIBcbmV4cG9ydCB7IFByb2Nlc3NpbmdJbWFnZSB9IGZyb20gJy4vbGliL3Byb2Nlc3NpbmcvcHJvY2Vzc2luZy1pbWFnZSc7XG5leHBvcnQgeyBjcm9wSW1hZ2UsIENyb3BJbWFnZU9wdGlvbnMgfSBmcm9tICcuL2xpYi9wcm9jZXNzaW5nL2ltYWdlLWNyb3AnO1xuZXhwb3J0IHsgSW1hZ2VDb252ZXJ0ZXJTZXJ2aWNlIH0gZnJvbSAnLi9saWIvcHJvY2Vzc2luZy9pbWFnZS1jb252ZXJ0ZXIuc2VydmljZSc7XG5cbi8vIOKUgOKUgCBTQU0gbW9kZWwgcmVnaXN0cnkgKGhvc3QgY29uZmlndXJlcyBob3N0ZWQgT05OWCBVUkxzIG9uY2UgYXZhaWxhYmxlKSDilIDilIBcbmV4cG9ydCB7XG4gIFNBTV9NT0RFTFMsXG4gIERFRkFVTFRfU0FNX01PREVMX0lELFxuICBnZXRTYW1Nb2RlbCxcbiAgaXNTYW1Nb2RlbFJlYWR5LFxuICBzZXRTYW1Nb2RlbFVybHMsXG4gIHNldERlZmF1bHRTYW1Nb2RlbCxcbiAgZ2V0RGVmYXVsdFNhbU1vZGVsSWQsXG59IGZyb20gJy4vbGliL3Rvb2xiYXIvc2VnbWVudGF0aW9uL3NhbS1tb2RlbC1yZWdpc3RyeSc7XG5cbi8vIOKUgOKUgCBvbm54cnVudGltZS13ZWIgV0FTTSBsb2NhdGlvbiAoaG9zdCBvdmVycmlkZXMgb25jZSwgYXQgYXBwIGluaXQpIOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuZXhwb3J0IHsgc2V0T3J0V2FzbUJhc2UsIGdldE9ydFdhc21CYXNlIH0gZnJvbSAnLi9saWIvdG9vbGJhci9zZWdtZW50YXRpb24vb3J0LXJ1bnRpbWUtY29uZmlnJztcbi8vIEZyZWVzIHRoZSBzZXZlcmFsIGh1bmRyZWQgTUIgb2YgZG93bmxvYWRlZCBTQU0gbW9kZWxzIHRoZSBicm93c2VyIGtlZXBzIHBlciBvcmlnaW4uXG5leHBvcnQgeyBjbGVhclNhbU1vZGVsQ2FjaGUgfSBmcm9tICcuL2xpYi90b29sYmFyL3NlZ21lbnRhdGlvbi9zYW0tb25ueC1jb3JlJztcblxuLy8g4pSA4pSAIE5ldXRyYWwgZGF0YSBtb2RlbHMg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvcmVnaW9uJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9jbGFzcy1wcmVzZXQnO1xuZXhwb3J0IHsgU2hhcGVTZWxlY3Rpb24gfSBmcm9tICcuL2xpYi9tb2RlbHMvc2hhcGUnO1xuXG4vLyDilIDilIAgUmVnaW9uIHNvdXJjZXM6IGxhcmdlIHJlZ2lvbiBzZXRzLCBkcmF3biBieSBsZXZlbCBvZiBkZXRhaWwg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4vLyBBIGhvc3QgaGFuZHMgb25lIG92ZXIgdGhyb3VnaCBgSUltYWdlSW5mby5yZWdpb25Tb3VyY2VVcmxgIG9yIGEgbGFyZ2UgYHJvaUpzb25TdHJgOyB0aGVzZVxuLy8gb3BlbiBvbmUgZGlyZWN0bHkgKGUuZy4gZm9yIGEgY3VzdG9tIGxvYWRlciwgb3IgYSB0ZXN0KS5cbmV4cG9ydCB7IG9wZW5HZW9Kc29uUmVnaW9uU291cmNlIH0gZnJvbSAnLi9saWIvcmVnaW9uLXNvdXJjZS93b3JrZXItcmVnaW9uLXNvdXJjZSc7XG5leHBvcnQgeyBvcGVuSHR0cFJlZ2lvblNvdXJjZSB9IGZyb20gJy4vbGliL3JlZ2lvbi1zb3VyY2UvaHR0cC1yZWdpb24tc291cmNlJztcbmV4cG9ydCB0eXBlIHsgSHR0cFJlZ2lvblNvdXJjZU9wdGlvbnMsIFdpcmVUaWxlRmVhdHVyZSB9IGZyb20gJy4vbGliL3JlZ2lvbi1zb3VyY2UvaHR0cC1yZWdpb24tc291cmNlJztcbmV4cG9ydCB7IFJFR0lPTl9TT1VSQ0VfTUlOX0NIQVJTIH0gZnJvbSAnLi9saWIvcmVnaW9uLXNvdXJjZS9yZWdpb24tc291cmNlJztcbmV4cG9ydCB7IGlzTGFiZWxWb2x1bWVOYW1lLCByZWFkTGFiZWxWb2x1bWUgfSBmcm9tICcuL2xpYi9yZWdpb24taW1wb3J0L2xhYmVsLXZvbHVtZSc7XG5leHBvcnQgdHlwZSB7IExhYmVsVm9sdW1lIH0gZnJvbSAnLi9saWIvcmVnaW9uLWltcG9ydC9sYWJlbC12b2x1bWUnO1xuZXhwb3J0IHsgbGFiZWxDbGFzc2VzLCBsYWJlbFNsaWNlR2VvSnNvbiB9IGZyb20gJy4vbGliL3JlZ2lvbi1pbXBvcnQvbGFiZWwtY2xhc3Nlcyc7XG5leHBvcnQgdHlwZSB7IExhYmVsQ2xhc3NlcyB9IGZyb20gJy4vbGliL3JlZ2lvbi1pbXBvcnQvbGFiZWwtY2xhc3Nlcyc7XG5leHBvcnQgeyBpbXBvcnRGaWxlLCBwbGFuUmVnaW9uSW1wb3J0IH0gZnJvbSAnLi9saWIvcmVnaW9uLWltcG9ydC9yZWdpb24taW1wb3J0JztcbmV4cG9ydCB0eXBlIHsgUmVnaW9uSW1wb3J0RmlsZSwgUmVnaW9uSW1wb3J0UGxhbiB9IGZyb20gJy4vbGliL3JlZ2lvbi1pbXBvcnQvcmVnaW9uLWltcG9ydCc7XG5leHBvcnQgdHlwZSB7IFJlZ2lvblNvdXJjZSwgUmVnaW9uU291cmNlVmlldywgU291cmNlRmVhdHVyZSB9IGZyb20gJy4vbGliL3JlZ2lvbi1zb3VyY2UvcmVnaW9uLXNvdXJjZSc7XG5leHBvcnQgdHlwZSB7XG4gIFJlZ2lvbkluZGV4UGFnZSxcbiAgUmVnaW9uSW5kZXhRdWVyeSxcbiAgUmVnaW9uSW5kZXhSb3csXG4gIFJlZ2lvblNvdXJjZUluZm8sXG4gIFJlZ2lvblRpbGUsXG4gIFJlZ2lvblRpbGVLZXksXG4gIFRpbGVGZWF0dXJlLFxufSBmcm9tICcuL2xpYi9yZWdpb24tc291cmNlL3JlZ2lvbi10aWxlcyc7XG5cbi8vIOKUgOKUgCBBbmd1bGFyIG1vZHVsZSArIHByb3ZpZGVycyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbi8vIERFUFJFQ0FURUQsIGtlcHQgZm9yIG9uZSBtaW5vciByZWxlYXNlOiBhIHNoaW0gcmUtZXhwb3J0aW5nIHRoZSBzdGFuZGFsb25lIGNvbXBvbmVudHNcbi8vIGJlbG93IGFuZCBiaW5kaW5nIHRoZSBob3N0LWZhY2luZyB0b2tlbnMgYXQgcm9vdC5cbmV4cG9ydCB7IFZpc3VhbGl6YXRpb25Nb2R1bGUgfSBmcm9tICcuL2xpYi92aXN1YWxpemF0aW9uLm1vZHVsZSc7XG4vLyBERVBSRUNBVEVEIGFzIHB1YmxpYyBBUEksIGtlcHQgZm9yIG9uZSByZWxlYXNlOiBob3N0cyBzaG91bGQgaW5qZWN0IHRoZSB0b2tlbnNcbi8vIChWSVNVQUxJWkVSIC8gUkVHSU9OX0VESVRPUl9BUEkgLyBDSEFOTkVMX0hJU1RPR1JBTV9BUEkpLCB3aGljaCB0aGUgbGlicmFyeSBiaW5kc1xuLy8gdG8gdGhpcyByb3V0ZXIgaXRzZWxmLiBSZWFjaGluZyBmb3IgdGhlIGNvbmNyZXRlIGNsYXNzIGJ5cGFzc2VzIHRoYXQgYmluZGluZy5cbmV4cG9ydCB7IFJvdXRpbmdWaXN1YWxpemVyU2VydmljZSB9IGZyb20gJy4vbGliL3JvdXRpbmctdmlzdWFsaXplci5zZXJ2aWNlJztcbi8vIFByb3ZpZGVyIGZhY3RvcnkgZm9yIGFuIGlzb2xhdGVkLCBjb21wb25lbnQtc2NvcGVkIHZpZXdlciBpbnN0YW5jZSAoZS5nLiBhXG4vLyBtb2RhbCB0aGF0IG11c3Qgbm90IHNoYXJlIHRoZSBtYWluIHZpZXdlcidzIHJlZ2lvbi9pbWFnZSBzdGF0ZSkuXG5leHBvcnQgeyBwcm92aWRlVmlzdWFsaXphdGlvbiB9IGZyb20gJy4vbGliL3Byb3ZpZGUtdmlzdWFsaXphdGlvbic7XG5cbi8vIEtleXMgb2YgdGhlIHRvYXN0IG91dGxldHMgdGhlIHZpc3VhbGl6ZXIgcmVuZGVycyBmb3IgdGhlIGxpYnJhcnkncyBvd24gbm90aWNlcy5cbi8vIEEgaG9zdCB0aGF0IHJlbmRlcnMgaXRzIG93biA8cC10b2FzdD4gd2l0aCBvbmUgb2YgdGhlc2Uga2V5cyBzaG93cyBlYWNoIG5vdGljZSB0d2ljZS5cbmV4cG9ydCB7IFZJWl9UT0FTVF9LRVksIFZJWl9BTEVSVF9UT0FTVF9LRVkgfSBmcm9tICcuL2xpYi90b2FzdC1vdXRsZXRzJztcblxuLy8g4pSA4pSAIFB1YmxpYyBjb21wb25lbnRzIChzdGFuZGFsb25lOyBhbHNvIHJlLWV4cG9ydGVkIGJ5IFZpc3VhbGl6YXRpb25Nb2R1bGUpIOKUgOKUgFxuLy8gVGhlIGVtYmVkZGFibGUgZWxlbWVudHMgKGA8dmlzdWFsaXplcj5gLCBgPHJlZ2lvbi1lZGl0b3I+YCwgYDxoZXgtY29sb3ItcGlja2VyPmAsXG4vLyBgPGNoYW5uZWwtaGlzdG9ncmFtPmAsIGA8c3BhdGlhbC1jb250cm9scz5gLCBgPHNwYXRpYWwtY2hhcnRzPmApLiBFYWNoIGlzIHN0YW5kYWxvbmU6XG4vLyBhIGhvc3QgaW1wb3J0cyBpdCBkaXJlY3RseSBhbmQgYmluZHMgdGhlIGJhY2tlbmQgY2hhaW4gd2l0aCBgcHJvdmlkZVZpc3VhbGl6YXRpb24oKWAuXG5leHBvcnQgeyBWaXN1YWxpemVyQ29tcG9uZW50IH0gZnJvbSAnLi9saWIvdmlzdWFsaXplci5jb21wb25lbnQnO1xuZXhwb3J0IHsgUmVnaW9uRWRpdG9yQ29tcG9uZW50IH0gZnJvbSAnLi9saWIvcmVnaW9uLWVkaXRvci9yZWdpb24tZWRpdG9yLmNvbXBvbmVudCc7XG5leHBvcnQgeyBIZXhDb2xvclBpY2tlckNvbXBvbmVudCB9IGZyb20gJy4vbGliL2hleC1jb2xvci1waWNrZXIvaGV4LWNvbG9yLXBpY2tlci5jb21wb25lbnQnO1xuZXhwb3J0IHsgQ2hhbm5lbEhpc3RvZ3JhbUNvbXBvbmVudCB9IGZyb20gJy4vbGliL2NoYW5uZWwtaGlzdG9ncmFtL2NoYW5uZWwtaGlzdG9ncmFtLmNvbXBvbmVudCc7XG5leHBvcnQgeyBTcGF0aWFsQ29udHJvbHNDb21wb25lbnQgfSBmcm9tICcuL2xpYi9zcGF0aWFsLWNvbnRyb2xzL3NwYXRpYWwtY29udHJvbHMuY29tcG9uZW50JztcbmV4cG9ydCB0eXBlIHsgU3BhdGlhbExlZ2VuZEVudHJ5IH0gZnJvbSAnLi9saWIvc3BhdGlhbC1jb250cm9scy9zcGF0aWFsLWNvbnRyb2xzLmNvbXBvbmVudCc7XG5leHBvcnQgeyBTcGF0aWFsQ2hhcnRzQ29tcG9uZW50IH0gZnJvbSAnLi9saWIvc3BhdGlhbC1jb250cm9scy9zcGF0aWFsLWNoYXJ0cy9zcGF0aWFsLWNoYXJ0cy5jb21wb25lbnQnO1xuLy8gUHVyZSBjaGFydCBidWlsZGVycywgZXhwb3J0ZWQgc28gYSBob3N0IGNhbiByZW5kZXIgdGhlIHNhbWUgZGlzdHJpYnV0aW9uc1xuLy8gd2hlcmV2ZXIgaXQgbGlrZXMgKGEgcmVwb3J0LCBhIGRpZmZlcmVudCBjaGFydGluZyBzdXJmYWNlKS5cbmV4cG9ydCB7XG4gIGJ1aWxkT21pY3NUcmFjZXMsXG4gIG9taWNzTGF5b3V0LFxuICBiZW5lZml0c0Zyb21Hcm91cGluZyxcbn0gZnJvbSAnLi9saWIvaW1wbGVtZW50YXRpb25zL3Bsb3RseS9vbWljcy10cmFjZS1idWlsZGVycyc7XG5leHBvcnQgdHlwZSB7XG4gIE9taWNzQ2hhcnRLaW5kLFxuICBPbWljc0dyb3VwaW5nLFxuICBPbWljc1RyYWNlSW5wdXQsXG59IGZyb20gJy4vbGliL2ltcGxlbWVudGF0aW9ucy9wbG90bHkvb21pY3MtdHJhY2UtYnVpbGRlcnMnO1xuIl19
@@ -8,4 +8,4 @@
8
8
  * structurally, so the host keeps passing its own instances unchanged.
9
9
  */
10
10
  export {};
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UuY29udHJhY3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2NvbnRyYWN0cy9pbWFnZS5jb250cmFjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7R0FRRyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogTGlicmFyeS1vd25lZCBkYXRhIGludGVyZmFjZXMgZm9yIHRoZSBpbWFnZSB0aGUgdmlzdWFsaXphdGlvbiByZW5kZXJzLlxuICpcbiAqIFRoZSB2aXN1YWxpemF0aW9uIHBhY2thZ2UgbXVzdCBub3QgaW1wb3J0IHRoZSBob3N0IGFwcCdzIGNvbmNyZXRlIG1vZGVsc1xuICogKGBtYWluL21vZGVscy9maWxlLWluZm9gKSwgb3IgaXQgY2FuJ3QgYmVjb21lIGEgc3RhbmRhbG9uZSBsaWJyYXJ5LiBUaGVzZVxuICogc2xpbSBpbnRlcmZhY2VzIGRlY2xhcmUgb25seSB0aGUgZmllbGRzIHRoZSBsaWJyYXJ5IHJlYWRzL3dyaXRlczsgdGhlIGhvc3Qnc1xuICogYEltYWdlSW5mb2AvYEltYWdlTWV0YWRhdGFgIGNsYXNzZXMgYXJlIHB1cmUgZGF0YSBob2xkZXJzIHRoYXQgc2F0aXNmeSB0aGVtXG4gKiBzdHJ1Y3R1cmFsbHksIHNvIHRoZSBob3N0IGtlZXBzIHBhc3NpbmcgaXRzIG93biBpbnN0YW5jZXMgdW5jaGFuZ2VkLlxuICovXG5cbi8qKiBQZXItY2hhbm5lbCBtZXRhZGF0YSBmcm9tIHRoZSBzZXJ2ZXIgZGVzY3JpcHRvciAoaXNzdWUgIzc2KS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUNoYW5uZWxJbmZvIHtcbiAgbmFtZTogc3RyaW5nO1xuICAvKiogU3VnZ2VzdGVkIGRpc3BsYXkgdGludCBhcyBcIiNSUkdHQkJcIi4gKi9cbiAgY29sb3I6IHN0cmluZztcbiAgLyoqIEVtYmVkZGVkIDI1Ni1lbnRyeSBkaXNwbGF5IExVVCBhcyBcIiNSUkdHQkJcIiAoaW50ZW5zaXR54oaSY29sb3IpLCBvclxuICAgKiAgbnVsbC91bmRlZmluZWQgd2hlbiB0aGUgZmlsZSBoYXMgbm8gcGFsZXR0ZSBmb3IgdGhpcyBjaGFubmVsLiAqL1xuICBsdXQ/OiBzdHJpbmdbXSB8IG51bGw7XG4gIGJpdERlcHRoPzogbnVtYmVyO1xuICAvKiogUGl4ZWwtdHlwZSBtaW5pbXVtIChlLmcuIDAgZm9yIHVuc2lnbmVkKS4gTmF0aXZlLXVuaXQgZmxvb3Igb2YgdGhlIHdpbmRvdy4gKi9cbiAgbWluQWxsb3dlZD86IG51bWJlcjtcbiAgLyoqIFBpeGVsLXR5cGUgbWF4aW11bSAoZS5nLiA2NTUzNSBmb3IgdW5zaWduZWQgMTYtYml0KS4gTmF0aXZlLXVuaXQgY2VpbGluZy4gKi9cbiAgbWF4QWxsb3dlZD86IG51bWJlcjtcbn1cblxuLyoqIFBlci1zZXJpZXMgaW1hZ2UgbWV0YWRhdGEgKHBoeXNpY2FsIHNpemUgKyBkaW1lbnNpb25zKS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUltYWdlTWV0YWRhdGEge1xuICBjaGFubmVsQ291bnQ6IG51bWJlcjtcbiAgcmdiQ2hhbm5lbHM6IG51bWJlcjtcbiAgeDogbnVtYmVyO1xuICB5OiBudW1iZXI7XG4gIHo6IG51bWJlcjtcbiAgLyoqIFBoeXNpY2FsIHBpeGVsIHNpemUgaW4gwrVtOyBudWxsL3VuZGVmaW5lZCB3aGVuIHRoZSBmb3JtYXQgcmVwb3J0cyBub25lLiAqL1xuICBtcHBYPzogbnVtYmVyIHwgbnVsbDtcbiAgbXBwWT86IG51bWJlciB8IG51bGw7XG4gIC8qKiBQaHlzaWNhbCBzcGFjaW5nIEJFVFdFRU4gc2xpY2VzIGluIMK1bSDigJQgdGhlIHogY291bnRlcnBhcnQgb2YgYG1wcFhgL2BtcHBZYCxcbiAgICogIGZvciBhIHN0YWNrIHRoYXQga25vd3MgaXQgKGEgcmVzYW1wbGVkIHZvbHVtZSwgYSBjb25mb2NhbCBzdGFjaykuIEl0IGlzIHdoYXRcbiAgICogIGxldHMgdGhlIDNEIHZvbHVtZSB2aWV3IHJlbmRlciB0cnVlIGFuaXNvdHJvcHk6IHdpdGggYWxsIHRocmVlIHByZXNlbnQgdGhlXG4gICAqICB3b3JsZCBib3ggaXMgdGhlIGltYWdlJ3MgcmVhbCBwaHlzaWNhbCBleHRlbnQsIHNvIDQwIHggNDAgeCAyMDAgwrVtIHZveGVsc1xuICAgKiAgcmVhZCBhcyBhIGJyYWluIGFuZCBub3QgYXMgYSBjdWJlLWFzcGVjdCBicmljay4gQWJzZW50LCB0aGUgdmlldyBmYWxscyBiYWNrXG4gICAqICB0byBpdHMgcmVzb2x1dGlvbi1pbnZhcmlhbnQgcmVmZXJlbmNlIGJveCwgd2hpY2ggaXMgc2hhcGUtb25seS4gKi9cbiAgbXBwWj86IG51bWJlciB8IG51bGw7XG4gIC8qKiBQZXItY2hhbm5lbCBuYW1lL2NvbG9yL0xVVCBmb3IgbXVsdGljaGFubmVsIChub24tUkdCKSBpbWFnZXMsIHdoZW4ga25vd24uICovXG4gIGNoYW5uZWxJbmZvPzogSUNoYW5uZWxJbmZvW10gfCBudWxsO1xufVxuXG4vKiogVGhlIGltYWdlIGN1cnJlbnRseSBiZWluZyB2aXN1YWxpemVkLiBGaWVsZCBvcHRpb25hbGl0eSBtaXJyb3JzIHRoZSBob3N0J3NcbiAqICBgSW1hZ2VJbmZvYCBzbyBpdHMgaW5zdGFuY2VzIGFyZSBhc3NpZ25hYmxlIHRvIHRoaXMgaW50ZXJmYWNlLiAqL1xuZXhwb3J0IGludGVyZmFjZSBJSW1hZ2VJbmZvIHtcbiAgaXNHcmF5c2NhbGU6IGJvb2xlYW47XG4gIHRydWVJbWFnZVNpemU6IG51bWJlcltdO1xuICB1cmxzOiBzdHJpbmdbXTtcbiAgLyoqIE9wdGlvbmFsIHNtYWxsLXRpZXIgVVJMcyAoZmFzdCBibHVycnkgcGxhY2Vob2xkZXIpLCAxOjEgd2l0aCBgdXJsc2AuICovXG4gIHNtYWxsVXJscz86IHN0cmluZ1tdO1xuICBpc1N0YWNrOiBib29sZWFuO1xuICBzaG93U3RhY2s6IGJvb2xlYW47XG4gIHNjYWxlUmF0aW86IGJvb2xlYW47XG4gIGZpbGVOYW1lOiBzdHJpbmc7XG4gIHJvaUpzb25TdHI/OiBzdHJpbmc7XG4gIC8qKiBQZXItc2xpY2UgUk9JIEdlb0pTT04sIGFsaWduZWQgMToxIHdpdGggYHVybHNgLCBmb3IgYSBmb2xkZXIgc3RhY2sgd2hlcmVcbiAgICogIGVhY2ggc2xpY2UgaXMgYSBzZXBhcmF0ZSBmaWxlIHdpdGggaXRzIG93biBzaWJsaW5nIGA8c3RlbT4uZ2VvanNvbmBcbiAgICogIChgbnVsbGAgZm9yIHNsaWNlcyB3aXRob3V0IG9uZSkuIFdoZW4gcHJlc2VudCwgdGhlIGNvbXBvbmVudCBhcHBsaWVzXG4gICAqICBgcm9pSnNvblN0cnNbel1gIGZvciB0aGUgZGlzcGxheWVkIHNsaWNlIGFuZCBzd2FwcyBpdCBvbiBzY3J1YiDigJQgYXNcbiAgICogIG9wcG9zZWQgdG8gdGhlIHNjYWxhciBgcm9pSnNvblN0cmAsIHdoaWNoIGlzIG9uZSBST0kgc2V0IGZvciB0aGUgd2hvbGVcbiAgICogIGltYWdlIChhIHNpbmdsZSBmaWxlIG9yIGEgc2VydmVyIHotc3RhY2spLiAoaml0LXVpIzkzKSAqL1xuICByb2lKc29uU3Rycz86IChzdHJpbmcgfCBudWxsKVtdO1xuICAvKiogUGVyLXNsaWNlLCBwZXItY2hhbm5lbCBwbGFuZSBVUkxzIGZvciBhIFNFUlZFUkxFU1MgbXVsdGljaGFubmVsIGltYWdlXG4gICAqICAoYHRpbGVkOiBmYWxzZWAgKyBgaW1hZ2VNZXRhWzBdLmNoYW5uZWxDb3VudCA+IDFgKS4gYGNoYW5uZWxVcmxzW3pdW2NdYFxuICAgKiAgaXMgYSBjb21wbGV0ZSBzaW5nbGUtYmFuZCBpbWFnZSBvZiBjaGFubmVsIGMgYXQgc2xpY2Ugei4gVGhlIE9TRCBzaW1wbGVcbiAgICogIHBhdGggY29tcG9zaXRlcyB0aGVtIGNsaWVudC1zaWRlIOKAlCBwZXItY2hhbm5lbCBjb2xvdXIvd2luZG93L2dhbW1hIGZyb21cbiAgICogIHRoZSBjaGFubmVsIHBhbmUg4oCUIGluc3RlYWQgb2Ygb3BlbmluZyB0aGUgZmxhdCBgdXJsc1t6XWAuIChqaXQtdWkjNzYpICovXG4gIGNoYW5uZWxVcmxzPzogc3RyaW5nW11bXTtcbiAgaW1hZ2VNZXRhOiBJSW1hZ2VNZXRhZGF0YVtdO1xuICAvKiogSG93IHRoZSBPcGVuU2VhZHJhZ29uIGJhY2tlbmQgc2hvdWxkIHNvdXJjZSB0aGlzIGltYWdlLlxuICAgKiAgLSBgdHJ1ZWAvYWJzZW50IChkZWZhdWx0KTogc2VydmVyLXRpbGVkIOKAlCBPU0QgcG9sbHMgYC90aWxlcy9pbmZvYCBmb3IgYVxuICAgKiAgICBweXJhbWlkIGFuZCBmZXRjaGVzIHRpbGVzIGZyb20gdGhlIHNsaWRlLWNyb3Agc2VydmVyICh3aG9sZS1zbGlkZSBwYXRoKS5cbiAgICogIC0gYGZhbHNlYDogYSBzZWxmLWNvbnRhaW5lZCwgZGlyZWN0bHktbG9hZGFibGUgaW1hZ2Ug4oCUIGB1cmxzW3pJbmRleF1gIGlzIGFcbiAgICogICAgY29tcGxldGUgaW1hZ2UgKGUuZy4gYSBgYmxvYjpgIFVSTCBidWlsdCBmcm9tIGEgY2xpZW50LXNpZGUgcGl4ZWwgYnVmZmVyKSxcbiAgICogICAgb3BlbmVkIHZpYSBPU0QncyBzaW5nbGUtaW1hZ2Ugc291cmNlIHdpdGggbm8gdGlsZSBzZXJ2ZXIuIExldHMgaW4tbWVtb3J5XG4gICAqICAgIGltYWdlcyAodGhlIHByb2Nlc3NpbmcgcGlwZWxpbmUpIHVzZSB0aGUgT1NEIHZpZXdlciB3aXRob3V0IGEgcm91bmQtdHJpcC4gKi9cbiAgdGlsZWQ/OiBib29sZWFuO1xuICAvKiogT25lLXNob3QgaGludDogb3BlbiB0aGUgc3RhY2sgb24gdGhpcyBzbGljZSBpbnN0ZWFkIG9mIHNsaWNlIDAgKGUuZy4gdGhlXG4gICAqICBob3N0IGNsaWNrZWQgYSBzcGVjaWZpYyBmaWxlIHdpdGhpbiBhIG51bWJlcmVkIGltYWdlIHNlcmllcykuIFRoZVxuICAgKiAgY29tcG9uZW50IGNvbnN1bWVzIGFuZCBjbGVhcnMgdGhpcyB0aGUgZmlyc3QgdGltZSBpdCBzZWVzIHRoZSBvYmplY3QsIHNvXG4gICAqICByZS1kZWxpdmVyaW5nIHRoZSBzYW1lIEltYWdlSW5mbyAoZS5nLiBhIHBsb3QtdHlwZSBzd2l0Y2gpIGRvZXNuJ3QgcmVzZXRcbiAgICogIHRoZSB1c2VyJ3MgY3VycmVudCBzY3J1YiBwb3NpdGlvbi4gKi9cbiAgaW5pdGlhbFpJbmRleD86IG51bWJlcjtcbn1cbiJdfQ==
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UuY29udHJhY3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2NvbnRyYWN0cy9pbWFnZS5jb250cmFjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7R0FRRyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogTGlicmFyeS1vd25lZCBkYXRhIGludGVyZmFjZXMgZm9yIHRoZSBpbWFnZSB0aGUgdmlzdWFsaXphdGlvbiByZW5kZXJzLlxuICpcbiAqIFRoZSB2aXN1YWxpemF0aW9uIHBhY2thZ2UgbXVzdCBub3QgaW1wb3J0IHRoZSBob3N0IGFwcCdzIGNvbmNyZXRlIG1vZGVsc1xuICogKGBtYWluL21vZGVscy9maWxlLWluZm9gKSwgb3IgaXQgY2FuJ3QgYmVjb21lIGEgc3RhbmRhbG9uZSBsaWJyYXJ5LiBUaGVzZVxuICogc2xpbSBpbnRlcmZhY2VzIGRlY2xhcmUgb25seSB0aGUgZmllbGRzIHRoZSBsaWJyYXJ5IHJlYWRzL3dyaXRlczsgdGhlIGhvc3Qnc1xuICogYEltYWdlSW5mb2AvYEltYWdlTWV0YWRhdGFgIGNsYXNzZXMgYXJlIHB1cmUgZGF0YSBob2xkZXJzIHRoYXQgc2F0aXNmeSB0aGVtXG4gKiBzdHJ1Y3R1cmFsbHksIHNvIHRoZSBob3N0IGtlZXBzIHBhc3NpbmcgaXRzIG93biBpbnN0YW5jZXMgdW5jaGFuZ2VkLlxuICovXG5cbi8qKiBQZXItY2hhbm5lbCBtZXRhZGF0YSBmcm9tIHRoZSBzZXJ2ZXIgZGVzY3JpcHRvciAoaXNzdWUgIzc2KS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUNoYW5uZWxJbmZvIHtcbiAgbmFtZTogc3RyaW5nO1xuICAvKiogU3VnZ2VzdGVkIGRpc3BsYXkgdGludCBhcyBcIiNSUkdHQkJcIi4gKi9cbiAgY29sb3I6IHN0cmluZztcbiAgLyoqIEVtYmVkZGVkIDI1Ni1lbnRyeSBkaXNwbGF5IExVVCBhcyBcIiNSUkdHQkJcIiAoaW50ZW5zaXR54oaSY29sb3IpLCBvclxuICAgKiAgbnVsbC91bmRlZmluZWQgd2hlbiB0aGUgZmlsZSBoYXMgbm8gcGFsZXR0ZSBmb3IgdGhpcyBjaGFubmVsLiAqL1xuICBsdXQ/OiBzdHJpbmdbXSB8IG51bGw7XG4gIGJpdERlcHRoPzogbnVtYmVyO1xuICAvKiogUGl4ZWwtdHlwZSBtaW5pbXVtIChlLmcuIDAgZm9yIHVuc2lnbmVkKS4gTmF0aXZlLXVuaXQgZmxvb3Igb2YgdGhlIHdpbmRvdy4gKi9cbiAgbWluQWxsb3dlZD86IG51bWJlcjtcbiAgLyoqIFBpeGVsLXR5cGUgbWF4aW11bSAoZS5nLiA2NTUzNSBmb3IgdW5zaWduZWQgMTYtYml0KS4gTmF0aXZlLXVuaXQgY2VpbGluZy4gKi9cbiAgbWF4QWxsb3dlZD86IG51bWJlcjtcbn1cblxuLyoqIFBlci1zZXJpZXMgaW1hZ2UgbWV0YWRhdGEgKHBoeXNpY2FsIHNpemUgKyBkaW1lbnNpb25zKS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUltYWdlTWV0YWRhdGEge1xuICBjaGFubmVsQ291bnQ6IG51bWJlcjtcbiAgcmdiQ2hhbm5lbHM6IG51bWJlcjtcbiAgeDogbnVtYmVyO1xuICB5OiBudW1iZXI7XG4gIHo6IG51bWJlcjtcbiAgLyoqIFBoeXNpY2FsIHBpeGVsIHNpemUgaW4gwrVtOyBudWxsL3VuZGVmaW5lZCB3aGVuIHRoZSBmb3JtYXQgcmVwb3J0cyBub25lLiAqL1xuICBtcHBYPzogbnVtYmVyIHwgbnVsbDtcbiAgbXBwWT86IG51bWJlciB8IG51bGw7XG4gIC8qKiBQaHlzaWNhbCBzcGFjaW5nIEJFVFdFRU4gc2xpY2VzIGluIMK1bSDigJQgdGhlIHogY291bnRlcnBhcnQgb2YgYG1wcFhgL2BtcHBZYCxcbiAgICogIGZvciBhIHN0YWNrIHRoYXQga25vd3MgaXQgKGEgcmVzYW1wbGVkIHZvbHVtZSwgYSBjb25mb2NhbCBzdGFjaykuIEl0IGlzIHdoYXRcbiAgICogIGxldHMgdGhlIDNEIHZvbHVtZSB2aWV3IHJlbmRlciB0cnVlIGFuaXNvdHJvcHk6IHdpdGggYWxsIHRocmVlIHByZXNlbnQgdGhlXG4gICAqICB3b3JsZCBib3ggaXMgdGhlIGltYWdlJ3MgcmVhbCBwaHlzaWNhbCBleHRlbnQsIHNvIDQwIHggNDAgeCAyMDAgwrVtIHZveGVsc1xuICAgKiAgcmVhZCBhcyBhIGJyYWluIGFuZCBub3QgYXMgYSBjdWJlLWFzcGVjdCBicmljay4gQWJzZW50LCB0aGUgdmlldyBmYWxscyBiYWNrXG4gICAqICB0byBpdHMgcmVzb2x1dGlvbi1pbnZhcmlhbnQgcmVmZXJlbmNlIGJveCwgd2hpY2ggaXMgc2hhcGUtb25seS4gKi9cbiAgbXBwWj86IG51bWJlciB8IG51bGw7XG4gIC8qKiBQZXItY2hhbm5lbCBuYW1lL2NvbG9yL0xVVCBmb3IgbXVsdGljaGFubmVsIChub24tUkdCKSBpbWFnZXMsIHdoZW4ga25vd24uICovXG4gIGNoYW5uZWxJbmZvPzogSUNoYW5uZWxJbmZvW10gfCBudWxsO1xufVxuXG4vKiogVGhlIGltYWdlIGN1cnJlbnRseSBiZWluZyB2aXN1YWxpemVkLiBGaWVsZCBvcHRpb25hbGl0eSBtaXJyb3JzIHRoZSBob3N0J3NcbiAqICBgSW1hZ2VJbmZvYCBzbyBpdHMgaW5zdGFuY2VzIGFyZSBhc3NpZ25hYmxlIHRvIHRoaXMgaW50ZXJmYWNlLiAqL1xuZXhwb3J0IGludGVyZmFjZSBJSW1hZ2VJbmZvIHtcbiAgaXNHcmF5c2NhbGU6IGJvb2xlYW47XG4gIHRydWVJbWFnZVNpemU6IG51bWJlcltdO1xuICB1cmxzOiBzdHJpbmdbXTtcbiAgLyoqIE9wdGlvbmFsIHNtYWxsLXRpZXIgVVJMcyAoZmFzdCBibHVycnkgcGxhY2Vob2xkZXIpLCAxOjEgd2l0aCBgdXJsc2AuICovXG4gIHNtYWxsVXJscz86IHN0cmluZ1tdO1xuICBpc1N0YWNrOiBib29sZWFuO1xuICBzaG93U3RhY2s6IGJvb2xlYW47XG4gIHNjYWxlUmF0aW86IGJvb2xlYW47XG4gIGZpbGVOYW1lOiBzdHJpbmc7XG4gIHJvaUpzb25TdHI/OiBzdHJpbmc7XG4gIC8qKiBQZXItc2xpY2UgUk9JIEdlb0pTT04sIGFsaWduZWQgMToxIHdpdGggYHVybHNgLCBmb3IgYSBmb2xkZXIgc3RhY2sgd2hlcmVcbiAgICogIGVhY2ggc2xpY2UgaXMgYSBzZXBhcmF0ZSBmaWxlIHdpdGggaXRzIG93biBzaWJsaW5nIGA8c3RlbT4uZ2VvanNvbmBcbiAgICogIChgbnVsbGAgZm9yIHNsaWNlcyB3aXRob3V0IG9uZSkuIFdoZW4gcHJlc2VudCwgdGhlIGNvbXBvbmVudCBhcHBsaWVzXG4gICAqICBgcm9pSnNvblN0cnNbel1gIGZvciB0aGUgZGlzcGxheWVkIHNsaWNlIGFuZCBzd2FwcyBpdCBvbiBzY3J1YiDigJQgYXNcbiAgICogIG9wcG9zZWQgdG8gdGhlIHNjYWxhciBgcm9pSnNvblN0cmAsIHdoaWNoIGlzIG9uZSBST0kgc2V0IGZvciB0aGUgd2hvbGVcbiAgICogIGltYWdlIChhIHNpbmdsZSBmaWxlIG9yIGEgc2VydmVyIHotc3RhY2spLiAoaml0LXVpIzkzKSAqL1xuICByb2lKc29uU3Rycz86IChzdHJpbmcgfCBudWxsKVtdO1xuICAvKiogQmFzZSBVUkwgb2YgYSBzZXJ2ZXItc2lkZSByZWdpb24gc291cmNlIGZvciB0aGlzIGltYWdlIChzZWUgYG9wZW5IdHRwUmVnaW9uU291cmNlYCk6XG4gICAqICBpdHMgcmVnaW9ucyBhcmUgZHJhd24gZnJvbSB0aGUgc2VydmVyJ3MgbGV2ZWwtb2YtZGV0YWlsIHRpbGVzIGluc3RlYWQgb2YgYmVpbmcgbG9hZGVkXG4gICAqICBmcm9tIGByb2lKc29uU3RyYC4gT24gYSBzdGFjaywgc2xpY2UgeiBzaG93cyB0aGUgc291cmNlJ3MgcGxhbmUgei4gKi9cbiAgcmVnaW9uU291cmNlVXJsPzogc3RyaW5nO1xuICAvKiogUGVyLXNsaWNlLCBwZXItY2hhbm5lbCBwbGFuZSBVUkxzIGZvciBhIFNFUlZFUkxFU1MgbXVsdGljaGFubmVsIGltYWdlXG4gICAqICAoYHRpbGVkOiBmYWxzZWAgKyBgaW1hZ2VNZXRhWzBdLmNoYW5uZWxDb3VudCA+IDFgKS4gYGNoYW5uZWxVcmxzW3pdW2NdYFxuICAgKiAgaXMgYSBjb21wbGV0ZSBzaW5nbGUtYmFuZCBpbWFnZSBvZiBjaGFubmVsIGMgYXQgc2xpY2Ugei4gVGhlIE9TRCBzaW1wbGVcbiAgICogIHBhdGggY29tcG9zaXRlcyB0aGVtIGNsaWVudC1zaWRlIOKAlCBwZXItY2hhbm5lbCBjb2xvdXIvd2luZG93L2dhbW1hIGZyb21cbiAgICogIHRoZSBjaGFubmVsIHBhbmUg4oCUIGluc3RlYWQgb2Ygb3BlbmluZyB0aGUgZmxhdCBgdXJsc1t6XWAuIChqaXQtdWkjNzYpICovXG4gIGNoYW5uZWxVcmxzPzogc3RyaW5nW11bXTtcbiAgaW1hZ2VNZXRhOiBJSW1hZ2VNZXRhZGF0YVtdO1xuICAvKiogSG93IHRoZSBPcGVuU2VhZHJhZ29uIGJhY2tlbmQgc2hvdWxkIHNvdXJjZSB0aGlzIGltYWdlLlxuICAgKiAgLSBgdHJ1ZWAvYWJzZW50IChkZWZhdWx0KTogc2VydmVyLXRpbGVkIOKAlCBPU0QgcG9sbHMgYC90aWxlcy9pbmZvYCBmb3IgYVxuICAgKiAgICBweXJhbWlkIGFuZCBmZXRjaGVzIHRpbGVzIGZyb20gdGhlIHNsaWRlLWNyb3Agc2VydmVyICh3aG9sZS1zbGlkZSBwYXRoKS5cbiAgICogIC0gYGZhbHNlYDogYSBzZWxmLWNvbnRhaW5lZCwgZGlyZWN0bHktbG9hZGFibGUgaW1hZ2Ug4oCUIGB1cmxzW3pJbmRleF1gIGlzIGFcbiAgICogICAgY29tcGxldGUgaW1hZ2UgKGUuZy4gYSBgYmxvYjpgIFVSTCBidWlsdCBmcm9tIGEgY2xpZW50LXNpZGUgcGl4ZWwgYnVmZmVyKSxcbiAgICogICAgb3BlbmVkIHZpYSBPU0QncyBzaW5nbGUtaW1hZ2Ugc291cmNlIHdpdGggbm8gdGlsZSBzZXJ2ZXIuIExldHMgaW4tbWVtb3J5XG4gICAqICAgIGltYWdlcyAodGhlIHByb2Nlc3NpbmcgcGlwZWxpbmUpIHVzZSB0aGUgT1NEIHZpZXdlciB3aXRob3V0IGEgcm91bmQtdHJpcC4gKi9cbiAgdGlsZWQ/OiBib29sZWFuO1xuICAvKiogT25lLXNob3QgaGludDogb3BlbiB0aGUgc3RhY2sgb24gdGhpcyBzbGljZSBpbnN0ZWFkIG9mIHNsaWNlIDAgKGUuZy4gdGhlXG4gICAqICBob3N0IGNsaWNrZWQgYSBzcGVjaWZpYyBmaWxlIHdpdGhpbiBhIG51bWJlcmVkIGltYWdlIHNlcmllcykuIFRoZVxuICAgKiAgY29tcG9uZW50IGNvbnN1bWVzIGFuZCBjbGVhcnMgdGhpcyB0aGUgZmlyc3QgdGltZSBpdCBzZWVzIHRoZSBvYmplY3QsIHNvXG4gICAqICByZS1kZWxpdmVyaW5nIHRoZSBzYW1lIEltYWdlSW5mbyAoZS5nLiBhIHBsb3QtdHlwZSBzd2l0Y2gpIGRvZXNuJ3QgcmVzZXRcbiAgICogIHRoZSB1c2VyJ3MgY3VycmVudCBzY3J1YiBwb3NpdGlvbi4gKi9cbiAgaW5pdGlhbFpJbmRleD86IG51bWJlcjtcbn1cbiJdfQ==
@@ -1,4 +1,4 @@
1
1
  import { InjectionToken } from '@angular/core';
2
2
  /** DI token for the host's {@link RegionIoPort}. Required by the region editor. */
3
3
  export const REGION_IO_PORT = new InjectionToken('REGION_IO_PORT');
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaW9uLWlvLnBvcnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbnRyYWN0cy9wb3J0cy9yZWdpb24taW8ucG9ydC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBMkIvQyxtRkFBbUY7QUFDbkYsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLElBQUksY0FBYyxDQUFlLGdCQUFnQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG4vKipcbiAqIFJlZ2lvbiBmaWxlIEkvTywgaW52ZXJ0ZWQgYXMgYSBwb3J0IHNvIHRoZSB2aXN1YWxpemF0aW9uIGxpYnJhcnkncyByZWdpb25cbiAqIGVkaXRvciBkb2Vzbid0IGltcG9ydCB0aGUgYXBwJ3MgYEZpbGVzU2VydmljZWAgKHRoZSBsaWJyYXJ5IHBlcmZvcm1zIG5vIGJhY2tlbmRcbiAqIHJlcXVlc3RzIGl0c2VsZikuIFRoZSBob3N0IHN1cHBsaWVzIGFuIGFkYXB0ZXIgdGhhdCBkZWxlZ2F0ZXMgdG8gaXRzIGZpbGVcbiAqIHNlcnZpY2U7IHRoZSBlZGl0b3Igb25seSBuZWVkcyB0aGUgc2VsZWN0ZWQgZmlsZSdzIG5hbWUgKHRvIGRlcml2ZSBkZWZhdWx0IFJPSVxuICogZmlsZW5hbWVzKSwgYW4gZXhpc3RlbmNlIGNoZWNrLCBhbmQgYSBzYXZlLiBCb3VuZCB0byB7QGxpbmsgUkVHSU9OX0lPX1BPUlR9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlZ2lvbklvUG9ydCB7XG4gIC8qKiBOYW1lIG9mIHRoZSBjdXJyZW50bHkgc2VsZWN0ZWQgZmlsZSAoZS5nLiBcImltYWdlLnRpZlwiKSwgb3IgdW5kZWZpbmVkIHdoZW5cbiAgICogIG5vbmUgaXMgc2VsZWN0ZWQuIFVzZWQgdG8gZGVyaXZlIGEgZGVmYXVsdCBST0kgZmlsZW5hbWUgc3RlbS4gKi9cbiAgZ2V0U2VsZWN0ZWRGaWxlTmFtZSgpOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIC8qKiBXaGV0aGVyIGFuIFJPSSBmaWxlIG5hbWVkIGBuYW1lYCBhbHJlYWR5IGV4aXN0cyBmb3IgdGhlIHNlbGVjdGVkIGZpbGUuICovXG4gIHJvaUZpbGVFeGlzdHMobmFtZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgLyoqIFBlcnNpc3QgdGhlIHJlZ2lvbnMgKGFscmVhZHkgc2VyaWFsaXplZCB0byBhIEdlb0pTT04gc3RyaW5nKSBhcyBgZmlsZW5hbWVgLiAqL1xuICBzYXZlR2VvSnNvbihnZW9Kc29uU3RyOiBzdHJpbmcsIGZpbGVuYW1lOiBzdHJpbmcpOiBPYnNlcnZhYmxlPHZvaWQ+O1xuICAvKipcbiAgICogUGVyc2lzdCBhIGZvbGRlci1zdGFjaydzIHJlZ2lvbnMgYXMgb25lIGdlb2pzb24gcGVyIHNsaWNlLWZpbGUgKGppdC11aSM5MykuXG4gICAqIEVhY2ggZW50cnkncyBgemAgaXMgdGhlIHplcm8tYmFzZWQgc2xpY2UgaW5kZXg7IHRoZSBob3N0IG1hcHMgaXQgdG8gdGhhdFxuICAgKiBzbGljZS1maWxlJ3Mgc2libGluZyBgPHN0ZW0+Lmdlb2pzb25gIGluIHRoZSBzYW1lIGZvbGRlci4gQ29tcGxldGVzIG9uY2VcbiAgICogZXZlcnkgc2xpY2UgaGFzIGJlZW4gd3JpdHRlbi4gKGppdC11aSM5MylcbiAgICovXG4gIHNhdmVTbGljZUdlb0pzb25zKHNsaWNlczogeyB6OiBudW1iZXI7IGdlb0pzb25TdHI6IHN0cmluZyB9W10pOiBPYnNlcnZhYmxlPHZvaWQ+O1xufVxuXG4vKiogREkgdG9rZW4gZm9yIHRoZSBob3N0J3Mge0BsaW5rIFJlZ2lvbklvUG9ydH0uIFJlcXVpcmVkIGJ5IHRoZSByZWdpb24gZWRpdG9yLiAqL1xuZXhwb3J0IGNvbnN0IFJFR0lPTl9JT19QT1JUID0gbmV3IEluamVjdGlvblRva2VuPFJlZ2lvbklvUG9ydD4oJ1JFR0lPTl9JT19QT1JUJyk7XG4iXX0=
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaW9uLWlvLnBvcnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbnRyYWN0cy9wb3J0cy9yZWdpb24taW8ucG9ydC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBNEMvQyxtRkFBbUY7QUFDbkYsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLElBQUksY0FBYyxDQUFlLGdCQUFnQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG4vKipcbiAqIFJlZ2lvbiBmaWxlIEkvTywgaW52ZXJ0ZWQgYXMgYSBwb3J0IHNvIHRoZSB2aXN1YWxpemF0aW9uIGxpYnJhcnkncyByZWdpb25cbiAqIGVkaXRvciBkb2Vzbid0IGltcG9ydCB0aGUgYXBwJ3MgYEZpbGVzU2VydmljZWAgKHRoZSBsaWJyYXJ5IHBlcmZvcm1zIG5vIGJhY2tlbmRcbiAqIHJlcXVlc3RzIGl0c2VsZikuIFRoZSBob3N0IHN1cHBsaWVzIGFuIGFkYXB0ZXIgdGhhdCBkZWxlZ2F0ZXMgdG8gaXRzIGZpbGVcbiAqIHNlcnZpY2U7IHRoZSBlZGl0b3Igb25seSBuZWVkcyB0aGUgc2VsZWN0ZWQgZmlsZSdzIG5hbWUgKHRvIGRlcml2ZSBkZWZhdWx0IFJPSVxuICogZmlsZW5hbWVzKSwgYW4gZXhpc3RlbmNlIGNoZWNrLCBhbmQgYSBzYXZlLiBCb3VuZCB0byB7QGxpbmsgUkVHSU9OX0lPX1BPUlR9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlZ2lvbklvUG9ydCB7XG4gIC8qKiBOYW1lIG9mIHRoZSBjdXJyZW50bHkgc2VsZWN0ZWQgZmlsZSAoZS5nLiBcImltYWdlLnRpZlwiKSwgb3IgdW5kZWZpbmVkIHdoZW5cbiAgICogIG5vbmUgaXMgc2VsZWN0ZWQuIFVzZWQgdG8gZGVyaXZlIGEgZGVmYXVsdCBST0kgZmlsZW5hbWUgc3RlbS4gKi9cbiAgZ2V0U2VsZWN0ZWRGaWxlTmFtZSgpOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIC8qKiBXaGV0aGVyIGFuIFJPSSBmaWxlIG5hbWVkIGBuYW1lYCBhbHJlYWR5IGV4aXN0cyBmb3IgdGhlIHNlbGVjdGVkIGZpbGUuICovXG4gIHJvaUZpbGVFeGlzdHMobmFtZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgLyoqIFBlcnNpc3QgdGhlIHJlZ2lvbnMgKGFscmVhZHkgc2VyaWFsaXplZCB0byBhIEdlb0pTT04gc3RyaW5nKSBhcyBgZmlsZW5hbWVgLiAqL1xuICBzYXZlR2VvSnNvbihnZW9Kc29uU3RyOiBzdHJpbmcsIGZpbGVuYW1lOiBzdHJpbmcpOiBPYnNlcnZhYmxlPHZvaWQ+O1xuICAvKipcbiAgICogUGVyc2lzdCBhIGZvbGRlci1zdGFjaydzIHJlZ2lvbnMgYXMgb25lIGdlb2pzb24gcGVyIHNsaWNlLWZpbGUgKGppdC11aSM5MykuXG4gICAqIEVhY2ggZW50cnkncyBgemAgaXMgdGhlIHplcm8tYmFzZWQgc2xpY2UgaW5kZXg7IHRoZSBob3N0IG1hcHMgaXQgdG8gdGhhdFxuICAgKiBzbGljZS1maWxlJ3Mgc2libGluZyBgPHN0ZW0+Lmdlb2pzb25gIGluIHRoZSBzYW1lIGZvbGRlci4gQ29tcGxldGVzIG9uY2VcbiAgICogZXZlcnkgc2xpY2UgaGFzIGJlZW4gd3JpdHRlbi4gKGppdC11aSM5MylcbiAgICovXG4gIHNhdmVTbGljZUdlb0pzb25zKHNsaWNlczogeyB6OiBudW1iZXI7IGdlb0pzb25TdHI6IHN0cmluZyB9W10pOiBPYnNlcnZhYmxlPHZvaWQ+O1xuICAvKipcbiAgICogXCJJbXBvcnQgcmVnaW9ucyBmcm9tIHNlcnZlclwiOiBsZXQgdGhlIHVzZXIgcGljayByZWdpb24gZmlsZXMgb3IgYSByZWdpb24gc2V0IGluIHRoZSBob3N0J3NcbiAgICogc3RvcmFnZSAodGhlIGN1cnJlbnQgcHJvamVjdCdzIGJ1Y2tldCwgc2F5KSBhbmQgaGFuZCB0aGVtIG92ZXIuIEVtaXRzIG51bGwgd2hlbiB0aGUgdXNlclxuICAgKiBjYW5jZWxzLiBXaXRob3V0IGl0LCB0aGUgUmVnaW9uIEVkaXRvciBzaG93cyBubyBzZXJ2ZXIgaW1wb3J0LlxuICAgKi9cbiAgcGlja1NlcnZlclJlZ2lvbnM/KCk6IE9ic2VydmFibGU8U2VydmVyUmVnaW9uUGljayB8IG51bGw+O1xufVxuXG4vKipcbiAqIFJlZ2lvbnMgcGlja2VkIG9uIHRoZSBob3N0J3Mgc2VydmVyIChzZWUge0BsaW5rIFJlZ2lvbklvUG9ydC5waWNrU2VydmVyUmVnaW9uc30pOiBmaWxlcyBpdFxuICogZG93bmxvYWRlZCwgaW1wb3J0ZWQgYXMgdGhlIFJlZ2lvbiBFZGl0b3IgaW1wb3J0cyBjaG9zZW4gZmlsZXMgKG9uZSBHZW9KU09OOyBhIGxhYmVsIHZvbHVtZVxuICogYC5uaWlgIC8gYC5uaWkuZ3pgIC8gYC5ucnJkYCB3aXRoIGl0cyBvbnRvbG9neSBKU09OOyBhIGZvbGRlcidzIHBlci1zbGljZSBHZW9KU09OIGZpbGVzIHdpdGggaXRzXG4gKiBgcmVnaW9uc2V0Lmpzb25gKSwgb3IgYSByZWdpb24gc2V0IGl0cyBzZXJ2ZXIgc2VydmVzIGJ5IGxldmVsIG9mIGRldGFpbCAoaml0LXNlcnZpY2Unc1xuICogYC9yZWdpb25zL3tpZH0vYCksIHJlYWQgdGhyb3VnaCB0aGUgaG9zdCdzIGBIdHRwQ2xpZW50YCB3aXRob3V0IGRvd25sb2FkaW5nIGl0LlxuICovXG5leHBvcnQgdHlwZSBTZXJ2ZXJSZWdpb25QaWNrID1cbiAgfCB7IGtpbmQ6ICdmaWxlcyc7IGZpbGVzOiBBcnJheTx7IG5hbWU6IHN0cmluZzsgZGF0YTogQmxvYiB8IEFycmF5QnVmZmVyIHwgVWludDhBcnJheSB8IHN0cmluZyB9PiB9XG4gIHwgeyBraW5kOiAnc291cmNlJzsgdXJsOiBzdHJpbmc7IG5hbWU/OiBzdHJpbmcgfTtcblxuLyoqIERJIHRva2VuIGZvciB0aGUgaG9zdCdzIHtAbGluayBSZWdpb25Jb1BvcnR9LiBSZXF1aXJlZCBieSB0aGUgcmVnaW9uIGVkaXRvci4gKi9cbmV4cG9ydCBjb25zdCBSRUdJT05fSU9fUE9SVCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxSZWdpb25Jb1BvcnQ+KCdSRUdJT05fSU9fUE9SVCcpO1xuIl19
@@ -1,4 +1,4 @@
1
1
  import { InjectionToken } from '@angular/core';
2
2
  /** DI token the Region Editor injects instead of the concrete service. */
3
3
  export const REGION_EDITOR_API = new InjectionToken('REGION_EDITOR_API');
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaW9uLWVkaXRvci1hcGkuY29udHJhY3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2NvbnRyYWN0cy9yZWdpb24tZWRpdG9yLWFwaS5jb250cmFjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBb0cvQywwRUFBMEU7QUFDMUUsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxjQUFjLENBQW1CLG1CQUFtQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgUmVnaW9uIH0gZnJvbSAnLi4vbW9kZWxzL3JlZ2lvbic7XG5pbXBvcnQgeyBDbGFzc1ByZXNldCwgUHJlc2V0U2V0IH0gZnJvbSAnLi4vbW9kZWxzL2NsYXNzLXByZXNldCc7XG5pbXBvcnQgeyBJSW1hZ2VNZXRhZGF0YSB9IGZyb20gJy4vaW1hZ2UuY29udHJhY3QnO1xuXG4vKipcbiAqIFB1YmxpYywgaW1wbGVtZW50YXRpb24tYWdub3N0aWMgc3VyZmFjZSB0aGF0IHRoZSBSZWdpb24gRWRpdG9yIChhbiAqZXh0ZXJuYWwqXG4gKiBjb25zdW1lciBvZiB0aGUgdmlzdWFsaXphdGlvbiBwYWNrYWdlKSBkZXBlbmRzIG9uLiBJdCBkZWFscyBvbmx5IGluXG4gKiAqKmFubm90YXRpb24qKiByZWdpb25zIOKAlCBpbnRlbnNpdHktcHJvZmlsZSBsaW5lcyAoYFJlZ2lvbi5pc1Byb2ZpbGUoKWApIGFyZVxuICogb3duZWQgYnkgdGhlIGludGVuc2l0eSB0b29sIGFuZCBhcmUgZmlsdGVyZWQgb3V0IC8gcHJlc2VydmVkIGludGVybmFsbHksIHNvXG4gKiB0aGUgZWRpdG9yIG5ldmVyIHNlZXMgb3IgZGlzdHVyYnMgdGhlbS5cbiAqXG4gKiBUaGUgZWRpdG9yIGluamVjdHMgdGhpcyB2aWEge0BsaW5rIFJFR0lPTl9FRElUT1JfQVBJfSAoYm91bmQgdG8gdGhlIGNvbmNyZXRlXG4gKiBgUm91dGluZ1Zpc3VhbGl6ZXJTZXJ2aWNlYCB3aXRoIGB1c2VFeGlzdGluZ2ApIGluc3RlYWQgb2YgaW1wb3J0aW5nIHRoZVxuICogc2VydmljZSBjbGFzcywgc28gaXQgY2Fubm90IHJlYWNoIHRoZSBpbXBsZW1lbnRhdGlvbi4gVGhpcyBpcyB0aGUgYm91bmRhcnlcbiAqIHRoYXQgbGV0cyBgc2VydmljZXMvdmlzdWFsaXphdGlvbmAgYmVjb21lIGEgbGlicmFyeSB3aG9zZSBvbmx5IHB1YmxpYyBzdXJmYWNlXG4gKiBpcyB0aGUgY29udHJhY3RzLlxuICpcbiAqIFNlbGVjdGlvbiBpcyBleHByZXNzZWQgaW4gdGVybXMgb2Yge0BsaW5rIFJlZ2lvbn1zLCBub3QgYXJyYXkgaW5kaWNlcyDigJQgdGhlXG4gKiBpbmRleCBzcGFjZSAod2hpY2ggaW5jbHVkZXMgcHJvZmlsZSBsaW5lcykgc3RheXMgaW50ZXJuYWwgdG8gdGhlIHBhY2thZ2UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSVJlZ2lvbkVkaXRvckFwaSB7XG4gIC8vIOKUgOKUgCBkaXNwbGF5IGRlZmF1bHRzIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuICBnZXRTaG93U2hhcGVMYWJlbCgpOiBib29sZWFuO1xuICBnZXRTaGFwZUNvbG9yKCk6IHN0cmluZztcbiAgZ2V0RmlsbENvbG9yKCk6IHN0cmluZztcblxuICAvLyDilIDilIAgYW5ub3RhdGlvbiByZWdpb25zIChwcm9maWxlIGxpbmVzIGV4Y2x1ZGVkICYgcHJlc2VydmVkIGludGVybmFsbHkpIOKUgFxuICAvKiogQW5ub3RhdGlvbiByZWdpb25zIGZvciB0aGUgY3VycmVudCBpbWFnZS4gSW50ZW5zaXR5LXByb2ZpbGUgbGluZXMgYXJlXG4gICAqICBuZXZlciBpbmNsdWRlZC4gKi9cbiAgZ2V0QW5ub3RhdGlvblJlZ2lvbnMoKTogUmVnaW9uW107XG4gIC8qKiBSZXBsYWNlIHRoZSBhbm5vdGF0aW9uIHJlZ2lvbnMuIEludGVuc2l0eS1wcm9maWxlIGxpbmVzIGluIHRoZSBzdG9yZSBhcmVcbiAgICogIHByZXNlcnZlZCAodGhlIGVkaXRvciBtdXN0IG5vdCBiZSBhYmxlIHRvIGRyb3AgdGhlbSkuICovXG4gIHNldEFubm90YXRpb25SZWdpb25zKFxuICAgIHJlZ2lvbnM6IFJlZ2lvbltdLFxuICAgIHNob3dSZWdpb25MYWJlbD86IGJvb2xlYW4sXG4gICAgaXNSZWdpb25TYXZlT24/OiBib29sZWFuLFxuICAgIGZpbGxDb2xvcj86IHN0cmluZyxcbiAgKTogdm9pZDtcbiAgLyoqIENoYW5nZSBzaWduYWwg4oCUIGZpcmVzIHdoZW5ldmVyIHJlZ2lvbnMgY2hhbmdlIG9uIGFueSBiYWNrZW5kLiAqL1xuICBnZXRSZWdpb25VcGRhdGVFdmVudCgpOiBPYnNlcnZhYmxlPFJlZ2lvbltdPjtcblxuICAvLyDilIDilIAgc2VsZWN0aW9uIChieSByZWdpb24gaWRlbnRpdHk7IGluZGV4IHNwYWNlIHN0YXlzIGludGVybmFsKSDilIDilIDilIDilIDilIDilIDilIDilIBcbiAgLyoqIFRoZSBjdXJyZW50bHktc2VsZWN0ZWQgYW5ub3RhdGlvbiByZWdpb25zIChwcm9maWxlIGxpbmVzIG5ldmVyIGFwcGVhcikuICovXG4gIGdldFNlbGVjdGVkUmVnaW9ucyQoKTogT2JzZXJ2YWJsZTxSZWdpb25bXT47XG4gIC8qKiBTZXQgdGhlIHNlbGVjdGlvbiB0byB0aGVzZSByZWdpb25zLiAqL1xuICBzZXRTZWxlY3RlZFJlZ2lvbnMocmVnaW9uczogUmVnaW9uW10pOiB2b2lkO1xuXG4gIC8vIOKUgOKUgCBjbGFzc2lmaWNhdGlvbiBjb2xvdXJzIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuICBnZXRDbGFzc2lmaWNhdGlvbkNvbG9ycygpOiBNYXA8c3RyaW5nLCBzdHJpbmc+O1xuICBzZXRDbGFzc2lmaWNhdGlvbkNvbG9yKGxhYmVsOiBzdHJpbmcsIGNvbG9yOiBzdHJpbmcpOiB2b2lkO1xuXG4gIC8vIOKUgOKUgCBhbm5vdGF0aW9uLWNsYXNzIHByZXNldHMgKGppdC11aSM3MCkg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4gIC8qKiBUaGUgY3VycmVudCBwZXItdXNlciBwcmVzZXQgc2V0IChzb3VyY2Ugb2YgdHJ1dGggZm9yIHJlZ2lvbiBjb2xvdXJzKS4gKi9cbiAgZ2V0UHJlc2V0U2V0KCk6IFByZXNldFNldDtcbiAgLyoqIEVtaXRzIHRoZSBwcmVzZXQgc2V0IG9uIGV2ZXJ5IGNoYW5nZSAoQmVoYXZpb3JTdWJqZWN0LWJhY2tlZCkuICovXG4gIGdldFByZXNldFNldCQoKTogT2JzZXJ2YWJsZTxQcmVzZXRTZXQ+O1xuICAvKiogUmVwbGFjZSB0aGUgd2hvbGUgcHJlc2V0IHNldCAocGVyc2lzdHMgcGVyLXVzZXIpLiAqL1xuICBzZXRQcmVzZXRTZXQoc2V0OiBQcmVzZXRTZXQpOiB2b2lkO1xuICAvKiogQWRkIG9yIHVwZGF0ZSBvbmUgY2xhc3MgYnkgbmFtZSAocGVyc2lzdHMpLiAqL1xuICB1cHNlcnRDbGFzcyhwcmVzZXQ6IENsYXNzUHJlc2V0KTogdm9pZDtcbiAgLyoqIFJlbW92ZSBhIGNsYXNzIGJ5IG5hbWUgKHBlcnNpc3RzKS4gKi9cbiAgcmVtb3ZlQ2xhc3MobmFtZTogc3RyaW5nKTogdm9pZDtcbiAgLyoqIFJlc3RvcmUgdGhlIGRlZmF1bHQgcHJlc2V0IHNldCAocGVyc2lzdHMpLiAqL1xuICByZXNldFByZXNldHMoKTogdm9pZDtcblxuICAvLyDilIDilIAgaW1hZ2UgbWV0YWRhdGEgKGZvciByZWdpb24gYXJlYXMgaW4gwrVtwrIpIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuICBnZXRJbWFnZU1ldGEoKTogT2JzZXJ2YWJsZTxJSW1hZ2VNZXRhZGF0YVtdPjtcblxuICAvLyDilIDilIAgaW1wb3J0IC8gZXhwb3J0IOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuICBpbXBvcnRSZWdpb25zKGdlb0pzb25TdHI6IHN0cmluZyk6IFJlZ2lvbltdO1xuICBnZXRHZW9Kc29uU3RyaW5nKHJlZ2lvbnM6IFJlZ2lvbltdKTogc3RyaW5nO1xuXG4gIC8vIOKUgOKUgCBwZXItc2xpY2Ugei1zdGFja3MgKGppdC11aSM5Mykg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4gIC8qKiBUcnVlIHdoaWxlIGEgcGVyLXNsaWNlIHotc3RhY2sgcmVnaW9uIHNlc3Npb24gaXMgYWN0aXZlIOKAlCB0aGUgZWRpdG9yIHRoZW5cbiAgICogIHNhdmVzL2VkaXRzIHJlZ2lvbnMgcGVyIGRpc3BsYXllZCBzbGljZS4gKi9cbiAgaXNTdGFja01vZGUoKTogYm9vbGVhbjtcbiAgLyoqIEhvdyB0aGUgY3VycmVudCBzdGFjayBwZXJzaXN0czogYGNvbWJpbmVkYCA9IG9uZSB6LWluZGV4ZWQgZ2VvanNvblxuICAgKiAgKHNpbmdsZS1maWxlIHotc3RhY2ssIFF1UGF0aCBzY2hlbWEpOyBgcGVyLXNsaWNlLWZpbGVgID0gb25lIGdlb2pzb24gcGVyXG4gICAqICBzbGljZS1maWxlIChmb2xkZXIgc3RhY2spLiAqL1xuICBnZXRTdGFja1NhdmVMYXlvdXQoKTogJ2NvbWJpbmVkJyB8ICdwZXItc2xpY2UtZmlsZSc7XG4gIC8qKiBFdmVyeSBzbGljZSdzIGFubm90YXRpb24gcmVnaW9ucyAocHJvZmlsZSBsaW5lcyBleGNsdWRlZCksIGVhY2ggdGFnZ2VkXG4gICAqICB3aXRoIGl0cyB6ZXJvLWJhc2VkIHtAbGluayBSZWdpb24uen0sIGZvciBhIGNvbWJpbmVkIHotaW5kZXhlZCBzYXZlLiAqL1xuICBnZXRTbGljZUFubm90YXRpb25SZWdpb25zKCk6IFJlZ2lvbltdO1xuICAvKiogUGVyLXNsaWNlIGFubm90YXRpb24gcmVnaW9ucyBmb3IgYSBmb2xkZXItc3RhY2sgKGBwZXItc2xpY2UtZmlsZWApIHNhdmU6XG4gICAqICB6ZXJvLWJhc2VkIHNsaWNlIGluZGV4IOKGkiB0aGF0IHNsaWNlJ3MgYW5ub3RhdGlvbiByZWdpb25zLiBJbmNsdWRlc1xuICAgKiAgbm93LWVtcHR5IHNsaWNlcyBsb2FkZWQgbm9uLWVtcHR5LCBzbyB0aGVpciBmaWxlIGlzIG92ZXJ3cml0dGVuIGVtcHR5LiAqL1xuICBnZXRTdGFja1NhdmVBbm5vdGF0aW9uU2xpY2VzKCk6IE1hcDxudW1iZXIsIFJlZ2lvbltdPjtcbiAgLyoqXG4gICAqIEZ1bGwtcmVzb2x1dGlvbiBpbWFnZSBzaXplIChpbWFnZS1waXhlbCBkaW1lbnNpb25zKSB1c2VkIHRvIHNpemUgYW4gZXhwb3J0ZWRcbiAgICogcmVnaW9uIG1hc2suIEJhY2tlbmQtbmV1dHJhbDogcHJlZmVycyB0aGUgYWN0aXZlIHJlbmRlcmVyJ3MgcmVwb3J0ZWQgc2l6ZVxuICAgKiBhbmQgZmFsbHMgYmFjayB0byB0aGUgaW1hZ2UgbWV0YWRhdGEuIFJldHVybnMgbnVsbCB3aGVuIG5vIHNpemUgaXMga25vd24uXG4gICAqXG4gICAqIFRoZSBtYXNrIGl0c2VsZiBpcyByYXN0ZXJpemVkIG9mZiB0aGUgbWFpbiB0aHJlYWQgKHNlZSB0aGUgUmVnaW9uIEVkaXRvcidzXG4gICAqIG1hc2sgd29ya2VyKSBmcm9tIHRoZSByZWdpb24gZ2VvbWV0cnkgYW5kIHRoaXMgc2l6ZS5cbiAgICovXG4gIGdldE1hc2tJbWFnZVNpemUoKTogeyB3aWR0aDogbnVtYmVyOyBoZWlnaHQ6IG51bWJlciB9IHwgbnVsbDtcbn1cblxuLyoqIERJIHRva2VuIHRoZSBSZWdpb24gRWRpdG9yIGluamVjdHMgaW5zdGVhZCBvZiB0aGUgY29uY3JldGUgc2VydmljZS4gKi9cbmV4cG9ydCBjb25zdCBSRUdJT05fRURJVE9SX0FQSSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxJUmVnaW9uRWRpdG9yQXBpPignUkVHSU9OX0VESVRPUl9BUEknKTtcbiJdfQ==
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaW9uLWVkaXRvci1hcGkuY29udHJhY3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2NvbnRyYWN0cy9yZWdpb24tZWRpdG9yLWFwaS5jb250cmFjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBc00vQywwRUFBMEU7QUFDMUUsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxjQUFjLENBQW1CLG1CQUFtQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgUmVnaW9uIH0gZnJvbSAnLi4vbW9kZWxzL3JlZ2lvbic7XG5pbXBvcnQgeyBDbGFzc1ByZXNldCwgUHJlc2V0U2V0IH0gZnJvbSAnLi4vbW9kZWxzL2NsYXNzLXByZXNldCc7XG5pbXBvcnQgeyBJSW1hZ2VNZXRhZGF0YSB9IGZyb20gJy4vaW1hZ2UuY29udHJhY3QnO1xuaW1wb3J0IHR5cGUgeyBSZWdpb25Tb3VyY2UsIFJlZ2lvblNvdXJjZVZpZXcgfSBmcm9tICcuLi9yZWdpb24tc291cmNlL3JlZ2lvbi1zb3VyY2UnO1xuaW1wb3J0IHR5cGUgeyBSZWdpb25JbmRleFBhZ2UsIFJlZ2lvbkluZGV4UXVlcnkgfSBmcm9tICcuLi9yZWdpb24tc291cmNlL3JlZ2lvbi10aWxlcyc7XG5pbXBvcnQgdHlwZSB7IFJlZ2lvblN0eWxlIH0gZnJvbSAnLi4vcmVnaW9uLW92ZXJsYXkvcmVnaW9uLXN0eWxlJztcblxuLyoqXG4gKiBQdWJsaWMsIGltcGxlbWVudGF0aW9uLWFnbm9zdGljIHN1cmZhY2UgdGhhdCB0aGUgUmVnaW9uIEVkaXRvciAoYW4gKmV4dGVybmFsKlxuICogY29uc3VtZXIgb2YgdGhlIHZpc3VhbGl6YXRpb24gcGFja2FnZSkgZGVwZW5kcyBvbi4gSXQgZGVhbHMgb25seSBpblxuICogKiphbm5vdGF0aW9uKiogcmVnaW9ucyDigJQgaW50ZW5zaXR5LXByb2ZpbGUgbGluZXMgKGBSZWdpb24uaXNQcm9maWxlKClgKSBhcmVcbiAqIG93bmVkIGJ5IHRoZSBpbnRlbnNpdHkgdG9vbCBhbmQgYXJlIGZpbHRlcmVkIG91dCAvIHByZXNlcnZlZCBpbnRlcm5hbGx5LCBzb1xuICogdGhlIGVkaXRvciBuZXZlciBzZWVzIG9yIGRpc3R1cmJzIHRoZW0uXG4gKlxuICogVGhlIGVkaXRvciBpbmplY3RzIHRoaXMgdmlhIHtAbGluayBSRUdJT05fRURJVE9SX0FQSX0gKGJvdW5kIHRvIHRoZSBjb25jcmV0ZVxuICogYFJvdXRpbmdWaXN1YWxpemVyU2VydmljZWAgd2l0aCBgdXNlRXhpc3RpbmdgKSBpbnN0ZWFkIG9mIGltcG9ydGluZyB0aGVcbiAqIHNlcnZpY2UgY2xhc3MsIHNvIGl0IGNhbm5vdCByZWFjaCB0aGUgaW1wbGVtZW50YXRpb24uIFRoaXMgaXMgdGhlIGJvdW5kYXJ5XG4gKiB0aGF0IGxldHMgYHNlcnZpY2VzL3Zpc3VhbGl6YXRpb25gIGJlY29tZSBhIGxpYnJhcnkgd2hvc2Ugb25seSBwdWJsaWMgc3VyZmFjZVxuICogaXMgdGhlIGNvbnRyYWN0cy5cbiAqXG4gKiBTZWxlY3Rpb24gaXMgZXhwcmVzc2VkIGluIHRlcm1zIG9mIHtAbGluayBSZWdpb259cywgbm90IGFycmF5IGluZGljZXMg4oCUIHRoZVxuICogaW5kZXggc3BhY2UgKHdoaWNoIGluY2x1ZGVzIHByb2ZpbGUgbGluZXMpIHN0YXlzIGludGVybmFsIHRvIHRoZSBwYWNrYWdlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElSZWdpb25FZGl0b3JBcGkge1xuICAvLyDilIDilIAgZGlzcGxheSBkZWZhdWx0cyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbiAgZ2V0U2hvd1NoYXBlTGFiZWwoKTogYm9vbGVhbjtcbiAgZ2V0U2hhcGVDb2xvcigpOiBzdHJpbmc7XG4gIGdldEZpbGxDb2xvcigpOiBzdHJpbmc7XG5cbiAgLy8g4pSA4pSAIGFubm90YXRpb24gcmVnaW9ucyAocHJvZmlsZSBsaW5lcyBleGNsdWRlZCAmIHByZXNlcnZlZCBpbnRlcm5hbGx5KSDilIBcbiAgLyoqIEFubm90YXRpb24gcmVnaW9ucyBmb3IgdGhlIGN1cnJlbnQgaW1hZ2UuIEludGVuc2l0eS1wcm9maWxlIGxpbmVzIGFyZVxuICAgKiAgbmV2ZXIgaW5jbHVkZWQuICovXG4gIGdldEFubm90YXRpb25SZWdpb25zKCk6IFJlZ2lvbltdO1xuICAvKiogUmVwbGFjZSB0aGUgYW5ub3RhdGlvbiByZWdpb25zLiBJbnRlbnNpdHktcHJvZmlsZSBsaW5lcyBpbiB0aGUgc3RvcmUgYXJlXG4gICAqICBwcmVzZXJ2ZWQgKHRoZSBlZGl0b3IgbXVzdCBub3QgYmUgYWJsZSB0byBkcm9wIHRoZW0pLiAqL1xuICBzZXRBbm5vdGF0aW9uUmVnaW9ucyhcbiAgICByZWdpb25zOiBSZWdpb25bXSxcbiAgICBzaG93UmVnaW9uTGFiZWw/OiBib29sZWFuLFxuICAgIGlzUmVnaW9uU2F2ZU9uPzogYm9vbGVhbixcbiAgICBmaWxsQ29sb3I/OiBzdHJpbmcsXG4gICk6IHZvaWQ7XG4gIC8qKiBDaGFuZ2Ugc2lnbmFsIOKAlCBmaXJlcyB3aGVuZXZlciByZWdpb25zIGNoYW5nZSBvbiBhbnkgYmFja2VuZC4gKi9cbiAgZ2V0UmVnaW9uVXBkYXRlRXZlbnQoKTogT2JzZXJ2YWJsZTxSZWdpb25bXT47XG5cbiAgLy8g4pSA4pSAIHNlbGVjdGlvbiAoYnkgcmVnaW9uIGlkZW50aXR5OyBpbmRleCBzcGFjZSBzdGF5cyBpbnRlcm5hbCkg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4gIC8qKiBUaGUgY3VycmVudGx5LXNlbGVjdGVkIGFubm90YXRpb24gcmVnaW9ucyAocHJvZmlsZSBsaW5lcyBuZXZlciBhcHBlYXIpLiAqL1xuICBnZXRTZWxlY3RlZFJlZ2lvbnMkKCk6IE9ic2VydmFibGU8UmVnaW9uW10+O1xuICAvKiogU2V0IHRoZSBzZWxlY3Rpb24gdG8gdGhlc2UgcmVnaW9ucy4gKi9cbiAgc2V0U2VsZWN0ZWRSZWdpb25zKHJlZ2lvbnM6IFJlZ2lvbltdKTogdm9pZDtcblxuICAvLyDilIDilIAgY2xhc3NpZmljYXRpb24gY29sb3VycyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbiAgZ2V0Q2xhc3NpZmljYXRpb25Db2xvcnMoKTogTWFwPHN0cmluZywgc3RyaW5nPjtcbiAgc2V0Q2xhc3NpZmljYXRpb25Db2xvcihsYWJlbDogc3RyaW5nLCBjb2xvcjogc3RyaW5nKTogdm9pZDtcblxuICAvLyDilIDilIAgYW5ub3RhdGlvbi1jbGFzcyBwcmVzZXRzIChqaXQtdWkjNzApIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuICAvKiogVGhlIGN1cnJlbnQgcGVyLXVzZXIgcHJlc2V0IHNldCAoc291cmNlIG9mIHRydXRoIGZvciByZWdpb24gY29sb3VycykuICovXG4gIGdldFByZXNldFNldCgpOiBQcmVzZXRTZXQ7XG4gIC8qKiBFbWl0cyB0aGUgcHJlc2V0IHNldCBvbiBldmVyeSBjaGFuZ2UgKEJlaGF2aW9yU3ViamVjdC1iYWNrZWQpLiAqL1xuICBnZXRQcmVzZXRTZXQkKCk6IE9ic2VydmFibGU8UHJlc2V0U2V0PjtcbiAgLyoqIFJlcGxhY2UgdGhlIHdob2xlIHByZXNldCBzZXQgKHBlcnNpc3RzIHBlci11c2VyKS4gKi9cbiAgc2V0UHJlc2V0U2V0KHNldDogUHJlc2V0U2V0KTogdm9pZDtcbiAgLyoqIEFkZCBvciB1cGRhdGUgb25lIGNsYXNzIGJ5IG5hbWUgKHBlcnNpc3RzKS4gKi9cbiAgdXBzZXJ0Q2xhc3MocHJlc2V0OiBDbGFzc1ByZXNldCk6IHZvaWQ7XG4gIC8qKiBSZW1vdmUgYSBjbGFzcyBieSBuYW1lIChwZXJzaXN0cykuICovXG4gIHJlbW92ZUNsYXNzKG5hbWU6IHN0cmluZyk6IHZvaWQ7XG4gIC8qKiBSZXN0b3JlIHRoZSBkZWZhdWx0IHByZXNldCBzZXQgKHBlcnNpc3RzKS4gKi9cbiAgcmVzZXRQcmVzZXRzKCk6IHZvaWQ7XG5cbiAgLy8g4pSA4pSAIGltYWdlIG1ldGFkYXRhIChmb3IgcmVnaW9uIGFyZWFzIGluIMK1bcKyKSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbiAgZ2V0SW1hZ2VNZXRhKCk6IE9ic2VydmFibGU8SUltYWdlTWV0YWRhdGFbXT47XG5cbiAgLy8g4pSA4pSAIGltcG9ydCAvIGV4cG9ydCDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbiAgaW1wb3J0UmVnaW9ucyhnZW9Kc29uU3RyOiBzdHJpbmcpOiBSZWdpb25bXTtcbiAgZ2V0R2VvSnNvblN0cmluZyhyZWdpb25zOiBSZWdpb25bXSk6IHN0cmluZztcblxuICAvLyDilIDilIAgcGVyLXNsaWNlIHotc3RhY2tzIChqaXQtdWkjOTMpIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuICAvKiogVHJ1ZSB3aGlsZSBhIHBlci1zbGljZSB6LXN0YWNrIHJlZ2lvbiBzZXNzaW9uIGlzIGFjdGl2ZSDigJQgdGhlIGVkaXRvciB0aGVuXG4gICAqICBzYXZlcy9lZGl0cyByZWdpb25zIHBlciBkaXNwbGF5ZWQgc2xpY2UuICovXG4gIGlzU3RhY2tNb2RlKCk6IGJvb2xlYW47XG4gIC8qKiBIb3cgdGhlIGN1cnJlbnQgc3RhY2sgcGVyc2lzdHM6IGBjb21iaW5lZGAgPSBvbmUgei1pbmRleGVkIGdlb2pzb25cbiAgICogIChzaW5nbGUtZmlsZSB6LXN0YWNrLCBRdVBhdGggc2NoZW1hKTsgYHBlci1zbGljZS1maWxlYCA9IG9uZSBnZW9qc29uIHBlclxuICAgKiAgc2xpY2UtZmlsZSAoZm9sZGVyIHN0YWNrKS4gKi9cbiAgZ2V0U3RhY2tTYXZlTGF5b3V0KCk6ICdjb21iaW5lZCcgfCAncGVyLXNsaWNlLWZpbGUnO1xuICAvKiogRXZlcnkgc2xpY2UncyBhbm5vdGF0aW9uIHJlZ2lvbnMgKHByb2ZpbGUgbGluZXMgZXhjbHVkZWQpLCBlYWNoIHRhZ2dlZFxuICAgKiAgd2l0aCBpdHMgemVyby1iYXNlZCB7QGxpbmsgUmVnaW9uLnp9LCBmb3IgYSBjb21iaW5lZCB6LWluZGV4ZWQgc2F2ZS4gKi9cbiAgZ2V0U2xpY2VBbm5vdGF0aW9uUmVnaW9ucygpOiBSZWdpb25bXTtcbiAgLyoqIFBlci1zbGljZSBhbm5vdGF0aW9uIHJlZ2lvbnMgZm9yIGEgZm9sZGVyLXN0YWNrIChgcGVyLXNsaWNlLWZpbGVgKSBzYXZlOlxuICAgKiAgemVyby1iYXNlZCBzbGljZSBpbmRleCDihpIgdGhhdCBzbGljZSdzIGFubm90YXRpb24gcmVnaW9ucy4gSW5jbHVkZXNcbiAgICogIG5vdy1lbXB0eSBzbGljZXMgbG9hZGVkIG5vbi1lbXB0eSwgc28gdGhlaXIgZmlsZSBpcyBvdmVyd3JpdHRlbiBlbXB0eS4gKi9cbiAgZ2V0U3RhY2tTYXZlQW5ub3RhdGlvblNsaWNlcygpOiBNYXA8bnVtYmVyLCBSZWdpb25bXT47XG4gIC8qKlxuICAgKiBGdWxsLXJlc29sdXRpb24gaW1hZ2Ugc2l6ZSAoaW1hZ2UtcGl4ZWwgZGltZW5zaW9ucykgdXNlZCB0byBzaXplIGFuIGV4cG9ydGVkXG4gICAqIHJlZ2lvbiBtYXNrLiBCYWNrZW5kLW5ldXRyYWw6IHByZWZlcnMgdGhlIGFjdGl2ZSByZW5kZXJlcidzIHJlcG9ydGVkIHNpemVcbiAgICogYW5kIGZhbGxzIGJhY2sgdG8gdGhlIGltYWdlIG1ldGFkYXRhLiBSZXR1cm5zIG51bGwgd2hlbiBubyBzaXplIGlzIGtub3duLlxuICAgKlxuICAgKiBUaGUgbWFzayBpdHNlbGYgaXMgcmFzdGVyaXplZCBvZmYgdGhlIG1haW4gdGhyZWFkIChzZWUgdGhlIFJlZ2lvbiBFZGl0b3Inc1xuICAgKiBtYXNrIHdvcmtlcikgZnJvbSB0aGUgcmVnaW9uIGdlb21ldHJ5IGFuZCB0aGlzIHNpemUuXG4gICAqL1xuICBnZXRNYXNrSW1hZ2VTaXplKCk6IHsgd2lkdGg6IG51bWJlcjsgaGVpZ2h0OiBudW1iZXIgfSB8IG51bGw7XG5cbiAgLy8g4pSA4pSAIHJlZ2lvbiBzb3VyY2VzOiBsYXJnZSByZWdpb24gc2V0cywgdGlsZWQgYnkgbGV2ZWwgb2YgZGV0YWlsIChvcHRpb25hbCkg4pSAXG4gIC8qKlxuICAgKiBMb2FkIGBnZW9Kc29uU3RyYCBhcyB0aGUgc2xpY2UncyByZWdpb24gc291cmNlIHdoZW4gaXQgaXMgbGFyZ2UgZW5vdWdoXG4gICAqIChgVml6Q29uZmlnLnJlZ2lvblNvdXJjZU1pbkNoYXJzYCk6IHJlc29sdmVzIHRydWUgb25jZSBpdCBpcyBvcGVuLCBmYWxzZSB3aGVuIGl0IGlzIHNtYWxsXG4gICAqIGFuZCBzaG91bGQgYmUgaW1wb3J0ZWQgYXMgcmVnaW9uczsgcmVqZWN0cyB3aGVuIGl0IGlzIG5vdCBhIEdlb0pTT04gRmVhdHVyZUNvbGxlY3Rpb24uXG4gICAqL1xuICBpbXBvcnRSZWdpb25Tb3VyY2U/KGdlb0pzb25TdHI6IHN0cmluZyk6IFByb21pc2U8Ym9vbGVhbj47XG4gIC8qKlxuICAgKiBBIHRpY2tldCBmb3IgYW4gaW1wb3J0IGFib3V0IHRvIHJlYWQgb3IgZGVjb2RlIGl0cyBmaWxlczogYW4gaW1wb3J0IG1ldGhvZCBnaXZlbiBhIHN0YWxlIG9uZVxuICAgKiAoYW5vdGhlciBpbXBvcnQgdG9vayBhIHRpY2tldCBzaW5jZSwgb3IgYW5vdGhlciBpbWFnZSB3YXMgcGxvdHRlZCkgY2hhbmdlcyBub3RoaW5nLlxuICAgKi9cbiAgcmVnaW9uSW1wb3J0VGlja2V0PygpOiBudW1iZXI7XG4gIC8qKlxuICAgKiBSZXBsYWNlIHRoZSByZWdpb25zIGFuZCByZWdpb24gc291cmNlcyB3aXRoIG9uZSBzb3VyY2UgcGVyIHNsaWNlIChhbiBpbXBvcnRlZCBsYWJlbCB2b2x1bWUsXG4gICAqIG9yIGEgZm9sZGVyIG9mIHBlci1zbGljZSByZWdpb24gZmlsZXMpOiBvcGVuZXJzIGJ5IHNsaWNlIGluZGV4LCBlYWNoIG9wZW5lZCB0aGUgZmlyc3QgdGltZSBpdHNcbiAgICogc2xpY2UgaXMgc2hvd24uIEEgc2luZ2xlIGltYWdlIHRha2VzIHNsaWNlIDAncy4gUmV0dXJucyBob3cgbWFueSBzbGljZXMgaGF2ZSBvbmUsIG9yIG51bGxcbiAgICogKGNoYW5naW5nIG5vdGhpbmcpIHdoZW4gYHRpY2tldGAgaXMgc3RhbGUuIEEgc2F2ZSB3cml0ZXMgZXZlcnkgaW1wb3J0ZWQgc2xpY2UuXG4gICAqL1xuICBpbXBvcnRTbGljZVJlZ2lvblNvdXJjZXM/KFxuICAgIG9wZW5lcnM6IFJlYWRvbmx5TWFwPG51bWJlciwgKCkgPT4gUHJvbWlzZTxSZWdpb25Tb3VyY2U+PixcbiAgICB0aWNrZXQ/OiBudW1iZXIsXG4gICk6IG51bWJlciB8IG51bGw7XG4gIC8qKlxuICAgKiBSZXBsYWNlIHRoZW0gd2l0aCBvbmUgaW1wb3J0ZWQgc291cmNlIChhIHJlZ2lvbiBzZXQgYSBzZXJ2ZXIgc2VydmVzKTogb3ZlciBldmVyeSBzbGljZSBvZiBhXG4gICAqIHN0YWNrIHdoZW4gei1pbmRleGVkLCBlbHNlIG9uIHRoZSBzbGljZSBzaG93bi4gUmVzb2x2ZXMgZmFsc2UsIGNoYW5naW5nIG5vdGhpbmcsIHdoZW4gdGhlXG4gICAqIGltcG9ydCB3ZW50IHN0YWxlIHdoaWxlIHRoZSBzb3VyY2Ugb3BlbmVkLlxuICAgKi9cbiAgaW1wb3J0UmVnaW9uU291cmNlT3BlbmVyPyhvcGVuOiAoKSA9PiBQcm9taXNlPFJlZ2lvblNvdXJjZT4sIHRpY2tldD86IG51bWJlcik6IFByb21pc2U8Ym9vbGVhbj47XG4gIC8qKlxuICAgKiBEcm9wIHRoZSBzbGljZSdzIHJlZ2lvbiBzb3VyY2UsIGZvciByZWdpb25zIGltcG9ydGVkIGluIGl0cyBwbGFjZSAoYSBzbWFsbCBmaWxlIHJlcGxhY2luZyBhXG4gICAqIGxhcmdlIG9uZSkuIFRoZSBvdGhlciBzbGljZXMga2VlcCB0aGVpcnMuXG4gICAqL1xuICBkcm9wUmVnaW9uU291cmNlPygpOiBQcm9taXNlPHZvaWQ+O1xuICAvKiogVGhlIHNsaWNlJ3MgcmVnaW9uIHNvdXJjZSAobnVsbCB3aXRob3V0IG9uZSkgYW5kIGV2ZXJ5IGNoYW5nZSBvZiBpdC4gKi9cbiAgZ2V0UmVnaW9uU291cmNlVmlldyQ/KCk6IE9ic2VydmFibGU8UmVnaW9uU291cmNlVmlldyB8IG51bGw+O1xuICAvKiogQSBwYWdlIG9mIHRoZSBzbGljZSBzb3VyY2UncyBmZWF0dXJlcyB0aGF0IHdlcmUgbm90IHRha2VuIGZyb20gaXQuICovXG4gIGdldFJlZ2lvblNvdXJjZUluZGV4PyhxdWVyeTogT21pdDxSZWdpb25JbmRleFF1ZXJ5LCAnZXhjbHVkZSc+KTogUHJvbWlzZTxSZWdpb25JbmRleFBhZ2U+O1xuICAvKiogVGFrZSBzb3VyY2UgZmVhdHVyZXMgaW50byB0aGUgcmVnaW9ucyBhbmQgc2VsZWN0IHRoZW0gKGFkZGVkIHdpdGggYGFkZGl0aXZlYCkuICovXG4gIHNlbGVjdFNvdXJjZUZlYXR1cmVzPyhpZHM6IHJlYWRvbmx5IHN0cmluZ1tdLCBhZGRpdGl2ZT86IGJvb2xlYW4pOiBQcm9taXNlPG51bWJlcltdPjtcbiAgLyoqIERlbGV0ZSBzb3VyY2UgZmVhdHVyZXMgd2l0aG91dCB0YWtpbmcgdGhlbSAob25lIHVuZG8gc3RlcCkuICovXG4gIGRlbGV0ZVNvdXJjZUZlYXR1cmVzPyhpZHM6IHJlYWRvbmx5IHN0cmluZ1tdKTogdm9pZDtcbiAgLyoqXG4gICAqIEZlYXR1cmVzIHBlciBjbGFzcyBzdGlsbCBpbiB0aGUgc2xpY2UncyByZWdpb24gc291cmNlIChub3QgdGFrZW4pOyB3aXRoIGBzdGFja2AsIGEgei1zdGFjaydzXG4gICAqIG92ZXIgZXZlcnkgc2xpY2UuXG4gICAqL1xuICBnZXRSZWdpb25Tb3VyY2VDbGFzc0NvdW50cz8oc3RhY2s/OiBib29sZWFuKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBudW1iZXI+PjtcbiAgLyoqIFRoZSByZWdpb24gbG9vayAob3V0bGluZXMsIG9yIGZpbGxlZCB3aXRoIGxhYmVscyBpbnNpZGUpIGFuZCBldmVyeSBjaGFuZ2Ugb2YgaXQuICovXG4gIGdldFJlZ2lvblN0eWxlJD8oKTogT2JzZXJ2YWJsZTxSZWdpb25TdHlsZT47XG4gIC8qKiBDaG9vc2UgdGhlIHJlZ2lvbiBsb29rLCBmaWVsZCBieSBmaWVsZCAob3ZlcnJpZGVzIGEgcmVnaW9uIHNvdXJjZSdzIGhpbnQpLiAqL1xuICBzZXRSZWdpb25TdHlsZT8ocGF0Y2g6IFBhcnRpYWw8UmVnaW9uU3R5bGU+KTogdm9pZDtcbiAgLyoqIFdoZXRoZXIgYSB2b2x1bWUgdmlldyBpcyBvbiBzY3JlZW4gKHJlZ2lvbnMgY2FuIHRoZW4gYmUgc2hvd24gaW4gM0QpLiAqL1xuICBnZXRWb2x1bWVWaWV3JD8oKTogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIHZvbHVtZSB2aWV3J3Mgc2xpY2UgcGFuZSBpcyB3YW50ZWQgKG9uZSBzbGljZSBlZGl0ZWQgYmVzaWRlIHRoZSAzRCB2aWV3KS4gQSB2b2x1bWVcbiAgICogdmlldyB3aXRob3V0IGl0IGxpc3RzIGV2ZXJ5IHNsaWNlJ3MgY2xhc3Nlczsgd2l0aCBpdCwgdGhlIHNsaWNlJ3MuXG4gICAqL1xuICBnZXRTbGljZUVkaXRvciQ/KCk6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gIC8qKiBXaGV0aGVyIHRoZSB2b2x1bWUgdmlldyBkcmF3cyB0aGUgcmVnaW9uIHJlY29uc3RydWN0aW9ucyB0aHJvdWdoIHRoZSB2b2x1bWUsIGFuZCBjaGFuZ2VzLiAqL1xuICBnZXRSZWdpb25zVGhyb3VnaFZvbHVtZSQ/KCk6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gIC8qKlxuICAgKiBEcmF3IHRoZSByZWdpb24gcmVjb25zdHJ1Y3Rpb25zIHRocm91Z2ggdGhlIHZvbHVtZSAoaXQgaGlkZXMgbm9uZTogc3VyZmFjZXMgdHJhY2VkIGluc2lkZSBpdHNcbiAgICogYnJpZ2h0IHN0cnVjdHVyZXMpIG9yIGhpZGRlbiBiZWhpbmQgd2hhdCBpdCBzaG93cyBpbiBmcm9udCBvZiB0aGVtICh0aGUgZGVmYXVsdCkuXG4gICAqL1xuICBzZXRSZWdpb25zVGhyb3VnaFZvbHVtZT8odGhyb3VnaDogYm9vbGVhbik6IHZvaWQ7XG4gIC8qKlxuICAgKiBTaG93IHRoZXNlIGdyb3VwcyBvZiBjbGFzc2VzIGluIHRoZSB2b2x1bWUgdmlldyBhcyAzRCByZWNvbnN0cnVjdGlvbnMgKG9uZSBzdXJmYWNlIHBlciBncm91cCxcbiAgICogaW4gaXRzIGNvbG91ciksIGFuZCBvbmx5IHRoZXNlOyBbXSBoaWRlcyB0aGVtLlxuICAgKi9cbiAgc2hvd1JlZ2lvbkNsYXNzZXMzZD8oXG4gICAgZ3JvdXBzOiBSZWFkb25seUFycmF5PHsga2V5OiBzdHJpbmc7IGNsYXNzZXM6IHJlYWRvbmx5IHN0cmluZ1tdOyBjb2xvcjogc3RyaW5nOyBsYWJlbD86IHN0cmluZyB9PixcbiAgKTogUHJvbWlzZTx2b2lkPjtcbiAgLyoqXG4gICAqIEVhY2ggY2xhc3MncyB2b2x1bWUgb3ZlciB0aGUgd2hvbGUgc3RhY2ssIGluIHB4wrIgw5cgc2xpY2VzOiBpdHMgb3V0bGluZXMnIGFyZWEgb24gZXZlcnkgc2xpY2UsXG4gICAqIG9uZSBzbGljZSB0aGljay4gVGltZXMgdGhlIHBpeGVsIHNpemUgYW5kIHRoZSBzbGljZSBzcGFjaW5nLCDCtW3Csy5cbiAgICovXG4gIGdldENsYXNzVm9sdW1lcz8oY2xhc3NlczogcmVhZG9ubHkgc3RyaW5nW10pOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIG51bWJlcj4+O1xuICAvKiogSGlnaGxpZ2h0IHRoZSBzdXJmYWNlcyBvZiB0aGVzZSBncm91cCBrZXlzIGluIHRoZSB2b2x1bWUgdmlldyAobm9uZTogYWxsIGFzIHVzdWFsKS4gKi9cbiAgaGlnaGxpZ2h0UmVnaW9uQ2xhc3NlczNkPyhrZXlzOiByZWFkb25seSBzdHJpbmdbXSk6IHZvaWQ7XG4gIC8qKiBBIHN1cmZhY2UgY2xpY2tlZCBpbiB0aGUgdm9sdW1lIHZpZXcgd2l0aCB0aGUgc2VsZWN0aW9uIHRvb2wgKGl0cyBncm91cCBrZXkpLCBvciBub25lIChudWxsKS4gKi9cbiAgZ2V0UmVnaW9uUGlja2VkM2QkPygpOiBPYnNlcnZhYmxlPHsga2V5OiBzdHJpbmcgfCBudWxsOyBhZGRpdGl2ZTogYm9vbGVhbiB9PjtcbiAgLyoqIFRoZSBjbGFzcyBncm91cHMgc2hvd24gaW4gM0Qgb24gdGhlIGltYWdlIG9uIHNjcmVlbjsgZW1pdHMgW10gd2hlbiBhbm90aGVyIGltYWdlIGlzIHBsb3R0ZWQuICovXG4gIGdldFJlZ2lvbkNsYXNzZXMzZCQ/KCk6IE9ic2VydmFibGU8UmVhZG9ubHlBcnJheTx7IGtleTogc3RyaW5nOyBjbGFzc2VzOiByZWFkb25seSBzdHJpbmdbXSB9Pj47XG4gIC8qKiBUaGUgY2xhc3NlcyBoaWRkZW4gZnJvbSB2aWV3LCBhbmQgZXZlcnkgY2hhbmdlIG9mIHRoZW0uICovXG4gIGdldEhpZGRlbkNsYXNzZXMkPygpOiBPYnNlcnZhYmxlPFJlYWRvbmx5U2V0PHN0cmluZz4+O1xuICAvKipcbiAgICogSGlkZSAob3Igc2hvdyBhZ2FpbikgdGhlc2UgY2xhc3NlczogdGhlaXIgcmVnaW9ucyBhbmQgdGhlIHJlZ2lvbiBzb3VyY2UncyBmZWF0dXJlcyBhcmUgbm90XG4gICAqIGRyYXduIG9yIHBpY2tlZCwgYW5kIHRoZWlyIHN1cmZhY2VzIGluIHRoZSB2b2x1bWUgdmlldyBhcmUgaGlkZGVuLlxuICAgKi9cbiAgc2V0Q2xhc3Nlc0hpZGRlbj8oY2xhc3NlczogcmVhZG9ubHkgc3RyaW5nW10sIGhpZGRlbjogYm9vbGVhbik6IHZvaWQ7XG4gIC8qKiBTZWxlY3QgZXZlcnkgcmVnaW9uIG9mIHRoZXNlIGNsYXNzZXMgb24gdGhlIHNsaWNlLCB0aGUgc291cmNlJ3MgaW5jbHVkZWQgKHRha2VuKS4gKi9cbiAgc2VsZWN0UmVnaW9uQ2xhc3Nlcz8oY2xhc3NlczogcmVhZG9ubHkgc3RyaW5nW10sIGFkZGl0aXZlPzogYm9vbGVhbik6IFByb21pc2U8dm9pZD47XG4gIC8qKiB7QGxpbmsgZ2V0R2VvSnNvblN0cmluZ30gbWVyZ2VkIHdpdGggdGhlIHJlZ2lvbiBzb3VyY2UgYmVoaW5kIHRoZSByZWdpb25zIChzZWVcbiAgICogIGBSZWdpb25TdG9yZS5nZXRHZW9Kc29uV2l0aFNvdXJjZWApOyBgc2xpY2VgIG5hbWVzIGEgZm9sZGVyIHN0YWNrJ3Mgc2xpY2UuICovXG4gIGdldEdlb0pzb25TdHJpbmdXaXRoU291cmNlPyhyZWdpb25zOiBSZWdpb25bXSwgc2xpY2U/OiBudW1iZXIpOiBQcm9taXNlPHN0cmluZz47XG59XG5cbi8qKiBESSB0b2tlbiB0aGUgUmVnaW9uIEVkaXRvciBpbmplY3RzIGluc3RlYWQgb2YgdGhlIGNvbmNyZXRlIHNlcnZpY2UuICovXG5leHBvcnQgY29uc3QgUkVHSU9OX0VESVRPUl9BUEkgPSBuZXcgSW5qZWN0aW9uVG9rZW48SVJlZ2lvbkVkaXRvckFwaT4oJ1JFR0lPTl9FRElUT1JfQVBJJyk7XG4iXX0=
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaW9uLXN0b3JlLmNvbnRyYWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9jb250cmFjdHMvcmVnaW9uLXN0b3JlLmNvbnRyYWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSZWN0YW5nbGUsIFBvbHlnb24sIE11bHRpUG9seWdvbiB9IGZyb20gJy4uL21vZGVscy9yZWdpb24nO1xuaW1wb3J0IHsgUmVnaW9uIH0gZnJvbSAnLi4vbW9kZWxzL3JlZ2lvbic7XG5cbi8qKlxuICogUmVnaW9uLW5hdGl2ZSBlZGl0aW5nIHN1cmZhY2Ug4oCUIHR5cGVkIGdlb21ldHJ5IG9wZXJhdGlvbnMgb24gdGhlIG5ldXRyYWxcbiAqIHtAbGluayBSZWdpb259IG1vZGVsLiBUaGUgT3BlblNlYWRyYWdvbiBvdmVybGF5IChhbmQgYW55IGZ1dHVyZSBlZGl0aW5nIFVJKVxuICogbXV0YXRlcyByZWdpb25zIHRocm91Z2ggdGhlc2UgY2FsbHMgaW5zdGVhZCBvZiByZWFjaGluZyBpbnRvIGEgYmFja2VuZCdzXG4gKiBvd24gc2hhcGUgcmVwcmVzZW50YXRpb24gKGUuZy4gUGxvdGx5J3MgYHgwL3kwL3gxL3kxYCAvIGBN4oCmTOKAplpgIGRpY3RzKS5cbiAqXG4gKiBJbXBsZW1lbnRlZCBieSB0aGUgc2hhcmVkIGBSZWdpb25TdG9yZWAsIHdoaWNoIG93bnMgcmVnaW9uICpzdGF0ZSo7IGJhY2tlbmRzXG4gKiBvd24gKnJlbmRlcmluZyogYW5kIHJlYWN0IHRvIHRoZSBzdG9yZSdzIHVwZGF0ZSBldmVudC4gVGhpcyByZXBsYWNlcyB0aGVcbiAqIFBsb3RseS1zaGFwZWQgYElSZWdpb25FZGl0U3RvcmVgIChnZXRTaGFwZXMvYXBwbHlTaGFwZXNDaGFuZ2UpIHRoZSBPU0RcbiAqIG92ZXJsYXkgdXNlZCB0byBkZXBlbmQgb24uXG4gKlxuICogQ29vcmRpbmF0ZXMgYXJlIGFsd2F5cyAqKmltYWdlIHBpeGVscyoqLiBWZXJ0ZXggb3BlcmF0aW9ucyBhcHBseSB0byBwb2x5Z29uXG4gKiByZWdpb25zIG9ubHk7IGNhbGxpbmcgdGhlbSBvbiBhIHJlY3RhbmdsZSAob3Igd2l0aCBhbiBvdXQtb2YtcmFuZ2UgaWQvaW5kZXgpXG4gKiBpcyBhIG5vLW9wLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElSZWdpb25FZGl0QXBpIHtcbiAgLyoqIEFkZCBhIHJlZ2lvbiB0byB0aGUgY3VycmVudCBpbWFnZSwgbWludCBpdHMgaWQsIHNlbGVjdCBpdCwgYW5kIGVtaXQuXG4gICAqICBSZXR1cm5zIHRoZSBhc3NpZ25lZCBpZC4gKi9cbiAgYWRkUmVnaW9uKHJlZ2lvbjogUmVnaW9uKTogbnVtYmVyO1xuXG4gIC8qKiBSZW1vdmUgdGhlIHJlZ2lvbiB3aXRoIHRoaXMgaWQgKGFuZCBkcm9wIGl0IGZyb20gdGhlIHNlbGVjdGlvbikuICovXG4gIHJlbW92ZVJlZ2lvbihpZDogbnVtYmVyKTogdm9pZDtcblxuICAvKiogUmVwbGFjZSBhIHJlZ2lvbidzIGdlb21ldHJ5IHdob2xlc2FsZSAoZS5nLiBhZnRlciBhIHJlY3RhbmdsZSByZXNpemUpLiAqL1xuICB1cGRhdGVCb3VuZHMoaWQ6IG51bWJlciwgYm91bmRzOiBSZWN0YW5nbGUgfCBQb2x5Z29uIHwgTXVsdGlQb2x5Z29uKTogdm9pZDtcblxuICAvKiogVHJhbnNsYXRlIHRoZSB3aG9sZSByZWdpb24gYnkgKGR4LCBkeSkgaW1hZ2UgcGl4ZWxzLiAqL1xuICBtb3ZlUmVnaW9uKGlkOiBudW1iZXIsIGR4OiBudW1iZXIsIGR5OiBudW1iZXIpOiB2b2lkO1xuXG4gIC8qKiBNb3ZlIGEgc2luZ2xlIHBvbHlnb24gdmVydGV4IHRvICh4LCB5KS4gTm8tb3AgZm9yIHJlY3RhbmdsZXMuICovXG4gIG1vdmVWZXJ0ZXgoaWQ6IG51bWJlciwgaW5kZXg6IG51bWJlciwgeDogbnVtYmVyLCB5OiBudW1iZXIpOiB2b2lkO1xuXG4gIC8qKiBNb3ZlIGEgc2luZ2xlIHZlcnRleCBvbiBpbnRlcmlvciByaW5nIGBob2xlSW5kZXhgIChhIGhvbGUpIHRvICh4LCB5KS5cbiAgICogIE5vLW9wIGZvciByZWN0YW5nbGVzLCBvciBhbiBvdXQtb2YtcmFuZ2UgaG9sZS92ZXJ0ZXggaW5kZXggKGppdC11aSM4NSkuICovXG4gIG1vdmVIb2xlVmVydGV4KGlkOiBudW1iZXIsIGhvbGVJbmRleDogbnVtYmVyLCBpbmRleDogbnVtYmVyLCB4OiBudW1iZXIsIHk6IG51bWJlcik6IHZvaWQ7XG5cbiAgLyoqIEluc2VydCBhIHZlcnRleCBvbiBpbnRlcmlvciByaW5nIGBob2xlSW5kZXhgIGFmdGVyIGBzZWdJbmRleGAgKGppdC11aSM4NSkuICovXG4gIGFkZEhvbGVWZXJ0ZXgoaWQ6IG51bWJlciwgaG9sZUluZGV4OiBudW1iZXIsIHNlZ0luZGV4OiBudW1iZXIsIHg6IG51bWJlciwgeTogbnVtYmVyKTogdm9pZDtcblxuICAvKiogRGVsZXRlIHRoZSB2ZXJ0ZXggYXQgYGluZGV4YCBvbiBpbnRlcmlvciByaW5nIGBob2xlSW5kZXhgOyBkcm9wcGluZyB0aGVcbiAgICogIHJpbmcgYmVsb3cgMyB2ZXJ0aWNlcyByZW1vdmVzIHRoZSB3aG9sZSBob2xlIChqaXQtdWkjODUpLiAqL1xuICBkZWxldGVIb2xlVmVydGV4KGlkOiBudW1iZXIsIGhvbGVJbmRleDogbnVtYmVyLCBpbmRleDogbnVtYmVyKTogdm9pZDtcblxuICAvKiogSW5zZXJ0IGEgdmVydGV4IGF0ICh4LCB5KSBpbW1lZGlhdGVseSBhZnRlciBgc2VnSW5kZXhgICh0aGUgc3RhcnQgdmVydGV4XG4gICAqICBvZiB0aGUgZWRnZSB0aGUgcG9pbnQgbGllcyBvbikuIE5vLW9wIGZvciByZWN0YW5nbGVzLiAqL1xuICBhZGRWZXJ0ZXgoaWQ6IG51bWJlciwgc2VnSW5kZXg6IG51bWJlciwgeDogbnVtYmVyLCB5OiBudW1iZXIpOiB2b2lkO1xuXG4gIC8qKiBEZWxldGUgdGhlIHZlcnRleCBhdCBgaW5kZXhgLiBOby1vcCBmb3IgcmVjdGFuZ2xlcywgb3Igd2hlbiByZW1vdmluZyBpdFxuICAgKiAgd291bGQgZHJvcCB0aGUgcG9seWdvbiBiZWxvdyBpdHMgbWluaW11bSAoMyBjbG9zZWQgLyAyIG9wZW4pLiAqL1xuICBkZWxldGVWZXJ0ZXgoaWQ6IG51bWJlciwgaW5kZXg6IG51bWJlcik6IHZvaWQ7XG5cbiAgLyoqXG4gICAqIFRvZ2dsZSB0aGUgYmV6aWVyLWN1cnZlIGZsYWcgb24gYSByZWdpb24gKHRvQmV6aWVyID0gYHRydWVgLFxuICAgKiB0b1BvbHlnb24gPSBgZmFsc2VgKS4gVGhlIHZlcnRpY2VzIHN0YXkgcHV0IOKAlCBvbmx5IHRoZSBzbW9vdGgtY3VydmVcbiAgICogcmVuZGVyaW5nL2V4cG9ydCBpcyBhZGRlZCBvciByZW1vdmVkLiBBIHJlY3RhbmdsZSBpcyBmaXJzdCBjb252ZXJ0ZWQgdG8gYVxuICAgKiA0LWFuY2hvciBjbG9zZWQgcG9seWdvbiB3aGVuIHNtb290aGluZzsgdHVybmluZyBiZXppZXIgb2ZmIG9uIGEgcmVjdGFuZ2xlXG4gICAqIGlzIGEgbm8tb3AuXG4gICAqL1xuICBzZXRCZXppZXIoaWQ6IG51bWJlciwgYmV6aWVyOiBib29sZWFuKTogdm9pZDtcblxuICAvKipcbiAgICogTW92ZSBvbmUgb2YgYSBiZXppZXIgdmVydGV4J3MgdHdvIGN1YmljIGNvbnRyb2wgaGFuZGxlcyB0byBhYnNvbHV0ZSBwb2ludFxuICAgKiAoeCwgeSkuIGBzaWRlYCBpcyB0aGUgaW4tIG9yIG91dC1oYW5kbGUuIE5vLW9wIHVubGVzcyB0aGUgcmVnaW9uIGlzIGEgYmV6aWVyXG4gICAqIHBvbHlnb24uIFRoZSBoYW5kbGUgaXMgc3RvcmVkIHJlbGF0aXZlIHRvIGl0cyBhbmNob3IsIHNvIGl0IGZvbGxvd3MgdGhlXG4gICAqIGFuY2hvciB3aGVuIHRoZSB2ZXJ0ZXggaXMgbW92ZWQuXG4gICAqL1xuICBtb3ZlQmV6aWVySGFuZGxlKGlkOiBudW1iZXIsIGluZGV4OiBudW1iZXIsIHNpZGU6ICdpbicgfCAnb3V0JywgeDogbnVtYmVyLCB5OiBudW1iZXIpOiB2b2lkO1xuXG4gIC8qKlxuICAgKiBNb3ZlIGEgYmV6aWVyIGNvbnRyb2wgaGFuZGxlIG9uIGFuIGludGVyaW9yIHJpbmcgKGRvbnV0IGhvbGUpIOKAlCBsaWtlXG4gICAqIHtAbGluayBtb3ZlQmV6aWVySGFuZGxlfSBidXQgZm9yIGBob2xlc1tob2xlSW5kZXhdYC4gTm8tb3AgdW5sZXNzIHRoZSByZWdpb24gaXMgYSBiZXppZXJcbiAgICogcG9seWdvbiB3aXRoIGhvbGUgaGFuZGxlcyAoaml0LXVpIzEwMikuXG4gICAqL1xuICBtb3ZlSG9sZUJlemllckhhbmRsZShcbiAgICBpZDogbnVtYmVyLFxuICAgIGhvbGVJbmRleDogbnVtYmVyLFxuICAgIGluZGV4OiBudW1iZXIsXG4gICAgc2lkZTogJ2luJyB8ICdvdXQnLFxuICAgIHg6IG51bWJlcixcbiAgICB5OiBudW1iZXIsXG4gICk6IHZvaWQ7XG5cbiAgLyoqXG4gICAqIENvYWxlc2NlIHRoZSBlbWl0cyBmcm9tIGEgYnVyc3Qgb2YgZWRpdHMgKGUuZy4gYSBsaXZlIHZlcnRleCBkcmFnKSBpbnRvIGFcbiAgICogc2luZ2xlIHVwZGF0ZSBvbiBgZW5kQmF0Y2hgLiBDYWxscyBuZXN0OyB0aGUgdXBkYXRlIGZpcmVzIHdoZW4gdGhlXG4gICAqIG91dGVybW9zdCBiYXRjaCBjbG9zZXMuIFRoZSBvdmVybGF5IHN0aWxsIHJlZHJhd3MgaXRzZWxmIHBlciBmcmFtZSDigJQgdGhpc1xuICAgKiBvbmx5IHRocm90dGxlcyB0aGUgc3RvcmUncyBgcmVnaW9uVXBkYXRlJGAgc28gZG93bnN0cmVhbSBjb25zdW1lcnMgKHRoZVxuICAgKiBSZWdpb24gRWRpdG9yIHRhYmxlKSB1cGRhdGUgb25jZSBwZXIgZ2VzdHVyZSwgbm90IG9uY2UgcGVyIHBvaW50ZXIgbW92ZS5cbiAgICovXG4gIGJlZ2luQmF0Y2goKTogdm9pZDtcbiAgZW5kQmF0Y2goKTogdm9pZDtcbn1cbiJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaW9uLXN0b3JlLmNvbnRyYWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9jb250cmFjdHMvcmVnaW9uLXN0b3JlLmNvbnRyYWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSZWN0YW5nbGUsIFBvbHlnb24sIE11bHRpUG9seWdvbiB9IGZyb20gJy4uL21vZGVscy9yZWdpb24nO1xuaW1wb3J0IHsgUmVnaW9uIH0gZnJvbSAnLi4vbW9kZWxzL3JlZ2lvbic7XG5pbXBvcnQgdHlwZSB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB0eXBlIHsgUmVnaW9uU291cmNlVmlldyB9IGZyb20gJy4uL3JlZ2lvbi1zb3VyY2UvcmVnaW9uLXNvdXJjZSc7XG5pbXBvcnQgdHlwZSB7IFJlZ2lvblN0eWxlIH0gZnJvbSAnLi4vcmVnaW9uLW92ZXJsYXkvcmVnaW9uLXN0eWxlJztcblxuLyoqXG4gKiBSZWdpb24tbmF0aXZlIGVkaXRpbmcgc3VyZmFjZSDigJQgdHlwZWQgZ2VvbWV0cnkgb3BlcmF0aW9ucyBvbiB0aGUgbmV1dHJhbFxuICoge0BsaW5rIFJlZ2lvbn0gbW9kZWwuIFRoZSBPcGVuU2VhZHJhZ29uIG92ZXJsYXkgKGFuZCBhbnkgZnV0dXJlIGVkaXRpbmcgVUkpXG4gKiBtdXRhdGVzIHJlZ2lvbnMgdGhyb3VnaCB0aGVzZSBjYWxscyBpbnN0ZWFkIG9mIHJlYWNoaW5nIGludG8gYSBiYWNrZW5kJ3NcbiAqIG93biBzaGFwZSByZXByZXNlbnRhdGlvbiAoZS5nLiBQbG90bHkncyBgeDAveTAveDEveTFgIC8gYE3igKZM4oCmWmAgZGljdHMpLlxuICpcbiAqIEltcGxlbWVudGVkIGJ5IHRoZSBzaGFyZWQgYFJlZ2lvblN0b3JlYCwgd2hpY2ggb3ducyByZWdpb24gKnN0YXRlKjsgYmFja2VuZHNcbiAqIG93biAqcmVuZGVyaW5nKiBhbmQgcmVhY3QgdG8gdGhlIHN0b3JlJ3MgdXBkYXRlIGV2ZW50LiBUaGlzIHJlcGxhY2VzIHRoZVxuICogUGxvdGx5LXNoYXBlZCBgSVJlZ2lvbkVkaXRTdG9yZWAgKGdldFNoYXBlcy9hcHBseVNoYXBlc0NoYW5nZSkgdGhlIE9TRFxuICogb3ZlcmxheSB1c2VkIHRvIGRlcGVuZCBvbi5cbiAqXG4gKiBDb29yZGluYXRlcyBhcmUgYWx3YXlzICoqaW1hZ2UgcGl4ZWxzKiouIFZlcnRleCBvcGVyYXRpb25zIGFwcGx5IHRvIHBvbHlnb25cbiAqIHJlZ2lvbnMgb25seTsgY2FsbGluZyB0aGVtIG9uIGEgcmVjdGFuZ2xlIChvciB3aXRoIGFuIG91dC1vZi1yYW5nZSBpZC9pbmRleClcbiAqIGlzIGEgbm8tb3AuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSVJlZ2lvbkVkaXRBcGkge1xuICAvKiogQWRkIGEgcmVnaW9uIHRvIHRoZSBjdXJyZW50IGltYWdlLCBtaW50IGl0cyBpZCwgc2VsZWN0IGl0LCBhbmQgZW1pdC5cbiAgICogIFJldHVybnMgdGhlIGFzc2lnbmVkIGlkLiAqL1xuICBhZGRSZWdpb24ocmVnaW9uOiBSZWdpb24pOiBudW1iZXI7XG5cbiAgLyoqIFJlbW92ZSB0aGUgcmVnaW9uIHdpdGggdGhpcyBpZCAoYW5kIGRyb3AgaXQgZnJvbSB0aGUgc2VsZWN0aW9uKS4gKi9cbiAgcmVtb3ZlUmVnaW9uKGlkOiBudW1iZXIpOiB2b2lkO1xuXG4gIC8qKiBSZXBsYWNlIGEgcmVnaW9uJ3MgZ2VvbWV0cnkgd2hvbGVzYWxlIChlLmcuIGFmdGVyIGEgcmVjdGFuZ2xlIHJlc2l6ZSkuICovXG4gIHVwZGF0ZUJvdW5kcyhpZDogbnVtYmVyLCBib3VuZHM6IFJlY3RhbmdsZSB8IFBvbHlnb24gfCBNdWx0aVBvbHlnb24pOiB2b2lkO1xuXG4gIC8qKiBUcmFuc2xhdGUgdGhlIHdob2xlIHJlZ2lvbiBieSAoZHgsIGR5KSBpbWFnZSBwaXhlbHMuICovXG4gIG1vdmVSZWdpb24oaWQ6IG51bWJlciwgZHg6IG51bWJlciwgZHk6IG51bWJlcik6IHZvaWQ7XG5cbiAgLyoqIE1vdmUgYSBzaW5nbGUgcG9seWdvbiB2ZXJ0ZXggdG8gKHgsIHkpLiBOby1vcCBmb3IgcmVjdGFuZ2xlcy4gKi9cbiAgbW92ZVZlcnRleChpZDogbnVtYmVyLCBpbmRleDogbnVtYmVyLCB4OiBudW1iZXIsIHk6IG51bWJlcik6IHZvaWQ7XG5cbiAgLyoqIE1vdmUgYSBzaW5nbGUgdmVydGV4IG9uIGludGVyaW9yIHJpbmcgYGhvbGVJbmRleGAgKGEgaG9sZSkgdG8gKHgsIHkpLlxuICAgKiAgTm8tb3AgZm9yIHJlY3RhbmdsZXMsIG9yIGFuIG91dC1vZi1yYW5nZSBob2xlL3ZlcnRleCBpbmRleCAoaml0LXVpIzg1KS4gKi9cbiAgbW92ZUhvbGVWZXJ0ZXgoaWQ6IG51bWJlciwgaG9sZUluZGV4OiBudW1iZXIsIGluZGV4OiBudW1iZXIsIHg6IG51bWJlciwgeTogbnVtYmVyKTogdm9pZDtcblxuICAvKiogSW5zZXJ0IGEgdmVydGV4IG9uIGludGVyaW9yIHJpbmcgYGhvbGVJbmRleGAgYWZ0ZXIgYHNlZ0luZGV4YCAoaml0LXVpIzg1KS4gKi9cbiAgYWRkSG9sZVZlcnRleChpZDogbnVtYmVyLCBob2xlSW5kZXg6IG51bWJlciwgc2VnSW5kZXg6IG51bWJlciwgeDogbnVtYmVyLCB5OiBudW1iZXIpOiB2b2lkO1xuXG4gIC8qKiBEZWxldGUgdGhlIHZlcnRleCBhdCBgaW5kZXhgIG9uIGludGVyaW9yIHJpbmcgYGhvbGVJbmRleGA7IGRyb3BwaW5nIHRoZVxuICAgKiAgcmluZyBiZWxvdyAzIHZlcnRpY2VzIHJlbW92ZXMgdGhlIHdob2xlIGhvbGUgKGppdC11aSM4NSkuICovXG4gIGRlbGV0ZUhvbGVWZXJ0ZXgoaWQ6IG51bWJlciwgaG9sZUluZGV4OiBudW1iZXIsIGluZGV4OiBudW1iZXIpOiB2b2lkO1xuXG4gIC8qKiBJbnNlcnQgYSB2ZXJ0ZXggYXQgKHgsIHkpIGltbWVkaWF0ZWx5IGFmdGVyIGBzZWdJbmRleGAgKHRoZSBzdGFydCB2ZXJ0ZXhcbiAgICogIG9mIHRoZSBlZGdlIHRoZSBwb2ludCBsaWVzIG9uKS4gTm8tb3AgZm9yIHJlY3RhbmdsZXMuICovXG4gIGFkZFZlcnRleChpZDogbnVtYmVyLCBzZWdJbmRleDogbnVtYmVyLCB4OiBudW1iZXIsIHk6IG51bWJlcik6IHZvaWQ7XG5cbiAgLyoqIERlbGV0ZSB0aGUgdmVydGV4IGF0IGBpbmRleGAuIE5vLW9wIGZvciByZWN0YW5nbGVzLCBvciB3aGVuIHJlbW92aW5nIGl0XG4gICAqICB3b3VsZCBkcm9wIHRoZSBwb2x5Z29uIGJlbG93IGl0cyBtaW5pbXVtICgzIGNsb3NlZCAvIDIgb3BlbikuICovXG4gIGRlbGV0ZVZlcnRleChpZDogbnVtYmVyLCBpbmRleDogbnVtYmVyKTogdm9pZDtcblxuICAvKipcbiAgICogVG9nZ2xlIHRoZSBiZXppZXItY3VydmUgZmxhZyBvbiBhIHJlZ2lvbiAodG9CZXppZXIgPSBgdHJ1ZWAsXG4gICAqIHRvUG9seWdvbiA9IGBmYWxzZWApLiBUaGUgdmVydGljZXMgc3RheSBwdXQg4oCUIG9ubHkgdGhlIHNtb290aC1jdXJ2ZVxuICAgKiByZW5kZXJpbmcvZXhwb3J0IGlzIGFkZGVkIG9yIHJlbW92ZWQuIEEgcmVjdGFuZ2xlIGlzIGZpcnN0IGNvbnZlcnRlZCB0byBhXG4gICAqIDQtYW5jaG9yIGNsb3NlZCBwb2x5Z29uIHdoZW4gc21vb3RoaW5nOyB0dXJuaW5nIGJlemllciBvZmYgb24gYSByZWN0YW5nbGVcbiAgICogaXMgYSBuby1vcC5cbiAgICovXG4gIHNldEJlemllcihpZDogbnVtYmVyLCBiZXppZXI6IGJvb2xlYW4pOiB2b2lkO1xuXG4gIC8qKlxuICAgKiBNb3ZlIG9uZSBvZiBhIGJlemllciB2ZXJ0ZXgncyB0d28gY3ViaWMgY29udHJvbCBoYW5kbGVzIHRvIGFic29sdXRlIHBvaW50XG4gICAqICh4LCB5KS4gYHNpZGVgIGlzIHRoZSBpbi0gb3Igb3V0LWhhbmRsZS4gTm8tb3AgdW5sZXNzIHRoZSByZWdpb24gaXMgYSBiZXppZXJcbiAgICogcG9seWdvbi4gVGhlIGhhbmRsZSBpcyBzdG9yZWQgcmVsYXRpdmUgdG8gaXRzIGFuY2hvciwgc28gaXQgZm9sbG93cyB0aGVcbiAgICogYW5jaG9yIHdoZW4gdGhlIHZlcnRleCBpcyBtb3ZlZC5cbiAgICovXG4gIG1vdmVCZXppZXJIYW5kbGUoaWQ6IG51bWJlciwgaW5kZXg6IG51bWJlciwgc2lkZTogJ2luJyB8ICdvdXQnLCB4OiBudW1iZXIsIHk6IG51bWJlcik6IHZvaWQ7XG5cbiAgLyoqXG4gICAqIE1vdmUgYSBiZXppZXIgY29udHJvbCBoYW5kbGUgb24gYW4gaW50ZXJpb3IgcmluZyAoZG9udXQgaG9sZSkg4oCUIGxpa2VcbiAgICoge0BsaW5rIG1vdmVCZXppZXJIYW5kbGV9IGJ1dCBmb3IgYGhvbGVzW2hvbGVJbmRleF1gLiBOby1vcCB1bmxlc3MgdGhlIHJlZ2lvbiBpcyBhIGJlemllclxuICAgKiBwb2x5Z29uIHdpdGggaG9sZSBoYW5kbGVzIChqaXQtdWkjMTAyKS5cbiAgICovXG4gIG1vdmVIb2xlQmV6aWVySGFuZGxlKFxuICAgIGlkOiBudW1iZXIsXG4gICAgaG9sZUluZGV4OiBudW1iZXIsXG4gICAgaW5kZXg6IG51bWJlcixcbiAgICBzaWRlOiAnaW4nIHwgJ291dCcsXG4gICAgeDogbnVtYmVyLFxuICAgIHk6IG51bWJlcixcbiAgKTogdm9pZDtcblxuICAvKipcbiAgICogQ29hbGVzY2UgdGhlIGVtaXRzIGZyb20gYSBidXJzdCBvZiBlZGl0cyAoZS5nLiBhIGxpdmUgdmVydGV4IGRyYWcpIGludG8gYVxuICAgKiBzaW5nbGUgdXBkYXRlIG9uIGBlbmRCYXRjaGAuIENhbGxzIG5lc3Q7IHRoZSB1cGRhdGUgZmlyZXMgd2hlbiB0aGVcbiAgICogb3V0ZXJtb3N0IGJhdGNoIGNsb3Nlcy4gVGhlIG92ZXJsYXkgc3RpbGwgcmVkcmF3cyBpdHNlbGYgcGVyIGZyYW1lIOKAlCB0aGlzXG4gICAqIG9ubHkgdGhyb3R0bGVzIHRoZSBzdG9yZSdzIGByZWdpb25VcGRhdGUkYCBzbyBkb3duc3RyZWFtIGNvbnN1bWVycyAodGhlXG4gICAqIFJlZ2lvbiBFZGl0b3IgdGFibGUpIHVwZGF0ZSBvbmNlIHBlciBnZXN0dXJlLCBub3Qgb25jZSBwZXIgcG9pbnRlciBtb3ZlLlxuICAgKi9cbiAgYmVnaW5CYXRjaCgpOiB2b2lkO1xuICBlbmRCYXRjaCgpOiB2b2lkO1xufVxuXG4vKipcbiAqIFRoZSByZWdpb24tc291cmNlIHNpZGUgb2YgdGhlIHN0b3JlLCBhcyB0aGUgb3ZlcmxheXMgdXNlIGl0OiBhIGxhcmdlIHJlZ2lvbiBzZXQgaGVsZCBhcyBhXG4gKiB0aWxlZCBzb3VyY2UgKHNlZSBgUmVnaW9uU3RvcmUuYXR0YWNoUmVnaW9uU291cmNlYCkgdGhhdCB0aGUgb3ZlcmxheXMgZHJhdyBhdCB0aGUgem9vbSdzIGxldmVsXG4gKiBvZiBkZXRhaWwgYW5kIHBpY2sgZnJvbS4gT3B0aW9uYWwgb24gdGhlIG92ZXJsYXlzJyBzdG9yZTogYSBzdG9yZSB3aXRob3V0IGl0IHNpbXBseSBoYXMgbm9cbiAqIHNvdXJjZSB0byBkcmF3LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElSZWdpb25Tb3VyY2VBcGkge1xuICAvKiogVGhlIGN1cnJlbnQgc2xpY2UncyBzb3VyY2UgYXMgYSBsYXllciBkcmF3cyBpdCwgYW5kIGV2ZXJ5IGNoYW5nZSBvZiBpdDsgbnVsbCB3aXRob3V0IG9uZS4gKi9cbiAgZ2V0UmVnaW9uU291cmNlVmlldyQoKTogT2JzZXJ2YWJsZTxSZWdpb25Tb3VyY2VWaWV3IHwgbnVsbD47XG4gIC8qKiBUYWtlIHNvdXJjZSBmZWF0dXJlcyBpbnRvIHRoZSB3b3JraW5nIHNldCBhcyByZWdpb25zIGFuZCBzZWxlY3QgdGhlbSAoYWRkZWQgdG8gdGhlXG4gICAqICBzZWxlY3Rpb24gd2l0aCBgYWRkaXRpdmVgKS4gUmVzb2x2ZXMgdGhlIHJlZ2lvbiBpZHMuICovXG4gIHNlbGVjdFNvdXJjZUZlYXR1cmVzKGlkczogcmVhZG9ubHkgc3RyaW5nW10sIGFkZGl0aXZlPzogYm9vbGVhbik6IFByb21pc2U8bnVtYmVyW10+O1xuICAvKiogVGhlIHJlZ2lvbiBsb29rIChvdXRsaW5lcywgb3IgZmlsbGVkIHdpdGggaW5zaWRlIGxhYmVscykuICovXG4gIGdldFJlZ2lvblN0eWxlKCk6IFJlZ2lvblN0eWxlO1xuICAvKiogV2hldGhlciBhIGNsYXNzJ3MgbGFiZWwgaXMgbGVmdCBvdXQgYmVjYXVzZSBhIHN1YmNsYXNzIG9mIGl0IGlzIGRyYXduIHRvby4gKi9cbiAgaXNMYWJlbENvdmVyZWQobGFiZWw6IHN0cmluZyB8IHVuZGVmaW5lZCk6IGJvb2xlYW47XG4gIC8qKiBXaGV0aGVyIHJlZ2lvbnMgbGFiZWxsZWQgYGxhYmVsYCBhcmUgaGlkZGVuOiBub3QgZHJhd24sIG5vdCBwaWNrZWQuICovXG4gIGlzQ2xhc3NIaWRkZW4obGFiZWw6IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQpOiBib29sZWFuO1xufVxuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdGlvbi12aWV3LmNvbnRyYWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9jb250cmFjdHMvc2VjdGlvbi12aWV3LmNvbnRyYWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFRoZSBzZWN0aW9ucyBzaG93biBiZXNpZGUgYSBzcGxpdCB2b2x1bWUgdmlldzogdGhlIHBsYW5lcyB4ID0gY29uc3QgYW5kIHkgPSBjb25zdCB0aHJvdWdoIHRoZVxuICogc3RhY2ssIGVhY2ggYXMgYW4gaW1hZ2UgY3V0IGZyb20gdGhlIHZvbHVtZSB3aXRoIHRoZSByZWdpb25zJyBvdXRsaW5lcyBjdXQgYnkgdGhlIHNhbWUgcGxhbmUuXG4gKlxuICogU2VjdGlvbiBjb29yZGluYXRlcyBgKHUsIHYpYCAoc2VlIGBnZW9tZXRyeS9zZWN0aW9uYCk6IHRocm91Z2ggeCwgdSBpcyB0aGUgc2xpY2UgKHNsaWNlIGsgc3BhbnNcbiAqIFtrLCBrICsgMSkpIGFuZCB2IHRoZSBpbWFnZSB5OyB0aHJvdWdoIHksIHUgaXMgdGhlIGltYWdlIHggYW5kIHYgdGhlIHNsaWNlLlxuICovXG5leHBvcnQgdHlwZSBTZWN0aW9uQXhpcyA9ICd4JyB8ICd5JztcblxuLyoqIEEgY2xhc3MncyBvdXRsaW5lcyBpbiBhIHNlY3Rpb24sIGFzIGludGVybGVhdmVkIGB1LCB2YC4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2VjdGlvblJlZ2lvbnMge1xuICBsYWJlbDogc3RyaW5nO1xuICAvKiogYCNycmdnYmJgLiAqL1xuICBjb2xvcjogc3RyaW5nO1xuICAvKiogQ2xvc2VkIG91dGxpbmVzLCBob2xlcyBpbmNsdWRlZCAoZXZlbi1vZGQpLiAqL1xuICByaW5nczogRmxvYXQ2NEFycmF5W107XG4gIC8qKiBPcGVuIGxpbmVzIChhIGxheWVyIGJvdW5kYXJ5IGFjcm9zcyB0aGUgc2xpY2VzKTsgb25lIHBvaW50IHdoZXJlIGl0IGNyb3NzZXMgb25lIHNsaWNlIG9ubHkuICovXG4gIGxpbmVzOiBGbG9hdDY0QXJyYXlbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTZWN0aW9uVmlldyB7XG4gIGF4aXM6IFNlY3Rpb25BeGlzO1xuICAvKiogV2hlcmUgdGhlIHBsYW5lIGlzOiBpbWFnZSB4ICh0aHJvdWdoIHgpIG9yIHkgKHRocm91Z2ggeSksIHB4LiAqL1xuICBhdDogbnVtYmVyO1xuICAvKiogVGhlIHNlY3Rpb24ncyBpbWFnZSwgUkdCQSByb3cgYnkgcm93LCBzcGFubmluZyBbMCwgc2l6ZVswXV0gw5cgWzAsIHNpemVbMV1dLiAqL1xuICBpbWFnZTogeyB3aWR0aDogbnVtYmVyOyBoZWlnaHQ6IG51bWJlcjsgZGF0YTogVWludDhDbGFtcGVkQXJyYXkgfTtcbiAgLyoqIFNlY3Rpb24gdW5pdHMgYWNyb3NzICh1KSBhbmQgZG93biAodikuICovXG4gIHNpemU6IFtudW1iZXIsIG51bWJlcl07XG4gIC8qKiBUaGUgdm9sdW1lJ3Mgd29ybGQgdW5pdHMgcGVyIHNlY3Rpb24gdW5pdCBhY3Jvc3MgYW5kIGRvd246IGRyYXdzIGl0IGluIGl0cyBwcm9wb3J0aW9ucy4gKi9cbiAgc2NhbGU6IFtudW1iZXIsIG51bWJlcl07XG4gIHJlZ2lvbnM6IFNlY3Rpb25SZWdpb25zW107XG4gIC8qKiBUaGUgb3RoZXIgdHdvIHBsYW5lcywgYWNyb3NzIChhIHUpIGFuZCBkb3duIChhIHYpOyBudWxsIHdoZXJlIHRoZXJlIGlzIG5vbmUuICovXG4gIGNyb3NzaGFpcjogeyB1OiBudW1iZXIgfCBudWxsOyB2OiBudW1iZXIgfCBudWxsIH07XG59XG5cbi8qKiBCb3RoIHNlY3Rpb25zOyBudWxsIHVudGlsIHRoZSBzcGxpdCB2b2x1bWUgdmlldyBoYXMgYSB2b2x1bWUgdG8gY3V0LiAqL1xuZXhwb3J0IGludGVyZmFjZSBTZWN0aW9uVmlld3Mge1xuICB4OiBTZWN0aW9uVmlldyB8IG51bGw7XG4gIHk6IFNlY3Rpb25WaWV3IHwgbnVsbDtcbn1cbiJdfQ==
@@ -7,4 +7,4 @@ import { InjectionToken } from '@angular/core';
7
7
  * the routing/fallback implementation can change without touching constructors.
8
8
  */
9
9
  export const VISUALIZER = new InjectionToken('VISUALIZER');
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlzdWFsaXplci5jb250cmFjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvY29udHJhY3RzL3Zpc3VhbGl6ZXIuY29udHJhY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQThxQi9DOzs7Ozs7R0FNRztBQUNILE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxJQUFJLGNBQWMsQ0FBYyxZQUFZLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBJbWFnZSB9IGZyb20gJ2ltYWdlLWpzJztcblxuaW1wb3J0IHsgSUltYWdlSW5mbywgSUltYWdlTWV0YWRhdGEgfSBmcm9tICcuL2ltYWdlLmNvbnRyYWN0JztcbmltcG9ydCB7IFBvbHlnb24sIFJlZ2lvbiB9IGZyb20gJy4uL21vZGVscy9yZWdpb24nO1xuaW1wb3J0IHsgUGxvdFR5cGUsIFBsb3RUeXBlRGVzY3JpcHRvciB9IGZyb20gJy4vcGxvdC10eXBlJztcbmltcG9ydCB7IFZpZXdlckNhcGFiaWxpdGllcyB9IGZyb20gJy4vY2FwYWJpbGl0aWVzLmNvbnRyYWN0JztcbmltcG9ydCB7IElSZWdpb25PdmVybGF5IH0gZnJvbSAnLi9yZWdpb24tb3ZlcmxheS5jb250cmFjdCc7XG5pbXBvcnQgeyBJSGlzdG9ncmFtIH0gZnJvbSAnLi9jaGFubmVsLWhpc3RvZ3JhbS1hcGkuY29udHJhY3QnO1xuaW1wb3J0IHtcbiAgQ2FudmFzVG9vbE9wdGlvbnMsXG4gIENvbG9ybWFwTm9kZSxcbiAgSVdhbmRPcHRpb25zLFxuICBJQnJ1c2hPcHRpb25zLFxuICBTcGF0aWFsVmlld1N0YXRlLFxuICBTcGF0aWFsQ29sb3JCeSxcbn0gZnJvbSAnLi9kaXNwbGF5LXR5cGVzJztcbmltcG9ydCB7XG4gIENhdGVnb3JpY2FsQ29sdW1uTWV0YSxcbiAgU3BhdGlhbERhdGFzZXQsXG4gIFNwYXRpYWxFbWJlZGRpbmcsXG4gIFNwYXRpYWxNYXJrZXJHZW5lcyxcbiAgU3BhdGlhbFNlbGVjdGlvbk1hc2ssXG4gIFNwYXRpYWxUcmFuc2NyaXB0Q291bnRzLFxufSBmcm9tICcuL3NwYXRpYWwtZGF0YXNldC5jb250cmFjdCc7XG5pbXBvcnQgdHlwZSB7IFBsb3RNb2RlVmlld3BvcnQgfSBmcm9tICcuL3Bsb3QtdHlwZS1jb250cmlidXRpb24uY29udHJhY3QnO1xuXG4vKipcbiAqIEJhY2tlbmQtbmV1dHJhbCB2aXN1YWxpemF0aW9uIGNvbnRyYWN0LiBQbG90bHkgaXMgb25lIGltcGxlbWVudGF0aW9uO1xuICogT3BlblNlYWRyYWdvbiBpcyBhbm90aGVyIChmb3IgdGhlIGltYWdlIHBsb3QgdHlwZSkuIFRoZSBhYnN0cmFjdGlvbiByZW5kZXJzXG4gKiBkYXRhIOKAlCBhIHJhc3RlciBpbWFnZSBPUiBhIHNjaWVudGlmaWMgcGxvdCAoaGVhdG1hcCwgc3VyZmFjZSwgY29udG91cixcbiAqIHNjYXR0ZXIsIGxpbmUsIGlzb3N1cmZhY2UpIOKAlCBkcmF3cyByZWdpb25zIG9uIGl0LCBhbmQgZHJpdmVzIG9uLWNhbnZhcyB0b29scy5cbiAqXG4gKiBTcGxpdCBpbnRvIHJvbGUgaW50ZXJmYWNlcyBzbyBhIGNvbnN1bWVyIGNhbiBkZXBlbmQgb25seSBvbiB0aGUgc2xpY2UgaXRcbiAqIHVzZXMsIHRoZW4gY29tcG9zZWQgaW50byBgSVZpc3VhbGl6ZXJgLlxuICovXG5cbi8qKiBQaXhlbCByZWFkYmFjayBzaGFwZSByZXR1cm5lZCBieSBgZ2V0RGlzcGxheWVkUGl4ZWxEYXRhYC4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGl4ZWxEYXRhIHtcbiAgd2lkdGg6IG51bWJlcjtcbiAgaGVpZ2h0OiBudW1iZXI7XG4gIGNoYW5uZWxzOiBudW1iZXI7XG4gIGRhdGE6IFVpbnQ4Q2xhbXBlZEFycmF5O1xufVxuXG4vKiogSW50ZW5zaXR5IHNhbXBsZWQgYWxvbmcgYSBsaW5lIFJPSSAoUGxvdFR5cGUuTElORSBvdmVyIGltYWdlIGRhdGEpLiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbnRlbnNpdHlQcm9maWxlIHtcbiAgLyoqIERpc3RhbmNlIGFsb25nIHRoZSBsaW5lLiBJbiBtaWNyb25zIHdoZW4gdGhlIGltYWdlIGNhcnJpZXMgYSBwaHlzaWNhbFxuICAgKiAgcGl4ZWwgc2l6ZSAobXBwKTsgb3RoZXJ3aXNlIGluIGltYWdlIHBpeGVscy4gU2VlIHtAbGluayB1bml0fS4gKi9cbiAgcG9zaXRpb25zOiBudW1iZXJbXTtcbiAgLyoqIFNhbXBsZWQgaW50ZW5zaXR5IChncmF5c2NhbGUgdmFsdWUgb3IgUkdCIGx1bWluYW5jZSkuICovXG4gIHZhbHVlczogbnVtYmVyW107XG4gIC8qKiBVbml0IG9mIHtAbGluayBwb3NpdGlvbnN9OiAnwrVtJyB3aGVuIHNjYWxlZCBieSB0aGUgaW1hZ2UncyBtcHAsIGVsc2UgJ3B4Jy4gKi9cbiAgdW5pdD86ICfCtW0nIHwgJ3B4JztcbiAgLyoqIFN0YWJsZSBpZCBvZiB0aGUgbGluZSBST0kgdGhpcyBwcm9maWxlIGNhbWUgZnJvbSAobXVsdGktbGluZSBzdXBwb3J0KS4gKi9cbiAgaWQ/OiBudW1iZXI7XG4gIC8qKiBDb2xvdXIgb2YgdGhlIGxpbmUgUk9JIOKAlCB0aGUgaW5zZXQgdHJhY2UgaXMgZHJhd24gaW4gdGhlIHNhbWUgY29sb3VyLiAqL1xuICBjb2xvcj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBXaGF0IGBJRGF0YVJlbmRlcmVyLmxvYWQoKWAgcmVzb2x2ZXMgdG8uIEJhY2tlbmQtc3BlY2lmaWMgYmV5b25kIGBmaWxlbmFtZWAsXG4gKiB3aGljaCBuYW1lcyB0aGUgaW1hZ2UgdGhlIGhhbmRsZSB3YXMgbG9hZGVkIGZvcjogdGhlIGhvc3QgY29tcGFyZXMgaXQgd2l0aCB0aGVcbiAqIGltYWdlIGl0IGFza2VkIGZvciwgdG8gZHJvcCBhIGhhbmRsZSBhIG5ld2VyIHJlcXVlc3QgaGFzIG92ZXJ0YWtlbi4gUGFzcyB0aGVcbiAqIGhhbmRsZSBvbiB0byBgcGxvdCgpYCB1bmNoYW5nZWQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTG9hZGVkSW1hZ2Uge1xuICByZWFkb25seSBmaWxlbmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIFRoZSByZW5kZXIvdmlld3BvcnQgcm9sZTogbG9hZCBkYXRhLCByZW5kZXIgaXQgKGltYWdlIG9yIHBsb3QpLCBhbmQgaGFuZGxlXG4gKiB6b29tLCBzdGFjayBuYXZpZ2F0aW9uLCBhbmQgcGl4ZWwgcmVhZGJhY2suXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSURhdGFSZW5kZXJlciB7XG4gIC8qKiBGZXRjaCB3aGF0IHtAbGluayBwbG90fSBuZWVkcyBmb3IgdGhpcyBpbWFnZS9zbGljZS4gYHNpZ25hbGAgYWJvcnRzIHdoZW4gdGhlXG4gICAqICBob3N0IG5vIGxvbmdlciB3YW50cyB0aGUgcmVzdWx0IChhIG5ld2VyIGltYWdlLCBDYW5jZWwsIHRlYXJkb3duKTsgYSBiYWNrZW5kXG4gICAqICBtYXkgc3RvcCBpdHMgbmV0d29yayB3b3JrIHRoZW4uIE9wdGlvbmFsLCBhbmQgaWdub3JlZCBieSBiYWNrZW5kcyB0aGF0IGRvXG4gICAqICBub3Qgc3VwcG9ydCBpdCB5ZXQuICovXG4gIGxvYWQoaW1hZ2VJbmZvOiBJSW1hZ2VJbmZvLCB6SW5kZXg6IG51bWJlciwgc2lnbmFsPzogQWJvcnRTaWduYWwpOiBQcm9taXNlPExvYWRlZEltYWdlPjtcbiAgLyoqIGBpbWFnZUxvYWRlZGAgaXMgdGhlIHtAbGluayBMb2FkZWRJbWFnZX0gaGFuZGxlIHJldHVybmVkIGJ5IGBsb2FkKClgIChvciBudWxsXG4gICAqICBmb3IgYSBkcmF3IHdpdGggbm8gaW1hZ2UpIOKAlCBwYXNzIGl0IHN0cmFpZ2h0IHRocm91Z2guIFJlc29sdmVzIGZhbHNlIHdoZW4gdGhlXG4gICAqICBiYWNrZW5kIGNvdWxkIG5vdCBkcmF3IChubyBwbG90IHRhcmdldCwgbm8gV2ViR1BVLCDigKYpLiAqL1xuICBwbG90KFxuICAgIHBsb3REaXY6IHN0cmluZyxcbiAgICBpbWFnZUxvYWRlZDogdW5rbm93bixcbiAgICBpbWFnZUluZm86IElJbWFnZUluZm8sXG4gICAgc2NyZWVuSGVpZ2h0OiBudW1iZXIsXG4gICAgcGxvdFR5cGU6IFBsb3RUeXBlLFxuICAgIGluUGxhY2U/OiBib29sZWFuLFxuICApOiBQcm9taXNlPGJvb2xlYW4+O1xuICAvKiogQGRlcHJlY2F0ZWQgUGxvdGx5LXNwZWNpZmljIHJlLXJlbmRlcjsgdGhlIE9TRCBiYWNrZW5kIG5vLW9wcyBpdC4gVGhlIGhvc3RcbiAgICogIHJlLWRyaXZlcyBgcGxvdCgpYCBmcm9tIGl0cyBpbWFnZSBzdHJlYW0gaW5zdGVhZC4gKi9cbiAgcmVsb2FkQW5kUGxvdCgpOiB2b2lkO1xuICByZXNldCgpOiB2b2lkO1xuICByZWxheW91dCh0cnVlSW1hZ2VTaXplPzogbnVtYmVyW10pOiB2b2lkO1xuICAvKipcbiAgICogRml0IHRoZSB3aG9sZSBpbWFnZSAob3Igc2NlbmUpIGludG8gdGhlIHZpZXcg4oCUIGV2ZXJ5IGJhY2tlbmQgZG9lczogUGxvdGx5XG4gICAqIGF1dG9yYW5nZXMgaXRzIGF4ZXMsIE9wZW5TZWFkcmFnb24gZ29lcyBob21lLCBuYXBhcmktanMgZml0cyBpdHMgY2FtZXJhLiBUaGVcbiAgICogYmFja2VuZCB0aGVuIGVtaXRzIG9uIHtAbGluayBnZXRBdXRvc2NhbGVFdmVudH0uXG4gICAqL1xuICBmaXRUb1ZpZXcoKTogdm9pZDtcbiAgLyoqIFJlc2V0IHRoZSB2aWV3IHRvIHRoZSBpbWFnZSBleHRlbnQuIFNhbWUgaW50ZW50IGFzIHtAbGluayBmaXRUb1ZpZXd9OyBrZXB0IGZvclxuICAgKiAgY2FsbGVycyBvZiB0aGUgb3JpZ2luYWwgbmFtZS4gKi9cbiAgcmVzZXRBeGVzKCk6IHZvaWQ7XG4gIC8qKiBAZGVwcmVjYXRlZCBVc2Uge0BsaW5rIGZpdFRvVmlld30g4oCUIHRoZSBzYW1lIG9wZXJhdGlvbiB1bmRlciBpdHMgYmFja2VuZC1uZXV0cmFsIG5hbWUuICovXG4gIGF1dG9zY2FsZSgpOiB2b2lkO1xuICB6b29tSW4oKTogdm9pZDtcbiAgem9vbU91dCgpOiB2b2lkO1xuICBzZXREcmFnTW9kZShtb2RlOiBzdHJpbmcgfCBmYWxzZSk6IHZvaWQ7XG4gIC8qKiBAZGVwcmVjYXRlZCBVc2UgYGdldE9zZFZpZXdPcHRpb25zKCkuc2V0TmF2aWdhdG9yVmlzaWJsZSgpYCBvbiBgSVZpc3VhbGl6ZXJgLiAqL1xuICBzZXROYXZpZ2F0b3JWaXNpYmxlKHZpc2libGU6IGJvb2xlYW4pOiB2b2lkO1xuICAvKiogQGRlcHJlY2F0ZWQgVXNlIGBnZXRPc2RWaWV3T3B0aW9ucygpLnNldEltYWdlU21vb3RoaW5nRW5hYmxlZCgpYCBvbiBgSVZpc3VhbGl6ZXJgLiAqL1xuICBzZXRJbWFnZVNtb290aGluZ0VuYWJsZWQoZW5hYmxlZDogYm9vbGVhbik6IHZvaWQ7XG5cbiAgc2V0U2hvd1N0YWNrKHNob3dzdGFjazogYm9vbGVhbik6IHZvaWQ7XG4gIHNldFpJbmRleCh6SW5kZXg6IG51bWJlcik6IHZvaWQ7XG4gIHNldFN0YWNrTG9hZGluZyhzdGFja0xvYWRpbmc6IGJvb2xlYW4pOiB2b2lkO1xuICBpc1N0YWNrTG9hZGluZygpOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICBnZXRTdGFja0xvYWRpbmdQcm9ncmVzcygpOiBPYnNlcnZhYmxlPG51bWJlcj47XG4gIC8qKiBDYW5jZWwgYW55IGluLWZsaWdodCBtdWx0aS1mcmFtZSBsb2FkaW5nICh2b2x1bWUtYXNzZW1ibHkgLyBzdXJmYWNlIHByZWxvYWQpIHNvIGl0IHN0b3BzXG4gICAqICBmZXRjaGluZyBtb3JlIGZyYW1lcyBhbmQgY2xlYXJzIHRoZSBsb2FkaW5nIHN0YXRlLiBPcHRpb25hbCDigJQgb25seSBiYWNrZW5kcyB0aGF0IHN0cmVhbSBhXG4gICAqICB6LXN0YWNrIChuYXBhcmktanMgV2ViR1BVKSBkbyByZWFsIHdvcmsgaGVyZTsgb3RoZXJzIG5vLW9wLiAqL1xuICBjYW5jZWxMb2FkaW5nPygpOiB2b2lkO1xuXG4gIGdldFRydWVJbWFnZVNpemUoKTogeyB3aWR0aDogbnVtYmVyOyBoZWlnaHQ6IG51bWJlciB9IHwgbnVsbDtcbiAgZ2V0Q3VycmVudEltYWdlKCk6IFByb21pc2U8SW1hZ2UgfCBudWxsPjtcbiAgZ2V0RGlzcGxheWVkUGl4ZWxEYXRhKCk6IFBpeGVsRGF0YSB8IG51bGw7XG4gIC8qKlxuICAgKiBUaGUgcmVnaW9uIG9mIHRoZSBvcmlnaW5hbCwgZnVsbC1yZXNvbHV0aW9uIGltYWdlIHRoYXQgdGhlIHBpeGVscyByZXR1cm5lZFxuICAgKiBieSB7QGxpbmsgZ2V0RGlzcGxheWVkUGl4ZWxEYXRhfSBjdXJyZW50bHkgY292ZXIg4oCUIGB7IHgsIHksIHdpZHRoLCBoZWlnaHQgfWBcbiAgICogaW4gZnVsbC1pbWFnZSBwaXhlbCBjb29yZGluYXRlcy4gV2hlbiB6b29tZWQvcGFubmVkIGludG8gYSBzdWItYXJlYSB0aGlzIGlzXG4gICAqIHRoZSBjcm9wJ3Mgb3JpZ2luICsgZXh0ZW50OyB3aGVuIHpvb21lZCBvdXQvcGFubmVkIGJleW9uZCB0aGUgZWRnZXMsIHRoZVxuICAgKiByZWN0YW5nbGUgbWF5IGV4dGVuZCBvdXRzaWRlIHRoZSBpbWFnZSBib3VuZHMgKG1hdGNoaW5nIHRoZSBwaXhlbCByZWFkYmFja1xuICAgKiBjYW52YXMpLiBMZXRzIGEgY29uc3VtZXIgbWFwIGRpc3BsYXllZC1waXhlbCBjb29yZGluYXRlcyBiYWNrIHRvIHRoZSBvcmlnaW5hbFxuICAgKiBpbWFnZSB2aWEgYG9yaWdpbiArIGRpc3BsYXllZFB4ICogKGV4dGVudCAvIGRpc3BsYXllZERpbSlgLlxuICAgKlxuICAgKiBSZXR1cm5zIGBudWxsYCB3aGVuIHRoZSB2aWV3cG9ydCBpc24ndCBsYWlkIG91dCB5ZXQgb3IgdGhlIGJhY2tlbmQgY2FuJ3RcbiAgICogcmVwb3J0IGl0IOKAlCBjYWxsZXJzIHNob3VsZCB0aGVuIGZhbGwgYmFjayB0byB0aGUgZnVsbC1pbWFnZSBzY2FsZSAodHJlYXRcbiAgICogdGhlIGRpc3BsYXllZCBwaXhlbHMgYXMgYSBkb3duc2FtcGxlIG9mIHRoZSB3aG9sZSBpbWFnZSkuXG4gICAqL1xuICBnZXREaXNwbGF5ZWRTb3VyY2VSZWN0KCk6IHsgeDogbnVtYmVyOyB5OiBudW1iZXI7IHdpZHRoOiBudW1iZXI7IGhlaWdodDogbnVtYmVyIH0gfCBudWxsO1xuICBkb3dubG9hZEltYWdlKCk6IHZvaWQ7XG5cbiAgc2V0UGxvdFR5cGUocGxvdFR5cGU6IFBsb3RUeXBlKTogdm9pZDtcbiAgLyoqIEBkZXByZWNhdGVkIFVzZSBgZ2V0Vm9sdW1lUmVzb2x1dGlvbigpPy5zZXQoKWAgb24gYElWaXN1YWxpemVyYC4gKi9cbiAgc2V0UmVzb2x1dGlvblNjYWxlPyhzY2FsZTogbnVtYmVyKTogdm9pZDtcbiAgLyoqIEBkZXByZWNhdGVkIFVzZSBgZ2V0Vm9sdW1lUmVzb2x1dGlvbigpPy5nZXQoKWAgb24gYElWaXN1YWxpemVyYCAodGhpcyByZXR1cm5zIDEgd2l0aG91dCBvbmUpLiAqL1xuICBnZXRSZXNvbHV0aW9uU2NhbGU/KCk6IG51bWJlcjtcbiAgLyoqIEBkZXByZWNhdGVkIFVzZSBgZ2V0U3VyZmFjZTNkQ29udHJvbHMoKT8uc2V0U3VyZmFjZURyYWdNb2RlKClgIOKAlCAzRCBzY2VuZSBjb250cm9sc1xuICAgKiAgb25seSBleGlzdCBvbiBhIGJhY2tlbmQgdGhhdCByZW5kZXJzIDNEIHBsb3QgdHlwZXM7IHRoaXMgc2lsZW50bHkgbm8tb3BzIG9uIE9TRC4gKi9cbiAgc2V0U3VyZmFjZURyYWdNb2RlKG1vZGU6IHN0cmluZyk6IHZvaWQ7XG4gIC8qKiBAZGVwcmVjYXRlZCBVc2UgYGdldFN1cmZhY2UzZENvbnRyb2xzKClgIOKAlCBzZWUge0BsaW5rIHNldFN1cmZhY2VEcmFnTW9kZX0uICovXG4gIHJlc2V0U3VyZmFjZUNhbWVyYSgpOiB2b2lkO1xuXG4gIC8qKiBFbWl0cyB3aGVuZXZlciB0aGUgYmFja2VuZCBmaXRzIHRoZSB2aWV3ICh7QGxpbmsgZml0VG9WaWV3fSkuICovXG4gIGdldEF1dG9zY2FsZUV2ZW50KCk6IE9ic2VydmFibGU8dW5rbm93bj47XG5cbiAgLyoqIFBsb3QgdHlwZXMgdGhpcyBiYWNrZW5kIGFkdmVydGlzZXMgKGRyaXZlcyB0aGUgVUkgc2VsZWN0b3IpLiAqL1xuICBnZXRQbG90VHlwZURlc2NyaXB0b3JzKCk6IFBsb3RUeXBlRGVzY3JpcHRvcltdO1xuXG4gIC8qKiBJbnRlbnNpdHkgYWxvbmcgdGhlIGxpbmUgUk9JczsgZW1pdHMgdGhlIGZ1bGwgc2V0IGFzIGFueSBsaW5lIGlzIGFkZGVkLFxuICAgKiAgbW92ZWQsIG9yIHJlbW92ZWQgKFBsb3RUeXBlLkxJTkUpLiBPbmUgZW50cnkgcGVyIGxpbmUgUk9JLiAqL1xuICBnZXRJbnRlbnNpdHlQcm9maWxlJCgpOiBPYnNlcnZhYmxlPEludGVuc2l0eVByb2ZpbGVbXT47XG5cbiAgLyoqIFJlbmRlciB0aGUgZmxvYXRpbmcgaW50ZW5zaXR5LXByb2ZpbGUgaW5zZXQgY2hhcnQgaW50byBgZGl2SWRgIGZyb20gdGhlXG4gICAqICBnaXZlbiBwcm9maWxlcyAob25lIHRyYWNlIHBlciBsaW5lIFJPSSwgY29sb3VyZWQgdG8gbWF0Y2ggaXRzIGxpbmUpLlxuICAgKiAgT3duZWQgYnkgdGhlIGJhY2tlbmQgc28gY29uc3VtZXJzIG5ldmVyIHJlYWNoIGEgY2hhcnRpbmcgbGlicmFyeSBkaXJlY3RseS4gKi9cbiAgcmVuZGVySW50ZW5zaXR5SW5zZXQoZGl2SWQ6IHN0cmluZywgcHJvZmlsZXM6IEludGVuc2l0eVByb2ZpbGVbXSk6IHZvaWQ7XG59XG5cbi8qKiBSZWdpb24vc2hhcGUgc3RhdGU6IENSVUQsIHNlbGVjdGlvbiwgY2xhc3NpZmljYXRpb24gY29sb3VycywgR2VvSlNPTiBJL08uICovXG5leHBvcnQgaW50ZXJmYWNlIElSZWdpb25TdG9yZSB7XG4gIHNldFJlZ2lvbnMoXG4gICAgcmVnaW9uczogUmVnaW9uW10sXG4gICAgc2hvd1JlZ2lvbkxhYmVsPzogYm9vbGVhbixcbiAgICBpc1JlZ2lvblNhdmVPbj86IGJvb2xlYW4sXG4gICAgZmlsbENvbG9yPzogc3RyaW5nLFxuICAgIGFwcGVuZD86IGJvb2xlYW4sXG4gICk6IHZvaWQ7XG4gIC8qKiBGcmFtZXdvcmstbmV1dHJhbCBhY2Nlc3NvciDigJQgdGhlIGNhbm9uaWNhbCB3YXkgdG8gcmVhZCBjdXJyZW50IHJlZ2lvbnMuICovXG4gIGdldFJlZ2lvbnMoKTogUmVnaW9uW107XG4gIC8qKiBUaGUgY3VycmVudCByZWdpb25zIGFzIHBvbHlnb25zIChyZWN0YW5nbGVzIGV4cGFuZGVkKSwgZm9yIHNlcnZlciByZXF1ZXN0cy4gKi9cbiAgZ2V0UmVnaW9uUG9seWdvbnMoKTogUG9seWdvbltdO1xuICAvKiogRW1pdHMgdGhlIHJlZ2lvbiBzZXQgd2hlbmV2ZXIgaXQgY2hhbmdlcy4gKi9cbiAgZ2V0UmVnaW9uVXBkYXRlRXZlbnQoKTogT2JzZXJ2YWJsZTxSZWdpb25bXT47XG5cbiAgc2V0U2VsZWN0ZWRTaGFwZUluZGljZXMoaW5kaWNlczogbnVtYmVyW10pOiB2b2lkO1xuICBnZXRTZWxlY3RlZFNoYXBlSW5kaWNlcyQoKTogT2JzZXJ2YWJsZTxudW1iZXJbXT47XG4gIC8qKiBTZWxlY3QgYSBzcGVjaWZpYyByZWdpb24gKGJ5IGlkZW50aXR5KSwgaGlnaGxpZ2h0aW5nIGl0IG9uIHdoaWNoZXZlclxuICAgKiAgYmFja2VuZCBpcyByZW5kZXJpbmcg4oCUIFBsb3RseSBzZXRzIGl0cyBhY3RpdmUtc2hhcGUgaGFuZGxlcywgT3BlblNlYWRyYWdvblxuICAgKiAgaGlnaGxpZ2h0cyB0aGUgU1ZHIGVsZW1lbnQuIE5vLW9wIGlmIHRoZSByZWdpb24gaXNuJ3QgaW4gdGhlIHN0b3JlLiAqL1xuICBzZWxlY3RSZWdpb24ocmVnaW9uOiBSZWdpb24pOiB2b2lkO1xuICBkZWxldGVBY3RpdmVTaGFwZSgpOiB2b2lkO1xuXG4gIGdldFNob3dTaGFwZUxhYmVsKCk6IGJvb2xlYW47XG4gIGdldFNoYXBlQ29sb3IoKTogc3RyaW5nO1xuICBnZXRGaWxsQ29sb3IoKTogc3RyaW5nO1xuICBnZXRDbGFzc2lmaWNhdGlvbkNvbG9ycygpOiBNYXA8c3RyaW5nLCBzdHJpbmc+O1xuICBzZXRDbGFzc2lmaWNhdGlvbkNvbG9yKGxhYmVsOiBzdHJpbmcsIGNvbG9yOiBzdHJpbmcpOiB2b2lkO1xuXG4gIC8qKiBVbmRvIHRoZSBtb3N0IHJlY2VudCByZWdpb24gYWN0aW9uIChqaXQtdWkjODUpLiBSZXN0b3JlcyB0aGUgcmVnaW9uIHNldCB0b1xuICAgKiAgdGhlIHN0YXRlIGJlZm9yZSB0aGF0IGFjdGlvbjsgdXAgdG8gYSBzbWFsbCBmaXhlZCBkZXB0aCAoMTApIGlzIHJldGFpbmVkLFxuICAgKiAgc28gaXQgY2FuIGJlIGludm9rZWQgdXAgdG8gMTAgdGltZXMgaW4gYSByb3cuIE5vLW9wIHdoZW4gbm90aGluZyBpcyBsZWZ0IHRvXG4gICAqICB1bmRvLiAqL1xuICB1bmRvKCk6IHZvaWQ7XG4gIC8qKiBSZS1hcHBseSB0aGUgbW9zdCByZWNlbnRseSB1bmRvbmUgcmVnaW9uIGFjdGlvbi4gTm8tb3Agd2hlbiB0aGVyZSdzXG4gICAqICBub3RoaW5nIHRvIHJlZG8gKGFueSBmcmVzaCByZWdpb24gYWN0aW9uIGNsZWFycyB0aGUgcmVkbyBmdXR1cmUpLiAqL1xuICByZWRvKCk6IHZvaWQ7XG4gIC8qKiBTeW5jaHJvbm91cyByZWFkIG9mIHtAbGluayBnZXRDYW5VbmRvJH0uICovXG4gIGNhblVuZG8oKTogYm9vbGVhbjtcbiAgLyoqIFN5bmNocm9ub3VzIHJlYWQgb2Yge0BsaW5rIGdldENhblJlZG8kfS4gKi9cbiAgY2FuUmVkbygpOiBib29sZWFuO1xuICAvKiogRW1pdHMgd2hldGhlciBhbiB1bmRvIHN0ZXAgaXMgY3VycmVudGx5IGF2YWlsYWJsZSDigJQgZHJpdmVzIHRoZSB0b29sYmFyXG4gICAqICBVbmRvIGJ1dHRvbidzIGVuYWJsZWQgKGdyZXllZC1vdXQpIHN0YXRlLiAqL1xuICBnZXRDYW5VbmRvJCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICAvKiogRW1pdHMgd2hldGhlciBhIHJlZG8gc3RlcCBpcyBjdXJyZW50bHkgYXZhaWxhYmxlIOKAlCBkcml2ZXMgdGhlIHRvb2xiYXJcbiAgICogIFJlZG8gYnV0dG9uJ3MgZW5hYmxlZCAoZ3JleWVkLW91dCkgc3RhdGUuICovXG4gIGdldENhblJlZG8kKCk6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gIC8qKiBDbGVhciB0aGUgdW5kby9yZWRvIGhpc3RvcnkgKGUuZy4gb24gaW1hZ2UgbG9hZC9zd2l0Y2gpLiAqL1xuICByZXNldFVuZG9IaXN0b3J5KCk6IHZvaWQ7XG5cbiAgaW1wb3J0UmVnaW9ucyhnZW9Kc29uU3RyOiBzdHJpbmcpOiBSZWdpb25bXTtcbiAgZXhwb3J0UmVnaW9ucyhyZWdpb25zOiBSZWdpb25bXSk6IHZvaWQ7XG4gIGdldEdlb0pzb25TdHJpbmcocmVnaW9uczogUmVnaW9uW10pOiBzdHJpbmc7XG5cbiAgLyoqIEJlZ2luIGEgcGVyLXNsaWNlIHotc3RhY2sgcmVnaW9uIHNlc3Npb24gKGppdC11aSM5MykuIGBzbGljZXNgIG1hcHMgZWFjaFxuICAgKiAgemVyby1iYXNlZCBzbGljZSBpbmRleCB0byB0aGF0IHNsaWNlJ3MgcmVnaW9uczsgdGhlIHN0b3JlIHNob3dzIGBpbml0aWFsWmBcbiAgICogIGxpdmUgd2hpbGUgaG9sZGluZyB0aGUgcmVzdCwgc28gc2NydWJiaW5nIHN3YXBzIHJlZ2lvbiBzZXRzIGFuZCBlZGl0cyBvbiBhXG4gICAqICBzbGljZSBwZXJzaXN0LiBgc2F2ZUxheW91dGAgcmVjb3JkcyBob3cgdGhlIHN0YWNrIHBlcnNpc3RzIOKAlCBgY29tYmluZWRgXG4gICAqICAob25lIHotaW5kZXhlZCBnZW9qc29uLCBzaW5nbGUtZmlsZSB6LXN0YWNrKSBvciBgcGVyLXNsaWNlLWZpbGVgIChmb2xkZXJcbiAgICogIHN0YWNrKS4gU2VlIHtAbGluayBzZXREaXNwbGF5U2xpY2V9LCB7QGxpbmsgZ2V0U2xpY2VSZWdpb25zfS4gKi9cbiAgZW50ZXJTdGFja01vZGUoXG4gICAgc2xpY2VzOiBNYXA8bnVtYmVyLCBSZWdpb25bXT4sXG4gICAgaW5pdGlhbFo/OiBudW1iZXIsXG4gICAgc2F2ZUxheW91dD86ICdjb21iaW5lZCcgfCAncGVyLXNsaWNlLWZpbGUnLFxuICApOiB2b2lkO1xuICAvKiogRW5kIHRoZSBwZXItc2xpY2Ugc2Vzc2lvbiAoc2luZ2xlLXBsYW5lIGltYWdlLCBvciB0aGUgc3RhY2sgd2FzIGNsb3NlZCkuICovXG4gIGV4aXRTdGFja01vZGUoKTogdm9pZDtcbiAgLyoqIFRydWUgd2hpbGUgYSBwZXItc2xpY2Ugei1zdGFjayBzZXNzaW9uIGlzIGFjdGl2ZS4gKi9cbiAgaXNTdGFja01vZGUoKTogYm9vbGVhbjtcbiAgLyoqIEhvdyB0aGUgY3VycmVudCBzdGFjayBwZXJzaXN0cyB0byBkaXNrIChqaXQtdWkjOTMpLiAqL1xuICBnZXRTdGFja1NhdmVMYXlvdXQoKTogJ2NvbWJpbmVkJyB8ICdwZXItc2xpY2UtZmlsZSc7XG4gIC8qKiBTd2FwIHRoZSBsaXZlIHJlZ2lvbiBzZXQgdG8gc2xpY2UgYHpgIChzdGFjayBtb2RlIG9ubHkpLCBjYXB0dXJpbmcgdGhlXG4gICAqICBjdXJyZW50IHNsaWNlJ3MgZWRpdHMgZmlyc3QuIENhbGxlZCBvbiBldmVyeSBjb21taXR0ZWQgc2xpY2Ugc2NydWIuICovXG4gIHNldERpc3BsYXlTbGljZSh6OiBudW1iZXIpOiB2b2lkO1xuICAvKiogRXZlcnkgc2xpY2UncyByZWdpb25zIGZvciBzYXZlL2V4cG9ydCwgZWFjaCB0YWdnZWQgd2l0aCBpdHMgemVyby1iYXNlZFxuICAgKiAge0BsaW5rIFJlZ2lvbi56fTsgdGhlIGZsYXQgc2V0IG91dHNpZGUgc3RhY2sgbW9kZS4gKi9cbiAgZ2V0U2xpY2VSZWdpb25zKCk6IFJlZ2lvbltdO1xuICAvKiogU2xpY2VzIHRvIHdyaXRlIG9uIGEgcGVyLXNsaWNlLWZpbGUgc2F2ZSAoZm9sZGVyIHN0YWNrLCBqaXQtdWkjOTMpOiBlYWNoXG4gICAqICBzbGljZSB3aXRoIHJlZ2lvbnMsIHBsdXMgc2xpY2VzIGNsZWFyZWQgc2luY2UgbG9hZCAoZW1wdHksIHRvIG92ZXJ3cml0ZSkuXG4gICAqICBLZXllZCBieSB6ZXJvLWJhc2VkIHNsaWNlIGluZGV4OyByZWdpb25zIHRhZ2dlZCB3aXRoIHRoZWlyIHouICovXG4gIGdldFN0YWNrU2F2ZVNsaWNlcygpOiBNYXA8bnVtYmVyLCBSZWdpb25bXT47XG59XG5cbi8qKiBPbi1jYW52YXMgdG9vbCBtb2RlcyAod2FuZCwgYnJ1c2gsIHZlcnRleCBlcmFzZXIsIHpvb20tdG8tYm94LCBTQU0gcG9pbnQpLiAqL1xuZXhwb3J0IGludGVyZmFjZSBJVG9vbENvbnRyb2xsZXIge1xuICAvKipcbiAgICogQXJtIG9uZSBvbi1jYW52YXMgdG9vbCAoYENhbnZhc1Rvb2xJZGApIHdpdGggaXRzIG9wdGlvbnMg4oCUIHRoZSB3YW5kJ3NcbiAgICoge0BsaW5rIElXYW5kT3B0aW9uc30sIHRoZSBicnVzaCdzIHtAbGluayBJQnJ1c2hPcHRpb25zfSAoYHNpemVgIGlzIHRoZVxuICAgKiBtYXRyaXgtcGl4ZWwgZGlhbWV0ZXIgb2YgdGhlIHBhaW50ZWQgZGlzYyksIHRoZSBlcmFzZXIncyBgeyByYWRpdXMgfWAg4oCUXG4gICAqIGFuZCBkaXNhcm0gdGhlIG9uZSB0aGF0IHdhcyBhcm1lZC4gYG51bGxgLCBvciBhbnkgaWQgdGhhdCBpcyBub3QgYSBjYW52YXNcbiAgICogdG9vbCAoYSByZWdpb24gZHJhdyBtb2RlIHN1Y2ggYXMgYCdkcmF3cmVjdCdgLCBgJ3BhbidgKSwgZGlzYXJtcyBvbmx5LlxuICAgKiBBcm1pbmcgdGhlIGFybWVkIHRvb2wgYWdhaW4gYXBwbGllcyB0aGUgb3B0aW9ucyBhbmQga2VlcHMgaXRzIHdvcmsgaW5cbiAgICogcHJvZ3Jlc3MuXG4gICAqL1xuICBzZXRBY3RpdmVUb29sKGlkOiBzdHJpbmcgfCBudWxsLCBvcHRpb25zPzogQ2FudmFzVG9vbE9wdGlvbnMpOiB2b2lkO1xuICAvKiogQGRlcHJlY2F0ZWQgVXNlIGBzZXRBY3RpdmVUb29sKCd3YW5kJywgb3B0aW9ucylgIC8gYHNldEFjdGl2ZVRvb2wobnVsbClgLiAqL1xuICBzZXRXYW5kTW9kZShhY3RpdmU6IGJvb2xlYW4sIG9wdGlvbnM/OiBJV2FuZE9wdGlvbnMpOiB2b2lkO1xuICBzZXRXYW5kT3B0aW9ucyhvcHRpb25zOiBJV2FuZE9wdGlvbnMpOiB2b2lkO1xuICBjbGVhckFjdGl2ZVdhbmRSZWdpb24oKTogdm9pZDtcbiAgLyoqIEBkZXByZWNhdGVkIFVzZSBgc2V0QWN0aXZlVG9vbCgnYnJ1c2gnLCBvcHRpb25zKWAgLyBgc2V0QWN0aXZlVG9vbChudWxsKWAuICovXG4gIHNldEJydXNoTW9kZShhY3RpdmU6IGJvb2xlYW4sIG9wdGlvbnM/OiBJQnJ1c2hPcHRpb25zKTogdm9pZDtcbiAgc2V0QnJ1c2hPcHRpb25zKG9wdGlvbnM6IElCcnVzaE9wdGlvbnMpOiB2b2lkO1xuICAvKiogQGRlcHJlY2F0ZWQgVXNlIGBzZXRBY3RpdmVUb29sKCdlcmFzZVZlcnRleCcsIHsgcmFkaXVzIH0pYCAvIGBzZXRBY3RpdmVUb29sKG51bGwpYC4gKi9cbiAgc2V0VmVydGV4RXJhc2VyTW9kZShhY3RpdmU6IGJvb2xlYW4pOiB2b2lkO1xuICBzZXRWZXJ0ZXhFcmFzZXJSYWRpdXMocmFkaXVzOiBudW1iZXIpOiB2b2lkO1xuICAvKiogQGRlcHJlY2F0ZWQgVXNlIGBzZXRBY3RpdmVUb29sKCd6b29tVG9Cb3gnKWAgLyBgc2V0QWN0aXZlVG9vbChudWxsKWAuICovXG4gIHNldFpvb21Ub0JveE1vZGUoYWN0aXZlOiBib29sZWFuKTogdm9pZDtcbiAgLyoqIEJveC1wcm9tcHRlZCBTQU0gc2VnbWVudGF0aW9uOiBzZWdtZW50IGV2ZXJ5IHJlY3RhbmdsZSByZWdpb24gaW50byBtYXNrcy5cbiAgICogIFJldHVybnMgdGhlIG51bWJlciBvZiBtYXNrIHJlZ2lvbnMgYWRkZWQuIChqaXQtdWkjOTApICovXG4gIHNlZ21lbnRSZWN0YW5nbGVzKCk6IFByb21pc2U8bnVtYmVyPjtcbiAgLyoqIENlbGxwb3NlLW9uLWNyb3A6IGNsaWVudCBzbGlkZS1jcm9wIGVhY2ggcmVjdGFuZ2xlIGFuZCBzZWdtZW50IGNlbGxzIGluIGl0XG4gICAqICAoY2VsbHBvc2UtU0FNIHZpYSB0aGUgaG9zdCdzIENFTExfU0VHTUVOVEVSKS4gUmV0dXJucyByZWdpb25zIGFkZGVkLiAqL1xuICBzZWdtZW50UmVjdGFuZ2xlc0NlbGxwb3NlKCk6IFByb21pc2U8bnVtYmVyPjtcbiAgLyoqIENob29zZSB0aGUgcmVnaXN0ZXJlZCBTQU0gbW9kZWwgdGhlIHNlZ21lbnQgdG9vbHMgdXNlIChqaXQtdWkjOTAgUDEpLiAqL1xuICBzZXRTYW1Nb2RlbChpZDogc3RyaW5nKTogdm9pZDtcbiAgLyoqIFRvZ2dsZSB0aGUgaW50ZXJhY3RpdmUgU0FNIHBvaW50LXByb21wdCB0b29sIChjbGljayA9ICtwb2ludCwgU2hpZnQgPSAtKS5cbiAgICogIEBkZXByZWNhdGVkIFVzZSBgc2V0QWN0aXZlVG9vbCgnc2FtUG9pbnQnKWAgLyBgc2V0QWN0aXZlVG9vbChudWxsKWAuICovXG4gIHNldFNhbVBvaW50TW9kZShhY3RpdmU6IGJvb2xlYW4pOiB2b2lkO1xuICAvKiogRmluYWxpc2UgLyBkaXNjYXJkIHRoZSBpbi1wcm9ncmVzcyBTQU0gcG9pbnQgb2JqZWN0LiAqL1xuICBjb21taXRTYW1Qb2ludHMoKTogdm9pZDtcbiAgY2xlYXJTYW1Qb2ludHMoKTogdm9pZDtcbn1cblxuLyoqXG4gKiBDb250cm9scyBzcGVjaWZpYyB0byB0aGUgSVNPU1VSRkFDRSBwbG90IHR5cGUuIE9wdGlvbmFsIGFuZCBjYXBhYmlsaXR5LWdhdGVkXG4gKiAoYFZpZXdlckZlYXR1cmUuSXNvc3VyZmFjZWApOiBvbmx5IGEgYmFja2VuZCB0aGF0IHJlbmRlcnMgaXNvc3VyZmFjZXMgZXhwb3Nlc1xuICogaXQsIHZpYSBgSVZpc3VhbGl6ZXIuZ2V0SXNvc3VyZmFjZUNvbnRyb2xzKClgLiBLZXB0IG9mZiB0aGUgYWx3YXlzLW9uXG4gKiBjb250cmFjdCBzbyBjb25zdW1lcnMgbmV2ZXIgY2FsbCBhIGNvbnRyb2wgdGhhdCdzIG1lYW5pbmdsZXNzIGZvciB0aGUgY3VycmVudFxuICogcGxvdCB0eXBlIC8gYmFja2VuZC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJSXNvc3VyZmFjZUNvbnRyb2xzIHtcbiAgLyoqIExpdmUtdXBkYXRlIHRoZSBpc29zdXJmYWNlIGludGVuc2l0eSBiYW5kIFtpc29taW4sIGlzb21heF0gb3ZlciAw4oCTMjU1LiAqL1xuICBzZXRJc29SYW5nZShpc29NaW46IG51bWJlciwgaXNvTWF4OiBudW1iZXIpOiB2b2lkO1xufVxuXG4vKipcbiAqIENvbnRyb2xzIHNwZWNpZmljIHRvIHRoZSAzRCBwbG90IHR5cGVzIChTVVJGQUNFIC8gU0NBVFRFUjNEIC8gSVNPU1VSRkFDRVxuICogc2NlbmVzKS4gQ2FwYWJpbGl0eS1nYXRlZCBsaWtlIHtAbGluayBJSXNvc3VyZmFjZUNvbnRyb2xzfTogb25seSBhIGJhY2tlbmRcbiAqIHRoYXQgcmVuZGVycyAzRCBzY2VuZXMgZXhwb3NlcyBpdCwgdmlhIGBJVmlzdWFsaXplci5nZXRTdXJmYWNlM2RDb250cm9scygpYCDigJRcbiAqIHRoZSBkZXByZWNhdGVkIHRvcC1sZXZlbCBgc2V0U3VyZmFjZURyYWdNb2RlYC9gcmVzZXRTdXJmYWNlQ2FtZXJhYCBzaWxlbnRseVxuICogbm8tb3Agb24gMkQtb25seSBiYWNrZW5kcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJU3VyZmFjZTNkQ29udHJvbHMge1xuICAvKiogU3dpdGNoIHRoZSAzRCBzY2VuZSBpbnRlcmFjdGlvbiBtb2RlIChvcmJpdCAvIHR1cm50YWJsZSAvIHBhbiAvIHpvb20pLiAqL1xuICBzZXRTdXJmYWNlRHJhZ01vZGUobW9kZTogc3RyaW5nKTogdm9pZDtcbiAgLyoqIFJlc2V0IHRoZSAzRCBzY2VuZSBjYW1lcmEgdG8gaXRzIGRlZmF1bHQgZXllIHBvc2l0aW9uLiAqL1xuICByZXNldFN1cmZhY2VDYW1lcmEoKTogdm9pZDtcbiAgLyoqIFRvZ2dsZSB0aGUgM0QgY29vcmRpbmF0ZS1heGVzIC8gc2NhbGUgZ2l6bW8gb24vb2ZmLiBPcHRpb25hbCDigJQgb25seSB0aGUgbmFwYXJpLWpzIFdlYkdQVVxuICAgKiAgdm9sdW1lL2lzb3N1cmZhY2UgYmFja2VuZCByZW5kZXJzIG9uZSAoaml0LXVpIzEwMikuICovXG4gIHNldEF4ZXNWaXNpYmxlPyh2aXNpYmxlOiBib29sZWFuKTogdm9pZDtcbiAgLyoqIFdoZXRoZXIgdGhlIGF4ZXMgZ2l6bW8gaXMgY3VycmVudGx5IHNob3duIChmb3IgaW5pdGlhbGl6aW5nIHRoZSB0b2dnbGUgVUkpLiBPcHRpb25hbC4gKi9cbiAgYXhlc1Zpc2libGU/KCk6IGJvb2xlYW47XG4gIC8qKiBSZW5kZXIgdGhlIHN1cmZhY2UgYXMgYSB3aXJlZnJhbWUgKGVkZ2VzKSBpbnN0ZWFkIG9mIGEgZmlsbGVkIHN1cmZhY2UuIE9wdGlvbmFsIOKAlCBvbmx5IHRoZVxuICAgKiAgbmFwYXJpLWpzIFdlYkdQVSBzdXJmYWNlIGJhY2tlbmQgc3VwcG9ydHMgaXQgKGppdC11aSMxMDIpLiAqL1xuICBzZXRXaXJlZnJhbWU/KG9uOiBib29sZWFuKTogdm9pZDtcbiAgLyoqIFdoZXRoZXIgdGhlIHN1cmZhY2UgaXMgY3VycmVudGx5IGRyYXduIGFzIGEgd2lyZWZyYW1lIChmb3IgaW5pdGlhbGl6aW5nIHRoZSB0b2dnbGUgVUkpLiAqL1xuICB3aXJlZnJhbWU/KCk6IGJvb2xlYW47XG59XG5cbi8qKlxuICogQ29udHJvbHMgc3BlY2lmaWMgdG8gdGhlIExJTkUgKGludGVuc2l0eS1wcm9maWxlKSBwbG90IHR5cGUuIENhcGFiaWxpdHktZ2F0ZWRcbiAqIGxpa2Uge0BsaW5rIElJc29zdXJmYWNlQ29udHJvbHN9OiBvbmx5IGEgYmFja2VuZCB0aGF0IHJlbmRlcnMgdGhlIGxpbmUtUk9JIC9cbiAqIGluc2V0IGV4cG9zZXMgaXQsIHZpYSBgSVZpc3VhbGl6ZXIuZ2V0SW50ZW5zaXR5Q29udHJvbHMoKWAuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUludGVuc2l0eUNvbnRyb2xzIHtcbiAgLyoqIEFkZCBhbm90aGVyIGxpbmUgUk9JIChuZXh0IGJyaWdodCBwYWxldHRlIGNvbG91cikgYW5kIGl0cyBpbnNldCB0cmFjZS5cbiAgICogIFJldHVybnMgdGhlIGNyZWF0ZWQgcmVnaW9uIHNvIHRoZSBjYWxsZXIgY2FuIHNlbGVjdCBpdCBvbiB0aGUgYWN0aXZlXG4gICAqICBiYWNrZW5kLCBvciBudWxsIGlmIG5vIGltYWdlIGV4dGVudCBpcyBrbm93biB5ZXQuICovXG4gIGFkZFByb2ZpbGVMaW5lKCk6IFJlZ2lvbiB8IG51bGw7XG59XG5cbi8qKiBBIGNhdGVnb3JpY2FsIGNvbHVtbiByZXNvbHZlZCBmb3IgY2hhcnRpbmc6IGxhYmVscywgY29kZXMgYW5kIG1hcCBjb2xvdXJzLiAqL1xuZXhwb3J0IGludGVyZmFjZSBTcGF0aWFsQ2F0ZWdvcmljYWxWaWV3IHtcbiAgbmFtZTogc3RyaW5nO1xuICBjYXRlZ29yaWVzOiBzdHJpbmdbXTtcbiAgLyoqIGAjcnJnZ2JiYCBwZXIgY2F0ZWdvcnksIGluZGV4LWFsaWduZWQgd2l0aCB7QGxpbmsgY2F0ZWdvcmllc30uICovXG4gIGNvbG9yczogc3RyaW5nW107XG4gIC8qKiBQZXItb2JzZXJ2YXRpb24gY2F0ZWdvcnkgaW5kZXgsIG9yIGBOT19DQVRFR09SWWAuICovXG4gIGNvZGVzOiBVaW50MTZBcnJheTtcbn1cblxuLyoqXG4gKiBDb250cm9scyBmb3IgdGhlIFNQQVRJQUxfT01JQ1MgcGxvdCB0eXBlOiB3aGF0IHRoZSBvYnNlcnZhdGlvbiBtYXJrZXJzIGFyZVxuICogY29sb3VyZWQgYnksIGFuZCBob3cgdGhleSBhcmUgZHJhd24uIENhcGFiaWxpdHktZ2F0ZWQgbGlrZVxuICoge0BsaW5rIElJc29zdXJmYWNlQ29udHJvbHN9IOKAlCBgZ2V0U3BhdGlhbENvbnRyb2xzKClgIHJldHVybnMgbnVsbCB1bmxlc3MgYVxuICogaG9zdCBoYXMgYm91bmQgYFNQQVRJQUxfREFUQV9QT1JUYC5cbiAqXG4gKiBUaGUgdmlldyBzdGF0ZSBpcyBiYWNrZW5kLW5ldXRyYWwgKGl0IGxpdmVzIGluIHRoZSBzaGFyZWQgc3RvcmUsIGxpa2UgdGhlXG4gKiBjb2xvcm1hcCksIHNvIHRoZXNlIGNvbnRyb2xzIHdvcmsgd2hpY2hldmVyIGJhY2tlbmQgaXMgb24gc2NyZWVuLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElTcGF0aWFsQ29udHJvbHMge1xuICAvKiogVGhlIGRhdGFzZXQgYmVpbmcgdmlzdWFsaXplZCwgb3IgbnVsbC4gRHJpdmVzIHRoZSBjb2x1bW4vZ2VuZSBwaWNrZXJzIGFuZFxuICAgKiAgdGhlIGxlZ2VuZC4gKi9cbiAgZ2V0RGF0YXNldCQoKTogT2JzZXJ2YWJsZTxTcGF0aWFsRGF0YXNldCB8IG51bGw+O1xuICAvKiogQ3VycmVudCBkaXNwbGF5IHN0YXRlIChjb2xvdXIgc291cmNlLCBwb2ludCBzY2FsZSwgb3BhY2l0eSwgc2NhbGluZykuICovXG4gIGdldFZpZXdTdGF0ZSQoKTogT2JzZXJ2YWJsZTxTcGF0aWFsVmlld1N0YXRlPjtcbiAgLyoqIFN5bmNocm9ub3VzIHJlYWQsIGZvciBzZWVkaW5nIGEgY29udHJvbCdzIGluaXRpYWwgdmFsdWUuICovXG4gIHZpZXdTdGF0ZSgpOiBTcGF0aWFsVmlld1N0YXRlO1xuICAvKiogUGF0Y2ggdGhlIGRpc3BsYXkgc3RhdGU7IHRoZSBtYXJrZXJzIHJlYnVpbGQgd2l0aG91dCByZW1vdW50aW5nIHRoZSBzY2VuZS4gKi9cbiAgc2V0Vmlld1N0YXRlKHBhcnRpYWw6IFBhcnRpYWw8U3BhdGlhbFZpZXdTdGF0ZT4pOiB2b2lkO1xuICAvKiogQ29sb3VyIGJ5IGFuIGFubm90YXRpb24gY29sdW1uLiBSZWplY3RzIGZvciBhbiB1bmtub3duIGNvbHVtbi4gKi9cbiAgY29sb3JCeUNvbHVtbihuYW1lOiBzdHJpbmcpOiB2b2lkO1xuICAvKiogQ29sb3VyIGJ5IGEgZ2VuZTsgaXRzIHZlY3RvciBpcyBmZXRjaGVkIG9uIGRlbWFuZC4gKi9cbiAgY29sb3JCeUZlYXR1cmUobmFtZTogc3RyaW5nKTogdm9pZDtcbiAgLyoqIENsZWFyIHRoZSBjb2xvdXIgc291cmNlIOKAlCBldmVyeSBvYnNlcnZhdGlvbiByZW5kZXJzIGluIG9uZSBuZXV0cmFsIGNvbG91ci4gKi9cbiAgY2xlYXJDb2xvckJ5KCk6IHZvaWQ7XG4gIC8qKiBUeXBlYWhlYWQgb3ZlciBmZWF0dXJlIG5hbWVzLCBmb3IgZGF0YXNldHMgdG9vIHdpZGUgdG8gaW5saW5lIHRoZSBsaXN0LiAqL1xuICBzZWFyY2hGZWF0dXJlcyhxdWVyeTogc3RyaW5nLCBsaW1pdD86IG51bWJlcik6IFByb21pc2U8c3RyaW5nW10+O1xuICAvKiogUGVyLWNhdGVnb3J5IGRpc3BsYXkgY29sb3VycyBmb3IgYSBjYXRlZ29yaWNhbCBjb2x1bW4sIGluZGV4LWFsaWduZWQgd2l0aFxuICAgKiAgaXRzIGBjYXRlZ29yaWVzYCDigJQgdGhlIGxlZ2VuZCdzIHN3YXRjaGVzLCByZXNvbHZlZCB0aGUgc2FtZSB3YXkgdGhlXG4gICAqICByZW5kZXJlciByZXNvbHZlcyB0aGVtIHNvIHRoZSB0d28gY2Fubm90IGRpc2FncmVlLiAqL1xuICBjYXRlZ29yeUNvbG9ycyhuYW1lOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZ1tdPjtcblxuICAvLyDilIDilIAgdmFsdWVzLCBmb3IgdGhlIDEtRCBjaGFydHMg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4gIC8qKlxuICAgKiBUaGUgdmFsdWVzIGJlaGluZCBhIGNvbG91ciBzb3VyY2UsIGluZGV4LWFsaWduZWQgd2l0aCB0aGUgb2JzZXJ2YXRpb25zLlxuICAgKiBSZWplY3RzIGZvciBhIGNhdGVnb3JpY2FsIGNvbHVtbiDigJQgdGhlcmUgaXMgbm90aGluZyBjb250aW51b3VzIHRvIGNoYXJ0LlxuICAgKi9cbiAgY29udGludW91c1ZhbHVlcyhzb3VyY2U6IFNwYXRpYWxDb2xvckJ5KTogUHJvbWlzZTxGbG9hdDMyQXJyYXk+O1xuICAvKipcbiAgICogQSBjYXRlZ29yaWNhbCBjb2x1bW4ncyBjYXRlZ29yaWVzLCBwZXItb2JzZXJ2YXRpb24gY29kZXMgYW5kIGRpc3BsYXlcbiAgICogY29sb3VycyDigJQgZXZlcnl0aGluZyBhIGdyb3VwZWQgdmlvbGluL2JveCBuZWVkcywgd2l0aCB0aGUgY29sb3VycyByZXNvbHZlZFxuICAgKiB0aGUgc2FtZSB3YXkgdGhlIG1hcCByZXNvbHZlcyB0aGVtLlxuICAgKi9cbiAgY2F0ZWdvcmljYWxWaWV3KGNvbHVtbjogc3RyaW5nKTogUHJvbWlzZTxTcGF0aWFsQ2F0ZWdvcmljYWxWaWV3PjtcblxuICAvKipcbiAgICogT25lIGVtYmVkZGluZydzIGNvb3JkaW5hdGVzIOKAlCBhIFVNQVAsIHQtU05FIG9yIFBDQSBwbGFuZSBvdmVyIHRoZSBzYW1lIG9ic2VydmF0aW9ucy5cbiAgICpcbiAgICogT3B0aW9uYWwsIGFuZCBhYnNlbnQgd2hlbiB0aGUgZGF0YSBzb3VyY2Ugc2VydmVzIG5vbmU6IGBTcGF0aWFsRGF0YVBvcnQuZ2V0RW1iZWRkaW5nYFxuICAgKiBpcyBpdHNlbGYgb3B0aW9uYWwsIHNvIGEgcGFuZWwgbXVzdCBiZSBhYmxlIHRvIGFzayB3aGV0aGVyIHRoaXMgZXhpc3RzIHJhdGhlciB0aGFuXG4gICAqIGNhbGxpbmcgaXQgYW5kIGNhdGNoaW5nLlxuICAgKi9cbiAgZ2V0RW1iZWRkaW5nPyhuYW1lOiBzdHJpbmcpOiBQcm9taXNlPFNwYXRpYWxFbWJlZGRpbmc+O1xuICAvKiogTmFtZXMgb2YgdGhlIGNhdGVnb3JpY2FsIGNvbHVtbnMgYXZhaWxhYmxlIHRvIGdyb3VwIGJ5LiAqL1xuICBjYXRlZ29yaWNhbENvbHVtbnMoKTogc3RyaW5nW107XG4gIC8qKlxuICAgKiBJbXBvcnQgYSBjZWxsIGdyb3VwaW5nIChDU1YvVFNWIG9mIGBjZWxsX2lkYCwgYGdyb3VwYCkgYXMgYSBuZXcgY2F0ZWdvcmljYWwgY29sdW1uLlxuICAgKiBPcHRpb25hbDogb25seSBkYXRhIHNvdXJjZXMgdGhhdCBjYW4gam9pbiBjZWxsIGlkcyBpbXBsZW1lbnQgaXQuXG4gICAqL1xuICBpbXBvcnRHcm91cHM/KGxhYmVsOiBzdHJpbmcsIHRhYmxlOiBzdHJpbmcpOiBQcm9taXNlPHsgY29sdW1uOiBDYXRlZ29yaWNhbENvbHVtbk1ldGE7IG1hdGNoZWQ6IG51bWJlciB9PjtcbiAgLyoqIFRyYW5zY3JpcHQgdG90YWxzIHBlciBnZW5lIOKAlCBmb3IgdGhlIHBvaW50cyBlc3RpbWF0ZS4gT3B0aW9uYWwuICovXG4gIHRyYW5zY3JpcHRDb3VudHM/KGdlbmVzOiBzdHJpbmdbXSk6IFByb21pc2U8U3BhdGlhbFRyYW5zY3JpcHRDb3VudHM+O1xuICAvKiogTWFya2VyIGdlbmVzIG9mIGVhY2ggZ3JvdXAgb2YgYSBjYXRlZ29yaWNhbCBjb2x1bW4uIE9wdGlvbmFsIChzZWUgdGhlIHBvcnQpLiAqL1xuICBtYXJrZXJHZW5lcz8oY29sdW1uOiBzdHJpbmcsIHBlckdyb3VwPzogbnVtYmVyKTogUHJvbWlzZTxTcGF0aWFsTWFya2VyR2VuZXM+O1xuICAvKiogVHJhbnNjcmlwdHMgb2YgZWFjaCBzZWxlY3RlZCBnZW5lIGluIHRoZSBjdXJyZW50IHZpZXcsIG9yIG51bGwgd2hlbiBub3Qga25vd25cbiAgICogIChhbGwgZ2VuZXMgYXQgb25jZSwgdHJhbnNjcmlwdHMgb2ZmLCBvciBhIHNlbGVjdGlvbiB6b29tZWQgb3V0IG9uIGEgZGF0YXNldCB3aXRob3V0IHRoZVxuICAgKiAgcHlyYW1pZCdzIHBlci1nZW5lIGxldmVscywgd2hlcmUgY2x1c3RlcnMgYXJlIGRyYXduIGZyb20gc3VtbWVkIGRlbnNpdHkgZ3JpZHMpLiAqL1xuICBnZXRHZW5lQ291bnRzSW5WaWV3JD8oKTogT2JzZXJ2YWJsZTxSZWNvcmQ8c3RyaW5nLCBudW1iZXI+IHwgbnVsbD47XG4gIC8qKiBFc3RpbWF0ZWQgdHJhbnNjcmlwdHMgaW4gdmlldyBmb3IgdGhlIGN1cnJlbnQgc2VsZWN0aW9uLCBhZ2FpbnN0IHRoZSBtYXJrZXIgYnVkZ2V0LiAqL1xuICBnZXRUcmFuc2NyaXB0RXN0aW1hdGUkPygpOiBPYnNlcnZhYmxlPHsgcG9pbnRzOiBudW1iZXI7IG1heDogbnVtYmVyIH0gfCBudWxsPjtcbiAgLyoqIFRoZSBkZW5zaXR5IG1hcCdzIGNvbG91ciB3aW5kb3cgaW4gdXNlIChhdXRvLWRlcml2ZWQgb3Igc2V0KSBhbmQgaXRzIGRlbnNlc3QgYmluLiAqL1xuICBnZXREZW5zaXR5U3RhdHMkPygpOiBPYnNlcnZhYmxlPHsgbG86IG51bWJlcjsgaGk6IG51bWJlcjsgbWF4OiBudW1iZXIgfSB8IG51bGw+O1xuICAvKipcbiAgICogVGhlIHogcG9zaXRpb25zIG9mIHRoZSBzZWN0aW9ucyB0aGUgZGF0YXNldCB3YXMgaW1hZ2VkIGF0LCBhc2NlbmRpbmcg4oCUIG9yXG4gICAqIG51bGwgd2hlbiBpdHMgeiBpcyBjb250aW51b3VzIHJhdGhlciB0aGFuIHNlY3Rpb25lZCAoc28gdGhlcmUgYXJlIG5vIHNlY3Rpb25zXG4gICAqIHRvIG9mZmVyKSBvciB3aGVuIHRoZXJlIGlzIG5vIGRhdGFzZXQuXG4gICAqXG4gICAqIExldHMgYSBwYW5lbCBvZmZlciBcIm9uZSBzZWN0aW9uIGF0IGEgdGltZVwiIGZvciB0aGUgM0QgY2xvdWQgb25seSB3aGVyZSB0aGF0XG4gICAqIG1lYW5zIHNvbWV0aGluZywgYW5kIGxhYmVsIHRoZSBjaG9zZW4gb25lLiBTY2FubmVkIG9uY2UgcGVyIGRhdGFzZXQuXG4gICAqL1xuICBzYW1wbGVkU2VjdGlvbnMoKTogRmxvYXQzMkFycmF5IHwgbnVsbDtcblxuICAvLyDilIDilIAgc2VsZWN0aW9uIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuICAvKiogVGhlIGN1cnJlbnQgc2VsZWN0aW9uLiBFbXB0eSBtZWFucyBcIm5vdGhpbmcgc2VsZWN0ZWRcIiwgaW4gd2hpY2ggY2FzZSB0aGVcbiAgICogIHdob2xlIHRpc3N1ZSByZW5kZXJzIG5vcm1hbGx5IHJhdGhlciB0aGFuIGV2ZXJ5dGhpbmcgYmVpbmcgbXV0ZWQuICovXG4gIGdldFNlbGVjdGlvbiQoKTogT2JzZXJ2YWJsZTxTcGF0aWFsU2VsZWN0aW9uTWFzaz47XG4gIC8qKlxuICAgKiBTZWxlY3QgZXZlcnkgb2JzZXJ2YXRpb24gaW5zaWRlIHRoZSBjdXJyZW50bHktZHJhd24gcmVnaW9ucyAodGhlaXIgdW5pb24pLlxuICAgKiBSZXVzZXMgdGhlIGV4aXN0aW5nIFJPSSB0b29scyDigJQgcmVjdGFuZ2xlLCBwb2x5Z29uLCBmcmVlaGFuZCwgd2FuZCwgYnJ1c2gg4oCUXG4gICAqIHNvIHRoZXJlIGlzIG5vIHNlcGFyYXRlIG1hcnF1ZWUgdG8gbGVhcm4uIFJldHVybnMgaG93IG1hbnkgd2VyZSBzZWxlY3RlZC5cbiAgICovXG4gIHNlbGVjdEZyb21SZWdpb25zKCk6IG51bWJlcjtcbiAgLyoqIFNlbGVjdCBldmVyeSBvYnNlcnZhdGlvbiBpbiBvbmUgY2F0ZWdvcnkgb2YgYSBjYXRlZ29yaWNhbCBjb2x1bW4g4oCUIHRoZVxuICAgKiAgbGVnZW5kIGNsaWNrLiBSZWplY3RzIGZvciBhbiB1bmtub3duIG9yIGNvbnRpbnVvdXMgY29sdW1uLiAqL1xuICBzZWxlY3RDYXRlZ29yeShjb2x1bW46IHN0cmluZywgY2F0ZWdvcnlJbmRleDogbnVtYmVyKTogUHJvbWlzZTxudW1iZXI+O1xuXG4gIC8qKlxuICAgKiBTZWxlY3QgYW4gZXhwbGljaXQgc2V0IG9mIG9ic2VydmF0aW9ucywgcmVwbGFjaW5nIGFueSBjdXJyZW50IHNlbGVjdGlvbi5cbiAgICpcbiAgICogRm9yIGEgbGlua2VkIHBsb3Q6IGxhc3NvaW5nIHBvaW50cyBpbiBhbiBlbWJlZGRpbmcgaXMgYSBzZWxlY3Rpb24gT0Ygb2JzZXJ2YXRpb25zLFxuICAgKiBhbmQgZXZlcnkgb3RoZXIgdmlldyDigJQgdGhlIG1hcCwgdGhlIGRpc3RyaWJ1dGlvbnMg4oCUIHJlYWRzIHRoZSBzYW1lIG1hc2ssIHNvIGJydXNoaW5nXG4gICAqIG9uZSBsaWdodHMgdXAgdGhlIHJlc3QuIFJldHVybnMgaG93IG1hbnkgd2VyZSBzZWxlY3RlZC5cbiAgICovXG4gIHNlbGVjdEluZGljZXMoaW5kaWNlczogSXRlcmFibGU8bnVtYmVyPik6IG51bWJlcjtcbiAgY2xlYXJTZWxlY3Rpb24oKTogdm9pZDtcbn1cblxuLyoqIERpc3BsYXkgb3B0aW9ucyAoY29sb3JtYXAvTFVULCByZXZlcnNlIHNjYWxlLCBpbWFnZSBtZXRhZGF0YSkuICovXG5leHBvcnQgaW50ZXJmYWNlIElEaXNwbGF5T3B0aW9ucyB7XG4gIGdldENvbG9ybWFwKCk6IE9ic2VydmFibGU8Q29sb3JtYXBOb2RlIHwgbnVsbD47XG4gIHNldENvbG9ybWFwKGNvbG9ybWFwOiBDb2xvcm1hcE5vZGUpOiB2b2lkO1xuICBnZXRDb2xvcm1hcE9wdGlvbnMoKTogQ29sb3JtYXBOb2RlW107XG4gIGdldFJldmVyc2VTY2FsZSgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICBzZXRSZXZlcnNlU2NhbGUocmV2ZXJzZTogYm9vbGVhbik6IHZvaWQ7XG4gIC8qKiBQdWJsaXNoIHRoZSBjdXJyZW50IGltYWdlJ3MgbWV0YWRhdGEuIGBpbWFnZUtleWAgKGl0cyBmaWxlIG5hbWUpIGxldHMgdGhlXG4gICAqICBjaGFubmVsIHN0YXRlIHN1cnZpdmUgYSByZS1wbG90IG9mIHRoZSBzYW1lIGltYWdlIGJ1dCBub3QgYSBzd2l0Y2ggdG8gYW5vdGhlci4gKi9cbiAgc2V0SW1hZ2VNZXRhKGltYWdlTWV0YTogSUltYWdlTWV0YWRhdGFbXSwgaW1hZ2VLZXk/OiBzdHJpbmcpOiB2b2lkO1xuICBnZXRJbWFnZU1ldGEoKTogT2JzZXJ2YWJsZTxJSW1hZ2VNZXRhZGF0YVtdPjtcbn1cblxuLyoqXG4gKiBUaGUgcGFydCBvZiBpbnRlbnNpdHkgc2FtcGxpbmcgYSByZW5kZXJpbmcgYmFja2VuZCBvd25zOiB3aGVyZSBpdHMgdmlldyBzZXR0bGVkLlxuICogV2hhdCBgSVZpZXdlckJhY2tlbmQuZ2V0SW50ZW5zaXR5U2FtcGxpbmcoKWAgcmV0dXJucy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJSW50ZW5zaXR5Vmlld3BvcnRTb3VyY2Uge1xuICAvKiogVmlzaWJsZS1yZWdpb24gY2hhbmdlcyAoaW1hZ2UtcGl4ZWwgY29vcmRzKSwgZW1pdHRlZCB3aGVuIHRoZSB2aWV3IHNldHRsZXMsXG4gICAqICBzbyB0aGUgaW5zZXQgY2FuIHJlLXNhbXBsZSBhdCB0aGUgY3VycmVudCB6b29tLiAqL1xuICBnZXRWaWV3cG9ydENoYW5nZSQoKTogT2JzZXJ2YWJsZTx7IHg6IG51bWJlcjsgeTogbnVtYmVyOyB3aWR0aDogbnVtYmVyOyBoZWlnaHQ6IG51bWJlciB9Pjtcbn1cblxuLyoqXG4gKiBJbnRlbnNpdHktcHJvZmlsZSBzYW1wbGluZyAodGhlIGxpbmUgUk9JcycgaW5zZXQpLCBmcm9tIGBJVmlzdWFsaXplci5nZXRJbnRlbnNpdHlTYW1wbGluZygpYC5cbiAqIFRoZSBzYW1wbGluZyBpdHNlbGYgaXMgYmFja2VuZC1uZXV0cmFsICh0aGUgbGlicmFyeSdzIEludGVuc2l0eVByb2ZpbGVTZXJ2aWNlXG4gKiBzYW1wbGVzIHdoYXRldmVyIGltYWdlIGlzIG9uIHNjcmVlbik7IHRoZSB2aWV3cG9ydC1jaGFuZ2Ugc2lnbmFsIGNvbWVzIGZyb20gdGhlXG4gKiBiYWNrZW5kIHRoYXQgZHJhd3MgdGhlIGltYWdlIChPcGVuU2VhZHJhZ29uIGFuZCBuYXBhcmktanMgcmVwb3J0IGl0OyBQbG90bHlcbiAqIHJlLXNhbXBsZXMgaXRzIGhpZ2gtZGVmIHpvb20gY3JvcHMgaW5saW5lIGluc3RlYWQpLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElJbnRlbnNpdHlTYW1wbGluZyBleHRlbmRzIElJbnRlbnNpdHlWaWV3cG9ydFNvdXJjZSB7XG4gIC8qKiBMb2FkIHRoZSBjdXJyZW50IGltYWdlL3NsaWNlJ3MgcGl4ZWxzIHNvIHRoZSBsaW5lLVJPSSBwcm9maWxlcyBoYXZlIGRhdGFcbiAgICogIChhIGJhY2tlbmQgd2l0aCBubyBmcmFtZXMgb2YgaXRzIG93bjogT3BlblNlYWRyYWdvbiwgbmFwYXJpLWpzKS4gKi9cbiAgZW5zdXJlSW50ZW5zaXR5U2FtcGxpbmcoaW1hZ2VJbmZvOiBJSW1hZ2VJbmZvLCB6SW5kZXg6IG51bWJlcik6IFByb21pc2U8dm9pZD47XG4gIC8qKiBSZS1zYW1wbGUgdGhlIHByb2ZpbGVzIGZyb20gYSBmcmVzaCBjcm9wIG9mIHRoZSBnaXZlbiBpbWFnZS1waXhlbCBST0kgYXRcbiAgICogIGRpc3BsYXkgcmVzb2x1dGlvbi4gKi9cbiAgcmVmcmVzaEludGVuc2l0eVNhbXBsaW5nRm9yUm9pKHg6IG51bWJlciwgeTogbnVtYmVyLCB3aWR0aDogbnVtYmVyLCBoZWlnaHQ6IG51bWJlciwgekluZGV4OiBudW1iZXIpOiB2b2lkO1xufVxuXG4vKipcbiAqIFRoZSAyRCB2aWV3IG9wdGlvbnMgb2YgYSB0aWxlZCBpbWFnZSB2aWV3ZXI6IHRoZSBvdmVydmlldyBuYXZpZ2F0b3IgYW5kIGltYWdlXG4gKiBzbW9vdGhpbmcuIE9wZW5TZWFkcmFnb24ncywgbWlycm9yZWQgYnkgbmFwYXJpLWpzJ3MgMkQgdmlld3M7IFBsb3RseSBoYXMgbmVpdGhlci5cbiAqIENhcGFiaWxpdHktZ2F0ZWQ6IGBJVmlld2VyQmFja2VuZC5nZXRPc2RWaWV3T3B0aW9ucygpYCBpcyBudWxsIG9uIGEgYmFja2VuZFxuICogd2l0aG91dCB0aGVtLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElPc2RWaWV3T3B0aW9ucyB7XG4gIC8qKiBTaG93L2hpZGUgdGhlIG92ZXJ2aWV3IG5hdmlnYXRvciAodGhlIG1pbmltYXApLiBBcHBsaWVkIHdoZW4gdGhlIHZpZXdlciBpc1xuICAgKiAgKHJlKWNyZWF0ZWQsIGFuZCB0b2dnbGVkIGxpdmUgd2hlbiBvbmUgaXMgYWxyZWFkeSBtb3VudGVkLiAqL1xuICBzZXROYXZpZ2F0b3JWaXNpYmxlKHZpc2libGU6IGJvb2xlYW4pOiB2b2lkO1xuICAvKiogSW1hZ2Ugc21vb3RoaW5nIChiaWxpbmVhciBpbnRlcnBvbGF0aW9uKS4gYGZhbHNlYCA9IG5lYXJlc3QtbmVpZ2hib3VyLCBzb1xuICAgKiAgem9vbWluZyBwYXN0IDE6MSBzaG93cyBjcmlzcCBwaXhlbCBibG9ja3MgKHBpeGVsLWxldmVsIGluc3BlY3Rpb24pLiBBcHBsaWVkXG4gICAqICBhdCB2aWV3ZXIgY3JlYXRpb24gYW5kIGxpdmUgKHdpdGggYSByZWRyYXcpIHdoZW4gb25lIGlzIG1vdW50ZWQuICovXG4gIHNldEltYWdlU21vb3RoaW5nRW5hYmxlZChlbmFibGVkOiBib29sZWFuKTogdm9pZDtcbn1cblxuLyoqXG4gKiBUaGUgM0QgZGVjaW1hdGUgZmFjdG9yIG9mIGEgdm9sdW1lIHJlbmRlcmVyIChuYXBhcmktanMgV2ViR1BVKTogMSA9IGZ1bGxcbiAqIHJlc29sdXRpb24g4oCmIDggPSDihZsgcGVyIGF4aXMuIENhcGFiaWxpdHktZ2F0ZWQ6IG51bGwgb24gYSBiYWNrZW5kIHdpdGhvdXQgb25lLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElWb2x1bWVSZXNvbHV0aW9uIHtcbiAgLyoqIFRoZSBjdXJyZW50IGZhY3RvciAodG8gaW5pdGlhbGl6ZSB0aGUgUmVzb2x1dGlvbiBjb250cm9sKS4gKi9cbiAgZ2V0KCk6IG51bWJlcjtcbiAgLyoqIFNldCB0aGUgZmFjdG9yIChyb3VuZGVkLCBhdCBsZWFzdCAxKS4gVGFrZXMgZWZmZWN0IG9uIHRoZSBuZXh0IChyZSlsb2FkIOKAlFxuICAgKiAgdGhlIGhvc3QgcmUtcGxvdHMgYWZ0ZXIgY2FsbGluZyBpdCwgc2luY2UgaXQgY2hhbmdlcyB0aGUgZmV0Y2hlZCBkYXRhLiAqL1xuICBzZXQoc2NhbGU6IG51bWJlcik6IHZvaWQ7XG59XG5cbi8qKlxuICogVGhlIGhvc3QtZmFjaW5nIGNvbXBvc2l0ZSBjb250cmFjdCwgaW1wbGVtZW50ZWQgYnkgdGhlIHJvdXRlciAoYFZJU1VBTElaRVJgKS4gQVxuICogcmVuZGVyaW5nIGJhY2tlbmQgaW1wbGVtZW50cyB7QGxpbmsgSVZpZXdlckJhY2tlbmR9IGluc3RlYWQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSVZpc3VhbGl6ZXJcbiAgZXh0ZW5kcyBJRGF0YVJlbmRlcmVyLCBJUmVnaW9uU3RvcmUsIElUb29sQ29udHJvbGxlciwgSURpc3BsYXlPcHRpb25zLCBJSW50ZW5zaXR5U2FtcGxpbmcge1xuICByZWFkb25seSBjYXBhYmlsaXRpZXM6IFZpZXdlckNhcGFiaWxpdGllcztcbiAgLyoqIFRoaXMgYmFja2VuZCdzIHJlZ2lvbiByZW5kZXJlci4gTWF5IGJlIG51bGwgdW50aWwgYSBwbG90IGlzIG1vdW50ZWRcbiAgICogIChPcGVuU2VhZHJhZ29uKS4gRHJpdmVzIHJlZ2lvbiBkcmF3L3NlbGVjdCBtb2RlcyB1bmlmb3JtbHkuICovXG4gIGdldFJlZ2lvbk92ZXJsYXkoKTogSVJlZ2lvbk92ZXJsYXkgfCBudWxsO1xuICAvKiogSXNvc3VyZmFjZSBjb250cm9scyB3aGVuIHRoaXMgYmFja2VuZCBhZHZlcnRpc2VzIGBWaWV3ZXJGZWF0dXJlLklzb3N1cmZhY2VgLFxuICAgKiAgZWxzZSBudWxsIOKAlCBzbyBjb25zdW1lcnMgZ2F0ZSBvbiB0aGUgcmV0dXJuZWQgb2JqZWN0LCBub3QgYSBuby1vcCBtZXRob2QuICovXG4gIGdldElzb3N1cmZhY2VDb250cm9scygpOiBJSXNvc3VyZmFjZUNvbnRyb2xzIHwgbnVsbDtcbiAgLyoqIEludGVuc2l0eSAobGluZS1ST0kpIGNvbnRyb2xzIHdoZW4gdGhlIGJhY2tlbmQgcmVuZGVycyB0aGUgTElORSBwbG90IHR5cGUsXG4gICAqICBlbHNlIG51bGwuICovXG4gIGdldEludGVuc2l0eUNvbnRyb2xzKCk6IElJbnRlbnNpdHlDb250cm9scyB8IG51bGw7XG4gIC8qKiAzRCBzY2VuZSBjb250cm9scyB3aGVuIHRoaXMgYmFja2VuZCByZW5kZXJzIDNEIHBsb3QgdHlwZXMsIGVsc2UgbnVsbCDigJRcbiAgICogIHRoZSBjYXBhYmlsaXR5LWdhdGVkIHJlcGxhY2VtZW50IGZvciB0aGUgZGVwcmVjYXRlZCB0b3AtbGV2ZWxcbiAgICogIGBzZXRTdXJmYWNlRHJhZ01vZGVgL2ByZXNldFN1cmZhY2VDYW1lcmFgLiAqL1xuICBnZXRTdXJmYWNlM2RDb250cm9scygpOiBJU3VyZmFjZTNkQ29udHJvbHMgfCBudWxsO1xuICAvKiogVGhlIG5hdmlnYXRvciAvIGltYWdlLXNtb290aGluZyBvcHRpb25zLiBOZXZlciBudWxsIG9uIHRoZSByb3V0ZXI6IGEgc2V0dGluZ1xuICAgKiAgYXBwbGllcyB0byBldmVyeSBiYWNrZW5kIHRoYXQgaGFzIHRoZW0gKE9wZW5TZWFkcmFnb24sIG5hcGFyaS1qcyksIHNvIGl0IGNhblxuICAgKiAgYmUgc2V0IGJlZm9yZSB0aGUgZmlyc3QgcmVuZGVyIGFuZCBzdXJ2aXZlcyBhIGJhY2tlbmQgc3dpdGNoLiAqL1xuICBnZXRPc2RWaWV3T3B0aW9ucygpOiBJT3NkVmlld09wdGlvbnM7XG4gIC8qKiBUaGUgM0QgZGVjaW1hdGUgZmFjdG9yIG9mIHRoZSBiYWNrZW5kIG9uIHNjcmVlbiwgb3IgbnVsbCB3aGVuIGl0IGhhcyBub25lXG4gICAqICAob25seSBuYXBhcmktanMgcmVuZGVycyB2b2x1bWVzKS4gKi9cbiAgZ2V0Vm9sdW1lUmVzb2x1dGlvbigpOiBJVm9sdW1lUmVzb2x1dGlvbiB8IG51bGw7XG4gIC8qKiBJbnRlbnNpdHktcHJvZmlsZSBzYW1wbGluZywgd2hpY2hldmVyIGJhY2tlbmQgaXMgb24gc2NyZWVuLiAqL1xuICBnZXRJbnRlbnNpdHlTYW1wbGluZygpOiBJSW50ZW5zaXR5U2FtcGxpbmc7XG4gIC8qKiBAZGVwcmVjYXRlZCBVc2UgYGdldEludGVuc2l0eVNhbXBsaW5nKCkuZW5zdXJlSW50ZW5zaXR5U2FtcGxpbmcoKWAuICovXG4gIGVuc3VyZUludGVuc2l0eVNhbXBsaW5nKGltYWdlSW5mbzogSUltYWdlSW5mbywgekluZGV4OiBudW1iZXIpOiBQcm9taXNlPHZvaWQ+O1xuICAvKiogQGRlcHJlY2F0ZWQgVXNlIGBnZXRJbnRlbnNpdHlTYW1wbGluZygpLnJlZnJlc2hJbnRlbnNpdHlTYW1wbGluZ0ZvclJvaSgpYC4gKi9cbiAgcmVmcmVzaEludGVuc2l0eVNhbXBsaW5nRm9yUm9pKHg6IG51bWJlciwgeTogbnVtYmVyLCB3aWR0aDogbnVtYmVyLCBoZWlnaHQ6IG51bWJlciwgekluZGV4OiBudW1iZXIpOiB2b2lkO1xuICAvKiogQGRlcHJlY2F0ZWQgVXNlIGBnZXRJbnRlbnNpdHlTYW1wbGluZygpLmdldFZpZXdwb3J0Q2hhbmdlJCgpYC4gKi9cbiAgZ2V0Vmlld3BvcnRDaGFuZ2UkKCk6IE9ic2VydmFibGU8eyB4OiBudW1iZXI7IHk6IG51bWJlcjsgd2lkdGg6IG51bWJlcjsgaGVpZ2h0OiBudW1iZXIgfT47XG4gIC8qKiBTcGF0aWFsLW9taWNzIGNvbnRyb2xzIHdoZW4gYSBgU1BBVElBTF9EQVRBX1BPUlRgIGlzIGJvdW5kLCBlbHNlIG51bGwuXG4gICAqICBPcHRpb25hbDogb25seSB0aGUgcm91dGluZyBzZXJ2aWNlIGltcGxlbWVudHMgaXQsIHNpbmNlIHRoZSBzdGF0ZSBpcyBzaGFyZWRcbiAgICogIHJhdGhlciB0aGFuIG93bmVkIGJ5IGFueSBvbmUgYmFja2VuZC4gKi9cbiAgZ2V0U3BhdGlhbENvbnRyb2xzPygpOiBJU3BhdGlhbENvbnRyb2xzIHwgbnVsbDtcbiAgLyoqIFRoZSB2aWV3cG9ydCBhIGNvbnRyaWJ1dGVkIHBsb3QgbW9kZSBkcmF3cyBvdmVyLCB3aGVuIHRoZSBiYWNrZW5kIG9uXG4gICAqICBzY3JlZW4gY2FuIHByb3ZpZGUgb25lIChPcGVuU2VhZHJhZ29uKSwgZWxzZSBudWxsLiBPcHRpb25hbDogYmFja2VuZHMgdGhhdFxuICAgKiAgbm8gY29udHJpYnV0ZWQgbW9kZSByaWRlcyBvbiBuZWVkIG5vdCBpbXBsZW1lbnQgaXQuICovXG4gIGdldFBsb3RNb2RlVmlld3BvcnQ/KCk6IFBsb3RNb2RlVmlld3BvcnQgfCBudWxsO1xuICAvKiogQmlubmVkIGludGVuc2l0eSBoaXN0b2dyYW0gZm9yIGEgY2hhbm5lbCBmcm9tIHRoZSBjdXJyZW50bHktZGlzcGxheWVkXG4gICAqICBwaXhlbHMsIG9yIG51bGwgd2hlbiBub25lIGFyZSBhdmFpbGFibGUuIEZlZWRzIHRoZSBDaGFubmVscyAmIEhpc3RvZ3JhbVxuICAgKiAgcGFuZS4gKi9cbiAgZ2V0SGlzdG9ncmFtKGNoYW5uZWxJbmRleDogbnVtYmVyLCBiaW5zOiBudW1iZXIpOiBJSGlzdG9ncmFtIHwgbnVsbDtcbiAgLyoqIEFzeW5jIGhpc3RvZ3JhbSBzdHJlYW0g4oCUIG5hdGl2ZSBiaXQgZGVwdGggZm9yID44LWJpdCBpbWFnZXMgKHNlcnZlciksIGVsc2VcbiAgICogIHRoZSA4LWJpdCBjbGllbnQgaGlzdG9ncmFtLiAqL1xuICBnZXRIaXN0b2dyYW0kKGNoYW5uZWxJbmRleDogbnVtYmVyLCBiaW5zOiBudW1iZXIpOiBPYnNlcnZhYmxlPElIaXN0b2dyYW0gfCBudWxsPjtcbiAgLyoqIEV4cG9ydCB0aGUgZGlzcGxheWVkIGltYWdlLCBjb21wb3NpdGVkIHdpdGggdGhlIGN1cnJlbnQgZGlzcGxheSBzZXR0aW5ncyxcbiAgICogIGFzIGEgcHVibGljYXRpb24tcmVhZHkgUE5HIGRvd25sb2FkLiAqL1xuICBleHBvcnRDb21wb3NpdGUoKTogdm9pZDtcbiAgLyoqIEV4cG9ydCB0aGUgdW5kZXJseWluZyBpbWFnZSBkYXRhIGFzIGEgZGF0YS1wcmVzZXJ2aW5nIG11bHRpLWJhbmQgVElGRlxuICAgKiAgKG5hdGl2ZSBiaXQgZGVwdGgpLiBOby1vcCBvbiBiYWNrZW5kcyB0aGF0IGNhbid0IHByb3ZpZGUgaXQuICovXG4gIGV4cG9ydERhdGEoKTogdm9pZDtcbiAgLyoqXG4gICAqIFRoZSB2aWV3IGlzIGdvaW5nIGF3YXkgKHRoZSBgPHZpc3VhbGl6ZXI+YCBpcyBkZXN0cm95ZWQpOiBkcm9wIHdoYXQgaXMgYm91bmQgdG9cbiAgICogaXQg4oCUIHRoZSBvbi1zY3JlZW4gdmlld2VyLCBpdHMgcmVuZGVyIGxvb3AgYW5kIHZpZXcgc3Vic2NyaXB0aW9ucyDigJQgc28gbm90aGluZ1xuICAgKiBvdXRsaXZlcyB0aGUgdmlldy4gU2VydmljZS1saWZldGltZSBzdGF0ZSAoc3RvcmVzLCB0aGUgYmFja2VuZHMnIG93biBzdG9yZVxuICAgKiBzdWJzY3JpcHRpb25zKSBpcyB1bnRvdWNoZWQsIHNvIGEgbGF0ZXIgdmlldyBvbiB0aGUgc2FtZSBjaGFpbiByZW5kZXJzIG5vcm1hbGx5LlxuICAgKi9cbiAgZGV0YWNoKCk6IHZvaWQ7XG4gIC8qKiBAZGVwcmVjYXRlZCBVc2Uge0BsaW5rIGRldGFjaH0sIHdoaWNoIHRoaXMgZGVsZWdhdGVzIHRvLiAqL1xuICB1bnN1YnNjcmliZSgpOiB2b2lkO1xufVxuXG4vKipcbiAqIFdoYXQgYSByZW5kZXJpbmcgYmFja2VuZCBpbXBsZW1lbnRzIChQbG90bHksIE9wZW5TZWFkcmFnb24sIG5hcGFyaS1qcyk6IHJlbmRlcmluZyxcbiAqIHRoZSB2aWV3cG9ydCwgcGl4ZWwgcmVhZGJhY2ssIGV4cG9ydCwgbG9hZGluZyBzdGF0ZSBhbmQgaXRzIG9uLWNhbnZhcyB0b29scywgcGx1c1xuICogY2FwYWJpbGl0eS1nYXRlZCBnZXR0ZXJzIGZvciB3aGF0IG9ubHkgc29tZSBiYWNrZW5kcyBoYXZlLlxuICpcbiAqIEl0IGlzIHRoZSBiYWNrZW5kLWZhY2luZyBoYWxmIG9mIHtAbGluayBJVmlzdWFsaXplcn0uIFJlZ2lvbiBhbmQgZGlzcGxheSBzdGF0ZSBhcmVcbiAqIG5vdCBoZXJlOiB0aGV5IGxpdmUgaW4gdGhlIHNoYXJlZCBgUmVnaW9uU3RvcmVgIC8gYFZpc3VhbGl6ZXJTdG9yZWAsIHdoaWNoIHRoZSByb3V0ZXJcbiAqIHNlcnZlcyB0byBob3N0cyBkaXJlY3RseTsgYSBiYWNrZW5kIGRyYXdzIHRoZW0gYnkgc3Vic2NyaWJpbmcgdG8gdGhlIHN0b3JlcycgZXZlbnRzLlxuICogSG9zdHMga2VlcCBkZXBlbmRpbmcgb24gYElWaXN1YWxpemVyYCAodGhlIHJvdXRlcidzIGNvbXBvc2l0ZSksIG5ldmVyIG9uIGEgYmFja2VuZC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJVmlld2VyQmFja2VuZCBleHRlbmRzIElUb29sQ29udHJvbGxlciB7XG4gIHJlYWRvbmx5IGNhcGFiaWxpdGllczogVmlld2VyQ2FwYWJpbGl0aWVzO1xuXG4gIC8vIOKUgOKUgCByZW5kZXIgbGlmZWN5Y2xlIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuICBsb2FkKGltYWdlSW5mbzogSUltYWdlSW5mbywgekluZGV4OiBudW1iZXIsIHNpZ25hbD86IEFib3J0U2lnbmFsKTogUHJvbWlzZTxMb2FkZWRJbWFnZT47XG4gIHBsb3QoXG4gICAgcGxvdERpdjogc3RyaW5nLFxuICAgIGltYWdlTG9hZGVkOiB1bmtub3duLFxuICAgIGltYWdlSW5mbzogSUltYWdlSW5mbyxcbiAgICBzY3JlZW5IZWlnaHQ6IG51bWJlcixcbiAgICBwbG90VHlwZTogUGxvdFR5cGUsXG4gICAgaW5QbGFjZT86IGJvb2xlYW4sXG4gICk6IFByb21pc2U8Ym9vbGVhbj47XG4gIHJlc2V0KCk6IHZvaWQ7XG4gIHJlbGF5b3V0KHRydWVJbWFnZVNpemU/OiBudW1iZXJbXSk6IHZvaWQ7XG4gIC8qKiBUaGUgdmlldyBpcyBnb2luZyBhd2F5OiByZWxlYXNlIHdoYXQgaXMgYm91bmQgdG8gaXQuICovXG4gIGRldGFjaCgpOiB2b2lkO1xuICAvKiogU3RvcCBzdHJlYW1pbmcgZnJhbWVzICh2b2x1bWUgYXNzZW1ibHkgLyBzdXJmYWNlIHByZWxvYWQpLiBPcHRpb25hbDogb25seVxuICAgKiAgYmFja2VuZHMgdGhhdCBzdHJlYW0gYSB6LXN0YWNrIGRvIHdvcmsgaGVyZS4gKi9cbiAgY2FuY2VsTG9hZGluZz8oKTogdm9pZDtcblxuICAvLyDilIDilIAgdmlld3BvcnQg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4gIHpvb21JbigpOiB2b2lkO1xuICB6b29tT3V0KCk6IHZvaWQ7XG4gIHNldERyYWdNb2RlKG1vZGU6IHN0cmluZyB8IGZhbHNlKTogdm9pZDtcbiAgZml0VG9WaWV3KCk6IHZvaWQ7XG4gIC8qKiBAc2VlIElEYXRhUmVuZGVyZXIucmVzZXRBeGVzICovXG4gIHJlc2V0QXhlcygpOiB2b2lkO1xuICBzZXRaSW5kZXgoekluZGV4OiBudW1iZXIpOiB2b2lkO1xuICBzZXRTaG93U3RhY2soc2hvd3N0YWNrOiBib29sZWFuKTogdm9pZDtcbiAgLyoqIEVtaXRzIHdoZW5ldmVyIHRoZSBiYWNrZW5kIGZpdHMgdGhlIHZpZXcuICovXG4gIGdldEF1dG9zY2FsZUV2ZW50KCk6IE9ic2VydmFibGU8dW5rbm93bj47XG4gIGlzU3RhY2tMb2FkaW5nKCk6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gIGdldFN0YWNrTG9hZGluZ1Byb2dyZXNzKCk6IE9ic2VydmFibGU8bnVtYmVyPjtcblxuICAvLyDilIDilIAgcGl4ZWxzLCBoaXN0b2dyYW0sIGV4cG9ydCDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbiAgZ2V0VHJ1ZUltYWdlU2l6ZSgpOiB7IHdpZHRoOiBudW1iZXI7IGhlaWdodDogbnVtYmVyIH0gfCBudWxsO1xuICBnZXRDdXJyZW50SW1hZ2UoKTogUHJvbWlzZTxJbWFnZSB8IG51bGw+O1xuICBnZXREaXNwbGF5ZWRQaXhlbERhdGEoKTogUGl4ZWxEYXRhIHwgbnVsbDtcbiAgZ2V0RGlzcGxheWVkU291cmNlUmVjdCgpOiB7IHg6IG51bWJlcjsgeTogbnVtYmVyOyB3aWR0aDogbnVtYmVyOyBoZWlnaHQ6IG51bWJlciB9IHwgbnVsbDtcbiAgZ2V0SGlzdG9ncmFtKGNoYW5uZWxJbmRleDogbnVtYmVyLCBiaW5zOiBudW1iZXIpOiBJSGlzdG9ncmFtIHwgbnVsbDtcbiAgZ2V0SGlzdG9ncmFtJChjaGFubmVsSW5kZXg6IG51bWJlciwgYmluczogbnVtYmVyKTogT2JzZXJ2YWJsZTxJSGlzdG9ncmFtIHwgbnVsbD47XG4gIGRvd25sb2FkSW1hZ2UoKTogdm9pZDtcbiAgZXhwb3J0Q29tcG9zaXRlKCk6IHZvaWQ7XG4gIGV4cG9ydERhdGEoKTogdm9pZDtcblxuICAvLyDilIDilIAgY2FwYWJpbGl0eS1nYXRlZCBzdXJmYWNlcyAobnVsbCAvIGFic2VudCB3aGVyZSB0aGUgYmFja2VuZCBsYWNrcyB0aGUgZmVhdHVyZSkg4pSA4pSAXG4gIGdldFJlZ2lvbk92ZXJsYXkoKTogSVJlZ2lvbk92ZXJsYXkgfCBudWxsO1xuICBnZXRJc29zdXJmYWNlQ29udHJvbHMoKTogSUlzb3N1cmZhY2VDb250cm9scyB8IG51bGw7XG4gIGdldFN1cmZhY2UzZENvbnRyb2xzKCk6IElTdXJmYWNlM2RDb250cm9scyB8IG51bGw7XG4gIGdldEludGVuc2l0eUNvbnRyb2xzKCk6IElJbnRlbnNpdHlDb250cm9scyB8IG51bGw7XG4gIGdldFBsb3RNb2RlVmlld3BvcnQ/KCk6IFBsb3RNb2RlVmlld3BvcnQgfCBudWxsO1xuICAvKiogTmF2aWdhdG9yIC8gaW1hZ2Ugc21vb3RoaW5nLCBvciBudWxsIHdoZW4gdGhlIGJhY2tlbmQgaGFzIG5laXRoZXIgKFBsb3RseSkuICovXG4gIGdldE9zZFZpZXdPcHRpb25zKCk6IElPc2RWaWV3T3B0aW9ucyB8IG51bGw7XG4gIC8qKiBUaGUgM0QgZGVjaW1hdGUgZmFjdG9yLCBvciBudWxsIHdoZW4gdGhlIGJhY2tlbmQgcmVuZGVycyBubyB2b2x1bWVzLiAqL1xuICBnZXRWb2x1bWVSZXNvbHV0aW9uKCk6IElWb2x1bWVSZXNvbHV0aW9uIHwgbnVsbDtcbiAgLyoqIFdoZXJlIHRoZSB2aWV3IHNldHRsZWQsIGZvciB0aGUgaW50ZW5zaXR5IGluc2V0J3MgcmUtc2FtcGxpbmc7IG51bGwgd2hlbiB0aGVcbiAgICogIGJhY2tlbmQgcmUtc2FtcGxlcyBvbiBpdHMgb3duIChQbG90bHkncyBoaWdoLWRlZiB6b29tKS4gVGhlIHNhbXBsaW5nIGl0c2VsZiBpc1xuICAgKiAgdGhlIHJvdXRlcidzIChJbnRlbnNpdHlQcm9maWxlU2VydmljZSkuICovXG4gIGdldEludGVuc2l0eVNhbXBsaW5nKCk6IElJbnRlbnNpdHlWaWV3cG9ydFNvdXJjZSB8IG51bGw7XG59XG5cbi8qKlxuICogV2hhdCBhIG1vdW50ZWQgYDx2aXN1YWxpemVyPmAgaGFuZHMgaXRzIGhvc3QgdGhyb3VnaFxuICogYEltYWdlU3RhdGVQb3J0LnNldERpYWdyYW0oKWAg4oCUIGEgc21hbGwsIHR5cGVkIHN1cmZhY2UgcmF0aGVyIHRoYW4gdGhlIGNvbXBvbmVudFxuICogaXRzZWxmLCB3aG9zZSBldmVyeSBwdWJsaWMgbWVtYmVyIHdvdWxkIG90aGVyd2lzZSBiZSBkZS1mYWN0byBBUEkuIENsZWFyZWRcbiAqIChgc2V0RGlhZ3JhbShudWxsKWApIHdoZW4gdGhlIHZpc3VhbGl6ZXIgaXMgZGVzdHJveWVkLiBIb3N0cyB0aGF0IGNhbiBpbmplY3RcbiAqIHtAbGluayBWSVNVQUxJWkVSfSAvIGBSRUdJT05fRURJVE9SX0FQSWAgZGlyZWN0bHkgbmVlZCBub3QgdXNlIGl0IGF0IGFsbC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBWaXN1YWxpemVySGFuZGxlIHtcbiAgLyoqIFRoZSB2aXN1YWxpemVyIGNoYWluIHRoaXMgYDx2aXN1YWxpemVyPmAgcmVuZGVycyB0aHJvdWdoLiAqL1xuICByZWFkb25seSB2aXN1YWxpemVyOiBJVmlzdWFsaXplcjtcbiAgLyoqIEBkZXByZWNhdGVkIFVzZSB7QGxpbmsgdmlzdWFsaXplcn0uIEtlcHQgZm9yIGhvc3RzIHRoYXQgcmVhZCB0aGUgY29tcG9uZW50J3NcbiAgICogIGZvcm1lciBgcGxvdFNlcnZpY2VgIGZpZWxkIG9mZiB0aGUgcmVnaXN0ZXJlZCBvYmplY3QuICovXG4gIHJlYWRvbmx5IHBsb3RTZXJ2aWNlOiBJVmlzdWFsaXplcjtcbiAgLyoqIFdoZXRoZXIgYW55IHJlZ2lvbiAoYW5ub3RhdGlvbiBvciBpbnRlbnNpdHkgbGluZSkgZXhpc3RzIG9uIHRoZSBjdXJyZW50IGltYWdlLiAqL1xuICBoYXNSZWdpb25zKCk6IGJvb2xlYW47XG4gIC8qKiBUaGUgY3VycmVudCByZWdpb25zIGFzIHBvbHlnb25zLCBmb3IgYSBzZXJ2ZXIgcmVxdWVzdCAoY3JvcCAvIHByb2Nlc3NpbmcpLiAqL1xuICBnZXRSZWdpb25Qb2x5Z29ucygpOiBQb2x5Z29uW107XG59XG5cbi8qKlxuICogREkgdG9rZW4gZm9yIHRoZSBhY3RpdmUgdmlzdWFsaXphdGlvbiBiYWNrZW5kLiBCaW5kIGl0IChgdXNlRXhpc3RpbmdgKSB0byB0aGVcbiAqIGBSb3V0aW5nVmlzdWFsaXplclNlcnZpY2VgLCB3aGljaCBzZWxlY3RzIFBsb3RseSB2cyBPcGVuU2VhZHJhZ29uIHBlciBwbG90XG4gKiB0eXBlLiBDb25zdW1lcnMg4oCUIGluY2x1ZGluZyB0aGlzIGxpYnJhcnkncyBvd24gYFZpc3VhbGl6ZXJDb21wb25lbnRgIOKAlFxuICogaW5qZWN0IGBJVmlzdWFsaXplcmAgdGhyb3VnaCB0aGlzIHRva2VuIHJhdGhlciB0aGFuIHRoZSBjb25jcmV0ZSByb3V0ZXIsIHNvXG4gKiB0aGUgcm91dGluZy9mYWxsYmFjayBpbXBsZW1lbnRhdGlvbiBjYW4gY2hhbmdlIHdpdGhvdXQgdG91Y2hpbmcgY29uc3RydWN0b3JzLlxuICovXG5leHBvcnQgY29uc3QgVklTVUFMSVpFUiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxJVmlzdWFsaXplcj4oJ1ZJU1VBTElaRVInKTtcbiJdfQ==
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlzdWFsaXplci5jb250cmFjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvY29udHJhY3RzL3Zpc3VhbGl6ZXIuY29udHJhY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQXdyQi9DOzs7Ozs7R0FNRztBQUNILE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxJQUFJLGNBQWMsQ0FBYyxZQUFZLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgdHlwZSB7IFNlY3Rpb25BeGlzLCBTZWN0aW9uVmlld3MgfSBmcm9tICcuL3NlY3Rpb24tdmlldy5jb250cmFjdCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBJbWFnZSB9IGZyb20gJ2ltYWdlLWpzJztcblxuaW1wb3J0IHsgSUltYWdlSW5mbywgSUltYWdlTWV0YWRhdGEgfSBmcm9tICcuL2ltYWdlLmNvbnRyYWN0JztcbmltcG9ydCB7IFBvbHlnb24sIFJlZ2lvbiB9IGZyb20gJy4uL21vZGVscy9yZWdpb24nO1xuaW1wb3J0IHsgUGxvdFR5cGUsIFBsb3RUeXBlRGVzY3JpcHRvciB9IGZyb20gJy4vcGxvdC10eXBlJztcbmltcG9ydCB7IFZpZXdlckNhcGFiaWxpdGllcyB9IGZyb20gJy4vY2FwYWJpbGl0aWVzLmNvbnRyYWN0JztcbmltcG9ydCB7IElSZWdpb25PdmVybGF5IH0gZnJvbSAnLi9yZWdpb24tb3ZlcmxheS5jb250cmFjdCc7XG5pbXBvcnQgeyBJSGlzdG9ncmFtIH0gZnJvbSAnLi9jaGFubmVsLWhpc3RvZ3JhbS1hcGkuY29udHJhY3QnO1xuaW1wb3J0IHtcbiAgQ2FudmFzVG9vbE9wdGlvbnMsXG4gIENvbG9ybWFwTm9kZSxcbiAgSVdhbmRPcHRpb25zLFxuICBJQnJ1c2hPcHRpb25zLFxuICBTcGF0aWFsVmlld1N0YXRlLFxuICBTcGF0aWFsQ29sb3JCeSxcbn0gZnJvbSAnLi9kaXNwbGF5LXR5cGVzJztcbmltcG9ydCB7XG4gIENhdGVnb3JpY2FsQ29sdW1uTWV0YSxcbiAgU3BhdGlhbERhdGFzZXQsXG4gIFNwYXRpYWxFbWJlZGRpbmcsXG4gIFNwYXRpYWxNYXJrZXJHZW5lcyxcbiAgU3BhdGlhbFNlbGVjdGlvbk1hc2ssXG4gIFNwYXRpYWxUcmFuc2NyaXB0Q291bnRzLFxufSBmcm9tICcuL3NwYXRpYWwtZGF0YXNldC5jb250cmFjdCc7XG5pbXBvcnQgdHlwZSB7IFBsb3RNb2RlVmlld3BvcnQgfSBmcm9tICcuL3Bsb3QtdHlwZS1jb250cmlidXRpb24uY29udHJhY3QnO1xuXG4vKipcbiAqIEJhY2tlbmQtbmV1dHJhbCB2aXN1YWxpemF0aW9uIGNvbnRyYWN0LiBQbG90bHkgaXMgb25lIGltcGxlbWVudGF0aW9uO1xuICogT3BlblNlYWRyYWdvbiBpcyBhbm90aGVyIChmb3IgdGhlIGltYWdlIHBsb3QgdHlwZSkuIFRoZSBhYnN0cmFjdGlvbiByZW5kZXJzXG4gKiBkYXRhIOKAlCBhIHJhc3RlciBpbWFnZSBPUiBhIHNjaWVudGlmaWMgcGxvdCAoaGVhdG1hcCwgc3VyZmFjZSwgY29udG91cixcbiAqIHNjYXR0ZXIsIGxpbmUsIGlzb3N1cmZhY2UpIOKAlCBkcmF3cyByZWdpb25zIG9uIGl0LCBhbmQgZHJpdmVzIG9uLWNhbnZhcyB0b29scy5cbiAqXG4gKiBTcGxpdCBpbnRvIHJvbGUgaW50ZXJmYWNlcyBzbyBhIGNvbnN1bWVyIGNhbiBkZXBlbmQgb25seSBvbiB0aGUgc2xpY2UgaXRcbiAqIHVzZXMsIHRoZW4gY29tcG9zZWQgaW50byBgSVZpc3VhbGl6ZXJgLlxuICovXG5cbi8qKiBQaXhlbCByZWFkYmFjayBzaGFwZSByZXR1cm5lZCBieSBgZ2V0RGlzcGxheWVkUGl4ZWxEYXRhYC4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGl4ZWxEYXRhIHtcbiAgd2lkdGg6IG51bWJlcjtcbiAgaGVpZ2h0OiBudW1iZXI7XG4gIGNoYW5uZWxzOiBudW1iZXI7XG4gIGRhdGE6IFVpbnQ4Q2xhbXBlZEFycmF5O1xufVxuXG4vKiogSW50ZW5zaXR5IHNhbXBsZWQgYWxvbmcgYSBsaW5lIFJPSSAoUGxvdFR5cGUuTElORSBvdmVyIGltYWdlIGRhdGEpLiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbnRlbnNpdHlQcm9maWxlIHtcbiAgLyoqIERpc3RhbmNlIGFsb25nIHRoZSBsaW5lLiBJbiBtaWNyb25zIHdoZW4gdGhlIGltYWdlIGNhcnJpZXMgYSBwaHlzaWNhbFxuICAgKiAgcGl4ZWwgc2l6ZSAobXBwKTsgb3RoZXJ3aXNlIGluIGltYWdlIHBpeGVscy4gU2VlIHtAbGluayB1bml0fS4gKi9cbiAgcG9zaXRpb25zOiBudW1iZXJbXTtcbiAgLyoqIFNhbXBsZWQgaW50ZW5zaXR5IChncmF5c2NhbGUgdmFsdWUgb3IgUkdCIGx1bWluYW5jZSkuICovXG4gIHZhbHVlczogbnVtYmVyW107XG4gIC8qKiBVbml0IG9mIHtAbGluayBwb3NpdGlvbnN9OiAnwrVtJyB3aGVuIHNjYWxlZCBieSB0aGUgaW1hZ2UncyBtcHAsIGVsc2UgJ3B4Jy4gKi9cbiAgdW5pdD86ICfCtW0nIHwgJ3B4JztcbiAgLyoqIFN0YWJsZSBpZCBvZiB0aGUgbGluZSBST0kgdGhpcyBwcm9maWxlIGNhbWUgZnJvbSAobXVsdGktbGluZSBzdXBwb3J0KS4gKi9cbiAgaWQ/OiBudW1iZXI7XG4gIC8qKiBDb2xvdXIgb2YgdGhlIGxpbmUgUk9JIOKAlCB0aGUgaW5zZXQgdHJhY2UgaXMgZHJhd24gaW4gdGhlIHNhbWUgY29sb3VyLiAqL1xuICBjb2xvcj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBXaGF0IGBJRGF0YVJlbmRlcmVyLmxvYWQoKWAgcmVzb2x2ZXMgdG8uIEJhY2tlbmQtc3BlY2lmaWMgYmV5b25kIGBmaWxlbmFtZWAsXG4gKiB3aGljaCBuYW1lcyB0aGUgaW1hZ2UgdGhlIGhhbmRsZSB3YXMgbG9hZGVkIGZvcjogdGhlIGhvc3QgY29tcGFyZXMgaXQgd2l0aCB0aGVcbiAqIGltYWdlIGl0IGFza2VkIGZvciwgdG8gZHJvcCBhIGhhbmRsZSBhIG5ld2VyIHJlcXVlc3QgaGFzIG92ZXJ0YWtlbi4gUGFzcyB0aGVcbiAqIGhhbmRsZSBvbiB0byBgcGxvdCgpYCB1bmNoYW5nZWQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTG9hZGVkSW1hZ2Uge1xuICByZWFkb25seSBmaWxlbmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIFRoZSByZW5kZXIvdmlld3BvcnQgcm9sZTogbG9hZCBkYXRhLCByZW5kZXIgaXQgKGltYWdlIG9yIHBsb3QpLCBhbmQgaGFuZGxlXG4gKiB6b29tLCBzdGFjayBuYXZpZ2F0aW9uLCBhbmQgcGl4ZWwgcmVhZGJhY2suXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSURhdGFSZW5kZXJlciB7XG4gIC8qKiBGZXRjaCB3aGF0IHtAbGluayBwbG90fSBuZWVkcyBmb3IgdGhpcyBpbWFnZS9zbGljZS4gYHNpZ25hbGAgYWJvcnRzIHdoZW4gdGhlXG4gICAqICBob3N0IG5vIGxvbmdlciB3YW50cyB0aGUgcmVzdWx0IChhIG5ld2VyIGltYWdlLCBDYW5jZWwsIHRlYXJkb3duKTsgYSBiYWNrZW5kXG4gICAqICBtYXkgc3RvcCBpdHMgbmV0d29yayB3b3JrIHRoZW4uIE9wdGlvbmFsLCBhbmQgaWdub3JlZCBieSBiYWNrZW5kcyB0aGF0IGRvXG4gICAqICBub3Qgc3VwcG9ydCBpdCB5ZXQuICovXG4gIGxvYWQoaW1hZ2VJbmZvOiBJSW1hZ2VJbmZvLCB6SW5kZXg6IG51bWJlciwgc2lnbmFsPzogQWJvcnRTaWduYWwpOiBQcm9taXNlPExvYWRlZEltYWdlPjtcbiAgLyoqIGBpbWFnZUxvYWRlZGAgaXMgdGhlIHtAbGluayBMb2FkZWRJbWFnZX0gaGFuZGxlIHJldHVybmVkIGJ5IGBsb2FkKClgIChvciBudWxsXG4gICAqICBmb3IgYSBkcmF3IHdpdGggbm8gaW1hZ2UpIOKAlCBwYXNzIGl0IHN0cmFpZ2h0IHRocm91Z2guIFJlc29sdmVzIGZhbHNlIHdoZW4gdGhlXG4gICAqICBiYWNrZW5kIGNvdWxkIG5vdCBkcmF3IChubyBwbG90IHRhcmdldCwgbm8gV2ViR1BVLCDigKYpLiAqL1xuICBwbG90KFxuICAgIHBsb3REaXY6IHN0cmluZyxcbiAgICBpbWFnZUxvYWRlZDogdW5rbm93bixcbiAgICBpbWFnZUluZm86IElJbWFnZUluZm8sXG4gICAgc2NyZWVuSGVpZ2h0OiBudW1iZXIsXG4gICAgcGxvdFR5cGU6IFBsb3RUeXBlLFxuICAgIGluUGxhY2U/OiBib29sZWFuLFxuICApOiBQcm9taXNlPGJvb2xlYW4+O1xuICAvKiogQGRlcHJlY2F0ZWQgUGxvdGx5LXNwZWNpZmljIHJlLXJlbmRlcjsgdGhlIE9TRCBiYWNrZW5kIG5vLW9wcyBpdC4gVGhlIGhvc3RcbiAgICogIHJlLWRyaXZlcyBgcGxvdCgpYCBmcm9tIGl0cyBpbWFnZSBzdHJlYW0gaW5zdGVhZC4gKi9cbiAgcmVsb2FkQW5kUGxvdCgpOiB2b2lkO1xuICByZXNldCgpOiB2b2lkO1xuICByZWxheW91dCh0cnVlSW1hZ2VTaXplPzogbnVtYmVyW10pOiB2b2lkO1xuICAvKipcbiAgICogRml0IHRoZSB3aG9sZSBpbWFnZSAob3Igc2NlbmUpIGludG8gdGhlIHZpZXcg4oCUIGV2ZXJ5IGJhY2tlbmQgZG9lczogUGxvdGx5XG4gICAqIGF1dG9yYW5nZXMgaXRzIGF4ZXMsIE9wZW5TZWFkcmFnb24gZ29lcyBob21lLCBuYXBhcmktanMgZml0cyBpdHMgY2FtZXJhLiBUaGVcbiAgICogYmFja2VuZCB0aGVuIGVtaXRzIG9uIHtAbGluayBnZXRBdXRvc2NhbGVFdmVudH0uXG4gICAqL1xuICBmaXRUb1ZpZXcoKTogdm9pZDtcbiAgLyoqIFJlc2V0IHRoZSB2aWV3IHRvIHRoZSBpbWFnZSBleHRlbnQuIFNhbWUgaW50ZW50IGFzIHtAbGluayBmaXRUb1ZpZXd9OyBrZXB0IGZvclxuICAgKiAgY2FsbGVycyBvZiB0aGUgb3JpZ2luYWwgbmFtZS4gKi9cbiAgcmVzZXRBeGVzKCk6IHZvaWQ7XG4gIC8qKiBAZGVwcmVjYXRlZCBVc2Uge0BsaW5rIGZpdFRvVmlld30g4oCUIHRoZSBzYW1lIG9wZXJhdGlvbiB1bmRlciBpdHMgYmFja2VuZC1uZXV0cmFsIG5hbWUuICovXG4gIGF1dG9zY2FsZSgpOiB2b2lkO1xuICB6b29tSW4oKTogdm9pZDtcbiAgem9vbU91dCgpOiB2b2lkO1xuICBzZXREcmFnTW9kZShtb2RlOiBzdHJpbmcgfCBmYWxzZSk6IHZvaWQ7XG4gIC8qKiBAZGVwcmVjYXRlZCBVc2UgYGdldE9zZFZpZXdPcHRpb25zKCkuc2V0TmF2aWdhdG9yVmlzaWJsZSgpYCBvbiBgSVZpc3VhbGl6ZXJgLiAqL1xuICBzZXROYXZpZ2F0b3JWaXNpYmxlKHZpc2libGU6IGJvb2xlYW4pOiB2b2lkO1xuICAvKiogQGRlcHJlY2F0ZWQgVXNlIGBnZXRPc2RWaWV3T3B0aW9ucygpLnNldEltYWdlU21vb3RoaW5nRW5hYmxlZCgpYCBvbiBgSVZpc3VhbGl6ZXJgLiAqL1xuICBzZXRJbWFnZVNtb290aGluZ0VuYWJsZWQoZW5hYmxlZDogYm9vbGVhbik6IHZvaWQ7XG5cbiAgc2V0U2hvd1N0YWNrKHNob3dzdGFjazogYm9vbGVhbik6IHZvaWQ7XG4gIHNldFpJbmRleCh6SW5kZXg6IG51bWJlcik6IHZvaWQ7XG4gIHNldFN0YWNrTG9hZGluZyhzdGFja0xvYWRpbmc6IGJvb2xlYW4pOiB2b2lkO1xuICBpc1N0YWNrTG9hZGluZygpOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICBnZXRTdGFja0xvYWRpbmdQcm9ncmVzcygpOiBPYnNlcnZhYmxlPG51bWJlcj47XG4gIC8qKiBDYW5jZWwgYW55IGluLWZsaWdodCBtdWx0aS1mcmFtZSBsb2FkaW5nICh2b2x1bWUtYXNzZW1ibHkgLyBzdXJmYWNlIHByZWxvYWQpIHNvIGl0IHN0b3BzXG4gICAqICBmZXRjaGluZyBtb3JlIGZyYW1lcyBhbmQgY2xlYXJzIHRoZSBsb2FkaW5nIHN0YXRlLiBPcHRpb25hbCDigJQgb25seSBiYWNrZW5kcyB0aGF0IHN0cmVhbSBhXG4gICAqICB6LXN0YWNrIChuYXBhcmktanMgV2ViR1BVKSBkbyByZWFsIHdvcmsgaGVyZTsgb3RoZXJzIG5vLW9wLiAqL1xuICBjYW5jZWxMb2FkaW5nPygpOiB2b2lkO1xuXG4gIGdldFRydWVJbWFnZVNpemUoKTogeyB3aWR0aDogbnVtYmVyOyBoZWlnaHQ6IG51bWJlciB9IHwgbnVsbDtcbiAgZ2V0Q3VycmVudEltYWdlKCk6IFByb21pc2U8SW1hZ2UgfCBudWxsPjtcbiAgZ2V0RGlzcGxheWVkUGl4ZWxEYXRhKCk6IFBpeGVsRGF0YSB8IG51bGw7XG4gIC8qKlxuICAgKiBUaGUgcmVnaW9uIG9mIHRoZSBvcmlnaW5hbCwgZnVsbC1yZXNvbHV0aW9uIGltYWdlIHRoYXQgdGhlIHBpeGVscyByZXR1cm5lZFxuICAgKiBieSB7QGxpbmsgZ2V0RGlzcGxheWVkUGl4ZWxEYXRhfSBjdXJyZW50bHkgY292ZXIg4oCUIGB7IHgsIHksIHdpZHRoLCBoZWlnaHQgfWBcbiAgICogaW4gZnVsbC1pbWFnZSBwaXhlbCBjb29yZGluYXRlcy4gV2hlbiB6b29tZWQvcGFubmVkIGludG8gYSBzdWItYXJlYSB0aGlzIGlzXG4gICAqIHRoZSBjcm9wJ3Mgb3JpZ2luICsgZXh0ZW50OyB3aGVuIHpvb21lZCBvdXQvcGFubmVkIGJleW9uZCB0aGUgZWRnZXMsIHRoZVxuICAgKiByZWN0YW5nbGUgbWF5IGV4dGVuZCBvdXRzaWRlIHRoZSBpbWFnZSBib3VuZHMgKG1hdGNoaW5nIHRoZSBwaXhlbCByZWFkYmFja1xuICAgKiBjYW52YXMpLiBMZXRzIGEgY29uc3VtZXIgbWFwIGRpc3BsYXllZC1waXhlbCBjb29yZGluYXRlcyBiYWNrIHRvIHRoZSBvcmlnaW5hbFxuICAgKiBpbWFnZSB2aWEgYG9yaWdpbiArIGRpc3BsYXllZFB4ICogKGV4dGVudCAvIGRpc3BsYXllZERpbSlgLlxuICAgKlxuICAgKiBSZXR1cm5zIGBudWxsYCB3aGVuIHRoZSB2aWV3cG9ydCBpc24ndCBsYWlkIG91dCB5ZXQgb3IgdGhlIGJhY2tlbmQgY2FuJ3RcbiAgICogcmVwb3J0IGl0IOKAlCBjYWxsZXJzIHNob3VsZCB0aGVuIGZhbGwgYmFjayB0byB0aGUgZnVsbC1pbWFnZSBzY2FsZSAodHJlYXRcbiAgICogdGhlIGRpc3BsYXllZCBwaXhlbHMgYXMgYSBkb3duc2FtcGxlIG9mIHRoZSB3aG9sZSBpbWFnZSkuXG4gICAqL1xuICBnZXREaXNwbGF5ZWRTb3VyY2VSZWN0KCk6IHsgeDogbnVtYmVyOyB5OiBudW1iZXI7IHdpZHRoOiBudW1iZXI7IGhlaWdodDogbnVtYmVyIH0gfCBudWxsO1xuICBkb3dubG9hZEltYWdlKCk6IHZvaWQ7XG5cbiAgc2V0UGxvdFR5cGUocGxvdFR5cGU6IFBsb3RUeXBlKTogdm9pZDtcbiAgLyoqIEBkZXByZWNhdGVkIFVzZSBgZ2V0Vm9sdW1lUmVzb2x1dGlvbigpPy5zZXQoKWAgb24gYElWaXN1YWxpemVyYC4gKi9cbiAgc2V0UmVzb2x1dGlvblNjYWxlPyhzY2FsZTogbnVtYmVyKTogdm9pZDtcbiAgLyoqIEBkZXByZWNhdGVkIFVzZSBgZ2V0Vm9sdW1lUmVzb2x1dGlvbigpPy5nZXQoKWAgb24gYElWaXN1YWxpemVyYCAodGhpcyByZXR1cm5zIDEgd2l0aG91dCBvbmUpLiAqL1xuICBnZXRSZXNvbHV0aW9uU2NhbGU/KCk6IG51bWJlcjtcbiAgLyoqIEBkZXByZWNhdGVkIFVzZSBgZ2V0U3VyZmFjZTNkQ29udHJvbHMoKT8uc2V0U3VyZmFjZURyYWdNb2RlKClgIOKAlCAzRCBzY2VuZSBjb250cm9sc1xuICAgKiAgb25seSBleGlzdCBvbiBhIGJhY2tlbmQgdGhhdCByZW5kZXJzIDNEIHBsb3QgdHlwZXM7IHRoaXMgc2lsZW50bHkgbm8tb3BzIG9uIE9TRC4gKi9cbiAgc2V0U3VyZmFjZURyYWdNb2RlKG1vZGU6IHN0cmluZyk6IHZvaWQ7XG4gIC8qKiBAZGVwcmVjYXRlZCBVc2UgYGdldFN1cmZhY2UzZENvbnRyb2xzKClgIOKAlCBzZWUge0BsaW5rIHNldFN1cmZhY2VEcmFnTW9kZX0uICovXG4gIHJlc2V0U3VyZmFjZUNhbWVyYSgpOiB2b2lkO1xuXG4gIC8qKiBFbWl0cyB3aGVuZXZlciB0aGUgYmFja2VuZCBmaXRzIHRoZSB2aWV3ICh7QGxpbmsgZml0VG9WaWV3fSkuICovXG4gIGdldEF1dG9zY2FsZUV2ZW50KCk6IE9ic2VydmFibGU8dW5rbm93bj47XG5cbiAgLyoqIFBsb3QgdHlwZXMgdGhpcyBiYWNrZW5kIGFkdmVydGlzZXMgKGRyaXZlcyB0aGUgVUkgc2VsZWN0b3IpLiAqL1xuICBnZXRQbG90VHlwZURlc2NyaXB0b3JzKCk6IFBsb3RUeXBlRGVzY3JpcHRvcltdO1xuXG4gIC8qKiBJbnRlbnNpdHkgYWxvbmcgdGhlIGxpbmUgUk9JczsgZW1pdHMgdGhlIGZ1bGwgc2V0IGFzIGFueSBsaW5lIGlzIGFkZGVkLFxuICAgKiAgbW92ZWQsIG9yIHJlbW92ZWQgKFBsb3RUeXBlLkxJTkUpLiBPbmUgZW50cnkgcGVyIGxpbmUgUk9JLiAqL1xuICBnZXRJbnRlbnNpdHlQcm9maWxlJCgpOiBPYnNlcnZhYmxlPEludGVuc2l0eVByb2ZpbGVbXT47XG5cbiAgLyoqIFJlbmRlciB0aGUgZmxvYXRpbmcgaW50ZW5zaXR5LXByb2ZpbGUgaW5zZXQgY2hhcnQgaW50byBgZGl2SWRgIGZyb20gdGhlXG4gICAqICBnaXZlbiBwcm9maWxlcyAob25lIHRyYWNlIHBlciBsaW5lIFJPSSwgY29sb3VyZWQgdG8gbWF0Y2ggaXRzIGxpbmUpLlxuICAgKiAgT3duZWQgYnkgdGhlIGJhY2tlbmQgc28gY29uc3VtZXJzIG5ldmVyIHJlYWNoIGEgY2hhcnRpbmcgbGlicmFyeSBkaXJlY3RseS4gKi9cbiAgcmVuZGVySW50ZW5zaXR5SW5zZXQoZGl2SWQ6IHN0cmluZywgcHJvZmlsZXM6IEludGVuc2l0eVByb2ZpbGVbXSk6IHZvaWQ7XG59XG5cbi8qKiBSZWdpb24vc2hhcGUgc3RhdGU6IENSVUQsIHNlbGVjdGlvbiwgY2xhc3NpZmljYXRpb24gY29sb3VycywgR2VvSlNPTiBJL08uICovXG5leHBvcnQgaW50ZXJmYWNlIElSZWdpb25TdG9yZSB7XG4gIHNldFJlZ2lvbnMoXG4gICAgcmVnaW9uczogUmVnaW9uW10sXG4gICAgc2hvd1JlZ2lvbkxhYmVsPzogYm9vbGVhbixcbiAgICBpc1JlZ2lvblNhdmVPbj86IGJvb2xlYW4sXG4gICAgZmlsbENvbG9yPzogc3RyaW5nLFxuICAgIGFwcGVuZD86IGJvb2xlYW4sXG4gICk6IHZvaWQ7XG4gIC8qKiBGcmFtZXdvcmstbmV1dHJhbCBhY2Nlc3NvciDigJQgdGhlIGNhbm9uaWNhbCB3YXkgdG8gcmVhZCBjdXJyZW50IHJlZ2lvbnMuICovXG4gIGdldFJlZ2lvbnMoKTogUmVnaW9uW107XG4gIC8qKiBUaGUgY3VycmVudCByZWdpb25zIGFzIHBvbHlnb25zIChyZWN0YW5nbGVzIGV4cGFuZGVkKSwgZm9yIHNlcnZlciByZXF1ZXN0cy4gKi9cbiAgZ2V0UmVnaW9uUG9seWdvbnMoKTogUG9seWdvbltdO1xuICAvKiogRW1pdHMgdGhlIHJlZ2lvbiBzZXQgd2hlbmV2ZXIgaXQgY2hhbmdlcy4gKi9cbiAgZ2V0UmVnaW9uVXBkYXRlRXZlbnQoKTogT2JzZXJ2YWJsZTxSZWdpb25bXT47XG5cbiAgc2V0U2VsZWN0ZWRTaGFwZUluZGljZXMoaW5kaWNlczogbnVtYmVyW10pOiB2b2lkO1xuICBnZXRTZWxlY3RlZFNoYXBlSW5kaWNlcyQoKTogT2JzZXJ2YWJsZTxudW1iZXJbXT47XG4gIC8qKiBTZWxlY3QgYSBzcGVjaWZpYyByZWdpb24gKGJ5IGlkZW50aXR5KSwgaGlnaGxpZ2h0aW5nIGl0IG9uIHdoaWNoZXZlclxuICAgKiAgYmFja2VuZCBpcyByZW5kZXJpbmcg4oCUIFBsb3RseSBzZXRzIGl0cyBhY3RpdmUtc2hhcGUgaGFuZGxlcywgT3BlblNlYWRyYWdvblxuICAgKiAgaGlnaGxpZ2h0cyB0aGUgU1ZHIGVsZW1lbnQuIE5vLW9wIGlmIHRoZSByZWdpb24gaXNuJ3QgaW4gdGhlIHN0b3JlLiAqL1xuICBzZWxlY3RSZWdpb24ocmVnaW9uOiBSZWdpb24pOiB2b2lkO1xuICBkZWxldGVBY3RpdmVTaGFwZSgpOiB2b2lkO1xuXG4gIGdldFNob3dTaGFwZUxhYmVsKCk6IGJvb2xlYW47XG4gIGdldFNoYXBlQ29sb3IoKTogc3RyaW5nO1xuICBnZXRGaWxsQ29sb3IoKTogc3RyaW5nO1xuICBnZXRDbGFzc2lmaWNhdGlvbkNvbG9ycygpOiBNYXA8c3RyaW5nLCBzdHJpbmc+O1xuICBzZXRDbGFzc2lmaWNhdGlvbkNvbG9yKGxhYmVsOiBzdHJpbmcsIGNvbG9yOiBzdHJpbmcpOiB2b2lkO1xuXG4gIC8qKiBVbmRvIHRoZSBtb3N0IHJlY2VudCByZWdpb24gYWN0aW9uIChqaXQtdWkjODUpLiBSZXN0b3JlcyB0aGUgcmVnaW9uIHNldCB0b1xuICAgKiAgdGhlIHN0YXRlIGJlZm9yZSB0aGF0IGFjdGlvbjsgdXAgdG8gYSBzbWFsbCBmaXhlZCBkZXB0aCAoMTApIGlzIHJldGFpbmVkLFxuICAgKiAgc28gaXQgY2FuIGJlIGludm9rZWQgdXAgdG8gMTAgdGltZXMgaW4gYSByb3cuIE5vLW9wIHdoZW4gbm90aGluZyBpcyBsZWZ0IHRvXG4gICAqICB1bmRvLiAqL1xuICB1bmRvKCk6IHZvaWQ7XG4gIC8qKiBSZS1hcHBseSB0aGUgbW9zdCByZWNlbnRseSB1bmRvbmUgcmVnaW9uIGFjdGlvbi4gTm8tb3Agd2hlbiB0aGVyZSdzXG4gICAqICBub3RoaW5nIHRvIHJlZG8gKGFueSBmcmVzaCByZWdpb24gYWN0aW9uIGNsZWFycyB0aGUgcmVkbyBmdXR1cmUpLiAqL1xuICByZWRvKCk6IHZvaWQ7XG4gIC8qKiBTeW5jaHJvbm91cyByZWFkIG9mIHtAbGluayBnZXRDYW5VbmRvJH0uICovXG4gIGNhblVuZG8oKTogYm9vbGVhbjtcbiAgLyoqIFN5bmNocm9ub3VzIHJlYWQgb2Yge0BsaW5rIGdldENhblJlZG8kfS4gKi9cbiAgY2FuUmVkbygpOiBib29sZWFuO1xuICAvKiogRW1pdHMgd2hldGhlciBhbiB1bmRvIHN0ZXAgaXMgY3VycmVudGx5IGF2YWlsYWJsZSDigJQgZHJpdmVzIHRoZSB0b29sYmFyXG4gICAqICBVbmRvIGJ1dHRvbidzIGVuYWJsZWQgKGdyZXllZC1vdXQpIHN0YXRlLiAqL1xuICBnZXRDYW5VbmRvJCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICAvKiogRW1pdHMgd2hldGhlciBhIHJlZG8gc3RlcCBpcyBjdXJyZW50bHkgYXZhaWxhYmxlIOKAlCBkcml2ZXMgdGhlIHRvb2xiYXJcbiAgICogIFJlZG8gYnV0dG9uJ3MgZW5hYmxlZCAoZ3JleWVkLW91dCkgc3RhdGUuICovXG4gIGdldENhblJlZG8kKCk6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gIC8qKiBDbGVhciB0aGUgdW5kby9yZWRvIGhpc3RvcnkgKGUuZy4gb24gaW1hZ2UgbG9hZC9zd2l0Y2gpLiAqL1xuICByZXNldFVuZG9IaXN0b3J5KCk6IHZvaWQ7XG5cbiAgaW1wb3J0UmVnaW9ucyhnZW9Kc29uU3RyOiBzdHJpbmcpOiBSZWdpb25bXTtcbiAgZXhwb3J0UmVnaW9ucyhyZWdpb25zOiBSZWdpb25bXSk6IHZvaWQ7XG4gIGdldEdlb0pzb25TdHJpbmcocmVnaW9uczogUmVnaW9uW10pOiBzdHJpbmc7XG5cbiAgLyoqIEJlZ2luIGEgcGVyLXNsaWNlIHotc3RhY2sgcmVnaW9uIHNlc3Npb24gKGppdC11aSM5MykuIGBzbGljZXNgIG1hcHMgZWFjaFxuICAgKiAgemVyby1iYXNlZCBzbGljZSBpbmRleCB0byB0aGF0IHNsaWNlJ3MgcmVnaW9uczsgdGhlIHN0b3JlIHNob3dzIGBpbml0aWFsWmBcbiAgICogIGxpdmUgd2hpbGUgaG9sZGluZyB0aGUgcmVzdCwgc28gc2NydWJiaW5nIHN3YXBzIHJlZ2lvbiBzZXRzIGFuZCBlZGl0cyBvbiBhXG4gICAqICBzbGljZSBwZXJzaXN0LiBgc2F2ZUxheW91dGAgcmVjb3JkcyBob3cgdGhlIHN0YWNrIHBlcnNpc3RzIOKAlCBgY29tYmluZWRgXG4gICAqICAob25lIHotaW5kZXhlZCBnZW9qc29uLCBzaW5nbGUtZmlsZSB6LXN0YWNrKSBvciBgcGVyLXNsaWNlLWZpbGVgIChmb2xkZXJcbiAgICogIHN0YWNrKS4gU2VlIHtAbGluayBzZXREaXNwbGF5U2xpY2V9LCB7QGxpbmsgZ2V0U2xpY2VSZWdpb25zfS4gKi9cbiAgZW50ZXJTdGFja01vZGUoXG4gICAgc2xpY2VzOiBNYXA8bnVtYmVyLCBSZWdpb25bXT4sXG4gICAgaW5pdGlhbFo/OiBudW1iZXIsXG4gICAgc2F2ZUxheW91dD86ICdjb21iaW5lZCcgfCAncGVyLXNsaWNlLWZpbGUnLFxuICApOiB2b2lkO1xuICAvKiogRW5kIHRoZSBwZXItc2xpY2Ugc2Vzc2lvbiAoc2luZ2xlLXBsYW5lIGltYWdlLCBvciB0aGUgc3RhY2sgd2FzIGNsb3NlZCkuICovXG4gIGV4aXRTdGFja01vZGUoKTogdm9pZDtcbiAgLyoqIFRydWUgd2hpbGUgYSBwZXItc2xpY2Ugei1zdGFjayBzZXNzaW9uIGlzIGFjdGl2ZS4gKi9cbiAgaXNTdGFja01vZGUoKTogYm9vbGVhbjtcbiAgLyoqIEhvdyB0aGUgY3VycmVudCBzdGFjayBwZXJzaXN0cyB0byBkaXNrIChqaXQtdWkjOTMpLiAqL1xuICBnZXRTdGFja1NhdmVMYXlvdXQoKTogJ2NvbWJpbmVkJyB8ICdwZXItc2xpY2UtZmlsZSc7XG4gIC8qKiBTd2FwIHRoZSBsaXZlIHJlZ2lvbiBzZXQgdG8gc2xpY2UgYHpgIChzdGFjayBtb2RlIG9ubHkpLCBjYXB0dXJpbmcgdGhlXG4gICAqICBjdXJyZW50IHNsaWNlJ3MgZWRpdHMgZmlyc3QuIENhbGxlZCBvbiBldmVyeSBjb21taXR0ZWQgc2xpY2Ugc2NydWIuICovXG4gIHNldERpc3BsYXlTbGljZSh6OiBudW1iZXIpOiB2b2lkO1xuICAvKiogRXZlcnkgc2xpY2UncyByZWdpb25zIGZvciBzYXZlL2V4cG9ydCwgZWFjaCB0YWdnZWQgd2l0aCBpdHMgemVyby1iYXNlZFxuICAgKiAge0BsaW5rIFJlZ2lvbi56fTsgdGhlIGZsYXQgc2V0IG91dHNpZGUgc3RhY2sgbW9kZS4gKi9cbiAgZ2V0U2xpY2VSZWdpb25zKCk6IFJlZ2lvbltdO1xuICAvKiogU2xpY2VzIHRvIHdyaXRlIG9uIGEgcGVyLXNsaWNlLWZpbGUgc2F2ZSAoZm9sZGVyIHN0YWNrLCBqaXQtdWkjOTMpOiBlYWNoXG4gICAqICBzbGljZSB3aXRoIHJlZ2lvbnMsIHBsdXMgc2xpY2VzIGNsZWFyZWQgc2luY2UgbG9hZCAoZW1wdHksIHRvIG92ZXJ3cml0ZSkuXG4gICAqICBLZXllZCBieSB6ZXJvLWJhc2VkIHNsaWNlIGluZGV4OyByZWdpb25zIHRhZ2dlZCB3aXRoIHRoZWlyIHouICovXG4gIGdldFN0YWNrU2F2ZVNsaWNlcygpOiBNYXA8bnVtYmVyLCBSZWdpb25bXT47XG59XG5cbi8qKiBPbi1jYW52YXMgdG9vbCBtb2RlcyAod2FuZCwgYnJ1c2gsIHZlcnRleCBlcmFzZXIsIHpvb20tdG8tYm94LCBTQU0gcG9pbnQpLiAqL1xuZXhwb3J0IGludGVyZmFjZSBJVG9vbENvbnRyb2xsZXIge1xuICAvKipcbiAgICogQXJtIG9uZSBvbi1jYW52YXMgdG9vbCAoYENhbnZhc1Rvb2xJZGApIHdpdGggaXRzIG9wdGlvbnMg4oCUIHRoZSB3YW5kJ3NcbiAgICoge0BsaW5rIElXYW5kT3B0aW9uc30sIHRoZSBicnVzaCdzIHtAbGluayBJQnJ1c2hPcHRpb25zfSAoYHNpemVgIGlzIHRoZVxuICAgKiBtYXRyaXgtcGl4ZWwgZGlhbWV0ZXIgb2YgdGhlIHBhaW50ZWQgZGlzYyksIHRoZSBlcmFzZXIncyBgeyByYWRpdXMgfWAg4oCUXG4gICAqIGFuZCBkaXNhcm0gdGhlIG9uZSB0aGF0IHdhcyBhcm1lZC4gYG51bGxgLCBvciBhbnkgaWQgdGhhdCBpcyBub3QgYSBjYW52YXNcbiAgICogdG9vbCAoYSByZWdpb24gZHJhdyBtb2RlIHN1Y2ggYXMgYCdkcmF3cmVjdCdgLCBgJ3BhbidgKSwgZGlzYXJtcyBvbmx5LlxuICAgKiBBcm1pbmcgdGhlIGFybWVkIHRvb2wgYWdhaW4gYXBwbGllcyB0aGUgb3B0aW9ucyBhbmQga2VlcHMgaXRzIHdvcmsgaW5cbiAgICogcHJvZ3Jlc3MuXG4gICAqL1xuICBzZXRBY3RpdmVUb29sKGlkOiBzdHJpbmcgfCBudWxsLCBvcHRpb25zPzogQ2FudmFzVG9vbE9wdGlvbnMpOiB2b2lkO1xuICAvKiogQGRlcHJlY2F0ZWQgVXNlIGBzZXRBY3RpdmVUb29sKCd3YW5kJywgb3B0aW9ucylgIC8gYHNldEFjdGl2ZVRvb2wobnVsbClgLiAqL1xuICBzZXRXYW5kTW9kZShhY3RpdmU6IGJvb2xlYW4sIG9wdGlvbnM/OiBJV2FuZE9wdGlvbnMpOiB2b2lkO1xuICBzZXRXYW5kT3B0aW9ucyhvcHRpb25zOiBJV2FuZE9wdGlvbnMpOiB2b2lkO1xuICBjbGVhckFjdGl2ZVdhbmRSZWdpb24oKTogdm9pZDtcbiAgLyoqIEBkZXByZWNhdGVkIFVzZSBgc2V0QWN0aXZlVG9vbCgnYnJ1c2gnLCBvcHRpb25zKWAgLyBgc2V0QWN0aXZlVG9vbChudWxsKWAuICovXG4gIHNldEJydXNoTW9kZShhY3RpdmU6IGJvb2xlYW4sIG9wdGlvbnM/OiBJQnJ1c2hPcHRpb25zKTogdm9pZDtcbiAgc2V0QnJ1c2hPcHRpb25zKG9wdGlvbnM6IElCcnVzaE9wdGlvbnMpOiB2b2lkO1xuICAvKiogQGRlcHJlY2F0ZWQgVXNlIGBzZXRBY3RpdmVUb29sKCdlcmFzZVZlcnRleCcsIHsgcmFkaXVzIH0pYCAvIGBzZXRBY3RpdmVUb29sKG51bGwpYC4gKi9cbiAgc2V0VmVydGV4RXJhc2VyTW9kZShhY3RpdmU6IGJvb2xlYW4pOiB2b2lkO1xuICBzZXRWZXJ0ZXhFcmFzZXJSYWRpdXMocmFkaXVzOiBudW1iZXIpOiB2b2lkO1xuICAvKiogQGRlcHJlY2F0ZWQgVXNlIGBzZXRBY3RpdmVUb29sKCd6b29tVG9Cb3gnKWAgLyBgc2V0QWN0aXZlVG9vbChudWxsKWAuICovXG4gIHNldFpvb21Ub0JveE1vZGUoYWN0aXZlOiBib29sZWFuKTogdm9pZDtcbiAgLyoqIEJveC1wcm9tcHRlZCBTQU0gc2VnbWVudGF0aW9uOiBzZWdtZW50IGV2ZXJ5IHJlY3RhbmdsZSByZWdpb24gaW50byBtYXNrcy5cbiAgICogIFJldHVybnMgdGhlIG51bWJlciBvZiBtYXNrIHJlZ2lvbnMgYWRkZWQuIChqaXQtdWkjOTApICovXG4gIHNlZ21lbnRSZWN0YW5nbGVzKCk6IFByb21pc2U8bnVtYmVyPjtcbiAgLyoqIENlbGxwb3NlLW9uLWNyb3A6IGNsaWVudCBzbGlkZS1jcm9wIGVhY2ggcmVjdGFuZ2xlIGFuZCBzZWdtZW50IGNlbGxzIGluIGl0XG4gICAqICAoY2VsbHBvc2UtU0FNIHZpYSB0aGUgaG9zdCdzIENFTExfU0VHTUVOVEVSKS4gUmV0dXJucyByZWdpb25zIGFkZGVkLiAqL1xuICBzZWdtZW50UmVjdGFuZ2xlc0NlbGxwb3NlKCk6IFByb21pc2U8bnVtYmVyPjtcbiAgLyoqIENob29zZSB0aGUgcmVnaXN0ZXJlZCBTQU0gbW9kZWwgdGhlIHNlZ21lbnQgdG9vbHMgdXNlIChqaXQtdWkjOTAgUDEpLiAqL1xuICBzZXRTYW1Nb2RlbChpZDogc3RyaW5nKTogdm9pZDtcbiAgLyoqIFRvZ2dsZSB0aGUgaW50ZXJhY3RpdmUgU0FNIHBvaW50LXByb21wdCB0b29sIChjbGljayA9ICtwb2ludCwgU2hpZnQgPSAtKS5cbiAgICogIEBkZXByZWNhdGVkIFVzZSBgc2V0QWN0aXZlVG9vbCgnc2FtUG9pbnQnKWAgLyBgc2V0QWN0aXZlVG9vbChudWxsKWAuICovXG4gIHNldFNhbVBvaW50TW9kZShhY3RpdmU6IGJvb2xlYW4pOiB2b2lkO1xuICAvKiogRmluYWxpc2UgLyBkaXNjYXJkIHRoZSBpbi1wcm9ncmVzcyBTQU0gcG9pbnQgb2JqZWN0LiAqL1xuICBjb21taXRTYW1Qb2ludHMoKTogdm9pZDtcbiAgY2xlYXJTYW1Qb2ludHMoKTogdm9pZDtcbn1cblxuLyoqXG4gKiBDb250cm9scyBzcGVjaWZpYyB0byB0aGUgSVNPU1VSRkFDRSBwbG90IHR5cGUuIE9wdGlvbmFsIGFuZCBjYXBhYmlsaXR5LWdhdGVkXG4gKiAoYFZpZXdlckZlYXR1cmUuSXNvc3VyZmFjZWApOiBvbmx5IGEgYmFja2VuZCB0aGF0IHJlbmRlcnMgaXNvc3VyZmFjZXMgZXhwb3Nlc1xuICogaXQsIHZpYSBgSVZpc3VhbGl6ZXIuZ2V0SXNvc3VyZmFjZUNvbnRyb2xzKClgLiBLZXB0IG9mZiB0aGUgYWx3YXlzLW9uXG4gKiBjb250cmFjdCBzbyBjb25zdW1lcnMgbmV2ZXIgY2FsbCBhIGNvbnRyb2wgdGhhdCdzIG1lYW5pbmdsZXNzIGZvciB0aGUgY3VycmVudFxuICogcGxvdCB0eXBlIC8gYmFja2VuZC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJSXNvc3VyZmFjZUNvbnRyb2xzIHtcbiAgLyoqIExpdmUtdXBkYXRlIHRoZSBpc29zdXJmYWNlIGludGVuc2l0eSBiYW5kIFtpc29taW4sIGlzb21heF0gb3ZlciAw4oCTMjU1LiAqL1xuICBzZXRJc29SYW5nZShpc29NaW46IG51bWJlciwgaXNvTWF4OiBudW1iZXIpOiB2b2lkO1xufVxuXG4vKipcbiAqIENvbnRyb2xzIHNwZWNpZmljIHRvIHRoZSAzRCBwbG90IHR5cGVzIChTVVJGQUNFIC8gU0NBVFRFUjNEIC8gSVNPU1VSRkFDRVxuICogc2NlbmVzKS4gQ2FwYWJpbGl0eS1nYXRlZCBsaWtlIHtAbGluayBJSXNvc3VyZmFjZUNvbnRyb2xzfTogb25seSBhIGJhY2tlbmRcbiAqIHRoYXQgcmVuZGVycyAzRCBzY2VuZXMgZXhwb3NlcyBpdCwgdmlhIGBJVmlzdWFsaXplci5nZXRTdXJmYWNlM2RDb250cm9scygpYCDigJRcbiAqIHRoZSBkZXByZWNhdGVkIHRvcC1sZXZlbCBgc2V0U3VyZmFjZURyYWdNb2RlYC9gcmVzZXRTdXJmYWNlQ2FtZXJhYCBzaWxlbnRseVxuICogbm8tb3Agb24gMkQtb25seSBiYWNrZW5kcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJU3VyZmFjZTNkQ29udHJvbHMge1xuICAvKiogU3dpdGNoIHRoZSAzRCBzY2VuZSBpbnRlcmFjdGlvbiBtb2RlIChvcmJpdCAvIHR1cm50YWJsZSAvIHBhbiAvIHpvb20pLiAqL1xuICBzZXRTdXJmYWNlRHJhZ01vZGUobW9kZTogc3RyaW5nKTogdm9pZDtcbiAgLyoqIFJlc2V0IHRoZSAzRCBzY2VuZSBjYW1lcmEgdG8gaXRzIGRlZmF1bHQgZXllIHBvc2l0aW9uLiAqL1xuICByZXNldFN1cmZhY2VDYW1lcmEoKTogdm9pZDtcbiAgLyoqIFRvZ2dsZSB0aGUgM0QgY29vcmRpbmF0ZS1heGVzIC8gc2NhbGUgZ2l6bW8gb24vb2ZmLiBPcHRpb25hbCDigJQgb25seSB0aGUgbmFwYXJpLWpzIFdlYkdQVVxuICAgKiAgdm9sdW1lL2lzb3N1cmZhY2UgYmFja2VuZCByZW5kZXJzIG9uZSAoaml0LXVpIzEwMikuICovXG4gIHNldEF4ZXNWaXNpYmxlPyh2aXNpYmxlOiBib29sZWFuKTogdm9pZDtcbiAgLyoqIFdoZXRoZXIgdGhlIGF4ZXMgZ2l6bW8gaXMgY3VycmVudGx5IHNob3duIChmb3IgaW5pdGlhbGl6aW5nIHRoZSB0b2dnbGUgVUkpLiBPcHRpb25hbC4gKi9cbiAgYXhlc1Zpc2libGU/KCk6IGJvb2xlYW47XG4gIC8qKiBSZW5kZXIgdGhlIHN1cmZhY2UgYXMgYSB3aXJlZnJhbWUgKGVkZ2VzKSBpbnN0ZWFkIG9mIGEgZmlsbGVkIHN1cmZhY2UuIE9wdGlvbmFsIOKAlCBvbmx5IHRoZVxuICAgKiAgbmFwYXJpLWpzIFdlYkdQVSBzdXJmYWNlIGJhY2tlbmQgc3VwcG9ydHMgaXQgKGppdC11aSMxMDIpLiAqL1xuICBzZXRXaXJlZnJhbWU/KG9uOiBib29sZWFuKTogdm9pZDtcbiAgLyoqIFdoZXRoZXIgdGhlIHN1cmZhY2UgaXMgY3VycmVudGx5IGRyYXduIGFzIGEgd2lyZWZyYW1lIChmb3IgaW5pdGlhbGl6aW5nIHRoZSB0b2dnbGUgVUkpLiAqL1xuICB3aXJlZnJhbWU/KCk6IGJvb2xlYW47XG59XG5cbi8qKlxuICogQ29udHJvbHMgc3BlY2lmaWMgdG8gdGhlIExJTkUgKGludGVuc2l0eS1wcm9maWxlKSBwbG90IHR5cGUuIENhcGFiaWxpdHktZ2F0ZWRcbiAqIGxpa2Uge0BsaW5rIElJc29zdXJmYWNlQ29udHJvbHN9OiBvbmx5IGEgYmFja2VuZCB0aGF0IHJlbmRlcnMgdGhlIGxpbmUtUk9JIC9cbiAqIGluc2V0IGV4cG9zZXMgaXQsIHZpYSBgSVZpc3VhbGl6ZXIuZ2V0SW50ZW5zaXR5Q29udHJvbHMoKWAuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUludGVuc2l0eUNvbnRyb2xzIHtcbiAgLyoqIEFkZCBhbm90aGVyIGxpbmUgUk9JIChuZXh0IGJyaWdodCBwYWxldHRlIGNvbG91cikgYW5kIGl0cyBpbnNldCB0cmFjZS5cbiAgICogIFJldHVybnMgdGhlIGNyZWF0ZWQgcmVnaW9uIHNvIHRoZSBjYWxsZXIgY2FuIHNlbGVjdCBpdCBvbiB0aGUgYWN0aXZlXG4gICAqICBiYWNrZW5kLCBvciBudWxsIGlmIG5vIGltYWdlIGV4dGVudCBpcyBrbm93biB5ZXQuICovXG4gIGFkZFByb2ZpbGVMaW5lKCk6IFJlZ2lvbiB8IG51bGw7XG59XG5cbi8qKiBBIGNhdGVnb3JpY2FsIGNvbHVtbiByZXNvbHZlZCBmb3IgY2hhcnRpbmc6IGxhYmVscywgY29kZXMgYW5kIG1hcCBjb2xvdXJzLiAqL1xuZXhwb3J0IGludGVyZmFjZSBTcGF0aWFsQ2F0ZWdvcmljYWxWaWV3IHtcbiAgbmFtZTogc3RyaW5nO1xuICBjYXRlZ29yaWVzOiBzdHJpbmdbXTtcbiAgLyoqIGAjcnJnZ2JiYCBwZXIgY2F0ZWdvcnksIGluZGV4LWFsaWduZWQgd2l0aCB7QGxpbmsgY2F0ZWdvcmllc30uICovXG4gIGNvbG9yczogc3RyaW5nW107XG4gIC8qKiBQZXItb2JzZXJ2YXRpb24gY2F0ZWdvcnkgaW5kZXgsIG9yIGBOT19DQVRFR09SWWAuICovXG4gIGNvZGVzOiBVaW50MTZBcnJheTtcbn1cblxuLyoqXG4gKiBDb250cm9scyBmb3IgdGhlIFNQQVRJQUxfT01JQ1MgcGxvdCB0eXBlOiB3aGF0IHRoZSBvYnNlcnZhdGlvbiBtYXJrZXJzIGFyZVxuICogY29sb3VyZWQgYnksIGFuZCBob3cgdGhleSBhcmUgZHJhd24uIENhcGFiaWxpdHktZ2F0ZWQgbGlrZVxuICoge0BsaW5rIElJc29zdXJmYWNlQ29udHJvbHN9IOKAlCBgZ2V0U3BhdGlhbENvbnRyb2xzKClgIHJldHVybnMgbnVsbCB1bmxlc3MgYVxuICogaG9zdCBoYXMgYm91bmQgYFNQQVRJQUxfREFUQV9QT1JUYC5cbiAqXG4gKiBUaGUgdmlldyBzdGF0ZSBpcyBiYWNrZW5kLW5ldXRyYWwgKGl0IGxpdmVzIGluIHRoZSBzaGFyZWQgc3RvcmUsIGxpa2UgdGhlXG4gKiBjb2xvcm1hcCksIHNvIHRoZXNlIGNvbnRyb2xzIHdvcmsgd2hpY2hldmVyIGJhY2tlbmQgaXMgb24gc2NyZWVuLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElTcGF0aWFsQ29udHJvbHMge1xuICAvKiogVGhlIGRhdGFzZXQgYmVpbmcgdmlzdWFsaXplZCwgb3IgbnVsbC4gRHJpdmVzIHRoZSBjb2x1bW4vZ2VuZSBwaWNrZXJzIGFuZFxuICAgKiAgdGhlIGxlZ2VuZC4gKi9cbiAgZ2V0RGF0YXNldCQoKTogT2JzZXJ2YWJsZTxTcGF0aWFsRGF0YXNldCB8IG51bGw+O1xuICAvKiogQ3VycmVudCBkaXNwbGF5IHN0YXRlIChjb2xvdXIgc291cmNlLCBwb2ludCBzY2FsZSwgb3BhY2l0eSwgc2NhbGluZykuICovXG4gIGdldFZpZXdTdGF0ZSQoKTogT2JzZXJ2YWJsZTxTcGF0aWFsVmlld1N0YXRlPjtcbiAgLyoqIFN5bmNocm9ub3VzIHJlYWQsIGZvciBzZWVkaW5nIGEgY29udHJvbCdzIGluaXRpYWwgdmFsdWUuICovXG4gIHZpZXdTdGF0ZSgpOiBTcGF0aWFsVmlld1N0YXRlO1xuICAvKiogUGF0Y2ggdGhlIGRpc3BsYXkgc3RhdGU7IHRoZSBtYXJrZXJzIHJlYnVpbGQgd2l0aG91dCByZW1vdW50aW5nIHRoZSBzY2VuZS4gKi9cbiAgc2V0Vmlld1N0YXRlKHBhcnRpYWw6IFBhcnRpYWw8U3BhdGlhbFZpZXdTdGF0ZT4pOiB2b2lkO1xuICAvKiogQ29sb3VyIGJ5IGFuIGFubm90YXRpb24gY29sdW1uLiBSZWplY3RzIGZvciBhbiB1bmtub3duIGNvbHVtbi4gKi9cbiAgY29sb3JCeUNvbHVtbihuYW1lOiBzdHJpbmcpOiB2b2lkO1xuICAvKiogQ29sb3VyIGJ5IGEgZ2VuZTsgaXRzIHZlY3RvciBpcyBmZXRjaGVkIG9uIGRlbWFuZC4gKi9cbiAgY29sb3JCeUZlYXR1cmUobmFtZTogc3RyaW5nKTogdm9pZDtcbiAgLyoqIENsZWFyIHRoZSBjb2xvdXIgc291cmNlIOKAlCBldmVyeSBvYnNlcnZhdGlvbiByZW5kZXJzIGluIG9uZSBuZXV0cmFsIGNvbG91ci4gKi9cbiAgY2xlYXJDb2xvckJ5KCk6IHZvaWQ7XG4gIC8qKiBUeXBlYWhlYWQgb3ZlciBmZWF0dXJlIG5hbWVzLCBmb3IgZGF0YXNldHMgdG9vIHdpZGUgdG8gaW5saW5lIHRoZSBsaXN0LiAqL1xuICBzZWFyY2hGZWF0dXJlcyhxdWVyeTogc3RyaW5nLCBsaW1pdD86IG51bWJlcik6IFByb21pc2U8c3RyaW5nW10+O1xuICAvKiogUGVyLWNhdGVnb3J5IGRpc3BsYXkgY29sb3VycyBmb3IgYSBjYXRlZ29yaWNhbCBjb2x1bW4sIGluZGV4LWFsaWduZWQgd2l0aFxuICAgKiAgaXRzIGBjYXRlZ29yaWVzYCDigJQgdGhlIGxlZ2VuZCdzIHN3YXRjaGVzLCByZXNvbHZlZCB0aGUgc2FtZSB3YXkgdGhlXG4gICAqICByZW5kZXJlciByZXNvbHZlcyB0aGVtIHNvIHRoZSB0d28gY2Fubm90IGRpc2FncmVlLiAqL1xuICBjYXRlZ29yeUNvbG9ycyhuYW1lOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZ1tdPjtcblxuICAvLyDilIDilIAgdmFsdWVzLCBmb3IgdGhlIDEtRCBjaGFydHMg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4gIC8qKlxuICAgKiBUaGUgdmFsdWVzIGJlaGluZCBhIGNvbG91ciBzb3VyY2UsIGluZGV4LWFsaWduZWQgd2l0aCB0aGUgb2JzZXJ2YXRpb25zLlxuICAgKiBSZWplY3RzIGZvciBhIGNhdGVnb3JpY2FsIGNvbHVtbiDigJQgdGhlcmUgaXMgbm90aGluZyBjb250aW51b3VzIHRvIGNoYXJ0LlxuICAgKi9cbiAgY29udGludW91c1ZhbHVlcyhzb3VyY2U6IFNwYXRpYWxDb2xvckJ5KTogUHJvbWlzZTxGbG9hdDMyQXJyYXk+O1xuICAvKipcbiAgICogQSBjYXRlZ29yaWNhbCBjb2x1bW4ncyBjYXRlZ29yaWVzLCBwZXItb2JzZXJ2YXRpb24gY29kZXMgYW5kIGRpc3BsYXlcbiAgICogY29sb3VycyDigJQgZXZlcnl0aGluZyBhIGdyb3VwZWQgdmlvbGluL2JveCBuZWVkcywgd2l0aCB0aGUgY29sb3VycyByZXNvbHZlZFxuICAgKiB0aGUgc2FtZSB3YXkgdGhlIG1hcCByZXNvbHZlcyB0aGVtLlxuICAgKi9cbiAgY2F0ZWdvcmljYWxWaWV3KGNvbHVtbjogc3RyaW5nKTogUHJvbWlzZTxTcGF0aWFsQ2F0ZWdvcmljYWxWaWV3PjtcblxuICAvKipcbiAgICogT25lIGVtYmVkZGluZydzIGNvb3JkaW5hdGVzIOKAlCBhIFVNQVAsIHQtU05FIG9yIFBDQSBwbGFuZSBvdmVyIHRoZSBzYW1lIG9ic2VydmF0aW9ucy5cbiAgICpcbiAgICogT3B0aW9uYWwsIGFuZCBhYnNlbnQgd2hlbiB0aGUgZGF0YSBzb3VyY2Ugc2VydmVzIG5vbmU6IGBTcGF0aWFsRGF0YVBvcnQuZ2V0RW1iZWRkaW5nYFxuICAgKiBpcyBpdHNlbGYgb3B0aW9uYWwsIHNvIGEgcGFuZWwgbXVzdCBiZSBhYmxlIHRvIGFzayB3aGV0aGVyIHRoaXMgZXhpc3RzIHJhdGhlciB0aGFuXG4gICAqIGNhbGxpbmcgaXQgYW5kIGNhdGNoaW5nLlxuICAgKi9cbiAgZ2V0RW1iZWRkaW5nPyhuYW1lOiBzdHJpbmcpOiBQcm9taXNlPFNwYXRpYWxFbWJlZGRpbmc+O1xuICAvKiogTmFtZXMgb2YgdGhlIGNhdGVnb3JpY2FsIGNvbHVtbnMgYXZhaWxhYmxlIHRvIGdyb3VwIGJ5LiAqL1xuICBjYXRlZ29yaWNhbENvbHVtbnMoKTogc3RyaW5nW107XG4gIC8qKlxuICAgKiBJbXBvcnQgYSBjZWxsIGdyb3VwaW5nIChDU1YvVFNWIG9mIGBjZWxsX2lkYCwgYGdyb3VwYCkgYXMgYSBuZXcgY2F0ZWdvcmljYWwgY29sdW1uLlxuICAgKiBPcHRpb25hbDogb25seSBkYXRhIHNvdXJjZXMgdGhhdCBjYW4gam9pbiBjZWxsIGlkcyBpbXBsZW1lbnQgaXQuXG4gICAqL1xuICBpbXBvcnRHcm91cHM/KGxhYmVsOiBzdHJpbmcsIHRhYmxlOiBzdHJpbmcpOiBQcm9taXNlPHsgY29sdW1uOiBDYXRlZ29yaWNhbENvbHVtbk1ldGE7IG1hdGNoZWQ6IG51bWJlciB9PjtcbiAgLyoqIFRyYW5zY3JpcHQgdG90YWxzIHBlciBnZW5lIOKAlCBmb3IgdGhlIHBvaW50cyBlc3RpbWF0ZS4gT3B0aW9uYWwuICovXG4gIHRyYW5zY3JpcHRDb3VudHM/KGdlbmVzOiBzdHJpbmdbXSk6IFByb21pc2U8U3BhdGlhbFRyYW5zY3JpcHRDb3VudHM+O1xuICAvKiogTWFya2VyIGdlbmVzIG9mIGVhY2ggZ3JvdXAgb2YgYSBjYXRlZ29yaWNhbCBjb2x1bW4uIE9wdGlvbmFsIChzZWUgdGhlIHBvcnQpLiAqL1xuICBtYXJrZXJHZW5lcz8oY29sdW1uOiBzdHJpbmcsIHBlckdyb3VwPzogbnVtYmVyKTogUHJvbWlzZTxTcGF0aWFsTWFya2VyR2VuZXM+O1xuICAvKiogVHJhbnNjcmlwdHMgb2YgZWFjaCBzZWxlY3RlZCBnZW5lIGluIHRoZSBjdXJyZW50IHZpZXcsIG9yIG51bGwgd2hlbiBub3Qga25vd25cbiAgICogIChhbGwgZ2VuZXMgYXQgb25jZSwgdHJhbnNjcmlwdHMgb2ZmLCBvciBhIHNlbGVjdGlvbiB6b29tZWQgb3V0IG9uIGEgZGF0YXNldCB3aXRob3V0IHRoZVxuICAgKiAgcHlyYW1pZCdzIHBlci1nZW5lIGxldmVscywgd2hlcmUgY2x1c3RlcnMgYXJlIGRyYXduIGZyb20gc3VtbWVkIGRlbnNpdHkgZ3JpZHMpLiAqL1xuICBnZXRHZW5lQ291bnRzSW5WaWV3JD8oKTogT2JzZXJ2YWJsZTxSZWNvcmQ8c3RyaW5nLCBudW1iZXI+IHwgbnVsbD47XG4gIC8qKiBFc3RpbWF0ZWQgdHJhbnNjcmlwdHMgaW4gdmlldyBmb3IgdGhlIGN1cnJlbnQgc2VsZWN0aW9uLCBhZ2FpbnN0IHRoZSBtYXJrZXIgYnVkZ2V0LiAqL1xuICBnZXRUcmFuc2NyaXB0RXN0aW1hdGUkPygpOiBPYnNlcnZhYmxlPHsgcG9pbnRzOiBudW1iZXI7IG1heDogbnVtYmVyIH0gfCBudWxsPjtcbiAgLyoqIFRoZSBkZW5zaXR5IG1hcCdzIGNvbG91ciB3aW5kb3cgaW4gdXNlIChhdXRvLWRlcml2ZWQgb3Igc2V0KSBhbmQgaXRzIGRlbnNlc3QgYmluLiAqL1xuICBnZXREZW5zaXR5U3RhdHMkPygpOiBPYnNlcnZhYmxlPHsgbG86IG51bWJlcjsgaGk6IG51bWJlcjsgbWF4OiBudW1iZXIgfSB8IG51bGw+O1xuICAvKipcbiAgICogVGhlIHogcG9zaXRpb25zIG9mIHRoZSBzZWN0aW9ucyB0aGUgZGF0YXNldCB3YXMgaW1hZ2VkIGF0LCBhc2NlbmRpbmcg4oCUIG9yXG4gICAqIG51bGwgd2hlbiBpdHMgeiBpcyBjb250aW51b3VzIHJhdGhlciB0aGFuIHNlY3Rpb25lZCAoc28gdGhlcmUgYXJlIG5vIHNlY3Rpb25zXG4gICAqIHRvIG9mZmVyKSBvciB3aGVuIHRoZXJlIGlzIG5vIGRhdGFzZXQuXG4gICAqXG4gICAqIExldHMgYSBwYW5lbCBvZmZlciBcIm9uZSBzZWN0aW9uIGF0IGEgdGltZVwiIGZvciB0aGUgM0QgY2xvdWQgb25seSB3aGVyZSB0aGF0XG4gICAqIG1lYW5zIHNvbWV0aGluZywgYW5kIGxhYmVsIHRoZSBjaG9zZW4gb25lLiBTY2FubmVkIG9uY2UgcGVyIGRhdGFzZXQuXG4gICAqL1xuICBzYW1wbGVkU2VjdGlvbnMoKTogRmxvYXQzMkFycmF5IHwgbnVsbDtcblxuICAvLyDilIDilIAgc2VsZWN0aW9uIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuICAvKiogVGhlIGN1cnJlbnQgc2VsZWN0aW9uLiBFbXB0eSBtZWFucyBcIm5vdGhpbmcgc2VsZWN0ZWRcIiwgaW4gd2hpY2ggY2FzZSB0aGVcbiAgICogIHdob2xlIHRpc3N1ZSByZW5kZXJzIG5vcm1hbGx5IHJhdGhlciB0aGFuIGV2ZXJ5dGhpbmcgYmVpbmcgbXV0ZWQuICovXG4gIGdldFNlbGVjdGlvbiQoKTogT2JzZXJ2YWJsZTxTcGF0aWFsU2VsZWN0aW9uTWFzaz47XG4gIC8qKlxuICAgKiBTZWxlY3QgZXZlcnkgb2JzZXJ2YXRpb24gaW5zaWRlIHRoZSBjdXJyZW50bHktZHJhd24gcmVnaW9ucyAodGhlaXIgdW5pb24pLlxuICAgKiBSZXVzZXMgdGhlIGV4aXN0aW5nIFJPSSB0b29scyDigJQgcmVjdGFuZ2xlLCBwb2x5Z29uLCBmcmVlaGFuZCwgd2FuZCwgYnJ1c2gg4oCUXG4gICAqIHNvIHRoZXJlIGlzIG5vIHNlcGFyYXRlIG1hcnF1ZWUgdG8gbGVhcm4uIFJldHVybnMgaG93IG1hbnkgd2VyZSBzZWxlY3RlZC5cbiAgICovXG4gIHNlbGVjdEZyb21SZWdpb25zKCk6IG51bWJlcjtcbiAgLyoqIFNlbGVjdCBldmVyeSBvYnNlcnZhdGlvbiBpbiBvbmUgY2F0ZWdvcnkgb2YgYSBjYXRlZ29yaWNhbCBjb2x1bW4g4oCUIHRoZVxuICAgKiAgbGVnZW5kIGNsaWNrLiBSZWplY3RzIGZvciBhbiB1bmtub3duIG9yIGNvbnRpbnVvdXMgY29sdW1uLiAqL1xuICBzZWxlY3RDYXRlZ29yeShjb2x1bW46IHN0cmluZywgY2F0ZWdvcnlJbmRleDogbnVtYmVyKTogUHJvbWlzZTxudW1iZXI+O1xuXG4gIC8qKlxuICAgKiBTZWxlY3QgYW4gZXhwbGljaXQgc2V0IG9mIG9ic2VydmF0aW9ucywgcmVwbGFjaW5nIGFueSBjdXJyZW50IHNlbGVjdGlvbi5cbiAgICpcbiAgICogRm9yIGEgbGlua2VkIHBsb3Q6IGxhc3NvaW5nIHBvaW50cyBpbiBhbiBlbWJlZGRpbmcgaXMgYSBzZWxlY3Rpb24gT0Ygb2JzZXJ2YXRpb25zLFxuICAgKiBhbmQgZXZlcnkgb3RoZXIgdmlldyDigJQgdGhlIG1hcCwgdGhlIGRpc3RyaWJ1dGlvbnMg4oCUIHJlYWRzIHRoZSBzYW1lIG1hc2ssIHNvIGJydXNoaW5nXG4gICAqIG9uZSBsaWdodHMgdXAgdGhlIHJlc3QuIFJldHVybnMgaG93IG1hbnkgd2VyZSBzZWxlY3RlZC5cbiAgICovXG4gIHNlbGVjdEluZGljZXMoaW5kaWNlczogSXRlcmFibGU8bnVtYmVyPik6IG51bWJlcjtcbiAgY2xlYXJTZWxlY3Rpb24oKTogdm9pZDtcbn1cblxuLyoqIERpc3BsYXkgb3B0aW9ucyAoY29sb3JtYXAvTFVULCByZXZlcnNlIHNjYWxlLCBpbWFnZSBtZXRhZGF0YSkuICovXG5leHBvcnQgaW50ZXJmYWNlIElEaXNwbGF5T3B0aW9ucyB7XG4gIGdldENvbG9ybWFwKCk6IE9ic2VydmFibGU8Q29sb3JtYXBOb2RlIHwgbnVsbD47XG4gIHNldENvbG9ybWFwKGNvbG9ybWFwOiBDb2xvcm1hcE5vZGUpOiB2b2lkO1xuICBnZXRDb2xvcm1hcE9wdGlvbnMoKTogQ29sb3JtYXBOb2RlW107XG4gIGdldFJldmVyc2VTY2FsZSgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICBzZXRSZXZlcnNlU2NhbGUocmV2ZXJzZTogYm9vbGVhbik6IHZvaWQ7XG4gIC8qKiBQdWJsaXNoIHRoZSBjdXJyZW50IGltYWdlJ3MgbWV0YWRhdGEuIGBpbWFnZUtleWAgKGl0cyBmaWxlIG5hbWUpIGxldHMgdGhlXG4gICAqICBjaGFubmVsIHN0YXRlIHN1cnZpdmUgYSByZS1wbG90IG9mIHRoZSBzYW1lIGltYWdlIGJ1dCBub3QgYSBzd2l0Y2ggdG8gYW5vdGhlci4gKi9cbiAgc2V0SW1hZ2VNZXRhKGltYWdlTWV0YTogSUltYWdlTWV0YWRhdGFbXSwgaW1hZ2VLZXk/OiBzdHJpbmcpOiB2b2lkO1xuICBnZXRJbWFnZU1ldGEoKTogT2JzZXJ2YWJsZTxJSW1hZ2VNZXRhZGF0YVtdPjtcbn1cblxuLyoqXG4gKiBUaGUgcGFydCBvZiBpbnRlbnNpdHkgc2FtcGxpbmcgYSByZW5kZXJpbmcgYmFja2VuZCBvd25zOiB3aGVyZSBpdHMgdmlldyBzZXR0bGVkLlxuICogV2hhdCBgSVZpZXdlckJhY2tlbmQuZ2V0SW50ZW5zaXR5U2FtcGxpbmcoKWAgcmV0dXJucy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJSW50ZW5zaXR5Vmlld3BvcnRTb3VyY2Uge1xuICAvKiogVmlzaWJsZS1yZWdpb24gY2hhbmdlcyAoaW1hZ2UtcGl4ZWwgY29vcmRzKSwgZW1pdHRlZCB3aGVuIHRoZSB2aWV3IHNldHRsZXMsXG4gICAqICBzbyB0aGUgaW5zZXQgY2FuIHJlLXNhbXBsZSBhdCB0aGUgY3VycmVudCB6b29tLiAqL1xuICBnZXRWaWV3cG9ydENoYW5nZSQoKTogT2JzZXJ2YWJsZTx7IHg6IG51bWJlcjsgeTogbnVtYmVyOyB3aWR0aDogbnVtYmVyOyBoZWlnaHQ6IG51bWJlciB9Pjtcbn1cblxuLyoqXG4gKiBJbnRlbnNpdHktcHJvZmlsZSBzYW1wbGluZyAodGhlIGxpbmUgUk9JcycgaW5zZXQpLCBmcm9tIGBJVmlzdWFsaXplci5nZXRJbnRlbnNpdHlTYW1wbGluZygpYC5cbiAqIFRoZSBzYW1wbGluZyBpdHNlbGYgaXMgYmFja2VuZC1uZXV0cmFsICh0aGUgbGlicmFyeSdzIEludGVuc2l0eVByb2ZpbGVTZXJ2aWNlXG4gKiBzYW1wbGVzIHdoYXRldmVyIGltYWdlIGlzIG9uIHNjcmVlbik7IHRoZSB2aWV3cG9ydC1jaGFuZ2Ugc2lnbmFsIGNvbWVzIGZyb20gdGhlXG4gKiBiYWNrZW5kIHRoYXQgZHJhd3MgdGhlIGltYWdlIChPcGVuU2VhZHJhZ29uIGFuZCBuYXBhcmktanMgcmVwb3J0IGl0OyBQbG90bHlcbiAqIHJlLXNhbXBsZXMgaXRzIGhpZ2gtZGVmIHpvb20gY3JvcHMgaW5saW5lIGluc3RlYWQpLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElJbnRlbnNpdHlTYW1wbGluZyBleHRlbmRzIElJbnRlbnNpdHlWaWV3cG9ydFNvdXJjZSB7XG4gIC8qKiBMb2FkIHRoZSBjdXJyZW50IGltYWdlL3NsaWNlJ3MgcGl4ZWxzIHNvIHRoZSBsaW5lLVJPSSBwcm9maWxlcyBoYXZlIGRhdGFcbiAgICogIChhIGJhY2tlbmQgd2l0aCBubyBmcmFtZXMgb2YgaXRzIG93bjogT3BlblNlYWRyYWdvbiwgbmFwYXJpLWpzKS4gKi9cbiAgZW5zdXJlSW50ZW5zaXR5U2FtcGxpbmcoaW1hZ2VJbmZvOiBJSW1hZ2VJbmZvLCB6SW5kZXg6IG51bWJlcik6IFByb21pc2U8dm9pZD47XG4gIC8qKiBSZS1zYW1wbGUgdGhlIHByb2ZpbGVzIGZyb20gYSBmcmVzaCBjcm9wIG9mIHRoZSBnaXZlbiBpbWFnZS1waXhlbCBST0kgYXRcbiAgICogIGRpc3BsYXkgcmVzb2x1dGlvbi4gKi9cbiAgcmVmcmVzaEludGVuc2l0eVNhbXBsaW5nRm9yUm9pKHg6IG51bWJlciwgeTogbnVtYmVyLCB3aWR0aDogbnVtYmVyLCBoZWlnaHQ6IG51bWJlciwgekluZGV4OiBudW1iZXIpOiB2b2lkO1xufVxuXG4vKipcbiAqIFRoZSAyRCB2aWV3IG9wdGlvbnMgb2YgYSB0aWxlZCBpbWFnZSB2aWV3ZXI6IHRoZSBvdmVydmlldyBuYXZpZ2F0b3IgYW5kIGltYWdlXG4gKiBzbW9vdGhpbmcuIE9wZW5TZWFkcmFnb24ncywgbWlycm9yZWQgYnkgbmFwYXJpLWpzJ3MgMkQgdmlld3M7IFBsb3RseSBoYXMgbmVpdGhlci5cbiAqIENhcGFiaWxpdHktZ2F0ZWQ6IGBJVmlld2VyQmFja2VuZC5nZXRPc2RWaWV3T3B0aW9ucygpYCBpcyBudWxsIG9uIGEgYmFja2VuZFxuICogd2l0aG91dCB0aGVtLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElPc2RWaWV3T3B0aW9ucyB7XG4gIC8qKiBTaG93L2hpZGUgdGhlIG92ZXJ2aWV3IG5hdmlnYXRvciAodGhlIG1pbmltYXApLiBBcHBsaWVkIHdoZW4gdGhlIHZpZXdlciBpc1xuICAgKiAgKHJlKWNyZWF0ZWQsIGFuZCB0b2dnbGVkIGxpdmUgd2hlbiBvbmUgaXMgYWxyZWFkeSBtb3VudGVkLiAqL1xuICBzZXROYXZpZ2F0b3JWaXNpYmxlKHZpc2libGU6IGJvb2xlYW4pOiB2b2lkO1xuICAvKiogSW1hZ2Ugc21vb3RoaW5nIChiaWxpbmVhciBpbnRlcnBvbGF0aW9uKS4gYGZhbHNlYCA9IG5lYXJlc3QtbmVpZ2hib3VyLCBzb1xuICAgKiAgem9vbWluZyBwYXN0IDE6MSBzaG93cyBjcmlzcCBwaXhlbCBibG9ja3MgKHBpeGVsLWxldmVsIGluc3BlY3Rpb24pLiBBcHBsaWVkXG4gICAqICBhdCB2aWV3ZXIgY3JlYXRpb24gYW5kIGxpdmUgKHdpdGggYSByZWRyYXcpIHdoZW4gb25lIGlzIG1vdW50ZWQuICovXG4gIHNldEltYWdlU21vb3RoaW5nRW5hYmxlZChlbmFibGVkOiBib29sZWFuKTogdm9pZDtcbn1cblxuLyoqXG4gKiBUaGUgM0QgZGVjaW1hdGUgZmFjdG9yIG9mIGEgdm9sdW1lIHJlbmRlcmVyIChuYXBhcmktanMgV2ViR1BVKTogMSA9IGZ1bGxcbiAqIHJlc29sdXRpb24g4oCmIDggPSDihZsgcGVyIGF4aXMuIENhcGFiaWxpdHktZ2F0ZWQ6IG51bGwgb24gYSBiYWNrZW5kIHdpdGhvdXQgb25lLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElWb2x1bWVSZXNvbHV0aW9uIHtcbiAgLyoqIFRoZSBjdXJyZW50IGZhY3RvciAodG8gaW5pdGlhbGl6ZSB0aGUgUmVzb2x1dGlvbiBjb250cm9sKS4gKi9cbiAgZ2V0KCk6IG51bWJlcjtcbiAgLyoqIFNldCB0aGUgZmFjdG9yIChyb3VuZGVkLCBhdCBsZWFzdCAxKS4gVGFrZXMgZWZmZWN0IG9uIHRoZSBuZXh0IChyZSlsb2FkIOKAlFxuICAgKiAgdGhlIGhvc3QgcmUtcGxvdHMgYWZ0ZXIgY2FsbGluZyBpdCwgc2luY2UgaXQgY2hhbmdlcyB0aGUgZmV0Y2hlZCBkYXRhLiAqL1xuICBzZXQoc2NhbGU6IG51bWJlcik6IHZvaWQ7XG59XG5cbi8qKlxuICogVGhlIGhvc3QtZmFjaW5nIGNvbXBvc2l0ZSBjb250cmFjdCwgaW1wbGVtZW50ZWQgYnkgdGhlIHJvdXRlciAoYFZJU1VBTElaRVJgKS4gQVxuICogcmVuZGVyaW5nIGJhY2tlbmQgaW1wbGVtZW50cyB7QGxpbmsgSVZpZXdlckJhY2tlbmR9IGluc3RlYWQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSVZpc3VhbGl6ZXJcbiAgZXh0ZW5kcyBJRGF0YVJlbmRlcmVyLCBJUmVnaW9uU3RvcmUsIElUb29sQ29udHJvbGxlciwgSURpc3BsYXlPcHRpb25zLCBJSW50ZW5zaXR5U2FtcGxpbmcge1xuICByZWFkb25seSBjYXBhYmlsaXRpZXM6IFZpZXdlckNhcGFiaWxpdGllcztcbiAgLyoqIFRoaXMgYmFja2VuZCdzIHJlZ2lvbiByZW5kZXJlci4gTWF5IGJlIG51bGwgdW50aWwgYSBwbG90IGlzIG1vdW50ZWRcbiAgICogIChPcGVuU2VhZHJhZ29uKS4gRHJpdmVzIHJlZ2lvbiBkcmF3L3NlbGVjdCBtb2RlcyB1bmlmb3JtbHkuICovXG4gIGdldFJlZ2lvbk92ZXJsYXkoKTogSVJlZ2lvbk92ZXJsYXkgfCBudWxsO1xuICAvKiogU3BsaXQgYSB2b2x1bWUgdmlldzogdGhlIGRpc3BsYXllZCBzbGljZSwgd2l0aCBldmVyeSByZWdpb24gdG9vbCwgaW4gdGhlIGRpdiBgZGl2YCBiZXNpZGVcbiAgICogIHRoZSAzRCB2aWV3OyBudWxsIGNsb3NlcyBpdC4gUmVzb2x2ZXMgd2hldGhlciB0aGUgc2xpY2Ugc2hvd3MuIE9wdGlvbmFsOiB0aGUgcm91dGVyJ3MuICovXG4gIHNldFNsaWNlRWRpdG9yPyhkaXY6IHN0cmluZyB8IG51bGwpOiBQcm9taXNlPGJvb2xlYW4+O1xuICAvKiogVGhlIHNsaWNlIGVkaXRvcidzIHNlY3Rpb25zIHRocm91Z2ggeCBhbmQgeSAobnVsbHMgd2hpbGUgaXQgaXMgY2xvc2VkKS4gT3B0aW9uYWw6IHRoZSByb3V0ZXIncy4gKi9cbiAgZ2V0U2VjdGlvblZpZXdzJD8oKTogT2JzZXJ2YWJsZTxTZWN0aW9uVmlld3M+O1xuICAvKiogTW92ZSB0aGUgc2xpY2UgZWRpdG9yJ3Mgc2VjdGlvbiBwbGFuZSB0aHJvdWdoIGBheGlzYCB0byBgYXRgIChpbWFnZSBweCkuICovXG4gIHNldFNlY3Rpb25QbGFuZT8oYXhpczogU2VjdGlvbkF4aXMsIGF0OiBudW1iZXIpOiB2b2lkO1xuICAvKiogVGhlIHNsaWNlIHBpY2tlZCBieSBkcmFnZ2luZyB0aGUgeiBwbGFuZSBpbiB0aGUgdm9sdW1lICh0aGUgaG9zdCBzaG93cyBpdCkuICovXG4gIGdldFNsaWNlRHJhZyQ/KCk6IE9ic2VydmFibGU8bnVtYmVyPjtcbiAgLyoqIElzb3N1cmZhY2UgY29udHJvbHMgd2hlbiB0aGlzIGJhY2tlbmQgYWR2ZXJ0aXNlcyBgVmlld2VyRmVhdHVyZS5Jc29zdXJmYWNlYCxcbiAgICogIGVsc2UgbnVsbCDigJQgc28gY29uc3VtZXJzIGdhdGUgb24gdGhlIHJldHVybmVkIG9iamVjdCwgbm90IGEgbm8tb3AgbWV0aG9kLiAqL1xuICBnZXRJc29zdXJmYWNlQ29udHJvbHMoKTogSUlzb3N1cmZhY2VDb250cm9scyB8IG51bGw7XG4gIC8qKiBJbnRlbnNpdHkgKGxpbmUtUk9JKSBjb250cm9scyB3aGVuIHRoZSBiYWNrZW5kIHJlbmRlcnMgdGhlIExJTkUgcGxvdCB0eXBlLFxuICAgKiAgZWxzZSBudWxsLiAqL1xuICBnZXRJbnRlbnNpdHlDb250cm9scygpOiBJSW50ZW5zaXR5Q29udHJvbHMgfCBudWxsO1xuICAvKiogM0Qgc2NlbmUgY29udHJvbHMgd2hlbiB0aGlzIGJhY2tlbmQgcmVuZGVycyAzRCBwbG90IHR5cGVzLCBlbHNlIG51bGwg4oCUXG4gICAqICB0aGUgY2FwYWJpbGl0eS1nYXRlZCByZXBsYWNlbWVudCBmb3IgdGhlIGRlcHJlY2F0ZWQgdG9wLWxldmVsXG4gICAqICBgc2V0U3VyZmFjZURyYWdNb2RlYC9gcmVzZXRTdXJmYWNlQ2FtZXJhYC4gKi9cbiAgZ2V0U3VyZmFjZTNkQ29udHJvbHMoKTogSVN1cmZhY2UzZENvbnRyb2xzIHwgbnVsbDtcbiAgLyoqIFRoZSBuYXZpZ2F0b3IgLyBpbWFnZS1zbW9vdGhpbmcgb3B0aW9ucy4gTmV2ZXIgbnVsbCBvbiB0aGUgcm91dGVyOiBhIHNldHRpbmdcbiAgICogIGFwcGxpZXMgdG8gZXZlcnkgYmFja2VuZCB0aGF0IGhhcyB0aGVtIChPcGVuU2VhZHJhZ29uLCBuYXBhcmktanMpLCBzbyBpdCBjYW5cbiAgICogIGJlIHNldCBiZWZvcmUgdGhlIGZpcnN0IHJlbmRlciBhbmQgc3Vydml2ZXMgYSBiYWNrZW5kIHN3aXRjaC4gKi9cbiAgZ2V0T3NkVmlld09wdGlvbnMoKTogSU9zZFZpZXdPcHRpb25zO1xuICAvKiogVGhlIDNEIGRlY2ltYXRlIGZhY3RvciBvZiB0aGUgYmFja2VuZCBvbiBzY3JlZW4sIG9yIG51bGwgd2hlbiBpdCBoYXMgbm9uZVxuICAgKiAgKG9ubHkgbmFwYXJpLWpzIHJlbmRlcnMgdm9sdW1lcykuICovXG4gIGdldFZvbHVtZVJlc29sdXRpb24oKTogSVZvbHVtZVJlc29sdXRpb24gfCBudWxsO1xuICAvKiogSW50ZW5zaXR5LXByb2ZpbGUgc2FtcGxpbmcsIHdoaWNoZXZlciBiYWNrZW5kIGlzIG9uIHNjcmVlbi4gKi9cbiAgZ2V0SW50ZW5zaXR5U2FtcGxpbmcoKTogSUludGVuc2l0eVNhbXBsaW5nO1xuICAvKiogQGRlcHJlY2F0ZWQgVXNlIGBnZXRJbnRlbnNpdHlTYW1wbGluZygpLmVuc3VyZUludGVuc2l0eVNhbXBsaW5nKClgLiAqL1xuICBlbnN1cmVJbnRlbnNpdHlTYW1wbGluZyhpbWFnZUluZm86IElJbWFnZUluZm8sIHpJbmRleDogbnVtYmVyKTogUHJvbWlzZTx2b2lkPjtcbiAgLyoqIEBkZXByZWNhdGVkIFVzZSBgZ2V0SW50ZW5zaXR5U2FtcGxpbmcoKS5yZWZyZXNoSW50ZW5zaXR5U2FtcGxpbmdGb3JSb2koKWAuICovXG4gIHJlZnJlc2hJbnRlbnNpdHlTYW1wbGluZ0ZvclJvaSh4OiBudW1iZXIsIHk6IG51bWJlciwgd2lkdGg6IG51bWJlciwgaGVpZ2h0OiBudW1iZXIsIHpJbmRleDogbnVtYmVyKTogdm9pZDtcbiAgLyoqIEBkZXByZWNhdGVkIFVzZSBgZ2V0SW50ZW5zaXR5U2FtcGxpbmcoKS5nZXRWaWV3cG9ydENoYW5nZSQoKWAuICovXG4gIGdldFZpZXdwb3J0Q2hhbmdlJCgpOiBPYnNlcnZhYmxlPHsgeDogbnVtYmVyOyB5OiBudW1iZXI7IHdpZHRoOiBudW1iZXI7IGhlaWdodDogbnVtYmVyIH0+O1xuICAvKiogU3BhdGlhbC1vbWljcyBjb250cm9scyB3aGVuIGEgYFNQQVRJQUxfREFUQV9QT1JUYCBpcyBib3VuZCwgZWxzZSBudWxsLlxuICAgKiAgT3B0aW9uYWw6IG9ubHkgdGhlIHJvdXRpbmcgc2VydmljZSBpbXBsZW1lbnRzIGl0LCBzaW5jZSB0aGUgc3RhdGUgaXMgc2hhcmVkXG4gICAqICByYXRoZXIgdGhhbiBvd25lZCBieSBhbnkgb25lIGJhY2tlbmQuICovXG4gIGdldFNwYXRpYWxDb250cm9scz8oKTogSVNwYXRpYWxDb250cm9scyB8IG51bGw7XG4gIC8qKiBUaGUgdmlld3BvcnQgYSBjb250cmlidXRlZCBwbG90IG1vZGUgZHJhd3Mgb3Zlciwgd2hlbiB0aGUgYmFja2VuZCBvblxuICAgKiAgc2NyZWVuIGNhbiBwcm92aWRlIG9uZSAoT3BlblNlYWRyYWdvbiksIGVsc2UgbnVsbC4gT3B0aW9uYWw6IGJhY2tlbmRzIHRoYXRcbiAgICogIG5vIGNvbnRyaWJ1dGVkIG1vZGUgcmlkZXMgb24gbmVlZCBub3QgaW1wbGVtZW50IGl0LiAqL1xuICBnZXRQbG90TW9kZVZpZXdwb3J0PygpOiBQbG90TW9kZVZpZXdwb3J0IHwgbnVsbDtcbiAgLyoqIEJpbm5lZCBpbnRlbnNpdHkgaGlzdG9ncmFtIGZvciBhIGNoYW5uZWwgZnJvbSB0aGUgY3VycmVudGx5LWRpc3BsYXllZFxuICAgKiAgcGl4ZWxzLCBvciBudWxsIHdoZW4gbm9uZSBhcmUgYXZhaWxhYmxlLiBGZWVkcyB0aGUgQ2hhbm5lbHMgJiBIaXN0b2dyYW1cbiAgICogIHBhbmUuICovXG4gIGdldEhpc3RvZ3JhbShjaGFubmVsSW5kZXg6IG51bWJlciwgYmluczogbnVtYmVyKTogSUhpc3RvZ3JhbSB8IG51bGw7XG4gIC8qKiBBc3luYyBoaXN0b2dyYW0gc3RyZWFtIOKAlCBuYXRpdmUgYml0IGRlcHRoIGZvciA+OC1iaXQgaW1hZ2VzIChzZXJ2ZXIpLCBlbHNlXG4gICAqICB0aGUgOC1iaXQgY2xpZW50IGhpc3RvZ3JhbS4gKi9cbiAgZ2V0SGlzdG9ncmFtJChjaGFubmVsSW5kZXg6IG51bWJlciwgYmluczogbnVtYmVyKTogT2JzZXJ2YWJsZTxJSGlzdG9ncmFtIHwgbnVsbD47XG4gIC8qKiBFeHBvcnQgdGhlIGRpc3BsYXllZCBpbWFnZSwgY29tcG9zaXRlZCB3aXRoIHRoZSBjdXJyZW50IGRpc3BsYXkgc2V0dGluZ3MsXG4gICAqICBhcyBhIHB1YmxpY2F0aW9uLXJlYWR5IFBORyBkb3dubG9hZC4gKi9cbiAgZXhwb3J0Q29tcG9zaXRlKCk6IHZvaWQ7XG4gIC8qKiBFeHBvcnQgdGhlIHVuZGVybHlpbmcgaW1hZ2UgZGF0YSBhcyBhIGRhdGEtcHJlc2VydmluZyBtdWx0aS1iYW5kIFRJRkZcbiAgICogIChuYXRpdmUgYml0IGRlcHRoKS4gTm8tb3Agb24gYmFja2VuZHMgdGhhdCBjYW4ndCBwcm92aWRlIGl0LiAqL1xuICBleHBvcnREYXRhKCk6IHZvaWQ7XG4gIC8qKlxuICAgKiBUaGUgdmlldyBpcyBnb2luZyBhd2F5ICh0aGUgYDx2aXN1YWxpemVyPmAgaXMgZGVzdHJveWVkKTogZHJvcCB3aGF0IGlzIGJvdW5kIHRvXG4gICAqIGl0IOKAlCB0aGUgb24tc2NyZWVuIHZpZXdlciwgaXRzIHJlbmRlciBsb29wIGFuZCB2aWV3IHN1YnNjcmlwdGlvbnMg4oCUIHNvIG5vdGhpbmdcbiAgICogb3V0bGl2ZXMgdGhlIHZpZXcuIFNlcnZpY2UtbGlmZXRpbWUgc3RhdGUgKHN0b3JlcywgdGhlIGJhY2tlbmRzJyBvd24gc3RvcmVcbiAgICogc3Vic2NyaXB0aW9ucykgaXMgdW50b3VjaGVkLCBzbyBhIGxhdGVyIHZpZXcgb24gdGhlIHNhbWUgY2hhaW4gcmVuZGVycyBub3JtYWxseS5cbiAgICovXG4gIGRldGFjaCgpOiB2b2lkO1xuICAvKiogQGRlcHJlY2F0ZWQgVXNlIHtAbGluayBkZXRhY2h9LCB3aGljaCB0aGlzIGRlbGVnYXRlcyB0by4gKi9cbiAgdW5zdWJzY3JpYmUoKTogdm9pZDtcbn1cblxuLyoqXG4gKiBXaGF0IGEgcmVuZGVyaW5nIGJhY2tlbmQgaW1wbGVtZW50cyAoUGxvdGx5LCBPcGVuU2VhZHJhZ29uLCBuYXBhcmktanMpOiByZW5kZXJpbmcsXG4gKiB0aGUgdmlld3BvcnQsIHBpeGVsIHJlYWRiYWNrLCBleHBvcnQsIGxvYWRpbmcgc3RhdGUgYW5kIGl0cyBvbi1jYW52YXMgdG9vbHMsIHBsdXNcbiAqIGNhcGFiaWxpdHktZ2F0ZWQgZ2V0dGVycyBmb3Igd2hhdCBvbmx5IHNvbWUgYmFja2VuZHMgaGF2ZS5cbiAqXG4gKiBJdCBpcyB0aGUgYmFja2VuZC1mYWNpbmcgaGFsZiBvZiB7QGxpbmsgSVZpc3VhbGl6ZXJ9LiBSZWdpb24gYW5kIGRpc3BsYXkgc3RhdGUgYXJlXG4gKiBub3QgaGVyZTogdGhleSBsaXZlIGluIHRoZSBzaGFyZWQgYFJlZ2lvblN0b3JlYCAvIGBWaXN1YWxpemVyU3RvcmVgLCB3aGljaCB0aGUgcm91dGVyXG4gKiBzZXJ2ZXMgdG8gaG9zdHMgZGlyZWN0bHk7IGEgYmFja2VuZCBkcmF3cyB0aGVtIGJ5IHN1YnNjcmliaW5nIHRvIHRoZSBzdG9yZXMnIGV2ZW50cy5cbiAqIEhvc3RzIGtlZXAgZGVwZW5kaW5nIG9uIGBJVmlzdWFsaXplcmAgKHRoZSByb3V0ZXIncyBjb21wb3NpdGUpLCBuZXZlciBvbiBhIGJhY2tlbmQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSVZpZXdlckJhY2tlbmQgZXh0ZW5kcyBJVG9vbENvbnRyb2xsZXIge1xuICByZWFkb25seSBjYXBhYmlsaXRpZXM6IFZpZXdlckNhcGFiaWxpdGllcztcblxuICAvLyDilIDilIAgcmVuZGVyIGxpZmVjeWNsZSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbiAgbG9hZChpbWFnZUluZm86IElJbWFnZUluZm8sIHpJbmRleDogbnVtYmVyLCBzaWduYWw/OiBBYm9ydFNpZ25hbCk6IFByb21pc2U8TG9hZGVkSW1hZ2U+O1xuICBwbG90KFxuICAgIHBsb3REaXY6IHN0cmluZyxcbiAgICBpbWFnZUxvYWRlZDogdW5rbm93bixcbiAgICBpbWFnZUluZm86IElJbWFnZUluZm8sXG4gICAgc2NyZWVuSGVpZ2h0OiBudW1iZXIsXG4gICAgcGxvdFR5cGU6IFBsb3RUeXBlLFxuICAgIGluUGxhY2U/OiBib29sZWFuLFxuICApOiBQcm9taXNlPGJvb2xlYW4+O1xuICByZXNldCgpOiB2b2lkO1xuICByZWxheW91dCh0cnVlSW1hZ2VTaXplPzogbnVtYmVyW10pOiB2b2lkO1xuICAvKiogVGhlIHZpZXcgaXMgZ29pbmcgYXdheTogcmVsZWFzZSB3aGF0IGlzIGJvdW5kIHRvIGl0LiAqL1xuICBkZXRhY2goKTogdm9pZDtcbiAgLyoqIFN0b3Agc3RyZWFtaW5nIGZyYW1lcyAodm9sdW1lIGFzc2VtYmx5IC8gc3VyZmFjZSBwcmVsb2FkKS4gT3B0aW9uYWw6IG9ubHlcbiAgICogIGJhY2tlbmRzIHRoYXQgc3RyZWFtIGEgei1zdGFjayBkbyB3b3JrIGhlcmUuICovXG4gIGNhbmNlbExvYWRpbmc/KCk6IHZvaWQ7XG5cbiAgLy8g4pSA4pSAIHZpZXdwb3J0IOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuICB6b29tSW4oKTogdm9pZDtcbiAgem9vbU91dCgpOiB2b2lkO1xuICBzZXREcmFnTW9kZShtb2RlOiBzdHJpbmcgfCBmYWxzZSk6IHZvaWQ7XG4gIGZpdFRvVmlldygpOiB2b2lkO1xuICAvKiogQHNlZSBJRGF0YVJlbmRlcmVyLnJlc2V0QXhlcyAqL1xuICByZXNldEF4ZXMoKTogdm9pZDtcbiAgc2V0WkluZGV4KHpJbmRleDogbnVtYmVyKTogdm9pZDtcbiAgc2V0U2hvd1N0YWNrKHNob3dzdGFjazogYm9vbGVhbik6IHZvaWQ7XG4gIC8qKiBFbWl0cyB3aGVuZXZlciB0aGUgYmFja2VuZCBmaXRzIHRoZSB2aWV3LiAqL1xuICBnZXRBdXRvc2NhbGVFdmVudCgpOiBPYnNlcnZhYmxlPHVua25vd24+O1xuICBpc1N0YWNrTG9hZGluZygpOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICBnZXRTdGFja0xvYWRpbmdQcm9ncmVzcygpOiBPYnNlcnZhYmxlPG51bWJlcj47XG5cbiAgLy8g4pSA4pSAIHBpeGVscywgaGlzdG9ncmFtLCBleHBvcnQg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4gIGdldFRydWVJbWFnZVNpemUoKTogeyB3aWR0aDogbnVtYmVyOyBoZWlnaHQ6IG51bWJlciB9IHwgbnVsbDtcbiAgZ2V0Q3VycmVudEltYWdlKCk6IFByb21pc2U8SW1hZ2UgfCBudWxsPjtcbiAgZ2V0RGlzcGxheWVkUGl4ZWxEYXRhKCk6IFBpeGVsRGF0YSB8IG51bGw7XG4gIGdldERpc3BsYXllZFNvdXJjZVJlY3QoKTogeyB4OiBudW1iZXI7IHk6IG51bWJlcjsgd2lkdGg6IG51bWJlcjsgaGVpZ2h0OiBudW1iZXIgfSB8IG51bGw7XG4gIGdldEhpc3RvZ3JhbShjaGFubmVsSW5kZXg6IG51bWJlciwgYmluczogbnVtYmVyKTogSUhpc3RvZ3JhbSB8IG51bGw7XG4gIGdldEhpc3RvZ3JhbSQoY2hhbm5lbEluZGV4OiBudW1iZXIsIGJpbnM6IG51bWJlcik6IE9ic2VydmFibGU8SUhpc3RvZ3JhbSB8IG51bGw+O1xuICBkb3dubG9hZEltYWdlKCk6IHZvaWQ7XG4gIGV4cG9ydENvbXBvc2l0ZSgpOiB2b2lkO1xuICBleHBvcnREYXRhKCk6IHZvaWQ7XG5cbiAgLy8g4pSA4pSAIGNhcGFiaWxpdHktZ2F0ZWQgc3VyZmFjZXMgKG51bGwgLyBhYnNlbnQgd2hlcmUgdGhlIGJhY2tlbmQgbGFja3MgdGhlIGZlYXR1cmUpIOKUgOKUgFxuICBnZXRSZWdpb25PdmVybGF5KCk6IElSZWdpb25PdmVybGF5IHwgbnVsbDtcbiAgZ2V0SXNvc3VyZmFjZUNvbnRyb2xzKCk6IElJc29zdXJmYWNlQ29udHJvbHMgfCBudWxsO1xuICBnZXRTdXJmYWNlM2RDb250cm9scygpOiBJU3VyZmFjZTNkQ29udHJvbHMgfCBudWxsO1xuICBnZXRJbnRlbnNpdHlDb250cm9scygpOiBJSW50ZW5zaXR5Q29udHJvbHMgfCBudWxsO1xuICBnZXRQbG90TW9kZVZpZXdwb3J0PygpOiBQbG90TW9kZVZpZXdwb3J0IHwgbnVsbDtcbiAgLyoqIE5hdmlnYXRvciAvIGltYWdlIHNtb290aGluZywgb3IgbnVsbCB3aGVuIHRoZSBiYWNrZW5kIGhhcyBuZWl0aGVyIChQbG90bHkpLiAqL1xuICBnZXRPc2RWaWV3T3B0aW9ucygpOiBJT3NkVmlld09wdGlvbnMgfCBudWxsO1xuICAvKiogVGhlIDNEIGRlY2ltYXRlIGZhY3Rvciwgb3IgbnVsbCB3aGVuIHRoZSBiYWNrZW5kIHJlbmRlcnMgbm8gdm9sdW1lcy4gKi9cbiAgZ2V0Vm9sdW1lUmVzb2x1dGlvbigpOiBJVm9sdW1lUmVzb2x1dGlvbiB8IG51bGw7XG4gIC8qKiBXaGVyZSB0aGUgdmlldyBzZXR0bGVkLCBmb3IgdGhlIGludGVuc2l0eSBpbnNldCdzIHJlLXNhbXBsaW5nOyBudWxsIHdoZW4gdGhlXG4gICAqICBiYWNrZW5kIHJlLXNhbXBsZXMgb24gaXRzIG93biAoUGxvdGx5J3MgaGlnaC1kZWYgem9vbSkuIFRoZSBzYW1wbGluZyBpdHNlbGYgaXNcbiAgICogIHRoZSByb3V0ZXIncyAoSW50ZW5zaXR5UHJvZmlsZVNlcnZpY2UpLiAqL1xuICBnZXRJbnRlbnNpdHlTYW1wbGluZygpOiBJSW50ZW5zaXR5Vmlld3BvcnRTb3VyY2UgfCBudWxsO1xufVxuXG4vKipcbiAqIFdoYXQgYSBtb3VudGVkIGA8dmlzdWFsaXplcj5gIGhhbmRzIGl0cyBob3N0IHRocm91Z2hcbiAqIGBJbWFnZVN0YXRlUG9ydC5zZXREaWFncmFtKClgIOKAlCBhIHNtYWxsLCB0eXBlZCBzdXJmYWNlIHJhdGhlciB0aGFuIHRoZSBjb21wb25lbnRcbiAqIGl0c2VsZiwgd2hvc2UgZXZlcnkgcHVibGljIG1lbWJlciB3b3VsZCBvdGhlcndpc2UgYmUgZGUtZmFjdG8gQVBJLiBDbGVhcmVkXG4gKiAoYHNldERpYWdyYW0obnVsbClgKSB3aGVuIHRoZSB2aXN1YWxpemVyIGlzIGRlc3Ryb3llZC4gSG9zdHMgdGhhdCBjYW4gaW5qZWN0XG4gKiB7QGxpbmsgVklTVUFMSVpFUn0gLyBgUkVHSU9OX0VESVRPUl9BUElgIGRpcmVjdGx5IG5lZWQgbm90IHVzZSBpdCBhdCBhbGwuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVmlzdWFsaXplckhhbmRsZSB7XG4gIC8qKiBUaGUgdmlzdWFsaXplciBjaGFpbiB0aGlzIGA8dmlzdWFsaXplcj5gIHJlbmRlcnMgdGhyb3VnaC4gKi9cbiAgcmVhZG9ubHkgdmlzdWFsaXplcjogSVZpc3VhbGl6ZXI7XG4gIC8qKiBAZGVwcmVjYXRlZCBVc2Uge0BsaW5rIHZpc3VhbGl6ZXJ9LiBLZXB0IGZvciBob3N0cyB0aGF0IHJlYWQgdGhlIGNvbXBvbmVudCdzXG4gICAqICBmb3JtZXIgYHBsb3RTZXJ2aWNlYCBmaWVsZCBvZmYgdGhlIHJlZ2lzdGVyZWQgb2JqZWN0LiAqL1xuICByZWFkb25seSBwbG90U2VydmljZTogSVZpc3VhbGl6ZXI7XG4gIC8qKiBXaGV0aGVyIGFueSByZWdpb24gKGFubm90YXRpb24gb3IgaW50ZW5zaXR5IGxpbmUpIGV4aXN0cyBvbiB0aGUgY3VycmVudCBpbWFnZS4gKi9cbiAgaGFzUmVnaW9ucygpOiBib29sZWFuO1xuICAvKiogVGhlIGN1cnJlbnQgcmVnaW9ucyBhcyBwb2x5Z29ucywgZm9yIGEgc2VydmVyIHJlcXVlc3QgKGNyb3AgLyBwcm9jZXNzaW5nKS4gKi9cbiAgZ2V0UmVnaW9uUG9seWdvbnMoKTogUG9seWdvbltdO1xufVxuXG4vKipcbiAqIERJIHRva2VuIGZvciB0aGUgYWN0aXZlIHZpc3VhbGl6YXRpb24gYmFja2VuZC4gQmluZCBpdCAoYHVzZUV4aXN0aW5nYCkgdG8gdGhlXG4gKiBgUm91dGluZ1Zpc3VhbGl6ZXJTZXJ2aWNlYCwgd2hpY2ggc2VsZWN0cyBQbG90bHkgdnMgT3BlblNlYWRyYWdvbiBwZXIgcGxvdFxuICogdHlwZS4gQ29uc3VtZXJzIOKAlCBpbmNsdWRpbmcgdGhpcyBsaWJyYXJ5J3Mgb3duIGBWaXN1YWxpemVyQ29tcG9uZW50YCDigJRcbiAqIGluamVjdCBgSVZpc3VhbGl6ZXJgIHRocm91Z2ggdGhpcyB0b2tlbiByYXRoZXIgdGhhbiB0aGUgY29uY3JldGUgcm91dGVyLCBzb1xuICogdGhlIHJvdXRpbmcvZmFsbGJhY2sgaW1wbGVtZW50YXRpb24gY2FuIGNoYW5nZSB3aXRob3V0IHRvdWNoaW5nIGNvbnN0cnVjdG9ycy5cbiAqL1xuZXhwb3J0IGNvbnN0IFZJU1VBTElaRVIgPSBuZXcgSW5qZWN0aW9uVG9rZW48SVZpc3VhbGl6ZXI+KCdWSVNVQUxJWkVSJyk7XG4iXX0=
@@ -1,4 +1,4 @@
1
1
  import { InjectionToken } from '@angular/core';
2
2
  /** DI token for the host's {@link VizConfig}. Required by the router. */
3
3
  export const VIZ_CONFIG = new InjectionToken('VIZ_CONFIG');
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidml6LWNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvY29udHJhY3RzL3Zpei1jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQTBCL0MseUVBQXlFO0FBQ3pFLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxJQUFJLGNBQWMsQ0FBWSxZQUFZLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8qKlxuICogU3RhdGljIGNvbmZpZ3VyYXRpb24gdGhlIHZpc3VhbGl6YXRpb24gbGlicmFyeSBuZWVkcyBmcm9tIHRoZSBob3N0LCBzdXBwbGllZFxuICogdmlhIERJIHNvIHRoZSBsaWJyYXJ5IG5ldmVyIGltcG9ydHMgdGhlIGFwcCdzIGBlbnZpcm9ubWVudGAuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVml6Q29uZmlnIHtcbiAgLyoqIEJhc2UgVVJMIG9mIHRoZSB0aWxlL2Nyb3Agc2VydmVyIChgL3RpbGVgLCBgL3RpbGVzL2luZm9gLCB6b29tKS4gKi9cbiAgc2xpZGVDcm9wU2VydmVyOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBPcHRpb25hbCBDU1Mgc2VsZWN0b3IgZm9yIGEgaG9zdCBlbGVtZW50IHdob3NlIGN1cnJlbnQgd2lkdGggdGhlIFJlZ2lvblxuICAgKiBFZGl0b3IgZGlhbG9nIHNob3VsZCBtYXRjaCB3aGVuIGl0IGZpcnN0IG9wZW5zIChlLmcuIHRoZSBhcHAncyByaWdodFxuICAgKiBwYW5lbCkuIE1lYXN1cmVkIG9uY2UgcGVyIG9wZW4g4oCUIGl0IGRvZXMgbm90IHRyYWNrIGxhdGVyIHJlc2l6ZXMuIFdoZW5cbiAgICogYWJzZW50IG9yIHRoZSBlbGVtZW50IGlzbid0IGZvdW5kLCB0aGUgZGlhbG9nIGZhbGxzIGJhY2sgdG8gYSBxdWFydGVyIG9mXG4gICAqIHRoZSBwYWdlIHdpZHRoICgyNXZ3KS5cbiAgICovXG4gIHJlZ2lvbkVkaXRvcldpZHRoU2VsZWN0b3I/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBPcHQgaW4gdG8gdGhlIGV4cGVyaW1lbnRhbCBXZWJHUFUgKipuYXBhcmktanMqKiBiYWNrZW5kIGZvciB0aGUgSU1BR0UgcGxvdCB0eXBlXG4gICAqIChqaXQtdWkjMTAyKS4gV2hlbiBgdHJ1ZWAsIHRoZSByb3V0ZXIgcmVuZGVycyBpbWFnZXMgdGhyb3VnaCBuYXBhcmktanMgd2l0aCBPcGVuU2VhZHJhZ29uXG4gICAqIGFzIHRoZSBmYWxsYmFjazsgd2hlbiBhYnNlbnQvZmFsc2UsIE9wZW5TZWFkcmFnb24gcmVtYWlucyB0aGUgZGVmYXVsdC4gT3RoZXIgcGxvdCB0eXBlc1xuICAgKiBhcmUgdW5hZmZlY3RlZC5cbiAgICovXG4gIHVzZU5hcGFyaVJlbmRlcmVyPzogYm9vbGVhbjtcbn1cblxuLyoqIERJIHRva2VuIGZvciB0aGUgaG9zdCdzIHtAbGluayBWaXpDb25maWd9LiBSZXF1aXJlZCBieSB0aGUgcm91dGVyLiAqL1xuZXhwb3J0IGNvbnN0IFZJWl9DT05GSUcgPSBuZXcgSW5qZWN0aW9uVG9rZW48Vml6Q29uZmlnPignVklaX0NPTkZJRycpO1xuIl19
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidml6LWNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvY29udHJhY3RzL3Zpei1jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQWtDL0MseUVBQXlFO0FBQ3pFLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxJQUFJLGNBQWMsQ0FBWSxZQUFZLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8qKlxuICogU3RhdGljIGNvbmZpZ3VyYXRpb24gdGhlIHZpc3VhbGl6YXRpb24gbGlicmFyeSBuZWVkcyBmcm9tIHRoZSBob3N0LCBzdXBwbGllZFxuICogdmlhIERJIHNvIHRoZSBsaWJyYXJ5IG5ldmVyIGltcG9ydHMgdGhlIGFwcCdzIGBlbnZpcm9ubWVudGAuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVml6Q29uZmlnIHtcbiAgLyoqIEJhc2UgVVJMIG9mIHRoZSB0aWxlL2Nyb3Agc2VydmVyIChgL3RpbGVgLCBgL3RpbGVzL2luZm9gLCB6b29tKS4gKi9cbiAgc2xpZGVDcm9wU2VydmVyOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBPcHRpb25hbCBDU1Mgc2VsZWN0b3IgZm9yIGEgaG9zdCBlbGVtZW50IHdob3NlIGN1cnJlbnQgd2lkdGggdGhlIFJlZ2lvblxuICAgKiBFZGl0b3IgZGlhbG9nIHNob3VsZCBtYXRjaCB3aGVuIGl0IGZpcnN0IG9wZW5zIChlLmcuIHRoZSBhcHAncyByaWdodFxuICAgKiBwYW5lbCkuIE1lYXN1cmVkIG9uY2UgcGVyIG9wZW4g4oCUIGl0IGRvZXMgbm90IHRyYWNrIGxhdGVyIHJlc2l6ZXMuIFdoZW5cbiAgICogYWJzZW50IG9yIHRoZSBlbGVtZW50IGlzbid0IGZvdW5kLCB0aGUgZGlhbG9nIGZhbGxzIGJhY2sgdG8gYSBxdWFydGVyIG9mXG4gICAqIHRoZSBwYWdlIHdpZHRoICgyNXZ3KS5cbiAgICovXG4gIHJlZ2lvbkVkaXRvcldpZHRoU2VsZWN0b3I/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBPcHQgaW4gdG8gdGhlIGV4cGVyaW1lbnRhbCBXZWJHUFUgKipuYXBhcmktanMqKiBiYWNrZW5kIGZvciB0aGUgSU1BR0UgcGxvdCB0eXBlXG4gICAqIChqaXQtdWkjMTAyKS4gV2hlbiBgdHJ1ZWAsIHRoZSByb3V0ZXIgcmVuZGVycyBpbWFnZXMgdGhyb3VnaCBuYXBhcmktanMgd2l0aCBPcGVuU2VhZHJhZ29uXG4gICAqIGFzIHRoZSBmYWxsYmFjazsgd2hlbiBhYnNlbnQvZmFsc2UsIE9wZW5TZWFkcmFnb24gcmVtYWlucyB0aGUgZGVmYXVsdC4gT3RoZXIgcGxvdCB0eXBlc1xuICAgKiBhcmUgdW5hZmZlY3RlZC5cbiAgICovXG4gIHVzZU5hcGFyaVJlbmRlcmVyPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIEFuIGltYWdlJ3MgUk9JIEdlb0pTT04gKGByb2lKc29uU3RyYCwgb3IgYSBzbGljZSdzIGByb2lKc29uU3Ryc1t6XWApIGF0IGxlYXN0IHRoaXMgbWFueVxuICAgKiBjaGFyYWN0ZXJzIGxvbmcgbG9hZHMgYXMgYSB0aWxlZCByZWdpb24gc291cmNlIHJhdGhlciB0aGFuIGFzIHJlZ2lvbnM6IGRyYXduIGZyb20gdGhlIHRpbGVzXG4gICAqIGluIHZpZXcgYXQgdGhlIHpvb20ncyBsZXZlbCBvZiBkZXRhaWwgKE9wZW5TZWFkcmFnb24gYW5kIG5hcGFyaTsgUGxvdGx5IGRvZXMgbm90IGRyYXcgaXQpLFxuICAgKiBlYWNoIGZlYXR1cmUgam9pbmluZyB0aGUgcmVnaW9ucyB3aGVuIGl0IGlzIHNlbGVjdGVkIG9yIGVkaXRlZC4gRGVmYXVsdCAxIDAwMCAwMDA7IDAgbWFrZXNcbiAgICogZXZlcnkgUk9JIGZpbGUgYSBzb3VyY2UsIGBJbmZpbml0eWAgbm9uZS5cbiAgICovXG4gIHJlZ2lvblNvdXJjZU1pbkNoYXJzPzogbnVtYmVyO1xufVxuXG4vKiogREkgdG9rZW4gZm9yIHRoZSBob3N0J3Mge0BsaW5rIFZpekNvbmZpZ30uIFJlcXVpcmVkIGJ5IHRoZSByb3V0ZXIuICovXG5leHBvcnQgY29uc3QgVklaX0NPTkZJRyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxWaXpDb25maWc+KCdWSVpfQ09ORklHJyk7XG4iXX0=