@kepler.gl/components 3.3.0-alpha.8 → 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 (52) hide show
  1. package/dist/cjs/common/file-uploader/file-upload.js +2 -1
  2. package/dist/cjs/effects/effect-configurator.js +2 -2
  3. package/dist/cjs/effects/effect-manager.js +32 -17
  4. package/dist/cjs/effects/effect-time-configurator.js +110 -42
  5. package/dist/cjs/kepler-gl.js +6 -2
  6. package/dist/cjs/modals/export-map-modal/components.js +16 -7
  7. package/dist/cjs/modals/export-map-modal/export-html-map.js +5 -9
  8. package/dist/cjs/modals/export-map-modal/export-json-map.js +4 -8
  9. package/dist/cjs/modals/export-map-modal/export-map-modal.js +21 -16
  10. package/dist/cjs/notification-panel/notification-item.js +58 -12
  11. package/dist/cjs/remote-dataset-refresh-controller.js +50 -0
  12. package/dist/cjs/side-panel/common/dataset-info.js +187 -8
  13. package/dist/cjs/side-panel/common/dataset-refresh-progress.js +63 -0
  14. package/dist/cjs/side-panel/common/dataset-title.js +76 -13
  15. package/dist/cjs/side-panel/common/source-data-catalog.js +31 -6
  16. package/dist/cjs/side-panel/filter-manager.js +7 -3
  17. package/dist/cjs/side-panel/layer-manager.js +14 -4
  18. package/dist/cjs/side-panel/layer-panel/dataset-layer-section.js +14 -4
  19. package/dist/cjs/side-panel/layer-panel/dataset-section.js +7 -3
  20. package/dist/cjs/side-panel/layer-panel/layer-configurator.js +49 -35
  21. package/dist/cjs/side-panel/layer-panel/vector-tile-layer-configurator.js +4 -3
  22. package/dist/effects/effect-manager.d.ts +1 -1
  23. package/dist/esm/common/file-uploader/file-upload.js +2 -1
  24. package/dist/esm/effects/effect-configurator.js +2 -2
  25. package/dist/esm/effects/effect-manager.js +34 -19
  26. package/dist/esm/effects/effect-time-configurator.js +111 -43
  27. package/dist/esm/kepler-gl.js +6 -2
  28. package/dist/esm/modals/export-map-modal/components.js +16 -7
  29. package/dist/esm/modals/export-map-modal/export-html-map.js +6 -10
  30. package/dist/esm/modals/export-map-modal/export-json-map.js +5 -9
  31. package/dist/esm/modals/export-map-modal/export-map-modal.js +21 -14
  32. package/dist/esm/notification-panel/notification-item.js +60 -14
  33. package/dist/esm/remote-dataset-refresh-controller.js +44 -0
  34. package/dist/esm/side-panel/common/dataset-info.js +186 -9
  35. package/dist/esm/side-panel/common/dataset-refresh-progress.js +56 -0
  36. package/dist/esm/side-panel/common/dataset-title.js +77 -14
  37. package/dist/esm/side-panel/common/source-data-catalog.js +29 -6
  38. package/dist/esm/side-panel/filter-manager.js +7 -3
  39. package/dist/esm/side-panel/layer-manager.js +14 -4
  40. package/dist/esm/side-panel/layer-panel/dataset-layer-section.js +14 -4
  41. package/dist/esm/side-panel/layer-panel/dataset-section.js +7 -3
  42. package/dist/esm/side-panel/layer-panel/layer-configurator.js +49 -35
  43. package/dist/esm/side-panel/layer-panel/vector-tile-layer-configurator.js +4 -3
  44. package/dist/kepler-gl.d.ts +1 -0
  45. package/dist/modals/export-map-modal/components.d.ts +14 -0
  46. package/dist/remote-dataset-refresh-controller.d.ts +11 -0
  47. package/dist/side-panel/common/dataset-info.d.ts +10 -0
  48. package/dist/side-panel/common/dataset-refresh-progress.d.ts +11 -0
  49. package/dist/side-panel/common/dataset-title.d.ts +5 -0
  50. package/dist/side-panel/common/source-data-catalog.d.ts +3 -0
  51. package/dist/side-panel/layer-panel/dataset-section.d.ts +2 -0
  52. package/package.json +16 -16
@@ -121,7 +121,7 @@ export default function EffectConfiguratorFactory(RangeSlider, EffectTimeConfigu
121
121
  }, [id, effect, parameters, updateEffectConfig]);
122
122
  var onTimeParametersChanged = useCallback(function (parameters) {
123
123
  updateEffectConfig(null, id, {
124
- parameters: _objectSpread(_objectSpread(_objectSpread({}, parameters.timestamp ? {
124
+ parameters: _objectSpread(_objectSpread(_objectSpread({}, parameters.timestamp != null ? {
125
125
  timestamp: parameters.timestamp
126
126
  } : null), parameters.timezone ? {
127
127
  timezone: parameters.timezone
@@ -462,4 +462,4 @@ export default function EffectConfiguratorFactory(RangeSlider, EffectTimeConfigu
462
462
  };
463
463
  return injectIntl(EffectConfigurator);
464
464
  }
465
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsInVzZUNhbGxiYWNrIiwidXNlTWVtbyIsInN0eWxlZCIsImluamVjdEludGwiLCJMSUdIVF9BTkRfU0hBRE9XX0VGRkVDVCIsImlzTnVtYmVyIiwiUmFuZ2VTbGlkZXJGYWN0b3J5IiwiQXJyb3dEb3duU21hbGwiLCJUb29sdGlwIiwiRWZmZWN0VGltZUNvbmZpZ3VyYXRvckZhY3RvcnkiLCJDb21wYWN0Q29sb3JQaWNrZXIiLCJTdXJmYWNlRm9nRWxldmF0aW9uU2VjdGlvbkZhY3RvcnkiLCJFTEVWQVRJT05fU0VDVElPTl9UWVBFIiwiU3R5bGVkRWZmZWN0Q29uZmlndXJhdG9yIiwiZGl2IiwiYXR0cnMiLCJjbGFzc05hbWUiLCJfdGVtcGxhdGVPYmplY3QiLCJfdGFnZ2VkVGVtcGxhdGVMaXRlcmFsIiwicHJvcHMiLCJ0aGVtZSIsImVmZmVjdENvbmZpZ3VyYXRvck1hcmdpbiIsImVmZmVjdENvbmZpZ3VyYXRvclBhZGRpbmciLCJQYW5lbExhYmVsV3JhcHBlciIsIl90ZW1wbGF0ZU9iamVjdDIiLCJTdHlsZWRDb2xvclNlbGVjdG9yV3JhcHBlciIsIl90ZW1wbGF0ZU9iamVjdDMiLCJTdHlsZWRWZXJ0aWNhbFNlcGFyYXRvciIsIl90ZW1wbGF0ZU9iamVjdDQiLCJpbnB1dEJnZCIsIlN0eWxlZFdyYXBwZXIiLCJfdGVtcGxhdGVPYmplY3Q1IiwiX3Byb3BzJCRtYXJnaW5Cb3R0b20iLCIkbWFyZ2luQm90dG9tIiwiU3R5bGVkQ29uZmlnU2VjdGlvbiIsIl90ZW1wbGF0ZU9iamVjdDYiLCJTZWN0aW9uVGl0bGUiLCJfdGVtcGxhdGVPYmplY3Q3IiwiaW5wdXRGb250U2l6ZSIsImVmZmVjdFBhbmVsVGV4dFNlY29uZGFyeTEiLCJTZWN0aW9uU3ViVGl0bGUiLCJfdGVtcGxhdGVPYmplY3Q4IiwiZWZmZWN0UGFuZWxUZXh0U2Vjb25kYXJ5MiIsIlN0eWxlU2xpZGVyV3JhcHBlciIsIl90ZW1wbGF0ZU9iamVjdDkiLCJSZWd1bGFyT3V0ZXJXcmFwcGVyIiwiX3RlbXBsYXRlT2JqZWN0MCIsIlJlZ3VsYXJTZWN0aW9uVGl0bGVXcmFwcGVyIiwiX3RlbXBsYXRlT2JqZWN0MSIsIlJlZ3VsYXJTbGlkZXJXcmFwcGVyIiwiX3RlbXBsYXRlT2JqZWN0MTAiLCJTdHlsZWRDaGVja2JveFdyYXBwZXIiLCJfdGVtcGxhdGVPYmplY3QxMSIsIlN0eWxlZENoZWNrYm94IiwiaW5wdXQiLCJfdGVtcGxhdGVPYmplY3QxMiIsImFjdGl2ZUNvbG9yIiwiU3R5bGVkQ2hlY2tib3hMYWJlbCIsImxhYmVsIiwiX3RlbXBsYXRlT2JqZWN0MTMiLCJTdHlsZWRIaW50VG9vbHRpcCIsIl90ZW1wbGF0ZU9iamVjdDE0IiwiU3R5bGVkSGludEljb24iLCJzcGFuIiwiX3RlbXBsYXRlT2JqZWN0MTUiLCJsYWJlbENvbG9yIiwidGV4dENvbG9ySGwiLCJTdHlsZWRDb2xvckNoZWNrYm94Um93IiwiX3RlbXBsYXRlT2JqZWN0MTYiLCJDT01NT05fU0xJREVSX1BST1BTIiwic2hvd0lucHV0IiwiaXNSYW5nZWQiLCJzdGVwIiwiRWZmZWN0Q29uZmlndXJhdG9yRmFjdG9yeSIsImRlcHMiLCJSYW5nZVNsaWRlciIsIkVmZmVjdFRpbWVDb25maWd1cmF0b3IiLCJTdXJmYWNlRm9nRWxldmF0aW9uU2VjdGlvbiIsIlNoYWRvd0VmZmVjdENvbmZpZ3VyYXRvciIsIl9yZWYiLCJlZmZlY3QiLCJ1cGRhdGVFZmZlY3RDb25maWciLCJwYXJhbWV0ZXJzIiwiaWQiLCJzbGlkZXJQcm9wcyIsInByb3BOYW1lcyIsImRlc2NyaXB0aW9ucyIsImdldFBhcmFtZXRlckRlc2NyaXB0aW9ucyIsIm1hcCIsInByb3BOYW1lIiwiX2Rlc2MkbWluIiwiX2Rlc2MkbWF4IiwiZGVzYyIsImZpbmQiLCJkIiwibmFtZSIsIm1pbiIsIm1heCIsInZhbHVlMSIsInJhbmdlIiwidmFsdWUwIiwib25DaGFuZ2UiLCJ2YWx1ZSIsImV2ZW50IiwiX2RlZmluZVByb3BlcnR5Iiwib25UaW1lUGFyYW1ldGVyc0NoYW5nZWQiLCJfb2JqZWN0U3ByZWFkIiwidGltZXN0YW1wIiwidGltZXpvbmUiLCJ0aW1lTW9kZSIsImNvbG9yUGlja2VyUHJvcHMiLCJjb2xvclNldHMiLCJzZWxlY3RlZENvbG9yIiwic2V0Q29sb3IiLCJ2IiwiY3JlYXRlRWxlbWVudCIsImtleSIsImNvbG9yIiwib25TZXRDb2xvciIsIkljb24iLCJfZXh0ZW5kcyIsImRlZmF1bHRVbmlmb3JtcyIsIkVMRVZBVElPTl9FWFRSQV9QQVJBTVMiLCJTZXQiLCJQb3N0UHJvY2Vzc2luZ0VmZmVjdENvbmZpZ3VyYXRvciIsIl9yZWYyIiwiX2VmZmVjdCRkZWNrRWZmZWN0IiwidW5pZm9ybXMiLCJkZWNrRWZmZWN0IiwibW9kdWxlIiwicHJvcFR5cGVzIiwicGFyYW1ldGVyRGVzY3JpcHRpb25zIiwiaGFzRWxldmF0aW9uU2VjdGlvbiIsInNvbWUiLCJmbGF0UGFyYW1ldGVyRGVzY3JpcHRpb25zIiwicmVkdWNlIiwiYWNjIiwiZGVzY3JpcHRpb24iLCJoYXMiLCJwdXNoIiwidHlwZSIsIkFycmF5IiwiaXNBcnJheSIsImRlZmF1bHRWYWx1ZSIsImZvckVhY2giLCJfIiwiaW5kZXgiLCJfZGVzY3JpcHRpb24kbGFiZWwiLCJjb250cm9scyIsImlzRWxldmF0aW9uU2VjdGlvbiIsImlzQ29sb3IiLCJwYXJhbU5hbWUiLCJpc0NoZWNrYm94IiwiY2hlY2tlZCIsIkJvb2xlYW4iLCJ0b29sdGlwIiwicmF3VW5pZm9ybSIsInVuaWZvcm0iLCJfdHlwZW9mIiwicHJldlZhbHVlIiwibGVuZ3RoIiwibmV3VmFsdWUiLCJfZGVzYyRtaW4yIiwiX2Rlc2MkbWF4MiIsIl9kZXNjJG1pbjMiLCJfcmVmMyIsIl9yZWY0IiwiX2Rlc2MkbWluNCIsIl9yZWY1IiwiX3JlZjYiLCJfZGVzYyRtYXgzIiwicmFuZ2VNaW4iLCJzb2Z0TWluIiwicmFuZ2VNYXgiLCJzb2Z0TWF4IiwicmFuZ2VTcGFuIiwidW5kZWZpbmVkIiwiX3JlZjciLCJlbGVtZW50cyIsImkiLCJfbG9vcCIsImNvbnRyb2wiLCJfY29udHJvbCRvblNldENvbG9yMiIsIm5leHRDb250cm9sIiwiX2NvbnRyb2wkb25TZXRDb2xvciIsImNiVG9vbHRpcElkIiwiY29uY2F0Iiwib25DbGljayIsImUiLCJzdG9wUHJvcGFnYXRpb24iLCJGcmFnbWVudCIsImRlbGF5U2hvdyIsIl9yZXQiLCJFZmZlY3RDb25maWd1cmF0b3IiLCJfcmVmOCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lZmZlY3RzL2VmZmVjdC1jb25maWd1cmF0b3IudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCBSZWFjdCwge3VzZUNhbGxiYWNrLCB1c2VNZW1vfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCB7aW5qZWN0SW50bCwgSW50bFNoYXBlfSBmcm9tICdyZWFjdC1pbnRsJztcblxuaW1wb3J0IHtMSUdIVF9BTkRfU0hBRE9XX0VGRkVDVH0gZnJvbSAnQGtlcGxlci5nbC9jb25zdGFudHMnO1xuaW1wb3J0IHtpc051bWJlcn0gZnJvbSAnQGtlcGxlci5nbC91dGlscyc7XG5pbXBvcnQge0VmZmVjdCwgRWZmZWN0VXBkYXRlUHJvcHN9IGZyb20gJ0BrZXBsZXIuZ2wvdHlwZXMnO1xuXG5pbXBvcnQgUmFuZ2VTbGlkZXJGYWN0b3J5IGZyb20gJy4uL2NvbW1vbi9yYW5nZS1zbGlkZXInO1xuaW1wb3J0IHtBcnJvd0Rvd25TbWFsbH0gZnJvbSAnLi4vY29tbW9uL2ljb25zJztcbmltcG9ydCB7VG9vbHRpcH0gZnJvbSAnLi4vY29tbW9uL3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCBFZmZlY3RUaW1lQ29uZmlndXJhdG9yRmFjdG9yeSBmcm9tICcuL2VmZmVjdC10aW1lLWNvbmZpZ3VyYXRvcic7XG5pbXBvcnQgQ29tcGFjdENvbG9yUGlja2VyIGZyb20gJy4vY29tcGFjdC1jb2xvci1waWNrZXInO1xuaW1wb3J0IFN1cmZhY2VGb2dFbGV2YXRpb25TZWN0aW9uRmFjdG9yeSwge0VMRVZBVElPTl9TRUNUSU9OX1RZUEV9IGZyb20gJy4vc3VyZmFjZS1mb2ctc2VjdGlvbic7XG5cbmV4cG9ydCB0eXBlIEVmZmVjdENvbmZpZ3VyYXRvclByb3BzID0ge1xuICBlZmZlY3Q6IEVmZmVjdDtcbiAgdXBkYXRlRWZmZWN0Q29uZmlnOiAoXG4gICAgZTogRXZlbnQgfCBudWxsIHwgdW5kZWZpbmVkLFxuICAgIGlkOiBzdHJpbmcsXG4gICAgY29uZmlnOiBQYXJ0aWFsPEVmZmVjdFVwZGF0ZVByb3BzPlxuICApID0+IHZvaWQ7XG59O1xuXG5jb25zdCBTdHlsZWRFZmZlY3RDb25maWd1cmF0b3IgPSBzdHlsZWQuZGl2LmF0dHJzKHtcbiAgY2xhc3NOYW1lOiAnZWZmZWN0LXBhbmVsX19jb25maWcnXG59KWBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW46ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuZWZmZWN0Q29uZmlndXJhdG9yTWFyZ2lufTtcbiAgcGFkZGluZzogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5lZmZlY3RDb25maWd1cmF0b3JQYWRkaW5nfTtcbmA7XG5cbmV4cG9ydCBjb25zdCBQYW5lbExhYmVsV3JhcHBlciA9IHN0eWxlZC5kaXYuYXR0cnMoe1xuICBjbGFzc05hbWU6ICdzaWRlLXBhbmVsLXBhbmVsX19sYWJlbC13cmFwcGVyJ1xufSlgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBzZWxmLXN0YXJ0O1xuICBtYXJnaW4tYm90dG9tOiAxMXB4O1xuXG4gIC5zaWRlLXBhbmVsLXBhbmVsX19sYWJlbCB7XG4gICAgbWFyZ2luLXRvcDogMnB4O1xuICAgIG1hcmdpbi1ib3R0b206IDBweDtcbiAgfVxuYDtcblxuZXhwb3J0IGNvbnN0IFN0eWxlZENvbG9yU2VsZWN0b3JXcmFwcGVyID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXJpZ2h0OiA1cHg7XG4gIG1hcmdpbi1sZWZ0OiA1cHg7XG4gIG1hcmdpbi1ib3R0b206IDZweDtcbiAgbWFyZ2luLXRvcDogMnB4O1xuYDtcblxuY29uc3QgU3R5bGVkVmVydGljYWxTZXBhcmF0b3IgPSBzdHlsZWQuZGl2YFxuICBoZWlnaHQ6IDFweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5pbnB1dEJnZH07XG4gIG1hcmdpbi10b3A6IDIwcHg7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gIG1hcmdpbi1sZWZ0OiAtMjBweDtcbmA7XG5cbnR5cGUgU3R5bGVkV3JhcHBlclByb3BzID0ge1xuICAkbWFyZ2luQm90dG9tPzogbnVtYmVyO1xufTtcbmNvbnN0IFN0eWxlZFdyYXBwZXIgPSBzdHlsZWQuZGl2PFN0eWxlZFdyYXBwZXJQcm9wcz5gXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgbWFyZ2luLWJvdHRvbTogJHtwcm9wcyA9PiBwcm9wcy4kbWFyZ2luQm90dG9tID8/IDl9cHg7XG5gO1xuXG5jb25zdCBTdHlsZWRDb25maWdTZWN0aW9uID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbmA7XG5cbmNvbnN0IFNlY3Rpb25UaXRsZSA9IHN0eWxlZC5kaXZgXG4gIGZvbnQtc2l6ZTogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5pbnB1dEZvbnRTaXplfTtcbiAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuZWZmZWN0UGFuZWxUZXh0U2Vjb25kYXJ5MX07XG4gIG1hcmdpbi1ib3R0b206IDVweDtcbiAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XG5gO1xuXG5jb25zdCBTZWN0aW9uU3ViVGl0bGUgPSBzdHlsZWQuZGl2YFxuICBmb250LXNpemU6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuaW5wdXRGb250U2l6ZX07XG4gIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmVmZmVjdFBhbmVsVGV4dFNlY29uZGFyeTJ9O1xuICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gIG1hcmdpbi1sZWZ0OiA2cHg7XG5gO1xuXG5jb25zdCBTdHlsZVNsaWRlcldyYXBwZXIgPSBzdHlsZWQuZGl2YFxuICBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0O1xuICB3aWR0aDogMTk5cHg7XG4gIGhlaWdodDogMzJweDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgLmtnLXJhbmdlLXNsaWRlcl9faW5wdXQge1xuICAgIGhlaWdodDogMzJweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgcGFkZGluZzogM3B4IDZweDtcbiAgfVxuICAua2ctc2xpZGVyIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDZweDtcbiAgfVxuICAua2ctcmFuZ2Utc2xpZGVyIHtcbiAgICBwYWRkaW5nOiAwcHggIWltcG9ydGFudDtcbiAgfVxuYDtcblxuY29uc3QgUmVndWxhck91dGVyV3JhcHBlciA9IHN0eWxlZC5kaXYuYXR0cnMoe1xuICBjbGFzc05hbWU6ICdlZmZlY3QtY29uZmlndXJhdG9yX19wcC1zZWN0aW9uJ1xufSlgXG4gIG1hcmdpbi1ib3R0b206IDhweDtcbmA7XG5cbmNvbnN0IFJlZ3VsYXJTZWN0aW9uVGl0bGVXcmFwcGVyID0gc3R5bGVkLmRpdi5hdHRycyh7XG4gIGNsYXNzTmFtZTogJ2VmZmVjdC1jb25maWd1cmF0b3JfX3BwLXNlY3Rpb24tdGl0bGUnXG59KWBcbiAgZm9udC1zaXplOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmlucHV0Rm9udFNpemV9O1xuICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5lZmZlY3RQYW5lbFRleHRTZWNvbmRhcnkxfTtcbiAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XG4gIG1hcmdpbi1ib3R0b206IC0zcHg7XG5gO1xuXG5jb25zdCBSZWd1bGFyU2xpZGVyV3JhcHBlciA9IHN0eWxlZC5kaXYuYXR0cnMoe1xuICBjbGFzc05hbWU6ICdlZmZlY3QtY29uZmlndXJhdG9yX19wcC1zZWN0aW9uLWNvbnRyb2wnXG59KWBcbiAgaGVpZ2h0OiAzMnB4O1xuICAua2ctcmFuZ2Utc2xpZGVyX19pbnB1dCB7XG4gICAgaGVpZ2h0OiAzMnB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBwYWRkaW5nOiAzcHggNnB4O1xuICB9XG4gIC5rZy1zbGlkZXIge1xuICAgIHBhZGRpbmctbGVmdDogNnB4O1xuICB9XG4gIC5rZy1yYW5nZS1zbGlkZXIge1xuICAgIHBhZGRpbmc6IDBweCAhaW1wb3J0YW50O1xuICB9XG5gO1xuXG5jb25zdCBTdHlsZWRDaGVja2JveFdyYXBwZXIgPSBzdHlsZWQuZGl2LmF0dHJzKHtcbiAgY2xhc3NOYW1lOiAnZWZmZWN0LWNvbmZpZ3VyYXRvcl9fcHAtc2VjdGlvbi1jaGVja2JveCdcbn0pYFxuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBjdXJzb3I6IHBvaW50ZXI7XG5gO1xuXG5jb25zdCBTdHlsZWRDaGVja2JveCA9IHN0eWxlZC5pbnB1dGBcbiAgbWFyZ2luLXJpZ2h0OiA2cHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYWNjZW50LWNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmFjdGl2ZUNvbG9yfTtcbmA7XG5cbmNvbnN0IFN0eWxlZENoZWNrYm94TGFiZWwgPSBzdHlsZWQubGFiZWxgXG4gIGZvbnQtc2l6ZTogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5pbnB1dEZvbnRTaXplfTtcbiAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuZWZmZWN0UGFuZWxUZXh0U2Vjb25kYXJ5MX07XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbmA7XG5cbmNvbnN0IFN0eWxlZEhpbnRUb29sdGlwID0gc3R5bGVkKFRvb2x0aXApYFxuICAmLl9fcmVhY3RfY29tcG9uZW50X3Rvb2x0aXAge1xuICAgIG1heC13aWR0aDogMjIwcHg7XG4gICAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgICBsaW5lLWhlaWdodDogMS40O1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gIH1cbmA7XG5cbmNvbnN0IFN0eWxlZEhpbnRJY29uID0gc3R5bGVkLnNwYW5gXG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgd2lkdGg6IDE0cHg7XG4gIGhlaWdodDogMTRweDtcbiAgbWFyZ2luLWxlZnQ6IDZweDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBmb250LXNpemU6IDlweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmxhYmVsQ29sb3J9O1xuICBib3JkZXI6IDFweCBzb2xpZCAke3Byb3BzID0+IHByb3BzLnRoZW1lLmxhYmVsQ29sb3J9O1xuICBjdXJzb3I6IGhlbHA7XG4gICY6aG92ZXIge1xuICAgIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnRleHRDb2xvckhsfTtcbiAgICBib3JkZXItY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUudGV4dENvbG9ySGx9O1xuICB9XG5gO1xuXG5jb25zdCBTdHlsZWRDb2xvckNoZWNrYm94Um93ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBtYXJnaW4tYm90dG9tOiA4cHg7XG5gO1xuXG5jb25zdCBDT01NT05fU0xJREVSX1BST1BTID0ge1xuICBzaG93SW5wdXQ6IHRydWUsXG4gIGlzUmFuZ2VkOiBmYWxzZSxcbiAgc3RlcDogMC4wMDEsXG4gIGxhYmVsOiAndmFsdWUnXG59O1xuXG50eXBlIEVmZmVjdFBhcmFtZXRlckRlc2NyaXB0aW9uRmxhdHRlbmVkID0ge1xuICBuYW1lOiBzdHJpbmc7XG4gIHR5cGU/OiAnbnVtYmVyJyB8ICdhcnJheScgfCAnY29sb3InIHwgJ2NoZWNrYm94JztcbiAgbGFiZWw/OiBzdHJpbmcgfCBmYWxzZSB8IChzdHJpbmcgfCBmYWxzZSlbXTtcbiAgdG9vbHRpcD86IHN0cmluZztcbiAgbWluOiBudW1iZXI7XG4gIG1heDogbnVtYmVyO1xuICBkZWZhdWx0VmFsdWU/OiBudW1iZXIgfCBudW1iZXJbXSB8IGJvb2xlYW47XG4gIGluZGV4PzogbnVtYmVyO1xufTtcblxuRWZmZWN0Q29uZmlndXJhdG9yRmFjdG9yeS5kZXBzID0gW1xuICBSYW5nZVNsaWRlckZhY3RvcnksXG4gIEVmZmVjdFRpbWVDb25maWd1cmF0b3JGYWN0b3J5LFxuICBTdXJmYWNlRm9nRWxldmF0aW9uU2VjdGlvbkZhY3Rvcnlcbl07XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIEVmZmVjdENvbmZpZ3VyYXRvckZhY3RvcnkoXG4gIFJhbmdlU2xpZGVyOiBSZXR1cm5UeXBlPHR5cGVvZiBSYW5nZVNsaWRlckZhY3Rvcnk+LFxuICBFZmZlY3RUaW1lQ29uZmlndXJhdG9yOiBSZXR1cm5UeXBlPHR5cGVvZiBFZmZlY3RUaW1lQ29uZmlndXJhdG9yRmFjdG9yeT4sXG4gIFN1cmZhY2VGb2dFbGV2YXRpb25TZWN0aW9uOiBSZXR1cm5UeXBlPHR5cGVvZiBTdXJmYWNlRm9nRWxldmF0aW9uU2VjdGlvbkZhY3Rvcnk+XG4pOiBSZWFjdC5GQzxFZmZlY3RDb25maWd1cmF0b3JQcm9wcz4ge1xuICBjb25zdCBTaGFkb3dFZmZlY3RDb25maWd1cmF0b3I6IFJlYWN0LkZDPEVmZmVjdENvbmZpZ3VyYXRvclByb3BzPiA9ICh7XG4gICAgZWZmZWN0LFxuICAgIHVwZGF0ZUVmZmVjdENvbmZpZ1xuICB9KSA9PiB7XG4gICAgY29uc3Qge3BhcmFtZXRlcnMsIGlkfSA9IGVmZmVjdDtcblxuICAgIGNvbnN0IHNsaWRlclByb3BzID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBjb25zdCBwcm9wTmFtZXMgPSBbJ3NoYWRvd0ludGVuc2l0eScsICdhbWJpZW50TGlnaHRJbnRlbnNpdHknLCAnc3VuTGlnaHRJbnRlbnNpdHknXTtcbiAgICAgIGNvbnN0IGRlc2NyaXB0aW9ucyA9IGVmZmVjdC5nZXRQYXJhbWV0ZXJEZXNjcmlwdGlvbnMoKTtcbiAgICAgIHJldHVybiBwcm9wTmFtZXMubWFwKHByb3BOYW1lID0+IHtcbiAgICAgICAgY29uc3QgZGVzYyA9IGRlc2NyaXB0aW9ucy5maW5kKGQgPT4gZC5uYW1lID09PSBwcm9wTmFtZSk7XG4gICAgICAgIGNvbnN0IG1pbiA9IGRlc2M/Lm1pbiA/PyAwO1xuICAgICAgICBjb25zdCBtYXggPSBkZXNjPy5tYXggPz8gMTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICB2YWx1ZTE6IHBhcmFtZXRlcnNbcHJvcE5hbWVdLFxuICAgICAgICAgIHJhbmdlOiBbbWluLCBtYXhdLFxuICAgICAgICAgIHZhbHVlMDogbWluLFxuICAgICAgICAgIG9uQ2hhbmdlOiAodmFsdWU6IG51bWJlcltdLCBldmVudD86IEV2ZW50IHwgbnVsbCkgPT4ge1xuICAgICAgICAgICAgdXBkYXRlRWZmZWN0Q29uZmlnKGV2ZW50LCBpZCwge3BhcmFtZXRlcnM6IHtbcHJvcE5hbWVdOiB2YWx1ZVsxXX19KTtcbiAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICB9KTtcbiAgICB9LCBbaWQsIGVmZmVjdCwgcGFyYW1ldGVycywgdXBkYXRlRWZmZWN0Q29uZmlnXSk7XG5cbiAgICBjb25zdCBvblRpbWVQYXJhbWV0ZXJzQ2hhbmdlZCA9IHVzZUNhbGxiYWNrKFxuICAgICAgcGFyYW1ldGVycyA9PiB7XG4gICAgICAgIHVwZGF0ZUVmZmVjdENvbmZpZyhudWxsLCBpZCwge1xuICAgICAgICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgICAgICAgIC4uLihwYXJhbWV0ZXJzLnRpbWVzdGFtcCA/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/IChcbiAgICAgIDxTaGFkb3dFZmZlY3RDb25maWd1cmF0b3IgZWZmZWN0PXtlZmZlY3R9IHVwZGF0ZUVmZmVjdENvbmZpZz17dXBkYXRlRWZmZWN0Q29uZmlnfSAvPlxuICAgICkgOiAoXG4gICAgICA8UG9zdFByb2Nlc3NpbmdFZmZlY3RDb25maWd1cmF0b3IgZWZmZWN0PXtlZmZlY3R9IHVwZGF0ZUVmZmVjdENvbmZpZz17dXBkYXRlRWZmZWN0Q29uZmlnfSAvPlxuICAgICk7XG4gIH07XG5cbiAgcmV0dXJuIGluamVjdEludGwoRWZmZWN0Q29uZmlndXJhdG9yKTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBO0FBQ0E7O0FBRUEsT0FBT0EsS0FBSyxJQUFHQyxXQUFXLEVBQUVDLE9BQU8sUUFBTyxPQUFPO0FBQ2pELE9BQU9DLE1BQU0sTUFBTSxtQkFBbUI7QUFDdEMsU0FBUUMsVUFBVSxRQUFrQixZQUFZO0FBRWhELFNBQVFDLHVCQUF1QixRQUFPLHNCQUFzQjtBQUM1RCxTQUFRQyxRQUFRLFFBQU8sa0JBQWtCO0FBR3pDLE9BQU9DLGtCQUFrQixNQUFNLHdCQUF3QjtBQUN2RCxTQUFRQyxjQUFjLFFBQU8saUJBQWlCO0FBQzlDLFNBQVFDLE9BQU8sUUFBTyw2QkFBNkI7QUFDbkQsT0FBT0MsNkJBQTZCLE1BQU0sNEJBQTRCO0FBQ3RFLE9BQU9DLGtCQUFrQixNQUFNLHdCQUF3QjtBQUN2RCxPQUFPQyxpQ0FBaUMsSUFBR0Msc0JBQXNCLFFBQU8sdUJBQXVCO0FBVy9GLElBQU1DLHdCQUF3QixHQUFHWCxNQUFNLENBQUNZLEdBQUcsQ0FBQ0MsS0FBSyxDQUFDO0VBQ2hEQyxTQUFTLEVBQUU7QUFDYixDQUFDLENBQUMsQ0FBQUMsZUFBQSxLQUFBQSxlQUFBLEdBQUFDLHNCQUFBLHFFQUVVLFVBQUFDLEtBQUs7RUFBQSxPQUFJQSxLQUFLLENBQUNDLEtBQUssQ0FBQ0Msd0JB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
465
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsInVzZUNhbGxiYWNrIiwidXNlTWVtbyIsInN0eWxlZCIsImluamVjdEludGwiLCJMSUdIVF9BTkRfU0hBRE9XX0VGRkVDVCIsImlzTnVtYmVyIiwiUmFuZ2VTbGlkZXJGYWN0b3J5IiwiQXJyb3dEb3duU21hbGwiLCJUb29sdGlwIiwiRWZmZWN0VGltZUNvbmZpZ3VyYXRvckZhY3RvcnkiLCJDb21wYWN0Q29sb3JQaWNrZXIiLCJTdXJmYWNlRm9nRWxldmF0aW9uU2VjdGlvbkZhY3RvcnkiLCJFTEVWQVRJT05fU0VDVElPTl9UWVBFIiwiU3R5bGVkRWZmZWN0Q29uZmlndXJhdG9yIiwiZGl2IiwiYXR0cnMiLCJjbGFzc05hbWUiLCJfdGVtcGxhdGVPYmplY3QiLCJfdGFnZ2VkVGVtcGxhdGVMaXRlcmFsIiwicHJvcHMiLCJ0aGVtZSIsImVmZmVjdENvbmZpZ3VyYXRvck1hcmdpbiIsImVmZmVjdENvbmZpZ3VyYXRvclBhZGRpbmciLCJQYW5lbExhYmVsV3JhcHBlciIsIl90ZW1wbGF0ZU9iamVjdDIiLCJTdHlsZWRDb2xvclNlbGVjdG9yV3JhcHBlciIsIl90ZW1wbGF0ZU9iamVjdDMiLCJTdHlsZWRWZXJ0aWNhbFNlcGFyYXRvciIsIl90ZW1wbGF0ZU9iamVjdDQiLCJpbnB1dEJnZCIsIlN0eWxlZFdyYXBwZXIiLCJfdGVtcGxhdGVPYmplY3Q1IiwiX3Byb3BzJCRtYXJnaW5Cb3R0b20iLCIkbWFyZ2luQm90dG9tIiwiU3R5bGVkQ29uZmlnU2VjdGlvbiIsIl90ZW1wbGF0ZU9iamVjdDYiLCJTZWN0aW9uVGl0bGUiLCJfdGVtcGxhdGVPYmplY3Q3IiwiaW5wdXRGb250U2l6ZSIsImVmZmVjdFBhbmVsVGV4dFNlY29uZGFyeTEiLCJTZWN0aW9uU3ViVGl0bGUiLCJfdGVtcGxhdGVPYmplY3Q4IiwiZWZmZWN0UGFuZWxUZXh0U2Vjb25kYXJ5MiIsIlN0eWxlU2xpZGVyV3JhcHBlciIsIl90ZW1wbGF0ZU9iamVjdDkiLCJSZWd1bGFyT3V0ZXJXcmFwcGVyIiwiX3RlbXBsYXRlT2JqZWN0MCIsIlJlZ3VsYXJTZWN0aW9uVGl0bGVXcmFwcGVyIiwiX3RlbXBsYXRlT2JqZWN0MSIsIlJlZ3VsYXJTbGlkZXJXcmFwcGVyIiwiX3RlbXBsYXRlT2JqZWN0MTAiLCJTdHlsZWRDaGVja2JveFdyYXBwZXIiLCJfdGVtcGxhdGVPYmplY3QxMSIsIlN0eWxlZENoZWNrYm94IiwiaW5wdXQiLCJfdGVtcGxhdGVPYmplY3QxMiIsImFjdGl2ZUNvbG9yIiwiU3R5bGVkQ2hlY2tib3hMYWJlbCIsImxhYmVsIiwiX3RlbXBsYXRlT2JqZWN0MTMiLCJTdHlsZWRIaW50VG9vbHRpcCIsIl90ZW1wbGF0ZU9iamVjdDE0IiwiU3R5bGVkSGludEljb24iLCJzcGFuIiwiX3RlbXBsYXRlT2JqZWN0MTUiLCJsYWJlbENvbG9yIiwidGV4dENvbG9ySGwiLCJTdHlsZWRDb2xvckNoZWNrYm94Um93IiwiX3RlbXBsYXRlT2JqZWN0MTYiLCJDT01NT05fU0xJREVSX1BST1BTIiwic2hvd0lucHV0IiwiaXNSYW5nZWQiLCJzdGVwIiwiRWZmZWN0Q29uZmlndXJhdG9yRmFjdG9yeSIsImRlcHMiLCJSYW5nZVNsaWRlciIsIkVmZmVjdFRpbWVDb25maWd1cmF0b3IiLCJTdXJmYWNlRm9nRWxldmF0aW9uU2VjdGlvbiIsIlNoYWRvd0VmZmVjdENvbmZpZ3VyYXRvciIsIl9yZWYiLCJlZmZlY3QiLCJ1cGRhdGVFZmZlY3RDb25maWciLCJwYXJhbWV0ZXJzIiwiaWQiLCJzbGlkZXJQcm9wcyIsInByb3BOYW1lcyIsImRlc2NyaXB0aW9ucyIsImdldFBhcmFtZXRlckRlc2NyaXB0aW9ucyIsIm1hcCIsInByb3BOYW1lIiwiX2Rlc2MkbWluIiwiX2Rlc2MkbWF4IiwiZGVzYyIsImZpbmQiLCJkIiwibmFtZSIsIm1pbiIsIm1heCIsInZhbHVlMSIsInJhbmdlIiwidmFsdWUwIiwib25DaGFuZ2UiLCJ2YWx1ZSIsImV2ZW50IiwiX2RlZmluZVByb3BlcnR5Iiwib25UaW1lUGFyYW1ldGVyc0NoYW5nZWQiLCJfb2JqZWN0U3ByZWFkIiwidGltZXN0YW1wIiwidGltZXpvbmUiLCJ0aW1lTW9kZSIsImNvbG9yUGlja2VyUHJvcHMiLCJjb2xvclNldHMiLCJzZWxlY3RlZENvbG9yIiwic2V0Q29sb3IiLCJ2IiwiY3JlYXRlRWxlbWVudCIsImtleSIsImNvbG9yIiwib25TZXRDb2xvciIsIkljb24iLCJfZXh0ZW5kcyIsImRlZmF1bHRVbmlmb3JtcyIsIkVMRVZBVElPTl9FWFRSQV9QQVJBTVMiLCJTZXQiLCJQb3N0UHJvY2Vzc2luZ0VmZmVjdENvbmZpZ3VyYXRvciIsIl9yZWYyIiwiX2VmZmVjdCRkZWNrRWZmZWN0IiwidW5pZm9ybXMiLCJkZWNrRWZmZWN0IiwibW9kdWxlIiwicHJvcFR5cGVzIiwicGFyYW1ldGVyRGVzY3JpcHRpb25zIiwiaGFzRWxldmF0aW9uU2VjdGlvbiIsInNvbWUiLCJmbGF0UGFyYW1ldGVyRGVzY3JpcHRpb25zIiwicmVkdWNlIiwiYWNjIiwiZGVzY3JpcHRpb24iLCJoYXMiLCJwdXNoIiwidHlwZSIsIkFycmF5IiwiaXNBcnJheSIsImRlZmF1bHRWYWx1ZSIsImZvckVhY2giLCJfIiwiaW5kZXgiLCJfZGVzY3JpcHRpb24kbGFiZWwiLCJjb250cm9scyIsImlzRWxldmF0aW9uU2VjdGlvbiIsImlzQ29sb3IiLCJwYXJhbU5hbWUiLCJpc0NoZWNrYm94IiwiY2hlY2tlZCIsIkJvb2xlYW4iLCJ0b29sdGlwIiwicmF3VW5pZm9ybSIsInVuaWZvcm0iLCJfdHlwZW9mIiwicHJldlZhbHVlIiwibGVuZ3RoIiwibmV3VmFsdWUiLCJfZGVzYyRtaW4yIiwiX2Rlc2MkbWF4MiIsIl9kZXNjJG1pbjMiLCJfcmVmMyIsIl9yZWY0IiwiX2Rlc2MkbWluNCIsIl9yZWY1IiwiX3JlZjYiLCJfZGVzYyRtYXgzIiwicmFuZ2VNaW4iLCJzb2Z0TWluIiwicmFuZ2VNYXgiLCJzb2Z0TWF4IiwicmFuZ2VTcGFuIiwidW5kZWZpbmVkIiwiX3JlZjciLCJlbGVtZW50cyIsImkiLCJfbG9vcCIsImNvbnRyb2wiLCJfY29udHJvbCRvblNldENvbG9yMiIsIm5leHRDb250cm9sIiwiX2NvbnRyb2wkb25TZXRDb2xvciIsImNiVG9vbHRpcElkIiwiY29uY2F0Iiwib25DbGljayIsImUiLCJzdG9wUHJvcGFnYXRpb24iLCJGcmFnbWVudCIsImRlbGF5U2hvdyIsIl9yZXQiLCJFZmZlY3RDb25maWd1cmF0b3IiLCJfcmVmOCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lZmZlY3RzL2VmZmVjdC1jb25maWd1cmF0b3IudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCBSZWFjdCwge3VzZUNhbGxiYWNrLCB1c2VNZW1vfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCB7aW5qZWN0SW50bCwgSW50bFNoYXBlfSBmcm9tICdyZWFjdC1pbnRsJztcblxuaW1wb3J0IHtMSUdIVF9BTkRfU0hBRE9XX0VGRkVDVH0gZnJvbSAnQGtlcGxlci5nbC9jb25zdGFudHMnO1xuaW1wb3J0IHtpc051bWJlcn0gZnJvbSAnQGtlcGxlci5nbC91dGlscyc7XG5pbXBvcnQge0VmZmVjdCwgRWZmZWN0VXBkYXRlUHJvcHN9IGZyb20gJ0BrZXBsZXIuZ2wvdHlwZXMnO1xuXG5pbXBvcnQgUmFuZ2VTbGlkZXJGYWN0b3J5IGZyb20gJy4uL2NvbW1vbi9yYW5nZS1zbGlkZXInO1xuaW1wb3J0IHtBcnJvd0Rvd25TbWFsbH0gZnJvbSAnLi4vY29tbW9uL2ljb25zJztcbmltcG9ydCB7VG9vbHRpcH0gZnJvbSAnLi4vY29tbW9uL3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCBFZmZlY3RUaW1lQ29uZmlndXJhdG9yRmFjdG9yeSBmcm9tICcuL2VmZmVjdC10aW1lLWNvbmZpZ3VyYXRvcic7XG5pbXBvcnQgQ29tcGFjdENvbG9yUGlja2VyIGZyb20gJy4vY29tcGFjdC1jb2xvci1waWNrZXInO1xuaW1wb3J0IFN1cmZhY2VGb2dFbGV2YXRpb25TZWN0aW9uRmFjdG9yeSwge0VMRVZBVElPTl9TRUNUSU9OX1RZUEV9IGZyb20gJy4vc3VyZmFjZS1mb2ctc2VjdGlvbic7XG5cbmV4cG9ydCB0eXBlIEVmZmVjdENvbmZpZ3VyYXRvclByb3BzID0ge1xuICBlZmZlY3Q6IEVmZmVjdDtcbiAgdXBkYXRlRWZmZWN0Q29uZmlnOiAoXG4gICAgZTogRXZlbnQgfCBudWxsIHwgdW5kZWZpbmVkLFxuICAgIGlkOiBzdHJpbmcsXG4gICAgY29uZmlnOiBQYXJ0aWFsPEVmZmVjdFVwZGF0ZVByb3BzPlxuICApID0+IHZvaWQ7XG59O1xuXG5jb25zdCBTdHlsZWRFZmZlY3RDb25maWd1cmF0b3IgPSBzdHlsZWQuZGl2LmF0dHJzKHtcbiAgY2xhc3NOYW1lOiAnZWZmZWN0LXBhbmVsX19jb25maWcnXG59KWBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW46ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuZWZmZWN0Q29uZmlndXJhdG9yTWFyZ2lufTtcbiAgcGFkZGluZzogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5lZmZlY3RDb25maWd1cmF0b3JQYWRkaW5nfTtcbmA7XG5cbmV4cG9ydCBjb25zdCBQYW5lbExhYmVsV3JhcHBlciA9IHN0eWxlZC5kaXYuYXR0cnMoe1xuICBjbGFzc05hbWU6ICdzaWRlLXBhbmVsLXBhbmVsX19sYWJlbC13cmFwcGVyJ1xufSlgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBzZWxmLXN0YXJ0O1xuICBtYXJnaW4tYm90dG9tOiAxMXB4O1xuXG4gIC5zaWRlLXBhbmVsLXBhbmVsX19sYWJlbCB7XG4gICAgbWFyZ2luLXRvcDogMnB4O1xuICAgIG1hcmdpbi1ib3R0b206IDBweDtcbiAgfVxuYDtcblxuZXhwb3J0IGNvbnN0IFN0eWxlZENvbG9yU2VsZWN0b3JXcmFwcGVyID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXJpZ2h0OiA1cHg7XG4gIG1hcmdpbi1sZWZ0OiA1cHg7XG4gIG1hcmdpbi1ib3R0b206IDZweDtcbiAgbWFyZ2luLXRvcDogMnB4O1xuYDtcblxuY29uc3QgU3R5bGVkVmVydGljYWxTZXBhcmF0b3IgPSBzdHlsZWQuZGl2YFxuICBoZWlnaHQ6IDFweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5pbnB1dEJnZH07XG4gIG1hcmdpbi10b3A6IDIwcHg7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gIG1hcmdpbi1sZWZ0OiAtMjBweDtcbmA7XG5cbnR5cGUgU3R5bGVkV3JhcHBlclByb3BzID0ge1xuICAkbWFyZ2luQm90dG9tPzogbnVtYmVyO1xufTtcbmNvbnN0IFN0eWxlZFdyYXBwZXIgPSBzdHlsZWQuZGl2PFN0eWxlZFdyYXBwZXJQcm9wcz5gXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgbWFyZ2luLWJvdHRvbTogJHtwcm9wcyA9PiBwcm9wcy4kbWFyZ2luQm90dG9tID8/IDl9cHg7XG5gO1xuXG5jb25zdCBTdHlsZWRDb25maWdTZWN0aW9uID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbmA7XG5cbmNvbnN0IFNlY3Rpb25UaXRsZSA9IHN0eWxlZC5kaXZgXG4gIGZvbnQtc2l6ZTogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5pbnB1dEZvbnRTaXplfTtcbiAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuZWZmZWN0UGFuZWxUZXh0U2Vjb25kYXJ5MX07XG4gIG1hcmdpbi1ib3R0b206IDVweDtcbiAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XG5gO1xuXG5jb25zdCBTZWN0aW9uU3ViVGl0bGUgPSBzdHlsZWQuZGl2YFxuICBmb250LXNpemU6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuaW5wdXRGb250U2l6ZX07XG4gIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmVmZmVjdFBhbmVsVGV4dFNlY29uZGFyeTJ9O1xuICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gIG1hcmdpbi1sZWZ0OiA2cHg7XG5gO1xuXG5jb25zdCBTdHlsZVNsaWRlcldyYXBwZXIgPSBzdHlsZWQuZGl2YFxuICBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0O1xuICB3aWR0aDogMTk5cHg7XG4gIGhlaWdodDogMzJweDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgLmtnLXJhbmdlLXNsaWRlcl9faW5wdXQge1xuICAgIGhlaWdodDogMzJweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgcGFkZGluZzogM3B4IDZweDtcbiAgfVxuICAua2ctc2xpZGVyIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDZweDtcbiAgfVxuICAua2ctcmFuZ2Utc2xpZGVyIHtcbiAgICBwYWRkaW5nOiAwcHggIWltcG9ydGFudDtcbiAgfVxuYDtcblxuY29uc3QgUmVndWxhck91dGVyV3JhcHBlciA9IHN0eWxlZC5kaXYuYXR0cnMoe1xuICBjbGFzc05hbWU6ICdlZmZlY3QtY29uZmlndXJhdG9yX19wcC1zZWN0aW9uJ1xufSlgXG4gIG1hcmdpbi1ib3R0b206IDhweDtcbmA7XG5cbmNvbnN0IFJlZ3VsYXJTZWN0aW9uVGl0bGVXcmFwcGVyID0gc3R5bGVkLmRpdi5hdHRycyh7XG4gIGNsYXNzTmFtZTogJ2VmZmVjdC1jb25maWd1cmF0b3JfX3BwLXNlY3Rpb24tdGl0bGUnXG59KWBcbiAgZm9udC1zaXplOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmlucHV0Rm9udFNpemV9O1xuICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5lZmZlY3RQYW5lbFRleHRTZWNvbmRhcnkxfTtcbiAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XG4gIG1hcmdpbi1ib3R0b206IC0zcHg7XG5gO1xuXG5jb25zdCBSZWd1bGFyU2xpZGVyV3JhcHBlciA9IHN0eWxlZC5kaXYuYXR0cnMoe1xuICBjbGFzc05hbWU6ICdlZmZlY3QtY29uZmlndXJhdG9yX19wcC1zZWN0aW9uLWNvbnRyb2wnXG59KWBcbiAgaGVpZ2h0OiAzMnB4O1xuICAua2ctcmFuZ2Utc2xpZGVyX19pbnB1dCB7XG4gICAgaGVpZ2h0OiAzMnB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBwYWRkaW5nOiAzcHggNnB4O1xuICB9XG4gIC5rZy1zbGlkZXIge1xuICAgIHBhZGRpbmctbGVmdDogNnB4O1xuICB9XG4gIC5rZy1yYW5nZS1zbGlkZXIge1xuICAgIHBhZGRpbmc6IDBweCAhaW1wb3J0YW50O1xuICB9XG5gO1xuXG5jb25zdCBTdHlsZWRDaGVja2JveFdyYXBwZXIgPSBzdHlsZWQuZGl2LmF0dHJzKHtcbiAgY2xhc3NOYW1lOiAnZWZmZWN0LWNvbmZpZ3VyYXRvcl9fcHAtc2VjdGlvbi1jaGVja2JveCdcbn0pYFxuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBjdXJzb3I6IHBvaW50ZXI7XG5gO1xuXG5jb25zdCBTdHlsZWRDaGVja2JveCA9IHN0eWxlZC5pbnB1dGBcbiAgbWFyZ2luLXJpZ2h0OiA2cHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYWNjZW50LWNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmFjdGl2ZUNvbG9yfTtcbmA7XG5cbmNvbnN0IFN0eWxlZENoZWNrYm94TGFiZWwgPSBzdHlsZWQubGFiZWxgXG4gIGZvbnQtc2l6ZTogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5pbnB1dEZvbnRTaXplfTtcbiAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuZWZmZWN0UGFuZWxUZXh0U2Vjb25kYXJ5MX07XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbmA7XG5cbmNvbnN0IFN0eWxlZEhpbnRUb29sdGlwID0gc3R5bGVkKFRvb2x0aXApYFxuICAmLl9fcmVhY3RfY29tcG9uZW50X3Rvb2x0aXAge1xuICAgIG1heC13aWR0aDogMjIwcHg7XG4gICAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgICBsaW5lLWhlaWdodDogMS40O1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gIH1cbmA7XG5cbmNvbnN0IFN0eWxlZEhpbnRJY29uID0gc3R5bGVkLnNwYW5gXG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgd2lkdGg6IDE0cHg7XG4gIGhlaWdodDogMTRweDtcbiAgbWFyZ2luLWxlZnQ6IDZweDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBmb250LXNpemU6IDlweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmxhYmVsQ29sb3J9O1xuICBib3JkZXI6IDFweCBzb2xpZCAke3Byb3BzID0+IHByb3BzLnRoZW1lLmxhYmVsQ29sb3J9O1xuICBjdXJzb3I6IGhlbHA7XG4gICY6aG92ZXIge1xuICAgIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnRleHRDb2xvckhsfTtcbiAgICBib3JkZXItY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUudGV4dENvbG9ySGx9O1xuICB9XG5gO1xuXG5jb25zdCBTdHlsZWRDb2xvckNoZWNrYm94Um93ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBtYXJnaW4tYm90dG9tOiA4cHg7XG5gO1xuXG5jb25zdCBDT01NT05fU0xJREVSX1BST1BTID0ge1xuICBzaG93SW5wdXQ6IHRydWUsXG4gIGlzUmFuZ2VkOiBmYWxzZSxcbiAgc3RlcDogMC4wMDEsXG4gIGxhYmVsOiAndmFsdWUnXG59O1xuXG50eXBlIEVmZmVjdFBhcmFtZXRlckRlc2NyaXB0aW9uRmxhdHRlbmVkID0ge1xuICBuYW1lOiBzdHJpbmc7XG4gIHR5cGU/OiAnbnVtYmVyJyB8ICdhcnJheScgfCAnY29sb3InIHwgJ2NoZWNrYm94JztcbiAgbGFiZWw/OiBzdHJpbmcgfCBmYWxzZSB8IChzdHJpbmcgfCBmYWxzZSlbXTtcbiAgdG9vbHRpcD86IHN0cmluZztcbiAgbWluOiBudW1iZXI7XG4gIG1heDogbnVtYmVyO1xuICBkZWZhdWx0VmFsdWU/OiBudW1iZXIgfCBudW1iZXJbXSB8IGJvb2xlYW47XG4gIGluZGV4PzogbnVtYmVyO1xufTtcblxuRWZmZWN0Q29uZmlndXJhdG9yRmFjdG9yeS5kZXBzID0gW1xuICBSYW5nZVNsaWRlckZhY3RvcnksXG4gIEVmZmVjdFRpbWVDb25maWd1cmF0b3JGYWN0b3J5LFxuICBTdXJmYWNlRm9nRWxldmF0aW9uU2VjdGlvbkZhY3Rvcnlcbl07XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIEVmZmVjdENvbmZpZ3VyYXRvckZhY3RvcnkoXG4gIFJhbmdlU2xpZGVyOiBSZXR1cm5UeXBlPHR5cGVvZiBSYW5nZVNsaWRlckZhY3Rvcnk+LFxuICBFZmZlY3RUaW1lQ29uZmlndXJhdG9yOiBSZXR1cm5UeXBlPHR5cGVvZiBFZmZlY3RUaW1lQ29uZmlndXJhdG9yRmFjdG9yeT4sXG4gIFN1cmZhY2VGb2dFbGV2YXRpb25TZWN0aW9uOiBSZXR1cm5UeXBlPHR5cGVvZiBTdXJmYWNlRm9nRWxldmF0aW9uU2VjdGlvbkZhY3Rvcnk+XG4pOiBSZWFjdC5GQzxFZmZlY3RDb25maWd1cmF0b3JQcm9wcz4ge1xuICBjb25zdCBTaGFkb3dFZmZlY3RDb25maWd1cmF0b3I6IFJlYWN0LkZDPEVmZmVjdENvbmZpZ3VyYXRvclByb3BzPiA9ICh7XG4gICAgZWZmZWN0LFxuICAgIHVwZGF0ZUVmZmVjdENvbmZpZ1xuICB9KSA9PiB7XG4gICAgY29uc3Qge3BhcmFtZXRlcnMsIGlkfSA9IGVmZmVjdDtcblxuICAgIGNvbnN0IHNsaWRlclByb3BzID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBjb25zdCBwcm9wTmFtZXMgPSBbJ3NoYWRvd0ludGVuc2l0eScsICdhbWJpZW50TGlnaHRJbnRlbnNpdHknLCAnc3VuTGlnaHRJbnRlbnNpdHknXTtcbiAgICAgIGNvbnN0IGRlc2NyaXB0aW9ucyA9IGVmZmVjdC5nZXRQYXJhbWV0ZXJEZXNjcmlwdGlvbnMoKTtcbiAgICAgIHJldHVybiBwcm9wTmFtZXMubWFwKHByb3BOYW1lID0+IHtcbiAgICAgICAgY29uc3QgZGVzYyA9IGRlc2NyaXB0aW9ucy5maW5kKGQgPT4gZC5uYW1lID09PSBwcm9wTmFtZSk7XG4gICAgICAgIGNvbnN0IG1pbiA9IGRlc2M/Lm1pbiA/PyAwO1xuICAgICAgICBjb25zdCBtYXggPSBkZXNjPy5tYXggPz8gMTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICB2YWx1ZTE6IHBhcmFtZXRlcnNbcHJvcE5hbWVdLFxuICAgICAgICAgIHJhbmdlOiBbbWluLCBtYXhdLFxuICAgICAgICAgIHZhbHVlMDogbWluLFxuICAgICAgICAgIG9uQ2hhbmdlOiAodmFsdWU6IG51bWJlcltdLCBldmVudD86IEV2ZW50IHwgbnVsbCkgPT4ge1xuICAgICAgICAgICAgdXBkYXRlRWZmZWN0Q29uZmlnKGV2ZW50LCBpZCwge3BhcmFtZXRlcnM6IHtbcHJvcE5hbWVdOiB2YWx1ZVsxXX19KTtcbiAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICB9KTtcbiAgICB9LCBbaWQsIGVmZmVjdCwgcGFyYW1ldGVycywgdXBkYXRlRWZmZWN0Q29uZmlnXSk7XG5cbiAgICBjb25zdCBvblRpbWVQYXJhbWV0ZXJzQ2hhbmdlZCA9IHVzZUNhbGxiYWNrKFxuICAgICAgcGFyYW1ldGVycyA9PiB7XG4gICAgICAgIHVwZGF0ZUVmZmVjdENvbmZpZyhudWxsLCBpZCwge1xuICAgICAgICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgICAgICAgIC4uLihwYXJhbWV0ZXJzLnRpbWVzdGFtcCAhPSBudWxsID8ge3RpbWVzdGFtcDogcGFyYW1ldGVycy50aW1lc3RhbXB9IDogbnVsbCksXG4gICAgICAgICAgICAuLi4ocGFyYW1ldGVycy50aW1lem9uZSA/IHt0aW1lem9uZTogcGFyYW1ldGVycy50aW1lem9uZX0gOiBudWxsKSxcbiAgICAgICAgICAgIC4uLihwYXJhbWV0ZXJzLnRpbWVNb2RlID8ge3RpbWVNb2RlOiBwYXJhbWV0ZXJzLnRpbWVNb2RlfSA6IG51bGwpXG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0sXG4gICAgICBbaWQsIHVwZGF0ZUVmZmVjdENvbmZpZ11cbiAgICApO1xuXG4gICAgY29uc3QgY29sb3JQaWNrZXJQcm9wcyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgY29uc3QgcHJvcE5hbWVzID0gWydhbWJpZW50TGlnaHRDb2xvcicsICdzdW5MaWdodENvbG9yJywgJ3NoYWRvd0NvbG9yJ107XG4gICAgICByZXR1cm4gcHJvcE5hbWVzLm1hcChwcm9wTmFtZSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgY29sb3JTZXRzOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHNlbGVjdGVkQ29sb3I6IHBhcmFtZXRlcnNbcHJvcE5hbWVdLFxuICAgICAgICAgICAgICBzZXRDb2xvcjogdiA9PiB1cGRhdGVFZmZlY3RDb25maWcobnVsbCwgaWQsIHtwYXJhbWV0ZXJzOiB7W3Byb3BOYW1lXTogdn19KVxuICAgICAgICAgICAgfVxuICAgICAgICAgIF1cbiAgICAgICAgfTtcbiAgICAgIH0pO1xuICAgIH0sIFtpZCwgcGFyYW1ldGVycywgdXBkYXRlRWZmZWN0Q29uZmlnXSk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPFN0eWxlZEVmZmVjdENvbmZpZ3VyYXRvciBrZXk9e2VmZmVjdC5pZH0+XG4gICAgICAgIDxQYW5lbExhYmVsV3JhcHBlcj5cbiAgICAgICAgICA8U2VjdGlvblRpdGxlPnsnRGF0ZSAmIFRpbWUnfTwvU2VjdGlvblRpdGxlPlxuICAgICAgICA8L1BhbmVsTGFiZWxXcmFwcGVyPlxuICAgICAgICA8RWZmZWN0VGltZUNvbmZpZ3VyYXRvclxuICAgICAgICAgIHRpbWVzdGFtcD17cGFyYW1ldGVycy50aW1lc3RhbXB9XG4gICAgICAgICAgdGltZXpvbmU9e3BhcmFtZXRlcnMudGltZXpvbmV9XG4gICAgICAgICAgdGltZU1vZGU9e3BhcmFtZXRlcnMudGltZU1vZGV9XG4gICAgICAgICAgb25DaGFuZ2U9e29uVGltZVBhcmFtZXRlcnNDaGFuZ2VkfVxuICAgICAgICAvPlxuXG4gICAgICAgIDxTdHlsZWRWZXJ0aWNhbFNlcGFyYXRvciAvPlxuXG4gICAgICAgIDxTdHlsZWRXcmFwcGVyICRtYXJnaW5Cb3R0b209ezB9PlxuICAgICAgICAgIDxTZWN0aW9uVGl0bGU+eydTaGFkb3cnfTwvU2VjdGlvblRpdGxlPlxuICAgICAgICA8L1N0eWxlZFdyYXBwZXI+XG4gICAgICAgIDxTdHlsZWRXcmFwcGVyICRtYXJnaW5Cb3R0b209ezE2fT5cbiAgICAgICAgICA8Q29tcGFjdENvbG9yUGlja2VyXG4gICAgICAgICAgICBsYWJlbD17J0NvbG9yJ31cbiAgICAgICAgICAgIGNvbG9yPXtjb2xvclBpY2tlclByb3BzWzJdLmNvbG9yU2V0c1swXS5zZWxlY3RlZENvbG9yfVxuICAgICAgICAgICAgb25TZXRDb2xvcj17Y29sb3JQaWNrZXJQcm9wc1syXS5jb2xvclNldHNbMF0uc2V0Q29sb3J9XG4gICAgICAgICAgICBJY29uPXtBcnJvd0Rvd25TbWFsbH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIDxTdHlsZWRDb25maWdTZWN0aW9uPlxuICAgICAgICAgICAgPFNlY3Rpb25TdWJUaXRsZT5JbnRlbnNpdHk8L1NlY3Rpb25TdWJUaXRsZT5cbiAgICAgICAgICAgIDxTdHlsZVNsaWRlcldyYXBwZXI+XG4gICAgICAgICAgICAgIDxSYW5nZVNsaWRlciB7Li4uQ09NTU9OX1NMSURFUl9QUk9QU30gey4uLnNsaWRlclByb3BzWzBdfSAvPlxuICAgICAgICAgICAgPC9TdHlsZVNsaWRlcldyYXBwZXI+XG4gICAgICAgICAgPC9TdHlsZWRDb25maWdTZWN0aW9uPlxuICAgICAgICA8L1N0eWxlZFdyYXBwZXI+XG5cbiAgICAgICAgPFN0eWxlZFdyYXBwZXIgJG1hcmdpbkJvdHRvbT17MH0+XG4gICAgICAgICAgPFNlY3Rpb25UaXRsZT57J0FtYmllbnQgbGlnaHQnfTwvU2VjdGlvblRpdGxlPlxuICAgICAgICA8L1N0eWxlZFdyYXBwZXI+XG4gICAgICAgIDxTdHlsZWRXcmFwcGVyICRtYXJnaW5Cb3R0b209ezE2fT5cbiAgICAgICAgICA8Q29tcGFjdENvbG9yUGlja2VyXG4gICAgICAgICAgICBsYWJlbD17J0NvbG9yJ31cbiAgICAgICAgICAgIGNvbG9yPXtjb2xvclBpY2tlclByb3BzWzBdLmNvbG9yU2V0c1swXS5zZWxlY3RlZENvbG9yfVxuICAgICAgICAgICAgb25TZXRDb2xvcj17Y29sb3JQaWNrZXJQcm9wc1swXS5jb2xvclNldHNbMF0uc2V0Q29sb3J9XG4gICAgICAgICAgICBJY29uPXtBcnJvd0Rvd25TbWFsbH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIDxTdHlsZWRDb25maWdTZWN0aW9uPlxuICAgICAgICAgICAgPFNlY3Rpb25TdWJUaXRsZT5JbnRlbnNpdHk8L1NlY3Rpb25TdWJUaXRsZT5cbiAgICAgICAgICAgIDxTdHlsZVNsaWRlcldyYXBwZXI+XG4gICAgICAgICAgICAgIDxSYW5nZVNsaWRlciB7Li4uQ09NTU9OX1NMSURFUl9QUk9QU30gey4uLnNsaWRlclByb3BzWzFdfSAvPlxuICAgICAgICAgICAgPC9TdHlsZVNsaWRlcldyYXBwZXI+XG4gICAgICAgICAgPC9TdHlsZWRDb25maWdTZWN0aW9uPlxuICAgICAgICA8L1N0eWxlZFdyYXBwZXI+XG5cbiAgICAgICAgPFN0eWxlZFdyYXBwZXIgJG1hcmdpbkJvdHRvbT17MH0+XG4gICAgICAgICAgPFNlY3Rpb25UaXRsZT57J1N1biBsaWdodCd9PC9TZWN0aW9uVGl0bGU+XG4gICAgICAgIDwvU3R5bGVkV3JhcHBlcj5cbiAgICAgICAgPFN0eWxlZFdyYXBwZXIgJG1hcmdpbkJvdHRvbT17MH0+XG4gICAgICAgICAgPENvbXBhY3RDb2xvclBpY2tlclxuICAgICAgICAgICAgbGFiZWw9eydDb2xvcid9XG4gICAgICAgICAgICBjb2xvcj17Y29sb3JQaWNrZXJQcm9wc1sxXS5jb2xvclNldHNbMF0uc2VsZWN0ZWRDb2xvcn1cbiAgICAgICAgICAgIG9uU2V0Q29sb3I9e2NvbG9yUGlja2VyUHJvcHNbMV0uY29sb3JTZXRzWzBdLnNldENvbG9yfVxuICAgICAgICAgICAgSWNvbj17QXJyb3dEb3duU21hbGx9XG4gICAgICAgICAgLz5cbiAgICAgICAgICA8U3R5bGVkQ29uZmlnU2VjdGlvbj5cbiAgICAgICAgICAgIDxTZWN0aW9uU3ViVGl0bGU+SW50ZW5zaXR5PC9TZWN0aW9uU3ViVGl0bGU+XG4gICAgICAgICAgICA8U3R5bGVTbGlkZXJXcmFwcGVyPlxuICAgICAgICAgICAgICA8UmFuZ2VTbGlkZXIgey4uLkNPTU1PTl9TTElERVJfUFJPUFN9IHsuLi5zbGlkZXJQcm9wc1syXX0gLz5cbiAgICAgICAgICAgIDwvU3R5bGVTbGlkZXJXcmFwcGVyPlxuICAgICAgICAgIDwvU3R5bGVkQ29uZmlnU2VjdGlvbj5cbiAgICAgICAgPC9TdHlsZWRXcmFwcGVyPlxuICAgICAgPC9TdHlsZWRFZmZlY3RDb25maWd1cmF0b3I+XG4gICAgKTtcbiAgfTtcbiAgY29uc3QgZGVmYXVsdFVuaWZvcm1zID0ge307XG5cbiAgY29uc3QgRUxFVkFUSU9OX0VYVFJBX1BBUkFNUyA9IG5ldyBTZXQoWydoZWlnaHRFbmQnLCAnYW5pbWF0ZUhlaWdodCcsICdsaW5lYXJFYXNpbmcnXSk7XG5cbiAgY29uc3QgUG9zdFByb2Nlc3NpbmdFZmZlY3RDb25maWd1cmF0b3I6IFJlYWN0LkZDPEVmZmVjdENvbmZpZ3VyYXRvclByb3BzPiA9ICh7XG4gICAgZWZmZWN0LFxuICAgIHVwZGF0ZUVmZmVjdENvbmZpZ1xuICB9KSA9PiB7XG4gICAgY29uc3QgdW5pZm9ybXMgPSBlZmZlY3QuZGVja0VmZmVjdD8ubW9kdWxlLnByb3BUeXBlcyB8fCBkZWZhdWx0VW5pZm9ybXM7XG4gICAgY29uc3QgcGFyYW1ldGVyRGVzY3JpcHRpb25zID0gZWZmZWN0LmdldFBhcmFtZXRlckRlc2NyaXB0aW9ucygpO1xuICAgIGNvbnN0IHtwYXJhbWV0ZXJzLCBpZH0gPSBlZmZlY3Q7XG5cbiAgICBjb25zdCBoYXNFbGV2YXRpb25TZWN0aW9uID0gcGFyYW1ldGVyRGVzY3JpcHRpb25zLnNvbWUoZCA9PiBkLm5hbWUgPT09ICdhbmltYXRlSGVpZ2h0Jyk7XG5cbiAgICBjb25zdCBmbGF0UGFyYW1ldGVyRGVzY3JpcHRpb25zID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICByZXR1cm4gcGFyYW1ldGVyRGVzY3JpcHRpb25zLnJlZHVjZSgoYWNjLCBkZXNjcmlwdGlvbikgPT4ge1xuICAgICAgICBpZiAoaGFzRWxldmF0aW9uU2VjdGlvbiAmJiBFTEVWQVRJT05fRVhUUkFfUEFSQU1TLmhhcyhkZXNjcmlwdGlvbi5uYW1lKSkgcmV0dXJuIGFjYztcblxuICAgICAgICBpZiAoaGFzRWxldmF0aW9uU2VjdGlvbiAmJiBkZXNjcmlwdGlvbi5uYW1lID09PSAnaGVpZ2h0Jykge1xuICAgICAgICAgIGFjYy5wdXNoKHsuLi5kZXNjcmlwdGlvbiwgdHlwZTogRUxFVkFUSU9OX1NFQ1RJT05fVFlQRSBhcyBhbnl9KTtcbiAgICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGRlc2NyaXB0aW9uLnR5cGUgPT09ICdjb2xvcicpIHtcbiAgICAgICAgICBhY2MucHVzaChkZXNjcmlwdGlvbik7XG4gICAgICAgIH0gZWxzZSBpZiAoZGVzY3JpcHRpb24udHlwZSA9PT0gJ2FycmF5Jykge1xuICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KGRlc2NyaXB0aW9uLmRlZmF1bHRWYWx1ZSkpIHtcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uLmRlZmF1bHRWYWx1ZS5mb3JFYWNoKChfLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICBhY2MucHVzaCh7XG4gICAgICAgICAgICAgICAgLi4uZGVzY3JpcHRpb24sXG4gICAgICAgICAgICAgICAgaW5kZXgsXG4gICAgICAgICAgICAgICAgbGFiZWw6IGRlc2NyaXB0aW9uLmxhYmVsPy5baW5kZXhdXG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGFjYy5wdXNoKGRlc2NyaXB0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBhY2M7XG4gICAgICB9LCBbXSBhcyBFZmZlY3RQYXJhbWV0ZXJEZXNjcmlwdGlvbkZsYXR0ZW5lZFtdKTtcbiAgICB9LCBbcGFyYW1ldGVyRGVzY3JpcHRpb25zLCBoYXNFbGV2YXRpb25TZWN0aW9uXSk7XG5cbiAgICBjb25zdCBjb250cm9scyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgcmV0dXJuIGZsYXRQYXJhbWV0ZXJEZXNjcmlwdGlvbnMubWFwKGRlc2MgPT4ge1xuICAgICAgICBpZiAoKGRlc2MudHlwZSBhcyBzdHJpbmcpID09PSBFTEVWQVRJT05fU0VDVElPTl9UWVBFKSB7XG4gICAgICAgICAgcmV0dXJuIHtpc0VsZXZhdGlvblNlY3Rpb246IHRydWUgYXMgY29uc3R9O1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGRlc2MudHlwZSA9PT0gJ2NvbG9yJykge1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBpc0NvbG9yOiB0cnVlIGFzIGNvbnN0LFxuICAgICAgICAgICAgbGFiZWw6IGRlc2MubGFiZWwgfHwgZGVzYy5uYW1lLFxuICAgICAgICAgICAgcGFyYW1OYW1lOiBkZXNjLm5hbWUsXG4gICAgICAgICAgICBjb2xvcjogcGFyYW1ldGVyc1tkZXNjLm5hbWVdIHx8IGRlc2MuZGVmYXVsdFZhbHVlIHx8IFsyNTUsIDI1NSwgMjU1XSxcbiAgICAgICAgICAgIG9uU2V0Q29sb3I6ICh2OiBbbnVtYmVyLCBudW1iZXIsIG51bWJlcl0pID0+XG4gICAgICAgICAgICAgIHVwZGF0ZUVmZmVjdENvbmZpZyhudWxsLCBpZCwge3BhcmFtZXRlcnM6IHtbZGVzYy5uYW1lXTogdn19KVxuICAgICAgICAgIH07XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZGVzYy50eXBlID09PSAnY2hlY2tib3gnKSB7XG4gICAgICAgICAgY29uc3QgbGFiZWwgPSB0eXBlb2YgZGVzYy5sYWJlbCA9PT0gJ3N0cmluZycgPyBkZXNjLmxhYmVsIDogZGVzYy5uYW1lO1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBpc0NoZWNrYm94OiB0cnVlIGFzIGNvbnN0LFxuICAgICAgICAgICAgbGFiZWwsXG4gICAgICAgICAgICBwYXJhbU5hbWU6IGRlc2MubmFtZSxcbiAgICAgICAgICAgIGNoZWNrZWQ6IEJvb2xlYW4ocGFyYW1ldGVyc1tkZXNjLm5hbWVdKSxcbiAgICAgICAgICAgIHRvb2x0aXA6IGRlc2MudG9vbHRpcCxcbiAgICAgICAgICAgIG9uQ2hhbmdlOiAoKSA9PlxuICAgICAgICAgICAgICB1cGRhdGVFZmZlY3RDb25maWcobnVsbCwgaWQsIHtwYXJhbWV0ZXJzOiB7W2Rlc2MubmFtZV06ICFwYXJhbWV0ZXJzW2Rlc2MubmFtZV19fSlcbiAgICAgICAgICB9O1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcGFyYW1OYW1lID0gZGVzYy5uYW1lO1xuXG4gICAgICAgIGNvbnN0IHJhd1VuaWZvcm0gPSB1bmlmb3Jtc1tkZXNjLm5hbWVdO1xuICAgICAgICBpZiAocmF3VW5pZm9ybSAmJiByYXdVbmlmb3JtLnByaXZhdGUpIHtcbiAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGx1bWEuZ2wgOSB3cmFwcyBhcnJheSBwcm9wVHlwZXMgYXMge3ZhbHVlOiBbLi4uXX1cbiAgICAgICAgY29uc3QgdW5pZm9ybSA9XG4gICAgICAgICAgcmF3VW5pZm9ybSAmJiB0eXBlb2YgcmF3VW5pZm9ybSA9PT0gJ29iamVjdCcgJiYgQXJyYXkuaXNBcnJheShyYXdVbmlmb3JtLnZhbHVlKVxuICAgICAgICAgICAgPyByYXdVbmlmb3JtLnZhbHVlXG4gICAgICAgICAgICA6IHJhd1VuaWZvcm07XG5cbiAgICAgICAgY29uc3QgcHJldlZhbHVlID0gcGFyYW1ldGVyc1twYXJhbU5hbWVdO1xuXG4gICAgICAgIGNvbnN0IGxhYmVsID0gZGVzYy5sYWJlbCA9PT0gZmFsc2UgPyBmYWxzZSA6IGRlc2MubGFiZWwgfHwgZGVzYy5uYW1lO1xuXG4gICAgICAgIC8vIHRoZSB1bmlmb3JtIGlzIFtudW1iZXIsIG51bWJlcl0gYXJyYXlcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodW5pZm9ybSkgJiYgdW5pZm9ybS5sZW5ndGggPT09IDIpIHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbGFiZWwsXG4gICAgICAgICAgICB2YWx1ZTE6IHByZXZWYWx1ZVtkZXNjLmluZGV4IHx8IDBdIHx8IDAsXG4gICAgICAgICAgICByYW5nZTogWzAsIDFdLFxuICAgICAgICAgICAgdmFsdWUwOiAwLFxuICAgICAgICAgICAgb25DaGFuZ2U6IChuZXdWYWx1ZTogbnVtYmVyW10sIGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgIHVwZGF0ZUVmZmVjdENvbmZpZyhldmVudCwgaWQsIHtcbiAgICAgICAgICAgICAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICAgICAgICAgICAgICBbcGFyYW1OYW1lXTpcbiAgICAgICAgICAgICAgICAgICAgZGVzYy5pbmRleCA9PT0gMCA/IFtuZXdWYWx1ZVsxXSwgcHJldlZhbHVlWzFdXSA6IFtwcmV2VmFsdWVbMF0sIG5ld1ZhbHVlWzFdXVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICAvLyB0aGUgdW5pZm9ybSBpcyBhIHBsYWluIG51bWJlciB3aXRob3V0IGFueSBkZXNjcmlwdGlvblxuICAgICAgICBlbHNlIGlmIChpc051bWJlcih1bmlmb3JtKSkge1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBsYWJlbCxcbiAgICAgICAgICAgIHZhbHVlMTogcHJldlZhbHVlID8/IDAsXG4gICAgICAgICAgICByYW5nZTogW2Rlc2MubWluID8/IDAsIGRlc2MubWF4ID8/IDUwMF0sXG4gICAgICAgICAgICB2YWx1ZTA6IGRlc2MubWluID8/IDAsXG4gICAgICAgICAgICBvbkNoYW5nZTogKG5ld1ZhbHVlOiBudW1iZXJbXSwgZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgdXBkYXRlRWZmZWN0Q29uZmlnKGV2ZW50LCBpZCwge3BhcmFtZXRlcnM6IHtbcGFyYW1OYW1lXTogbmV3VmFsdWVbMV19fSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICAvLyB0aGUgdW5pZm9ybSBkZXNjcmlwdGlvbiBpcyB7dmFsdWU6IDAsIG1pbjogMCwgbWF4OiAxLCAuLi59XG4gICAgICAgIGVsc2UgaWYgKHVuaWZvcm0gJiYgaXNOdW1iZXIodW5pZm9ybS52YWx1ZSkpIHtcbiAgICAgICAgICBjb25zdCByYW5nZU1pbiA9IGRlc2MubWluID8/IHVuaWZvcm0ubWluID8/IHVuaWZvcm0uc29mdE1pbiA/PyAwO1xuICAgICAgICAgIGNvbnN0IHJhbmdlTWF4ID0gZGVzYy5tYXggPz8gdW5pZm9ybS5tYXggPz8gdW5pZm9ybS5zb2Z0TWF4ID8/IDE7XG4gICAgICAgICAgY29uc3QgcmFuZ2VTcGFuID0gcmFuZ2VNYXggLSByYW5nZU1pbjtcbiAgICAgICAgICBjb25zdCBzdGVwID0gcmFuZ2VTcGFuID4gMTAgPyAxIDogMC4wMDE7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGxhYmVsLFxuICAgICAgICAgICAgdmFsdWUxOiBwcmV2VmFsdWUgfHwgMCxcbiAgICAgICAgICAgIHJhbmdlOiBbcmFuZ2VNaW4sIHJhbmdlTWF4XSxcbiAgICAgICAgICAgIHZhbHVlMDogcmFuZ2VNaW4sXG4gICAgICAgICAgICBzdGVwLFxuICAgICAgICAgICAgb25DaGFuZ2U6IChuZXdWYWx1ZTogbnVtYmVyW10sIGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgIHVwZGF0ZUVmZmVjdENvbmZpZyhldmVudCwgaWQsIHtwYXJhbWV0ZXJzOiB7W3BhcmFtTmFtZV06IG5ld1ZhbHVlWzFdfX0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgLy8gUGFyYW1ldGVyIGRlZmluZWQgaW4gZWZmZWN0IGRlc2NyaXB0aW9uIGJ1dCBub3QgaW4gc2hhZGVyIHByb3BUeXBlc1xuICAgICAgICBlbHNlIGlmIChkZXNjLm1pbiAhPT0gdW5kZWZpbmVkICYmIGRlc2MubWF4ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBjb25zdCByYW5nZVNwYW4gPSBkZXNjLm1heCAtIGRlc2MubWluO1xuICAgICAgICAgIGNvbnN0IHN0ZXAgPSByYW5nZVNwYW4gPiAxMCA/IDEgOiAwLjAwMTtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbGFiZWwsXG4gICAgICAgICAgICB2YWx1ZTE6IHByZXZWYWx1ZSA/PyBkZXNjLmRlZmF1bHRWYWx1ZSA/PyAwLFxuICAgICAgICAgICAgcmFuZ2U6IFtkZXNjLm1pbiwgZGVzYy5tYXhdLFxuICAgICAgICAgICAgdmFsdWUwOiBkZXNjLm1pbixcbiAgICAgICAgICAgIHN0ZXAsXG4gICAgICAgICAgICBvbkNoYW5nZTogKG5ld1ZhbHVlOiBudW1iZXJbXSwgZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgdXBkYXRlRWZmZWN0Q29uZmlnKGV2ZW50LCBpZCwge3BhcmFtZXRlcnM6IHtbcGFyYW1OYW1lXTogbmV3VmFsdWVbMV19fSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGlnbm9yZSBldmVyeXRoaW5nIGVsc2UgZm9yIG5vd1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH0pO1xuICAgIH0sIFtmbGF0UGFyYW1ldGVyRGVzY3JpcHRpb25zLCBpZCwgcGFyYW1ldGVycywgdXBkYXRlRWZmZWN0Q29uZmlnLCB1bmlmb3Jtc10pO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxTdHlsZWRFZmZlY3RDb25maWd1cmF0b3Iga2V5PXtlZmZlY3QuaWR9PlxuICAgICAgICB7KCgpID0+IHtcbiAgICAgICAgICBjb25zdCBlbGVtZW50czogUmVhY3QuUmVhY3ROb2RlW10gPSBbXTtcbiAgICAgICAgICBsZXQgaSA9IDA7XG4gICAgICAgICAgd2hpbGUgKGkgPCBmbGF0UGFyYW1ldGVyRGVzY3JpcHRpb25zLmxlbmd0aCkge1xuICAgICAgICAgICAgY29uc3QgY29udHJvbCA9IGNvbnRyb2xzW2ldO1xuICAgICAgICAgICAgaWYgKCFjb250cm9sKSB7XG4gICAgICAgICAgICAgIGkrKztcbiAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICgnaXNDb2xvcicgaW4gY29udHJvbCkge1xuICAgICAgICAgICAgICBjb25zdCBuZXh0Q29udHJvbCA9IGkgKyAxIDwgY29udHJvbHMubGVuZ3RoID8gY29udHJvbHNbaSArIDFdIDogbnVsbDtcbiAgICAgICAgICAgICAgaWYgKG5leHRDb250cm9sICYmICdpc0NoZWNrYm94JyBpbiBuZXh0Q29udHJvbCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNiVG9vbHRpcElkID0gbmV4dENvbnRyb2wudG9vbHRpcFxuICAgICAgICAgICAgICAgICAgPyBgZWZmZWN0LWNiLWhpbnQtJHtlZmZlY3QuaWR9LSR7aX1gXG4gICAgICAgICAgICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICBlbGVtZW50cy5wdXNoKFxuICAgICAgICAgICAgICAgICAgPFN0eWxlZENvbG9yQ2hlY2tib3hSb3cga2V5PXtgJHtlZmZlY3QuaWR9LSR7aX1gfT5cbiAgICAgICAgICAgICAgICAgICAgPENvbXBhY3RDb2xvclBpY2tlclxuICAgICAgICAgICAgICAgICAgICAgIGxhYmVsPXt0eXBlb2YgY29udHJvbC5sYWJlbCA9PT0gJ3N0cmluZycgPyBjb250cm9sLmxhYmVsIDogJ0NvbG9yJ31cbiAgICAgICAgICAgICAgICAgICAgICBjb2xvcj17Y29udHJvbC5jb2xvcn1cbiAgICAgICAgICAgICAgICAgICAgICBvblNldENvbG9yPXtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRyb2wub25TZXRDb2xvciA/P1xuICAgICAgICAgICAgICAgICAgICAgICAgKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgLyogbm9vcCAqL1xuICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgSWNvbj17QXJyb3dEb3duU21hbGx9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDxTdHlsZWRDaGVja2JveFdyYXBwZXJcbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiAobmV4dENvbnRyb2wgYXMge29uQ2hhbmdlOiAoKSA9PiB2b2lkfSkub25DaGFuZ2UoKX1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxTdHlsZWRDaGVja2JveFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrZWQ9e25leHRDb250cm9sLmNoZWNrZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KCkgPT4gKG5leHRDb250cm9sIGFzIHtvbkNoYW5nZTogKCkgPT4gdm9pZH0pLm9uQ2hhbmdlKCl9XG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXtlID0+IGUuc3RvcFByb3BhZ2F0aW9uKCl9XG4gICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICA8U3R5bGVkQ2hlY2tib3hMYWJlbD57bmV4dENvbnRyb2wubGFiZWx9PC9TdHlsZWRDaGVja2JveExhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgIHtuZXh0Q29udHJvbC50b29sdGlwID8gKFxuICAgICAgICAgICAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEhpbnRJY29uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS10aXBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLWZvcj17Y2JUb29sdGlwSWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17ZSA9PiBlLnN0b3BQcm9wYWdhdGlvbigpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgP1xuICAgICAgICAgICAgICAgICAgICAgICAgICA8L1N0eWxlZEhpbnRJY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8U3R5bGVkSGludFRvb2x0aXAgaWQ9e2NiVG9vbHRpcElkfSBlZmZlY3Q9XCJzb2xpZFwiIGRlbGF5U2hvdz17MjAwfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7bmV4dENvbnRyb2wudG9vbHRpcH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9TdHlsZWRIaW50VG9vbHRpcD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICAgICAgICA8L1N0eWxlZENoZWNrYm94V3JhcHBlcj5cbiAgICAgICAgICAgICAgICAgIDwvU3R5bGVkQ29sb3JDaGVja2JveFJvdz5cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIGkgKz0gMjtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIGVsZW1lbnRzLnB1c2goXG4gICAgICAgICAgICAgICAgPFJlZ3VsYXJPdXRlcldyYXBwZXIga2V5PXtgJHtlZmZlY3QuaWR9LSR7aX1gfT5cbiAgICAgICAgICAgICAgICAgIDxDb21wYWN0Q29sb3JQaWNrZXJcbiAgICAgICAgICAgICAgICAgICAgbGFiZWw9e3R5cGVvZiBjb250cm9sLmxhYmVsID09PSAnc3RyaW5nJyA/IGNvbnRyb2wubGFiZWwgOiAnQ29sb3InfVxuICAgICAgICAgICAgICAgICAgICBjb2xvcj17Y29udHJvbC5jb2xvcn1cbiAgICAgICAgICAgICAgICAgICAgb25TZXRDb2xvcj17XG4gICAgICAgICAgICAgICAgICAgICAgY29udHJvbC5vblNldENvbG9yID8/XG4gICAgICAgICAgICAgICAgICAgICAgKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8qIG5vb3AgKi9cbiAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIEljb249e0Fycm93RG93blNtYWxsfVxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8L1JlZ3VsYXJPdXRlcldyYXBwZXI+XG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIGkrKztcbiAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICgnaXNDaGVja2JveCcgaW4gY29udHJvbCkge1xuICAgICAgICAgICAgICBlbGVtZW50cy5wdXNoKFxuICAgICAgICAgICAgICAgIDxSZWd1bGFyT3V0ZXJXcmFwcGVyIGtleT17YCR7ZWZmZWN0LmlkfS0ke2l9YH0+XG4gICAgICAgICAgICAgICAgICA8U3R5bGVkQ2hlY2tib3hXcmFwcGVyXG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IChjb250cm9sIGFzIHtvbkNoYW5nZTogKCkgPT4gdm9pZH0pLm9uQ2hhbmdlKCl9XG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxTdHlsZWRDaGVja2JveFxuICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgICAgICAgICAgICAgICAgY2hlY2tlZD17Y29udHJvbC5jaGVja2VkfVxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoKSA9PiAoY29udHJvbCBhcyB7b25DaGFuZ2U6ICgpID0+IHZvaWR9KS5vbkNoYW5nZSgpfVxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2UgPT4gZS5zdG9wUHJvcGFnYXRpb24oKX1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPFN0eWxlZENoZWNrYm94TGFiZWw+e2NvbnRyb2wubGFiZWx9PC9TdHlsZWRDaGVja2JveExhYmVsPlxuICAgICAgICAgICAgICAgICAgPC9TdHlsZWRDaGVja2JveFdyYXBwZXI+XG4gICAgICAgICAgICAgICAgPC9SZWd1bGFyT3V0ZXJXcmFwcGVyPlxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICBpKys7XG4gICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoJ2lzRWxldmF0aW9uU2VjdGlvbicgaW4gY29udHJvbCkge1xuICAgICAgICAgICAgICBlbGVtZW50cy5wdXNoKFxuICAgICAgICAgICAgICAgIDxTdXJmYWNlRm9nRWxldmF0aW9uU2VjdGlvblxuICAgICAgICAgICAgICAgICAga2V5PXtgJHtlZmZlY3QuaWR9LWVsZXZhdGlvbmB9XG4gICAgICAgICAgICAgICAgICBlZmZlY3Q9e2VmZmVjdH1cbiAgICAgICAgICAgICAgICAgIHVwZGF0ZUVmZmVjdENvbmZpZz17dXBkYXRlRWZmZWN0Q29uZmlnfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIGkrKztcbiAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGVsZW1lbnRzLnB1c2goXG4gICAgICAgICAgICAgIDxSZWd1bGFyT3V0ZXJXcmFwcGVyIGtleT17YCR7ZWZmZWN0LmlkfS0ke2l9YH0+XG4gICAgICAgICAgICAgICAge2NvbnRyb2wubGFiZWwgPyAoXG4gICAgICAgICAgICAgICAgICA8UmVndWxhclNlY3Rpb25UaXRsZVdyYXBwZXI+e2NvbnRyb2wubGFiZWx9PC9SZWd1bGFyU2VjdGlvblRpdGxlV3JhcHBlcj5cbiAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICA8UmVndWxhclNsaWRlcldyYXBwZXI+XG4gICAgICAgICAgICAgICAgICA8UmFuZ2VTbGlkZXIga2V5PXtpfSB7Li4uQ09NTU9OX1NMSURFUl9QUk9QU30gey4uLmNvbnRyb2x9IC8+XG4gICAgICAgICAgICAgICAgPC9SZWd1bGFyU2xpZGVyV3JhcHBlcj5cbiAgICAgICAgICAgICAgPC9SZWd1bGFyT3V0ZXJXcmFwcGVyPlxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGkrKztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gZWxlbWVudHM7XG4gICAgICAgIH0pKCl9XG4gICAgICA8L1N0eWxlZEVmZmVjdENvbmZpZ3VyYXRvcj5cbiAgICApO1xuICB9O1xuXG4gIGNvbnN0IEVmZmVjdENvbmZpZ3VyYXRvciA9ICh7XG4gICAgZWZmZWN0LFxuICAgIHVwZGF0ZUVmZmVjdENvbmZpZ1xuICB9OiBFZmZlY3RDb25maWd1cmF0b3JQcm9wcyAmIHtpbnRsOiBJbnRsU2hhcGV9KSA9PiB7XG4gICAgcmV0dXJuIGVmZmVjdC50eXBlID09PSBMSUdIVF9BTkRfU0hBRE9XX0VGRkVDVC50eXBlID8gKFxuICAgICAgPFNoYWRvd0VmZmVjdENvbmZpZ3VyYXRvciBlZmZlY3Q9e2VmZmVjdH0gdXBkYXRlRWZmZWN0Q29uZmlnPXt1cGRhdGVFZmZlY3RDb25maWd9IC8+XG4gICAgKSA6IChcbiAgICAgIDxQb3N0UHJvY2Vzc2luZ0VmZmVjdENvbmZpZ3VyYXRvciBlZmZlY3Q9e2VmZmVjdH0gdXBkYXRlRWZmZWN0Q29uZmlnPXt1cGRhdGVFZmZlY3RDb25maWd9IC8+XG4gICAgKTtcbiAgfTtcblxuICByZXR1cm4gaW5qZWN0SW50bChFZmZlY3RDb25maWd1cmF0b3IpO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7QUFDQTs7QUFFQSxPQUFPQSxLQUFLLElBQUdDLFdBQVcsRUFBRUMsT0FBTyxRQUFPLE9BQU87QUFDakQsT0FBT0MsTUFBTSxNQUFNLG1CQUFtQjtBQUN0QyxTQUFRQyxVQUFVLFFBQWtCLFlBQVk7QUFFaEQsU0FBUUMsdUJBQXVCLFFBQU8sc0JBQXNCO0FBQzVELFNBQVFDLFFBQVEsUUFBTyxrQkFBa0I7QUFHekMsT0FBT0Msa0JBQWtCLE1BQU0sd0JBQXdCO0FBQ3ZELFNBQVFDLGNBQWMsUUFBTyxpQkFBaUI7QUFDOUMsU0FBUUMsT0FBTyxRQUFPLDZCQUE2QjtBQUNuRCxPQUFPQyw2QkFBNkIsTUFBTSw0QkFBNEI7QUFDdEUsT0FBT0Msa0JBQWtCLE1BQU0sd0JBQXdCO0FBQ3ZELE9BQU9DLGlDQUFpQyxJQUFHQyxzQkFBc0IsUUFBTyx1QkFBdUI7QUFXL0YsSUFBTUMsd0JBQXdCLEdBQUdYLE1BQU0sQ0FBQ1ksR0FBRyxDQUFDQyxLQUFLLENBQUM7RUFDaERDLFNBQVMsRUFBRTtBQUNiLENBQUMsQ0FBQyxDQUFBQyxlQUFBLEtBQUFBLGVBQUEsR0FBQUMsc0JBQUEscUVBRVUsVUFBQUMsS0FBSztFQUFBLE9BQUlBLEtBQUssQ0FBQ0MsS0FBSyxD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
@@ -7,13 +7,13 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
7
7
  // SPDX-License-Identifier: MIT
8
8
  // Copyright contributors to the kepler.gl project
9
9
 
10
- import React, { useMemo, useState, useCallback } from 'react';
10
+ import React, { useMemo, useState, useCallback, useContext } from 'react';
11
+ import { useDispatch, useSelector } from 'react-redux';
11
12
  import styled from 'styled-components';
12
13
  import { injectIntl } from 'react-intl';
13
- import { addEffect, updateEffect, removeEffect, reorderEffect } from '@kepler.gl/actions';
14
+ import { addEffect as _addEffect, updateEffect as _updateEffect, removeEffect as _removeEffect, reorderEffect as _reorderEffect } from '@kepler.gl/actions';
14
15
  import { LIGHT_AND_SHADOW_EFFECT, EFFECT_DESCRIPTIONS, DISTANCE_FOG_TYPE, SURFACE_FOG_TYPE } from '@kepler.gl/constants';
15
- import { visStateLens } from '@kepler.gl/reducers';
16
- import { withState } from '../injector';
16
+ import KeplerGlContext from '../context';
17
17
  import SidePanelTitleFactory from './side-panel-title';
18
18
  import EffectListFactory from './effect-list';
19
19
  import EffectTypeSelectorFactory from './effect-type-selector';
@@ -40,12 +40,36 @@ var StyledEffectPanelContent = styled.div(_templateObject4 || (_templateObject4
40
40
  EffectManagerFactory.deps = [EffectListFactory, SidePanelTitleFactory, EffectTypeSelectorFactory];
41
41
  function EffectManagerFactory(EffectList, SidePanelTitle, EffectTypeSelector) {
42
42
  var EffectManager = function EffectManager(props) {
43
+ var _props$visState, _visState$effects, _visState$effectOrder;
43
44
  var intl = props.intl,
44
- visStateActions = props.visStateActions,
45
- visState = props.visState,
46
45
  children = props.children;
47
- var effects = visState.effects,
48
- effectOrder = visState.effectOrder;
46
+ var dispatch = useDispatch();
47
+ var _useContext = useContext(KeplerGlContext),
48
+ selector = _useContext.selector;
49
+ var visStateFromStore = useSelector(function (state) {
50
+ var _selector;
51
+ return (_selector = selector(state)) === null || _selector === void 0 ? void 0 : _selector.visState;
52
+ });
53
+ var visState = (_props$visState = props.visState) !== null && _props$visState !== void 0 ? _props$visState : visStateFromStore;
54
+ var visStateActions = useMemo(function () {
55
+ var _props$visStateAction;
56
+ return (_props$visStateAction = props.visStateActions) !== null && _props$visStateAction !== void 0 ? _props$visStateAction : {
57
+ addEffect: function addEffect(payload) {
58
+ return dispatch(_addEffect(payload));
59
+ },
60
+ updateEffect: function updateEffect(id, next) {
61
+ return dispatch(_updateEffect(id, next));
62
+ },
63
+ removeEffect: function removeEffect(id) {
64
+ return dispatch(_removeEffect(id));
65
+ },
66
+ reorderEffect: function reorderEffect(order) {
67
+ return dispatch(_reorderEffect(order));
68
+ }
69
+ };
70
+ }, [dispatch, props.visStateActions]);
71
+ var effects = (_visState$effects = visState === null || visState === void 0 ? void 0 : visState.effects) !== null && _visState$effects !== void 0 ? _visState$effects : [];
72
+ var effectOrder = (_visState$effectOrder = visState === null || visState === void 0 ? void 0 : visState.effectOrder) !== null && _visState$effectOrder !== void 0 ? _visState$effectOrder : [];
49
73
  var visStateAddEffect = visStateActions.addEffect;
50
74
  var _useState = useState(false),
51
75
  _useState2 = _slicedToArray(_useState, 2),
@@ -104,16 +128,7 @@ function EffectManagerFactory(EffectList, SidePanelTitle, EffectTypeSelector) {
104
128
  isSortable: true
105
129
  }))), children);
106
130
  };
107
- return withState([visStateLens], function (state) {
108
- return state;
109
- }, {
110
- visStateActions: {
111
- addEffect: addEffect,
112
- updateEffect: updateEffect,
113
- removeEffect: removeEffect,
114
- reorderEffect: reorderEffect
115
- }
116
- })(injectIntl(EffectManager));
131
+ return injectIntl(EffectManager);
117
132
  }
118
133
  export default EffectManagerFactory;
119
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsInVzZU1lbW8iLCJ1c2VTdGF0ZSIsInVzZUNhbGxiYWNrIiwic3R5bGVkIiwiaW5qZWN0SW50bCIsImFkZEVmZmVjdCIsInVwZGF0ZUVmZmVjdCIsInJlbW92ZUVmZmVjdCIsInJlb3JkZXJFZmZlY3QiLCJMSUdIVF9BTkRfU0hBRE9XX0VGRkVDVCIsIkVGRkVDVF9ERVNDUklQVElPTlMiLCJESVNUQU5DRV9GT0dfVFlQRSIsIlNVUkZBQ0VfRk9HX1RZUEUiLCJ2aXNTdGF0ZUxlbnMiLCJ3aXRoU3RhdGUiLCJTaWRlUGFuZWxUaXRsZUZhY3RvcnkiLCJFZmZlY3RMaXN0RmFjdG9yeSIsIkVmZmVjdFR5cGVTZWxlY3RvckZhY3RvcnkiLCJTdHlsZWRFZmZlY3RQYW5lbENvbnRhaW5lciIsImRpdiIsIl90ZW1wbGF0ZU9iamVjdCIsIl90YWdnZWRUZW1wbGF0ZUxpdGVyYWwiLCJTdHlsZWRFZmZlY3RQYW5lbCIsIl90ZW1wbGF0ZU9iamVjdDIiLCJwcm9wcyIsInRoZW1lIiwic2lkZVBhbmVsQmciLCJTdHlsZWRFZmZlY3RQYW5lbEhlYWRlciIsIl90ZW1wbGF0ZU9iamVjdDMiLCJfcmVmIiwiY29uY2F0IiwiZWZmZWN0UGFuZWxQYWRkaW5nVG9wIiwiZWZmZWN0UGFuZWxQYWRkaW5nU2lkZSIsImJvcmRlckNvbG9yIiwiX3JlZjIiLCJlZmZlY3RQYW5lbFdpZHRoIiwiU3R5bGVkRWZmZWN0UGFuZWxDb250ZW50IiwiX3RlbXBsYXRlT2JqZWN0NCIsInNpZGVQYW5lbFNjcm9sbEJhciIsIiRleHRlbmRlZCIsIkVmZmVjdE1hbmFnZXJGYWN0b3J5IiwiZGVwcyIsIkVmZmVjdExpc3QiLCJTaWRlUGFuZWxUaXRsZSIsIkVmZmVjdFR5cGVTZWxlY3RvciIsIkVmZmVjdE1hbmFnZXIiLCJpbnRsIiwidmlzU3RhdGVBY3Rpb25zIiwidmlzU3RhdGUiLCJjaGlsZHJlbiIsImVmZmVjdHMiLCJlZmZlY3RPcmRlciIsInZpc1N0YXRlQWRkRWZmZWN0IiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5IiwidHlwZVNlbGVjdG9yT3BlbmVkIiwic2V0VHlwZVNlbGVjdG9yT3BlbmVkIiwiZWZmZWN0T3B0aW9ucyIsImhhc1NoYWRvdyIsInNvbWUiLCJlZmZlY3QiLCJ0eXBlIiwiaGFzRGlzdGFuY2VGb2ciLCJoYXNTdXJmYWNlRm9nIiwiaGFzQW55Rm9nIiwibWFwIiwiZGVzYyIsIl9vYmplY3RTcHJlYWQiLCJkaXNhYmxlZCIsIkJvb2xlYW4iLCJvbkFkZEVmZmVjdCIsIm9uVHlwZVNlbGVjdE9wZW4iLCJvblR5cGVTZWxlY3RDbG9zZSIsImNyZWF0ZUVsZW1lbnQiLCJjbGFzc05hbWUiLCJ0aXRsZSIsImZvcm1hdE1lc3NhZ2UiLCJpZCIsIm9wdGlvbnMiLCJvblNlbGVjdCIsIm9uT3BlbiIsIm9uQmx1ciIsImxlbmd0aCIsImlzU29ydGFibGUiLCJzdGF0ZSJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lZmZlY3RzL2VmZmVjdC1tYW5hZ2VyLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQgUmVhY3QsIHt1c2VNZW1vLCB1c2VTdGF0ZSwgdXNlQ2FsbGJhY2t9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBzdHlsZWQgZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnO1xuaW1wb3J0IHtpbmplY3RJbnRsLCBJbnRsU2hhcGV9IGZyb20gJ3JlYWN0LWludGwnO1xuXG5pbXBvcnQge1xuICBhZGRFZmZlY3QsXG4gIHVwZGF0ZUVmZmVjdCxcbiAgcmVtb3ZlRWZmZWN0LFxuICByZW9yZGVyRWZmZWN0LFxuICBBY3Rpb25IYW5kbGVyXG59IGZyb20gJ0BrZXBsZXIuZ2wvYWN0aW9ucyc7XG5pbXBvcnQge1xuICBMSUdIVF9BTkRfU0hBRE9XX0VGRkVDVCxcbiAgRUZGRUNUX0RFU0NSSVBUSU9OUyxcbiAgRElTVEFOQ0VfRk9HX1RZUEUsXG4gIFNVUkZBQ0VfRk9HX1RZUEVcbn0gZnJvbSAnQGtlcGxlci5nbC9jb25zdGFudHMnO1xuaW1wb3J0IHt2aXNTdGF0ZUxlbnN9IGZyb20gJ0BrZXBsZXIuZ2wvcmVkdWNlcnMnO1xuaW1wb3J0IHtFZmZlY3R9IGZyb20gJ0BrZXBsZXIuZ2wvdHlwZXMnO1xuaW1wb3J0IHtWaXNTdGF0ZX0gZnJvbSAnQGtlcGxlci5nbC9zY2hlbWFzJztcblxuaW1wb3J0IHt3aXRoU3RhdGV9IGZyb20gJy4uL2luamVjdG9yJztcbmltcG9ydCBTaWRlUGFuZWxUaXRsZUZhY3RvcnkgZnJvbSAnLi9zaWRlLXBhbmVsLXRpdGxlJztcbmltcG9ydCBFZmZlY3RMaXN0RmFjdG9yeSBmcm9tICcuL2VmZmVjdC1saXN0JztcbmltcG9ydCBFZmZlY3RUeXBlU2VsZWN0b3JGYWN0b3J5LCB7RWZmZWN0VHlwZVNlbGVjdG9yUHJvcHN9IGZyb20gJy4vZWZmZWN0LXR5cGUtc2VsZWN0b3InO1xuXG5leHBvcnQgdHlwZSBFZmZlY3RNYW5hZ2VyU3RhdGUgPSB7XG4gIHZpc1N0YXRlOiBWaXNTdGF0ZTtcbiAgdmlzU3RhdGVBY3Rpb25zOiB7XG4gICAgYWRkRWZmZWN0OiBBY3Rpb25IYW5kbGVyPHR5cGVvZiBhZGRFZmZlY3Q+O1xuICAgIHVwZGF0ZUVmZmVjdDogQWN0aW9uSGFuZGxlcjx0eXBlb2YgdXBkYXRlRWZmZWN0PjtcbiAgICByZW1vdmVFZmZlY3Q6IEFjdGlvbkhhbmRsZXI8dHlwZW9mIHJlbW92ZUVmZmVjdD47XG4gICAgcmVvcmRlckVmZmVjdDogQWN0aW9uSGFuZGxlcjx0eXBlb2YgcmVvcmRlckVmZmVjdD47XG4gIH07XG4gIGVmZmVjdHM6IEVmZmVjdFtdO1xuICBlZmZlY3RPcmRlcjogc3RyaW5nW107XG4gIGNoaWxkcmVuOiBSZWFjdC5SZWFjdE5vZGU7XG59O1xuZXhwb3J0IHR5cGUgRWZmZWN0TWFuYWdlclByb3BzID0gRWZmZWN0TWFuYWdlcldpdGhJbnRsUHJvcCAmIEVmZmVjdE1hbmFnZXJTdGF0ZTtcblxuZXhwb3J0IHR5cGUgRWZmZWN0TWFuYWdlcldpdGhJbnRsUHJvcCA9IHtpbnRsOiBJbnRsU2hhcGV9O1xuXG5jb25zdCBTdHlsZWRFZmZlY3RQYW5lbENvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIHBvaW50ZXItZXZlbnRzOiBub25lICFpbXBvcnRhbnQ7IC8qIHByZXZlbnQgcGFkZGluZyBmcm9tIGJsb2NraW5nIGlucHV0ICovXG4gIGZsZXgtZ3JvdzogMTtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICYgPiAqIHtcbiAgICAvKiBhbGwgY2hpbGRyZW4gc2hvdWxkIGFsbG93IGlucHV0ICovXG4gICAgcG9pbnRlci1ldmVudHM6IGFsbDtcbiAgfVxuYDtcblxuLy8gdG9wIHJpZ2h0IHBvc2l0aW9uIGFic29sdXRlXG5jb25zdCBTdHlsZWRFZmZlY3RQYW5lbCA9IHN0eWxlZC5kaXZgXG4gIHRvcDogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zaWRlUGFuZWxCZ307XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGZsZXgtZ3JvdzogMTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbmA7XG5cbmNvbnN0IFN0eWxlZEVmZmVjdFBhbmVsSGVhZGVyID0gc3R5bGVkLmRpdmBcbiAgcGFkZGluZzogJHsoe3RoZW1lfSkgPT5cbiAgICBgJHt0aGVtZS5lZmZlY3RQYW5lbFBhZGRpbmdUb3B9cHggJHt0aGVtZS5lZmZlY3RQYW5lbFBhZGRpbmdTaWRlfXB4IDRweCAke3RoZW1lLmVmZmVjdFBhbmVsUGFkZGluZ1NpZGV9cHhgfTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuYm9yZGVyQ29sb3J9O1xuICBtaW4td2lkdGg6ICR7KHt0aGVtZX0pID0+IHRoZW1lLmVmZmVjdFBhbmVsV2lkdGh9cHg7XG5gO1xuXG50eXBlIFN0eWxlZEVmZmVjdFBhbmVsQ29udGVudFByb3BzID0ge1xuICAkZXh0ZW5kZWQ/OiBib29sZWFuO1xufTtcbmNvbnN0IFN0eWxlZEVmZmVjdFBhbmVsQ29udGVudCA9IHN0eWxlZC5kaXY8U3R5bGVkRWZmZWN0UGFuZWxDb250ZW50UHJvcHM+YFxuICAke3Byb3BzID0+IHByb3BzLnRoZW1lLnNpZGVQYW5lbFNjcm9sbEJhcn07XG4gIHBhZGRpbmc6ICR7cHJvcHMgPT4gKHByb3BzLiRleHRlbmRlZCA/ICczMnB4JyA6ICcxMHB4IDBweCAxMHB4IDBweCcpfTtcbiAgb3ZlcmZsb3c6IG92ZXJsYXk7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5gO1xuXG5FZmZlY3RNYW5hZ2VyRmFjdG9yeS5kZXBzID0gW0VmZmVjdExpc3RGYWN0b3J5LCBTaWRlUGFuZWxUaXRsZUZhY3RvcnksIEVmZmVjdFR5cGVTZWxlY3RvckZhY3RvcnldO1xuXG5mdW5jdGlvbiBFZmZlY3RNYW5hZ2VyRmFjdG9yeShcbiAgRWZmZWN0TGlzdDogUmV0dXJuVHlwZTx0eXBlb2YgRWZmZWN0TGlzdEZhY3Rvcnk+LFxuICBTaWRlUGFuZWxUaXRsZTogUmV0dXJuVHlwZTx0eXBlb2YgU2lkZVBhbmVsVGl0bGVGYWN0b3J5PixcbiAgRWZmZWN0VHlwZVNlbGVjdG9yOiBSZXR1cm5UeXBlPHR5cGVvZiBFZmZlY3RUeXBlU2VsZWN0b3JGYWN0b3J5PlxuKTogUmVhY3QuRkM8RWZmZWN0TWFuYWdlclByb3BzPiB7XG4gIGNvbnN0IEVmZmVjdE1hbmFnZXIgPSAocHJvcHM6IEVmZmVjdE1hbmFnZXJXaXRoSW50bFByb3AgJiBFZmZlY3RNYW5hZ2VyU3RhdGUpID0+IHtcbiAgICBjb25zdCB7aW50bCwgdmlzU3RhdGVBY3Rpb25zLCB2aXNTdGF0ZSwgY2hpbGRyZW59ID0gcHJvcHM7XG4gICAgY29uc3Qge2VmZmVjdHMsIGVmZmVjdE9yZGVyfSA9IHZpc1N0YXRlO1xuICAgIGNvbnN0IHthZGRFZmZlY3Q6IHZpc1N0YXRlQWRkRWZmZWN0fSA9IHZpc1N0YXRlQWN0aW9ucztcbiAgICBjb25zdCBbdHlwZVNlbGVjdG9yT3BlbmVkLCBzZXRUeXBlU2VsZWN0b3JPcGVuZWRdID0gdXNlU3RhdGUoZmFsc2UpO1xuXG4gICAgLy8gUHJldmVudCBzaGFkb3cgZWZmZWN0IGZyb20gYmVpbmcgYWRkZWQgbXVsdGlwbGUgdGltZXNcbiAgICBjb25zdCBlZmZlY3RPcHRpb25zOiBFZmZlY3RUeXBlU2VsZWN0b3JQcm9wc1snb3B0aW9ucyddID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBjb25zdCBoYXNTaGFkb3cgPSBlZmZlY3RzLnNvbWUoZWZmZWN0ID0+IHtcbiAgICAgICAgcmV0dXJuIGVmZmVjdC50eXBlID09PSBMSUdIVF9BTkRfU0hBRE9XX0VGRkVDVC50eXBlO1xuICAgICAgfSk7XG4gICAgICBjb25zdCBoYXNEaXN0YW5jZUZvZyA9IGVmZmVjdHMuc29tZShlZmZlY3QgPT4ge1xuICAgICAgICByZXR1cm4gZWZmZWN0LnR5cGUgPT09IERJU1RBTkNFX0ZPR19UWVBFO1xuICAgICAgfSk7XG4gICAgICBjb25zdCBoYXNTdXJmYWNlRm9nID0gZWZmZWN0cy5zb21lKGVmZmVjdCA9PiB7XG4gICAgICAgIHJldHVybiBlZmZlY3QudHlwZSA9PT0gU1VSRkFDRV9GT0dfVFlQRTtcbiAgICAgIH0pO1xuICAgICAgY29uc3QgaGFzQW55Rm9nID0gaGFzRGlzdGFuY2VGb2cgfHwgaGFzU3VyZmFjZUZvZztcblxuICAgICAgcmV0dXJuIEVGRkVDVF9ERVNDUklQVElPTlMubWFwKGRlc2MgPT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIC4uLmRlc2MsXG4gICAgICAgICAgZGlzYWJsZWQ6IEJvb2xlYW4oXG4gICAgICAgICAgICAoaGFzU2hhZG93ICYmIGRlc2MudHlwZSA9PT0gTElHSFRfQU5EX1NIQURPV19FRkZFQ1QudHlwZSkgfHxcbiAgICAgICAgICAgICAgKGhhc0FueUZvZyAmJiAoZGVzYy50eXBlID09PSBESVNUQU5DRV9GT0dfVFlQRSB8fCBkZXNjLnR5cGUgPT09IFNVUkZBQ0VfRk9HX1RZUEUpKVxuICAgICAgICAgIClcbiAgICAgICAgfTtcbiAgICAgIH0pO1xuICAgIH0sIFtlZmZlY3RzXSk7XG5cbiAgICBjb25zdCBvbkFkZEVmZmVjdCA9IHVzZUNhbGxiYWNrKFxuICAgICAgdHlwZSA9PiB7XG4gICAgICAgIHZpc1N0YXRlQWRkRWZmZWN0KHt0eXBlfSk7XG4gICAgICB9LFxuICAgICAgW3Zpc1N0YXRlQWRkRWZmZWN0XVxuICAgICk7XG5cbiAgICBjb25zdCBvblR5cGVTZWxlY3RPcGVuID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgc2V0VHlwZVNlbGVjdG9yT3BlbmVkKHRydWUpO1xuICAgIH0sIFtdKTtcblxuICAgIGNvbnN0IG9uVHlwZVNlbGVjdENsb3NlID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgc2V0VHlwZVNlbGVjdG9yT3BlbmVkKGZhbHNlKTtcbiAgICB9LCBbXSk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPFN0eWxlZEVmZmVjdFBhbmVsQ29udGFpbmVyIGNsYXNzTmFtZT1cImVmZmVjdC1tYW5hZ2VyXCI+XG4gICAgICAgIDxTdHlsZWRFZmZlY3RQYW5lbD5cbiAgICAgICAgICA8U3R5bGVkRWZmZWN0UGFuZWxIZWFkZXIgY2xhc3NOYW1lPVwiZWZmZWN0LXBhbmVsLWhlYWRlclwiPlxuICAgICAgICAgICAgPFNpZGVQYW5lbFRpdGxlXG4gICAgICAgICAgICAgIGNsYXNzTmFtZT1cImVmZmVjdC1tYW5hZ2VyLXRpdGxlXCJcbiAgICAgICAgICAgICAgdGl0bGU9e2ludGwuZm9ybWF0TWVzc2FnZSh7aWQ6ICdlZmZlY3RNYW5hZ2VyLmVmZmVjdHMnfSl9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxFZmZlY3RUeXBlU2VsZWN0b3JcbiAgICAgICAgICAgICAgICBvcHRpb25zPXtlZmZlY3RPcHRpb25zfVxuICAgICAgICAgICAgICAgIG9uU2VsZWN0PXtvbkFkZEVmZmVjdH1cbiAgICAgICAgICAgICAgICBvbk9wZW49e29uVHlwZVNlbGVjdE9wZW59XG4gICAgICAgICAgICAgICAgb25CbHVyPXtvblR5cGVTZWxlY3RDbG9zZX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvU2lkZVBhbmVsVGl0bGU+XG4gICAgICAgICAgPC9TdHlsZWRFZmZlY3RQYW5lbEhlYWRlcj5cblxuICAgICAgICAgIDxTdHlsZWRFZmZlY3RQYW5lbENvbnRlbnQgJGV4dGVuZGVkPXt0eXBlU2VsZWN0b3JPcGVuZWQgJiYgZWZmZWN0cy5sZW5ndGggPT09IDB9PlxuICAgICAgICAgICAgPEVmZmVjdExpc3RcbiAgICAgICAgICAgICAgZWZmZWN0cz17ZWZmZWN0c31cbiAgICAgICAgICAgICAgZWZmZWN0T3JkZXI9e2VmZmVjdE9yZGVyfVxuICAgICAgICAgICAgICB2aXNTdGF0ZUFjdGlvbnM9e3Zpc1N0YXRlQWN0aW9uc31cbiAgICAgICAgICAgICAgaXNTb3J0YWJsZT17dHJ1ZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9TdHlsZWRFZmZlY3RQYW5lbENvbnRlbnQ+XG4gICAgICAgIDwvU3R5bGVkRWZmZWN0UGFuZWw+XG4gICAgICAgIHtjaGlsZHJlbn1cbiAgICAgIDwvU3R5bGVkRWZmZWN0UGFuZWxDb250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICByZXR1cm4gd2l0aFN0YXRlKFt2aXNTdGF0ZUxlbnNdLCBzdGF0ZSA9PiBzdGF0ZSwge1xuICAgIHZpc1N0YXRlQWN0aW9uczoge2FkZEVmZmVjdCwgdXBkYXRlRWZmZWN0LCByZW1vdmVFZmZlY3QsIHJlb3JkZXJFZmZlY3R9XG4gIH0pKGluamVjdEludGwoRWZmZWN0TWFuYWdlcikpIGFzIFJlYWN0LkZDPEVmZmVjdE1hbmFnZXJQcm9wcz47XG59XG5cbmV4cG9ydCBkZWZhdWx0IEVmZmVjdE1hbmFnZXJGYWN0b3J5O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTtBQUNBOztBQUVBLE9BQU9BLEtBQUssSUFBR0MsT0FBTyxFQUFFQyxRQUFRLEVBQUVDLFdBQVcsUUFBTyxPQUFPO0FBQzNELE9BQU9DLE1BQU0sTUFBTSxtQkFBbUI7QUFDdEMsU0FBUUMsVUFBVSxRQUFrQixZQUFZO0FBRWhELFNBQ0VDLFNBQVMsRUFDVEMsWUFBWSxFQUNaQyxZQUFZLEVBQ1pDLGFBQWEsUUFFUixvQkFBb0I7QUFDM0IsU0FDRUMsdUJBQXVCLEVBQ3ZCQyxtQkFBbUIsRUFDbkJDLGlCQUFpQixFQUNqQkMsZ0JBQWdCLFFBQ1gsc0JBQXNCO0FBQzdCLFNBQVFDLFlBQVksUUFBTyxxQkFBcUI7QUFJaEQsU0FBUUMsU0FBUyxRQUFPLGFBQWE7QUFDckMsT0FBT0MscUJBQXFCLE1BQU0sb0JBQW9CO0FBQ3RELE9BQU9DLGlCQUFpQixNQUFNLGVBQWU7QUFDN0MsT0FBT0MseUJBQXlCLE1BQWlDLHdCQUF3QjtBQWtCekYsSUFBTUMsMEJBQTBCLEdBQUdmLE1BQU0sQ0FBQ2dCLEdBQUcsQ0FBQUMsZUFBQSxLQUFBQSxlQUFBLEdBQUFDLHNCQUFBLHFTQVk1Qzs7QUFFRDtBQUNBLElBQU1DLGlCQUFpQixHQUFHbkIsTUFBTSxDQUFDZ0IsR0FBRyxDQUFBSSxnQkFBQSxLQUFBQSxnQkFBQSxHQUFBRixzQkFBQSxvSUFFZCxVQUFBRyxLQUFLO0VBQUEsT0FBSUEsS0FBSyxDQUFDQyxLQUFLLENBQUNDLFdBQVc7QUFBQSxFQUtyRDtBQUVELElBQU1DLHVCQUF1QixHQUFHeEIsTUFBTSxDQUFDZ0IsR0FBRyxDQUFBUyxnQkFBQSxLQUFBQSxnQkFBQSxHQUFBUCxzQkFBQSxxRkFDN0IsVUFBQVEsSUFBQTtFQUFBLElBQUVKLEtBQUssR0FBQUksSUFBQSxDQUFMSixLQUFLO0VBQUEsVUFBQUssTUFBQSxDQUNiTCxLQUFLLENBQUNNLHFCQUFxQixTQUFBRCxNQUFBLENBQU1MLEtBQUssQ0FBQ08sc0JBQXNCLGFBQUFGLE1BQUEsQ0FBVUwsS0FBSyxDQUFDTyxzQkFBc0I7QUFBQSxDQUFJLEVBQ2pGLFVBQUFSLEtBQUs7RUFBQSxPQUFJQSxLQUFLLENBQUNDLEtBQUssQ0FBQ1EsV0FBVztBQUFBLEdBQzlDLFVBQUFDLEtBQUE7RUFBQSxJQUFFVCxLQUFLLEdBQUFTLEtBQUEsQ0FBTFQsS0FBSztFQUFBLE9BQU1BLEtBQUssQ0FBQ1UsZ0JBQWdCO0FBQUEsRUFDakQ7QUFLRCxJQUFNQyx3QkFBd0IsR0FBR2pDLE1BQU0sQ0FBQ2dCLEdBQUcsQ0FBQWtCLGdCQUFBLEtBQUFBLGdCQUFBLEdBQUFoQixzQkFBQSx5R0FDdkMsVUFBQUcsS0FBSztFQUFBLE9BQUlBLEtBQUssQ0FBQ0MsS0FBSyxDQUFDYSxrQkFBa0I7QUFBQSxHQUM5QixVQUFBZCxLQUFLO0VBQUEsT0FBS0EsS0FBSyxDQUFDZSxTQUFTLEdBQUcsTUFBTSxHQUFHLG1CQUFtQjtBQUFBLENBQUMsQ0FJckU7QUFFREMsb0JBQW9CLENBQUNDLElBQUksR0FBRyxDQUFDekIsaUJBQWlCLEVBQUVELHFCQUFxQixFQUFFRSx5QkFBeUIsQ0FBQztBQUVqRyxTQUFTdUIsb0JBQW9CQSxDQUMzQkUsVUFBZ0QsRUFDaERDLGNBQXdELEVBQ3hEQyxrQkFBZ0UsRUFDbEM7RUFDOUIsSUFBTUMsYUFBYSxHQUFHLFNBQWhCQSxhQUFhQSxDQUFJckIsS0FBcUQsRUFBSztJQUMvRSxJQUFPc0IsSUFBSSxHQUF5Q3RCLEtBQUssQ0FBbERzQixJQUFJO01BQUVDLGVBQWUsR0FBd0J2QixLQUFLLENBQTVDdUIsZUFBZTtNQUFFQyxRQUFRLEdBQWN4QixLQUFLLENBQTNCd0IsUUFBUTtNQUFFQyxRQUFRLEdBQUl6QixLQUFLLENBQWpCeUIsUUFBUTtJQUNoRCxJQUFPQyxPQUFPLEdBQWlCRixRQUFRLENBQWhDRSxPQUFPO01BQUVDLFdBQVcsR0FBSUgsUUFBUSxDQUF2QkcsV0FBVztJQUMzQixJQUFrQkMsaUJBQWlCLEdBQUlMLGVBQWUsQ0FBL0MxQyxTQUFTO0lBQ2hCLElBQUFnRCxTQUFBLEdBQW9EcEQsUUFBUSxDQUFDLEtBQUssQ0FBQztNQUFBcUQsVUFBQSxHQUFBQyxjQUFBLENBQUFGLFNBQUE7TUFBNURHLGtCQUFrQixHQUFBRixVQUFBO01BQUVHLHFCQUFxQixHQUFBSCxVQUFBOztJQUVoRDtJQUNBLElBQU1JLGFBQWlELEdBQUcxRCxPQUFPLENBQUMsWUFBTTtNQUN0RSxJQUFNMkQsU0FBUyxHQUFHVCxPQUFPLENBQUNVLElBQUksQ0FBQyxVQUFBQyxNQUFNLEVBQUk7UUFDdkMsT0FBT0EsTUFBTSxDQUFDQyxJQUFJLEtBQUtyRCx1QkFBdUIsQ0FBQ3FELElBQUk7TUFDckQsQ0FBQyxDQUFDO01BQ0YsSUFBTUMsY0FBYyxHQUFHYixPQUFPLENBQUNVLElBQUksQ0FBQyxVQUFBQyxNQUFNLEVBQUk7UUFDNUMsT0FBT0EsTUFBTSxDQUFDQyxJQUFJLEtBQUtuRCxpQkFBaUI7TUFDMUMsQ0FBQyxDQUFDO01BQ0YsSUFBTXFELGFBQWEsR0FBR2QsT0FBTyxDQUFDVSxJQUFJLENBQUMsVUFBQUMsTUFBTSxFQUFJO1FBQzNDLE9BQU9BLE1BQU0sQ0FBQ0MsSUFBSSxLQUFLbEQsZ0JBQWdCO01BQ3pDLENBQUMsQ0FBQztNQUNGLElBQU1xRCxTQUFTLEdBQUdGLGNBQWMsSUFBSUMsYUFBYTtNQUVqRCxPQUFPdEQsbUJBQW1CLENBQUN3RCxHQUFHLENBQUMsVUFBQUMsSUFBSSxFQUFJO1FBQ3JDLE9BQUFDLGFBQUEsQ0FBQUEsYUFBQSxLQUNLRCxJQUFJO1VBQ1BFLFFBQVEsRUFBRUMsT0FBTyxDQUNkWCxTQUFTLElBQUlRLElBQUksQ0FBQ0wsSUFBSSxLQUFLckQsdUJBQXVCLENBQUNxRCxJQUFJLElBQ3JERyxTQUFTLEtBQUtFLElBQUksQ0FBQ0wsSUFBSSxLQUFLbkQsaUJBQWlCLElBQUl3RCxJQUFJLENBQUNMLElBQUksS0FBS2xELGdCQUFnQixDQUNwRjtRQUFDO01BRUwsQ0FBQyxDQUFDO0lBQ0osQ0FBQyxFQUFFLENBQUNzQyxPQUFPLENBQUMsQ0FBQztJQUViLElBQU1xQixXQUFXLEdBQUdyRSxXQUFXLENBQzdCLFVBQUE0RCxJQUFJLEVBQUk7TUFDTlYsaUJBQWlCLENBQUM7UUFBQ1UsSUFBSSxFQUFKQTtNQUFJLENBQUMsQ0FBQztJQUMzQixDQUFDLEVBQ0QsQ0FBQ1YsaUJBQWlCLENBQ3BCLENBQUM7SUFFRCxJQUFNb0IsZ0JBQWdCLEdBQUd0RSxXQUFXLENBQUMsWUFBTTtNQUN6Q3VELHFCQUFxQixDQUFDLElBQUksQ0FBQztJQUM3QixDQUFDLEVBQUUsRUFBRSxDQUFDO0lBRU4sSUFBTWdCLGlCQUFpQixHQUFHdkUsV0FBVyxDQUFDLFlBQU07TUFDMUN1RCxxQkFBcUIsQ0FBQyxLQUFLLENBQUM7SUFDOUIsQ0FBQyxFQUFFLEVBQUUsQ0FBQztJQUVOLG9CQUNFMUQsS0FBQSxDQUFBMkUsYUFBQSxDQUFDeEQsMEJBQTBCO01BQUN5RCxTQUFTLEVBQUM7SUFBZ0IsZ0JBQ3BENUUsS0FBQSxDQUFBMkUsYUFBQSxDQUFDcEQsaUJBQWlCLHFCQUNoQnZCLEtBQUEsQ0FBQTJFLGFBQUEsQ0FBQy9DLHVCQUF1QjtNQUFDZ0QsU0FBUyxFQUFDO0lBQXFCLGdCQUN0RDVFLEtBQUEsQ0FBQTJFLGFBQUEsQ0FBQy9CLGNBQWM7TUFDYmdDLFNBQVMsRUFBQyxzQkFBc0I7TUFDaENDLEtBQUssRUFBRTlCLElBQUksQ0FBQytCLGFBQWEsQ0FBQztRQUFDQyxFQUFFLEVBQUU7TUFBdUIsQ0FBQztJQUFFLGdCQUV6RC9FLEtBQUEsQ0FBQTJFLGFBQUEsQ0FBQzlCLGtCQUFrQjtNQUNqQm1DLE9BQU8sRUFBRXJCLGFBQWM7TUFDdkJzQixRQUFRLEVBQUVULFdBQVk7TUFDdEJVLE1BQU0sRUFBRVQsZ0JBQWlCO01BQ3pCVSxNQUFNLEVBQUVUO0lBQWtCLENBQzNCLENBQ2EsQ0FDTyxDQUFDLGVBRTFCMUUsS0FBQSxDQUFBMkUsYUFBQSxDQUFDdEMsd0JBQXdCO01BQUNHLFNBQVMsRUFBRWlCLGtCQUFrQixJQUFJTixPQUFPLENBQUNpQyxNQUFNLEtBQUs7SUFBRSxnQkFDOUVwRixLQUFBLENBQUEyRSxhQUFBLENBQUNoQyxVQUFVO01BQ1RRLE9BQU8sRUFBRUEsT0FBUTtNQUNqQkMsV0FBVyxFQUFFQSxXQUFZO01BQ3pCSixlQUFlLEVBQUVBLGVBQWdCO01BQ2pDcUMsVUFBVSxFQUFFO0lBQUssQ0FDbEIsQ0FDdUIsQ0FDVCxDQUFDLEVBQ25CbkMsUUFDeUIsQ0FBQztFQUVqQyxDQUFDO0VBRUQsT0FBT25DLFNBQVMsQ0FBQyxDQUFDRCxZQUFZLENBQUMsRUFBRSxVQUFBd0UsS0FBSztJQUFBLE9BQUlBLEtBQUs7RUFBQSxHQUFFO0lBQy9DdEMsZUFBZSxFQUFFO01BQUMxQyxTQUFTLEVBQVRBLFNBQVM7TUFBRUMsWUFBWSxFQUFaQSxZQUFZO01BQUVDLFlBQVksRUFBWkEsWUFBWTtNQUFFQyxhQUFhLEVBQWJBO0lBQWE7RUFDeEUsQ0FBQyxDQUFDLENBQUNKLFVBQVUsQ0FBQ3lDLGFBQWEsQ0FBQyxDQUFDO0FBQy9CO0FBRUEsZUFBZUwsb0JBQW9CIiwiaWdub3JlTGlzdCI6W119
134
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsInVzZU1lbW8iLCJ1c2VTdGF0ZSIsInVzZUNhbGxiYWNrIiwidXNlQ29udGV4dCIsInVzZURpc3BhdGNoIiwidXNlU2VsZWN0b3IiLCJzdHlsZWQiLCJpbmplY3RJbnRsIiwiYWRkRWZmZWN0IiwidXBkYXRlRWZmZWN0IiwicmVtb3ZlRWZmZWN0IiwicmVvcmRlckVmZmVjdCIsIkxJR0hUX0FORF9TSEFET1dfRUZGRUNUIiwiRUZGRUNUX0RFU0NSSVBUSU9OUyIsIkRJU1RBTkNFX0ZPR19UWVBFIiwiU1VSRkFDRV9GT0dfVFlQRSIsIktlcGxlckdsQ29udGV4dCIsIlNpZGVQYW5lbFRpdGxlRmFjdG9yeSIsIkVmZmVjdExpc3RGYWN0b3J5IiwiRWZmZWN0VHlwZVNlbGVjdG9yRmFjdG9yeSIsIlN0eWxlZEVmZmVjdFBhbmVsQ29udGFpbmVyIiwiZGl2IiwiX3RlbXBsYXRlT2JqZWN0IiwiX3RhZ2dlZFRlbXBsYXRlTGl0ZXJhbCIsIlN0eWxlZEVmZmVjdFBhbmVsIiwiX3RlbXBsYXRlT2JqZWN0MiIsInByb3BzIiwidGhlbWUiLCJzaWRlUGFuZWxCZyIsIlN0eWxlZEVmZmVjdFBhbmVsSGVhZGVyIiwiX3RlbXBsYXRlT2JqZWN0MyIsIl9yZWYiLCJjb25jYXQiLCJlZmZlY3RQYW5lbFBhZGRpbmdUb3AiLCJlZmZlY3RQYW5lbFBhZGRpbmdTaWRlIiwiYm9yZGVyQ29sb3IiLCJfcmVmMiIsImVmZmVjdFBhbmVsV2lkdGgiLCJTdHlsZWRFZmZlY3RQYW5lbENvbnRlbnQiLCJfdGVtcGxhdGVPYmplY3Q0Iiwic2lkZVBhbmVsU2Nyb2xsQmFyIiwiJGV4dGVuZGVkIiwiRWZmZWN0TWFuYWdlckZhY3RvcnkiLCJkZXBzIiwiRWZmZWN0TGlzdCIsIlNpZGVQYW5lbFRpdGxlIiwiRWZmZWN0VHlwZVNlbGVjdG9yIiwiRWZmZWN0TWFuYWdlciIsIl9wcm9wcyR2aXNTdGF0ZSIsIl92aXNTdGF0ZSRlZmZlY3RzIiwiX3Zpc1N0YXRlJGVmZmVjdE9yZGVyIiwiaW50bCIsImNoaWxkcmVuIiwiZGlzcGF0Y2giLCJfdXNlQ29udGV4dCIsInNlbGVjdG9yIiwidmlzU3RhdGVGcm9tU3RvcmUiLCJzdGF0ZSIsIl9zZWxlY3RvciIsInZpc1N0YXRlIiwidmlzU3RhdGVBY3Rpb25zIiwiX3Byb3BzJHZpc1N0YXRlQWN0aW9uIiwicGF5bG9hZCIsImlkIiwibmV4dCIsIm9yZGVyIiwiZWZmZWN0cyIsImVmZmVjdE9yZGVyIiwidmlzU3RhdGVBZGRFZmZlY3QiLCJfdXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJ0eXBlU2VsZWN0b3JPcGVuZWQiLCJzZXRUeXBlU2VsZWN0b3JPcGVuZWQiLCJlZmZlY3RPcHRpb25zIiwiaGFzU2hhZG93Iiwic29tZSIsImVmZmVjdCIsInR5cGUiLCJoYXNEaXN0YW5jZUZvZyIsImhhc1N1cmZhY2VGb2ciLCJoYXNBbnlGb2ciLCJtYXAiLCJkZXNjIiwiX29iamVjdFNwcmVhZCIsImRpc2FibGVkIiwiQm9vbGVhbiIsIm9uQWRkRWZmZWN0Iiwib25UeXBlU2VsZWN0T3BlbiIsIm9uVHlwZVNlbGVjdENsb3NlIiwiY3JlYXRlRWxlbWVudCIsImNsYXNzTmFtZSIsInRpdGxlIiwiZm9ybWF0TWVzc2FnZSIsIm9wdGlvbnMiLCJvblNlbGVjdCIsIm9uT3BlbiIsIm9uQmx1ciIsImxlbmd0aCIsImlzU29ydGFibGUiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZWZmZWN0cy9lZmZlY3QtbWFuYWdlci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IFJlYWN0LCB7dXNlTWVtbywgdXNlU3RhdGUsIHVzZUNhbGxiYWNrLCB1c2VDb250ZXh0fSBmcm9tICdyZWFjdCc7XG5pbXBvcnQge3VzZURpc3BhdGNoLCB1c2VTZWxlY3Rvcn0gZnJvbSAncmVhY3QtcmVkdXgnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdzdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQge2luamVjdEludGwsIEludGxTaGFwZX0gZnJvbSAncmVhY3QtaW50bCc7XG5cbmltcG9ydCB7XG4gIGFkZEVmZmVjdCxcbiAgdXBkYXRlRWZmZWN0LFxuICByZW1vdmVFZmZlY3QsXG4gIHJlb3JkZXJFZmZlY3QsXG4gIEFjdGlvbkhhbmRsZXJcbn0gZnJvbSAnQGtlcGxlci5nbC9hY3Rpb25zJztcbmltcG9ydCB7XG4gIExJR0hUX0FORF9TSEFET1dfRUZGRUNULFxuICBFRkZFQ1RfREVTQ1JJUFRJT05TLFxuICBESVNUQU5DRV9GT0dfVFlQRSxcbiAgU1VSRkFDRV9GT0dfVFlQRVxufSBmcm9tICdAa2VwbGVyLmdsL2NvbnN0YW50cyc7XG5pbXBvcnQge0VmZmVjdH0gZnJvbSAnQGtlcGxlci5nbC90eXBlcyc7XG5pbXBvcnQge1Zpc1N0YXRlfSBmcm9tICdAa2VwbGVyLmdsL3NjaGVtYXMnO1xuXG5pbXBvcnQgS2VwbGVyR2xDb250ZXh0IGZyb20gJy4uL2NvbnRleHQnO1xuaW1wb3J0IFNpZGVQYW5lbFRpdGxlRmFjdG9yeSBmcm9tICcuL3NpZGUtcGFuZWwtdGl0bGUnO1xuaW1wb3J0IEVmZmVjdExpc3RGYWN0b3J5IGZyb20gJy4vZWZmZWN0LWxpc3QnO1xuaW1wb3J0IEVmZmVjdFR5cGVTZWxlY3RvckZhY3RvcnksIHtFZmZlY3RUeXBlU2VsZWN0b3JQcm9wc30gZnJvbSAnLi9lZmZlY3QtdHlwZS1zZWxlY3Rvcic7XG5cbmV4cG9ydCB0eXBlIEVmZmVjdE1hbmFnZXJTdGF0ZSA9IHtcbiAgdmlzU3RhdGU6IFZpc1N0YXRlO1xuICB2aXNTdGF0ZUFjdGlvbnM6IHtcbiAgICBhZGRFZmZlY3Q6IEFjdGlvbkhhbmRsZXI8dHlwZW9mIGFkZEVmZmVjdD47XG4gICAgdXBkYXRlRWZmZWN0OiBBY3Rpb25IYW5kbGVyPHR5cGVvZiB1cGRhdGVFZmZlY3Q+O1xuICAgIHJlbW92ZUVmZmVjdDogQWN0aW9uSGFuZGxlcjx0eXBlb2YgcmVtb3ZlRWZmZWN0PjtcbiAgICByZW9yZGVyRWZmZWN0OiBBY3Rpb25IYW5kbGVyPHR5cGVvZiByZW9yZGVyRWZmZWN0PjtcbiAgfTtcbiAgZWZmZWN0czogRWZmZWN0W107XG4gIGVmZmVjdE9yZGVyOiBzdHJpbmdbXTtcbiAgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZTtcbn07XG5leHBvcnQgdHlwZSBFZmZlY3RNYW5hZ2VyUHJvcHMgPSBFZmZlY3RNYW5hZ2VyV2l0aEludGxQcm9wICYgUGFydGlhbDxFZmZlY3RNYW5hZ2VyU3RhdGU+O1xuXG5leHBvcnQgdHlwZSBFZmZlY3RNYW5hZ2VyV2l0aEludGxQcm9wID0ge2ludGw6IEludGxTaGFwZX07XG5cbmNvbnN0IFN0eWxlZEVmZmVjdFBhbmVsQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmUgIWltcG9ydGFudDsgLyogcHJldmVudCBwYWRkaW5nIGZyb20gYmxvY2tpbmcgaW5wdXQgKi9cbiAgZmxleC1ncm93OiAxO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgJiA+ICoge1xuICAgIC8qIGFsbCBjaGlsZHJlbiBzaG91bGQgYWxsb3cgaW5wdXQgKi9cbiAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuICB9XG5gO1xuXG4vLyB0b3AgcmlnaHQgcG9zaXRpb24gYWJzb2x1dGVcbmNvbnN0IFN0eWxlZEVmZmVjdFBhbmVsID0gc3R5bGVkLmRpdmBcbiAgdG9wOiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnNpZGVQYW5lbEJnfTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZmxleC1ncm93OiAxO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuYDtcblxuY29uc3QgU3R5bGVkRWZmZWN0UGFuZWxIZWFkZXIgPSBzdHlsZWQuZGl2YFxuICBwYWRkaW5nOiAkeyh7dGhlbWV9KSA9PlxuICAgIGAke3RoZW1lLmVmZmVjdFBhbmVsUGFkZGluZ1RvcH1weCAke3RoZW1lLmVmZmVjdFBhbmVsUGFkZGluZ1NpZGV9cHggNHB4ICR7dGhlbWUuZWZmZWN0UGFuZWxQYWRkaW5nU2lkZX1weGB9O1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5ib3JkZXJDb2xvcn07XG4gIG1pbi13aWR0aDogJHsoe3RoZW1lfSkgPT4gdGhlbWUuZWZmZWN0UGFuZWxXaWR0aH1weDtcbmA7XG5cbnR5cGUgU3R5bGVkRWZmZWN0UGFuZWxDb250ZW50UHJvcHMgPSB7XG4gICRleHRlbmRlZD86IGJvb2xlYW47XG59O1xuY29uc3QgU3R5bGVkRWZmZWN0UGFuZWxDb250ZW50ID0gc3R5bGVkLmRpdjxTdHlsZWRFZmZlY3RQYW5lbENvbnRlbnRQcm9wcz5gXG4gICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuc2lkZVBhbmVsU2Nyb2xsQmFyfTtcbiAgcGFkZGluZzogJHtwcm9wcyA9PiAocHJvcHMuJGV4dGVuZGVkID8gJzMycHgnIDogJzEwcHggMHB4IDEwcHggMHB4Jyl9O1xuICBvdmVyZmxvdzogb3ZlcmxheTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbmA7XG5cbkVmZmVjdE1hbmFnZXJGYWN0b3J5LmRlcHMgPSBbRWZmZWN0TGlzdEZhY3RvcnksIFNpZGVQYW5lbFRpdGxlRmFjdG9yeSwgRWZmZWN0VHlwZVNlbGVjdG9yRmFjdG9yeV07XG5cbmZ1bmN0aW9uIEVmZmVjdE1hbmFnZXJGYWN0b3J5KFxuICBFZmZlY3RMaXN0OiBSZXR1cm5UeXBlPHR5cGVvZiBFZmZlY3RMaXN0RmFjdG9yeT4sXG4gIFNpZGVQYW5lbFRpdGxlOiBSZXR1cm5UeXBlPHR5cGVvZiBTaWRlUGFuZWxUaXRsZUZhY3Rvcnk+LFxuICBFZmZlY3RUeXBlU2VsZWN0b3I6IFJldHVyblR5cGU8dHlwZW9mIEVmZmVjdFR5cGVTZWxlY3RvckZhY3Rvcnk+XG4pOiBSZWFjdC5GQzxFZmZlY3RNYW5hZ2VyUHJvcHM+IHtcbiAgY29uc3QgRWZmZWN0TWFuYWdlciA9IChwcm9wczogRWZmZWN0TWFuYWdlcldpdGhJbnRsUHJvcCAmIFBhcnRpYWw8RWZmZWN0TWFuYWdlclN0YXRlPikgPT4ge1xuICAgIGNvbnN0IHtpbnRsLCBjaGlsZHJlbn0gPSBwcm9wcztcbiAgICBjb25zdCBkaXNwYXRjaCA9IHVzZURpc3BhdGNoKCk7XG4gICAgY29uc3Qge3NlbGVjdG9yfSA9IHVzZUNvbnRleHQoS2VwbGVyR2xDb250ZXh0KTtcbiAgICBjb25zdCB2aXNTdGF0ZUZyb21TdG9yZSA9IHVzZVNlbGVjdG9yKHN0YXRlID0+IHNlbGVjdG9yKHN0YXRlKT8udmlzU3RhdGUpO1xuICAgIGNvbnN0IHZpc1N0YXRlID0gcHJvcHMudmlzU3RhdGUgPz8gdmlzU3RhdGVGcm9tU3RvcmU7XG4gICAgY29uc3QgdmlzU3RhdGVBY3Rpb25zID0gdXNlTWVtbyhcbiAgICAgICgpID0+XG4gICAgICAgIHByb3BzLnZpc1N0YXRlQWN0aW9ucyA/PyB7XG4gICAgICAgICAgYWRkRWZmZWN0OiBwYXlsb2FkID0+IGRpc3BhdGNoKGFkZEVmZmVjdChwYXlsb2FkKSksXG4gICAgICAgICAgdXBkYXRlRWZmZWN0OiAoaWQsIG5leHQpID0+IGRpc3BhdGNoKHVwZGF0ZUVmZmVjdChpZCwgbmV4dCkpLFxuICAgICAgICAgIHJlbW92ZUVmZmVjdDogaWQgPT4gZGlzcGF0Y2gocmVtb3ZlRWZmZWN0KGlkKSksXG4gICAgICAgICAgcmVvcmRlckVmZmVjdDogb3JkZXIgPT4gZGlzcGF0Y2gocmVvcmRlckVmZmVjdChvcmRlcikpXG4gICAgICAgIH0sXG4gICAgICBbZGlzcGF0Y2gsIHByb3BzLnZpc1N0YXRlQWN0aW9uc11cbiAgICApO1xuXG4gICAgY29uc3QgZWZmZWN0cyA9IHZpc1N0YXRlPy5lZmZlY3RzID8/IFtdO1xuICAgIGNvbnN0IGVmZmVjdE9yZGVyID0gdmlzU3RhdGU/LmVmZmVjdE9yZGVyID8/IFtdO1xuICAgIGNvbnN0IHthZGRFZmZlY3Q6IHZpc1N0YXRlQWRkRWZmZWN0fSA9IHZpc1N0YXRlQWN0aW9ucztcbiAgICBjb25zdCBbdHlwZVNlbGVjdG9yT3BlbmVkLCBzZXRUeXBlU2VsZWN0b3JPcGVuZWRdID0gdXNlU3RhdGUoZmFsc2UpO1xuXG4gICAgLy8gUHJldmVudCBzaGFkb3cgZWZmZWN0IGZyb20gYmVpbmcgYWRkZWQgbXVsdGlwbGUgdGltZXNcbiAgICBjb25zdCBlZmZlY3RPcHRpb25zOiBFZmZlY3RUeXBlU2VsZWN0b3JQcm9wc1snb3B0aW9ucyddID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBjb25zdCBoYXNTaGFkb3cgPSBlZmZlY3RzLnNvbWUoZWZmZWN0ID0+IHtcbiAgICAgICAgcmV0dXJuIGVmZmVjdC50eXBlID09PSBMSUdIVF9BTkRfU0hBRE9XX0VGRkVDVC50eXBlO1xuICAgICAgfSk7XG4gICAgICBjb25zdCBoYXNEaXN0YW5jZUZvZyA9IGVmZmVjdHMuc29tZShlZmZlY3QgPT4ge1xuICAgICAgICByZXR1cm4gZWZmZWN0LnR5cGUgPT09IERJU1RBTkNFX0ZPR19UWVBFO1xuICAgICAgfSk7XG4gICAgICBjb25zdCBoYXNTdXJmYWNlRm9nID0gZWZmZWN0cy5zb21lKGVmZmVjdCA9PiB7XG4gICAgICAgIHJldHVybiBlZmZlY3QudHlwZSA9PT0gU1VSRkFDRV9GT0dfVFlQRTtcbiAgICAgIH0pO1xuICAgICAgY29uc3QgaGFzQW55Rm9nID0gaGFzRGlzdGFuY2VGb2cgfHwgaGFzU3VyZmFjZUZvZztcblxuICAgICAgcmV0dXJuIEVGRkVDVF9ERVNDUklQVElPTlMubWFwKGRlc2MgPT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIC4uLmRlc2MsXG4gICAgICAgICAgZGlzYWJsZWQ6IEJvb2xlYW4oXG4gICAgICAgICAgICAoaGFzU2hhZG93ICYmIGRlc2MudHlwZSA9PT0gTElHSFRfQU5EX1NIQURPV19FRkZFQ1QudHlwZSkgfHxcbiAgICAgICAgICAgICAgKGhhc0FueUZvZyAmJiAoZGVzYy50eXBlID09PSBESVNUQU5DRV9GT0dfVFlQRSB8fCBkZXNjLnR5cGUgPT09IFNVUkZBQ0VfRk9HX1RZUEUpKVxuICAgICAgICAgIClcbiAgICAgICAgfTtcbiAgICAgIH0pO1xuICAgIH0sIFtlZmZlY3RzXSk7XG5cbiAgICBjb25zdCBvbkFkZEVmZmVjdCA9IHVzZUNhbGxiYWNrKFxuICAgICAgdHlwZSA9PiB7XG4gICAgICAgIHZpc1N0YXRlQWRkRWZmZWN0KHt0eXBlfSk7XG4gICAgICB9LFxuICAgICAgW3Zpc1N0YXRlQWRkRWZmZWN0XVxuICAgICk7XG5cbiAgICBjb25zdCBvblR5cGVTZWxlY3RPcGVuID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgc2V0VHlwZVNlbGVjdG9yT3BlbmVkKHRydWUpO1xuICAgIH0sIFtdKTtcblxuICAgIGNvbnN0IG9uVHlwZVNlbGVjdENsb3NlID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgc2V0VHlwZVNlbGVjdG9yT3BlbmVkKGZhbHNlKTtcbiAgICB9LCBbXSk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPFN0eWxlZEVmZmVjdFBhbmVsQ29udGFpbmVyIGNsYXNzTmFtZT1cImVmZmVjdC1tYW5hZ2VyXCI+XG4gICAgICAgIDxTdHlsZWRFZmZlY3RQYW5lbD5cbiAgICAgICAgICA8U3R5bGVkRWZmZWN0UGFuZWxIZWFkZXIgY2xhc3NOYW1lPVwiZWZmZWN0LXBhbmVsLWhlYWRlclwiPlxuICAgICAgICAgICAgPFNpZGVQYW5lbFRpdGxlXG4gICAgICAgICAgICAgIGNsYXNzTmFtZT1cImVmZmVjdC1tYW5hZ2VyLXRpdGxlXCJcbiAgICAgICAgICAgICAgdGl0bGU9e2ludGwuZm9ybWF0TWVzc2FnZSh7aWQ6ICdlZmZlY3RNYW5hZ2VyLmVmZmVjdHMnfSl9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxFZmZlY3RUeXBlU2VsZWN0b3JcbiAgICAgICAgICAgICAgICBvcHRpb25zPXtlZmZlY3RPcHRpb25zfVxuICAgICAgICAgICAgICAgIG9uU2VsZWN0PXtvbkFkZEVmZmVjdH1cbiAgICAgICAgICAgICAgICBvbk9wZW49e29uVHlwZVNlbGVjdE9wZW59XG4gICAgICAgICAgICAgICAgb25CbHVyPXtvblR5cGVTZWxlY3RDbG9zZX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvU2lkZVBhbmVsVGl0bGU+XG4gICAgICAgICAgPC9TdHlsZWRFZmZlY3RQYW5lbEhlYWRlcj5cblxuICAgICAgICAgIDxTdHlsZWRFZmZlY3RQYW5lbENvbnRlbnQgJGV4dGVuZGVkPXt0eXBlU2VsZWN0b3JPcGVuZWQgJiYgZWZmZWN0cy5sZW5ndGggPT09IDB9PlxuICAgICAgICAgICAgPEVmZmVjdExpc3RcbiAgICAgICAgICAgICAgZWZmZWN0cz17ZWZmZWN0c31cbiAgICAgICAgICAgICAgZWZmZWN0T3JkZXI9e2VmZmVjdE9yZGVyfVxuICAgICAgICAgICAgICB2aXNTdGF0ZUFjdGlvbnM9e3Zpc1N0YXRlQWN0aW9uc31cbiAgICAgICAgICAgICAgaXNTb3J0YWJsZT17dHJ1ZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9TdHlsZWRFZmZlY3RQYW5lbENvbnRlbnQ+XG4gICAgICAgIDwvU3R5bGVkRWZmZWN0UGFuZWw+XG4gICAgICAgIHtjaGlsZHJlbn1cbiAgICAgIDwvU3R5bGVkRWZmZWN0UGFuZWxDb250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICByZXR1cm4gaW5qZWN0SW50bChFZmZlY3RNYW5hZ2VyKSBhcyBSZWFjdC5GQzxFZmZlY3RNYW5hZ2VyUHJvcHM+O1xufVxuXG5leHBvcnQgZGVmYXVsdCBFZmZlY3RNYW5hZ2VyRmFjdG9yeTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7QUFDQTs7QUFFQSxPQUFPQSxLQUFLLElBQUdDLE9BQU8sRUFB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