@kepler.gl/components 3.3.0-alpha.7 → 3.3.0-alpha.9

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 (111) hide show
  1. package/dist/cjs/common/data-table/grid.js +2 -2
  2. package/dist/cjs/common/data-table/index.js +3 -3
  3. package/dist/cjs/common/file-uploader/file-upload.js +251 -40
  4. package/dist/cjs/common/icons/circle.js +54 -0
  5. package/dist/cjs/common/icons/index.js +8 -1
  6. package/dist/cjs/common/item-selector/item-selector.js +2 -2
  7. package/dist/cjs/common/portaled.js +3 -3
  8. package/dist/cjs/common/time-range-slider.js +2 -2
  9. package/dist/cjs/common/timeline-slider.js +2 -2
  10. package/dist/cjs/editor/editor.js +2 -2
  11. package/dist/cjs/effects/effect-configurator.js +2 -2
  12. package/dist/cjs/effects/effect-manager.js +32 -17
  13. package/dist/cjs/effects/effect-time-configurator.js +110 -42
  14. package/dist/cjs/filters/filter-panels/polygon-filter-panel.js +2 -2
  15. package/dist/cjs/filters/time-widget.js +2 -2
  16. package/dist/cjs/kepler-gl.js +6 -2
  17. package/dist/cjs/map/layer-hover-info.js +2 -2
  18. package/dist/cjs/map/map-control.js +2 -2
  19. package/dist/cjs/map/map-draw-panel.js +10 -1
  20. package/dist/cjs/map-container.js +2 -2
  21. package/dist/cjs/map-view-state-context.js +3 -3
  22. package/dist/cjs/modal-container.js +2 -2
  23. package/dist/cjs/modals/cloud-components/cloud-storage-disclaimer.js +24 -0
  24. package/dist/cjs/modals/cloud-tile.js +39 -10
  25. package/dist/cjs/modals/export-map-modal/components.js +16 -7
  26. package/dist/cjs/modals/export-map-modal/export-html-map.js +5 -9
  27. package/dist/cjs/modals/export-map-modal/export-json-map.js +4 -8
  28. package/dist/cjs/modals/export-map-modal/export-map-modal.js +21 -16
  29. package/dist/cjs/modals/image-modal-container.js +2 -2
  30. package/dist/cjs/modals/load-data-modal.js +3 -3
  31. package/dist/cjs/modals/load-storage-map.js +9 -6
  32. package/dist/cjs/modals/save-map-modal.js +4 -3
  33. package/dist/cjs/modals/share-map-modal.js +5 -4
  34. package/dist/cjs/modals/swipe-export-video-preview.js +2 -2
  35. package/dist/cjs/notification-panel/notification-item.js +58 -12
  36. package/dist/cjs/plot-container.js +12 -5
  37. package/dist/cjs/remote-dataset-refresh-controller.js +50 -0
  38. package/dist/cjs/side-panel/common/dataset-info.js +187 -8
  39. package/dist/cjs/side-panel/common/dataset-refresh-progress.js +63 -0
  40. package/dist/cjs/side-panel/common/dataset-title.js +76 -13
  41. package/dist/cjs/side-panel/common/source-data-catalog.js +31 -6
  42. package/dist/cjs/side-panel/filter-manager.js +7 -3
  43. package/dist/cjs/side-panel/filter-panel/filter-panel.js +2 -2
  44. package/dist/cjs/side-panel/layer-manager.js +14 -4
  45. package/dist/cjs/side-panel/layer-panel/custom-palette.js +2 -2
  46. package/dist/cjs/side-panel/layer-panel/dataset-layer-section.js +14 -4
  47. package/dist/cjs/side-panel/layer-panel/dataset-section.js +7 -3
  48. package/dist/cjs/side-panel/layer-panel/layer-configurator.js +49 -35
  49. package/dist/cjs/side-panel/layer-panel/vector-tile-layer-configurator.js +4 -3
  50. package/dist/common/icons/circle.d.ts +10 -0
  51. package/dist/common/icons/index.d.ts +1 -0
  52. package/dist/effects/effect-manager.d.ts +1 -1
  53. package/dist/esm/common/data-table/grid.js +2 -2
  54. package/dist/esm/common/data-table/index.js +3 -3
  55. package/dist/esm/common/file-uploader/file-upload.js +252 -41
  56. package/dist/esm/common/icons/circle.js +48 -0
  57. package/dist/esm/common/icons/index.js +2 -1
  58. package/dist/esm/common/item-selector/item-selector.js +2 -2
  59. package/dist/esm/common/portaled.js +3 -3
  60. package/dist/esm/common/time-range-slider.js +2 -2
  61. package/dist/esm/common/timeline-slider.js +2 -2
  62. package/dist/esm/editor/editor.js +2 -2
  63. package/dist/esm/effects/effect-configurator.js +2 -2
  64. package/dist/esm/effects/effect-manager.js +34 -19
  65. package/dist/esm/effects/effect-time-configurator.js +111 -43
  66. package/dist/esm/filters/filter-panels/polygon-filter-panel.js +2 -2
  67. package/dist/esm/filters/time-widget.js +2 -2
  68. package/dist/esm/kepler-gl.js +6 -2
  69. package/dist/esm/map/layer-hover-info.js +2 -2
  70. package/dist/esm/map/map-control.js +2 -2
  71. package/dist/esm/map/map-draw-panel.js +11 -2
  72. package/dist/esm/map-container.js +2 -2
  73. package/dist/esm/map-view-state-context.js +3 -3
  74. package/dist/esm/modal-container.js +2 -2
  75. package/dist/esm/modals/cloud-components/cloud-storage-disclaimer.js +19 -0
  76. package/dist/esm/modals/cloud-tile.js +39 -10
  77. package/dist/esm/modals/export-map-modal/components.js +16 -7
  78. package/dist/esm/modals/export-map-modal/export-html-map.js +6 -10
  79. package/dist/esm/modals/export-map-modal/export-json-map.js +5 -9
  80. package/dist/esm/modals/export-map-modal/export-map-modal.js +21 -14
  81. package/dist/esm/modals/image-modal-container.js +2 -2
  82. package/dist/esm/modals/load-data-modal.js +3 -3
  83. package/dist/esm/modals/load-storage-map.js +8 -3
  84. package/dist/esm/modals/save-map-modal.js +4 -3
  85. package/dist/esm/modals/share-map-modal.js +5 -4
  86. package/dist/esm/modals/swipe-export-video-preview.js +2 -2
  87. package/dist/esm/notification-panel/notification-item.js +60 -14
  88. package/dist/esm/plot-container.js +12 -5
  89. package/dist/esm/remote-dataset-refresh-controller.js +44 -0
  90. package/dist/esm/side-panel/common/dataset-info.js +186 -9
  91. package/dist/esm/side-panel/common/dataset-refresh-progress.js +56 -0
  92. package/dist/esm/side-panel/common/dataset-title.js +77 -14
  93. package/dist/esm/side-panel/common/source-data-catalog.js +29 -6
  94. package/dist/esm/side-panel/filter-manager.js +7 -3
  95. package/dist/esm/side-panel/filter-panel/filter-panel.js +2 -2
  96. package/dist/esm/side-panel/layer-manager.js +14 -4
  97. package/dist/esm/side-panel/layer-panel/custom-palette.js +2 -2
  98. package/dist/esm/side-panel/layer-panel/dataset-layer-section.js +14 -4
  99. package/dist/esm/side-panel/layer-panel/dataset-section.js +7 -3
  100. package/dist/esm/side-panel/layer-panel/layer-configurator.js +49 -35
  101. package/dist/esm/side-panel/layer-panel/vector-tile-layer-configurator.js +4 -3
  102. package/dist/kepler-gl.d.ts +1 -0
  103. package/dist/modals/cloud-components/cloud-storage-disclaimer.d.ts +2 -0
  104. package/dist/modals/export-map-modal/components.d.ts +14 -0
  105. package/dist/remote-dataset-refresh-controller.d.ts +11 -0
  106. package/dist/side-panel/common/dataset-info.d.ts +10 -0
  107. package/dist/side-panel/common/dataset-refresh-progress.d.ts +11 -0
  108. package/dist/side-panel/common/dataset-title.d.ts +5 -0
  109. package/dist/side-panel/common/source-data-catalog.d.ts +3 -0
  110. package/dist/side-panel/layer-panel/dataset-section.d.ts +2 -0
  111. package/package.json +17 -18
@@ -10,7 +10,7 @@ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/sli
10
10
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
11
11
  var _react = _interopRequireWildcard(require("react"));
12
12
  var _styledComponents = _interopRequireDefault(require("styled-components"));
13
- var _throttle = _interopRequireDefault(require("lodash/throttle"));
13
+ var _throttle = _interopRequireDefault(require("es-toolkit/compat/throttle"));
14
14
  var _classnames = _interopRequireDefault(require("classnames"));
15
15
  var _utils = require("@kepler.gl/utils");
16
16
  var _styles = require("@kepler.gl/styles");
@@ -137,4 +137,4 @@ function TimelineSliderFactory() {
137
137
  return TimelineSlider;
138
138
  }
139
139
  var _default = exports["default"] = TimelineSliderFactory;
140
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfdGhyb3R0bGUiLCJfY2xhc3NuYW1lcyIsIl91dGlscyIsIl9zdHlsZXMiLCJfY29uc3RhbnRzIiwiX3NsaWRlciIsIl90ZW1wbGF0ZU9iamVjdCIsIl90ZW1wbGF0ZU9iamVjdDIiLCJfdGVtcGxhdGVPYmplY3QzIiwiX3RlbXBsYXRlT2JqZWN0NCIsIl90ZW1wbGF0ZU9iamVjdDUiLCJlIiwidCIsIldlYWtNYXAiLCJyIiwibiIsIl9fZXNNb2R1bGUiLCJvIiwiaSIsImYiLCJfX3Byb3RvX18iLCJfdHlwZW9mIiwiaGFzIiwiZ2V0Iiwic2V0IiwiX3QiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsIm5vb3AiLCJTTElERVJfTUFSR0lOX1BBTE0iLCJBbmltYXRpb25Db250cm9sU2xpZGVyIiwic3R5bGVkIiwiZGl2IiwiX3RhZ2dlZFRlbXBsYXRlTGl0ZXJhbDIiLCJTbGlkZXJXcmFwcGVyIiwibWVkaWEiLCJwYWxtIiwiU3R5bGVkU2xpZGVyIiwiU2xpZGVyIiwiU3R5bGVkRG9tYWluIiwiYXR0cnMiLCJwcm9wcyIsImNsYXNzTmFtZSIsImNsYXNzbmFtZXMiLCJ0aGVtZSIsInRpdGxlVGV4dENvbG9yIiwiUFJPR1JFU1NfQkFSX0hFSUdIVCIsIlRpbWVsaW5lU2xpZGVyRmFjdG9yeSIsIlRpbWVsaW5lU2xpZGVyIiwiX3JlZiIsInRpbWVsaW5lIiwic2V0VGltZWxpbmVWYWx1ZSIsIl9yZWYkZW5hYmxlQmFyRHJhZyIsImVuYWJsZUJhckRyYWciLCJfcmVmJHNob3dEb21haW5UaW1lcyIsInNob3dEb21haW5UaW1lcyIsIl9yZWYkaGVpZ2h0IiwiaGVpZ2h0IiwiX3JlZiRjbGFzc05hbWUiLCJzdHlsZSIsIm9uVGhyb3R0bGVVcGRhdGUiLCJ1c2VNZW1vIiwidGhyb3R0bGUiLCJzdGVwIiwiZG9tYWluIiwidmFsdWUiLCJ0aW1lRm9ybWF0IiwiZGVmYXVsdFRpbWVGb3JtYXQiLCJ0aW1lem9uZSIsImFuaW1hdGlvbldpbmRvdyIsIm1hcmtzIiwiaXNSYW5nZWQiLCJBcnJheSIsImlzQXJyYXkiLCJsZW5ndGgiLCJBTklNQVRJT05fV0lORE9XIiwiaW50ZXJ2YWwiLCJfdXNlTWVtbyIsIl91c2VNZW1vMiIsIl9zbGljZWRUb0FycmF5MiIsInZhbHVlMCIsInZhbHVlMSIsIl91c2VNZW1vMyIsImNsYW1wIiwiX3VzZU1lbW80IiwiZGlzcGxheVZhbHVlMCIsImRpc3BsYXlWYWx1ZTEiLCJfdXNlTWVtbzUiLCJuZXdWYWx1ZSIsIl91c2VNZW1vNiIsIm9uU2xpZGVyMENoYW5nZSIsIm9uU2xpZGVyMUNoYW5nZSIsInRpbWVsaW5lU2xpZGVyU3R5bGUiLCJjb25jYXQiLCJfdXNlTWVtbzciLCJoYXNVc2VyRm9ybWF0IiwiY3VycmVudEZvcm1hdCIsIkRFRkFVTFRfVElNRV9GT1JNQVQiLCJkYXRlRnVuYyIsImRhdGV0aW1lRm9ybWF0dGVyIiwiX3VzZU1lbW84IiwidGltZVN0YXJ0IiwidGltZUVuZCIsInJlcXVpcmVzUmFuZ2VTbGlkZXIiLCJjcmVhdGVFbGVtZW50IiwidW5kZWZpbmVkIiwibWluVmFsdWUiLCJtYXhWYWx1ZSIsIl9kZWZhdWx0IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tb24vdGltZWxpbmUtc2xpZGVyLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQgUmVhY3QsIHt1c2VNZW1vfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgc3R5bGVkLCB7SVN0eWxlZENvbXBvbmVudH0gZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnO1xuaW1wb3J0IHRocm90dGxlIGZyb20gJ2xvZGFzaC90aHJvdHRsZSc7XG5pbXBvcnQgY2xhc3NuYW1lcyBmcm9tICdjbGFzc25hbWVzJztcbmltcG9ydCB7Y2xhbXAsIGRhdGV0aW1lRm9ybWF0dGVyfSBmcm9tICdAa2VwbGVyLmdsL3V0aWxzJztcbmltcG9ydCB7bWVkaWF9IGZyb20gJ0BrZXBsZXIuZ2wvc3R5bGVzJztcbmltcG9ydCB7REVGQVVMVF9USU1FX0ZPUk1BVCwgQU5JTUFUSU9OX1dJTkRPV30gZnJvbSAnQGtlcGxlci5nbC9jb25zdGFudHMnO1xuaW1wb3J0IHtUaW1lbGluZX0gZnJvbSAnQGtlcGxlci5nbC90eXBlcyc7XG5pbXBvcnQgU2xpZGVyIGZyb20gJy4vc2xpZGVyL3NsaWRlcic7XG5pbXBvcnQge0Jhc2VDb21wb25lbnRQcm9wc30gZnJvbSAnLi4vdHlwZXMnO1xuXG5mdW5jdGlvbiBub29wKCkge1xuICByZXR1cm47XG59XG5cbmNvbnN0IFNMSURFUl9NQVJHSU5fUEFMTSA9IDY7XG5cbmV4cG9ydCB0eXBlIEFuaW1hdGlvbkNvbnRyb2xTbGlkZXJQcm9wcyA9IEJhc2VDb21wb25lbnRQcm9wcztcblxuY29uc3QgQW5pbWF0aW9uQ29udHJvbFNsaWRlcjogSVN0eWxlZENvbXBvbmVudDwnd2ViJywgQW5pbWF0aW9uQ29udHJvbFNsaWRlclByb3BzPiA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5gO1xuXG5jb25zdCBTbGlkZXJXcmFwcGVyID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBmbGV4LWdyb3c6IDE7XG4gIG1hcmdpbjogMCA0cHg7XG4gIHBhZGRpbmc6IDAgNnB4O1xuXG4gICR7bWVkaWEucGFsbWBcbiAgICBtYXJnaW46IDAgJHtTTElERVJfTUFSR0lOX1BBTE19cHg7XG4gIGB9XG5gO1xuXG5jb25zdCBTdHlsZWRTbGlkZXIgPSBzdHlsZWQoU2xpZGVyKWBcbiAgLmtnLXJhbmdlLXNsaWRlcl9fYmFyIHtcbiAgICAvLyBjaGFuZ2UgY29sb3JzXG4gIH1cbmA7XG5cbmNvbnN0IFN0eWxlZERvbWFpbiA9IHN0eWxlZC5kaXYuYXR0cnMocHJvcHMgPT4gKHtcbiAgY2xhc3NOYW1lOiBjbGFzc25hbWVzKCdhbmltYXRpb24tY29udHJvbF9fdGltZS1kb21haW4nLCBwcm9wcy5jbGFzc05hbWUpXG59KSlgXG4gIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnRpdGxlVGV4dENvbG9yfTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgZm9udC1zaXplOiAxMHB4O1xuICBmbGV4LXNocmluazogMDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbmA7XG5cbmNvbnN0IFBST0dSRVNTX0JBUl9IRUlHSFQgPSA4O1xuXG5pbnRlcmZhY2UgVGltZWxpbmVTbGlkZXJQcm9wcyB7XG4gIHRpbWVsaW5lOiBUaW1lbGluZTtcbiAgc2V0VGltZWxpbmVWYWx1ZTogKHZhbHVlOiBbbnVtYmVyXSB8IFtudW1iZXIsIG51bWJlcl0pID0+IHZvaWQ7XG4gIGVuYWJsZUJhckRyYWc/OiBib29sZWFuO1xuICBzaG93RG9tYWluVGltZXM/OiBib29sZWFuO1xuICBoZWlnaHQ/OiBudW1iZXI7XG4gIGNsYXNzTmFtZT86IHN0cmluZyB8IG51bGw7XG4gIHN0eWxlPzogb2JqZWN0O1xufVxuXG5mdW5jdGlvbiBUaW1lbGluZVNsaWRlckZhY3RvcnkoKSB7XG4gIGNvbnN0IFRpbWVsaW5lU2xpZGVyOiBSZWFjdC5GQzxUaW1lbGluZVNsaWRlclByb3BzPiA9ICh7XG4gICAgdGltZWxpbmUsIC8vIHRpbWVsaW5lIGNhbiBiZSBhIHVuaW9uIG9mIGZpbHRlciBhbmQgYW5pbWF0aW9uQ29uZmlnXG4gICAgLy8gd2UgY2FuIHBhc3MgdGltZWxpbmUgdG8gYSBob29rIGFuZCBnZXQgYmFjayB2YWx1ZXMgYW5kIGNvbnRyb2xsZXJzXG4gICAgc2V0VGltZWxpbmVWYWx1ZSxcbiAgICBlbmFibGVCYXJEcmFnID0gdHJ1ZSxcbiAgICBzaG93RG9tYWluVGltZXMgPSB0cnVlLFxuICAgIGhlaWdodCA9IFBST0dSRVNTX0JBUl9IRUlHSFQsXG4gICAgY2xhc3NOYW1lID0gbnVsbCxcbiAgICBzdHlsZVxuICB9KSA9PiB7XG4gICAgY29uc3Qgb25UaHJvdHRsZVVwZGF0ZSA9IHVzZU1lbW8oKCkgPT4gdGhyb3R0bGUoc2V0VGltZWxpbmVWYWx1ZSwgMjApLCBbc2V0VGltZWxpbmVWYWx1ZV0pO1xuXG4gICAgY29uc3Qge3N0ZXAsIGRvbWFpbiwgdmFsdWUsIHRpbWVGb3JtYXQsIGRlZmF1bHRUaW1lRm9ybWF0LCB0aW1lem9uZSwgYW5pbWF0aW9uV2luZG93LCBtYXJrc30gPVxuICAgICAgdGltZWxpbmU7XG5cbiAgICBjb25zdCBpc1JhbmdlZCA9IHVzZU1lbW8oXG4gICAgICAoKSA9PlxuICAgICAgICBBcnJheS5pc0FycmF5KHZhbHVlKSAmJiB2YWx1ZS5sZW5ndGggPT09IDIgJiYgYW5pbWF0aW9uV2luZG93ICE9PSBBTklNQVRJT05fV0lORE9XLmludGVydmFsLFxuICAgICAgW2FuaW1hdGlvbldpbmRvdywgdmFsdWVdXG4gICAgKTtcblxuICAgIGNvbnN0IFt2YWx1ZTAsIHZhbHVlMV06IFtudW1iZXIsIG51bWJlcl0gPSB1c2VNZW1vKFxuICAgICAgKCkgPT4gW2lzUmFuZ2VkID8gdmFsdWVbMF0gOiBudWxsLCBpc1JhbmdlZCA/IHZhbHVlWzFdIDogdmFsdWVbMF1dLFxuICAgICAgW2lzUmFuZ2VkLCB2YWx1ZV1cbiAgICApO1xuXG4gICAgY29uc3QgW2Rpc3BsYXlWYWx1ZTAsIGRpc3BsYXlWYWx1ZTFdOiBbbnVtYmVyLCBudW1iZXJdID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoIWRvbWFpbikge1xuICAgICAgICByZXR1cm4gW3ZhbHVlMCwgdmFsdWUxXTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIFtpc1JhbmdlZCA/IGNsYW1wKGRvbWFpbiwgdmFsdWUwKSA6IHZhbHVlMCwgY2xhbXAoZG9tYWluLCB2YWx1ZTEpXTtcbiAgICB9LCBbZG9tYWluLCBpc1JhbmdlZCwgdmFsdWUwLCB2YWx1ZTFdKTtcblxuICAgIGNvbnN0IFtvblNsaWRlcjBDaGFuZ2UsIG9uU2xpZGVyMUNoYW5nZV0gPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmICghZG9tYWluKSByZXR1cm4gW25vb3AsIG5vb3BdO1xuICAgICAgcmV0dXJuIFtcbiAgICAgICAgaXNSYW5nZWRcbiAgICAgICAgICA/IChuZXdWYWx1ZTogbnVtYmVyKSA9PiBvblRocm90dGxlVXBkYXRlKFtjbGFtcChkb21haW4sIG5ld1ZhbHVlKSwgdmFsdWUxXSlcbiAgICAgICAgICA6IG5vb3AsXG4gICAgICAgIGlzUmFuZ2VkXG4gICAgICAgICAgPyAobmV3VmFsdWU6IG51bWJlcikgPT4gb25UaHJvdHRsZVVwZGF0ZShbdmFsdWUwLCBjbGFtcChkb21haW4sIG5ld1ZhbHVlKV0pXG4gICAgICAgICAgOiAobmV3VmFsdWU6IG51bWJlcikgPT5cbiAgICAgICAgICAgICAgb25UaHJvdHRsZVVwZGF0ZShcbiAgICAgICAgICAgICAgICBhbmltYXRpb25XaW5kb3cgPT09IEFOSU1BVElPTl9XSU5ET1cuaW50ZXJ2YWxcbiAgICAgICAgICAgICAgICAgID8gLy8gZmlsdGVyIHJlcXVpcmVzIGFuIGFycmF5IHdpdGggMiB2YWx1ZXNcbiAgICAgICAgICAgICAgICAgICAgW2NsYW1wKGRvbWFpbiwgbmV3VmFsdWUpLCBjbGFtcChkb21haW4sIG5ld1ZhbHVlKV1cbiAgICAgICAgICAgICAgICAgIDogLy8gYW5pbWF0aW9uQ29uZmlnIG9ubHkgcmVxdWlyZXMgb25lIHZhbHVlXG4gICAgICAgICAgICAgICAgICAgIFtjbGFtcChkb21haW4sIG5ld1ZhbHVlKV1cbiAgICAgICAgICAgICAgKVxuICAgICAgXTtcbiAgICB9LCBbYW5pbWF0aW9uV2luZG93LCBkb21haW4sIGlzUmFuZ2VkLCB2YWx1ZTAsIHZhbHVlMSwgb25UaHJvdHRsZVVwZGF0ZV0pO1xuXG4gICAgY29uc3QgdGltZWxpbmVTbGlkZXJTdHlsZSA9IHVzZU1lbW8oKCkgPT4gKHtoZWlnaHQ6IGAke2hlaWdodH1weGB9KSwgW2hlaWdodF0pO1xuXG4gICAgY29uc3QgW3RpbWVTdGFydCwgdGltZUVuZF0gPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmICghc2hvd0RvbWFpblRpbWVzKSB7XG4gICAgICAgIHJldHVybiBbbnVsbCwgbnVsbF07XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGhhc1VzZXJGb3JtYXQgPSB0eXBlb2YgdGltZUZvcm1hdCA9PT0gJ3N0cmluZyc7XG4gICAgICBjb25zdCBjdXJyZW50Rm9ybWF0ID0gKGhhc1VzZXJGb3JtYXQgPyB0aW1lRm9ybWF0IDogZGVmYXVsdFRpbWVGb3JtYXQpIHx8IERFRkFVTFRfVElNRV9GT1JNQVQ7XG4gICAgICBjb25zdCBkYXRlRnVuYyA9IGRhdGV0aW1lRm9ybWF0dGVyKHRpbWV6b25lKShjdXJyZW50Rm9ybWF0KTtcblxuICAgICAgcmV0dXJuIFtkb21haW4gPyBkYXRlRnVuYyhkb21haW5bMF0pIDogJycsIGRvbWFpbiA/IGRhdGVGdW5jKGRvbWFpblsxXSkgOiAnJ107XG4gICAgfSwgW2RvbWFpbiwgdGltZXpvbmUsIHRpbWVGb3JtYXQsIGRlZmF1bHRUaW1lRm9ybWF0LCBzaG93RG9tYWluVGltZXNdKTtcblxuICAgIGNvbnN0IHJlcXVpcmVzUmFuZ2VTbGlkZXIgPSBpc1JhbmdlZCAmJiBhbmltYXRpb25XaW5kb3cgIT09IEFOSU1BVElPTl9XSU5ET1cuaW50ZXJ2YWw7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPEFuaW1hdGlvbkNvbnRyb2xTbGlkZXJcbiAgICAgICAgc3R5bGU9e3N0eWxlfVxuICAgICAgICBjbGFzc05hbWU9e2NsYXNzbmFtZXMoJ2FuaW1hdGlvbi1jb250cm9sX190aW1lLXNsaWRlcicsIGNsYXNzTmFtZSl9XG4gICAgICA+XG4gICAgICAgIHt0aW1lU3RhcnQgPyAoXG4gICAgICAgICAgPFN0eWxlZERvbWFpbiBjbGFzc05hbWU9XCJkb21haW4tc3RhcnRcIj5cbiAgICAgICAgICAgIDxzcGFuPnt0aW1lU3RhcnR9PC9zcGFuPlxuICAgICAgICAgIDwvU3R5bGVkRG9tYWluPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPFNsaWRlcldyYXBwZXIgY2xhc3NOYW1lPVwiYW5pbWF0aW9uLWNvbnRyb2xfX3NsaWRlclwiPlxuICAgICAgICAgIDxTdHlsZWRTbGlkZXJcbiAgICAgICAgICAgIGlzUmFuZ2VkPXtyZXF1aXJlc1JhbmdlU2xpZGVyfVxuICAgICAgICAgICAgc3RlcD17c3RlcCB8fCB1bmRlZmluZWR9XG4gICAgICAgICAgICBtaW5WYWx1ZT17ZG9tYWluID8gZG9tYWluWzBdIDogMH1cbiAgICAgICAgICAgIG1heFZhbHVlPXtkb21haW4gPyBkb21haW5bMV0gOiAxfVxuICAgICAgICAgICAgZW5hYmxlQmFyRHJhZz17ZW5hYmxlQmFyRHJhZ31cbiAgICAgICAgICAgIHN0eWxlPXt0aW1lbGluZVNsaWRlclN0eWxlfVxuICAgICAgICAgICAgb25TbGlkZXIwQ2hhbmdlPXtvblNsaWRlcjBDaGFuZ2V9XG4gICAgICAgICAgICBvblNsaWRlcjFDaGFuZ2U9e29uU2xpZGVyMUNoYW5nZX1cbiAgICAgICAgICAgIHZhbHVlMD17ZGlzcGxheVZhbHVlMH1cbiAgICAgICAgICAgIHZhbHVlMT17ZGlzcGxheVZhbHVlMX1cbiAgICAgICAgICAgIG1hcmtzPXttYXJrc31cbiAgICAgICAgICAvPlxuICAgICAgICA8L1NsaWRlcldyYXBwZXI+XG4gICAgICAgIHt0aW1lRW5kID8gKFxuICAgICAgICAgIDxTdHlsZWREb21haW4gY2xhc3NOYW1lPVwiZG9tYWluLWVuZFwiPlxuICAgICAgICAgICAgPHNwYW4+e3RpbWVFbmR9PC9zcGFuPlxuICAgICAgICAgIDwvU3R5bGVkRG9tYWluPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvQW5pbWF0aW9uQ29udHJvbFNsaWRlcj5cbiAgICApO1xuICB9O1xuXG4gIHJldHVybiBUaW1lbGluZVNsaWRlcjtcbn1cblxuZXhwb3J0IGRlZmF1bHQgVGltZWxpbmVTbGlkZXJGYWN0b3J5O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBR0EsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsaUJBQUEsR0FBQUMsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFHLFNBQUEsR0FBQUQsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFJLFdBQUEsR0FBQUYsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFLLE1BQUEsR0FBQUwsT0FBQTtBQUNBLElBQUFNLE9BQUEsR0FBQU4sT0FBQTtBQUNBLElBQUFPLFVBQUEsR0FBQVAsT0FBQTtBQUVBLElBQUFRLE9BQUEsR0FBQU4sc0JBQUEsQ0FBQUYsT0FBQTtBQUFxQyxJQUFBUyxlQUFBLEVBQUFDLGdCQUFBLEVBQUFDLGdCQUFBLEVBQUFDLGdCQUFBLEVBQUFDLGdCQUFBLEVBWHJDO0FBQ0E7QUFBQSxTQUFBZCx3QkFBQWUsQ0FBQSxFQUFBQyxDQUFBLDZCQUFBQyxPQUFBLE1BQUFDLENBQUEsT0FBQUQsT0FBQSxJQUFBRSxDQUFBLE9BQUFGLE9BQUEsWUFBQWpCLHVCQUFBLFlBQUFBLHdCQUFBZSxDQUFBLEVBQUFDLENBQUEsU0FBQUEsQ0FBQSxJQUFBRCxDQUFBLElBQUFBLENBQUEsQ0FBQUssVUFBQSxTQUFBTCxDQUFBLE1BQUFNLENBQUEsRUFBQUMsQ0FBQSxFQUFBQyxDQUFBLEtBQUFDLFNBQUEsbUJBQUFULENBQUEsaUJBQUFBLENBQUEsZ0JBQUFVLE9BQUEsQ0FBQVYsQ0FBQSwwQkFBQUEsQ0FBQSxTQUFBUSxDQUFBLE1BQUFGLENBQUEsR0FBQUwsQ0FBQSxHQUFBRyxDQUFBLEdBQUFELENBQUEsUUFBQUcsQ0FBQSxDQUFBSyxHQUFBLENBQUFYLENBQUEsVUFBQU0sQ0FBQSxDQUFBTSxHQUFBLENBQUFaLENBQUEsR0FBQU0sQ0FB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
140
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfdGhyb3R0bGUiLCJfY2xhc3NuYW1lcyIsIl91dGlscyIsIl9zdHlsZXMiLCJfY29uc3RhbnRzIiwiX3NsaWRlciIsIl90ZW1wbGF0ZU9iamVjdCIsIl90ZW1wbGF0ZU9iamVjdDIiLCJfdGVtcGxhdGVPYmplY3QzIiwiX3RlbXBsYXRlT2JqZWN0NCIsIl90ZW1wbGF0ZU9iamVjdDUiLCJlIiwidCIsIldlYWtNYXAiLCJyIiwibiIsIl9fZXNNb2R1bGUiLCJvIiwiaSIsImYiLCJfX3Byb3RvX18iLCJfdHlwZW9mIiwiaGFzIiwiZ2V0Iiwic2V0IiwiX3QiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsIm5vb3AiLCJTTElERVJfTUFSR0lOX1BBTE0iLCJBbmltYXRpb25Db250cm9sU2xpZGVyIiwic3R5bGVkIiwiZGl2IiwiX3RhZ2dlZFRlbXBsYXRlTGl0ZXJhbDIiLCJTbGlkZXJXcmFwcGVyIiwibWVkaWEiLCJwYWxtIiwiU3R5bGVkU2xpZGVyIiwiU2xpZGVyIiwiU3R5bGVkRG9tYWluIiwiYXR0cnMiLCJwcm9wcyIsImNsYXNzTmFtZSIsImNsYXNzbmFtZXMiLCJ0aGVtZSIsInRpdGxlVGV4dENvbG9yIiwiUFJPR1JFU1NfQkFSX0hFSUdIVCIsIlRpbWVsaW5lU2xpZGVyRmFjdG9yeSIsIlRpbWVsaW5lU2xpZGVyIiwiX3JlZiIsInRpbWVsaW5lIiwic2V0VGltZWxpbmVWYWx1ZSIsIl9yZWYkZW5hYmxlQmFyRHJhZyIsImVuYWJsZUJhckRyYWciLCJfcmVmJHNob3dEb21haW5UaW1lcyIsInNob3dEb21haW5UaW1lcyIsIl9yZWYkaGVpZ2h0IiwiaGVpZ2h0IiwiX3JlZiRjbGFzc05hbWUiLCJzdHlsZSIsIm9uVGhyb3R0bGVVcGRhdGUiLCJ1c2VNZW1vIiwidGhyb3R0bGUiLCJzdGVwIiwiZG9tYWluIiwidmFsdWUiLCJ0aW1lRm9ybWF0IiwiZGVmYXVsdFRpbWVGb3JtYXQiLCJ0aW1lem9uZSIsImFuaW1hdGlvbldpbmRvdyIsIm1hcmtzIiwiaXNSYW5nZWQiLCJBcnJheSIsImlzQXJyYXkiLCJsZW5ndGgiLCJBTklNQVRJT05fV0lORE9XIiwiaW50ZXJ2YWwiLCJfdXNlTWVtbyIsIl91c2VNZW1vMiIsIl9zbGljZWRUb0FycmF5MiIsInZhbHVlMCIsInZhbHVlMSIsIl91c2VNZW1vMyIsImNsYW1wIiwiX3VzZU1lbW80IiwiZGlzcGxheVZhbHVlMCIsImRpc3BsYXlWYWx1ZTEiLCJfdXNlTWVtbzUiLCJuZXdWYWx1ZSIsIl91c2VNZW1vNiIsIm9uU2xpZGVyMENoYW5nZSIsIm9uU2xpZGVyMUNoYW5nZSIsInRpbWVsaW5lU2xpZGVyU3R5bGUiLCJjb25jYXQiLCJfdXNlTWVtbzciLCJoYXNVc2VyRm9ybWF0IiwiY3VycmVudEZvcm1hdCIsIkRFRkFVTFRfVElNRV9GT1JNQVQiLCJkYXRlRnVuYyIsImRhdGV0aW1lRm9ybWF0dGVyIiwiX3VzZU1lbW84IiwidGltZVN0YXJ0IiwidGltZUVuZCIsInJlcXVpcmVzUmFuZ2VTbGlkZXIiLCJjcmVhdGVFbGVtZW50IiwidW5kZWZpbmVkIiwibWluVmFsdWUiLCJtYXhWYWx1ZSIsIl9kZWZhdWx0IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tb24vdGltZWxpbmUtc2xpZGVyLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQgUmVhY3QsIHt1c2VNZW1vfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgc3R5bGVkLCB7SVN0eWxlZENvbXBvbmVudH0gZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnO1xuaW1wb3J0IHRocm90dGxlIGZyb20gJ2VzLXRvb2xraXQvY29tcGF0L3Rocm90dGxlJztcbmltcG9ydCBjbGFzc25hbWVzIGZyb20gJ2NsYXNzbmFtZXMnO1xuaW1wb3J0IHtjbGFtcCwgZGF0ZXRpbWVGb3JtYXR0ZXJ9IGZyb20gJ0BrZXBsZXIuZ2wvdXRpbHMnO1xuaW1wb3J0IHttZWRpYX0gZnJvbSAnQGtlcGxlci5nbC9zdHlsZXMnO1xuaW1wb3J0IHtERUZBVUxUX1RJTUVfRk9STUFULCBBTklNQVRJT05fV0lORE9XfSBmcm9tICdAa2VwbGVyLmdsL2NvbnN0YW50cyc7XG5pbXBvcnQge1RpbWVsaW5lfSBmcm9tICdAa2VwbGVyLmdsL3R5cGVzJztcbmltcG9ydCBTbGlkZXIgZnJvbSAnLi9zbGlkZXIvc2xpZGVyJztcbmltcG9ydCB7QmFzZUNvbXBvbmVudFByb3BzfSBmcm9tICcuLi90eXBlcyc7XG5cbmZ1bmN0aW9uIG5vb3AoKSB7XG4gIHJldHVybjtcbn1cblxuY29uc3QgU0xJREVSX01BUkdJTl9QQUxNID0gNjtcblxuZXhwb3J0IHR5cGUgQW5pbWF0aW9uQ29udHJvbFNsaWRlclByb3BzID0gQmFzZUNvbXBvbmVudFByb3BzO1xuXG5jb25zdCBBbmltYXRpb25Db250cm9sU2xpZGVyOiBJU3R5bGVkQ29tcG9uZW50PCd3ZWInLCBBbmltYXRpb25Db250cm9sU2xpZGVyUHJvcHM+ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbmA7XG5cbmNvbnN0IFNsaWRlcldyYXBwZXIgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGZsZXgtZ3JvdzogMTtcbiAgbWFyZ2luOiAwIDRweDtcbiAgcGFkZGluZzogMCA2cHg7XG5cbiAgJHttZWRpYS5wYWxtYFxuICAgIG1hcmdpbjogMCAke1NMSURFUl9NQVJHSU5fUEFMTX1weDtcbiAgYH1cbmA7XG5cbmNvbnN0IFN0eWxlZFNsaWRlciA9IHN0eWxlZChTbGlkZXIpYFxuICAua2ctcmFuZ2Utc2xpZGVyX19iYXIge1xuICAgIC8vIGNoYW5nZSBjb2xvcnNcbiAgfVxuYDtcblxuY29uc3QgU3R5bGVkRG9tYWluID0gc3R5bGVkLmRpdi5hdHRycyhwcm9wcyA9PiAoe1xuICBjbGFzc05hbWU6IGNsYXNzbmFtZXMoJ2FuaW1hdGlvbi1jb250cm9sX190aW1lLWRvbWFpbicsIHByb3BzLmNsYXNzTmFtZSlcbn0pKWBcbiAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUudGl0bGVUZXh0Q29sb3J9O1xuICBmb250LXdlaWdodDogNDAwO1xuICBmb250LXNpemU6IDEwcHg7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuYDtcblxuY29uc3QgUFJPR1JFU1NfQkFSX0hFSUdIVCA9IDg7XG5cbmludGVyZmFjZSBUaW1lbGluZVNsaWRlclByb3BzIHtcbiAgdGltZWxpbmU6IFRpbWVsaW5lO1xuICBzZXRUaW1lbGluZVZhbHVlOiAodmFsdWU6IFtudW1iZXJdIHwgW251bWJlciwgbnVtYmVyXSkgPT4gdm9pZDtcbiAgZW5hYmxlQmFyRHJhZz86IGJvb2xlYW47XG4gIHNob3dEb21haW5UaW1lcz86IGJvb2xlYW47XG4gIGhlaWdodD86IG51bWJlcjtcbiAgY2xhc3NOYW1lPzogc3RyaW5nIHwgbnVsbDtcbiAgc3R5bGU/OiBvYmplY3Q7XG59XG5cbmZ1bmN0aW9uIFRpbWVsaW5lU2xpZGVyRmFjdG9yeSgpIHtcbiAgY29uc3QgVGltZWxpbmVTbGlkZXI6IFJlYWN0LkZDPFRpbWVsaW5lU2xpZGVyUHJvcHM+ID0gKHtcbiAgICB0aW1lbGluZSwgLy8gdGltZWxpbmUgY2FuIGJlIGEgdW5pb24gb2YgZmlsdGVyIGFuZCBhbmltYXRpb25Db25maWdcbiAgICAvLyB3ZSBjYW4gcGFzcyB0aW1lbGluZSB0byBhIGhvb2sgYW5kIGdldCBiYWNrIHZhbHVlcyBhbmQgY29udHJvbGxlcnNcbiAgICBzZXRUaW1lbGluZVZhbHVlLFxuICAgIGVuYWJsZUJhckRyYWcgPSB0cnVlLFxuICAgIHNob3dEb21haW5UaW1lcyA9IHRydWUsXG4gICAgaGVpZ2h0ID0gUFJPR1JFU1NfQkFSX0hFSUdIVCxcbiAgICBjbGFzc05hbWUgPSBudWxsLFxuICAgIHN0eWxlXG4gIH0pID0+IHtcbiAgICBjb25zdCBvblRocm90dGxlVXBkYXRlID0gdXNlTWVtbygoKSA9PiB0aHJvdHRsZShzZXRUaW1lbGluZVZhbHVlLCAyMCksIFtzZXRUaW1lbGluZVZhbHVlXSk7XG5cbiAgICBjb25zdCB7c3RlcCwgZG9tYWluLCB2YWx1ZSwgdGltZUZvcm1hdCwgZGVmYXVsdFRpbWVGb3JtYXQsIHRpbWV6b25lLCBhbmltYXRpb25XaW5kb3csIG1hcmtzfSA9XG4gICAgICB0aW1lbGluZTtcblxuICAgIGNvbnN0IGlzUmFuZ2VkID0gdXNlTWVtbyhcbiAgICAgICgpID0+XG4gICAgICAgIEFycmF5LmlzQXJyYXkodmFsdWUpICYmIHZhbHVlLmxlbmd0aCA9PT0gMiAmJiBhbmltYXRpb25XaW5kb3cgIT09IEFOSU1BVElPTl9XSU5ET1cuaW50ZXJ2YWwsXG4gICAgICBbYW5pbWF0aW9uV2luZG93LCB2YWx1ZV1cbiAgICApO1xuXG4gICAgY29uc3QgW3ZhbHVlMCwgdmFsdWUxXTogW251bWJlciwgbnVtYmVyXSA9IHVzZU1lbW8oXG4gICAgICAoKSA9PiBbaXNSYW5nZWQgPyB2YWx1ZVswXSA6IG51bGwsIGlzUmFuZ2VkID8gdmFsdWVbMV0gOiB2YWx1ZVswXV0sXG4gICAgICBbaXNSYW5nZWQsIHZhbHVlXVxuICAgICk7XG5cbiAgICBjb25zdCBbZGlzcGxheVZhbHVlMCwgZGlzcGxheVZhbHVlMV06IFtudW1iZXIsIG51bWJlcl0gPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmICghZG9tYWluKSB7XG4gICAgICAgIHJldHVybiBbdmFsdWUwLCB2YWx1ZTFdO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gW2lzUmFuZ2VkID8gY2xhbXAoZG9tYWluLCB2YWx1ZTApIDogdmFsdWUwLCBjbGFtcChkb21haW4sIHZhbHVlMSldO1xuICAgIH0sIFtkb21haW4sIGlzUmFuZ2VkLCB2YWx1ZTAsIHZhbHVlMV0pO1xuXG4gICAgY29uc3QgW29uU2xpZGVyMENoYW5nZSwgb25TbGlkZXIxQ2hhbmdlXSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKCFkb21haW4pIHJldHVybiBbbm9vcCwgbm9vcF07XG4gICAgICByZXR1cm4gW1xuICAgICAgICBpc1JhbmdlZFxuICAgICAgICAgID8gKG5ld1ZhbHVlOiBudW1iZXIpID0+IG9uVGhyb3R0bGVVcGRhdGUoW2NsYW1wKGRvbWFpbiwgbmV3VmFsdWUpLCB2YWx1ZTFdKVxuICAgICAgICAgIDogbm9vcCxcbiAgICAgICAgaXNSYW5nZWRcbiAgICAgICAgICA/IChuZXdWYWx1ZTogbnVtYmVyKSA9PiBvblRocm90dGxlVXBkYXRlKFt2YWx1ZTAsIGNsYW1wKGRvbWFpbiwgbmV3VmFsdWUpXSlcbiAgICAgICAgICA6IChuZXdWYWx1ZTogbnVtYmVyKSA9PlxuICAgICAgICAgICAgICBvblRocm90dGxlVXBkYXRlKFxuICAgICAgICAgICAgICAgIGFuaW1hdGlvbldpbmRvdyA9PT0gQU5JTUFUSU9OX1dJTkRPVy5pbnRlcnZhbFxuICAgICAgICAgICAgICAgICAgPyAvLyBmaWx0ZXIgcmVxdWlyZXMgYW4gYXJyYXkgd2l0aCAyIHZhbHVlc1xuICAgICAgICAgICAgICAgICAgICBbY2xhbXAoZG9tYWluLCBuZXdWYWx1ZSksIGNsYW1wKGRvbWFpbiwgbmV3VmFsdWUpXVxuICAgICAgICAgICAgICAgICAgOiAvLyBhbmltYXRpb25Db25maWcgb25seSByZXF1aXJlcyBvbmUgdmFsdWVcbiAgICAgICAgICAgICAgICAgICAgW2NsYW1wKGRvbWFpbiwgbmV3VmFsdWUpXVxuICAgICAgICAgICAgICApXG4gICAgICBdO1xuICAgIH0sIFthbmltYXRpb25XaW5kb3csIGRvbWFpbiwgaXNSYW5nZWQsIHZhbHVlMCwgdmFsdWUxLCBvblRocm90dGxlVXBkYXRlXSk7XG5cbiAgICBjb25zdCB0aW1lbGluZVNsaWRlclN0eWxlID0gdXNlTWVtbygoKSA9PiAoe2hlaWdodDogYCR7aGVpZ2h0fXB4YH0pLCBbaGVpZ2h0XSk7XG5cbiAgICBjb25zdCBbdGltZVN0YXJ0LCB0aW1lRW5kXSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKCFzaG93RG9tYWluVGltZXMpIHtcbiAgICAgICAgcmV0dXJuIFtudWxsLCBudWxsXTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgaGFzVXNlckZvcm1hdCA9IHR5cGVvZiB0aW1lRm9ybWF0ID09PSAnc3RyaW5nJztcbiAgICAgIGNvbnN0IGN1cnJlbnRGb3JtYXQgPSAoaGFzVXNlckZvcm1hdCA/IHRpbWVGb3JtYXQgOiBkZWZhdWx0VGltZUZvcm1hdCkgfHwgREVGQVVMVF9USU1FX0ZPUk1BVDtcbiAgICAgIGNvbnN0IGRhdGVGdW5jID0gZGF0ZXRpbWVGb3JtYXR0ZXIodGltZXpvbmUpKGN1cnJlbnRGb3JtYXQpO1xuXG4gICAgICByZXR1cm4gW2RvbWFpbiA/IGRhdGVGdW5jKGRvbWFpblswXSkgOiAnJywgZG9tYWluID8gZGF0ZUZ1bmMoZG9tYWluWzFdKSA6ICcnXTtcbiAgICB9LCBbZG9tYWluLCB0aW1lem9uZSwgdGltZUZvcm1hdCwgZGVmYXVsdFRpbWVGb3JtYXQsIHNob3dEb21haW5UaW1lc10pO1xuXG4gICAgY29uc3QgcmVxdWlyZXNSYW5nZVNsaWRlciA9IGlzUmFuZ2VkICYmIGFuaW1hdGlvbldpbmRvdyAhPT0gQU5JTUFUSU9OX1dJTkRPVy5pbnRlcnZhbDtcblxuICAgIHJldHVybiAoXG4gICAgICA8QW5pbWF0aW9uQ29udHJvbFNsaWRlclxuICAgICAgICBzdHlsZT17c3R5bGV9XG4gICAgICAgIGNsYXNzTmFtZT17Y2xhc3NuYW1lcygnYW5pbWF0aW9uLWNvbnRyb2xfX3RpbWUtc2xpZGVyJywgY2xhc3NOYW1lKX1cbiAgICAgID5cbiAgICAgICAge3RpbWVTdGFydCA/IChcbiAgICAgICAgICA8U3R5bGVkRG9tYWluIGNsYXNzTmFtZT1cImRvbWFpbi1zdGFydFwiPlxuICAgICAgICAgICAgPHNwYW4+e3RpbWVTdGFydH08L3NwYW4+XG4gICAgICAgICAgPC9TdHlsZWREb21haW4+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgICA8U2xpZGVyV3JhcHBlciBjbGFzc05hbWU9XCJhbmltYXRpb24tY29udHJvbF9fc2xpZGVyXCI+XG4gICAgICAgICAgPFN0eWxlZFNsaWRlclxuICAgICAgICAgICAgaXNSYW5nZWQ9e3JlcXVpcmVzUmFuZ2VTbGlkZXJ9XG4gICAgICAgICAgICBzdGVwPXtzdGVwIHx8IHVuZGVmaW5lZH1cbiAgICAgICAgICAgIG1pblZhbHVlPXtkb21haW4gPyBkb21haW5bMF0gOiAwfVxuICAgICAgICAgICAgbWF4VmFsdWU9e2RvbWFpbiA/IGRvbWFpblsxXSA6IDF9XG4gICAgICAgICAgICBlbmFibGVCYXJEcmFnPXtlbmFibGVCYXJEcmFnfVxuICAgICAgICAgICAgc3R5bGU9e3RpbWVsaW5lU2xpZGVyU3R5bGV9XG4gICAgICAgICAgICBvblNsaWRlcjBDaGFuZ2U9e29uU2xpZGVyMENoYW5nZX1cbiAgICAgICAgICAgIG9uU2xpZGVyMUNoYW5nZT17b25TbGlkZXIxQ2hhbmdlfVxuICAgICAgICAgICAgdmFsdWUwPXtkaXNwbGF5VmFsdWUwfVxuICAgICAgICAgICAgdmFsdWUxPXtkaXNwbGF5VmFsdWUxfVxuICAgICAgICAgICAgbWFya3M9e21hcmtzfVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvU2xpZGVyV3JhcHBlcj5cbiAgICAgICAge3RpbWVFbmQgPyAoXG4gICAgICAgICAgPFN0eWxlZERvbWFpbiBjbGFzc05hbWU9XCJkb21haW4tZW5kXCI+XG4gICAgICAgICAgICA8c3Bhbj57dGltZUVuZH08L3NwYW4+XG4gICAgICAgICAgPC9TdHlsZWREb21haW4+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgPC9BbmltYXRpb25Db250cm9sU2xpZGVyPlxuICAgICk7XG4gIH07XG5cbiAgcmV0dXJuIFRpbWVsaW5lU2xpZGVyO1xufVxuXG5leHBvcnQgZGVmYXVsdCBUaW1lbGluZVNsaWRlckZhY3Rvcnk7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFHQSxJQUFBQSxNQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxpQkFBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUcsU0FBQSxHQUFBRCxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUksV0FBQSxHQUFBRixzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUssTUFBQSxHQUFBTCxPQUFBO0FBQ0EsSUFBQU0sT0FBQSxHQUFBTixPQUFBO0FBQ0EsSUFBQU8sVUFBQSxHQUFBUCxPQUFBO0FBRUEsSUFBQVEsT0FBQSxHQUFBTixzQkFBQSxDQUFBRixPQUFBO0FBQXFDLElBQUFTLGVBQUEsRUFBQUMsZ0JBQUEsRUFBQUMsZ0JBQUEsRUFBQUMsZ0JBQUEsRUFBQUMsZ0JBQUEsRUFYckM7QUFDQTtBQUFBLFNBQUFkLHdCQUFBZSxDQUFBLEVBQUFDLENBQUEsNkJBQUFDLE9BQUEsTUFBQUMsQ0FBQSxPQUFBRCxPQUFBLElBQUFFLENBQUEsT0FBQUYsT0FBQSxZQUFBakIsdUJBQUEsWUFBQUEsd0JBQUFlLENBQUEsRUFBQUMsQ0FBQSxTQUFBQSxDQUFBLElBQUFELENBQUEsSUFBQUEsQ0FBQSxDQUFBSyxVQUFBLFNBQUFMLENBQUEsTUFBQU0sQ0FBQSxFQUFBQyxDQUFBLEVBQUFDLENBQUEsS0FBQUMsU0FBQSxtQkFBQVQsQ0FBQSxpQkFBQUEsQ0FBQSxnQkFBQVUsT0FBQSxDQUFBVixDQUFBLDBCQUFBQSxDQUFBLFNBQUFRLENBQUEsTUFBQUYsQ0FBQSxHQUFBTCxDQUFBLEdBQUFHLENBQUEsR0FBQUQsQ0FBQSxRQUFBRyxDQUFBLENBQUFLLEdBQUEsQ0FBQVgsQ0FBQSxVQUFBTSxDQUFBLENBQUFNLEdBQUEsQ0FBQVosQ0FB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
@@ -18,7 +18,7 @@ var _reactDom = require("react-dom");
18
18
  var _styledComponents = _interopRequireDefault(require("styled-components"));
19
19
  var _window = _interopRequireDefault(require("global/window"));
20
20
  var _classnames = _interopRequireDefault(require("classnames"));
21
- var _get = _interopRequireDefault(require("lodash/get"));
21
+ var _get = _interopRequireDefault(require("es-toolkit/compat/get"));
22
22
  var _reselect = require("reselect");
23
23
  var _featureActionPanel = _interopRequireDefault(require("./feature-action-panel"));
24
24
  var _constants = require("@kepler.gl/constants");
@@ -215,4 +215,4 @@ function EditorFactory(FeatureActionPanel) {
215
215
  Editor.displayName = 'Editor';
216
216
  return Editor;
217
217
  }
218
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfcmVhY3REb20iLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfd2luZG93IiwiX2NsYXNzbmFtZXMiLCJfZ2V0IiwiX3Jlc2VsZWN0IiwiX2ZlYXR1cmVBY3Rpb25QYW5lbCIsIl9jb25zdGFudHMiLCJfbGF5ZXJzIiwiX2NvbnRleHQiLCJfdGVtcGxhdGVPYmplY3QiLCJlIiwidCIsIldlYWtNYXAiLCJyIiwibiIsIl9fZXNNb2R1bGUiLCJvIiwiaSIsImYiLCJfX3Byb3RvX18iLCJfdHlwZW9mIiwiaGFzIiwiZ2V0Iiwic2V0IiwiX3QiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsIl9jYWxsU3VwZXIiLCJfZ2V0UHJvdG90eXBlT2YyIiwiX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4yIiwiX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCIsIlJlZmxlY3QiLCJjb25zdHJ1Y3QiLCJjb25zdHJ1Y3RvciIsImFwcGx5IiwiQm9vbGVhbiIsInByb3RvdHlwZSIsInZhbHVlT2YiLCJERUNLR0xfUkVOREVSX0xBWUVSIiwiU3R5bGVkV3JhcHBlciIsInN0eWxlZCIsImRpdiIsIl90YWdnZWRUZW1wbGF0ZUxpdGVyYWwyIiwiZWRpdG9yTGF5ZXJGaWx0ZXIiLCJsYXllciIsIkVESVRPUl9BVkFJTEFCTEVfTEFZRVJTIiwiaW5jbHVkZXMiLCJ0eXBlIiwiRWRpdG9yRmFjdG9yeSIsImRlcHMiLCJGZWF0dXJlQWN0aW9uUGFuZWxGYWN0b3J5IiwiRmVhdHVyZUFjdGlvblBhbmVsIiwiUG9ydGFsRWRpdG9yIiwiX3JlZiIsInZpc2libGVQYW5lbCIsImNsYXNzTmFtZSIsInN0eWxlIiwic2VsZWN0ZWRGZWF0dXJlIiwiZGF0YXNldHMiLCJsYXllcnMiLCJjdXJyZW50RmlsdGVyIiwib25DbG9zZSIsIm9uRGVsZXRlRmVhdHVyZSIsIm9uU2V0RmVhdHVyZVByb3BlcnRpZXMiLCJvblRvZ2dsZUxheWVyIiwicG9zaXRpb24iLCJjcmVhdGVFbGVtZW50IiwiUm9vdENvbnRleHQiLCJDb25zdW1lciIsImNvbnRleHQiLCJfY29udGV4dCRjdXJyZW50IiwiRnJhZ21lbnQiLCJjcmVhdGVQb3J0YWwiLCJjbGFzc25hbWVzIiwiY3VycmVudCIsImRvY3VtZW50IiwiYm9keSIsIkVkaXRvclVubWVtb2l6ZWQiLCJfQ29tcG9uZW50IiwiX3RoaXMiLCJfY2xhc3NDYWxsQ2hlY2syIiwiX2xlbiIsImFyZ3VtZW50cyIsImxlbmd0aCIsImFyZ3MiLCJBcnJheSIsIl9rZXkiLCJjb25jYXQiLCJfZGVmaW5lUHJvcGVydHkyIiwicHJvcHMiLCJmaWx0ZXJzIiwiY3JlYXRlU2VsZWN0b3IiLCJmaWx0ZXJTZWxlY3RvciIsInNlbGVjdGVkRmVhdHVyZUlkU2VsZWN0b3IiLCJzZWxlY3RlZEZlYXR1cmVJZCIsImZpbmQiLCJ2YWx1ZSIsImlkIiwibGF5ZXJTZWxlY3RvciIsImZpbHRlciIsIl9sYXllciRjb25maWciLCJjb25maWciLCJpc1Zpc2libGUiLCJHRU9DT0RFUl9MQVlFUl9JRCIsImVkaXRvckZlYXR1cmVTZWxlY3RvciIsImVkaXRvckZlYXR1cmVzIiwiRklMVEVSX1RZUEVTIiwicG9seWdvbiIsIm1hcCIsIl9kb2N1bWVudCRhY3RpdmVFbGVtZSIsImFjdGl2ZUVsZW1lbnQiLCJ0YXJnZXQiLCJlbGVtZW50IiwidGFnTmFtZSIsImlzQ29udGVudEVkaXRhYmxlIiwiZXZlbnQiLCJpc0VzY2FwZSIsImtleUNvZGUiLCJLZXlFdmVudCIsIkRPTV9WS19FU0NBUEUiLCJrZXkiLCJpc1R5cGluZ1RhcmdldCIsImRyYXdpbmciLCJFZGl0b3JMYXllclV0aWxzIiwiaXNEcmF3aW5nQWN0aXZlIiwiZWRpdG9yIiwibW9kZSIsIm9uU2V0RWRpdG9yTW9kZSIsIkVESVRPUl9NT0RFUyIsIkVESVQiLCJvblNlbGVjdCIsImlzSW5Gb2N1cyIsIkRPTV9WS19ERUxFVEUiLCJET01fVktfQkFDS19TUEFDRSIsIl9vbkRlbGV0ZVNlbGVjdGVkRmVhdHVyZSIsIm9uVG9nZ2xlUG9seWdvbkZpbHRlciIsImZlYXR1cmUiLCJwcm9wZXJ0aWVzIiwiX2luaGVyaXRzMiIsIl9jcmVhdGVDbGFzczIiLCJjb21wb25lbnREaWRNb3VudCIsIldpbmRvdyIsImFkZEV2ZW50TGlzdGVuZXIiLCJfb25LZXlQcmVzc2VkIiwiY29tcG9uZW50V2lsbFVubW91bnQiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwicmVuZGVyIiwiX3RoaXMkcHJvcHMiLCJpbmRleCIsInNlbGVjdGlvbkNvbnRleHQiLCJjdXJyZW50RmlsdGVyU2VsZWN0b3IiLCJhdmFpbGFibGVMYXllcnMiLCJhdmFpbGFibGVMYXllcnNTZWxlY3RvciIsIl9yZWYyIiwicmlnaHRDbGljayIsIm1hcEluZGV4IiwiX2Nsb3NlRmVhdHVyZUFjdGlvbiIsIl9vblNldEZlYXR1cmVQcm9wZXJ0aWVzIiwiX3RvZ2dsZVBvbHlnb25GaWx0ZXIiLCJDb21wb25lbnQiLCJFZGl0b3IiLCJSZWFjdCIsIm1lbW8iLCJkaXNwbGF5TmFtZSJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lZGl0b3IvZWRpdG9yLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQgUmVhY3QsIHtDb21wb25lbnQsIENTU1Byb3BlcnRpZXMsIEtleWJvYXJkRXZlbnR9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7Y3JlYXRlUG9ydGFsfSBmcm9tICdyZWFjdC1kb20nO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdzdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQgV2luZG93IGZyb20gJ2dsb2JhbC93aW5kb3cnO1xuaW1wb3J0IGNsYXNzbmFtZXMgZnJvbSAnY2xhc3NuYW1lcyc7XG5pbXBvcnQgZ2V0IGZyb20gJ2xvZGFzaC9nZXQnO1xuaW1wb3J0IHtjcmVhdGVTZWxlY3Rvcn0gZnJvbSAncmVzZWxlY3QnO1xuaW1wb3J0IEZlYXR1cmVBY3Rpb25QYW5lbEZhY3RvcnksIHtGZWF0dXJlQWN0aW9uUGFuZWxQcm9wc30gZnJvbSAnLi9mZWF0dXJlLWFjdGlvbi1wYW5lbCc7XG5pbXBvcnQge1xuICBFRElUT1JfQVZBSUxBQkxFX0xBWUVSUyxcbiAgRklMVEVSX1RZUEVTLFxuICBFRElUT1JfTU9ERVMsXG4gIEdFT0NPREVSX0xBWUVSX0lELFxuICBLZXlFdmVudFxufSBmcm9tICdAa2VwbGVyLmdsL2NvbnN0YW50cyc7XG5pbXBvcnQge0xheWVyLCBFZGl0b3JMYXllclV0aWxzfSBmcm9tICdAa2VwbGVyLmdsL2xheWVycyc7XG5pbXBvcnQge0ZpbHRlciwgRmVhdHVyZVNlbGVjdGlvbkNvbnRleHQsIEZlYXR1cmV9IGZyb20gJ0BrZXBsZXIuZ2wvdHlwZXMnO1xuaW1wb3J0IHtGZWF0dXJlIGFzIEVkaXRhYmxlRmVhdHVyZSwgUG9seWdvbn0gZnJvbSAnQGRlY2suZ2wtY29tbXVuaXR5L2VkaXRhYmxlLWxheWVycyc7XG5pbXBvcnQge0RhdGFzZXRzfSBmcm9tICdAa2VwbGVyLmdsL3RhYmxlJztcblxuaW1wb3J0IHtSb290Q29udGV4dH0gZnJvbSAnLi4vY29udGV4dCc7XG5cbmNvbnN0IERFQ0tHTF9SRU5ERVJfTEFZRVIgPSAnZGVmYXVsdC1kZWNrZ2wtb3ZlcmxheS13cmFwcGVyJztcblxuY29uc3QgU3R5bGVkV3JhcHBlciA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbmA7XG5cbmNvbnN0IGVkaXRvckxheWVyRmlsdGVyID0gKGxheWVyOiBMYXllcikgPT4gRURJVE9SX0FWQUlMQUJMRV9MQVlFUlMuaW5jbHVkZXMobGF5ZXIudHlwZSB8fCAnJyk7XG5cbkVkaXRvckZhY3RvcnkuZGVwcyA9IFtGZWF0dXJlQWN0aW9uUGFuZWxGYWN0b3J5XTtcblxuaW50ZXJmYWNlIEVkaXRvclByb3BzIHtcbiAgZmlsdGVyczogRmlsdGVyW107XG4gIGxheWVyczogTGF5ZXJbXTtcbiAgZGF0YXNldHM6IERhdGFzZXRzO1xuICBlZGl0b3I6IHtzZWxlY3RlZEZlYXR1cmU6IEZlYXR1cmU7IG1vZGU6IHN0cmluZzsgc2VsZWN0aW9uQ29udGV4dD86IEZlYXR1cmVTZWxlY3Rpb25Db250ZXh0fTtcbiAgaW5kZXg6IG51bWJlcjtcbiAgY2xhc3NOYW1lPzogc3RyaW5nO1xuICBzdHlsZTogQ1NTUHJvcGVydGllcztcbiAgb25TZWxlY3Q6IChmOiBGZWF0dXJlIHwgbnVsbCkgPT4gYW55O1xuICBvblNldEVkaXRvck1vZGU6IChtOiBhbnkpID0+IHZvaWQ7XG4gIG9uRGVsZXRlRmVhdHVyZTogKGY6IEZlYXR1cmUpID0+IGFueTtcbiAgb25TZXRGZWF0dXJlUHJvcGVydGllczogKGY6IEZlYXR1cmUsIHByb3BlcnRpZXM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+KSA9PiBhbnk7XG4gIG9uVG9nZ2xlUG9seWdvbkZpbHRlcjogKGw6IExheWVyLCBmOiBGZWF0dXJlKSA9PiBhbnk7XG59XG5cbmV4cG9ydCB0eXBlIFBvcnRhbEVkaXRvclByb3BzID0gRmVhdHVyZUFjdGlvblBhbmVsUHJvcHMgJiB7XG4gIHZpc2libGVQYW5lbDogYm9vbGVhbjtcbiAgc3R5bGU/OiBSZWFjdC5DU1NQcm9wZXJ0aWVzO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gRWRpdG9yRmFjdG9yeShcbiAgRmVhdHVyZUFjdGlvblBhbmVsOiBSZWFjdC5GQzxGZWF0dXJlQWN0aW9uUGFuZWxQcm9wcz5cbik6IFJlYWN0LkNvbXBvbmVudENsYXNzPEVkaXRvclByb3BzPiB7XG4gIGNvbnN0IFBvcnRhbEVkaXRvcjogUmVhY3QuRkM8UG9ydGFsRWRpdG9yUHJvcHM+ID0gKHtcbiAgICB2aXNpYmxlUGFuZWwsXG4gICAgY2xhc3NOYW1lLFxuICAgIHN0eWxlLFxuICAgIHNlbGVjdGVkRmVhdHVyZSxcbiAgICBkYXRhc2V0cyxcbiAgICBsYXllcnMsXG4gICAgY3VycmVudEZpbHRlcixcbiAgICBvbkNsb3NlLFxuICAgIG9uRGVsZXRlRmVhdHVyZSxcbiAgICBvblNldEZlYXR1cmVQcm9wZXJ0aWVzLFxuICAgIG9uVG9nZ2xlTGF5ZXIsXG4gICAgcG9zaXRpb25cbiAgfSkgPT4ge1xuICAgIHJldHVybiAoXG4gICAgICA8Um9vdENvbnRleHQuQ29uc3VtZXI+XG4gICAgICAgIHtjb250ZXh0ID0+IChcbiAgICAgICAgICA8PlxuICAgICAgICAgICAge2NyZWF0ZVBvcnRhbChcbiAgICAgICAgICAgICAgPFN0eWxlZFdyYXBwZXIgY2xhc3NOYW1lPXtjbGFzc25hbWVzKCdlZGl0b3InLCBjbGFzc05hbWUpfSBzdHlsZT17c3R5bGV9PlxuICAgICAgICAgICAgICAgIHt2aXNpYmxlUGFuZWwgPyAoXG4gICAgICAgICAgICAgICAgICA8RmVhdHVyZUFjdGlvblBhbmVsXG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkRmVhdHVyZT17c2VsZWN0ZWRGZWF0dXJlIGFzIEVkaXRhYmxlRmVhdHVyZTxQb2x5Z29uPn1cbiAgICAgICAgICAgICAgICAgICAgZGF0YXNldHM9e2RhdGFzZXRzfVxuICAgICAgICAgICAgICAgICAgICBsYXllcnM9e2xheWVyc31cbiAgICAgICAgICAgICAgICAgICAgY3VycmVudEZpbHRlcj17Y3VycmVudEZpbHRlcn1cbiAgICAgICAgICAgICAgICAgICAgb25DbG9zZT17b25DbG9zZX1cbiAgICAgICAgICAgICAgICAgICAgb25EZWxldGVGZWF0dXJlPXtvbkRlbGV0ZUZlYXR1cmV9XG4gICAgICAgICAgICAgICAgICAgIG9uU2V0RmVhdHVyZVByb3BlcnRpZXM9e29uU2V0RmVhdHVyZVByb3BlcnRpZXN9XG4gICAgICAgICAgICAgICAgICAgIG9uVG9nZ2xlTGF5ZXI9e29uVG9nZ2xlTGF5ZXJ9XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uPXtwb3NpdGlvbiB8fCBudWxsfVxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgPC9TdHlsZWRXcmFwcGVyPixcbiAgICAgICAgICAgICAgY29udGV4dD8uY3VycmVudCA/PyBkb2N1bWVudC5ib2R5XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvPlxuICAgICAgICApfVxuICAgICAgPC9Sb290Q29udGV4dC5Db25zdW1lcj5cbiAgICApO1xuICB9O1xuICBjbGFzcyBFZGl0b3JVbm1lbW9pemVkIGV4dGVuZHMgQ29tcG9uZW50PEVkaXRvclByb3BzPiB7XG4gICAgc3RhdGljIGRlZmF1bHRQcm9wcyA9IHt9O1xuXG4gICAgc3RhdGljIGRpc3BsYXlOYW1lID0gJ0VkaXRvcic7XG5cbiAgICBzdGF0ZSA9IHt9O1xuXG4gICAgY29tcG9uZW50RGlkTW91bnQoKSB7XG4gICAgICBXaW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIHRoaXMuX29uS2V5UHJlc3NlZCk7XG4gICAgfVxuXG4gICAgY29tcG9uZW50V2lsbFVubW91bnQoKSB7XG4gICAgICBXaW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIHRoaXMuX29uS2V5UHJlc3NlZCk7XG4gICAgfVxuXG4gICAgbGF5ZXJTZWxlY3RvciA9IChwcm9wczogRWRpdG9yUHJvcHMpID0+IHByb3BzLmxheWVycztcbiAgICBmaWx0ZXJTZWxlY3RvciA9IChwcm9wczogRWRpdG9yUHJvcHMpID0+IHByb3BzLmZpbHRlcnM7XG4gICAgc2VsZWN0ZWRGZWF0dXJlSWRTZWxlY3RvciA9IChwcm9wczogRWRpdG9yUHJvcHMpID0+XG4gICAgICBnZXQocHJvcHMsIFsnZWRpdG9yJywgJ3NlbGVjdGVkRmVhdHVyZScsICdpZCddKTtcbiAgICBlZGl0b3JGZWF0dXJlU2VsZWN0b3IgPSAocHJvcHM6IEVkaXRvclByb3BzKSA9PiBnZXQocHJvcHMsIFsnZWRpdG9yJywgJ2ZlYXR1cmVzJ10pO1xuXG4gICAgY3VycmVudEZpbHRlclNlbGVjdG9yID0gY3JlYXRlU2VsZWN0b3IoXG4gICAgICB0aGlzLmZpbHRlclNlbGVjdG9yLFxuICAgICAgdGhpcy5zZWxlY3RlZEZlYXR1cmVJZFNlbGVjdG9yLFxuICAgICAgKGZpbHRlcnMsIHNlbGVjdGVkRmVhdHVyZUlkKSA9PiBmaWx0ZXJzLmZpbmQoZiA9PiBmLnZhbHVlICYmIGYudmFsdWUuaWQgPT09IHNlbGVjdGVkRmVhdHVyZUlkKVxuICAgICk7XG5cbiAgICBhdmFpbGFibGVMYXllcnNTZWxlY3RvciA9IGNyZWF0ZVNlbGVjdG9yKHRoaXMubGF5ZXJTZWxlY3RvciwgbGF5ZXJzID0+XG4gICAgICBsYXllcnNcbiAgICAgICAgLmZpbHRlcihlZGl0b3JMYXllckZpbHRlcilcbiAgICAgICAgLmZpbHRlcihsYXllciA9PiBsYXllci5jb25maWc/LmlzVmlzaWJsZSAmJiBsYXllci5pZCAhPT0gR0VPQ09ERVJfTEFZRVJfSUQpXG4gICAgKTtcblxuICAgIGFsbEZlYXR1cmVzU2VsZWN0b3IgPSBjcmVhdGVTZWxlY3RvcihcbiAgICAgIHRoaXMuZmlsdGVyU2VsZWN0b3IsXG4gICAgICB0aGlzLmVkaXRvckZlYXR1cmVTZWxlY3RvcixcbiAgICAgIChmaWx0ZXJzLCBlZGl0b3JGZWF0dXJlcykgPT5cbiAgICAgICAgZmlsdGVyc1xuICAgICAgICAgIC5maWx0ZXIoZiA9PiBmLnR5cGUgPT09IEZJTFRFUl9UWVBFUy5wb2x5Z29uKVxuICAgICAgICAgIC5tYXAoZiA9PiBmLnZhbHVlKVxuICAgICAgICAgIC5jb25jYXQoZWRpdG9yRmVhdHVyZXMpXG4gICAgKTtcblxuICAgIGlzSW5Gb2N1cyA9ICgpID0+IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ/LmlkID09PSBERUNLR0xfUkVOREVSX0xBWUVSO1xuXG4gICAgaXNUeXBpbmdUYXJnZXQgPSAodGFyZ2V0OiBFdmVudFRhcmdldCB8IG51bGwpID0+IHtcbiAgICAgIGNvbnN0IGVsZW1lbnQgPSB0YXJnZXQgYXMgSFRNTEVsZW1lbnQgfCBudWxsO1xuICAgICAgaWYgKCFlbGVtZW50KSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHRhZ05hbWUgPSBlbGVtZW50LnRhZ05hbWU7XG4gICAgICByZXR1cm4gKFxuICAgICAgICB0YWdOYW1lID09PSAnSU5QVVQnIHx8XG4gICAgICAgIHRhZ05hbWUgPT09ICdURVhUQVJFQScgfHxcbiAgICAgICAgdGFnTmFtZSA9PT0gJ1NFTEVDVCcgfHxcbiAgICAgICAgQm9vbGVhbihlbGVtZW50LmlzQ29udGVudEVkaXRhYmxlKVxuICAgICAgKTtcbiAgICB9O1xuXG4gICAgX29uS2V5UHJlc3NlZCA9IChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgICAgY29uc3QgaXNFc2NhcGUgPSBldmVudC5rZXlDb2RlID09PSBLZXlFdmVudC5ET01fVktfRVNDQVBFIHx8IGV2ZW50LmtleSA9PT0gJ0VzY2FwZSc7XG4gICAgICBpZiAoaXNFc2NhcGUgJiYgIXRoaXMuaXNUeXBpbmdUYXJnZXQoZXZlbnQudGFyZ2V0KSkge1xuICAgICAgICBjb25zdCBkcmF3aW5nID0gRWRpdG9yTGF5ZXJVdGlscy5pc0RyYXdpbmdBY3RpdmUodHJ1ZSwgdGhpcy5wcm9wcy5lZGl0b3IubW9kZSk7XG4gICAgICAgIGlmIChkcmF3aW5nKSB7XG4gICAgICAgICAgdGhpcy5wcm9wcy5vblNldEVkaXRvck1vZGUoRURJVE9SX01PREVTLkVESVQpO1xuICAgICAgICAgIHRoaXMucHJvcHMub25TZWxlY3QobnVsbCk7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5pc0luRm9jdXMoKSkge1xuICAgICAgICAgIHRoaXMucHJvcHMub25TZWxlY3QobnVsbCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5pc0luRm9jdXMoKSkge1xuICAgICAgICBzd2l0Y2ggKGV2ZW50LmtleUNvZGUpIHtcbiAgICAgICAgICBjYXNlIEtleUV2ZW50LkRPTV9WS19ERUxFVEU6XG4gICAgICAgICAgY2FzZSBLZXlFdmVudC5ET01fVktfQkFDS19TUEFDRTpcbiAgICAgICAgICAgIHRoaXMuX29uRGVsZXRlU2VsZWN0ZWRGZWF0dXJlKCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuXG4gICAgX29uRGVsZXRlU2VsZWN0ZWRGZWF0dXJlID0gKCkgPT4ge1xuICAgICAgY29uc3Qge2VkaXRvcn0gPSB0aGlzLnByb3BzO1xuICAgICAgY29uc3Qge3NlbGVjdGVkRmVhdHVyZX0gPSBlZGl0b3I7XG4gICAgICBpZiAoc2VsZWN0ZWRGZWF0dXJlKSB7XG4gICAgICAgIHRoaXMucHJvcHMub25EZWxldGVGZWF0dXJlKHNlbGVjdGVkRmVhdHVyZSk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIF9jbG9zZUZlYXR1cmVBY3Rpb24gPSAoKSA9PiB7XG4gICAgICAvLyByZXNldCBzZWxlY3Rpb24gY29udGV4dFxuICAgICAgY29uc3Qge3NlbGVjdGVkRmVhdHVyZX0gPSB0aGlzLnByb3BzLmVkaXRvcjtcbiAgICAgIHRoaXMucHJvcHMub25TZWxlY3Qoc2VsZWN0ZWRGZWF0dXJlKTtcbiAgICB9O1xuXG4gICAgX3RvZ2dsZVBvbHlnb25GaWx0ZXIgPSAobGF5ZXI6IExheWVyKSA9PiB7XG4gICAgICBjb25zdCB7c2VsZWN0ZWRGZWF0dXJlfSA9IHRoaXMucHJvcHMuZWRpdG9yO1xuICAgICAgaWYgKHNlbGVjdGVkRmVhdHVyZSkge1xuICAgICAgICB0aGlzLnByb3BzLm9uVG9nZ2xlUG9seWdvbkZpbHRlcihsYXllciwgc2VsZWN0ZWRGZWF0dXJlKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgX29uU2V0RmVhdHVyZVByb3BlcnRpZXMgPSAoZmVhdHVyZTogRmVhdHVyZSwgcHJvcGVydGllczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pID0+IHtcbiAgICAgIHRoaXMucHJvcHMub25TZXRGZWF0dXJlUHJvcGVydGllcyhmZWF0dXJlLCBwcm9wZXJ0aWVzKTtcbiAgICB9O1xuXG4gICAgcmVuZGVyKCkge1xuICAgICAgY29uc3Qge2NsYXNzTmFtZSwgZGF0YXNldHMsIGVkaXRvciwgc3R5bGUsIGluZGV4fSA9IHRoaXMucHJvcHM7XG4gICAgICBjb25zdCB7c2VsZWN0ZWRGZWF0dXJlLCBzZWxlY3Rpb25Db250ZXh0fSA9IGVkaXRvcjtcbiAgICAgIGNvbnN0IGN1cnJlbnRGaWx0ZXIgPSB0aGlzLmN1cnJlbnRGaWx0ZXJTZWxlY3Rvcih0aGlzLnByb3BzKTtcbiAgICAgIGNvbnN0IGF2YWlsYWJsZUxheWVycyA9IHRoaXMuYXZhaWxhYmxlTGF5ZXJzU2VsZWN0b3IodGhpcy5wcm9wcyk7XG5cbiAgICAgIGNvbnN0IHtyaWdodENsaWNrLCBwb3NpdGlvbiwgbWFwSW5kZXh9ID0gc2VsZWN0aW9uQ29udGV4dCB8fCB7fTtcblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFBvcnRhbEVkaXRvclxuICAgICAgICAgIHNlbGVjdGVkRmVhdHVyZT17c2VsZWN0ZWRGZWF0dXJlIGFzIEVkaXRhYmxlRmVhdHVyZTxQb2x5Z29uPn1cbiAgICAgICAgICB2aXNpYmxlUGFuZWw9e0Jvb2xlYW4ocmlnaHRDbGljaykgJiYgc2VsZWN0ZWRGZWF0dXJlICYmIGluZGV4ID09PSBtYXBJbmRleH1cbiAgICAgICAgICBkYXRhc2V0cz17ZGF0YXNldHN9XG4gICAgICAgICAgbGF5ZXJzPXthdmFpbGFibGVMYXllcnN9XG4gICAgICAgICAgY3VycmVudEZpbHRlcj17Y3VycmVudEZpbHRlcn1cbiAgICAgICAgICBvbkNsb3NlPXt0aGlzLl9jbG9zZUZlYXR1cmVBY3Rpb259XG4gICAgICAgICAgb25EZWxldGVGZWF0dXJlPXt0aGlzLl9vbkRlbGV0ZVNlbGVjdGVkRmVhdHVyZX1cbiAgICAgICAgICBvblNldEZlYXR1cmVQcm9wZXJ0aWVzPXtcbiAgICAgICAgICAgIHRoaXMuX29uU2V0RmVhdHVyZVByb3BlcnRpZXMgYXMgRmVhdHVyZUFjdGlvblBhbmVsUHJvcHNbJ29uU2V0RmVhdHVyZVByb3BlcnRpZXMnXVxuICAgICAgICAgIH1cbiAgICAgICAgICBvblRvZ2dsZUxheWVyPXt0aGlzLl90b2dnbGVQb2x5Z29uRmlsdGVyfVxuICAgICAgICAgIHBvc2l0aW9uPXtwb3NpdGlvbiB8fCBudWxsfVxuICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lfVxuICAgICAgICAgIHN0eWxlPXtzdHlsZX1cbiAgICAgICAgLz5cbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgY29uc3QgRWRpdG9yID0gUmVhY3QubWVtbyhFZGl0b3JVbm1lbW9pemVkKSBhcyB1bmtub3duIGFzIHR5cGVvZiBFZGl0b3JVbm1lbW9pemVkO1xuICBFZGl0b3IuZGlzcGxheU5hbWUgPSAnRWRpdG9yJztcbiAgcmV0dXJuIEVkaXRvcjtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0FBR0EsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsU0FBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsaUJBQUEsR0FBQUMsc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFJLE9BQUEsR0FBQUQsc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFLLFdBQUEsR0FBQUYsc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFNLElBQUEsR0FBQUgsc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFPLFNBQUEsR0FBQVAsT0FBQTtBQUNBLElBQUFRLG1CQUFBLEdBQUFMLHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBUyxVQUFBLEdBQUFULE9BQUE7QUFPQSxJQUFBVSxPQUFBLEdBQUFWLE9BQUE7QUFLQSxJQUFBVyxRQUFBLEdBQUFYLE9BQUE7QUFBdUMsSUFBQVksZUFBQSxFQXZCdkM7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
218
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfcmVhY3REb20iLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfd2luZG93IiwiX2NsYXNzbmFtZXMiLCJfZ2V0IiwiX3Jlc2VsZWN0IiwiX2ZlYXR1cmVBY3Rpb25QYW5lbCIsIl9jb25zdGFudHMiLCJfbGF5ZXJzIiwiX2NvbnRleHQiLCJfdGVtcGxhdGVPYmplY3QiLCJlIiwidCIsIldlYWtNYXAiLCJyIiwibiIsIl9fZXNNb2R1bGUiLCJvIiwiaSIsImYiLCJfX3Byb3RvX18iLCJfdHlwZW9mIiwiaGFzIiwiZ2V0Iiwic2V0IiwiX3QiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsIl9jYWxsU3VwZXIiLCJfZ2V0UHJvdG90eXBlT2YyIiwiX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4yIiwiX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCIsIlJlZmxlY3QiLCJjb25zdHJ1Y3QiLCJjb25zdHJ1Y3RvciIsImFwcGx5IiwiQm9vbGVhbiIsInByb3RvdHlwZSIsInZhbHVlT2YiLCJERUNLR0xfUkVOREVSX0xBWUVSIiwiU3R5bGVkV3JhcHBlciIsInN0eWxlZCIsImRpdiIsIl90YWdnZWRUZW1wbGF0ZUxpdGVyYWwyIiwiZWRpdG9yTGF5ZXJGaWx0ZXIiLCJsYXllciIsIkVESVRPUl9BVkFJTEFCTEVfTEFZRVJTIiwiaW5jbHVkZXMiLCJ0eXBlIiwiRWRpdG9yRmFjdG9yeSIsImRlcHMiLCJGZWF0dXJlQWN0aW9uUGFuZWxGYWN0b3J5IiwiRmVhdHVyZUFjdGlvblBhbmVsIiwiUG9ydGFsRWRpdG9yIiwiX3JlZiIsInZpc2libGVQYW5lbCIsImNsYXNzTmFtZSIsInN0eWxlIiwic2VsZWN0ZWRGZWF0dXJlIiwiZGF0YXNldHMiLCJsYXllcnMiLCJjdXJyZW50RmlsdGVyIiwib25DbG9zZSIsIm9uRGVsZXRlRmVhdHVyZSIsIm9uU2V0RmVhdHVyZVByb3BlcnRpZXMiLCJvblRvZ2dsZUxheWVyIiwicG9zaXRpb24iLCJjcmVhdGVFbGVtZW50IiwiUm9vdENvbnRleHQiLCJDb25zdW1lciIsImNvbnRleHQiLCJfY29udGV4dCRjdXJyZW50IiwiRnJhZ21lbnQiLCJjcmVhdGVQb3J0YWwiLCJjbGFzc25hbWVzIiwiY3VycmVudCIsImRvY3VtZW50IiwiYm9keSIsIkVkaXRvclVubWVtb2l6ZWQiLCJfQ29tcG9uZW50IiwiX3RoaXMiLCJfY2xhc3NDYWxsQ2hlY2syIiwiX2xlbiIsImFyZ3VtZW50cyIsImxlbmd0aCIsImFyZ3MiLCJBcnJheSIsIl9rZXkiLCJjb25jYXQiLCJfZGVmaW5lUHJvcGVydHkyIiwicHJvcHMiLCJmaWx0ZXJzIiwiY3JlYXRlU2VsZWN0b3IiLCJmaWx0ZXJTZWxlY3RvciIsInNlbGVjdGVkRmVhdHVyZUlkU2VsZWN0b3IiLCJzZWxlY3RlZEZlYXR1cmVJZCIsImZpbmQiLCJ2YWx1ZSIsImlkIiwibGF5ZXJTZWxlY3RvciIsImZpbHRlciIsIl9sYXllciRjb25maWciLCJjb25maWciLCJpc1Zpc2libGUiLCJHRU9DT0RFUl9MQVlFUl9JRCIsImVkaXRvckZlYXR1cmVTZWxlY3RvciIsImVkaXRvckZlYXR1cmVzIiwiRklMVEVSX1RZUEVTIiwicG9seWdvbiIsIm1hcCIsIl9kb2N1bWVudCRhY3RpdmVFbGVtZSIsImFjdGl2ZUVsZW1lbnQiLCJ0YXJnZXQiLCJlbGVtZW50IiwidGFnTmFtZSIsImlzQ29udGVudEVkaXRhYmxlIiwiZXZlbnQiLCJpc0VzY2FwZSIsImtleUNvZGUiLCJLZXlFdmVudCIsIkRPTV9WS19FU0NBUEUiLCJrZXkiLCJpc1R5cGluZ1RhcmdldCIsImRyYXdpbmciLCJFZGl0b3JMYXllclV0aWxzIiwiaXNEcmF3aW5nQWN0aXZlIiwiZWRpdG9yIiwibW9kZSIsIm9uU2V0RWRpdG9yTW9kZSIsIkVESVRPUl9NT0RFUyIsIkVESVQiLCJvblNlbGVjdCIsImlzSW5Gb2N1cyIsIkRPTV9WS19ERUxFVEUiLCJET01fVktfQkFDS19TUEFDRSIsIl9vbkRlbGV0ZVNlbGVjdGVkRmVhdHVyZSIsIm9uVG9nZ2xlUG9seWdvbkZpbHRlciIsImZlYXR1cmUiLCJwcm9wZXJ0aWVzIiwiX2luaGVyaXRzMiIsIl9jcmVhdGVDbGFzczIiLCJjb21wb25lbnREaWRNb3VudCIsIldpbmRvdyIsImFkZEV2ZW50TGlzdGVuZXIiLCJfb25LZXlQcmVzc2VkIiwiY29tcG9uZW50V2lsbFVubW91bnQiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwicmVuZGVyIiwiX3RoaXMkcHJvcHMiLCJpbmRleCIsInNlbGVjdGlvbkNvbnRleHQiLCJjdXJyZW50RmlsdGVyU2VsZWN0b3IiLCJhdmFpbGFibGVMYXllcnMiLCJhdmFpbGFibGVMYXllcnNTZWxlY3RvciIsIl9yZWYyIiwicmlnaHRDbGljayIsIm1hcEluZGV4IiwiX2Nsb3NlRmVhdHVyZUFjdGlvbiIsIl9vblNldEZlYXR1cmVQcm9wZXJ0aWVzIiwiX3RvZ2dsZVBvbHlnb25GaWx0ZXIiLCJDb21wb25lbnQiLCJFZGl0b3IiLCJSZWFjdCIsIm1lbW8iLCJkaXNwbGF5TmFtZSJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lZGl0b3IvZWRpdG9yLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQgUmVhY3QsIHtDb21wb25lbnQsIENTU1Byb3BlcnRpZXMsIEtleWJvYXJkRXZlbnR9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7Y3JlYXRlUG9ydGFsfSBmcm9tICdyZWFjdC1kb20nO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdzdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQgV2luZG93IGZyb20gJ2dsb2JhbC93aW5kb3cnO1xuaW1wb3J0IGNsYXNzbmFtZXMgZnJvbSAnY2xhc3NuYW1lcyc7XG5pbXBvcnQgZ2V0IGZyb20gJ2VzLXRvb2xraXQvY29tcGF0L2dldCc7XG5pbXBvcnQge2NyZWF0ZVNlbGVjdG9yfSBmcm9tICdyZXNlbGVjdCc7XG5pbXBvcnQgRmVhdHVyZUFjdGlvblBhbmVsRmFjdG9yeSwge0ZlYXR1cmVBY3Rpb25QYW5lbFByb3BzfSBmcm9tICcuL2ZlYXR1cmUtYWN0aW9uLXBhbmVsJztcbmltcG9ydCB7XG4gIEVESVRPUl9BVkFJTEFCTEVfTEFZRVJTLFxuICBGSUxURVJfVFlQRVMsXG4gIEVESVRPUl9NT0RFUyxcbiAgR0VPQ09ERVJfTEFZRVJfSUQsXG4gIEtleUV2ZW50XG59IGZyb20gJ0BrZXBsZXIuZ2wvY29uc3RhbnRzJztcbmltcG9ydCB7TGF5ZXIsIEVkaXRvckxheWVyVXRpbHN9IGZyb20gJ0BrZXBsZXIuZ2wvbGF5ZXJzJztcbmltcG9ydCB7RmlsdGVyLCBGZWF0dXJlU2VsZWN0aW9uQ29udGV4dCwgRmVhdHVyZX0gZnJvbSAnQGtlcGxlci5nbC90eXBlcyc7XG5pbXBvcnQge0ZlYXR1cmUgYXMgRWRpdGFibGVGZWF0dXJlLCBQb2x5Z29ufSBmcm9tICdAZGVjay5nbC1jb21tdW5pdHkvZWRpdGFibGUtbGF5ZXJzJztcbmltcG9ydCB7RGF0YXNldHN9IGZyb20gJ0BrZXBsZXIuZ2wvdGFibGUnO1xuXG5pbXBvcnQge1Jvb3RDb250ZXh0fSBmcm9tICcuLi9jb250ZXh0JztcblxuY29uc3QgREVDS0dMX1JFTkRFUl9MQVlFUiA9ICdkZWZhdWx0LWRlY2tnbC1vdmVybGF5LXdyYXBwZXInO1xuXG5jb25zdCBTdHlsZWRXcmFwcGVyID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuYDtcblxuY29uc3QgZWRpdG9yTGF5ZXJGaWx0ZXIgPSAobGF5ZXI6IExheWVyKSA9PiBFRElUT1JfQVZBSUxBQkxFX0xBWUVSUy5pbmNsdWRlcyhsYXllci50eXBlIHx8ICcnKTtcblxuRWRpdG9yRmFjdG9yeS5kZXBzID0gW0ZlYXR1cmVBY3Rpb25QYW5lbEZhY3RvcnldO1xuXG5pbnRlcmZhY2UgRWRpdG9yUHJvcHMge1xuICBmaWx0ZXJzOiBGaWx0ZXJbXTtcbiAgbGF5ZXJzOiBMYXllcltdO1xuICBkYXRhc2V0czogRGF0YXNldHM7XG4gIGVkaXRvcjoge3NlbGVjdGVkRmVhdHVyZTogRmVhdHVyZTsgbW9kZTogc3RyaW5nOyBzZWxlY3Rpb25Db250ZXh0PzogRmVhdHVyZVNlbGVjdGlvbkNvbnRleHR9O1xuICBpbmRleDogbnVtYmVyO1xuICBjbGFzc05hbWU/OiBzdHJpbmc7XG4gIHN0eWxlOiBDU1NQcm9wZXJ0aWVzO1xuICBvblNlbGVjdDogKGY6IEZlYXR1cmUgfCBudWxsKSA9PiBhbnk7XG4gIG9uU2V0RWRpdG9yTW9kZTogKG06IGFueSkgPT4gdm9pZDtcbiAgb25EZWxldGVGZWF0dXJlOiAoZjogRmVhdHVyZSkgPT4gYW55O1xuICBvblNldEZlYXR1cmVQcm9wZXJ0aWVzOiAoZjogRmVhdHVyZSwgcHJvcGVydGllczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pID0+IGFueTtcbiAgb25Ub2dnbGVQb2x5Z29uRmlsdGVyOiAobDogTGF5ZXIsIGY6IEZlYXR1cmUpID0+IGFueTtcbn1cblxuZXhwb3J0IHR5cGUgUG9ydGFsRWRpdG9yUHJvcHMgPSBGZWF0dXJlQWN0aW9uUGFuZWxQcm9wcyAmIHtcbiAgdmlzaWJsZVBhbmVsOiBib29sZWFuO1xuICBzdHlsZT86IFJlYWN0LkNTU1Byb3BlcnRpZXM7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBFZGl0b3JGYWN0b3J5KFxuICBGZWF0dXJlQWN0aW9uUGFuZWw6IFJlYWN0LkZDPEZlYXR1cmVBY3Rpb25QYW5lbFByb3BzPlxuKTogUmVhY3QuQ29tcG9uZW50Q2xhc3M8RWRpdG9yUHJvcHM+IHtcbiAgY29uc3QgUG9ydGFsRWRpdG9yOiBSZWFjdC5GQzxQb3J0YWxFZGl0b3JQcm9wcz4gPSAoe1xuICAgIHZpc2libGVQYW5lbCxcbiAgICBjbGFzc05hbWUsXG4gICAgc3R5bGUsXG4gICAgc2VsZWN0ZWRGZWF0dXJlLFxuICAgIGRhdGFzZXRzLFxuICAgIGxheWVycyxcbiAgICBjdXJyZW50RmlsdGVyLFxuICAgIG9uQ2xvc2UsXG4gICAgb25EZWxldGVGZWF0dXJlLFxuICAgIG9uU2V0RmVhdHVyZVByb3BlcnRpZXMsXG4gICAgb25Ub2dnbGVMYXllcixcbiAgICBwb3NpdGlvblxuICB9KSA9PiB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxSb290Q29udGV4dC5Db25zdW1lcj5cbiAgICAgICAge2NvbnRleHQgPT4gKFxuICAgICAgICAgIDw+XG4gICAgICAgICAgICB7Y3JlYXRlUG9ydGFsKFxuICAgICAgICAgICAgICA8U3R5bGVkV3JhcHBlciBjbGFzc05hbWU9e2NsYXNzbmFtZXMoJ2VkaXRvcicsIGNsYXNzTmFtZSl9IHN0eWxlPXtzdHlsZX0+XG4gICAgICAgICAgICAgICAge3Zpc2libGVQYW5lbCA/IChcbiAgICAgICAgICAgICAgICAgIDxGZWF0dXJlQWN0aW9uUGFuZWxcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRGZWF0dXJlPXtzZWxlY3RlZEZlYXR1cmUgYXMgRWRpdGFibGVGZWF0dXJlPFBvbHlnb24+fVxuICAgICAgICAgICAgICAgICAgICBkYXRhc2V0cz17ZGF0YXNldHN9XG4gICAgICAgICAgICAgICAgICAgIGxheWVycz17bGF5ZXJzfVxuICAgICAgICAgICAgICAgICAgICBjdXJyZW50RmlsdGVyPXtjdXJyZW50RmlsdGVyfVxuICAgICAgICAgICAgICAgICAgICBvbkNsb3NlPXtvbkNsb3NlfVxuICAgICAgICAgICAgICAgICAgICBvbkRlbGV0ZUZlYXR1cmU9e29uRGVsZXRlRmVhdHVyZX1cbiAgICAgICAgICAgICAgICAgICAgb25TZXRGZWF0dXJlUHJvcGVydGllcz17b25TZXRGZWF0dXJlUHJvcGVydGllc31cbiAgICAgICAgICAgICAgICAgICAgb25Ub2dnbGVMYXllcj17b25Ub2dnbGVMYXllcn1cbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb249e3Bvc2l0aW9uIHx8IG51bGx9XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8L1N0eWxlZFdyYXBwZXI+LFxuICAgICAgICAgICAgICBjb250ZXh0Py5jdXJyZW50ID8/IGRvY3VtZW50LmJvZHlcbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC8+XG4gICAgICAgICl9XG4gICAgICA8L1Jvb3RDb250ZXh0LkNvbnN1bWVyPlxuICAgICk7XG4gIH07XG4gIGNsYXNzIEVkaXRvclVubWVtb2l6ZWQgZXh0ZW5kcyBDb21wb25lbnQ8RWRpdG9yUHJvcHM+IHtcbiAgICBzdGF0aWMgZGVmYXVsdFByb3BzID0ge307XG5cbiAgICBzdGF0aWMgZGlzcGxheU5hbWUgPSAnRWRpdG9yJztcblxuICAgIHN0YXRlID0ge307XG5cbiAgICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICAgIFdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgdGhpcy5fb25LZXlQcmVzc2VkKTtcbiAgICB9XG5cbiAgICBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcbiAgICAgIFdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdrZXlkb3duJywgdGhpcy5fb25LZXlQcmVzc2VkKTtcbiAgICB9XG5cbiAgICBsYXllclNlbGVjdG9yID0gKHByb3BzOiBFZGl0b3JQcm9wcykgPT4gcHJvcHMubGF5ZXJzO1xuICAgIGZpbHRlclNlbGVjdG9yID0gKHByb3BzOiBFZGl0b3JQcm9wcykgPT4gcHJvcHMuZmlsdGVycztcbiAgICBzZWxlY3RlZEZlYXR1cmVJZFNlbGVjdG9yID0gKHByb3BzOiBFZGl0b3JQcm9wcykgPT5cbiAgICAgIGdldChwcm9wcywgWydlZGl0b3InLCAnc2VsZWN0ZWRGZWF0dXJlJywgJ2lkJ10pO1xuICAgIGVkaXRvckZlYXR1cmVTZWxlY3RvciA9IChwcm9wczogRWRpdG9yUHJvcHMpID0+IGdldChwcm9wcywgWydlZGl0b3InLCAnZmVhdHVyZXMnXSk7XG5cbiAgICBjdXJyZW50RmlsdGVyU2VsZWN0b3IgPSBjcmVhdGVTZWxlY3RvcihcbiAgICAgIHRoaXMuZmlsdGVyU2VsZWN0b3IsXG4gICAgICB0aGlzLnNlbGVjdGVkRmVhdHVyZUlkU2VsZWN0b3IsXG4gICAgICAoZmlsdGVycywgc2VsZWN0ZWRGZWF0dXJlSWQpID0+IGZpbHRlcnMuZmluZChmID0+IGYudmFsdWUgJiYgZi52YWx1ZS5pZCA9PT0gc2VsZWN0ZWRGZWF0dXJlSWQpXG4gICAgKTtcblxuICAgIGF2YWlsYWJsZUxheWVyc1NlbGVjdG9yID0gY3JlYXRlU2VsZWN0b3IodGhpcy5sYXllclNlbGVjdG9yLCBsYXllcnMgPT5cbiAgICAgIGxheWVyc1xuICAgICAgICAuZmlsdGVyKGVkaXRvckxheWVyRmlsdGVyKVxuICAgICAgICAuZmlsdGVyKGxheWVyID0+IGxheWVyLmNvbmZpZz8uaXNWaXNpYmxlICYmIGxheWVyLmlkICE9PSBHRU9DT0RFUl9MQVlFUl9JRClcbiAgICApO1xuXG4gICAgYWxsRmVhdHVyZXNTZWxlY3RvciA9IGNyZWF0ZVNlbGVjdG9yKFxuICAgICAgdGhpcy5maWx0ZXJTZWxlY3RvcixcbiAgICAgIHRoaXMuZWRpdG9yRmVhdHVyZVNlbGVjdG9yLFxuICAgICAgKGZpbHRlcnMsIGVkaXRvckZlYXR1cmVzKSA9PlxuICAgICAgICBmaWx0ZXJzXG4gICAgICAgICAgLmZpbHRlcihmID0+IGYudHlwZSA9PT0gRklMVEVSX1RZUEVTLnBvbHlnb24pXG4gICAgICAgICAgLm1hcChmID0+IGYudmFsdWUpXG4gICAgICAgICAgLmNvbmNhdChlZGl0b3JGZWF0dXJlcylcbiAgICApO1xuXG4gICAgaXNJbkZvY3VzID0gKCkgPT4gZG9jdW1lbnQuYWN0aXZlRWxlbWVudD8uaWQgPT09IERFQ0tHTF9SRU5ERVJfTEFZRVI7XG5cbiAgICBpc1R5cGluZ1RhcmdldCA9ICh0YXJnZXQ6IEV2ZW50VGFyZ2V0IHwgbnVsbCkgPT4ge1xuICAgICAgY29uc3QgZWxlbWVudCA9IHRhcmdldCBhcyBIVE1MRWxlbWVudCB8IG51bGw7XG4gICAgICBpZiAoIWVsZW1lbnQpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgY29uc3QgdGFnTmFtZSA9IGVsZW1lbnQudGFnTmFtZTtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIHRhZ05hbWUgPT09ICdJTlBVVCcgfHxcbiAgICAgICAgdGFnTmFtZSA9PT0gJ1RFWFRBUkVBJyB8fFxuICAgICAgICB0YWdOYW1lID09PSAnU0VMRUNUJyB8fFxuICAgICAgICBCb29sZWFuKGVsZW1lbnQuaXNDb250ZW50RWRpdGFibGUpXG4gICAgICApO1xuICAgIH07XG5cbiAgICBfb25LZXlQcmVzc2VkID0gKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgICBjb25zdCBpc0VzY2FwZSA9IGV2ZW50LmtleUNvZGUgPT09IEtleUV2ZW50LkRPTV9WS19FU0NBUEUgfHwgZXZlbnQua2V5ID09PSAnRXNjYXBlJztcbiAgICAgIGlmIChpc0VzY2FwZSAmJiAhdGhpcy5pc1R5cGluZ1RhcmdldChldmVudC50YXJnZXQpKSB7XG4gICAgICAgIGNvbnN0IGRyYXdpbmcgPSBFZGl0b3JMYXllclV0aWxzLmlzRHJhd2luZ0FjdGl2ZSh0cnVlLCB0aGlzLnByb3BzLmVkaXRvci5tb2RlKTtcbiAgICAgICAgaWYgKGRyYXdpbmcpIHtcbiAgICAgICAgICB0aGlzLnByb3BzLm9uU2V0RWRpdG9yTW9kZShFRElUT1JfTU9ERVMuRURJVCk7XG4gICAgICAgICAgdGhpcy5wcm9wcy5vblNlbGVjdChudWxsKTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmlzSW5Gb2N1cygpKSB7XG4gICAgICAgICAgdGhpcy5wcm9wcy5vblNlbGVjdChudWxsKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLmlzSW5Gb2N1cygpKSB7XG4gICAgICAgIHN3aXRjaCAoZXZlbnQua2V5Q29kZSkge1xuICAgICAgICAgIGNhc2UgS2V5RXZlbnQuRE9NX1ZLX0RFTEVURTpcbiAgICAgICAgICBjYXNlIEtleUV2ZW50LkRPTV9WS19CQUNLX1NQQUNFOlxuICAgICAgICAgICAgdGhpcy5fb25EZWxldGVTZWxlY3RlZEZlYXR1cmUoKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG5cbiAgICBfb25EZWxldGVTZWxlY3RlZEZlYXR1cmUgPSAoKSA9PiB7XG4gICAgICBjb25zdCB7ZWRpdG9yfSA9IHRoaXMucHJvcHM7XG4gICAgICBjb25zdCB7c2VsZWN0ZWRGZWF0dXJlfSA9IGVkaXRvcjtcbiAgICAgIGlmIChzZWxlY3RlZEZlYXR1cmUpIHtcbiAgICAgICAgdGhpcy5wcm9wcy5vbkRlbGV0ZUZlYXR1cmUoc2VsZWN0ZWRGZWF0dXJlKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgX2Nsb3NlRmVhdHVyZUFjdGlvbiA9ICgpID0+IHtcbiAgICAgIC8vIHJlc2V0IHNlbGVjdGlvbiBjb250ZXh0XG4gICAgICBjb25zdCB7c2VsZWN0ZWRGZWF0dXJlfSA9IHRoaXMucHJvcHMuZWRpdG9yO1xuICAgICAgdGhpcy5wcm9wcy5vblNlbGVjdChzZWxlY3RlZEZlYXR1cmUpO1xuICAgIH07XG5cbiAgICBfdG9nZ2xlUG9seWdvbkZpbHRlciA9IChsYXllcjogTGF5ZXIpID0+IHtcbiAgICAgIGNvbnN0IHtzZWxlY3RlZEZlYXR1cmV9ID0gdGhpcy5wcm9wcy5lZGl0b3I7XG4gICAgICBpZiAoc2VsZWN0ZWRGZWF0dXJlKSB7XG4gICAgICAgIHRoaXMucHJvcHMub25Ub2dnbGVQb2x5Z29uRmlsdGVyKGxheWVyLCBzZWxlY3RlZEZlYXR1cmUpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBfb25TZXRGZWF0dXJlUHJvcGVydGllcyA9IChmZWF0dXJlOiBGZWF0dXJlLCBwcm9wZXJ0aWVzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPikgPT4ge1xuICAgICAgdGhpcy5wcm9wcy5vblNldEZlYXR1cmVQcm9wZXJ0aWVzKGZlYXR1cmUsIHByb3BlcnRpZXMpO1xuICAgIH07XG5cbiAgICByZW5kZXIoKSB7XG4gICAgICBjb25zdCB7Y2xhc3NOYW1lLCBkYXRhc2V0cywgZWRpdG9yLCBzdHlsZSwgaW5kZXh9ID0gdGhpcy5wcm9wcztcbiAgICAgIGNvbnN0IHtzZWxlY3RlZEZlYXR1cmUsIHNlbGVjdGlvbkNvbnRleHR9ID0gZWRpdG9yO1xuICAgICAgY29uc3QgY3VycmVudEZpbHRlciA9IHRoaXMuY3VycmVudEZpbHRlclNlbGVjdG9yKHRoaXMucHJvcHMpO1xuICAgICAgY29uc3QgYXZhaWxhYmxlTGF5ZXJzID0gdGhpcy5hdmFpbGFibGVMYXllcnNTZWxlY3Rvcih0aGlzLnByb3BzKTtcblxuICAgICAgY29uc3Qge3JpZ2h0Q2xpY2ssIHBvc2l0aW9uLCBtYXBJbmRleH0gPSBzZWxlY3Rpb25Db250ZXh0IHx8IHt9O1xuXG4gICAgICByZXR1cm4gKFxuICAgICAgICA8UG9ydGFsRWRpdG9yXG4gICAgICAgICAgc2VsZWN0ZWRGZWF0dXJlPXtzZWxlY3RlZEZlYXR1cmUgYXMgRWRpdGFibGVGZWF0dXJlPFBvbHlnb24+fVxuICAgICAgICAgIHZpc2libGVQYW5lbD17Qm9vbGVhbihyaWdodENsaWNrKSAmJiBzZWxlY3RlZEZlYXR1cmUgJiYgaW5kZXggPT09IG1hcEluZGV4fVxuICAgICAgICAgIGRhdGFzZXRzPXtkYXRhc2V0c31cbiAgICAgICAgICBsYXllcnM9e2F2YWlsYWJsZUxheWVyc31cbiAgICAgICAgICBjdXJyZW50RmlsdGVyPXtjdXJyZW50RmlsdGVyfVxuICAgICAgICAgIG9uQ2xvc2U9e3RoaXMuX2Nsb3NlRmVhdHVyZUFjdGlvbn1cbiAgICAgICAgICBvbkRlbGV0ZUZlYXR1cmU9e3RoaXMuX29uRGVsZXRlU2VsZWN0ZWRGZWF0dXJlfVxuICAgICAgICAgIG9uU2V0RmVhdHVyZVByb3BlcnRpZXM9e1xuICAgICAgICAgICAgdGhpcy5fb25TZXRGZWF0dXJlUHJvcGVydGllcyBhcyBGZWF0dXJlQWN0aW9uUGFuZWxQcm9wc1snb25TZXRGZWF0dXJlUHJvcGVydGllcyddXG4gICAgICAgICAgfVxuICAgICAgICAgIG9uVG9nZ2xlTGF5ZXI9e3RoaXMuX3RvZ2dsZVBvbHlnb25GaWx0ZXJ9XG4gICAgICAgICAgcG9zaXRpb249e3Bvc2l0aW9uIHx8IG51bGx9XG4gICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWV9XG4gICAgICAgICAgc3R5bGU9e3N0eWxlfVxuICAgICAgICAvPlxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBjb25zdCBFZGl0b3IgPSBSZWFjdC5tZW1vKEVkaXRvclVubWVtb2l6ZWQpIGFzIHVua25vd24gYXMgdHlwZW9mIEVkaXRvclVubWVtb2l6ZWQ7XG4gIEVkaXRvci5kaXNwbGF5TmFtZSA9ICdFZGl0b3InO1xuICByZXR1cm4gRWRpdG9yO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFHQSxJQUFBQSxNQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxTQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxpQkFBQSxHQUFBQyxzQkFBQSxDQUFBSCxPQUFBO0FBQ0EsSUFBQUksT0FBQSxHQUFBRCxzQkFBQSxDQUFBSCxPQUFBO0FBQ0EsSUFBQUssV0FBQSxHQUFBRixzQkFBQSxDQUFBSCxPQUFBO0FBQ0EsSUFBQU0sSUFBQSxHQUFBSCxzQkFBQSxDQUFBSCxPQUFBO0FBQ0EsSUFBQU8sU0FBQSxHQUFBUCxPQUFBO0FBQ0EsSUFBQVEsbUJBQUEsR0FBQUwsc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFTLFVBQUEsR0FBQVQsT0FBQTtBQU9BLElBQUFVLE9BQUEsR0FBQVYsT0FBQTtBQUtBLElBQUFXLFFBQUEsR0FBQVgsT0FBQTtBQUF1QyxJQUFBWSxl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
@@ -129,7 +129,7 @@ function EffectConfiguratorFactory(RangeSlider, EffectTimeConfigurator, SurfaceF
129
129
  }, [id, effect, parameters, updateEffectConfig]);
130
130
  var onTimeParametersChanged = (0, _react.useCallback)(function (parameters) {
131
131
  updateEffectConfig(null, id, {
132
- parameters: _objectSpread(_objectSpread(_objectSpread({}, parameters.timestamp ? {
132
+ parameters: _objectSpread(_objectSpread(_objectSpread({}, parameters.timestamp != null ? {
133
133
  timestamp: parameters.timestamp
134
134
  } : null), parameters.timezone ? {
135
135
  timezone: parameters.timezone
@@ -470,4 +470,4 @@ function EffectConfiguratorFactory(RangeSlider, EffectTimeConfigurator, SurfaceF
470
470
  };
471
471
  return (0, _reactIntl.injectIntl)(EffectConfigurator);
472
472
  }
473
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfcmVhY3RJbnRsIiwiX2NvbnN0YW50cyIsIl91dGlscyIsIl9yYW5nZVNsaWRlciIsIl9pY29ucyIsIl9zdHlsZWRDb21wb25lbnRzMiIsIl9lZmZlY3RUaW1lQ29uZmlndXJhdG9yIiwiX2NvbXBhY3RDb2xvclBpY2tlciIsIl9zdXJmYWNlRm9nU2VjdGlvbiIsIl90ZW1wbGF0ZU9iamVjdCIsIl90ZW1wbGF0ZU9iamVjdDIiLCJfdGVtcGxhdGVPYmplY3QzIiwiX3RlbXBsYXRlT2JqZWN0NCIsIl90ZW1wbGF0ZU9iamVjdDUiLCJfdGVtcGxhdGVPYmplY3Q2IiwiX3RlbXBsYXRlT2JqZWN0NyIsIl90ZW1wbGF0ZU9iamVjdDgiLCJfdGVtcGxhdGVPYmplY3Q5IiwiX3RlbXBsYXRlT2JqZWN0MCIsIl90ZW1wbGF0ZU9iamVjdDEiLCJfdGVtcGxhdGVPYmplY3QxMCIsIl90ZW1wbGF0ZU9iamVjdDExIiwiX3RlbXBsYXRlT2JqZWN0MTIiLCJfdGVtcGxhdGVPYmplY3QxMyIsIl90ZW1wbGF0ZU9iamVjdDE0IiwiX3RlbXBsYXRlT2JqZWN0MTUiLCJfdGVtcGxhdGVPYmplY3QxNiIsImUiLCJ0IiwiV2Vha01hcCIsInIiLCJuIiwiX19lc01vZHVsZSIsIm8iLCJpIiwiZiIsIl9fcHJvdG9fXyIsIl90eXBlb2YzIiwiaGFzIiwiZ2V0Iiwic2V0IiwiX3QiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsIm93bktleXMiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwiZmlsdGVyIiwiZW51bWVyYWJsZSIsInB1c2giLCJhcHBseSIsIl9vYmplY3RTcHJlYWQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5MiIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiU3R5bGVkRWZmZWN0Q29uZmlndXJhdG9yIiwic3R5bGVkIiwiZGl2IiwiYXR0cnMiLCJjbGFzc05hbWUiLCJfdGFnZ2VkVGVtcGxhdGVMaXRlcmFsMiIsInByb3BzIiwidGhlbWUiLCJlZmZlY3RDb25maWd1cmF0b3JNYXJnaW4iLCJlZmZlY3RDb25maWd1cmF0b3JQYWRkaW5nIiwiUGFuZWxMYWJlbFdyYXBwZXIiLCJleHBvcnRzIiwiU3R5bGVkQ29sb3JTZWxlY3RvcldyYXBwZXIiLCJTdHlsZWRWZXJ0aWNhbFNlcGFyYXRvciIsImlucHV0QmdkIiwiU3R5bGVkV3JhcHBlciIsIl9wcm9wcyQkbWFyZ2luQm90dG9tIiwiJG1hcmdpbkJvdHRvbSIsIlN0eWxlZENvbmZpZ1NlY3Rpb24iLCJTZWN0aW9uVGl0bGUiLCJpbnB1dEZvbnRTaXplIiwiZWZmZWN0UGFuZWxUZXh0U2Vjb25kYXJ5MSIsIlNlY3Rpb25TdWJUaXRsZSIsImVmZmVjdFBhbmVsVGV4dFNlY29uZGFyeTIiLCJTdHlsZVNsaWRlcldyYXBwZXIiLCJSZWd1bGFyT3V0ZXJXcmFwcGVyIiwiUmVndWxhclNlY3Rpb25UaXRsZVdyYXBwZXIiLCJSZWd1bGFyU2xpZGVyV3JhcHBlciIsIlN0eWxlZENoZWNrYm94V3JhcHBlciIsIlN0eWxlZENoZWNrYm94IiwiaW5wdXQiLCJhY3RpdmVDb2xvciIsIlN0eWxlZENoZWNrYm94TGFiZWwiLCJsYWJlbCIsIlN0eWxlZEhpbnRUb29sdGlwIiwiVG9vbHRpcCIsIlN0eWxlZEhpbnRJY29uIiwic3BhbiIsImxhYmVsQ29sb3IiLCJ0ZXh0Q29sb3JIbCIsIlN0eWxlZENvbG9yQ2hlY2tib3hSb3ciLCJDT01NT05fU0xJREVSX1BST1BTIiwic2hvd0lucHV0IiwiaXNSYW5nZWQiLCJzdGVwIiwiRWZmZWN0Q29uZmlndXJhdG9yRmFjdG9yeSIsImRlcHMiLCJSYW5nZVNsaWRlckZhY3RvcnkiLCJFZmZlY3RUaW1lQ29uZmlndXJhdG9yRmFjdG9yeSIsIlN1cmZhY2VGb2dFbGV2YXRpb25TZWN0aW9uRmFjdG9yeSIsIlJhbmdlU2xpZGVyIiwiRWZmZWN0VGltZUNvbmZpZ3VyYXRvciIsIlN1cmZhY2VGb2dFbGV2YXRpb25TZWN0aW9uIiwiU2hhZG93RWZmZWN0Q29uZmlndXJhdG9yIiwiX3JlZiIsImVmZmVjdCIsInVwZGF0ZUVmZmVjdENvbmZpZyIsInBhcmFtZXRlcnMiLCJpZCIsInNsaWRlclByb3BzIiwidXNlTWVtbyIsInByb3BOYW1lcyIsImRlc2NyaXB0aW9ucyIsImdldFBhcmFtZXRlckRlc2NyaXB0aW9ucyIsIm1hcCIsInByb3BOYW1lIiwiX2Rlc2MkbWluIiwiX2Rlc2MkbWF4IiwiZGVzYyIsImZpbmQiLCJkIiwibmFtZSIsIm1pbiIsIm1heCIsInZhbHVlMSIsInJhbmdlIiwidmFsdWUwIiwib25DaGFuZ2UiLCJ2YWx1ZSIsImV2ZW50Iiwib25UaW1lUGFyYW1ldGVyc0NoYW5nZWQiLCJ1c2VDYWxsYmFjayIsInRpbWVzdGFtcCIsInRpbWV6b25lIiwidGltZU1vZGUiLCJjb2xvclBpY2tlclByb3BzIiwiY29sb3JTZXRzIiwic2VsZWN0ZWRDb2xvciIsInNldENvbG9yIiwidiIsImNyZWF0ZUVsZW1lbnQiLCJrZXkiLCJjb2xvciIsIm9uU2V0Q29sb3IiLCJJY29uIiwiQXJyb3dEb3duU21hbGwiLCJfZXh0ZW5kczIiLCJkZWZhdWx0VW5pZm9ybXMiLCJFTEVWQVRJT05fRVhUUkFfUEFSQU1TIiwiU2V0IiwiUG9zdFByb2Nlc3NpbmdFZmZlY3RDb25maWd1cmF0b3IiLCJfcmVmMiIsIl9lZmZlY3QkZGVja0VmZmVjdCIsInVuaWZvcm1zIiwiZGVja0VmZmVjdCIsIm1vZHVsZSIsInByb3BUeXBlcyIsInBhcmFtZXRlckRlc2NyaXB0aW9ucyIsImhhc0VsZXZhdGlvblNlY3Rpb24iLCJzb21lIiwiZmxhdFBhcmFtZXRlckRlc2NyaXB0aW9ucyIsInJlZHVjZSIsImFjYyIsImRlc2NyaXB0aW9uIiwidHlwZSIsIkVMRVZBVElPTl9TRUNUSU9OX1RZUEUiLCJBcnJheSIsImlzQXJyYXkiLCJkZWZhdWx0VmFsdWUiLCJfIiwiaW5kZXgiLCJfZGVzY3JpcHRpb24kbGFiZWwiLCJjb250cm9scyIsImlzRWxldmF0aW9uU2VjdGlvbiIsImlzQ29sb3IiLCJwYXJhbU5hbWUiLCJpc0NoZWNrYm94IiwiY2hlY2tlZCIsIkJvb2xlYW4iLCJ0b29sdGlwIiwicmF3VW5pZm9ybSIsInVuaWZvcm0iLCJfdHlwZW9mMiIsInByZXZWYWx1ZSIsIm5ld1ZhbHVlIiwiaXNOdW1iZXIiLCJfZGVzYyRtaW4yIiwiX2Rlc2MkbWF4MiIsIl9kZXNjJG1pbjMiLCJfcmVmMyIsIl9yZWY0IiwiX2Rlc2MkbWluNCIsIl9yZWY1IiwiX3JlZjYiLCJfZGVzYyRtYXgzIiwicmFuZ2VNaW4iLCJzb2Z0TWluIiwicmFuZ2VNYXgiLCJzb2Z0TWF4IiwicmFuZ2VTcGFuIiwidW5kZWZpbmVkIiwiX3JlZjciLCJlbGVtZW50cyIsIl9sb29wIiwiY29udHJvbCIsIl9jb250cm9sJG9uU2V0Q29sb3IyIiwibmV4dENvbnRyb2wiLCJfY29udHJvbCRvblNldENvbG9yIiwiY2JUb29sdGlwSWQiLCJjb25jYXQiLCJvbkNsaWNrIiwic3RvcFByb3BhZ2F0aW9uIiwiRnJhZ21lbnQiLCJkZWxheVNob3ciLCJfcmV0IiwiRWZmZWN0Q29uZmlndXJhdG9yIiwiX3JlZjgiLCJMSUdIVF9BTkRfU0hBRE9XX0VGRkVDVCIsImluamVjdEludGwiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZWZmZWN0cy9lZmZlY3QtY29uZmlndXJhdG9yLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQgUmVhY3QsIHt1c2VDYWxsYmFjaywgdXNlTWVtb30gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdzdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQge2luamVjdEludGwsIEludGxTaGFwZX0gZnJvbSAncmVhY3QtaW50bCc7XG5cbmltcG9ydCB7TElHSFRfQU5EX1NIQURPV19FRkZFQ1R9IGZyb20gJ0BrZXBsZXIuZ2wvY29uc3RhbnRzJztcbmltcG9ydCB7aXNOdW1iZXJ9IGZyb20gJ0BrZXBsZXIuZ2wvdXRpbHMnO1xuaW1wb3J0IHtFZmZlY3QsIEVmZmVjdFVwZGF0ZVByb3BzfSBmcm9tICdAa2VwbGVyLmdsL3R5cGVzJztcblxuaW1wb3J0IFJhbmdlU2xpZGVyRmFjdG9yeSBmcm9tICcuLi9jb21tb24vcmFuZ2Utc2xpZGVyJztcbmltcG9ydCB7QXJyb3dEb3duU21hbGx9IGZyb20gJy4uL2NvbW1vbi9pY29ucyc7XG5pbXBvcnQge1Rvb2x0aXB9IGZyb20gJy4uL2NvbW1vbi9zdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQgRWZmZWN0VGltZUNvbmZpZ3VyYXRvckZhY3RvcnkgZnJvbSAnLi9lZmZlY3QtdGltZS1jb25maWd1cmF0b3InO1xuaW1wb3J0IENvbXBhY3RDb2xvclBpY2tlciBmcm9tICcuL2NvbXBhY3QtY29sb3ItcGlja2VyJztcbmltcG9ydCBTdXJmYWNlRm9nRWxldmF0aW9uU2VjdGlvbkZhY3RvcnksIHtFTEVWQVRJT05fU0VDVElPTl9UWVBFfSBmcm9tICcuL3N1cmZhY2UtZm9nLXNlY3Rpb24nO1xuXG5leHBvcnQgdHlwZSBFZmZlY3RDb25maWd1cmF0b3JQcm9wcyA9IHtcbiAgZWZmZWN0OiBFZmZlY3Q7XG4gIHVwZGF0ZUVmZmVjdENvbmZpZzogKFxuICAgIGU6IEV2ZW50IHwgbnVsbCB8IHVuZGVmaW5lZCxcbiAgICBpZDogc3RyaW5nLFxuICAgIGNvbmZpZzogUGFydGlhbDxFZmZlY3RVcGRhdGVQcm9wcz5cbiAgKSA9PiB2b2lkO1xufTtcblxuY29uc3QgU3R5bGVkRWZmZWN0Q29uZmlndXJhdG9yID0gc3R5bGVkLmRpdi5hdHRycyh7XG4gIGNsYXNzTmFtZTogJ2VmZmVjdC1wYW5lbF9fY29uZmlnJ1xufSlgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmVmZmVjdENvbmZpZ3VyYXRvck1hcmdpbn07XG4gIHBhZGRpbmc6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuZWZmZWN0Q29uZmlndXJhdG9yUGFkZGluZ307XG5gO1xuXG5leHBvcnQgY29uc3QgUGFuZWxMYWJlbFdyYXBwZXIgPSBzdHlsZWQuZGl2LmF0dHJzKHtcbiAgY2xhc3NOYW1lOiAnc2lkZS1wYW5lbC1wYW5lbF9fbGFiZWwtd3JhcHBlcidcbn0pYFxuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogc2VsZi1zdGFydDtcbiAgbWFyZ2luLWJvdHRvbTogMTFweDtcblxuICAuc2lkZS1wYW5lbC1wYW5lbF9fbGFiZWwge1xuICAgIG1hcmdpbi10b3A6IDJweDtcbiAgICBtYXJnaW4tYm90dG9tOiAwcHg7XG4gIH1cbmA7XG5cbmV4cG9ydCBjb25zdCBTdHlsZWRDb2xvclNlbGVjdG9yV3JhcHBlciA9IHN0eWxlZC5kaXZgXG4gIG1hcmdpbi1yaWdodDogNXB4O1xuICBtYXJnaW4tbGVmdDogNXB4O1xuICBtYXJnaW4tYm90dG9tOiA2cHg7XG4gIG1hcmdpbi10b3A6IDJweDtcbmA7XG5cbmNvbnN0IFN0eWxlZFZlcnRpY2FsU2VwYXJhdG9yID0gc3R5bGVkLmRpdmBcbiAgaGVpZ2h0OiAxcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuaW5wdXRCZ2R9O1xuICBtYXJnaW4tdG9wOiAyMHB4O1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICBtYXJnaW4tbGVmdDogLTIwcHg7XG5gO1xuXG50eXBlIFN0eWxlZFdyYXBwZXJQcm9wcyA9IHtcbiAgJG1hcmdpbkJvdHRvbT86IG51bWJlcjtcbn07XG5jb25zdCBTdHlsZWRXcmFwcGVyID0gc3R5bGVkLmRpdjxTdHlsZWRXcmFwcGVyUHJvcHM+YFxuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIG1hcmdpbi1ib3R0b206ICR7cHJvcHMgPT4gcHJvcHMuJG1hcmdpbkJvdHRvbSA/PyA5fXB4O1xuYDtcblxuY29uc3QgU3R5bGVkQ29uZmlnU2VjdGlvbiA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5gO1xuXG5jb25zdCBTZWN0aW9uVGl0bGUgPSBzdHlsZWQuZGl2YFxuICBmb250LXNpemU6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuaW5wdXRGb250U2l6ZX07XG4gIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmVmZmVjdFBhbmVsVGV4dFNlY29uZGFyeTF9O1xuICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xuYDtcblxuY29uc3QgU2VjdGlvblN1YlRpdGxlID0gc3R5bGVkLmRpdmBcbiAgZm9udC1zaXplOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmlucHV0Rm9udFNpemV9O1xuICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5lZmZlY3RQYW5lbFRleHRTZWNvbmRhcnkyfTtcbiAgbWFyZ2luLWJvdHRvbTogOHB4O1xuICBtYXJnaW4tbGVmdDogNnB4O1xuYDtcblxuY29uc3QgU3R5bGVTbGlkZXJXcmFwcGVyID0gc3R5bGVkLmRpdmBcbiAgYWxpZ24tc2VsZjogZmxleC1zdGFydDtcbiAgd2lkdGg6IDE5OXB4O1xuICBoZWlnaHQ6IDMycHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIC5rZy1yYW5nZS1zbGlkZXJfX2lucHV0IHtcbiAgICBoZWlnaHQ6IDMycHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHBhZGRpbmc6IDNweCA2cHg7XG4gIH1cbiAgLmtnLXNsaWRlciB7XG4gICAgcGFkZGluZy1sZWZ0OiA2cHg7XG4gIH1cbiAgLmtnLXJhbmdlLXNsaWRlciB7XG4gICAgcGFkZGluZzogMHB4ICFpbXBvcnRhbnQ7XG4gIH1cbmA7XG5cbmNvbnN0IFJlZ3VsYXJPdXRlcldyYXBwZXIgPSBzdHlsZWQuZGl2LmF0dHJzKHtcbiAgY2xhc3NOYW1lOiAnZWZmZWN0LWNvbmZpZ3VyYXRvcl9fcHAtc2VjdGlvbidcbn0pYFxuICBtYXJnaW4tYm90dG9tOiA4cHg7XG5gO1xuXG5jb25zdCBSZWd1bGFyU2VjdGlvblRpdGxlV3JhcHBlciA9IHN0eWxlZC5kaXYuYXR0cnMoe1xuICBjbGFzc05hbWU6ICdlZmZlY3QtY29uZmlndXJhdG9yX19wcC1zZWN0aW9uLXRpdGxlJ1xufSlgXG4gIGZvbnQtc2l6ZTogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5pbnB1dEZvbnRTaXplfTtcbiAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuZWZmZWN0UGFuZWxUZXh0U2Vjb25kYXJ5MX07XG4gIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xuICBtYXJnaW4tYm90dG9tOiAtM3B4O1xuYDtcblxuY29uc3QgUmVndWxhclNsaWRlcldyYXBwZXIgPSBzdHlsZWQuZGl2LmF0dHJzKHtcbiAgY2xhc3NOYW1lOiAnZWZmZWN0LWNvbmZpZ3VyYXRvcl9fcHAtc2VjdGlvbi1jb250cm9sJ1xufSlgXG4gIGhlaWdodDogMzJweDtcbiAgLmtnLXJhbmdlLXNsaWRlcl9faW5wdXQge1xuICAgIGhlaWdodDogMzJweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgcGFkZGluZzogM3B4IDZweDtcbiAgfVxuICAua2ctc2xpZGVyIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDZweDtcbiAgfVxuICAua2ctcmFuZ2Utc2xpZGVyIHtcbiAgICBwYWRkaW5nOiAwcHggIWltcG9ydGFudDtcbiAgfVxuYDtcblxuY29uc3QgU3R5bGVkQ2hlY2tib3hXcmFwcGVyID0gc3R5bGVkLmRpdi5hdHRycyh7XG4gIGNsYXNzTmFtZTogJ2VmZmVjdC1jb25maWd1cmF0b3JfX3BwLXNlY3Rpb24tY2hlY2tib3gnXG59KWBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgY3Vyc29yOiBwb2ludGVyO1xuYDtcblxuY29uc3QgU3R5bGVkQ2hlY2tib3ggPSBzdHlsZWQuaW5wdXRgXG4gIG1hcmdpbi1yaWdodDogNnB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGFjY2VudC1jb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5hY3RpdmVDb2xvcn07XG5gO1xuXG5jb25zdCBTdHlsZWRDaGVja2JveExhYmVsID0gc3R5bGVkLmxhYmVsYFxuICBmb250LXNpemU6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuaW5wdXRGb250U2l6ZX07XG4gIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmVmZmVjdFBhbmVsVGV4dFNlY29uZGFyeTF9O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5gO1xuXG5jb25zdCBTdHlsZWRIaW50VG9vbHRpcCA9IHN0eWxlZChUb29sdGlwKWBcbiAgJi5fX3JlYWN0X2NvbXBvbmVudF90b29sdGlwIHtcbiAgICBtYXgtd2lkdGg6IDIyMHB4O1xuICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICB9XG5gO1xuXG5jb25zdCBTdHlsZWRIaW50SWNvbiA9IHN0eWxlZC5zcGFuYFxuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHdpZHRoOiAxNHB4O1xuICBoZWlnaHQ6IDE0cHg7XG4gIG1hcmdpbi1sZWZ0OiA2cHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgZm9udC1zaXplOiA5cHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5sYWJlbENvbG9yfTtcbiAgYm9yZGVyOiAxcHggc29saWQgJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5sYWJlbENvbG9yfTtcbiAgY3Vyc29yOiBoZWxwO1xuICAmOmhvdmVyIHtcbiAgICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS50ZXh0Q29sb3JIbH07XG4gICAgYm9yZGVyLWNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnRleHRDb2xvckhsfTtcbiAgfVxuYDtcblxuY29uc3QgU3R5bGVkQ29sb3JDaGVja2JveFJvdyA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgbWFyZ2luLWJvdHRvbTogOHB4O1xuYDtcblxuY29uc3QgQ09NTU9OX1NMSURFUl9QUk9QUyA9IHtcbiAgc2hvd0lucHV0OiB0cnVlLFxuICBpc1JhbmdlZDogZmFsc2UsXG4gIHN0ZXA6IDAuMDAxLFxuICBsYWJlbDogJ3ZhbHVlJ1xufTtcblxudHlwZSBFZmZlY3RQYXJhbWV0ZXJEZXNjcmlwdGlvbkZsYXR0ZW5lZCA9IHtcbiAgbmFtZTogc3RyaW5nO1xuICB0eXBlPzogJ251bWJlcicgfCAnYXJyYXknIHwgJ2NvbG9yJyB8ICdjaGVja2JveCc7XG4gIGxhYmVsPzogc3RyaW5nIHwgZmFsc2UgfCAoc3RyaW5nIHwgZmFsc2UpW107XG4gIHRvb2x0aXA/OiBzdHJpbmc7XG4gIG1pbjogbnVtYmVyO1xuICBtYXg6IG51bWJlcjtcbiAgZGVmYXVsdFZhbHVlPzogbnVtYmVyIHwgbnVtYmVyW10gfCBib29sZWFuO1xuICBpbmRleD86IG51bWJlcjtcbn07XG5cbkVmZmVjdENvbmZpZ3VyYXRvckZhY3RvcnkuZGVwcyA9IFtcbiAgUmFuZ2VTbGlkZXJGYWN0b3J5LFxuICBFZmZlY3RUaW1lQ29uZmlndXJhdG9yRmFjdG9yeSxcbiAgU3VyZmFjZUZvZ0VsZXZhdGlvblNlY3Rpb25GYWN0b3J5XG5dO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBFZmZlY3RDb25maWd1cmF0b3JGYWN0b3J5KFxuICBSYW5nZVNsaWRlcjogUmV0dXJuVHlwZTx0eXBlb2YgUmFuZ2VTbGlkZXJGYWN0b3J5PixcbiAgRWZmZWN0VGltZUNvbmZpZ3VyYXRvcjogUmV0dXJuVHlwZTx0eXBlb2YgRWZmZWN0VGltZUNvbmZpZ3VyYXRvckZhY3Rvcnk+LFxuICBTdXJmYWNlRm9nRWxldmF0aW9uU2VjdGlvbjogUmV0dXJuVHlwZTx0eXBlb2YgU3VyZmFjZUZvZ0VsZXZhdGlvblNlY3Rpb25GYWN0b3J5PlxuKTogUmVhY3QuRkM8RWZmZWN0Q29uZmlndXJhdG9yUHJvcHM+IHtcbiAgY29uc3QgU2hhZG93RWZmZWN0Q29uZmlndXJhdG9yOiBSZWFjdC5GQzxFZmZlY3RDb25maWd1cmF0b3JQcm9wcz4gPSAoe1xuICAgIGVmZmVjdCxcbiAgICB1cGRhdGVFZmZlY3RDb25maWdcbiAgfSkgPT4ge1xuICAgIGNvbnN0IHtwYXJhbWV0ZXJzLCBpZH0gPSBlZmZlY3Q7XG5cbiAgICBjb25zdCBzbGlkZXJQcm9wcyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgY29uc3QgcHJvcE5hbWVzID0gWydzaGFkb3dJbnRlbnNpdHknLCAnYW1iaWVudExpZ2h0SW50ZW5zaXR5JywgJ3N1bkxpZ2h0SW50ZW5zaXR5J107XG4gICAgICBjb25zdCBkZXNjcmlwdGlvbnMgPSBlZmZlY3QuZ2V0UGFyYW1ldGVyRGVzY3JpcHRpb25zKCk7XG4gICAgICByZXR1cm4gcHJvcE5hbWVzLm1hcChwcm9wTmFtZSA9PiB7XG4gICAgICAgIGNvbnN0IGRlc2MgPSBkZXNjcmlwdGlvbnMuZmluZChkID0+IGQubmFtZSA9PT0gcHJvcE5hbWUpO1xuICAgICAgICBjb25zdCBtaW4gPSBkZXNjPy5taW4gPz8gMDtcbiAgICAgICAgY29uc3QgbWF4ID0gZGVzYz8ubWF4ID8/IDE7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgdmFsdWUxOiBwYXJhbWV0ZXJzW3Byb3BOYW1lXSxcbiAgICAgICAgICByYW5nZTogW21pbiwgbWF4XSxcbiAgICAgICAgICB2YWx1ZTA6IG1pbixcbiAgICAgICAgICBvbkNoYW5nZTogKHZhbHVlOiBudW1iZXJbXSwgZXZlbnQ/OiBFdmVudCB8IG51bGwpID0+IHtcbiAgICAgICAgICAgIHVwZGF0ZUVmZmVjdENvbmZpZyhldmVudCwgaWQsIHtwYXJhbWV0ZXJzOiB7W3Byb3BOYW1lXTogdmFsdWVbMV19fSk7XG4gICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgfSk7XG4gICAgfSwgW2lkLCBlZmZlY3QsIHBhcmFtZXRlcnMsIHVwZGF0ZUVmZmVjdENvbmZpZ10pO1xuXG4gICAgY29uc3Qgb25UaW1lUGFyYW1ldGVyc0NoYW5nZWQgPSB1c2VDYWxsYmFjayhcbiAgICAgIHBhcmFtZXRlcnMgPT4ge1xuICAgICAgICB1cGRhdGVFZmZlY3RDb25maWcobnVsbCwgaWQsIHtcbiAgICAgICAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICAgICAgICAuLi4ocGFyYW1ldGVycy50aW1lc3RhbXAgPyB7dGltZXN0YW1wOiBwYXJhbWV0ZXJzLnRpbWVzdGFtcH0gOiBudWxsKSxcbiAgICAgICAgICAgIC4uLihwYXJhbWV0ZXJzLnRpbWV6b25lID8ge3RpbWV6b25lOiBwYXJhbWV0ZXJzLnRpbWV6b25lfSA6IG51bGwpLFxuICAgICAgICAgICAgLi4uKHBhcmFtZXRlcnMudGltZU1vZGUgPyB7dGltZU1vZGU6IHBhcmFtZXRlcnMudGltZU1vZGV9IDogbnVsbClcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSxcbiAgICAgIFtpZCwgdXBkYXRlRWZmZWN0Q29uZmlnXVxuICAgICk7XG5cbiAgICBjb25zdCBjb2xvclBpY2tlclByb3BzID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBjb25zdCBwcm9wTmFtZXMgPSBbJ2FtYmllbnRMaWdodENvbG9yJywgJ3N1bkxpZ2h0Q29sb3InLCAnc2hhZG93Q29sb3InXTtcbiAgICAgIHJldHVybiBwcm9wTmFtZXMubWFwKHByb3BOYW1lID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBjb2xvclNldHM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgc2VsZWN0ZWRDb2xvcjogcGFyYW1ldGVyc1twcm9wTmFtZV0sXG4gICAgICAgICAgICAgIHNldENvbG9yOiB2ID0+IHVwZGF0ZUVmZmVjdENvbmZpZyhudWxsLCBpZCwge3BhcmFtZXRlcnM6IHtbcHJvcE5hbWVdOiB2fX0pXG4gICAgICAgICAgICB9XG4gICAgICAgICAgXVxuICAgICAgICB9O1xuICAgICAgfSk7XG4gICAgfSwgW2lkLCBwYXJhbWV0ZXJzLCB1cGRhdGVFZmZlY3RDb25maWddKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8U3R5bGVkRWZmZWN0Q29uZmlndXJhdG9yIGtleT17ZWZmZWN0LmlkfT5cbiAgICAgICAgPFBhbmVsTGFiZWxXcmFwcGVyPlxuICAgICAgICAgIDxTZWN0aW9uVGl0bGU+eydEYXRlICYgVGltZSd9PC9TZWN0aW9uVGl0bGU+XG4gICAgICAgIDwvUGFuZWxMYWJlbFdyYXBwZXI+XG4gICAgICAgIDxFZmZlY3RUaW1lQ29uZmlndXJhdG9yXG4gICAgICAgICAgdGltZXN0YW1wPXtwYXJhbWV0ZXJzLnRpbWVzdGFtcH1cbiAgICAgICAgICB0aW1lem9uZT17cGFyYW1ldGVycy50aW1lem9uZX1cbiAgICAgICAgICB0aW1lTW9kZT17cGFyYW1ldGVycy50aW1lTW9kZX1cbiAgICAgICAgICBvbkNoYW5nZT17b25UaW1lUGFyYW1ldGVyc0NoYW5nZWR9XG4gICAgICAgIC8+XG5cbiAgICAgICAgPFN0eWxlZFZlcnRpY2FsU2VwYXJhdG9yIC8+XG5cbiAgICAgICAgPFN0eWxlZFdyYXBwZXIgJG1hcmdpbkJvdHRvbT17MH0+XG4gICAgICAgICAgPFNlY3Rpb25UaXRsZT57J1NoYWRvdyd9PC9TZWN0aW9uVGl0bGU+XG4gICAgICAgIDwvU3R5bGVkV3JhcHBlcj5cbiAgICAgICAgPFN0eWxlZFdyYXBwZXIgJG1hcmdpbkJvdHRvbT17MTZ9PlxuICAgICAgICAgIDxDb21wYWN0Q29sb3JQaWNrZXJcbiAgICAgICAgICAgIGxhYmVsPXsnQ29sb3InfVxuICAgICAgICAgICAgY29sb3I9e2NvbG9yUGlja2VyUHJvcHNbMl0uY29sb3JTZXRzWzBdLnNlbGVjdGVkQ29sb3J9XG4gICAgICAgICAgICBvblNldENvbG9yPXtjb2xvclBpY2tlclByb3BzWzJdLmNvbG9yU2V0c1swXS5zZXRDb2xvcn1cbiAgICAgICAgICAgIEljb249e0Fycm93RG93blNtYWxsfVxuICAgICAgICAgIC8+XG4gICAgICAgICAgPFN0eWxlZENvbmZpZ1NlY3Rpb24+XG4gICAgICAgICAgICA8U2VjdGlvblN1YlRpdGxlPkludGVuc2l0eTwvU2VjdGlvblN1YlRpdGxlPlxuICAgICAgICAgICAgPFN0eWxlU2xpZGVyV3JhcHBlcj5cbiAgICAgICAgICAgICAgPFJhbmdlU2xpZGVyIHsuLi5DT01NT05fU0xJREVSX1BST1BTfSB7Li4uc2xpZGVyUHJvcHNbMF19IC8+XG4gICAgICAgICAgICA8L1N0eWxlU2xpZGVyV3JhcHBlcj5cbiAgICAgICAgICA8L1N0eWxlZENvbmZpZ1NlY3Rpb24+XG4gICAgICAgIDwvU3R5bGVkV3JhcHBlcj5cblxuICAgICAgICA8U3R5bGVkV3JhcHBlciAkbWFyZ2luQm90dG9tPXswfT5cbiAgICAgICAgICA8U2VjdGlvblRpdGxlPnsnQW1iaWVudCBsaWdodCd9PC9TZWN0aW9uVGl0bGU+XG4gICAgICAgIDwvU3R5bGVkV3JhcHBlcj5cbiAgICAgICAgPFN0eWxlZFdyYXBwZXIgJG1hcmdpbkJvdHRvbT17MTZ9PlxuICAgICAgICAgIDxDb21wYWN0Q29sb3JQaWNrZXJcbiAgICAgICAgICAgIGxhYmVsPXsnQ29sb3InfVxuICAgICAgICAgICAgY29sb3I9e2NvbG9yUGlja2VyUHJvcHNbMF0uY29sb3JTZXRzWzBdLnNlbGVjdGVkQ29sb3J9XG4gICAgICAgICAgICBvblNldENvbG9yPXtjb2xvclBpY2tlclByb3BzWzBdLmNvbG9yU2V0c1swXS5zZXRDb2xvcn1cbiAgICAgICAgICAgIEljb249e0Fycm93RG93blNtYWxsfVxuICAgICAgICAgIC8+XG4gICAgICAgICAgPFN0eWxlZENvbmZpZ1NlY3Rpb24+XG4gICAgICAgICAgICA8U2VjdGlvblN1YlRpdGxlPkludGVuc2l0eTwvU2VjdGlvblN1YlRpdGxlPlxuICAgICAgICAgICAgPFN0eWxlU2xpZGVyV3JhcHBlcj5cbiAgICAgICAgICAgICAgPFJhbmdlU2xpZGVyIHsuLi5DT01NT05fU0xJREVSX1BST1BTfSB7Li4uc2xpZGVyUHJvcHNbMV19IC8+XG4gICAgICAgICAgICA8L1N0eWxlU2xpZGVyV3JhcHBlcj5cbiAgICAgICAgICA8L1N0eWxlZENvbmZpZ1NlY3Rpb24+XG4gICAgICAgIDwvU3R5bGVkV3JhcHBlcj5cblxuICAgICAgICA8U3R5bGVkV3JhcHBlciAkbWFyZ2luQm90dG9tPXswfT5cbiAgICAgICAgICA8U2VjdGlvblRpdGxlPnsnU3VuIGxpZ2h0J308L1NlY3Rpb25UaXRsZT5cbiAgICAgICAgPC9TdHlsZWRXcmFwcGVyPlxuICAgICAgICA8U3R5bGVkV3JhcHBlciAkbWFyZ2luQm90dG9tPXswfT5cbiAgICAgICAgICA8Q29tcGFjdENvbG9yUGlja2VyXG4gICAgICAgICAgICBsYWJlbD17J0NvbG9yJ31cbiAgICAgICAgICAgIGNvbG9yPXtjb2xvclBpY2tlclByb3BzWzFdLmNvbG9yU2V0c1swXS5zZWxlY3RlZENvbG9yfVxuICAgICAgICAgICAgb25TZXRDb2xvcj17Y29sb3JQaWNrZXJQcm9wc1sxXS5jb2xvclNldHNbMF0uc2V0Q29sb3J9XG4gICAgICAgICAgICBJY29uPXtBcnJvd0Rvd25TbWFsbH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIDxTdHlsZWRDb25maWdTZWN0aW9uPlxuICAgICAgICAgICAgPFNlY3Rpb25TdWJUaXRsZT5JbnRlbnNpdHk8L1NlY3Rpb25TdWJUaXRsZT5cbiAgICAgICAgICAgIDxTdHlsZVNsaWRlcldyYXBwZXI+XG4gICAgICAgICAgICAgIDxSYW5nZVNsaWRlciB7Li4uQ09NTU9OX1NMSURFUl9QUk9QU30gey4uLnNsaWRlclByb3BzWzJdfSAvPlxuICAgICAgICAgICAgPC9TdHlsZVNsaWRlcldyYXBwZXI+XG4gICAgICAgICAgPC9TdHlsZWRDb25maWdTZWN0aW9uPlxuICAgICAgICA8L1N0eWxlZFdyYXBwZXI+XG4gICAgICA8L1N0eWxlZEVmZmVjdENvbmZpZ3VyYXRvcj5cbiAgICApO1xuICB9O1xuICBjb25zdCBkZWZhdWx0VW5pZm9ybXMgPSB7fTtcblxuICBjb25zdCBFTEVWQVRJT05fRVhUUkFfUEFSQU1TID0gbmV3IFNldChbJ2hlaWdodEVuZCcsICdhbmltYXRlSGVpZ2h0JywgJ2xpbmVhckVhc2luZyddKTtcblxuICBjb25zdCBQb3N0UHJvY2Vzc2luZ0VmZmVjdENvbmZpZ3VyYXRvcjogUmVhY3QuRkM8RWZmZWN0Q29uZmlndXJhdG9yUHJvcHM+ID0gKHtcbiAgICBlZmZlY3QsXG4gICAgdXBkYXRlRWZmZWN0Q29uZmlnXG4gIH0pID0+IHtcbiAgICBjb25zdCB1bmlmb3JtcyA9IGVmZmVjdC5kZWNrRWZmZWN0Py5tb2R1bGUucHJvcFR5cGVzIHx8IGRlZmF1bHRVbmlmb3JtcztcbiAgICBjb25zdCBwYXJhbWV0ZXJEZXNjcmlwdGlvbnMgPSBlZmZlY3QuZ2V0UGFyYW1ldGVyRGVzY3JpcHRpb25zKCk7XG4gICAgY29uc3Qge3BhcmFtZXRlcnMsIGlkfSA9IGVmZmVjdDtcblxuICAgIGNvbnN0IGhhc0VsZXZhdGlvblNlY3Rpb24gPSBwYXJhbWV0ZXJEZXNjcmlwdGlvbnMuc29tZShkID0+IGQubmFtZSA9PT0gJ2FuaW1hdGVIZWlnaHQnKTtcblxuICAgIGNvbnN0IGZsYXRQYXJhbWV0ZXJEZXNjcmlwdGlvbnMgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIHJldHVybiBwYXJhbWV0ZXJEZXNjcmlwdGlvbnMucmVkdWNlKChhY2MsIGRlc2NyaXB0aW9uKSA9PiB7XG4gICAgICAgIGlmIChoYXNFbGV2YXRpb25TZWN0aW9uICYmIEVMRVZBVElPTl9FWFRSQV9QQVJBTVMuaGFzKGRlc2NyaXB0aW9uLm5hbWUpKSByZXR1cm4gYWNjO1xuXG4gICAgICAgIGlmIChoYXNFbGV2YXRpb25TZWN0aW9uICYmIGRlc2NyaXB0aW9uLm5hbWUgPT09ICdoZWlnaHQnKSB7XG4gICAgICAgICAgYWNjLnB1c2goey4uLmRlc2NyaXB0aW9uLCB0eXBlOiBFTEVWQVRJT05fU0VDVElPTl9UWVBFIGFzIGFueX0pO1xuICAgICAgICAgIHJldHVybiBhY2M7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZGVzY3JpcHRpb24udHlwZSA9PT0gJ2NvbG9yJykge1xuICAgICAgICAgIGFjYy5wdXNoKGRlc2NyaXB0aW9uKTtcbiAgICAgICAgfSBlbHNlIGlmIChkZXNjcmlwdGlvbi50eXBlID09PSAnYXJyYXknKSB7XG4gICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZGVzY3JpcHRpb24uZGVmYXVsdFZhbHVlKSkge1xuICAgICAgICAgICAgZGVzY3JpcHRpb24uZGVmYXVsdFZhbHVlLmZvckVhY2goKF8sIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgIGFjYy5wdXNoKHtcbiAgICAgICAgICAgICAgICAuLi5kZXNjcmlwdGlvbixcbiAgICAgICAgICAgICAgICBpbmRleCxcbiAgICAgICAgICAgICAgICBsYWJlbDogZGVzY3JpcHRpb24ubGFiZWw/LltpbmRleF1cbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgYWNjLnB1c2goZGVzY3JpcHRpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgIH0sIFtdIGFzIEVmZmVjdFBhcmFtZXRlckRlc2NyaXB0aW9uRmxhdHRlbmVkW10pO1xuICAgIH0sIFtwYXJhbWV0ZXJEZXNjcmlwdGlvbnMsIGhhc0VsZXZhdGlvblNlY3Rpb25dKTtcblxuICAgIGNvbnN0IGNvbnRyb2xzID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICByZXR1cm4gZmxhdFBhcmFtZXRlckRlc2NyaXB0aW9ucy5tYXAoZGVzYyA9PiB7XG4gICAgICAgIGlmICgoZGVzYy50eXBlIGFzIHN0cmluZykgPT09IEVMRVZBVElPTl9TRUNUSU9OX1RZUEUpIHtcbiAgICAgICAgICByZXR1cm4ge2lzRWxldmF0aW9uU2VjdGlvbjogdHJ1ZSBhcyBjb25zdH07XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZGVzYy50eXBlID09PSAnY29sb3InKSB7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGlzQ29sb3I6IHRydWUgYXMgY29uc3QsXG4gICAgICAgICAgICBsYWJlbDogZGVzYy5sYWJlbCB8fCBkZXNjLm5hbWUsXG4gICAgICAgICAgICBwYXJhbU5hbWU6IGRlc2MubmFtZSxcbiAgICAgICAgICAgIGNvbG9yOiBwYXJhbWV0ZXJzW2Rlc2MubmFtZV0gfHwgZGVzYy5kZWZhdWx0VmFsdWUgfHwgWzI1NSwgMjU1LCAyNTVdLFxuICAgICAgICAgICAgb25TZXRDb2xvcjogKHY6IFtudW1iZXIsIG51bWJlciwgbnVtYmVyXSkgPT5cbiAgICAgICAgICAgICAgdXBkYXRlRWZmZWN0Q29uZmlnKG51bGwsIGlkLCB7cGFyYW1ldGVyczoge1tkZXNjLm5hbWVdOiB2fX0pXG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChkZXNjLnR5cGUgPT09ICdjaGVja2JveCcpIHtcbiAgICAgICAgICBjb25zdCBsYWJlbCA9IHR5cGVvZiBkZXNjLmxhYmVsID09PSAnc3RyaW5nJyA/IGRlc2MubGFiZWwgOiBkZXNjLm5hbWU7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGlzQ2hlY2tib3g6IHRydWUgYXMgY29uc3QsXG4gICAgICAgICAgICBsYWJlbCxcbiAgICAgICAgICAgIHBhcmFtTmFtZTogZGVzYy5uYW1lLFxuICAgICAgICAgICAgY2hlY2tlZDogQm9vbGVhbihwYXJhbWV0ZXJzW2Rlc2MubmFtZV0pLFxuICAgICAgICAgICAgdG9vbHRpcDogZGVzYy50b29sdGlwLFxuICAgICAgICAgICAgb25DaGFuZ2U6ICgpID0+XG4gICAgICAgICAgICAgIHVwZGF0ZUVmZmVjdENvbmZpZyhudWxsLCBpZCwge3BhcmFtZXRlcnM6IHtbZGVzYy5uYW1lXTogIXBhcmFtZXRlcnNbZGVzYy5uYW1lXX19KVxuICAgICAgICAgIH07XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBwYXJhbU5hbWUgPSBkZXNjLm5hbWU7XG5cbiAgICAgICAgY29uc3QgcmF3VW5pZm9ybSA9IHVuaWZvcm1zW2Rlc2MubmFtZV07XG4gICAgICAgIGlmIChyYXdVbmlmb3JtICYmIHJhd1VuaWZvcm0ucHJpdmF0ZSkge1xuICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gbHVtYS5nbCA5IHdyYXBzIGFycmF5IHByb3BUeXBlcyBhcyB7dmFsdWU6IFsuLi5dfVxuICAgICAgICBjb25zdCB1bmlmb3JtID1cbiAgICAgICAgICByYXdVbmlmb3JtICYmIHR5cGVvZiByYXdVbmlmb3JtID09PSAnb2JqZWN0JyAmJiBBcnJheS5pc0FycmF5KHJhd1VuaWZvcm0udmFsdWUpXG4gICAgICAgICAgICA/IHJhd1VuaWZvcm0udmFsdWVcbiAgICAgICAgICAgIDogcmF3VW5pZm9ybTtcblxuICAgICAgICBjb25zdCBwcmV2VmFsdWUgPSBwYXJhbWV0ZXJzW3BhcmFtTmFtZV07XG5cbiAgICAgICAgY29uc3QgbGFiZWwgPSBkZXNjLmxhYmVsID09PSBmYWxzZSA/IGZhbHNlIDogZGVzYy5sYWJlbCB8fCBkZXNjLm5hbWU7XG5cbiAgICAgICAgLy8gdGhlIHVuaWZvcm0gaXMgW251bWJlciwgbnVtYmVyXSBhcnJheVxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh1bmlmb3JtKSAmJiB1bmlmb3JtLmxlbmd0aCA9PT0gMikge1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBsYWJlbCxcbiAgICAgICAgICAgIHZhbHVlMTogcHJldlZhbHVlW2Rlc2MuaW5kZXggfHwgMF0gfHwgMCxcbiAgICAgICAgICAgIHJhbmdlOiBbMCwgMV0sXG4gICAgICAgICAgICB2YWx1ZTA6IDAsXG4gICAgICAgICAgICBvbkNoYW5nZTogKG5ld1ZhbHVlOiBudW1iZXJbXSwgZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgdXBkYXRlRWZmZWN0Q29uZmlnKGV2ZW50LCBpZCwge1xuICAgICAgICAgICAgICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgICAgICAgICAgICAgIFtwYXJhbU5hbWVdOlxuICAgICAgICAgICAgICAgICAgICBkZXNjLmluZGV4ID09PSAwID8gW25ld1ZhbHVlWzFdLCBwcmV2VmFsdWVbMV1dIDogW3ByZXZWYWx1ZVswXSwgbmV3VmFsdWVbMV1dXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIC8vIHRoZSB1bmlmb3JtIGlzIGEgcGxhaW4gbnVtYmVyIHdpdGhvdXQgYW55IGRlc2NyaXB0aW9uXG4gICAgICAgIGVsc2UgaWYgKGlzTnVtYmVyKHVuaWZvcm0pKSB7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGxhYmVsLFxuICAgICAgICAgICAgdmFsdWUxOiBwcmV2VmFsdWUgPz8gMCxcbiAgICAgICAgICAgIHJhbmdlOiBbZGVzYy5taW4gPz8gMCwgZGVzYy5tYXggPz8gNTAwXSxcbiAgICAgICAgICAgIHZhbHVlMDogZGVzYy5taW4gPz8gMCxcbiAgICAgICAgICAgIG9uQ2hhbmdlOiAobmV3VmFsdWU6IG51bWJlcltdLCBldmVudCkgPT4ge1xuICAgICAgICAgICAgICB1cGRhdGVFZmZlY3RDb25maWcoZXZlbnQsIGlkLCB7cGFyYW1ldGVyczoge1twYXJhbU5hbWVdOiBuZXdWYWx1ZVsxXX19KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIC8vIHRoZSB1bmlmb3JtIGRlc2NyaXB0aW9uIGlzIHt2YWx1ZTogMCwgbWluOiAwLCBtYXg6IDEsIC4uLn1cbiAgICAgICAgZWxzZSBpZiAodW5pZm9ybSAmJiBpc051bWJlcih1bmlmb3JtLnZhbHVlKSkge1xuICAgICAgICAgIGNvbnN0IHJhbmdlTWluID0gZGVzYy5taW4gPz8gdW5pZm9ybS5taW4gPz8gdW5pZm9ybS5zb2Z0TWluID8/IDA7XG4gICAgICAgICAgY29uc3QgcmFuZ2VNYXggPSBkZXNjLm1heCA/PyB1bmlmb3JtLm1heCA/PyB1bmlmb3JtLnNvZnRNYXggPz8gMTtcbiAgICAgICAgICBjb25zdCByYW5nZVNwYW4gPSByYW5nZU1heCAtIHJhbmdlTWluO1xuICAgICAgICAgIGNvbnN0IHN0ZXAgPSByYW5nZVNwYW4gPiAxMCA/IDEgOiAwLjAwMTtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbGFiZWwsXG4gICAgICAgICAgICB2YWx1ZTE6IHByZXZWYWx1ZSB8fCAwLFxuICAgICAgICAgICAgcmFuZ2U6IFtyYW5nZU1pbiwgcmFuZ2VNYXhdLFxuICAgICAgICAgICAgdmFsdWUwOiByYW5nZU1pbixcbiAgICAgICAgICAgIHN0ZXAsXG4gICAgICAgICAgICBvbkNoYW5nZTogKG5ld1ZhbHVlOiBudW1iZXJbXSwgZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgdXBkYXRlRWZmZWN0Q29uZmlnKGV2ZW50LCBpZCwge3BhcmFtZXRlcnM6IHtbcGFyYW1OYW1lXTogbmV3VmFsdWVbMV19fSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICAvLyBQYXJhbWV0ZXIgZGVmaW5lZCBpbiBlZmZlY3QgZGVzY3JpcHRpb24gYnV0IG5vdCBpbiBzaGFkZXIgcHJvcFR5cGVzXG4gICAgICAgIGVsc2UgaWYgKGRlc2MubWluICE9PSB1bmRlZmluZWQgJiYgZGVzYy5tYXggIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIGNvbnN0IHJhbmdlU3BhbiA9IGRlc2MubWF4IC0gZGVzYy5taW47XG4gICAgICAgICAgY29uc3Qgc3RlcCA9IHJhbmdlU3BhbiA+IDEwID8gMSA6IDAuMDAxO1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBsYWJlbCxcbiAgICAgICAgICAgIHZhbHVlMTogcHJldlZhbHVlID8/IGRlc2MuZGVmYXVsdFZhbHVlID8/IDAsXG4gICAgICAgICAgICByYW5nZTogW2Rlc2MubWluLCBkZXNjLm1heF0sXG4gICAgICAgICAgICB2YWx1ZTA6IGRlc2MubWluLFxuICAgICAgICAgICAgc3RlcCxcbiAgICAgICAgICAgIG9uQ2hhbmdlOiAobmV3VmFsdWU6IG51bWJlcltdLCBldmVudCkgPT4ge1xuICAgICAgICAgICAgICB1cGRhdGVFZmZlY3RDb25maWcoZXZlbnQsIGlkLCB7cGFyYW1ldGVyczoge1twYXJhbU5hbWVdOiBuZXdWYWx1ZVsxXX19KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9O1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gaWdub3JlIGV2ZXJ5dGhpbmcgZWxzZSBmb3Igbm93XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfSk7XG4gICAgfSwgW2ZsYXRQYXJhbWV0ZXJEZXNjcmlwdGlvbnMsIGlkLCBwYXJhbWV0ZXJzLCB1cGRhdGVFZmZlY3RDb25maWcsIHVuaWZvcm1zXSk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPFN0eWxlZEVmZmVjdENvbmZpZ3VyYXRvciBrZXk9e2VmZmVjdC5pZH0+XG4gICAgICAgIHsoKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IGVsZW1lbnRzOiBSZWFjdC5SZWFjdE5vZGVbXSA9IFtdO1xuICAgICAgICAgIGxldCBpID0gMDtcbiAgICAgICAgICB3aGlsZSAoaSA8IGZsYXRQYXJhbWV0ZXJEZXNjcmlwdGlvbnMubGVuZ3RoKSB7XG4gICAgICAgICAgICBjb25zdCBjb250cm9sID0gY29udHJvbHNbaV07XG4gICAgICAgICAgICBpZiAoIWNvbnRyb2wpIHtcbiAgICAgICAgICAgICAgaSsrO1xuICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKCdpc0NvbG9yJyBpbiBjb250cm9sKSB7XG4gICAgICAgICAgICAgIGNvbnN0IG5leHRDb250cm9sID0gaSArIDEgPCBjb250cm9scy5sZW5ndGggPyBjb250cm9sc1tpICsgMV0gOiBudWxsO1xuICAgICAgICAgICAgICBpZiAobmV4dENvbnRyb2wgJiYgJ2lzQ2hlY2tib3gnIGluIG5leHRDb250cm9sKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgY2JUb29sdGlwSWQgPSBuZXh0Q29udHJvbC50b29sdGlwXG4gICAgICAgICAgICAgICAgICA/IGBlZmZlY3QtY2ItaGludC0ke2VmZmVjdC5pZH0tJHtpfWBcbiAgICAgICAgICAgICAgICAgIDogdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgIGVsZW1lbnRzLnB1c2goXG4gICAgICAgICAgICAgICAgICA8U3R5bGVkQ29sb3JDaGVja2JveFJvdyBrZXk9e2Ake2VmZmVjdC5pZH0tJHtpfWB9PlxuICAgICAgICAgICAgICAgICAgICA8Q29tcGFjdENvbG9yUGlja2VyXG4gICAgICAgICAgICAgICAgICAgICAgbGFiZWw9e3R5cGVvZiBjb250cm9sLmxhYmVsID09PSAnc3RyaW5nJyA/IGNvbnRyb2wubGFiZWwgOiAnQ29sb3InfVxuICAgICAgICAgICAgICAgICAgICAgIGNvbG9yPXtjb250cm9sLmNvbG9yfVxuICAgICAgICAgICAgICAgICAgICAgIG9uU2V0Q29sb3I9e1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udHJvbC5vblNldENvbG9yID8/XG4gICAgICAgICAgICAgICAgICAgICAgICAoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBub29wICovXG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICBJY29uPXtBcnJvd0Rvd25TbWFsbH1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPFN0eWxlZENoZWNrYm94V3JhcHBlclxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IChuZXh0Q29udHJvbCBhcyB7b25DaGFuZ2U6ICgpID0+IHZvaWR9KS5vbkNoYW5nZSgpfVxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgPFN0eWxlZENoZWNrYm94XG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tlZD17bmV4dENvbnRyb2wuY2hlY2tlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoKSA9PiAobmV4dENvbnRyb2wgYXMge29uQ2hhbmdlOiAoKSA9PiB2b2lkfSkub25DaGFuZ2UoKX1cbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2UgPT4gZS5zdG9wUHJvcGFnYXRpb24oKX1cbiAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgIDxTdHlsZWRDaGVja2JveExhYmVsPntuZXh0Q29udHJvbC5sYWJlbH08L1N0eWxlZENoZWNrYm94TGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAge25leHRDb250cm9sLnRvb2x0aXAgPyAoXG4gICAgICAgICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8U3R5bGVkSGludEljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXRpcFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtZm9yPXtjYlRvb2x0aXBJZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXtlID0+IGUuc3RvcFByb3BhZ2F0aW9uKCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvU3R5bGVkSGludEljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxTdHlsZWRIaW50VG9vbHRpcCBpZD17Y2JUb29sdGlwSWR9IGVmZmVjdD1cInNvbGlkXCIgZGVsYXlTaG93PXsyMDB9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtuZXh0Q29udHJvbC50b29sdGlwfVxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L1N0eWxlZEhpbnRUb29sdGlwPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgICAgIDwvU3R5bGVkQ2hlY2tib3hXcmFwcGVyPlxuICAgICAgICAgICAgICAgICAgPC9TdHlsZWRDb2xvckNoZWNrYm94Um93PlxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgaSArPSAyO1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgZWxlbWVudHMucHVzaChcbiAgICAgICAgICAgICAgICA8UmVndWxhck91dGVyV3JhcHBlciBrZXk9e2Ake2VmZmVjdC5pZH0tJHtpfWB9PlxuICAgICAgICAgICAgICAgICAgPENvbXBhY3RDb2xvclBpY2tlclxuICAgICAgICAgICAgICAgICAgICBsYWJlbD17dHlwZW9mIGNvbnRyb2wubGFiZWwgPT09ICdzdHJpbmcnID8gY29udHJvbC5sYWJlbCA6ICdDb2xvcid9XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yPXtjb250cm9sLmNvbG9yfVxuICAgICAgICAgICAgICAgICAgICBvblNldENvbG9yPXtcbiAgICAgICAgICAgICAgICAgICAgICBjb250cm9sLm9uU2V0Q29sb3IgPz9cbiAgICAgICAgICAgICAgICAgICAgICAoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgLyogbm9vcCAqL1xuICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgSWNvbj17QXJyb3dEb3duU21hbGx9XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvUmVndWxhck91dGVyV3JhcHBlcj5cbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgaSsrO1xuICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKCdpc0NoZWNrYm94JyBpbiBjb250cm9sKSB7XG4gICAgICAgICAgICAgIGVsZW1lbnRzLnB1c2goXG4gICAgICAgICAgICAgICAgPFJlZ3VsYXJPdXRlcldyYXBwZXIga2V5PXtgJHtlZmZlY3QuaWR9LSR7aX1gfT5cbiAgICAgICAgICAgICAgICAgIDxTdHlsZWRDaGVja2JveFdyYXBwZXJcbiAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gKGNvbnRyb2wgYXMge29uQ2hhbmdlOiAoKSA9PiB2b2lkfSkub25DaGFuZ2UoKX1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPFN0eWxlZENoZWNrYm94XG4gICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgICAgICAgICAgICAgICAgICBjaGVja2VkPXtjb250cm9sLmNoZWNrZWR9XG4gICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eygpID0+IChjb250cm9sIGFzIHtvbkNoYW5nZTogKCkgPT4gdm9pZH0pLm9uQ2hhbmdlKCl9XG4gICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17ZSA9PiBlLnN0b3BQcm9wYWdhdGlvbigpfVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICA8U3R5bGVkQ2hlY2tib3hMYWJlbD57Y29udHJvbC5sYWJlbH08L1N0eWxlZENoZWNrYm94TGFiZWw+XG4gICAgICAgICAgICAgICAgICA8L1N0eWxlZENoZWNrYm94V3JhcHBlcj5cbiAgICAgICAgICAgICAgICA8L1JlZ3VsYXJPdXRlcldyYXBwZXI+XG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIGkrKztcbiAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICgnaXNFbGV2YXRpb25TZWN0aW9uJyBpbiBjb250cm9sKSB7XG4gICAgICAgICAgICAgIGVsZW1lbnRzLnB1c2goXG4gICAgICAgICAgICAgICAgPFN1cmZhY2VGb2dFbGV2YXRpb25TZWN0aW9uXG4gICAgICAgICAgICAgICAgICBrZXk9e2Ake2VmZmVjdC5pZH0tZWxldmF0aW9uYH1cbiAgICAgICAgICAgICAgICAgIGVmZmVjdD17ZWZmZWN0fVxuICAgICAgICAgICAgICAgICAgdXBkYXRlRWZmZWN0Q29uZmlnPXt1cGRhdGVFZmZlY3RDb25maWd9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgaSsrO1xuICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZWxlbWVudHMucHVzaChcbiAgICAgICAgICAgICAgPFJlZ3VsYXJPdXRlcldyYXBwZXIga2V5PXtgJHtlZmZlY3QuaWR9LSR7aX1gfT5cbiAgICAgICAgICAgICAgICB7Y29udHJvbC5sYWJlbCA/IChcbiAgICAgICAgICAgICAgICAgIDxSZWd1bGFyU2VjdGlvblRpdGxlV3JhcHBlcj57Y29udHJvbC5sYWJlbH08L1JlZ3VsYXJTZWN0aW9uVGl0bGVXcmFwcGVyPlxuICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICAgIDxSZWd1bGFyU2xpZGVyV3JhcHBlcj5cbiAgICAgICAgICAgICAgICAgIDxSYW5nZVNsaWRlciBrZXk9e2l9IHsuLi5DT01NT05fU0xJREVSX1BST1BTfSB7Li4uY29udHJvbH0gLz5cbiAgICAgICAgICAgICAgICA8L1JlZ3VsYXJTbGlkZXJXcmFwcGVyPlxuICAgICAgICAgICAgICA8L1JlZ3VsYXJPdXRlcldyYXBwZXI+XG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgaSsrO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiBlbGVtZW50cztcbiAgICAgICAgfSkoKX1cbiAgICAgIDwvU3R5bGVkRWZmZWN0Q29uZmlndXJhdG9yPlxuICAgICk7XG4gIH07XG5cbiAgY29uc3QgRWZmZWN0Q29uZmlndXJhdG9yID0gKHtcbiAgICBlZmZlY3QsXG4gICAgdXBkYXRlRWZmZWN0Q29uZmlnXG4gIH06IEVmZmVjdENvbmZpZ3VyYXRvclByb3BzICYge2ludGw6IEludGxTaGFwZX0pID0+IHtcbiAgICByZXR1cm4gZWZmZWN0LnR5cGUgPT09IExJR0hUX0FORF9TSEFET1dfRUZGRUNULnR5cGUgPyAoXG4gICAgICA8U2hhZG93RWZmZWN0Q29uZmlndXJhdG9yIGVmZmVjdD17ZWZmZWN0fSB1cGRhdGVFZmZlY3RDb25maWc9e3VwZGF0ZUVmZmVjdENvbmZpZ30gLz5cbiAgICApIDogKFxuICAgICAgPFBvc3RQcm9jZXNzaW5nRWZmZWN0Q29uZmlndXJhdG9yIGVmZmVjdD17ZWZmZWN0fSB1cGRhdGVFZmZlY3RDb25maWc9e3VwZGF0ZUVmZmVjdENvbmZpZ30gLz5cbiAgICApO1xuICB9O1xuXG4gIHJldHVybiBpbmplY3RJbnRsKEVmZmVjdENvbmZpZ3VyYXRvcik7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFHQSxJQUFBQSxNQUFBLEdBQUFDLHVCQUFB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QUM7VUFFTjtVQUVBbUwsUUFBUSxDQUFDakssSUFBSSxjQUNYekQsTUFBQSxZQUFBNEosYUFBQSxDQUFDakUsbUJBQW1CO1lBQUNrRSxHQUFHLEtBQUFvRSxNQUFBLENBQUt4RyxNQUFNLENBQUNHLEVBQUUsT0FBQXFHLE1BQUEsQ0FBSTFMLENBQUM7VUFBRyxHQUMzQ3FMLE9BQU8sQ0FBQ3pILEtBQUssZ0JBQ1puRyxNQUFBLFlBQUE0SixhQUFBLENBQUNoRSwwQkFBMEIsUUFBRWdJLE9BQU8sQ0FBQ3pILEtBQWtDLENBQUMsR0FDdEUsSUFBSSxlQUNSbkcsTUFBQSxZQUFBNEosYUFBQSxDQUFDL0Qsb0JBQW9CLHFCQUNuQjdGLE1BQUEsWUFBQTRKLGFBQUEsQ0FBQ3hDLFdBQVcsTUFBQThDLFNBQUE7WUFBQ0wsR0FBRyxFQUFFdEg7VUFBRSxHQUFLb0UsbUJBQW1CLEVBQU1pSCxPQUFPLENBQUcsQ0FDeEMsQ0FDSCxDQUN2QixDQUFDO1VBQ0RyTCxDQUFDLEVBQUU7UUFDTCxDQUFDO1FBQUErTCxJQUFBO01BdkhELE9BQU8vTCxDQUFDLEdBQUd5SSx5QkFBeUIsQ0FBQ25ILE1BQU07UUFBQXlLLElBQUEsR0FBQVgsS0FBQTtRQUFBLElBQUFXLElBQUEsUUFJdkM7TUFBUztNQXFIYixPQUFPWixRQUFRO0lBQ2pCLENBQUMsQ0FBRSxDQUNxQixDQUFDO0VBRS9CLENBQUM7RUFFRCxJQUFNYSxrQkFBa0IsR0FBRyxTQUFyQkEsa0JBQWtCQSxDQUFBQyxLQUFBLEVBRzJCO0lBQUEsSUFGakQvRyxNQUFNLEdBQUErRyxLQUFBLENBQU4vRyxNQUFNO01BQ05DLGtCQUFrQixHQUFBOEcsS0FBQSxDQUFsQjlHLGtCQUFrQjtJQUVsQixPQUFPRCxNQUFNLENBQUMyRCxJQUFJLEtBQUtxRCxrQ0FBdUIsQ0FBQ3JELElBQUksZ0JBQ2pEcEwsTUFBQSxZQUFBNEosYUFBQSxDQUFDckMsd0JBQXdCO01BQUNFLE1BQU0sRUFBRUEsTUFBTztNQUFDQyxrQkFBa0IsRUFBRUE7SUFBbUIsQ0FBRSxDQUFDLGdCQUVwRjFILE1BQUEsWUFBQTRKLGFBQUEsQ0FBQ1UsZ0NBQWdDO01BQUM3QyxNQUFNLEVBQUVBLE1BQU87TUFBQ0Msa0JBQWtCLEVBQUVBO0lBQW1CLENBQUUsQ0FDNUY7RUFDSCxDQUFDO0VBRUQsT0FBTyxJQUFBZ0gscUJBQVUsRUFBQ0gsa0JBQWtCLENBQUM7QUFDdkMiLCJpZ25vcmVMaXN0IjpbXX0=
473
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfcmVhY3RJbnRsIiwiX2NvbnN0YW50cyIsIl91dGlscyIsIl9yYW5nZVNsaWRlciIsIl9pY29ucyIsIl9zdHlsZWRDb21wb25lbnRzMiIsIl9lZmZlY3RUaW1lQ29uZmlndXJhdG9yIiwiX2NvbXBhY3RDb2xvclBpY2tlciIsIl9zdXJmYWNlRm9nU2VjdGlvbiIsIl90ZW1wbGF0ZU9iamVjdCIsIl90ZW1wbGF0ZU9iamVjdDIiLCJfdGVtcGxhdGVPYmplY3QzIiwiX3RlbXBsYXRlT2JqZWN0NCIsIl90ZW1wbGF0ZU9iamVjdDUiLCJfdGVtcGxhdGVPYmplY3Q2IiwiX3RlbXBsYXRlT2JqZWN0NyIsIl90ZW1wbGF0ZU9iamVjdDgiLCJfdGVtcGxhdGVPYmplY3Q5IiwiX3RlbXBsYXRlT2JqZWN0MCIsIl90ZW1wbGF0ZU9iamVjdDEiLCJfdGVtcGxhdGVPYmplY3QxMCIsIl90ZW1wbGF0ZU9iamVjdDExIiwiX3RlbXBsYXRlT2JqZWN0MTIiLCJfdGVtcGxhdGVPYmplY3QxMyIsIl90ZW1wbGF0ZU9iamVjdDE0IiwiX3RlbXBsYXRlT2JqZWN0MTUiLCJfdGVtcGxhdGVPYmplY3QxNiIsImUiLCJ0IiwiV2Vha01hcCIsInIiLCJuIiwiX19lc01vZHVsZSIsIm8iLCJpIiwiZiIsIl9fcHJvdG9fXyIsIl90eXBlb2YzIiwiaGFzIiwiZ2V0Iiwic2V0IiwiX3QiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsIm93bktleXMiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwiZmlsdGVyIiwiZW51bWVyYWJsZSIsInB1c2giLCJhcHBseSIsIl9vYmplY3RTcHJlYWQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5MiIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiU3R5bGVkRWZmZWN0Q29uZmlndXJhdG9yIiwic3R5bGVkIiwiZGl2IiwiYXR0cnMiLCJjbGFzc05hbWUiLCJfdGFnZ2VkVGVtcGxhdGVMaXRlcmFsMiIsInByb3BzIiwidGhlbWUiLCJlZmZlY3RDb25maWd1cmF0b3JNYXJnaW4iLCJlZmZlY3RDb25maWd1cmF0b3JQYWRkaW5nIiwiUGFuZWxMYWJlbFdyYXBwZXIiLCJleHBvcnRzIiwiU3R5bGVkQ29sb3JTZWxlY3RvcldyYXBwZXIiLCJTdHlsZWRWZXJ0aWNhbFNlcGFyYXRvciIsImlucHV0QmdkIiwiU3R5bGVkV3JhcHBlciIsIl9wcm9wcyQkbWFyZ2luQm90dG9tIiwiJG1hcmdpbkJvdHRvbSIsIlN0eWxlZENvbmZpZ1NlY3Rpb24iLCJTZWN0aW9uVGl0bGUiLCJpbnB1dEZvbnRTaXplIiwiZWZmZWN0UGFuZWxUZXh0U2Vjb25kYXJ5MSIsIlNlY3Rpb25TdWJUaXRsZSIsImVmZmVjdFBhbmVsVGV4dFNlY29uZGFyeTIiLCJTdHlsZVNsaWRlcldyYXBwZXIiLCJSZWd1bGFyT3V0ZXJXcmFwcGVyIiwiUmVndWxhclNlY3Rpb25UaXRsZVdyYXBwZXIiLCJSZWd1bGFyU2xpZGVyV3JhcHBlciIsIlN0eWxlZENoZWNrYm94V3JhcHBlciIsIlN0eWxlZENoZWNrYm94IiwiaW5wdXQiLCJhY3RpdmVDb2xvciIsIlN0eWxlZENoZWNrYm94TGFiZWwiLCJsYWJlbCIsIlN0eWxlZEhpbnRUb29sdGlwIiwiVG9vbHRpcCIsIlN0eWxlZEhpbnRJY29uIiwic3BhbiIsImxhYmVsQ29sb3IiLCJ0ZXh0Q29sb3JIbCIsIlN0eWxlZENvbG9yQ2hlY2tib3hSb3ciLCJDT01NT05fU0xJREVSX1BST1BTIiwic2hvd0lucHV0IiwiaXNSYW5nZWQiLCJzdGVwIiwiRWZmZWN0Q29uZmlndXJhdG9yRmFjdG9yeSIsImRlcHMiLCJSYW5nZVNsaWRlckZhY3RvcnkiLCJFZmZlY3RUaW1lQ29uZmlndXJhdG9yRmFjdG9yeSIsIlN1cmZhY2VGb2dFbGV2YXRpb25TZWN0aW9uRmFjdG9yeSIsIlJhbmdlU2xpZGVyIiwiRWZmZWN0VGltZUNvbmZpZ3VyYXRvciIsIlN1cmZhY2VGb2dFbGV2YXRpb25TZWN0aW9uIiwiU2hhZG93RWZmZWN0Q29uZmlndXJhdG9yIiwiX3JlZiIsImVmZmVjdCIsInVwZGF0ZUVmZmVjdENvbmZpZyIsInBhcmFtZXRlcnMiLCJpZCIsInNsaWRlclByb3BzIiwidXNlTWVtbyIsInByb3BOYW1lcyIsImRlc2NyaXB0aW9ucyIsImdldFBhcmFtZXRlckRlc2NyaXB0aW9ucyIsIm1hcCIsInByb3BOYW1lIiwiX2Rlc2MkbWluIiwiX2Rlc2MkbWF4IiwiZGVzYyIsImZpbmQiLCJkIiwibmFtZSIsIm1pbiIsIm1heCIsInZhbHVlMSIsInJhbmdlIiwidmFsdWUwIiwib25DaGFuZ2UiLCJ2YWx1ZSIsImV2ZW50Iiwib25UaW1lUGFyYW1ldGVyc0NoYW5nZWQiLCJ1c2VDYWxsYmFjayIsInRpbWVzdGFtcCIsInRpbWV6b25lIiwidGltZU1vZGUiLCJjb2xvclBpY2tlclByb3BzIiwiY29sb3JTZXRzIiwic2VsZWN0ZWRDb2xvciIsInNldENvbG9yIiwidiIsImNyZWF0ZUVsZW1lbnQiLCJrZXkiLCJjb2xvciIsIm9uU2V0Q29sb3IiLCJJY29uIiwiQXJyb3dEb3duU21hbGwiLCJfZXh0ZW5kczIiLCJkZWZhdWx0VW5pZm9ybXMiLCJFTEVWQVRJT05fRVhUUkFfUEFSQU1TIiwiU2V0IiwiUG9zdFByb2Nlc3NpbmdFZmZlY3RDb25maWd1cmF0b3IiLCJfcmVmMiIsIl9lZmZlY3QkZGVja0VmZmVjdCIsInVuaWZvcm1zIiwiZGVja0VmZmVjdCIsIm1vZHVsZSIsInByb3BUeXBlcyIsInBhcmFtZXRlckRlc2NyaXB0aW9ucyIsImhhc0VsZXZhdGlvblNlY3Rpb24iLCJzb21lIiwiZmxhdFBhcmFtZXRlckRlc2NyaXB0aW9ucyIsInJlZHVjZSIsImFjYyIsImRlc2NyaXB0aW9uIiwidHlwZSIsIkVMRVZBVElPTl9TRUNUSU9OX1RZUEUiLCJBcnJheSIsImlzQXJyYXkiLCJkZWZhdWx0VmFsdWUiLCJfIiwiaW5kZXgiLCJfZGVzY3JpcHRpb24kbGFiZWwiLCJjb250cm9scyIsImlzRWxldmF0aW9uU2VjdGlvbiIsImlzQ29sb3IiLCJwYXJhbU5hbWUiLCJpc0NoZWNrYm94IiwiY2hlY2tlZCIsIkJvb2xlYW4iLCJ0b29sdGlwIiwicmF3VW5pZm9ybSIsInVuaWZvcm0iLCJfdHlwZW9mMiIsInByZXZWYWx1ZSIsIm5ld1ZhbHVlIiwiaXNOdW1iZXIiLCJfZGVzYyRtaW4yIiwiX2Rlc2MkbWF4MiIsIl9kZXNjJG1pbjMiLCJfcmVmMyIsIl9yZWY0IiwiX2Rlc2MkbWluNCIsIl9yZWY1IiwiX3JlZjYiLCJfZGVzYyRtYXgzIiwicmFuZ2VNaW4iLCJzb2Z0TWluIiwicmFuZ2VNYXgiLCJzb2Z0TWF4IiwicmFuZ2VTcGFuIiwidW5kZWZpbmVkIiwiX3JlZjciLCJlbGVtZW50cyIsIl9sb29wIiwiY29udHJvbCIsIl9jb250cm9sJG9uU2V0Q29sb3IyIiwibmV4dENvbnRyb2wiLCJfY29udHJvbCRvblNldENvbG9yIiwiY2JUb29sdGlwSWQiLCJjb25jYXQiLCJvbkNsaWNrIiwic3RvcFByb3BhZ2F0aW9uIiwiRnJhZ21lbnQiLCJkZWxheVNob3ciLCJfcmV0IiwiRWZmZWN0Q29uZmlndXJhdG9yIiwiX3JlZjgiLCJMSUdIVF9BTkRfU0hBRE9XX0VGRkVDVCIsImluamVjdEludGwiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZWZmZWN0cy9lZmZlY3QtY29uZmlndXJhdG9yLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQgUmVhY3QsIHt1c2VDYWxsYmFjaywgdXNlTWVtb30gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdzdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQge2luamVjdEludGwsIEludGxTaGFwZX0gZnJvbSAncmVhY3QtaW50bCc7XG5cbmltcG9ydCB7TElHSFRfQU5EX1NIQURPV19FRkZFQ1R9IGZyb20gJ0BrZXBsZXIuZ2wvY29uc3RhbnRzJztcbmltcG9ydCB7aXNOdW1iZXJ9IGZyb20gJ0BrZXBsZXIuZ2wvdXRpbHMnO1xuaW1wb3J0IHtFZmZlY3QsIEVmZmVjdFVwZGF0ZVByb3BzfSBmcm9tICdAa2VwbGVyLmdsL3R5cGVzJztcblxuaW1wb3J0IFJhbmdlU2xpZGVyRmFjdG9yeSBmcm9tICcuLi9jb21tb24vcmFuZ2Utc2xpZGVyJztcbmltcG9ydCB7QXJyb3dEb3duU21hbGx9IGZyb20gJy4uL2NvbW1vbi9pY29ucyc7XG5pbXBvcnQge1Rvb2x0aXB9IGZyb20gJy4uL2NvbW1vbi9zdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQgRWZmZWN0VGltZUNvbmZpZ3VyYXRvckZhY3RvcnkgZnJvbSAnLi9lZmZlY3QtdGltZS1jb25maWd1cmF0b3InO1xuaW1wb3J0IENvbXBhY3RDb2xvclBpY2tlciBmcm9tICcuL2NvbXBhY3QtY29sb3ItcGlja2VyJztcbmltcG9ydCBTdXJmYWNlRm9nRWxldmF0aW9uU2VjdGlvbkZhY3RvcnksIHtFTEVWQVRJT05fU0VDVElPTl9UWVBFfSBmcm9tICcuL3N1cmZhY2UtZm9nLXNlY3Rpb24nO1xuXG5leHBvcnQgdHlwZSBFZmZlY3RDb25maWd1cmF0b3JQcm9wcyA9IHtcbiAgZWZmZWN0OiBFZmZlY3Q7XG4gIHVwZGF0ZUVmZmVjdENvbmZpZzogKFxuICAgIGU6IEV2ZW50IHwgbnVsbCB8IHVuZGVmaW5lZCxcbiAgICBpZDogc3RyaW5nLFxuICAgIGNvbmZpZzogUGFydGlhbDxFZmZlY3RVcGRhdGVQcm9wcz5cbiAgKSA9PiB2b2lkO1xufTtcblxuY29uc3QgU3R5bGVkRWZmZWN0Q29uZmlndXJhdG9yID0gc3R5bGVkLmRpdi5hdHRycyh7XG4gIGNsYXNzTmFtZTogJ2VmZmVjdC1wYW5lbF9fY29uZmlnJ1xufSlgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmVmZmVjdENvbmZpZ3VyYXRvck1hcmdpbn07XG4gIHBhZGRpbmc6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuZWZmZWN0Q29uZmlndXJhdG9yUGFkZGluZ307XG5gO1xuXG5leHBvcnQgY29uc3QgUGFuZWxMYWJlbFdyYXBwZXIgPSBzdHlsZWQuZGl2LmF0dHJzKHtcbiAgY2xhc3NOYW1lOiAnc2lkZS1wYW5lbC1wYW5lbF9fbGFiZWwtd3JhcHBlcidcbn0pYFxuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogc2VsZi1zdGFydDtcbiAgbWFyZ2luLWJvdHRvbTogMTFweDtcblxuICAuc2lkZS1wYW5lbC1wYW5lbF9fbGFiZWwge1xuICAgIG1hcmdpbi10b3A6IDJweDtcbiAgICBtYXJnaW4tYm90dG9tOiAwcHg7XG4gIH1cbmA7XG5cbmV4cG9ydCBjb25zdCBTdHlsZWRDb2xvclNlbGVjdG9yV3JhcHBlciA9IHN0eWxlZC5kaXZgXG4gIG1hcmdpbi1yaWdodDogNXB4O1xuICBtYXJnaW4tbGVmdDogNXB4O1xuICBtYXJnaW4tYm90dG9tOiA2cHg7XG4gIG1hcmdpbi10b3A6IDJweDtcbmA7XG5cbmNvbnN0IFN0eWxlZFZlcnRpY2FsU2VwYXJhdG9yID0gc3R5bGVkLmRpdmBcbiAgaGVpZ2h0OiAxcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuaW5wdXRCZ2R9O1xuICBtYXJnaW4tdG9wOiAyMHB4O1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICBtYXJnaW4tbGVmdDogLTIwcHg7XG5gO1xuXG50eXBlIFN0eWxlZFdyYXBwZXJQcm9wcyA9IHtcbiAgJG1hcmdpbkJvdHRvbT86IG51bWJlcjtcbn07XG5jb25zdCBTdHlsZWRXcmFwcGVyID0gc3R5bGVkLmRpdjxTdHlsZWRXcmFwcGVyUHJvcHM+YFxuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIG1hcmdpbi1ib3R0b206ICR7cHJvcHMgPT4gcHJvcHMuJG1hcmdpbkJvdHRvbSA/PyA5fXB4O1xuYDtcblxuY29uc3QgU3R5bGVkQ29uZmlnU2VjdGlvbiA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5gO1xuXG5jb25zdCBTZWN0aW9uVGl0bGUgPSBzdHlsZWQuZGl2YFxuICBmb250LXNpemU6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuaW5wdXRGb250U2l6ZX07XG4gIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmVmZmVjdFBhbmVsVGV4dFNlY29uZGFyeTF9O1xuICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xuYDtcblxuY29uc3QgU2VjdGlvblN1YlRpdGxlID0gc3R5bGVkLmRpdmBcbiAgZm9udC1zaXplOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmlucHV0Rm9udFNpemV9O1xuICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5lZmZlY3RQYW5lbFRleHRTZWNvbmRhcnkyfTtcbiAgbWFyZ2luLWJvdHRvbTogOHB4O1xuICBtYXJnaW4tbGVmdDogNnB4O1xuYDtcblxuY29uc3QgU3R5bGVTbGlkZXJXcmFwcGVyID0gc3R5bGVkLmRpdmBcbiAgYWxpZ24tc2VsZjogZmxleC1zdGFydDtcbiAgd2lkdGg6IDE5OXB4O1xuICBoZWlnaHQ6IDMycHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIC5rZy1yYW5nZS1zbGlkZXJfX2lucHV0IHtcbiAgICBoZWlnaHQ6IDMycHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHBhZGRpbmc6IDNweCA2cHg7XG4gIH1cbiAgLmtnLXNsaWRlciB7XG4gICAgcGFkZGluZy1sZWZ0OiA2cHg7XG4gIH1cbiAgLmtnLXJhbmdlLXNsaWRlciB7XG4gICAgcGFkZGluZzogMHB4ICFpbXBvcnRhbnQ7XG4gIH1cbmA7XG5cbmNvbnN0IFJlZ3VsYXJPdXRlcldyYXBwZXIgPSBzdHlsZWQuZGl2LmF0dHJzKHtcbiAgY2xhc3NOYW1lOiAnZWZmZWN0LWNvbmZpZ3VyYXRvcl9fcHAtc2VjdGlvbidcbn0pYFxuICBtYXJnaW4tYm90dG9tOiA4cHg7XG5gO1xuXG5jb25zdCBSZWd1bGFyU2VjdGlvblRpdGxlV3JhcHBlciA9IHN0eWxlZC5kaXYuYXR0cnMoe1xuICBjbGFzc05hbWU6ICdlZmZlY3QtY29uZmlndXJhdG9yX19wcC1zZWN0aW9uLXRpdGxlJ1xufSlgXG4gIGZvbnQtc2l6ZTogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5pbnB1dEZvbnRTaXplfTtcbiAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuZWZmZWN0UGFuZWxUZXh0U2Vjb25kYXJ5MX07XG4gIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xuICBtYXJnaW4tYm90dG9tOiAtM3B4O1xuYDtcblxuY29uc3QgUmVndWxhclNsaWRlcldyYXBwZXIgPSBzdHlsZWQuZGl2LmF0dHJzKHtcbiAgY2xhc3NOYW1lOiAnZWZmZWN0LWNvbmZpZ3VyYXRvcl9fcHAtc2VjdGlvbi1jb250cm9sJ1xufSlgXG4gIGhlaWdodDogMzJweDtcbiAgLmtnLXJhbmdlLXNsaWRlcl9faW5wdXQge1xuICAgIGhlaWdodDogMzJweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgcGFkZGluZzogM3B4IDZweDtcbiAgfVxuICAua2ctc2xpZGVyIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDZweDtcbiAgfVxuICAua2ctcmFuZ2Utc2xpZGVyIHtcbiAgICBwYWRkaW5nOiAwcHggIWltcG9ydGFudDtcbiAgfVxuYDtcblxuY29uc3QgU3R5bGVkQ2hlY2tib3hXcmFwcGVyID0gc3R5bGVkLmRpdi5hdHRycyh7XG4gIGNsYXNzTmFtZTogJ2VmZmVjdC1jb25maWd1cmF0b3JfX3BwLXNlY3Rpb24tY2hlY2tib3gnXG59KWBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgY3Vyc29yOiBwb2ludGVyO1xuYDtcblxuY29uc3QgU3R5bGVkQ2hlY2tib3ggPSBzdHlsZWQuaW5wdXRgXG4gIG1hcmdpbi1yaWdodDogNnB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGFjY2VudC1jb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5hY3RpdmVDb2xvcn07XG5gO1xuXG5jb25zdCBTdHlsZWRDaGVja2JveExhYmVsID0gc3R5bGVkLmxhYmVsYFxuICBmb250LXNpemU6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuaW5wdXRGb250U2l6ZX07XG4gIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmVmZmVjdFBhbmVsVGV4dFNlY29uZGFyeTF9O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5gO1xuXG5jb25zdCBTdHlsZWRIaW50VG9vbHRpcCA9IHN0eWxlZChUb29sdGlwKWBcbiAgJi5fX3JlYWN0X2NvbXBvbmVudF90b29sdGlwIHtcbiAgICBtYXgtd2lkdGg6IDIyMHB4O1xuICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICB9XG5gO1xuXG5jb25zdCBTdHlsZWRIaW50SWNvbiA9IHN0eWxlZC5zcGFuYFxuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHdpZHRoOiAxNHB4O1xuICBoZWlnaHQ6IDE0cHg7XG4gIG1hcmdpbi1sZWZ0OiA2cHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgZm9udC1zaXplOiA5cHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5sYWJlbENvbG9yfTtcbiAgYm9yZGVyOiAxcHggc29saWQgJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5sYWJlbENvbG9yfTtcbiAgY3Vyc29yOiBoZWxwO1xuICAmOmhvdmVyIHtcbiAgICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS50ZXh0Q29sb3JIbH07XG4gICAgYm9yZGVyLWNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnRleHRDb2xvckhsfTtcbiAgfVxuYDtcblxuY29uc3QgU3R5bGVkQ29sb3JDaGVja2JveFJvdyA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgbWFyZ2luLWJvdHRvbTogOHB4O1xuYDtcblxuY29uc3QgQ09NTU9OX1NMSURFUl9QUk9QUyA9IHtcbiAgc2hvd0lucHV0OiB0cnVlLFxuICBpc1JhbmdlZDogZmFsc2UsXG4gIHN0ZXA6IDAuMDAxLFxuICBsYWJlbDogJ3ZhbHVlJ1xufTtcblxudHlwZSBFZmZlY3RQYXJhbWV0ZXJEZXNjcmlwdGlvbkZsYXR0ZW5lZCA9IHtcbiAgbmFtZTogc3RyaW5nO1xuICB0eXBlPzogJ251bWJlcicgfCAnYXJyYXknIHwgJ2NvbG9yJyB8ICdjaGVja2JveCc7XG4gIGxhYmVsPzogc3RyaW5nIHwgZmFsc2UgfCAoc3RyaW5nIHwgZmFsc2UpW107XG4gIHRvb2x0aXA/OiBzdHJpbmc7XG4gIG1pbjogbnVtYmVyO1xuICBtYXg6IG51bWJlcjtcbiAgZGVmYXVsdFZhbHVlPzogbnVtYmVyIHwgbnVtYmVyW10gfCBib29sZWFuO1xuICBpbmRleD86IG51bWJlcjtcbn07XG5cbkVmZmVjdENvbmZpZ3VyYXRvckZhY3RvcnkuZGVwcyA9IFtcbiAgUmFuZ2VTbGlkZXJGYWN0b3J5LFxuICBFZmZlY3RUaW1lQ29uZmlndXJhdG9yRmFjdG9yeSxcbiAgU3VyZmFjZUZvZ0VsZXZhdGlvblNlY3Rpb25GYWN0b3J5XG5dO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBFZmZlY3RDb25maWd1cmF0b3JGYWN0b3J5KFxuICBSYW5nZVNsaWRlcjogUmV0dXJuVHlwZTx0eXBlb2YgUmFuZ2VTbGlkZXJGYWN0b3J5PixcbiAgRWZmZWN0VGltZUNvbmZpZ3VyYXRvcjogUmV0dXJuVHlwZTx0eXBlb2YgRWZmZWN0VGltZUNvbmZpZ3VyYXRvckZhY3Rvcnk+LFxuICBTdXJmYWNlRm9nRWxldmF0aW9uU2VjdGlvbjogUmV0dXJuVHlwZTx0eXBlb2YgU3VyZmFjZUZvZ0VsZXZhdGlvblNlY3Rpb25GYWN0b3J5PlxuKTogUmVhY3QuRkM8RWZmZWN0Q29uZmlndXJhdG9yUHJvcHM+IHtcbiAgY29uc3QgU2hhZG93RWZmZWN0Q29uZmlndXJhdG9yOiBSZWFjdC5GQzxFZmZlY3RDb25maWd1cmF0b3JQcm9wcz4gPSAoe1xuICAgIGVmZmVjdCxcbiAgICB1cGRhdGVFZmZlY3RDb25maWdcbiAgfSkgPT4ge1xuICAgIGNvbnN0IHtwYXJhbWV0ZXJzLCBpZH0gPSBlZmZlY3Q7XG5cbiAgICBjb25zdCBzbGlkZXJQcm9wcyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgY29uc3QgcHJvcE5hbWVzID0gWydzaGFkb3dJbnRlbnNpdHknLCAnYW1iaWVudExpZ2h0SW50ZW5zaXR5JywgJ3N1bkxpZ2h0SW50ZW5zaXR5J107XG4gICAgICBjb25zdCBkZXNjcmlwdGlvbnMgPSBlZmZlY3QuZ2V0UGFyYW1ldGVyRGVzY3JpcHRpb25zKCk7XG4gICAgICByZXR1cm4gcHJvcE5hbWVzLm1hcChwcm9wTmFtZSA9PiB7XG4gICAgICAgIGNvbnN0IGRlc2MgPSBkZXNjcmlwdGlvbnMuZmluZChkID0+IGQubmFtZSA9PT0gcHJvcE5hbWUpO1xuICAgICAgICBjb25zdCBtaW4gPSBkZXNjPy5taW4gPz8gMDtcbiAgICAgICAgY29uc3QgbWF4ID0gZGVzYz8ubWF4ID8/IDE7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgdmFsdWUxOiBwYXJhbWV0ZXJzW3Byb3BOYW1lXSxcbiAgICAgICAgICByYW5nZTogW21pbiwgbWF4XSxcbiAgICAgICAgICB2YWx1ZTA6IG1pbixcbiAgICAgICAgICBvbkNoYW5nZTogKHZhbHVlOiBudW1iZXJbXSwgZXZlbnQ/OiBFdmVudCB8IG51bGwpID0+IHtcbiAgICAgICAgICAgIHVwZGF0ZUVmZmVjdENvbmZpZyhldmVudCwgaWQsIHtwYXJhbWV0ZXJzOiB7W3Byb3BOYW1lXTogdmFsdWVbMV19fSk7XG4gICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgfSk7XG4gICAgfSwgW2lkLCBlZmZlY3QsIHBhcmFtZXRlcnMsIHVwZGF0ZUVmZmVjdENvbmZpZ10pO1xuXG4gICAgY29uc3Qgb25UaW1lUGFyYW1ldGVyc0NoYW5nZWQgPSB1c2VDYWxsYmFjayhcbiAgICAgIHBhcmFtZXRlcnMgPT4ge1xuICAgICAgICB1cGRhdGVFZmZlY3RDb25maWcobnVsbCwgaWQsIHtcbiAgICAgICAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICAgICAgICAuLi4ocGFyYW1ldGVycy50aW1lc3RhbXAgIT0gbnVsbCA/IHt0aW1lc3RhbXA6IHBhcmFtZXRlcnMudGltZXN0YW1wfSA6IG51bGwpLFxuICAgICAgICAgICAgLi4uKHBhcmFtZXRlcnMudGltZXpvbmUgPyB7dGltZXpvbmU6IHBhcmFtZXRlcnMudGltZXpvbmV9IDogbnVsbCksXG4gICAgICAgICAgICAuLi4ocGFyYW1ldGVycy50aW1lTW9kZSA/IHt0aW1lTW9kZTogcGFyYW1ldGVycy50aW1lTW9kZX0gOiBudWxsKVxuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9LFxuICAgICAgW2lkLCB1cGRhdGVFZmZlY3RDb25maWddXG4gICAgKTtcblxuICAgIGNvbnN0IGNvbG9yUGlja2VyUHJvcHMgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGNvbnN0IHByb3BOYW1lcyA9IFsnYW1iaWVudExpZ2h0Q29sb3InLCAnc3VuTGlnaHRDb2xvcicsICdzaGFkb3dDb2xvciddO1xuICAgICAgcmV0dXJuIHByb3BOYW1lcy5tYXAocHJvcE5hbWUgPT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGNvbG9yU2V0czogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBzZWxlY3RlZENvbG9yOiBwYXJhbWV0ZXJzW3Byb3BOYW1lXSxcbiAgICAgICAgICAgICAgc2V0Q29sb3I6IHYgPT4gdXBkYXRlRWZmZWN0Q29uZmlnKG51bGwsIGlkLCB7cGFyYW1ldGVyczoge1twcm9wTmFtZV06IHZ9fSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgICBdXG4gICAgICAgIH07XG4gICAgICB9KTtcbiAgICB9LCBbaWQsIHBhcmFtZXRlcnMsIHVwZGF0ZUVmZmVjdENvbmZpZ10pO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxTdHlsZWRFZmZlY3RDb25maWd1cmF0b3Iga2V5PXtlZmZlY3QuaWR9PlxuICAgICAgICA8UGFuZWxMYWJlbFdyYXBwZXI+XG4gICAgICAgICAgPFNlY3Rpb25UaXRsZT57J0RhdGUgJiBUaW1lJ308L1NlY3Rpb25UaXRsZT5cbiAgICAgICAgPC9QYW5lbExhYmVsV3JhcHBlcj5cbiAgICAgICAgPEVmZmVjdFRpbWVDb25maWd1cmF0b3JcbiAgICAgICAgICB0aW1lc3RhbXA9e3BhcmFtZXRlcnMudGltZXN0YW1wfVxuICAgICAgICAgIHRpbWV6b25lPXtwYXJhbWV0ZXJzLnRpbWV6b25lfVxuICAgICAgICAgIHRpbWVNb2RlPXtwYXJhbWV0ZXJzLnRpbWVNb2RlfVxuICAgICAgICAgIG9uQ2hhbmdlPXtvblRpbWVQYXJhbWV0ZXJzQ2hhbmdlZH1cbiAgICAgICAgLz5cblxuICAgICAgICA8U3R5bGVkVmVydGljYWxTZXBhcmF0b3IgLz5cblxuICAgICAgICA8U3R5bGVkV3JhcHBlciAkbWFyZ2luQm90dG9tPXswfT5cbiAgICAgICAgICA8U2VjdGlvblRpdGxlPnsnU2hhZG93J308L1NlY3Rpb25UaXRsZT5cbiAgICAgICAgPC9TdHlsZWRXcmFwcGVyPlxuICAgICAgICA8U3R5bGVkV3JhcHBlciAkbWFyZ2luQm90dG9tPXsxNn0+XG4gICAgICAgICAgPENvbXBhY3RDb2xvclBpY2tlclxuICAgICAgICAgICAgbGFiZWw9eydDb2xvcid9XG4gICAgICAgICAgICBjb2xvcj17Y29sb3JQaWNrZXJQcm9wc1syXS5jb2xvclNldHNbMF0uc2VsZWN0ZWRDb2xvcn1cbiAgICAgICAgICAgIG9uU2V0Q29sb3I9e2NvbG9yUGlja2VyUHJvcHNbMl0uY29sb3JTZXRzWzBdLnNldENvbG9yfVxuICAgICAgICAgICAgSWNvbj17QXJyb3dEb3duU21hbGx9XG4gICAgICAgICAgLz5cbiAgICAgICAgICA8U3R5bGVkQ29uZmlnU2VjdGlvbj5cbiAgICAgICAgICAgIDxTZWN0aW9uU3ViVGl0bGU+SW50ZW5zaXR5PC9TZWN0aW9uU3ViVGl0bGU+XG4gICAgICAgICAgICA8U3R5bGVTbGlkZXJXcmFwcGVyPlxuICAgICAgICAgICAgICA8UmFuZ2VTbGlkZXIgey4uLkNPTU1PTl9TTElERVJfUFJPUFN9IHsuLi5zbGlkZXJQcm9wc1swXX0gLz5cbiAgICAgICAgICAgIDwvU3R5bGVTbGlkZXJXcmFwcGVyPlxuICAgICAgICAgIDwvU3R5bGVkQ29uZmlnU2VjdGlvbj5cbiAgICAgICAgPC9TdHlsZWRXcmFwcGVyPlxuXG4gICAgICAgIDxTdHlsZWRXcmFwcGVyICRtYXJnaW5Cb3R0b209ezB9PlxuICAgICAgICAgIDxTZWN0aW9uVGl0bGU+eydBbWJpZW50IGxpZ2h0J308L1NlY3Rpb25UaXRsZT5cbiAgICAgICAgPC9TdHlsZWRXcmFwcGVyPlxuICAgICAgICA8U3R5bGVkV3JhcHBlciAkbWFyZ2luQm90dG9tPXsxNn0+XG4gICAgICAgICAgPENvbXBhY3RDb2xvclBpY2tlclxuICAgICAgICAgICAgbGFiZWw9eydDb2xvcid9XG4gICAgICAgICAgICBjb2xvcj17Y29sb3JQaWNrZXJQcm9wc1swXS5jb2xvclNldHNbMF0uc2VsZWN0ZWRDb2xvcn1cbiAgICAgICAgICAgIG9uU2V0Q29sb3I9e2NvbG9yUGlja2VyUHJvcHNbMF0uY29sb3JTZXRzWzBdLnNldENvbG9yfVxuICAgICAgICAgICAgSWNvbj17QXJyb3dEb3duU21hbGx9XG4gICAgICAgICAgLz5cbiAgICAgICAgICA8U3R5bGVkQ29uZmlnU2VjdGlvbj5cbiAgICAgICAgICAgIDxTZWN0aW9uU3ViVGl0bGU+SW50ZW5zaXR5PC9TZWN0aW9uU3ViVGl0bGU+XG4gICAgICAgICAgICA8U3R5bGVTbGlkZXJXcmFwcGVyPlxuICAgICAgICAgICAgICA8UmFuZ2VTbGlkZXIgey4uLkNPTU1PTl9TTElERVJfUFJPUFN9IHsuLi5zbGlkZXJQcm9wc1sxXX0gLz5cbiAgICAgICAgICAgIDwvU3R5bGVTbGlkZXJXcmFwcGVyPlxuICAgICAgICAgIDwvU3R5bGVkQ29uZmlnU2VjdGlvbj5cbiAgICAgICAgPC9TdHlsZWRXcmFwcGVyPlxuXG4gICAgICAgIDxTdHlsZWRXcmFwcGVyICRtYXJnaW5Cb3R0b209ezB9PlxuICAgICAgICAgIDxTZWN0aW9uVGl0bGU+eydTdW4gbGlnaHQnfTwvU2VjdGlvblRpdGxlPlxuICAgICAgICA8L1N0eWxlZFdyYXBwZXI+XG4gICAgICAgIDxTdHlsZWRXcmFwcGVyICRtYXJnaW5Cb3R0b209ezB9PlxuICAgICAgICAgIDxDb21wYWN0Q29sb3JQaWNrZXJcbiAgICAgICAgICAgIGxhYmVsPXsnQ29sb3InfVxuICAgICAgICAgICAgY29sb3I9e2NvbG9yUGlja2VyUHJvcHNbMV0uY29sb3JTZXRzWzBdLnNlbGVjdGVkQ29sb3J9XG4gICAgICAgICAgICBvblNldENvbG9yPXtjb2xvclBpY2tlclByb3BzWzFdLmNvbG9yU2V0c1swXS5zZXRDb2xvcn1cbiAgICAgICAgICAgIEljb249e0Fycm93RG93blNtYWxsfVxuICAgICAgICAgIC8+XG4gICAgICAgICAgPFN0eWxlZENvbmZpZ1NlY3Rpb24+XG4gICAgICAgICAgICA8U2VjdGlvblN1YlRpdGxlPkludGVuc2l0eTwvU2VjdGlvblN1YlRpdGxlPlxuICAgICAgICAgICAgPFN0eWxlU2xpZGVyV3JhcHBlcj5cbiAgICAgICAgICAgICAgPFJhbmdlU2xpZGVyIHsuLi5DT01NT05fU0xJREVSX1BST1BTfSB7Li4uc2xpZGVyUHJvcHNbMl19IC8+XG4gICAgICAgICAgICA8L1N0eWxlU2xpZGVyV3JhcHBlcj5cbiAgICAgICAgICA8L1N0eWxlZENvbmZpZ1NlY3Rpb24+XG4gICAgICAgIDwvU3R5bGVkV3JhcHBlcj5cbiAgICAgIDwvU3R5bGVkRWZmZWN0Q29uZmlndXJhdG9yPlxuICAgICk7XG4gIH07XG4gIGNvbnN0IGRlZmF1bHRVbmlmb3JtcyA9IHt9O1xuXG4gIGNvbnN0IEVMRVZBVElPTl9FWFRSQV9QQVJBTVMgPSBuZXcgU2V0KFsnaGVpZ2h0RW5kJywgJ2FuaW1hdGVIZWlnaHQnLCAnbGluZWFyRWFzaW5nJ10pO1xuXG4gIGNvbnN0IFBvc3RQcm9jZXNzaW5nRWZmZWN0Q29uZmlndXJhdG9yOiBSZWFjdC5GQzxFZmZlY3RDb25maWd1cmF0b3JQcm9wcz4gPSAoe1xuICAgIGVmZmVjdCxcbiAgICB1cGRhdGVFZmZlY3RDb25maWdcbiAgfSkgPT4ge1xuICAgIGNvbnN0IHVuaWZvcm1zID0gZWZmZWN0LmRlY2tFZmZlY3Q/Lm1vZHVsZS5wcm9wVHlwZXMgfHwgZGVmYXVsdFVuaWZvcm1zO1xuICAgIGNvbnN0IHBhcmFtZXRlckRlc2NyaXB0aW9ucyA9IGVmZmVjdC5nZXRQYXJhbWV0ZXJEZXNjcmlwdGlvbnMoKTtcbiAgICBjb25zdCB7cGFyYW1ldGVycywgaWR9ID0gZWZmZWN0O1xuXG4gICAgY29uc3QgaGFzRWxldmF0aW9uU2VjdGlvbiA9IHBhcmFtZXRlckRlc2NyaXB0aW9ucy5zb21lKGQgPT4gZC5uYW1lID09PSAnYW5pbWF0ZUhlaWdodCcpO1xuXG4gICAgY29uc3QgZmxhdFBhcmFtZXRlckRlc2NyaXB0aW9ucyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgcmV0dXJuIHBhcmFtZXRlckRlc2NyaXB0aW9ucy5yZWR1Y2UoKGFjYywgZGVzY3JpcHRpb24pID0+IHtcbiAgICAgICAgaWYgKGhhc0VsZXZhdGlvblNlY3Rpb24gJiYgRUxFVkFUSU9OX0VYVFJBX1BBUkFNUy5oYXMoZGVzY3JpcHRpb24ubmFtZSkpIHJldHVybiBhY2M7XG5cbiAgICAgICAgaWYgKGhhc0VsZXZhdGlvblNlY3Rpb24gJiYgZGVzY3JpcHRpb24ubmFtZSA9PT0gJ2hlaWdodCcpIHtcbiAgICAgICAgICBhY2MucHVzaCh7Li4uZGVzY3JpcHRpb24sIHR5cGU6IEVMRVZBVElPTl9TRUNUSU9OX1RZUEUgYXMgYW55fSk7XG4gICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChkZXNjcmlwdGlvbi50eXBlID09PSAnY29sb3InKSB7XG4gICAgICAgICAgYWNjLnB1c2goZGVzY3JpcHRpb24pO1xuICAgICAgICB9IGVsc2UgaWYgKGRlc2NyaXB0aW9uLnR5cGUgPT09ICdhcnJheScpIHtcbiAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShkZXNjcmlwdGlvbi5kZWZhdWx0VmFsdWUpKSB7XG4gICAgICAgICAgICBkZXNjcmlwdGlvbi5kZWZhdWx0VmFsdWUuZm9yRWFjaCgoXywgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgYWNjLnB1c2goe1xuICAgICAgICAgICAgICAgIC4uLmRlc2NyaXB0aW9uLFxuICAgICAgICAgICAgICAgIGluZGV4LFxuICAgICAgICAgICAgICAgIGxhYmVsOiBkZXNjcmlwdGlvbi5sYWJlbD8uW2luZGV4XVxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBhY2MucHVzaChkZXNjcmlwdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgfSwgW10gYXMgRWZmZWN0UGFyYW1ldGVyRGVzY3JpcHRpb25GbGF0dGVuZWRbXSk7XG4gICAgfSwgW3BhcmFtZXRlckRlc2NyaXB0aW9ucywgaGFzRWxldmF0aW9uU2VjdGlvbl0pO1xuXG4gICAgY29uc3QgY29udHJvbHMgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIHJldHVybiBmbGF0UGFyYW1ldGVyRGVzY3JpcHRpb25zLm1hcChkZXNjID0+IHtcbiAgICAgICAgaWYgKChkZXNjLnR5cGUgYXMgc3RyaW5nKSA9PT0gRUxFVkFUSU9OX1NFQ1RJT05fVFlQRSkge1xuICAgICAgICAgIHJldHVybiB7aXNFbGV2YXRpb25TZWN0aW9uOiB0cnVlIGFzIGNvbnN0fTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChkZXNjLnR5cGUgPT09ICdjb2xvcicpIHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgaXNDb2xvcjogdHJ1ZSBhcyBjb25zdCxcbiAgICAgICAgICAgIGxhYmVsOiBkZXNjLmxhYmVsIHx8IGRlc2MubmFtZSxcbiAgICAgICAgICAgIHBhcmFtTmFtZTogZGVzYy5uYW1lLFxuICAgICAgICAgICAgY29sb3I6IHBhcmFtZXRlcnNbZGVzYy5uYW1lXSB8fCBkZXNjLmRlZmF1bHRWYWx1ZSB8fCBbMjU1LCAyNTUsIDI1NV0sXG4gICAgICAgICAgICBvblNldENvbG9yOiAodjogW251bWJlciwgbnVtYmVyLCBudW1iZXJdKSA9PlxuICAgICAgICAgICAgICB1cGRhdGVFZmZlY3RDb25maWcobnVsbCwgaWQsIHtwYXJhbWV0ZXJzOiB7W2Rlc2MubmFtZV06IHZ9fSlcbiAgICAgICAgICB9O1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGRlc2MudHlwZSA9PT0gJ2NoZWNrYm94Jykge1xuICAgICAgICAgIGNvbnN0IGxhYmVsID0gdHlwZW9mIGRlc2MubGFiZWwgPT09ICdzdHJpbmcnID8gZGVzYy5sYWJlbCA6IGRlc2MubmFtZTtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgaXNDaGVja2JveDogdHJ1ZSBhcyBjb25zdCxcbiAgICAgICAgICAgIGxhYmVsLFxuICAgICAgICAgICAgcGFyYW1OYW1lOiBkZXNjLm5hbWUsXG4gICAgICAgICAgICBjaGVja2VkOiBCb29sZWFuKHBhcmFtZXRlcnNbZGVzYy5uYW1lXSksXG4gICAgICAgICAgICB0b29sdGlwOiBkZXNjLnRvb2x0aXAsXG4gICAgICAgICAgICBvbkNoYW5nZTogKCkgPT5cbiAgICAgICAgICAgICAgdXBkYXRlRWZmZWN0Q29uZmlnKG51bGwsIGlkLCB7cGFyYW1ldGVyczoge1tkZXNjLm5hbWVdOiAhcGFyYW1ldGVyc1tkZXNjLm5hbWVdfX0pXG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHBhcmFtTmFtZSA9IGRlc2MubmFtZTtcblxuICAgICAgICBjb25zdCByYXdVbmlmb3JtID0gdW5pZm9ybXNbZGVzYy5uYW1lXTtcbiAgICAgICAgaWYgKHJhd1VuaWZvcm0gJiYgcmF3VW5pZm9ybS5wcml2YXRlKSB7XG4gICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBsdW1hLmdsIDkgd3JhcHMgYXJyYXkgcHJvcFR5cGVzIGFzIHt2YWx1ZTogWy4uLl19XG4gICAgICAgIGNvbnN0IHVuaWZvcm0gPVxuICAgICAgICAgIHJhd1VuaWZvcm0gJiYgdHlwZW9mIHJhd1VuaWZvcm0gPT09ICdvYmplY3QnICYmIEFycmF5LmlzQXJyYXkocmF3VW5pZm9ybS52YWx1ZSlcbiAgICAgICAgICAgID8gcmF3VW5pZm9ybS52YWx1ZVxuICAgICAgICAgICAgOiByYXdVbmlmb3JtO1xuXG4gICAgICAgIGNvbnN0IHByZXZWYWx1ZSA9IHBhcmFtZXRlcnNbcGFyYW1OYW1lXTtcblxuICAgICAgICBjb25zdCBsYWJlbCA9IGRlc2MubGFiZWwgPT09IGZhbHNlID8gZmFsc2UgOiBkZXNjLmxhYmVsIHx8IGRlc2MubmFtZTtcblxuICAgICAgICAvLyB0aGUgdW5pZm9ybSBpcyBbbnVtYmVyLCBudW1iZXJdIGFycmF5XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHVuaWZvcm0pICYmIHVuaWZvcm0ubGVuZ3RoID09PSAyKSB7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGxhYmVsLFxuICAgICAgICAgICAgdmFsdWUxOiBwcmV2VmFsdWVbZGVzYy5pbmRleCB8fCAwXSB8fCAwLFxuICAgICAgICAgICAgcmFuZ2U6IFswLCAxXSxcbiAgICAgICAgICAgIHZhbHVlMDogMCxcbiAgICAgICAgICAgIG9uQ2hhbmdlOiAobmV3VmFsdWU6IG51bWJlcltdLCBldmVudCkgPT4ge1xuICAgICAgICAgICAgICB1cGRhdGVFZmZlY3RDb25maWcoZXZlbnQsIGlkLCB7XG4gICAgICAgICAgICAgICAgcGFyYW1ldGVyczoge1xuICAgICAgICAgICAgICAgICAgW3BhcmFtTmFtZV06XG4gICAgICAgICAgICAgICAgICAgIGRlc2MuaW5kZXggPT09IDAgPyBbbmV3VmFsdWVbMV0sIHByZXZWYWx1ZVsxXV0gOiBbcHJldlZhbHVlWzBdLCBuZXdWYWx1ZVsxXV1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgLy8gdGhlIHVuaWZvcm0gaXMgYSBwbGFpbiBudW1iZXIgd2l0aG91dCBhbnkgZGVzY3JpcHRpb25cbiAgICAgICAgZWxzZSBpZiAoaXNOdW1iZXIodW5pZm9ybSkpIHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbGFiZWwsXG4gICAgICAgICAgICB2YWx1ZTE6IHByZXZWYWx1ZSA/PyAwLFxuICAgICAgICAgICAgcmFuZ2U6IFtkZXNjLm1pbiA/PyAwLCBkZXNjLm1heCA/PyA1MDBdLFxuICAgICAgICAgICAgdmFsdWUwOiBkZXNjLm1pbiA/PyAwLFxuICAgICAgICAgICAgb25DaGFuZ2U6IChuZXdWYWx1ZTogbnVtYmVyW10sIGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgIHVwZGF0ZUVmZmVjdENvbmZpZyhldmVudCwgaWQsIHtwYXJhbWV0ZXJzOiB7W3BhcmFtTmFtZV06IG5ld1ZhbHVlWzFdfX0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgLy8gdGhlIHVuaWZvcm0gZGVzY3JpcHRpb24gaXMge3ZhbHVlOiAwLCBtaW46IDAsIG1heDogMSwgLi4ufVxuICAgICAgICBlbHNlIGlmICh1bmlmb3JtICYmIGlzTnVtYmVyKHVuaWZvcm0udmFsdWUpKSB7XG4gICAgICAgICAgY29uc3QgcmFuZ2VNaW4gPSBkZXNjLm1pbiA/PyB1bmlmb3JtLm1pbiA/PyB1bmlmb3JtLnNvZnRNaW4gPz8gMDtcbiAgICAgICAgICBjb25zdCByYW5nZU1heCA9IGRlc2MubWF4ID8/IHVuaWZvcm0ubWF4ID8/IHVuaWZvcm0uc29mdE1heCA/PyAxO1xuICAgICAgICAgIGNvbnN0IHJhbmdlU3BhbiA9IHJhbmdlTWF4IC0gcmFuZ2VNaW47XG4gICAgICAgICAgY29uc3Qgc3RlcCA9IHJhbmdlU3BhbiA+IDEwID8gMSA6IDAuMDAxO1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBsYWJlbCxcbiAgICAgICAgICAgIHZhbHVlMTogcHJldlZhbHVlIHx8IDAsXG4gICAgICAgICAgICByYW5nZTogW3JhbmdlTWluLCByYW5nZU1heF0sXG4gICAgICAgICAgICB2YWx1ZTA6IHJhbmdlTWluLFxuICAgICAgICAgICAgc3RlcCxcbiAgICAgICAgICAgIG9uQ2hhbmdlOiAobmV3VmFsdWU6IG51bWJlcltdLCBldmVudCkgPT4ge1xuICAgICAgICAgICAgICB1cGRhdGVFZmZlY3RDb25maWcoZXZlbnQsIGlkLCB7cGFyYW1ldGVyczoge1twYXJhbU5hbWVdOiBuZXdWYWx1ZVsxXX19KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIC8vIFBhcmFtZXRlciBkZWZpbmVkIGluIGVmZmVjdCBkZXNjcmlwdGlvbiBidXQgbm90IGluIHNoYWRlciBwcm9wVHlwZXNcbiAgICAgICAgZWxzZSBpZiAoZGVzYy5taW4gIT09IHVuZGVmaW5lZCAmJiBkZXNjLm1heCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgY29uc3QgcmFuZ2VTcGFuID0gZGVzYy5tYXggLSBkZXNjLm1pbjtcbiAgICAgICAgICBjb25zdCBzdGVwID0gcmFuZ2VTcGFuID4gMTAgPyAxIDogMC4wMDE7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGxhYmVsLFxuICAgICAgICAgICAgdmFsdWUxOiBwcmV2VmFsdWUgPz8gZGVzYy5kZWZhdWx0VmFsdWUgPz8gMCxcbiAgICAgICAgICAgIHJhbmdlOiBbZGVzYy5taW4sIGRlc2MubWF4XSxcbiAgICAgICAgICAgIHZhbHVlMDogZGVzYy5taW4sXG4gICAgICAgICAgICBzdGVwLFxuICAgICAgICAgICAgb25DaGFuZ2U6IChuZXdWYWx1ZTogbnVtYmVyW10sIGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgIHVwZGF0ZUVmZmVjdENvbmZpZyhldmVudCwgaWQsIHtwYXJhbWV0ZXJzOiB7W3BhcmFtTmFtZV06IG5ld1ZhbHVlWzFdfX0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH07XG4gICAgICAgIH1cblxuICAgICAgICAvLyBpZ25vcmUgZXZlcnl0aGluZyBlbHNlIGZvciBub3dcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9KTtcbiAgICB9LCBbZmxhdFBhcmFtZXRlckRlc2NyaXB0aW9ucywgaWQsIHBhcmFtZXRlcnMsIHVwZGF0ZUVmZmVjdENvbmZpZywgdW5pZm9ybXNdKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8U3R5bGVkRWZmZWN0Q29uZmlndXJhdG9yIGtleT17ZWZmZWN0LmlkfT5cbiAgICAgICAgeygoKSA9PiB7XG4gICAgICAgICAgY29uc3QgZWxlbWVudHM6IFJlYWN0LlJlYWN0Tm9kZVtdID0gW107XG4gICAgICAgICAgbGV0IGkgPSAwO1xuICAgICAgICAgIHdoaWxlIChpIDwgZmxhdFBhcmFtZXRlckRlc2NyaXB0aW9ucy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGNvbnN0IGNvbnRyb2wgPSBjb250cm9sc1tpXTtcbiAgICAgICAgICAgIGlmICghY29udHJvbCkge1xuICAgICAgICAgICAgICBpKys7XG4gICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoJ2lzQ29sb3InIGluIGNvbnRyb2wpIHtcbiAgICAgICAgICAgICAgY29uc3QgbmV4dENvbnRyb2wgPSBpICsgMSA8IGNvbnRyb2xzLmxlbmd0aCA/IGNvbnRyb2xzW2kgKyAxXSA6IG51bGw7XG4gICAgICAgICAgICAgIGlmIChuZXh0Q29udHJvbCAmJiAnaXNDaGVja2JveCcgaW4gbmV4dENvbnRyb2wpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBjYlRvb2x0aXBJZCA9IG5leHRDb250cm9sLnRvb2x0aXBcbiAgICAgICAgICAgICAgICAgID8gYGVmZmVjdC1jYi1oaW50LSR7ZWZmZWN0LmlkfS0ke2l9YFxuICAgICAgICAgICAgICAgICAgOiB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgZWxlbWVudHMucHVzaChcbiAgICAgICAgICAgICAgICAgIDxTdHlsZWRDb2xvckNoZWNrYm94Um93IGtleT17YCR7ZWZmZWN0LmlkfS0ke2l9YH0+XG4gICAgICAgICAgICAgICAgICAgIDxDb21wYWN0Q29sb3JQaWNrZXJcbiAgICAgICAgICAgICAgICAgICAgICBsYWJlbD17dHlwZW9mIGNvbnRyb2wubGFiZWwgPT09ICdzdHJpbmcnID8gY29udHJvbC5sYWJlbCA6ICdDb2xvcid9XG4gICAgICAgICAgICAgICAgICAgICAgY29sb3I9e2NvbnRyb2wuY29sb3J9XG4gICAgICAgICAgICAgICAgICAgICAgb25TZXRDb2xvcj17XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250cm9sLm9uU2V0Q29sb3IgPz9cbiAgICAgICAgICAgICAgICAgICAgICAgICgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIC8qIG5vb3AgKi9cbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIEljb249e0Fycm93RG93blNtYWxsfVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICA8U3R5bGVkQ2hlY2tib3hXcmFwcGVyXG4gICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gKG5leHRDb250cm9sIGFzIHtvbkNoYW5nZTogKCkgPT4gdm9pZH0pLm9uQ2hhbmdlKCl9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8U3R5bGVkQ2hlY2tib3hcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjaGVja2VkPXtuZXh0Q29udHJvbC5jaGVja2VkfVxuICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eygpID0+IChuZXh0Q29udHJvbCBhcyB7b25DaGFuZ2U6ICgpID0+IHZvaWR9KS5vbkNoYW5nZSgpfVxuICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17ZSA9PiBlLnN0b3BQcm9wYWdhdGlvbigpfVxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgPFN0eWxlZENoZWNrYm94TGFiZWw+e25leHRDb250cm9sLmxhYmVsfTwvU3R5bGVkQ2hlY2tib3hMYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICB7bmV4dENvbnRyb2wudG9vbHRpcCA/IChcbiAgICAgICAgICAgICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxTdHlsZWRIaW50SWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtdGlwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1mb3I9e2NiVG9vbHRpcElkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2UgPT4gZS5zdG9wUHJvcGFnYXRpb24oKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9TdHlsZWRIaW50SWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEhpbnRUb29sdGlwIGlkPXtjYlRvb2x0aXBJZH0gZWZmZWN0PVwic29saWRcIiBkZWxheVNob3c9ezIwMH0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge25leHRDb250cm9sLnRvb2x0aXB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvU3R5bGVkSGludFRvb2x0aXA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICAgICAgPC9TdHlsZWRDaGVja2JveFdyYXBwZXI+XG4gICAgICAgICAgICAgICAgICA8L1N0eWxlZENvbG9yQ2hlY2tib3hSb3c+XG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBpICs9IDI7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICBlbGVtZW50cy5wdXNoKFxuICAgICAgICAgICAgICAgIDxSZWd1bGFyT3V0ZXJXcmFwcGVyIGtleT17YCR7ZWZmZWN0LmlkfS0ke2l9YH0+XG4gICAgICAgICAgICAgICAgICA8Q29tcGFjdENvbG9yUGlja2VyXG4gICAgICAgICAgICAgICAgICAgIGxhYmVsPXt0eXBlb2YgY29udHJvbC5sYWJlbCA9PT0gJ3N0cmluZycgPyBjb250cm9sLmxhYmVsIDogJ0NvbG9yJ31cbiAgICAgICAgICAgICAgICAgICAgY29sb3I9e2NvbnRyb2wuY29sb3J9XG4gICAgICAgICAgICAgICAgICAgIG9uU2V0Q29sb3I9e1xuICAgICAgICAgICAgICAgICAgICAgIGNvbnRyb2wub25TZXRDb2xvciA/P1xuICAgICAgICAgICAgICAgICAgICAgICgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvKiBub29wICovXG4gICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBJY29uPXtBcnJvd0Rvd25TbWFsbH1cbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9SZWd1bGFyT3V0ZXJXcmFwcGVyPlxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICBpKys7XG4gICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoJ2lzQ2hlY2tib3gnIGluIGNvbnRyb2wpIHtcbiAgICAgICAgICAgICAgZWxlbWVudHMucHVzaChcbiAgICAgICAgICAgICAgICA8UmVndWxhck91dGVyV3JhcHBlciBrZXk9e2Ake2VmZmVjdC5pZH0tJHtpfWB9PlxuICAgICAgICAgICAgICAgICAgPFN0eWxlZENoZWNrYm94V3JhcHBlclxuICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiAoY29udHJvbCBhcyB7b25DaGFuZ2U6ICgpID0+IHZvaWR9KS5vbkNoYW5nZSgpfVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8U3R5bGVkQ2hlY2tib3hcbiAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICAgICAgICAgICAgICAgIGNoZWNrZWQ9e2NvbnRyb2wuY2hlY2tlZH1cbiAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KCkgPT4gKGNvbnRyb2wgYXMge29uQ2hhbmdlOiAoKSA9PiB2b2lkfSkub25DaGFuZ2UoKX1cbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXtlID0+IGUuc3RvcFByb3BhZ2F0aW9uKCl9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDxTdHlsZWRDaGVja2JveExhYmVsPntjb250cm9sLmxhYmVsfTwvU3R5bGVkQ2hlY2tib3hMYWJlbD5cbiAgICAgICAgICAgICAgICAgIDwvU3R5bGVkQ2hlY2tib3hXcmFwcGVyPlxuICAgICAgICAgICAgICAgIDwvUmVndWxhck91dGVyV3JhcHBlcj5cbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgaSsrO1xuICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKCdpc0VsZXZhdGlvblNlY3Rpb24nIGluIGNvbnRyb2wpIHtcbiAgICAgICAgICAgICAgZWxlbWVudHMucHVzaChcbiAgICAgICAgICAgICAgICA8U3VyZmFjZUZvZ0VsZXZhdGlvblNlY3Rpb25cbiAgICAgICAgICAgICAgICAgIGtleT17YCR7ZWZmZWN0LmlkfS1lbGV2YXRpb25gfVxuICAgICAgICAgICAgICAgICAgZWZmZWN0PXtlZmZlY3R9XG4gICAgICAgICAgICAgICAgICB1cGRhdGVFZmZlY3RDb25maWc9e3VwZGF0ZUVmZmVjdENvbmZpZ31cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICBpKys7XG4gICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBlbGVtZW50cy5wdXNoKFxuICAgICAgICAgICAgICA8UmVndWxhck91dGVyV3JhcHBlciBrZXk9e2Ake2VmZmVjdC5pZH0tJHtpfWB9PlxuICAgICAgICAgICAgICAgIHtjb250cm9sLmxhYmVsID8gKFxuICAgICAgICAgICAgICAgICAgPFJlZ3VsYXJTZWN0aW9uVGl0bGVXcmFwcGVyPntjb250cm9sLmxhYmVsfTwvUmVndWxhclNlY3Rpb25UaXRsZVdyYXBwZXI+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgPFJlZ3VsYXJTbGlkZXJXcmFwcGVyPlxuICAgICAgICAgICAgICAgICAgPFJhbmdlU2xpZGVyIGtleT17aX0gey4uLkNPTU1PTl9TTElERVJfUFJPUFN9IHsuLi5jb250cm9sfSAvPlxuICAgICAgICAgICAgICAgIDwvUmVndWxhclNsaWRlcldyYXBwZXI+XG4gICAgICAgICAgICAgIDwvUmVndWxhck91dGVyV3JhcHBlcj5cbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBpKys7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIGVsZW1lbnRzO1xuICAgICAgICB9KSgpfVxuICAgICAgPC9TdHlsZWRFZmZlY3RDb25maWd1cmF0b3I+XG4gICAgKTtcbiAgfTtcblxuICBjb25zdCBFZmZlY3RDb25maWd1cmF0b3IgPSAoe1xuICAgIGVmZmVjdCxcbiAgICB1cGRhdGVFZmZlY3RDb25maWdcbiAgfTogRWZmZWN0Q29uZmlndXJhdG9yUHJvcHMgJiB7aW50bDogSW50bFNoYXBlfSkgPT4ge1xuICAgIHJldHVybiBlZmZlY3QudHlwZSA9PT0gTElHSFRfQU5EX1NIQURPV19FRkZFQ1QudHlwZSA/IChcbiAgICAgIDxTaGFkb3dFZmZlY3RDb25maWd1cmF0b3IgZWZmZWN0PXtlZmZlY3R9IHVwZGF0ZUVmZmVjdENvbmZpZz17dXBkYXRlRWZmZWN0Q29uZmlnfSAvPlxuICAgICkgOiAoXG4gICAgICA8UG9zdFByb2Nlc3NpbmdFZmZlY3RDb25maWd1cmF0b3IgZWZmZWN0PXtlZmZlY3R9IHVwZGF0ZUVmZmVjdENvbmZpZz17dXBkYXRlRWZmZWN0Q29uZmlnfSAvPlxuICAgICk7XG4gIH07XG5cbiAgcmV0dXJuIGluamVjdEludGwoRWZmZWN0Q29uZmlndXJhdG9yKTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQUdBLElBQUFBLE1BQUEsR0FB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QUNEbkYsQ0FBQyxFQUFFO1lBQUM7VUFFTjtVQUVBbUwsUUFBUSxDQUFDakssSUFBSSxjQUNYekQsTUFBQSxZQUFBNEosYUFBQSxDQUFDakUsbUJBQW1CO1lBQUNrRSxHQUFHLEtBQUFvRSxNQUFBLENBQUt4RyxNQUFNLENBQUNHLEVBQUUsT0FBQXFHLE1BQUEsQ0FBSTFMLENBQUM7VUFBRyxHQUMzQ3FMLE9BQU8sQ0FBQ3pILEtBQUssZ0JBQ1puRyxNQUFBLFlBQUE0SixhQUFBLENBQUNoRSwwQkFBMEIsUUFBRWdJLE9BQU8sQ0FBQ3pILEtBQWtDLENBQUMsR0FDdEUsSUFBSSxlQUNSbkcsTUFBQSxZQUFBNEosYUFBQSxDQUFDL0Qsb0JBQW9CLHFCQUNuQjdGLE1BQUEsWUFBQTRKLGFBQUEsQ0FBQ3hDLFdBQVcsTUFBQThDLFNBQUE7WUFBQ0wsR0FBRyxFQUFFdEg7VUFBRSxHQUFLb0UsbUJBQW1CLEVBQU1pSCxPQUFPLENBQUcsQ0FDeEMsQ0FDSCxDQUN2QixDQUFDO1VBQ0RyTCxDQUFDLEVBQUU7UUFDTCxDQUFDO1FBQUErTCxJQUFBO01BdkhELE9BQU8vTCxDQUFDLEdBQUd5SSx5QkFBeUIsQ0FBQ25ILE1BQU07UUFBQXlLLElBQUEsR0FBQVgsS0FBQTtRQUFBLElBQUFXLElBQUEsUUFJdkM7TUFBUztNQXFIYixPQUFPWixRQUFRO0lBQ2pCLENBQUMsQ0FBRSxDQUNxQixDQUFDO0VBRS9CLENBQUM7RUFFRCxJQUFNYSxrQkFBa0IsR0FBRyxTQUFyQkEsa0JBQWtCQSxDQUFBQyxLQUFBLEVBRzJCO0lBQUEsSUFGakQvRyxNQUFNLEdBQUErRyxLQUFBLENBQU4vRyxNQUFNO01BQ05DLGtCQUFrQixHQUFBOEcsS0FBQSxDQUFsQjlHLGtCQUFrQjtJQUVsQixPQUFPRCxNQUFNLENBQUMyRCxJQUFJLEtBQUtxRCxrQ0FBdUIsQ0FBQ3JELElBQUksZ0JBQ2pEcEwsTUFBQSxZQUFBNEosYUFBQSxDQUFDckMsd0JBQXdCO01BQUNFLE1BQU0sRUFBRUEsTUFBTztNQUFDQyxrQkFBa0IsRUFBRUE7SUFBbUIsQ0FBRSxDQUFDLGdCQUVwRjFILE1BQUEsWUFBQTRKLGFBQUEsQ0FBQ1UsZ0NBQWdDO01BQUM3QyxNQUFNLEVBQUVBLE1BQU87TUFBQ0Msa0JBQWtCLEVBQUVBO0lBQW1CLENBQUUsQ0FDNUY7RUFDSCxDQUFDO0VBRUQsT0FBTyxJQUFBZ0gscUJBQVUsRUFBQ0gsa0JBQWtCLENBQUM7QUFDdkMiLCJpZ25vcmVMaXN0IjpbXX0=