@kaspernj/api-maker 1.0.2050 → 1.0.2051

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 (40) hide show
  1. package/build/bootstrap/attribute-row.js +4 -4
  2. package/build/bootstrap/card.js +5 -5
  3. package/build/bootstrap/checkbox.js +4 -4
  4. package/build/bootstrap/input.js +9 -9
  5. package/build/bootstrap/select.js +5 -5
  6. package/build/bootstrap/sort-link.js +2 -2
  7. package/build/form.js +2 -2
  8. package/build/inputs/checkbox.js +2 -2
  9. package/build/inputs/checkboxes.js +2 -2
  10. package/build/inputs/money.js +3 -3
  11. package/build/inputs/select.js +3 -3
  12. package/build/router/route.js +2 -2
  13. package/build/router/switch.js +2 -2
  14. package/build/super-admin/layout/header/index.js +2 -2
  15. package/build/super-admin/layout/index.js +3 -3
  16. package/build/super-admin/layout/menu/menu-item.js +2 -2
  17. package/build/table/table.js +2 -2
  18. package/build/utils/button.js +2 -2
  19. package/build/utils/card.js +3 -3
  20. package/link.sh +8 -0
  21. package/package.json +1 -1
  22. package/src/bootstrap/attribute-row.jsx +3 -3
  23. package/src/bootstrap/card.jsx +4 -4
  24. package/src/bootstrap/checkbox.jsx +3 -3
  25. package/src/bootstrap/input.jsx +8 -8
  26. package/src/bootstrap/select.jsx +4 -4
  27. package/src/bootstrap/sort-link.jsx +1 -1
  28. package/src/form.jsx +1 -1
  29. package/src/inputs/checkbox.jsx +1 -1
  30. package/src/inputs/checkboxes.jsx +1 -1
  31. package/src/inputs/money.jsx +2 -2
  32. package/src/inputs/select.jsx +2 -2
  33. package/src/router/route.jsx +1 -1
  34. package/src/router/switch.jsx +1 -1
  35. package/src/super-admin/layout/header/index.jsx +1 -1
  36. package/src/super-admin/layout/index.jsx +2 -2
  37. package/src/super-admin/layout/menu/menu-item.jsx +1 -1
  38. package/src/table/table.jsx +1 -1
  39. package/src/utils/button.jsx +1 -1
  40. package/src/utils/card.jsx +2 -2
@@ -139,7 +139,7 @@ export default memo(shapeComponent(class ApiMakerTable extends BaseComponent {
139
139
  editModelPath: PropTypes.func,
140
140
  filterCard: PropTypes.bool.isRequired,
141
141
  filterContent: PropTypes.func,
142
- filterSubmitLabel: PropTypes.node,
142
+ filterSubmitLabel: PropTypes.any,
143
143
  groupBy: PropTypes.array,
144
144
  header: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),
145
145
  identifier: PropTypes.string,
@@ -970,4 +970,4 @@ export default memo(shapeComponent(class ApiMakerTable extends BaseComponent {
970
970
  };
971
971
  submitFilterDebounce = debounce(this.tt.submitFilter);
972
972
  }));
973
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJkaWdnIiwiZGlncyIsIlJlYWN0IiwiY3JlYXRlQ29udGV4dCIsInVzZUNvbnRleHQiLCJ1c2VNZW1vIiwidXNlUmVmIiwiQW5pbWF0ZWQiLCJQbGF0Zm9ybSIsIlByZXNzYWJsZSIsIlZpZXciLCJCYXNlQ29tcG9uZW50IiwiQ2FyZCIsImNsYXNzTmFtZXMiLCJDb2xsZWN0aW9uIiwiY29sdW1uVmlzaWJsZSIsImRlYm91bmNlIiwiRHJhZ2dhYmxlU29ydCIsIkV2ZW50RW1pdHRlciIsIkZpbHRlcnMiLCJGbGF0TGlzdCIsIkZvcm0iLCJIZWFkZXIiLCJIZWFkZXJDb2x1bW4iLCJIZWFkZXJTZWxlY3QiLCJJY29uIiwiaW5jb3Jwb3JhdGUiLCJpbmZsZWN0aW9uIiwibWVtbyIsIm1vZGVsQ2xhc3NSZXF1aXJlIiwiTW9kZWxSb3ciLCJQYWdpbmF0ZSIsIlBhcmFtcyIsIlByb3BUeXBlcyIsIlJvdyIsInNlbGVjdENhbGN1bGF0b3IiLCJTZWxlY3QiLCJTZXR0aW5ncyIsInNoYXBlQ29tcG9uZW50IiwiVGFibGVTZXR0aW5ncyIsIlRleHQiLCJ1bmlxdW5pemUiLCJ1c2VCcmVha3BvaW50IiwidXNlQ29sbGVjdGlvbiIsInVzZUkxOG4iLCJ1c2VFdmVudEVtaXR0ZXIiLCJ1c2VNb2RlbEV2ZW50IiwidXNlUXVlcnlQYXJhbXMiLCJXaWR0aHMiLCJwYWdpbmF0aW9uT3B0aW9ucyIsIldvcmtlclBsdWdpbnNDaGVja0FsbENoZWNrYm94IiwibGF6eSIsIlRhYmxlQ29udGV4dCIsIkxpc3RIZWFkZXJDb21wb25lbnQiLCJzZXR1cCIsInVzZVN0YXRlcyIsImxhc3RVcGRhdGUiLCJEYXRlIiwicmVuZGVyIiwibWRVcCIsInRhYmxlQ29udGV4dFZhbHVlIiwidGFibGUiLCJjb2xsZWN0aW9uIiwiZXZlbnRzIiwicXVlcnlXaXRob3V0UGFnaW5hdGlvbiIsInQiLCJ0dCIsInF1ZXJ5Iiwib25Db2x1bW5WaXNpYmlsaXR5VXBkYXRlZCIsImNyZWF0ZUVsZW1lbnQiLCJkYXRhU2V0IiwiY2xhc3MiLCJzdHlsZSIsInN0eWxlRm9yUm93SGVhZGVyIiwicCIsIndvcmtwbGFjZSIsInMiLCJjdXJyZW50V29ya3BsYWNlIiwic3R5bGVGb3JIZWFkZXIiLCJ3aWR0aCIsInVuZGVmaW5lZCIsIndvcmtlclBsZ3VpbnNDaGVja0FsbENoZWNrYm94U3R5bGUiLCJtYXJnaW5Ib3Jpem9udGFsIiwic2VsZWN0QWxsRm91bmRUZXh0U3R5bGUiLCJtYXJnaW5MZWZ0IiwiZGVmYXVsdFZhbHVlIiwicHJlcGFyZWRDb2x1bW5zIiwiRnJhZ21lbnQiLCJoZWFkZXJzQ29udGVudEZyb21Db2x1bW5zIiwidHlwZSIsInNldFN0YXRlIiwiQXBpTWFrZXJUYWJsZSIsImRlZmF1bHRQcm9wcyIsImNhcmQiLCJjdXJyZW50VXNlciIsImRlc3Ryb3lFbmFibGVkIiwiZmlsdGVyQ2FyZCIsImZpbHRlclN1Ym1pdEJ1dHRvbiIsIm5vUmVjb3Jkc0F2YWlsYWJsZUNvbnRlbnQiLCJub1JlY29yZHNGb3VuZENvbnRlbnQiLCJwcmVsb2FkcyIsInNlbGVjdCIsInN0eWxlVUkiLCJwcm9wVHlwZXMiLCJhYmlsaXRpZXMiLCJvYmplY3QiLCJhY3Rpb25zQ29udGVudCIsImZ1bmMiLCJhcHBIaXN0b3J5IiwiYm9vbCIsImlzUmVxdWlyZWQiLCJjbGFzc05hbWUiLCJzdHJpbmciLCJpbnN0YW5jZU9mIiwiY29sdW1ucyIsIm9uZU9mVHlwZSIsImFycmF5IiwiY29udHJvbHMiLCJkZWZhdWx0RGF0ZUZvcm1hdE5hbWUiLCJkZWZhdWx0RGF0ZVRpbWVGb3JtYXROYW1lIiwiZGVmYXVsdFBhcmFtcyIsImRlc3Ryb3lNZXNzYWdlIiwiZWRpdE1vZGVsUGF0aCIsImZpbHRlckNvbnRlbnQiLCJmaWx0ZXJTdWJtaXRMYWJlbCIsIm5vZGUiLCJncm91cEJ5IiwiaGVhZGVyIiwiaWRlbnRpZmllciIsIm1vZGVsQ2xhc3MiLCJvbk1vZGVsc0xvYWRlZCIsInBhZ2luYXRlQ29udGVudCIsInBhZ2luYXRpb25Db21wb25lbnQiLCJxdWVyeU1ldGhvZCIsInF1ZXJ5TmFtZSIsInNlbGVjdENvbHVtbnMiLCJzdHlsZXMiLCJ2aWV3TW9kZWxQYXRoIiwiZHJhZ2dhYmxlU29ydEV2ZW50cyIsInRhYmxlU2V0dGluZ3MiLCJuYW1lc3BhY2UiLCJuYW1lIiwiYnJlYWtwb2ludCIsInF1ZXJ5UGFyYW1zIiwic2V0SW5zdGFuY2UiLCJmaWx0ZXJGb3JtUmVmIiwiY29sbGVjdGlvbktleSIsIm1vZGVsQ2xhc3NEYXRhIiwicHJvcHMiLCJxdWVyeVNOYW1lIiwiY29sdW1uc0FzQXJyYXkiLCJjdXJyZW50V29ya3BsYWNlQ291bnQiLCJmaWx0ZXJGb3JtIiwiY29sdW1uc1RvU2hvdyIsImRyYWdnZWRDb2x1bW4iLCJwcmVsb2FkIiwicXVlcnlRTmFtZSIsInF1ZXJ5UGFnZU5hbWUiLCJyZXNpemluZyIsInNob3dGaWx0ZXJzIiwiQm9vbGVhbiIsInNob3dTZXR0aW5ncyIsInRhYmxlU2V0dGluZyIsInRhYmxlU2V0dGluZ0xvYWRlZCIsInRhYmxlU2V0dGluZ0Z1bGxDYWNoZUtleSIsIndpZHRocyIsImNhY2hlS2V5IiwibG9hZEN1cnJlbnRXb3JrcGxhY2UiLCJ0aGVuIiwibG9hZEN1cnJlbnRXb3JrcGxhY2VDb3VudCIsImlkIiwibG9hZFRhYmxlU2V0dGluZyIsIm9uTGlua3NDcmVhdGVkIiwib25MaW5rc0Rlc3Ryb3llZCIsImNvbGxlY3Rpb25SZWFkeSIsImFiaWxpdGllc1RvTG9hZCIsImlmQ29uZGl0aW9uIiwicGFnaW5hdGlvbiIsInN0YXRlIiwiY2xvbmUiLCJleGNlcHQiLCJvbkRyYWdTdGFydCIsIm9uRHJhZ0VuZEFuaW1hdGlvbiIsImdldENvbHVtbnNUb1Nob3ciLCJpdGVtIiwiYW5pbWF0ZWRaSW5kZXgiLCJzZXRWYWx1ZSIsIldvcmtwbGFjZSIsInJlc3VsdCIsImN1cnJlbnQiLCJXb3JrcGxhY2VMaW5rIiwicmFuc2FjayIsInJlc291cmNlX3R5cGVfZXEiLCJ3b3JrcGxhY2VfaWRfZXEiLCJjb3VudCIsImZpbHRlciIsImNvbHVtbiIsInRhYmxlU2V0dGluZ0NvbHVtbiIsInNvcnQiLCJhIiwiYiIsInBvc2l0aW9uIiwibG9hZEV4aXN0aW5nT3JDcmVhdGVUYWJsZVNldHRpbmdzIiwibWVyZ2VkUHJlbG9hZHMiLCJmdWxsQ2FjaGVLZXkiLCJ1cGRhdGVTZXR0aW5nc0Z1bGxDYWNoZUtleSIsImNvbmNhdCIsIm1vZGVscyIsIm92ZXJhbGxDb3VudCIsInFQYXJhbXMiLCJzaG93Tm9SZWNvcmRzQXZhaWxhYmxlQ29udGVudCIsInNob3dOb1JlY29yZHNGb3VuZENvbnRlbnQiLCJhcmdzIiwiRXJyb3IiLCJvbkxheW91dCIsIm9uQ29udGFpbmVyTGF5b3V0IiwiY29udGFpbmVyIiwiY2FyZE9yVGFibGUiLCJvd25BYmlsaXRpZXMiLCJwdXNoIiwibGVuZ3RoIiwibW9kZWxDbGFzc05hbWUiLCJtb2RlbE5hbWUiLCJhYmlsaXR5IiwicmVzdFByb3BzIiwiaGVhZGVyQ29udGVudCIsIlBhZ2luYXRpb25Db21wb25lbnQiLCJodW1hbiIsImZsYXRMaXN0U3R5bGUiLCJvdmVyZmxvd1giLCJib3JkZXIiLCJib3JkZXJSYWRpdXMiLCJmbGF0TGlzdCIsIlByb3ZpZGVyIiwidmFsdWUiLCJfZXh0ZW5kcyIsImRhdGEiLCJleHRyYURhdGEiLCJrZXlFeHRyYWN0b3IiLCJrZXlFeHRyYXRvciIsInJlbmRlckl0ZW0iLCJzaG93c0hvcml6b250YWxTY3JvbGxJbmRpY2F0b3IiLCJ0YWJsZUNvbnRyb2xzIiwiZm9vdGVyIiwidGFibGVGb290ZXIiLCJlIiwibmF0aXZlRXZlbnQiLCJsYXlvdXQiLCJ0YWJsZVdpZHRoIiwiY3JlYXRlZCIsImFtb3VudENyZWF0ZWQiLCJwcmV2U3RhdGUiLCJkZXN0cm95ZWQiLCJhbW91bnREZXN0cm95ZWQiLCJtb2RlbCIsInN1Ym1pdEZpbHRlciIsInN1Ym1pdEZpbHRlckRlYm91bmNlIiwiZm9ybVJlZiIsIm9uU3VibWl0Iiwib25GaWx0ZXJGb3JtU3VibWl0Iiwic2V0Rm9ybSIsInNldFN0YXRlcyIsIm9uRmlsdGVyQ2hhbmdlZCIsIm9uRmlsdGVyQ2hhbmdlZFdpdGhEZWxheSIsIm1hcmdpblRvcCIsIm9uRmlsdGVyQ2xpY2tlZCIsInByZXZlbnREZWZhdWx0Iiwib25QZXJQYWdlQ2hhbmdlZCIsIm5ld1BlclBhZ2VWYWx1ZSIsInBlcktleSIsInBhcmFtc0NoYW5nZSIsImNoYW5nZVBhcmFtcyIsImluZGV4IiwiY29sdW1uV2lkdGhzIiwia2V5Iiwic3R5bGVGb3JDb2x1bW4iLCJjb2x1bW5JbmRleCIsImV2ZW4iLCJkZWZhdWx0U3R5bGUiLCJqdXN0aWZ5Q29udGVudCIsInBhZGRpbmciLCJvdmVyZmxvdyIsIk9iamVjdCIsImFzc2lnbiIsImJhY2tncm91bmRDb2xvciIsImZsZXhEaXJlY3Rpb24iLCJhbGlnbkl0ZW1zIiwibWFyZ2luUmlnaHQiLCJib3JkZXJSaWdodCIsImFjdHVhbFN0eWxlIiwic3R5bGVGb3JIZWFkZXJUZXh0IiwiZm9udFdlaWdodCIsInN0eWxlRm9yUm93IiwiZmxleCIsInJvb3RWaWV3U3R5bGUiLCJvblByZXNzIiwic2l6ZSIsIm9uUmVxdWVzdENsb3NlIiwib25SZXF1ZXN0Q2xvc2VTZXR0aW5ncyIsInNldHRpbmdzQnV0dG9uRGF0YVNldCIsIm9uU2V0dGluZ3NDbGlja2VkIiwiY3VycmVudFBhZ2UiLCJ0b3RhbENvdW50IiwicGVyUGFnZSIsInRvIiwiTWF0aCIsIm1pbiIsImZyb20iLCJzaG93aW5nQ291bnRzRGF0YVNldCIsInNob3dpbmdDb3VudHNTdHlsZSIsInRvdGFsX2NvdW50IiwieFNlbGVjdGVkVGV4dFN0eWxlIiwic2VsZWN0ZWQiLCJvbkNoYW5nZSIsIm9wdGlvbnMiLCJqb2luIiwiY29sdW1uUHJvcHMiLCJ0ZXh0Q2VudGVyIiwidGV4dEFsaWduIiwidGV4dFJpZ2h0IiwiaGVhZGVyUHJvcHMiLCJob3Jpem9udGFsIiwiZHJhZ0xpc3RrZXlFeHRyYWN0b3IiLCJvbkl0ZW1Nb3ZlZCIsIm9uUmVvcmRlcmVkIiwiZHJhZ0xpc3RSZW5kZXJJdGVtQ29udGVudCIsImRyYWdMaXN0Q2FjaGVLZXlFeHRyYWN0b3IiLCJhbmltYXRpb25BcmdzIiwiaXRlbUluZGV4IiwieCIsInkiLCJhbmltYXRlZFBvc2l0aW9uIiwidGltaW5nIiwic3RhcnQiLCJmcm9tSXRlbSIsImZyb21Qb3NpdGlvbiIsInRvSXRlbSIsInRvUG9zaXRpb24iLCJUYWJsZVNldHRpbmdDb2x1bW4iLCJjb25zdHJ1Y3RvciIsInRvQ29sdW1uIiwiZmluZCIsInVwZGF0ZSIsImlzQWN0aXZlIiwidG91Y2hQcm9wcyIsImFuaW1hdGVkV2lkdGgiLCJhY3RpdmUiLCJoZWFkZXJDbGFzc05hbWVGb3JDb2x1bW4iLCJjb21tb25Qcm9wcyIsImhlYWRlckxhYmVsRm9yQ29sdW1uIiwibGFiZWwiLCJjdXJyZW50TW9kZWxDbGFzcyIsInBhdGgiLCJwYXRoUGFydCIsInJlbGF0aW9uc2hpcHMiLCJyZWxhdGlvbnNoaXAiLCJyZWxhdGlvbnNoaXBJbkFycmF5IiwidW5kZXJzY29yZSIsImF0dHJpYnV0ZSIsImh1bWFuQXR0cmlidXRlTmFtZSIsImNoYW5nZVBhcmFtc1BhcmFtcyIsImFzT2JqZWN0IiwiT1MiLCJuYXZ0aXZlRm9ybVBhcmFtcyIsInNlcmlhbGl6ZUZvcm0iLCJKU09OIiwic3RyaW5naWZ5Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3RhYmxlL3RhYmxlLmpzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2RpZ2csIGRpZ3N9IGZyb20gXCJkaWdnZXJpemVcIlxuaW1wb3J0IFJlYWN0LCB7Y3JlYXRlQ29udGV4dCwgdXNlQ29udGV4dCwgdXNlTWVtbywgdXNlUmVmfSBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IHtBbmltYXRlZCwgUGxhdGZvcm0sIFByZXNzYWJsZSwgVmlld30gZnJvbSBcInJlYWN0LW5hdGl2ZVwiXG5pbXBvcnQgQmFzZUNvbXBvbmVudCBmcm9tIFwiLi4vYmFzZS1jb21wb25lbnRcIlxuaW1wb3J0IENhcmQgZnJvbSBcIi4uL2Jvb3RzdHJhcC9jYXJkXCJcbmltcG9ydCBjbGFzc05hbWVzIGZyb20gXCJjbGFzc25hbWVzXCJcbmltcG9ydCBDb2xsZWN0aW9uIGZyb20gXCIuLi9jb2xsZWN0aW9uXCJcbmltcG9ydCBjb2x1bW5WaXNpYmxlIGZyb20gXCIuL2NvbHVtbi12aXNpYmxlXCJcbmltcG9ydCBkZWJvdW5jZSBmcm9tIFwiZGVib3VuY2VcIlxuaW1wb3J0IERyYWdnYWJsZVNvcnQgZnJvbSBcIi4uL2RyYWdnYWJsZS1zb3J0L2luZGV4XCJcbmltcG9ydCBFdmVudEVtaXR0ZXIgZnJvbSBcImV2ZW50c1wiXG5pbXBvcnQgRmlsdGVycyBmcm9tIFwiLi9maWx0ZXJzXCJcbmltcG9ydCBGbGF0TGlzdCBmcm9tIFwiLi9jb21wb25lbnRzL2ZsYXQtbGlzdFwiXG5pbXBvcnQge0Zvcm19IGZyb20gXCIuLi9mb3JtXCJcbmltcG9ydCBIZWFkZXIgZnJvbSBcIi4vY29tcG9uZW50cy9oZWFkZXJcIlxuaW1wb3J0IEhlYWRlckNvbHVtbiBmcm9tIFwiLi9oZWFkZXItY29sdW1uXCJcbmltcG9ydCBIZWFkZXJTZWxlY3QgZnJvbSBcIi4vaGVhZGVyLXNlbGVjdFwiXG5pbXBvcnQgSWNvbiBmcm9tIFwiLi4vdXRpbHMvaWNvblwiXG5pbXBvcnQge2luY29ycG9yYXRlfSBmcm9tIFwiaW5jb3Jwb3JhdG9yXCJcbmltcG9ydCAqIGFzIGluZmxlY3Rpb24gZnJvbSBcImluZmxlY3Rpb25cIlxuaW1wb3J0IG1lbW8gZnJvbSBcInNldC1zdGF0ZS1jb21wYXJlL3NyYy9tZW1vXCJcbmltcG9ydCBtb2RlbENsYXNzUmVxdWlyZSBmcm9tIFwiLi4vbW9kZWwtY2xhc3MtcmVxdWlyZVwiXG5pbXBvcnQgTW9kZWxSb3cgZnJvbSBcIi4vbW9kZWwtcm93XCJcbmltcG9ydCBQYWdpbmF0ZSBmcm9tIFwiLi4vYm9vdHN0cmFwL3BhZ2luYXRlXCJcbmltcG9ydCBQYXJhbXMgZnJvbSBcIi4uL3BhcmFtc1wiXG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCJcbmltcG9ydCBSb3cgZnJvbSBcIi4vY29tcG9uZW50cy9yb3dcIlxuaW1wb3J0IHNlbGVjdENhbGN1bGF0b3IgZnJvbSBcIi4vc2VsZWN0LWNhbGN1bGF0b3JcIlxuaW1wb3J0IFNlbGVjdCBmcm9tIFwiLi4vaW5wdXRzL3NlbGVjdFwiXG5pbXBvcnQgU2V0dGluZ3MgZnJvbSBcIi4vc2V0dGluZ3MvaW5kZXhcIlxuaW1wb3J0IHtzaGFwZUNvbXBvbmVudH0gZnJvbSBcInNldC1zdGF0ZS1jb21wYXJlL3NyYy9zaGFwZS1jb21wb25lbnRcIlxuaW1wb3J0IFRhYmxlU2V0dGluZ3MgZnJvbSBcIi4vdGFibGUtc2V0dGluZ3NcIlxuaW1wb3J0IFRleHQgZnJvbSBcIi4uL3V0aWxzL3RleHRcIlxuaW1wb3J0IHVuaXF1bml6ZSBmcm9tIFwidW5pcXVuaXplXCJcbmltcG9ydCB1c2VCcmVha3BvaW50IGZyb20gXCIuLi91c2UtYnJlYWtwb2ludFwiXG5pbXBvcnQgdXNlQ29sbGVjdGlvbiBmcm9tIFwiLi4vdXNlLWNvbGxlY3Rpb25cIlxuaW1wb3J0IHVzZUkxOG4gZnJvbSBcImkxOG4tb24tc3Rlcm9pZHMvc3JjL3VzZS1pMThuXCJcbmltcG9ydCB1c2VFdmVudEVtaXR0ZXIgZnJvbSBcIi4uL3VzZS1ldmVudC1lbWl0dGVyXCJcbmltcG9ydCB1c2VNb2RlbEV2ZW50IGZyb20gXCIuLi91c2UtbW9kZWwtZXZlbnRcIlxuaW1wb3J0IHVzZVF1ZXJ5UGFyYW1zIGZyb20gXCJvbi1sb2NhdGlvbi1jaGFuZ2VkL2J1aWxkL3VzZS1xdWVyeS1wYXJhbXNcIlxuaW1wb3J0IFdpZHRocyBmcm9tIFwiLi93aWR0aHNcIlxuXG5jb25zdCBwYWdpbmF0aW9uT3B0aW9ucyA9IFszMCwgNjAsIDkwLCBbXCJBbGxcIiwgXCJhbGxcIl1dXG5jb25zdCBXb3JrZXJQbHVnaW5zQ2hlY2tBbGxDaGVja2JveCA9IFJlYWN0LmxhenkoKCkgPT4gaW1wb3J0KFwiLi93b3JrZXItcGx1Z2lucy1jaGVjay1hbGwtY2hlY2tib3hcIikpXG5jb25zdCBUYWJsZUNvbnRleHQgPSBjcmVhdGVDb250ZXh0KClcblxuY29uc3QgTGlzdEhlYWRlckNvbXBvbmVudCA9IG1lbW8oc2hhcGVDb21wb25lbnQoY2xhc3MgTGlzdEhlYWRlckNvbXBvbmVudCBleHRlbmRzIEJhc2VDb21wb25lbnQge1xuICBzZXR1cCgpIHtcbiAgICB0aGlzLnVzZVN0YXRlcyh7XG4gICAgICBsYXN0VXBkYXRlOiBuZXcgRGF0ZSgpXG4gICAgfSlcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7bWRVcH0gPSB1c2VCcmVha3BvaW50KClcbiAgICBjb25zdCB0YWJsZUNvbnRleHRWYWx1ZSA9IHVzZUNvbnRleHQoVGFibGVDb250ZXh0KVxuICAgIGNvbnN0IHRhYmxlID0gdGFibGVDb250ZXh0VmFsdWUudGFibGVcbiAgICBjb25zdCB7Y29sbGVjdGlvbiwgZXZlbnRzLCBxdWVyeVdpdGhvdXRQYWdpbmF0aW9uLCB0fSA9IHRhYmxlLnR0XG4gICAgY29uc3Qge3F1ZXJ5fSA9IGRpZ3MoY29sbGVjdGlvbiwgXCJxdWVyeVwiKVxuXG4gICAgdXNlRXZlbnRFbWl0dGVyKGV2ZW50cywgXCJjb2x1bW5WaXNpYmlsaXR5VXBkYXRlZFwiLCB0aGlzLnR0Lm9uQ29sdW1uVmlzaWJpbGl0eVVwZGF0ZWQpXG5cbiAgICByZXR1cm4gKFxuICAgICAgPFJvdyBkYXRhU2V0PXt7Y2xhc3M6IFwiYXBpLW1ha2VyL3RhYmxlL2hlYWRlci1yb3dcIn19IHN0eWxlPXt0YWJsZS5zdHlsZUZvclJvd0hlYWRlcigpfT5cbiAgICAgICAge3RhYmxlLnAud29ya3BsYWNlICYmIHRhYmxlLnMuY3VycmVudFdvcmtwbGFjZSAmJlxuICAgICAgICAgIDxIZWFkZXIgc3R5bGU9e3RhYmxlLnN0eWxlRm9ySGVhZGVyKHtzdHlsZToge3dpZHRoOiBtZFVwID8gNDEgOiB1bmRlZmluZWR9fSl9PlxuICAgICAgICAgICAgPFdvcmtlclBsdWdpbnNDaGVja0FsbENoZWNrYm94XG4gICAgICAgICAgICAgIGN1cnJlbnRXb3JrcGxhY2U9e3RhYmxlLnMuY3VycmVudFdvcmtwbGFjZX1cbiAgICAgICAgICAgICAgcXVlcnk9e3F1ZXJ5V2l0aG91dFBhZ2luYXRpb259XG4gICAgICAgICAgICAgIHN0eWxlPXt0aGlzLndvcmtlclBsZ3VpbnNDaGVja0FsbENoZWNrYm94U3R5bGUgfHw9IHttYXJnaW5Ib3Jpem9udGFsOiBcImF1dG9cIn19XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgeyFtZFVwICYmXG4gICAgICAgICAgICAgIDxUZXh0IHN0eWxlPXt0aGlzLnNlbGVjdEFsbEZvdW5kVGV4dFN0eWxlIHx8PSB7bWFyZ2luTGVmdDogM319PlxuICAgICAgICAgICAgICAgIHt0KFwiLnNlbGVjdF9hbGxfZm91bmRcIiwge2RlZmF1bHRWYWx1ZTogXCJTZWxlY3QgYWxsIGZvdW5kXCJ9KX1cbiAgICAgICAgICAgICAgPC9UZXh0PlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvSGVhZGVyPlxuICAgICAgICB9XG4gICAgICAgIHshbWRVcCAmJlxuICAgICAgICAgIDxIZWFkZXIgc3R5bGU9e3RhYmxlLnN0eWxlRm9ySGVhZGVyKHtzdHlsZToge319KX0+XG4gICAgICAgICAgICA8SGVhZGVyU2VsZWN0IHByZXBhcmVkQ29sdW1ucz17dGFibGUucy5wcmVwYXJlZENvbHVtbnN9IHF1ZXJ5PXtxdWVyeX0gdGFibGU9e3RhYmxlfSAvPlxuICAgICAgICAgIDwvSGVhZGVyPlxuICAgICAgICB9XG4gICAgICAgIHttZFVwICYmXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIHt0YWJsZS5oZWFkZXJzQ29udGVudEZyb21Db2x1bW5zKCl9XG4gICAgICAgICAgICA8SGVhZGVyIHN0eWxlPXt0YWJsZS5zdHlsZUZvckhlYWRlcih7c3R5bGU6IHt9LCB0eXBlOiBcImFjdGlvbnNcIn0pfSAvPlxuICAgICAgICAgIDwvPlxuICAgICAgICB9XG4gICAgICA8L1Jvdz5cbiAgICApXG4gIH1cblxuICBvbkNvbHVtblZpc2liaWxpdHlVcGRhdGVkID0gKCkgPT4gdGhpcy5zZXRTdGF0ZSh7bGFzdFVwZGF0ZTogbmV3IERhdGUoKX0pXG59KSlcblxuZXhwb3J0IGRlZmF1bHQgbWVtbyhzaGFwZUNvbXBvbmVudChjbGFzcyBBcGlNYWtlclRhYmxlIGV4dGVuZHMgQmFzZUNvbXBvbmVudCB7XG4gIHN0YXRpYyBkZWZhdWx0UHJvcHMgPSB7XG4gICAgY2FyZDogdHJ1ZSxcbiAgICBjdXJyZW50VXNlcjogbnVsbCxcbiAgICBkZXN0cm95RW5hYmxlZDogdHJ1ZSxcbiAgICBmaWx0ZXJDYXJkOiB0cnVlLFxuICAgIGZpbHRlclN1Ym1pdEJ1dHRvbjogdHJ1ZSxcbiAgICBub1JlY29yZHNBdmFpbGFibGVDb250ZW50OiB1bmRlZmluZWQsXG4gICAgbm9SZWNvcmRzRm91bmRDb250ZW50OiB1bmRlZmluZWQsXG4gICAgcHJlbG9hZHM6IFtdLFxuICAgIHNlbGVjdDoge30sXG4gICAgc3R5bGVVSTogdHJ1ZSxcbiAgICB3b3JrcGxhY2U6IGZhbHNlXG4gIH1cblxuICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgIGFiaWxpdGllczogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBhY3Rpb25zQ29udGVudDogUHJvcFR5cGVzLmZ1bmMsXG4gICAgYXBwSGlzdG9yeTogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBjYXJkOiBQcm9wVHlwZXMuYm9vbC5pc1JlcXVpcmVkLFxuICAgIGNsYXNzTmFtZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBjb2xsZWN0aW9uOiBQcm9wVHlwZXMuaW5zdGFuY2VPZihDb2xsZWN0aW9uKSxcbiAgICBjb2x1bW5zOiBQcm9wVHlwZXMub25lT2ZUeXBlKFtQcm9wVHlwZXMuYXJyYXksIFByb3BUeXBlcy5mdW5jXSksXG4gICAgY29udHJvbHM6IFByb3BUeXBlcy5mdW5jLFxuICAgIGN1cnJlbnRVc2VyOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIGRlZmF1bHREYXRlRm9ybWF0TmFtZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBkZWZhdWx0RGF0ZVRpbWVGb3JtYXROYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGRlZmF1bHRQYXJhbXM6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgZGVzdHJveUVuYWJsZWQ6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gICAgZGVzdHJveU1lc3NhZ2U6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgZWRpdE1vZGVsUGF0aDogUHJvcFR5cGVzLmZ1bmMsXG4gICAgZmlsdGVyQ2FyZDogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgICBmaWx0ZXJDb250ZW50OiBQcm9wVHlwZXMuZnVuYyxcbiAgICBmaWx0ZXJTdWJtaXRMYWJlbDogUHJvcFR5cGVzLm5vZGUsXG4gICAgZ3JvdXBCeTogUHJvcFR5cGVzLmFycmF5LFxuICAgIGhlYWRlcjogUHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLmZ1bmMsIFByb3BUeXBlcy5zdHJpbmddKSxcbiAgICBpZGVudGlmaWVyOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIG1vZGVsQ2xhc3M6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgbm9SZWNvcmRzQXZhaWxhYmxlQ29udGVudDogUHJvcFR5cGVzLmZ1bmMsXG4gICAgbm9SZWNvcmRzRm91bmRDb250ZW50OiBQcm9wVHlwZXMuZnVuYyxcbiAgICBvbk1vZGVsc0xvYWRlZDogUHJvcFR5cGVzLmZ1bmMsXG4gICAgcGFnaW5hdGVDb250ZW50OiBQcm9wVHlwZXMuZnVuYyxcbiAgICBwYWdpbmF0aW9uQ29tcG9uZW50OiBQcm9wVHlwZXMuZnVuYyxcbiAgICBwcmVsb2FkczogUHJvcFR5cGVzLmFycmF5LmlzUmVxdWlyZWQsXG4gICAgcXVlcnlNZXRob2Q6IFByb3BUeXBlcy5mdW5jLFxuICAgIHF1ZXJ5TmFtZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBzZWxlY3Q6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgc2VsZWN0Q29sdW1uczogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBzdHlsZXM6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgc3R5bGVVSTogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgICB2aWV3TW9kZWxQYXRoOiBQcm9wVHlwZXMuZnVuYyxcbiAgICB3b3JrcGxhY2U6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWRcbiAgfVxuXG4gIGRyYWdnYWJsZVNvcnRFdmVudHMgPSBuZXcgRXZlbnRFbWl0dGVyKClcbiAgZXZlbnRzID0gbmV3IEV2ZW50RW1pdHRlcigpXG4gIHRhYmxlU2V0dGluZ3MgPSBudWxsXG5cbiAgc2V0dXAoKSB7XG4gICAgY29uc3Qge3R9ID0gdXNlSTE4bih7bmFtZXNwYWNlOiBcImpzLmFwaV9tYWtlci50YWJsZVwifSlcbiAgICBjb25zdCB7bmFtZTogYnJlYWtwb2ludCwgbWRVcH0gPSB1c2VCcmVha3BvaW50KClcbiAgICBjb25zdCBxdWVyeVBhcmFtcyA9IHVzZVF1ZXJ5UGFyYW1zKClcblxuICAgIHRoaXMuc2V0SW5zdGFuY2Uoe1xuICAgICAgYnJlYWtwb2ludCxcbiAgICAgIGZpbHRlckZvcm1SZWY6IHVzZVJlZigpLFxuICAgICAgbWRVcCxcbiAgICAgIHRcbiAgICB9KVxuXG4gICAgY29uc3QgY29sbGVjdGlvbktleSA9IGRpZ2codGhpcy5wLm1vZGVsQ2xhc3MubW9kZWxDbGFzc0RhdGEoKSwgXCJjb2xsZWN0aW9uS2V5XCIpXG4gICAgbGV0IHF1ZXJ5TmFtZSA9IHRoaXMucHJvcHMucXVlcnlOYW1lXG5cbiAgICBpZiAoIXF1ZXJ5TmFtZSkgcXVlcnlOYW1lID0gY29sbGVjdGlvbktleVxuXG4gICAgY29uc3QgcXVlcnlTTmFtZSA9IGAke3F1ZXJ5TmFtZX1fc2BcblxuICAgIHRoaXMudXNlU3RhdGVzKHtcbiAgICAgIGNvbHVtbnM6ICgpID0+IHRoaXMuY29sdW1uc0FzQXJyYXkoKSxcbiAgICAgIGN1cnJlbnRXb3JrcGxhY2U6IHVuZGVmaW5lZCxcbiAgICAgIGN1cnJlbnRXb3JrcGxhY2VDb3VudDogbnVsbCxcbiAgICAgIGZpbHRlckZvcm06IG51bGwsXG4gICAgICBjb2x1bW5zVG9TaG93OiBudWxsLFxuICAgICAgZHJhZ2dlZENvbHVtbjogbnVsbCxcbiAgICAgIGlkZW50aWZpZXI6ICgpID0+IHRoaXMucHJvcHMuaWRlbnRpZmllciB8fCBgJHtjb2xsZWN0aW9uS2V5fS1kZWZhdWx0YCxcbiAgICAgIGxhc3RVcGRhdGU6ICgpID0+IG5ldyBEYXRlKCksXG4gICAgICBwcmVsb2FkOiB1bmRlZmluZWQsXG4gICAgICBwcmVwYXJlZENvbHVtbnM6IHVuZGVmaW5lZCxcbiAgICAgIHF1ZXJ5TmFtZSxcbiAgICAgIHF1ZXJ5UU5hbWU6ICgpID0+IGAke3F1ZXJ5TmFtZX1fcWAsXG4gICAgICBxdWVyeVBhZ2VOYW1lOiAoKSA9PiBgJHtxdWVyeU5hbWV9X3BhZ2VgLFxuICAgICAgcXVlcnlTTmFtZSxcbiAgICAgIHJlc2l6aW5nOiBmYWxzZSxcbiAgICAgIHNob3dGaWx0ZXJzOiAoKSA9PiBCb29sZWFuKHF1ZXJ5UGFyYW1zW3F1ZXJ5U05hbWVdKSxcbiAgICAgIHNob3dTZXR0aW5nczogZmFsc2UsXG4gICAgICB0YWJsZVNldHRpbmc6IHVuZGVmaW5lZCxcbiAgICAgIHRhYmxlU2V0dGluZ0xvYWRlZDogZmFsc2UsXG4gICAgICB0YWJsZVNldHRpbmdGdWxsQ2FjaGVLZXk6IHVuZGVmaW5lZCxcbiAgICAgIHdpZHRoOiB1bmRlZmluZWQsXG4gICAgICB3aWR0aHM6IG51bGxcbiAgICB9KVxuXG4gICAgdGhpcy50YWJsZUNvbnRleHRWYWx1ZSA9IHVzZU1lbW8oXG4gICAgICAoKSA9PiAoe1xuICAgICAgICBjYWNoZUtleTogdGhpcy5zLnRhYmxlU2V0dGluZ0Z1bGxDYWNoZUtleSxcbiAgICAgICAgbGFzdFVwZGF0ZTogdGhpcy5zLmxhc3RVcGRhdGUsXG4gICAgICAgIHJlc2l6aW5nOiB0aGlzLnMucmVzaXppbmcsXG4gICAgICAgIHRhYmxlOiB0aGlzXG4gICAgICB9KSxcbiAgICAgIFt0aGlzLnMubGFzdFVwZGF0ZSwgdGhpcy5zLnJlc2l6aW5nLCB0aGlzLnMudGFibGVTZXR0aW5nRnVsbENhY2hlS2V5XVxuICAgIClcblxuICAgIHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKHRoaXMucHJvcHMud29ya3BsYWNlKSB7XG4gICAgICAgIHRoaXMubG9hZEN1cnJlbnRXb3JrcGxhY2UoKS50aGVuKCgpID0+IHtcbiAgICAgICAgICB0aGlzLmxvYWRDdXJyZW50V29ya3BsYWNlQ291bnQoKVxuICAgICAgICB9KVxuICAgICAgfVxuICAgIH0sIFt0aGlzLnAuY3VycmVudFVzZXI/LmlkKCldKVxuXG4gICAgdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoIXRoaXMudHQudGFibGVTZXR0aW5ncyAmJiB0aGlzLnMud2lkdGgpIHtcbiAgICAgICAgdGhpcy5sb2FkVGFibGVTZXR0aW5nKClcbiAgICAgIH1cbiAgICB9LCBbdGhpcy5wLmN1cnJlbnRVc2VyPy5pZCgpLCB0aGlzLnMud2lkdGhdKVxuXG4gICAgdXNlTW9kZWxFdmVudCh0aGlzLnMuY3VycmVudFdvcmtwbGFjZSwgXCJ3b3JrcGxhY2VfbGlua3NfY3JlYXRlZFwiLCB0aGlzLnR0Lm9uTGlua3NDcmVhdGVkKVxuICAgIHVzZU1vZGVsRXZlbnQodGhpcy5zLmN1cnJlbnRXb3JrcGxhY2UsIFwid29ya3BsYWNlX2xpbmtzX2Rlc3Ryb3llZFwiLCB0aGlzLnR0Lm9uTGlua3NEZXN0cm95ZWQpXG5cbiAgICBsZXQgY29sbGVjdGlvblJlYWR5ID0gdHJ1ZVxuICAgIGxldCBzZWxlY3RcblxuICAgIGlmICghdGhpcy5zLnByZXBhcmVkQ29sdW1ucykge1xuICAgICAgY29sbGVjdGlvblJlYWR5ID0gZmFsc2VcbiAgICB9XG5cbiAgICBpZiAoY29sbGVjdGlvblJlYWR5KSB7XG4gICAgICBzZWxlY3QgPSBzZWxlY3RDYWxjdWxhdG9yKHt0YWJsZTogdGhpc30pXG4gICAgfVxuXG4gICAgdGhpcy5jb2xsZWN0aW9uID0gdXNlQ29sbGVjdGlvbih7XG4gICAgICBhYmlsaXRpZXM6IHRoaXMuYWJpbGl0aWVzVG9Mb2FkKCksXG4gICAgICBkZWZhdWx0UGFyYW1zOiB0aGlzLnByb3BzLmRlZmF1bHRQYXJhbXMsXG4gICAgICBjb2xsZWN0aW9uOiB0aGlzLnByb3BzLmNvbGxlY3Rpb24sXG4gICAgICBncm91cEJ5OiB0aGlzLnByb3BzLmdyb3VwQnksXG4gICAgICBpZkNvbmRpdGlvbjogY29sbGVjdGlvblJlYWR5LFxuICAgICAgbW9kZWxDbGFzczogdGhpcy5wcm9wcy5tb2RlbENsYXNzLFxuICAgICAgb25Nb2RlbHNMb2FkZWQ6IHRoaXMucHJvcHMub25Nb2RlbHNMb2FkZWQsXG4gICAgICBub1JlY29yZHNBdmFpbGFibGVDb250ZW50OiB0aGlzLnByb3BzLm5vUmVjb3Jkc0F2YWlsYWJsZUNvbnRlbnQsXG4gICAgICBub1JlY29yZHNGb3VuZENvbnRlbnQ6IHRoaXMucHJvcHMubm9SZWNvcmRzRm91bmRDb250ZW50LFxuICAgICAgcGFnaW5hdGlvbjogdHJ1ZSxcbiAgICAgIHByZWxvYWRzOiB0aGlzLnN0YXRlLnByZWxvYWQsXG4gICAgICBxdWVyeU1ldGhvZDogdGhpcy5wcm9wcy5xdWVyeU1ldGhvZCxcbiAgICAgIHF1ZXJ5TmFtZSxcbiAgICAgIHNlbGVjdCxcbiAgICAgIHNlbGVjdENvbHVtbnM6IHRoaXMucHJvcHMuc2VsZWN0Q29sdW1uc1xuICAgIH0pXG4gICAgdGhpcy5xdWVyeVdpdGhvdXRQYWdpbmF0aW9uID0gdXNlTWVtbyhcbiAgICAgICgpID0+IHRoaXMuY29sbGVjdGlvbj8ucXVlcnk/LmNsb25lKCk/LmV4Y2VwdChcInBhZ2VcIiksXG4gICAgICBbdGhpcy5jb2xsZWN0aW9uLnF1ZXJ5XVxuICAgIClcblxuICAgIHVzZUV2ZW50RW1pdHRlcih0aGlzLnR0LmRyYWdnYWJsZVNvcnRFdmVudHMsIFwib25EcmFnU3RhcnRcIiwgdGhpcy50dC5vbkRyYWdTdGFydClcbiAgICB1c2VFdmVudEVtaXR0ZXIodGhpcy50dC5kcmFnZ2FibGVTb3J0RXZlbnRzLCBcIm9uRHJhZ0VuZEFuaW1hdGlvblwiLCB0aGlzLnR0Lm9uRHJhZ0VuZEFuaW1hdGlvbilcbiAgICB1c2VFdmVudEVtaXR0ZXIodGhpcy50dC5ldmVudHMsIFwiY29sdW1uVmlzaWJpbGl0eVVwZGF0ZWRcIiwgdGhpcy50dC5vbkNvbHVtblZpc2liaWxpdHlVcGRhdGVkKVxuICB9XG5cbiAgb25Db2x1bW5WaXNpYmlsaXR5VXBkYXRlZCA9ICgpID0+IHRoaXMuc2V0U3RhdGUoe2NvbHVtbnNUb1Nob3c6IHRoaXMuZ2V0Q29sdW1uc1RvU2hvdyh0aGlzLnMuY29sdW1ucyksIGxhc3RVcGRhdGU6IG5ldyBEYXRlKCl9KVxuICBvbkRyYWdTdGFydCA9ICh7aXRlbX0pID0+IGl0ZW0uYW5pbWF0ZWRaSW5kZXguc2V0VmFsdWUoOTk5OSlcbiAgb25EcmFnRW5kQW5pbWF0aW9uID0gKHtpdGVtfSkgPT4gaXRlbS5hbmltYXRlZFpJbmRleC5zZXRWYWx1ZSgwKVxuXG4gIGFzeW5jIGxvYWRDdXJyZW50V29ya3BsYWNlKCkge1xuICAgIGNvbnN0IFdvcmtwbGFjZSA9IG1vZGVsQ2xhc3NSZXF1aXJlKFwiV29ya3BsYWNlXCIpXG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgV29ya3BsYWNlLmN1cnJlbnQoKVxuICAgIGNvbnN0IGN1cnJlbnRXb3JrcGxhY2UgPSBkaWdnKHJlc3VsdCwgXCJjdXJyZW50XCIsIDApXG5cbiAgICB0aGlzLnNldFN0YXRlKHtjdXJyZW50V29ya3BsYWNlfSlcbiAgfVxuXG4gIGFzeW5jIGxvYWRDdXJyZW50V29ya3BsYWNlQ291bnQoKSB7XG4gICAgY29uc3QgV29ya3BsYWNlTGluayA9IG1vZGVsQ2xhc3NSZXF1aXJlKFwiV29ya3BsYWNlTGlua1wiKVxuICAgIGNvbnN0IGN1cnJlbnRXb3JrcGxhY2VDb3VudCA9IGF3YWl0IFdvcmtwbGFjZUxpbmtcbiAgICAgIC5yYW5zYWNrKHtcbiAgICAgICAgcmVzb3VyY2VfdHlwZV9lcTogdGhpcy5wLm1vZGVsQ2xhc3MubW9kZWxDbGFzc0RhdGEoKS5uYW1lLFxuICAgICAgICB3b3JrcGxhY2VfaWRfZXE6IHRoaXMucy5jdXJyZW50V29ya3BsYWNlLmlkKClcbiAgICAgIH0pXG4gICAgICAuY291bnQoKVxuXG4gICAgdGhpcy5zZXRTdGF0ZSh7Y3VycmVudFdvcmtwbGFjZUNvdW50fSlcbiAgfVxuXG4gIGdldENvbHVtbnNUb1Nob3coY29sdW1ucykge1xuICAgIHJldHVybiBjb2x1bW5zXG4gICAgICAuZmlsdGVyKCh7Y29sdW1uLCB0YWJsZVNldHRpbmdDb2x1bW59KSA9PiBjb2x1bW5WaXNpYmxlKGNvbHVtbiwgdGFibGVTZXR0aW5nQ29sdW1uKSlcbiAgICAgIC5zb3J0KChhLCBiKSA9PiBhLnRhYmxlU2V0dGluZ0NvbHVtbi5wb3NpdGlvbigpIC0gYi50YWJsZVNldHRpbmdDb2x1bW4ucG9zaXRpb24oKSlcbiAgfVxuXG4gIGFzeW5jIGxvYWRUYWJsZVNldHRpbmcoKSB7XG4gICAgdGhpcy50YWJsZVNldHRpbmdzID0gbmV3IFRhYmxlU2V0dGluZ3Moe3RhYmxlOiB0aGlzfSlcblxuICAgIGNvbnN0IHRhYmxlU2V0dGluZyA9IGF3YWl0IHRoaXMudGFibGVTZXR0aW5ncy5sb2FkRXhpc3RpbmdPckNyZWF0ZVRhYmxlU2V0dGluZ3MoKVxuICAgIGNvbnN0IHtjb2x1bW5zLCBwcmVsb2FkfSA9IHRoaXMudGFibGVTZXR0aW5ncy5wcmVwYXJlZENvbHVtbnModGFibGVTZXR0aW5nKVxuICAgIGNvbnN0IHt3aWR0aH0gPSB0aGlzLnNcbiAgICBjb25zdCB3aWR0aHMgPSBuZXcgV2lkdGhzKHtjb2x1bW5zLCB0YWJsZTogdGhpcywgd2lkdGh9KVxuICAgIGNvbnN0IGNvbHVtbnNUb1Nob3cgPSB0aGlzLmdldENvbHVtbnNUb1Nob3coY29sdW1ucylcblxuICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgY29sdW1ucyxcbiAgICAgIGNvbHVtbnNUb1Nob3csXG4gICAgICBwcmVwYXJlZENvbHVtbnM6IGNvbHVtbnMsXG4gICAgICBwcmVsb2FkOiB0aGlzLm1lcmdlZFByZWxvYWRzKHByZWxvYWQpLFxuICAgICAgdGFibGVTZXR0aW5nLFxuICAgICAgdGFibGVTZXR0aW5nTG9hZGVkOiB0cnVlLFxuICAgICAgdGFibGVTZXR0aW5nRnVsbENhY2hlS2V5OiB0YWJsZVNldHRpbmcuZnVsbENhY2hlS2V5KCksXG4gICAgICB3aWR0aHNcbiAgICB9KVxuICB9XG5cbiAgdXBkYXRlU2V0dGluZ3NGdWxsQ2FjaGVLZXkgPSAoKSA9PiB0aGlzLnNldFN0YXRlKHt0YWJsZVNldHRpbmdGdWxsQ2FjaGVLZXk6IHRoaXMuc3RhdGUudGFibGVTZXR0aW5nLmZ1bGxDYWNoZUtleSgpfSlcblxuICBjb2x1bW5zQXNBcnJheSA9ICgpID0+IHtcbiAgICBpZiAodHlwZW9mIHRoaXMucHJvcHMuY29sdW1ucyA9PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgIHJldHVybiB0aGlzLnByb3BzLmNvbHVtbnMoKVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnByb3BzLmNvbHVtbnNcbiAgfVxuXG4gIG1lcmdlZFByZWxvYWRzKHByZWxvYWQpIHtcbiAgICBjb25zdCB7cHJlbG9hZHN9ID0gdGhpcy5wcm9wc1xuICAgIGxldCBtZXJnZWRQcmVsb2FkcyA9IFtdXG5cbiAgICBpZiAocHJlbG9hZHMpIG1lcmdlZFByZWxvYWRzID0gbWVyZ2VkUHJlbG9hZHMuY29uY2F0KHByZWxvYWRzKVxuICAgIGlmIChwcmVsb2FkKSBtZXJnZWRQcmVsb2FkcyA9IG1lcmdlZFByZWxvYWRzLmNvbmNhdChwcmVsb2FkKVxuXG4gICAgcmV0dXJuIHVuaXF1bml6ZShtZXJnZWRQcmVsb2FkcylcbiAgfVxuXG4gIHJlbmRlciAoKSB7XG4gICAgY29uc3Qge21vZGVsQ2xhc3MsIG5vUmVjb3Jkc0F2YWlsYWJsZUNvbnRlbnQsIG5vUmVjb3Jkc0ZvdW5kQ29udGVudH0gPSB0aGlzLnBcbiAgICBjb25zdCB7Y29sbGVjdGlvbiwgY3VycmVudFVzZXJ9ID0gdGhpcy5wcm9wc1xuICAgIGNvbnN0IHtxdWVyeU5hbWUsIHF1ZXJ5U05hbWUsIHNob3dGaWx0ZXJzfSA9IHRoaXMuc1xuICAgIGNvbnN0IHtcbiAgICAgIG1vZGVscyxcbiAgICAgIG92ZXJhbGxDb3VudCxcbiAgICAgIHFQYXJhbXMsXG4gICAgICBxdWVyeSxcbiAgICAgIHJlc3VsdCxcbiAgICAgIHNob3dOb1JlY29yZHNBdmFpbGFibGVDb250ZW50LFxuICAgICAgc2hvd05vUmVjb3Jkc0ZvdW5kQ29udGVudFxuICAgIH0gPSBkaWdzKFxuICAgICAgdGhpcy5jb2xsZWN0aW9uLFxuICAgICAgXCJtb2RlbHNcIixcbiAgICAgIFwib3ZlcmFsbENvdW50XCIsXG4gICAgICBcInFQYXJhbXNcIixcbiAgICAgIFwicXVlcnlcIixcbiAgICAgIFwicmVzdWx0XCIsXG4gICAgICBcInNob3dOb1JlY29yZHNBdmFpbGFibGVDb250ZW50XCIsXG4gICAgICBcInNob3dOb1JlY29yZHNGb3VuZENvbnRlbnRcIlxuICAgIClcblxuICAgIGlmIChjb2xsZWN0aW9uICYmIGNvbGxlY3Rpb24uYXJncy5tb2RlbENsYXNzLm1vZGVsQ2xhc3NEYXRhKCkubmFtZSAhPSBtb2RlbENsYXNzLm1vZGVsQ2xhc3NEYXRhKCkubmFtZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgTW9kZWwgY2xhc3MgZnJvbSBjb2xsZWN0aW9uICcke2NvbGxlY3Rpb24uYXJncy5tb2RlbENsYXNzLm1vZGVsQ2xhc3NEYXRhKCkubmFtZX0nIGAgK1xuICAgICAgICBgZGlkbid0IG1hdGNoIG1vZGVsIGNsYXNzIG9uIHRhYmxlOiAnJHttb2RlbENsYXNzLm1vZGVsQ2xhc3NEYXRhKCkubmFtZX0nYFxuICAgICAgKVxuICAgIH1cblxuICAgIHJldHVybiAoXG4gICAgICA8VmlldyBkYXRhU2V0PXt7Y2xhc3M6IHRoaXMuY2xhc3NOYW1lKCl9fSBvbkxheW91dD17dGhpcy50dC5vbkNvbnRhaW5lckxheW91dH0gc3R5bGU9e3RoaXMucHJvcHMuc3R5bGVzPy5jb250YWluZXJ9PlxuICAgICAgICB7c2hvd05vUmVjb3Jkc0F2YWlsYWJsZUNvbnRlbnQgJiZcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImxpdmUtdGFibGUtLW5vLXJlY29yZHMtYXZhaWxhYmxlLWNvbnRlbnRcIj5cbiAgICAgICAgICAgIHtub1JlY29yZHNBdmFpbGFibGVDb250ZW50KHttb2RlbHMsIHFQYXJhbXMsIG92ZXJhbGxDb3VudH0pfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICAgIHtzaG93Tm9SZWNvcmRzRm91bmRDb250ZW50ICYmXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJsaXZlLXRhYmxlLS1uby1yZWNvcmRzLWZvdW5kLWNvbnRlbnRcIj5cbiAgICAgICAgICAgIHtub1JlY29yZHNGb3VuZENvbnRlbnQoe21vZGVscywgcVBhcmFtcywgb3ZlcmFsbENvdW50fSl9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICAgICAge3Nob3dGaWx0ZXJzICYmXG4gICAgICAgICAgPEZpbHRlcnMgY3VycmVudFVzZXI9e2N1cnJlbnRVc2VyfSBtb2RlbENsYXNzPXttb2RlbENsYXNzfSBxdWVyeU5hbWU9e3F1ZXJ5TmFtZX0gcXVlcnlTTmFtZT17cXVlcnlTTmFtZX0gLz5cbiAgICAgICAgfVxuICAgICAgICB7cVBhcmFtcyAmJiBxdWVyeSAmJiByZXN1bHQgJiYgbW9kZWxzICYmICFzaG93Tm9SZWNvcmRzQXZhaWxhYmxlQ29udGVudCAmJiAhc2hvd05vUmVjb3Jkc0ZvdW5kQ29udGVudCAmJlxuICAgICAgICAgIHRoaXMuY2FyZE9yVGFibGUoKVxuICAgICAgICB9XG4gICAgICA8L1ZpZXc+XG4gICAgKVxuICB9XG5cbiAgYWJpbGl0aWVzVG9Mb2FkICgpIHtcbiAgICBjb25zdCBhYmlsaXRpZXNUb0xvYWQgPSB7fVxuICAgIGNvbnN0IHthYmlsaXRpZXMsIG1vZGVsQ2xhc3N9ID0gdGhpcy5wcm9wc1xuICAgIGNvbnN0IG93bkFiaWxpdGllcyA9IFtdXG5cbiAgICBpZiAodGhpcy5wcm9wcy5kZXN0cm95RW5hYmxlZCkgb3duQWJpbGl0aWVzLnB1c2goXCJkZXN0cm95XCIpXG4gICAgaWYgKHRoaXMucHJvcHMuZWRpdE1vZGVsUGF0aCkgb3duQWJpbGl0aWVzLnB1c2goXCJlZGl0XCIpXG4gICAgaWYgKHRoaXMucHJvcHMudmlld01vZGVsUGF0aCkgb3duQWJpbGl0aWVzLnB1c2goXCJzaG93XCIpXG5cbiAgICBpZiAob3duQWJpbGl0aWVzLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IG1vZGVsQ2xhc3NOYW1lID0gZGlnZyhtb2RlbENsYXNzLm1vZGVsQ2xhc3NEYXRhKCksIFwibmFtZVwiKVxuXG4gICAgICBhYmlsaXRpZXNUb0xvYWRbbW9kZWxDbGFzc05hbWVdID0gb3duQWJpbGl0aWVzXG4gICAgfVxuXG4gICAgaWYgKGFiaWxpdGllcykge1xuICAgICAgZm9yIChjb25zdCBtb2RlbE5hbWUgaW4gYWJpbGl0aWVzKSB7XG4gICAgICAgIGlmICghKG1vZGVsTmFtZSBpbiBhYmlsaXRpZXNUb0xvYWQpKSB7XG4gICAgICAgICAgYWJpbGl0aWVzVG9Mb2FkW21vZGVsTmFtZV0gPSBbXVxuICAgICAgICB9XG5cbiAgICAgICAgZm9yIChjb25zdCBhYmlsaXR5IG9mIGFiaWxpdGllc1ttb2RlbE5hbWVdKSB7XG4gICAgICAgICAgYWJpbGl0aWVzVG9Mb2FkW21vZGVsTmFtZV0ucHVzaChhYmlsaXR5KVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGFiaWxpdGllc1RvTG9hZFxuICB9XG5cbiAgY2FyZE9yVGFibGUgKCkge1xuICAgIGNvbnN0IHtcbiAgICAgIGFiaWxpdGllcyxcbiAgICAgIGFjdGlvbnNDb250ZW50LFxuICAgICAgYXBwSGlzdG9yeSxcbiAgICAgIGNhcmQsXG4gICAgICBjbGFzc05hbWUsXG4gICAgICBjb2xsZWN0aW9uLFxuICAgICAgY29sdW1ucyxcbiAgICAgIGNvbnRyb2xzLFxuICAgICAgY3VycmVudFVzZXIsXG4gICAgICBkZWZhdWx0RGF0ZUZvcm1hdE5hbWUsXG4gICAgICBkZWZhdWx0RGF0ZVRpbWVGb3JtYXROYW1lLFxuICAgICAgZGVmYXVsdFBhcmFtcyxcbiAgICAgIGRlc3Ryb3lFbmFibGVkLFxuICAgICAgZGVzdHJveU1lc3NhZ2UsXG4gICAgICBlZGl0TW9kZWxQYXRoLFxuICAgICAgZmlsdGVyQ2FyZCxcbiAgICAgIGZpbHRlckNvbnRlbnQsXG4gICAgICBmaWx0ZXJTdWJtaXRCdXR0b24sXG4gICAgICBmaWx0ZXJTdWJtaXRMYWJlbCxcbiAgICAgIGdyb3VwQnksXG4gICAgICBoZWFkZXIsXG4gICAgICBpZGVudGlmaWVyLFxuICAgICAgbW9kZWxDbGFzcyxcbiAgICAgIG5vUmVjb3Jkc0F2YWlsYWJsZUNvbnRlbnQsXG4gICAgICBub1JlY29yZHNGb3VuZENvbnRlbnQsXG4gICAgICBvbk1vZGVsc0xvYWRlZCxcbiAgICAgIHBhZ2luYXRlQ29udGVudCxcbiAgICAgIHBhZ2luYXRpb25Db21wb25lbnQsXG4gICAgICBwcmVsb2FkcyxcbiAgICAgIHF1ZXJ5TWV0aG9kLFxuICAgICAgcXVlcnlOYW1lLFxuICAgICAgc2VsZWN0LFxuICAgICAgc2VsZWN0Q29sdW1ucyxcbiAgICAgIHN0eWxlVUksXG4gICAgICB2aWV3TW9kZWxQYXRoLFxuICAgICAgd29ya3BsYWNlLFxuICAgICAgLi4ucmVzdFByb3BzXG4gICAgfSA9IHRoaXMucHJvcHNcbiAgICBjb25zdCB7bW9kZWxzLCBxUGFyYW1zLCBxdWVyeSwgcmVzdWx0fSA9IGRpZ3ModGhpcy5jb2xsZWN0aW9uLCBcIm1vZGVsc1wiLCBcInFQYXJhbXNcIiwgXCJxdWVyeVwiLCBcInJlc3VsdFwiKVxuXG4gICAgbGV0IGhlYWRlckNvbnRlbnQsIFBhZ2luYXRpb25Db21wb25lbnRcblxuICAgIGlmICh0eXBlb2YgaGVhZGVyID09IFwiZnVuY3Rpb25cIikge1xuICAgICAgaGVhZGVyQ29udGVudCA9IGhlYWRlcih7bW9kZWxzLCBxUGFyYW1zLCBxdWVyeSwgcmVzdWx0fSlcbiAgICB9IGVsc2UgaWYgKGhlYWRlcikge1xuICAgICAgaGVhZGVyQ29udGVudCA9IGhlYWRlclxuICAgIH0gZWxzZSB7XG4gICAgICBoZWFkZXJDb250ZW50ID0gbW9kZWxDbGFzcy5tb2RlbE5hbWUoKS5odW1hbih7Y291bnQ6IDJ9KVxuICAgIH1cblxuICAgIGlmICghcGFnaW5hdGVDb250ZW50KSB7XG4gICAgICBpZiAocGFnaW5hdGlvbkNvbXBvbmVudCkge1xuICAgICAgICBQYWdpbmF0aW9uQ29tcG9uZW50ID0gcGFnaW5hdGlvbkNvbXBvbmVudFxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgUGFnaW5hdGlvbkNvbXBvbmVudCA9IFBhZ2luYXRlXG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgZmxhdExpc3RTdHlsZSA9IHtcbiAgICAgIG92ZXJmbG93WDogXCJhdXRvXCJcbiAgICB9XG5cbiAgICBpZiAoc3R5bGVVSSkge1xuICAgICAgZmxhdExpc3RTdHlsZS5ib3JkZXIgPSBcIjFweCBzb2xpZCAjZGJkYmRiXCJcbiAgICAgIGZsYXRMaXN0U3R5bGUuYm9yZGVyUmFkaXVzID0gNVxuICAgIH1cblxuICAgIGNvbnN0IGZsYXRMaXN0ID0gKFxuICAgICAgPFRhYmxlQ29udGV4dC5Qcm92aWRlciB2YWx1ZT17dGhpcy50dC50YWJsZUNvbnRleHRWYWx1ZX0+XG4gICAgICAgIDxGbGF0TGlzdFxuICAgICAgICAgIGRhdGE9e21vZGVsc31cbiAgICAgICAgICBkYXRhU2V0PXt7XG4gICAgICAgICAgICBjbGFzczogY2xhc3NOYW1lcyhcImFwaS1tYWtlci0tdGFibGVcIiwgY2xhc3NOYW1lKSxcbiAgICAgICAgICAgIGNhY2hlS2V5OiB0aGlzLnMudGFibGVTZXR0aW5nRnVsbENhY2hlS2V5LFxuICAgICAgICAgICAgbGFzdFVwZGF0ZTogdGhpcy5zLmxhc3RVcGRhdGVcbiAgICAgICAgICB9fVxuICAgICAgICAgIGV4dHJhRGF0YT17dGhpcy5zLmxhc3RVcGRhdGV9XG4gICAgICAgICAga2V5RXh0cmFjdG9yPXt0aGlzLnR0LmtleUV4dHJhdG9yfVxuICAgICAgICAgIExpc3RIZWFkZXJDb21wb25lbnQ9e0xpc3RIZWFkZXJDb21wb25lbnR9XG4gICAgICAgICAgcmVuZGVySXRlbT17dGhpcy50dC5yZW5kZXJJdGVtfVxuICAgICAgICAgIHNob3dzSG9yaXpvbnRhbFNjcm9sbEluZGljYXRvclxuICAgICAgICAgIHN0eWxlPXtmbGF0TGlzdFN0eWxlfVxuICAgICAgICAgIHsuLi5yZXN0UHJvcHN9XG4gICAgICAgIC8+XG4gICAgICA8L1RhYmxlQ29udGV4dC5Qcm92aWRlcj5cbiAgICApXG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAge2ZpbHRlckNvbnRlbnQgJiYgZmlsdGVyQ2FyZCAmJlxuICAgICAgICAgIDxDYXJkIGNsYXNzTmFtZT1cImxpdmUtdGFibGUtLWZpbHRlci1jYXJkIG1iLTRcIj5cbiAgICAgICAgICAgIHt0aGlzLmZpbHRlckZvcm0oKX1cbiAgICAgICAgICA8L0NhcmQ+XG4gICAgICAgIH1cbiAgICAgICAge2ZpbHRlckNvbnRlbnQgJiYgIWZpbHRlckNhcmQgJiZcbiAgICAgICAgICB0aGlzLmZpbHRlckZvcm0oKVxuICAgICAgICB9XG4gICAgICAgIHtjYXJkICYmXG4gICAgICAgICAgPENhcmRcbiAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lcyhcImxpdmUtdGFibGUtLXRhYmxlLWNhcmRcIiwgXCJtYi00XCIsIGNsYXNzTmFtZSl9XG4gICAgICAgICAgICBjb250cm9scz17dGhpcy50YWJsZUNvbnRyb2xzKCl9XG4gICAgICAgICAgICBoZWFkZXI9e2hlYWRlckNvbnRlbnR9XG4gICAgICAgICAgICBmb290ZXI9e3RoaXMudGFibGVGb290ZXIoKX1cbiAgICAgICAgICAgIHsuLi5yZXN0UHJvcHN9XG4gICAgICAgICAgPlxuICAgICAgICAgICAge2ZsYXRMaXN0fVxuICAgICAgICAgIDwvQ2FyZD5cbiAgICAgICAgfVxuICAgICAgICB7IWNhcmQgJiYgZmxhdExpc3R9XG4gICAgICAgIHtyZXN1bHQgJiYgUGFnaW5hdGlvbkNvbXBvbmVudCAmJlxuICAgICAgICAgIDxQYWdpbmF0aW9uQ29tcG9uZW50IHJlc3VsdD17cmVzdWx0fSAvPlxuICAgICAgICB9XG4gICAgICAgIHtyZXN1bHQgJiYgcGFnaW5hdGVDb250ZW50ICYmXG4gICAgICAgICAgcGFnaW5hdGVDb250ZW50KHtyZXN1bHR9KVxuICAgICAgICB9XG4gICAgICA8Lz5cbiAgICApXG4gIH1cblxuICBvbkNvbnRhaW5lckxheW91dCA9IChlKSA9PiB7XG4gICAgY29uc3Qge3dpZHRofSA9IGUubmF0aXZlRXZlbnQubGF5b3V0XG4gICAgY29uc3Qge3dpZHRoc30gPSB0aGlzLnNcblxuICAgIHRoaXMuc2V0U3RhdGUoe3dpZHRofSlcbiAgICBpZiAod2lkdGhzKSB3aWR0aHMudGFibGVXaWR0aCA9IHdpZHRoXG4gIH1cblxuICBvbkxpbmtzQ3JlYXRlZCA9ICh7YXJnc30pID0+IHtcbiAgICBjb25zdCBtb2RlbENsYXNzTmFtZSA9IHRoaXMucC5tb2RlbENsYXNzLm1vZGVsQ2xhc3NEYXRhKCkubmFtZVxuXG4gICAgaWYgKGFyZ3MuY3JlYXRlZFttb2RlbENsYXNzTmFtZV0pIHtcbiAgICAgIGNvbnN0IGFtb3VudENyZWF0ZWQgPSBhcmdzLmNyZWF0ZWRbbW9kZWxDbGFzc05hbWVdLmxlbmd0aFxuXG4gICAgICB0aGlzLnNldFN0YXRlKChwcmV2U3RhdGUpID0+ICh7XG4gICAgICAgIGN1cnJlbnRXb3JrcGxhY2VDb3VudDogcHJldlN0YXRlLmN1cnJlbnRXb3JrcGxhY2VDb3VudCArIGFtb3VudENyZWF0ZWRcbiAgICAgIH0pKVxuICAgIH1cbiAgfVxuXG4gIG9uTGlua3NEZXN0cm95ZWQgPSAoe2FyZ3N9KSA9PiB7XG4gICAgY29uc3QgbW9kZWxDbGFzc05hbWUgPSB0aGlzLnAubW9kZWxDbGFzcy5tb2RlbENsYXNzRGF0YSgpLm5hbWVcblxuICAgIGlmIChhcmdzLmRlc3Ryb3llZFttb2RlbENsYXNzTmFtZV0pIHtcbiAgICAgIGNvbnN0IGFtb3VudERlc3Ryb3llZCA9IGFyZ3MuZGVzdHJveWVkW21vZGVsQ2xhc3NOYW1lXS5sZW5ndGhcblxuICAgICAgdGhpcy5zZXRTdGF0ZSgocHJldlN0YXRlKSA9PiAoe1xuICAgICAgICBjdXJyZW50V29ya3BsYWNlQ291bnQ6IHByZXZTdGF0ZS5jdXJyZW50V29ya3BsYWNlQ291bnQgLSBhbW91bnREZXN0cm95ZWRcbiAgICAgIH0pKVxuICAgIH1cbiAgfVxuXG4gIGtleUV4dHJhdG9yID0gKG1vZGVsKSA9PiBgJHt0aGlzLnMudGFibGVTZXR0aW5nRnVsbENhY2hlS2V5fS0ke21vZGVsLmlkKCl9YFxuXG4gIGZpbHRlckZvcm0gPSAoKSA9PiB7XG4gICAgY29uc3Qge2ZpbHRlckZvcm1SZWYsIHN1Ym1pdEZpbHRlciwgc3VibWl0RmlsdGVyRGVib3VuY2V9ID0gdGhpcy50dFxuICAgIGNvbnN0IHtmaWx0ZXJDb250ZW50LCBmaWx0ZXJTdWJtaXRCdXR0b259ID0gdGhpcy5wXG4gICAgY29uc3Qge3F1ZXJ5UU5hbWV9ID0gdGhpcy5zXG4gICAgY29uc3Qge2ZpbHRlclN1Ym1pdExhYmVsfSA9IHRoaXMucHJvcHNcbiAgICBjb25zdCB7cVBhcmFtc30gPSBkaWdzKHRoaXMuY29sbGVjdGlvbiwgXCJxUGFyYW1zXCIpXG5cbiAgICByZXR1cm4gKFxuICAgICAgPEZvcm0gY2xhc3NOYW1lPVwibGl2ZS10YWJsZS0tZmlsdGVyLWZvcm1cIiBmb3JtUmVmPXtmaWx0ZXJGb3JtUmVmfSBvblN1Ym1pdD17dGhpcy50dC5vbkZpbHRlckZvcm1TdWJtaXR9IHNldEZvcm09e3RoaXMuc2V0U3RhdGVzLmZpbHRlckZvcm19PlxuICAgICAgICB7XCJzXCIgaW4gcVBhcmFtcyAmJlxuICAgICAgICAgIDxpbnB1dCBuYW1lPVwic1wiIHR5cGU9XCJoaWRkZW5cIiB2YWx1ZT17cVBhcmFtcy5zfSAvPlxuICAgICAgICB9XG4gICAgICAgIHtmaWx0ZXJDb250ZW50KHtcbiAgICAgICAgICBvbkZpbHRlckNoYW5nZWQ6IHN1Ym1pdEZpbHRlcixcbiAgICAgICAgICBvbkZpbHRlckNoYW5nZWRXaXRoRGVsYXk6IHN1Ym1pdEZpbHRlckRlYm91bmNlLFxuICAgICAgICAgIHFQYXJhbXMsXG4gICAgICAgICAgcXVlcnlRTmFtZVxuICAgICAgICB9KX1cbiAgICAgICAge2ZpbHRlclN1Ym1pdEJ1dHRvbiAmJlxuICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgY2xhc3NOYW1lPVwiYnRuIGJ0bi1wcmltYXJ5IGxpdmUtdGFibGUtLXN1Ym1pdC1maWx0ZXItYnV0dG9uXCJcbiAgICAgICAgICAgIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgICAgICAgc3R5bGU9e3ttYXJnaW5Ub3A6IFwiOHB4XCJ9fVxuICAgICAgICAgICAgdmFsdWU9e2ZpbHRlclN1Ym1pdExhYmVsIHx8IHRoaXMudChcIi5maWx0ZXJcIiwge2RlZmF1bHRWYWx1ZTogXCJGaWx0ZXJcIn0pfVxuICAgICAgICAgIC8+XG4gICAgICAgIH1cbiAgICAgIDwvRm9ybT5cbiAgICApXG4gIH1cblxuICBvbkZpbHRlckNsaWNrZWQgPSAoZSkgPT4ge1xuICAgIGUucHJldmVudERlZmF1bHQoKVxuICAgIHRoaXMuc2V0U3RhdGUoe3Nob3dGaWx0ZXJzOiAhdGhpcy5zdGF0ZS5zaG93RmlsdGVyc30pXG4gIH1cblxuICBvblBlclBhZ2VDaGFuZ2VkID0gKGUpID0+IHtcbiAgICBjb25zdCB7cXVlcnlOYW1lfSA9IHRoaXMuc1xuICAgIGNvbnN0IG5ld1BlclBhZ2VWYWx1ZSA9IGRpZ2coZSwgXCJ0YXJnZXRcIiwgXCJ2YWx1ZVwiKVxuICAgIGNvbnN0IHBlcktleSA9IGAke3F1ZXJ5TmFtZX1fcGVyYFxuICAgIGNvbnN0IHBhcmFtc0NoYW5nZSA9IHt9XG5cbiAgICBwYXJhbXNDaGFuZ2VbcGVyS2V5XSA9IG5ld1BlclBhZ2VWYWx1ZVxuXG4gICAgUGFyYW1zLmNoYW5nZVBhcmFtcyhwYXJhbXNDaGFuZ2UpXG4gIH1cblxuICByZW5kZXJJdGVtID0gKHtpbmRleCwgaXRlbTogbW9kZWx9KSA9PiB7XG4gICAgaWYgKCF0aGlzLnMudGFibGVTZXR0aW5nTG9hZGVkKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8Vmlldz5cbiAgICAgICAgICA8VGV4dD5cbiAgICAgICAgICAgIHt0aGlzLnQoXCIubG9hZGluZ19kb3RfZG90X2RvdFwiLCB7ZGVmYXVsdFZhbHVlOiBcIkxvYWRpbmcuLi5cIn0pfVxuICAgICAgICAgIDwvVGV4dD5cbiAgICAgICAgPC9WaWV3PlxuICAgICAgKVxuICAgIH1cblxuICAgIHJldHVybiAoXG4gICAgICA8TW9kZWxSb3dcbiAgICAgICAgY2FjaGVLZXk9e21vZGVsLmNhY2hlS2V5KCl9XG4gICAgICAgIGNvbHVtbnM9e3RoaXMucy5jb2x1bW5zVG9TaG93fVxuICAgICAgICBjb2x1bW5XaWR0aHM9e3RoaXMuY29sdW1uV2lkdGhzKCl9XG4gICAgICAgIGV2ZW50cz17dGhpcy50dC5ldmVudHN9XG4gICAgICAgIGluZGV4PXtpbmRleH1cbiAgICAgICAga2V5PXttb2RlbC5pZCgpfVxuICAgICAgICBtb2RlbD17bW9kZWx9XG4gICAgICAgIHRhYmxlPXt0aGlzfVxuICAgICAgICB0YWJsZVNldHRpbmdGdWxsQ2FjaGVLZXk9e3RoaXMucy50YWJsZVNldHRpbmdGdWxsQ2FjaGVLZXl9XG4gICAgICAvPlxuICAgIClcbiAgfVxuXG4gIHN0eWxlRm9yQ29sdW1uID0gKHtjb2x1bW4sIGNvbHVtbkluZGV4LCBldmVuLCBzdHlsZSwgdHlwZX0pID0+IHtcbiAgICBjb25zdCB7c3R5bGVVSX0gPSB0aGlzLnBcbiAgICBjb25zdCBkZWZhdWx0U3R5bGUgPSB7XG4gICAgICBqdXN0aWZ5Q29udGVudDogXCJjZW50ZXJcIixcbiAgICAgIHBhZGRpbmc6IDgsXG4gICAgICBvdmVyZmxvdzogXCJoaWRkZW5cIlxuICAgIH1cblxuICAgIGlmIChzdHlsZVVJKSB7XG4gICAgICBPYmplY3QuYXNzaWduKGRlZmF1bHRTdHlsZSwge1xuICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IGV2ZW4gPyBcIiNmNWY1ZjVcIiA6IFwiI2ZmZlwiXG4gICAgICB9KVxuICAgIH1cblxuICAgIGlmICh0eXBlID09IFwiYWN0aW9uc1wiKSB7XG4gICAgICBkZWZhdWx0U3R5bGUuZmxleERpcmVjdGlvbiA9IFwicm93XCJcbiAgICAgIGRlZmF1bHRTdHlsZS5hbGlnbkl0ZW1zID0gXCJjZW50ZXJcIlxuXG4gICAgICBpZiAodGhpcy50dC5tZFVwKSB7XG4gICAgICAgIGRlZmF1bHRTdHlsZS5tYXJnaW5MZWZ0ID0gXCJhdXRvXCJcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGRlZmF1bHRTdHlsZS5tYXJnaW5SaWdodCA9IFwiYXV0b1wiXG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh0aGlzLnR0Lm1kVXAgJiYgc3R5bGVVSSkge1xuICAgICAgZGVmYXVsdFN0eWxlLmJvcmRlclJpZ2h0ID0gXCIxcHggc29saWQgI2RiZGJkYlwiXG4gICAgfVxuXG4gICAgY29uc3QgYWN0dWFsU3R5bGUgPSBPYmplY3QuYXNzaWduKFxuICAgICAgZGVmYXVsdFN0eWxlLFxuICAgICAgc3R5bGVcbiAgICApXG5cbiAgICByZXR1cm4gYWN0dWFsU3R5bGVcbiAgfVxuXG4gIHN0eWxlRm9ySGVhZGVyID0gKHtjb2x1bW4sIGNvbHVtbkluZGV4LCBzdHlsZSwgdHlwZX0pID0+IHtcbiAgICBjb25zdCB7bWRVcH0gPSB0aGlzLnR0XG4gICAgY29uc3QgZGVmYXVsdFN0eWxlID0ge1xuICAgICAgZmxleERpcmVjdGlvbjogXCJyb3dcIixcbiAgICAgIGFsaWduSXRlbXM6IFwiY2VudGVyXCIsXG4gICAgICBwYWRkaW5nOiA4XG4gICAgfVxuXG4gICAgaWYgKHR5cGUgIT0gXCJhY3Rpb25zXCIgJiYgbWRVcCAmJiB0aGlzLnAuc3R5bGVVSSkge1xuICAgICAgZGVmYXVsdFN0eWxlLmJvcmRlclJpZ2h0ID0gXCIxcHggc29saWQgI2RiZGJkYlwiXG4gICAgfVxuXG4gICAgY29uc3QgYWN0dWFsU3R5bGUgPSBPYmplY3QuYXNzaWduKFxuICAgICAgZGVmYXVsdFN0eWxlLFxuICAgICAgc3R5bGVcbiAgICApXG5cbiAgICByZXR1cm4gYWN0dWFsU3R5bGVcbiAgfVxuXG4gIHN0eWxlRm9ySGVhZGVyVGV4dCgpIHtcbiAgICBjb25zdCBhY3R1YWxTdHlsZSA9IHtmb250V2VpZ2h0OiBcImJvbGRcIn1cblxuICAgIHJldHVybiBhY3R1YWxTdHlsZVxuICB9XG5cbiAgc3R5bGVGb3JSb3cgPSAoe2V2ZW59ID0ge30pID0+IHtcbiAgICBjb25zdCBhY3R1YWxTdHlsZSA9IHtcbiAgICAgIGZsZXg6IDEsXG4gICAgICBhbGlnbkl0ZW1zOiBcInN0cmV0Y2hcIlxuICAgIH1cblxuICAgIGlmIChldmVuICYmIHRoaXMucC5zdHlsZVVJKSB7XG4gICAgICBhY3R1YWxTdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSBcIiNmNWY1ZjVcIlxuICAgIH1cblxuICAgIHJldHVybiBhY3R1YWxTdHlsZVxuICB9XG5cbiAgc3R5bGVGb3JSb3dIZWFkZXIgPSAoKSA9PiB7XG4gICAgY29uc3QgYWN0dWFsU3R5bGUgPSB7XG4gICAgICBmbGV4OiAxLFxuICAgICAgYWxpZ25JdGVtczogXCJzdHJldGNoXCJcbiAgICB9XG5cbiAgICByZXR1cm4gYWN0dWFsU3R5bGVcbiAgfVxuXG4gIHRhYmxlQ29udHJvbHMoKSB7XG4gICAgY29uc3Qge2NvbnRyb2xzfSA9IHRoaXMucHJvcHNcbiAgICBjb25zdCB7c2hvd1NldHRpbmdzfSA9IHRoaXMuc1xuICAgIGNvbnN0IHttb2RlbHMsIHFQYXJhbXMsIHF1ZXJ5LCByZXN1bHR9ID0gZGlncyh0aGlzLmNvbGxlY3Rpb24sIFwibW9kZWxzXCIsIFwicVBhcmFtc1wiLCBcInF1ZXJ5XCIsIFwicmVzdWx0XCIpXG5cbiAgICByZXR1cm4gKFxuICAgICAgPFZpZXcgc3R5bGU9e3RoaXMucm9vdFZpZXdTdHlsZSB8fD0ge2ZsZXhEaXJlY3Rpb246IFwicm93XCJ9fT5cbiAgICAgICAge2NvbnRyb2xzICYmIGNvbnRyb2xzKHttb2RlbHMsIHFQYXJhbXMsIHF1ZXJ5LCByZXN1bHR9KX1cbiAgICAgICAgPFByZXNzYWJsZSBkYXRhU2V0PXt7Y2xhc3M6IFwiZmlsdGVyLWJ1dHRvblwifX0gb25QcmVzcz17dGhpcy50dC5vbkZpbHRlckNsaWNrZWR9PlxuICAgICAgICAgIDxJY29uIG5hbWU9XCJzZWFyY2hcIiBzaXplPXsyMH0gLz5cbiAgICAgICAgPC9QcmVzc2FibGU+XG4gICAgICAgIDxWaWV3PlxuICAgICAgICAgIHtzaG93U2V0dGluZ3MgJiZcbiAgICAgICAgICAgIDxTZXR0aW5ncyBvblJlcXVlc3RDbG9zZT17dGhpcy50dC5vblJlcXVlc3RDbG9zZVNldHRpbmdzfSB0YWJsZT17dGhpc30gLz5cbiAgICAgICAgICB9XG4gICAgICAgICAgPFByZXNzYWJsZSBkYXRhU2V0PXt0aGlzLnNldHRpbmdzQnV0dG9uRGF0YVNldCB8fD0ge2NsYXNzOiBcInNldHRpbmdzLWJ1dHRvblwifX0gb25QcmVzcz17dGhpcy50dC5vblNldHRpbmdzQ2xpY2tlZH0+XG4gICAgICAgICAgICA8SWNvbiBuYW1lPVwiZ2VhclwiIHNpemU9ezIwfSAvPlxuICAgICAgICAgIDwvUHJlc3NhYmxlPlxuICAgICAgICA8L1ZpZXc+XG4gICAgICA8L1ZpZXc+XG4gICAgKVxuICB9XG5cbiAgdGFibGVGb290ZXIoKSB7XG4gICAgY29uc3Qge3Jlc3VsdH0gPSBkaWdzKHRoaXMuY29sbGVjdGlvbiwgXCJyZXN1bHRcIilcbiAgICBjb25zdCBjdXJyZW50UGFnZSA9IHJlc3VsdC5jdXJyZW50UGFnZSgpXG4gICAgY29uc3QgdG90YWxDb3VudCA9IHJlc3VsdC50b3RhbENvdW50KClcbiAgICBjb25zdCBwZXJQYWdlID0gcmVzdWx0LnBlclBhZ2UoKVxuICAgIGNvbnN0IHRvID0gTWF0aC5taW4oY3VycmVudFBhZ2UgKiBwZXJQYWdlLCB0b3RhbENvdW50KVxuICAgIGNvbnN0IGRlZmF1bHRWYWx1ZSA9IFwiU2hvd2luZyAle2Zyb219IHRvICV7dG99IG91dCBvZiAle3RvdGFsX2NvdW50fSB0b3RhbC5cIlxuICAgIGxldCBmcm9tID0gKChjdXJyZW50UGFnZSAtIDEpICogcGVyUGFnZSkgKyAxXG5cbiAgICBpZiAodG8gPT09IDApIGZyb20gPSAwXG5cbiAgICByZXR1cm4gKFxuICAgICAgPFZpZXcgc3R5bGU9e3RoaXMucm9vdFZpZXdTdHlsZSB8fD0ge2ZsZXhEaXJlY3Rpb246IFwicm93XCIsIGp1c3RpZnlDb250ZW50OiBcInNwYWNlLWJldHdlZW5cIiwgbWFyZ2luVG9wOiAxMH19PlxuICAgICAgICA8VmlldyBkYXRhU2V0PXt0aGlzLnNob3dpbmdDb3VudHNEYXRhU2V0IHx8PSB7Y2xhc3M6IFwic2hvd2luZy1jb3VudHNcIn19IHN0eWxlPXt0aGlzLnNob3dpbmdDb3VudHNTdHlsZSB8fD0ge2ZsZXhEaXJlY3Rpb246IFwicm93XCJ9fT5cbiAgICAgICAgICA8VGV4dD5cbiAgICAgICAgICAgIHt0aGlzLnQoXCIuc2hvd2luZ19mcm9tX3RvX291dF9vZl90b3RhbFwiLCB7ZGVmYXVsdFZhbHVlLCBmcm9tLCB0bywgdG90YWxfY291bnQ6IHRvdGFsQ291bnR9KX1cbiAgICAgICAgICA8L1RleHQ+XG4gICAgICAgICAge3RoaXMucC53b3JrcGxhY2UgJiYgdGhpcy5zLmN1cnJlbnRXb3JrcGxhY2VDb3VudCAhPT0gbnVsbCAmJlxuICAgICAgICAgICAgPFRleHQgc3R5bGU9e3RoaXMueFNlbGVjdGVkVGV4dFN0eWxlIHx8PSB7bWFyZ2luTGVmdDogM319PlxuICAgICAgICAgICAgICB7dGhpcy50KFwiLnhfc2VsZWN0ZWRcIiwge2RlZmF1bHRWYWx1ZTogXCIle3NlbGVjdGVkfSBzZWxlY3RlZC5cIiwgc2VsZWN0ZWQ6IHRoaXMucy5jdXJyZW50V29ya3BsYWNlQ291bnR9KX1cbiAgICAgICAgICAgIDwvVGV4dD5cbiAgICAgICAgICB9XG4gICAgICAgIDwvVmlldz5cbiAgICAgICAgPFZpZXc+XG4gICAgICAgICAgPFNlbGVjdFxuICAgICAgICAgICAgY2xhc3NOYW1lPVwicGVyLXBhZ2Utc2VsZWN0XCJcbiAgICAgICAgICAgIGRlZmF1bHRWYWx1ZT17cGVyUGFnZX1cbiAgICAgICAgICAgIG9uQ2hhbmdlPXt0aGlzLnR0Lm9uUGVyUGFnZUNoYW5nZWR9XG4gICAgICAgICAgICBvcHRpb25zPXtwYWdpbmF0aW9uT3B0aW9uc31cbiAgICAgICAgICAvPlxuICAgICAgICA8L1ZpZXc+XG4gICAgICA8L1ZpZXc+XG4gICAgKVxuICB9XG5cbiAgY2xhc3NOYW1lKCkge1xuICAgIGNvbnN0IGNsYXNzTmFtZXMgPSBbXCJhcGktbWFrZXItLXRhYmxlXCJdXG5cbiAgICBpZiAodGhpcy5wcm9wcy5jbGFzc05hbWUpIHtcbiAgICAgIGNsYXNzTmFtZXMucHVzaCh0aGlzLnByb3BzLmNsYXNzTmFtZSlcbiAgICB9XG5cbiAgICByZXR1cm4gY2xhc3NOYW1lcy5qb2luKFwiIFwiKVxuICB9XG5cbiAgY29sdW1uUHJvcHMoY29sdW1uKSB7XG4gICAgY29uc3QgcHJvcHMgPSB7fVxuXG4gICAgaWYgKGNvbHVtbi50ZXh0Q2VudGVyKSB7XG4gICAgICBwcm9wcy5zdHlsZSB8fD0ge31cbiAgICAgIHByb3BzLnN0eWxlLnRleHRBbGlnbiA9IFwiY2VudGVyXCJcbiAgICB9XG5cbiAgICBpZiAoY29sdW1uLnRleHRSaWdodCkge1xuICAgICAgcHJvcHMuc3R5bGUgfHw9IHt9XG4gICAgICBwcm9wcy5zdHlsZS50ZXh0QWxpZ24gPSBcInJpZ2h0XCJcbiAgICB9XG5cbiAgICByZXR1cm4gcHJvcHNcbiAgfVxuXG4gIGhlYWRlclByb3BzKGNvbHVtbikge1xuICAgIGNvbnN0IHByb3BzID0ge31cblxuICAgIGlmIChjb2x1bW4udGV4dENlbnRlcikge1xuICAgICAgcHJvcHMuc3R5bGUgfHw9IHt9XG4gICAgICBwcm9wcy5zdHlsZS5qdXN0aWZ5Q29udGVudCA9IFwiY2VudGVyXCJcbiAgICB9XG5cbiAgICBpZiAoY29sdW1uLnRleHRSaWdodCkge1xuICAgICAgcHJvcHMuc3R5bGUgfHw9IHt9XG4gICAgICBwcm9wcy5zdHlsZS5qdXN0aWZ5Q29udGVudCA9IFwiZW5kXCJcbiAgICB9XG5cbiAgICByZXR1cm4gcHJvcHNcbiAgfVxuXG4gIGNvbHVtbldpZHRocygpIHtcbiAgICBjb25zdCBjb2x1bW5XaWR0aHMgPSB7fVxuXG4gICAgZm9yIChjb25zdCBjb2x1bW4gb2YgdGhpcy5zLnByZXBhcmVkQ29sdW1ucykge1xuICAgICAgY29sdW1uV2lkdGhzW2NvbHVtbi50YWJsZVNldHRpbmdDb2x1bW4uaWRlbnRpZmllcigpXSA9IGNvbHVtbi53aWR0aFxuICAgIH1cblxuICAgIHJldHVybiBjb2x1bW5XaWR0aHNcbiAgfVxuXG4gIGhlYWRlcnNDb250ZW50RnJvbUNvbHVtbnMgPSAoKSA9PiB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxEcmFnZ2FibGVTb3J0XG4gICAgICAgIGRhdGE9e3RoaXMucy5jb2x1bW5zVG9TaG93fVxuICAgICAgICBldmVudHM9e3RoaXMudHQuZHJhZ2dhYmxlU29ydEV2ZW50c31cbiAgICAgICAgaG9yaXpvbnRhbFxuICAgICAgICBrZXlFeHRyYWN0b3I9e3RoaXMudHQuZHJhZ0xpc3RrZXlFeHRyYWN0b3J9XG4gICAgICAgIG9uSXRlbU1vdmVkPXt0aGlzLnR0Lm9uSXRlbU1vdmVkfVxuICAgICAgICBvblJlb3JkZXJlZD17dGhpcy50dC5vblJlb3JkZXJlZH1cbiAgICAgICAgcmVuZGVySXRlbT17dGhpcy50dC5kcmFnTGlzdFJlbmRlckl0ZW1Db250ZW50fVxuICAgICAgLz5cbiAgICApXG4gIH1cblxuICBkcmFnTGlzdENhY2hlS2V5RXh0cmFjdG9yID0gKGl0ZW0pID0+IGAke2l0ZW0udGFibGVTZXR0aW5nQ29sdW1uLmlkZW50aWZpZXIoKX0tJHt0aGlzLnMucmVzaXppbmd9YFxuICBkcmFnTGlzdGtleUV4dHJhY3RvciA9IChpdGVtKSA9PiBpdGVtLnRhYmxlU2V0dGluZ0NvbHVtbi5pZGVudGlmaWVyKClcblxuICBvbkl0ZW1Nb3ZlZCA9ICh7YW5pbWF0aW9uQXJncywgaXRlbUluZGV4LCB4LCB5fSkgPT4ge1xuICAgIGNvbnN0IGFuaW1hdGVkUG9zaXRpb24gPSBkaWdnKHRoaXMsIFwic1wiLCBcImNvbHVtbnNUb1Nob3dcIiwgaXRlbUluZGV4LCBcImFuaW1hdGVkUG9zaXRpb25cIilcblxuICAgIGlmIChhbmltYXRpb25BcmdzKSB7XG4gICAgICBBbmltYXRlZC50aW1pbmcoYW5pbWF0ZWRQb3NpdGlvbiwgYW5pbWF0aW9uQXJncykuc3RhcnQoKVxuICAgIH0gZWxzZSB7XG4gICAgICBhbmltYXRlZFBvc2l0aW9uLnNldFZhbHVlKHt4LCB5fSlcbiAgICB9XG4gIH1cblxuICBvblJlb3JkZXJlZCA9IGFzeW5jICh7ZnJvbUl0ZW0sIGZyb21Qb3NpdGlvbiwgdG9JdGVtLCB0b1Bvc2l0aW9ufSkgPT4ge1xuICAgIGlmIChmcm9tUG9zaXRpb24gPT0gdG9Qb3NpdGlvbikgcmV0dXJuIC8vIE9ubHkgZG8gcmVxdWVzdHMgYW5kIHF1ZXJpZXMgaWYgY2hhbmdlZFxuXG4gICAgY29uc3QgVGFibGVTZXR0aW5nQ29sdW1uID0gZnJvbUl0ZW0udGFibGVTZXR0aW5nQ29sdW1uLmNvbnN0cnVjdG9yXG4gICAgY29uc3QgdG9Db2x1bW4gPSBhd2FpdCBUYWJsZVNldHRpbmdDb2x1bW4uZmluZCh0b0l0ZW0udGFibGVTZXR0aW5nQ29sdW1uLmlkKCkpIC8vIE5lZWQgdG8gbG9hZCBsYXRlc3QgcG9zaXRpb24gYmVjYXVzZSBBY3RzQXNMaXN0IG1pZ2h0IGhhdmUgY2hhbmdlZCBpdFxuXG4gICAgYXdhaXQgZnJvbUl0ZW0udGFibGVTZXR0aW5nQ29sdW1uLnVwZGF0ZSh7cG9zaXRpb246IHRvQ29sdW1uLnBvc2l0aW9uKCl9KVxuICB9XG5cbiAgZHJhZ0xpc3RSZW5kZXJJdGVtQ29udGVudCA9ICh7aXNBY3RpdmUsIGl0ZW0sIHRvdWNoUHJvcHN9KSA9PiB7XG4gICAgY29uc3Qge2FuaW1hdGVkV2lkdGgsIGFuaW1hdGVkWkluZGV4LCBjb2x1bW4sIHRhYmxlU2V0dGluZ0NvbHVtbn0gPSBpdGVtXG5cbiAgICByZXR1cm4gKFxuICAgICAgPEhlYWRlckNvbHVtblxuICAgICAgICBhY3RpdmU9e2lzQWN0aXZlfVxuICAgICAgICBhbmltYXRlZFdpZHRoPXthbmltYXRlZFdpZHRofVxuICAgICAgICBhbmltYXRlZFpJbmRleD17YW5pbWF0ZWRaSW5kZXh9XG4gICAgICAgIGNvbHVtbj17Y29sdW1ufVxuICAgICAgICBrZXk9e3RhYmxlU2V0dGluZ0NvbHVtbi5pZGVudGlmaWVyKCl9XG4gICAgICAgIHJlc2l6aW5nPXt0aGlzLnMucmVzaXppbmd9XG4gICAgICAgIHRhYmxlPXt0aGlzfVxuICAgICAgICB0YWJsZVNldHRpbmdDb2x1bW49e3RhYmxlU2V0dGluZ0NvbHVtbn1cbiAgICAgICAgdG91Y2hQcm9wcz17dG91Y2hQcm9wc31cbiAgICAgICAgd2lkdGhzPXt0aGlzLnMud2lkdGhzfVxuICAgICAgLz5cbiAgICApXG4gIH1cblxuICBoZWFkZXJDbGFzc05hbWVGb3JDb2x1bW4oY29sdW1uKSB7XG4gICAgY29uc3QgY2xhc3NOYW1lcyA9IFtdXG5cbiAgICBpZiAoY29sdW1uLmNvbW1vblByb3BzICYmIGNvbHVtbi5jb21tb25Qcm9wcy5jbGFzc05hbWUpIGNsYXNzTmFtZXMucHVzaChjb2x1bW4uY29tbW9uUHJvcHMuY2xhc3NOYW1lKVxuICAgIGlmIChjb2x1bW4uaGVhZGVyUHJvcHMgJiYgY29sdW1uLmhlYWRlclByb3BzLmNsYXNzTmFtZSkgY2xhc3NOYW1lcy5wdXNoKGNvbHVtbi5oZWFkZXJQcm9wcy5jbGFzc05hbWUpXG5cbiAgICByZXR1cm4gY2xhc3NOYW1lc1xuICB9XG5cbiAgaGVhZGVyTGFiZWxGb3JDb2x1bW4oY29sdW1uKSB7XG4gICAgY29uc3Qge21vZGVsQ2xhc3N9ID0gdGhpcy5wXG5cbiAgICBpZiAoXCJsYWJlbFwiIGluIGNvbHVtbikge1xuICAgICAgaWYgKHR5cGVvZiBjb2x1bW4ubGFiZWwgPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgIHJldHVybiBjb2x1bW4ubGFiZWwoKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIGNvbHVtbi5sYWJlbFxuICAgICAgfVxuICAgIH1cblxuICAgIGxldCBjdXJyZW50TW9kZWxDbGFzcyA9IG1vZGVsQ2xhc3NcblxuICAgIC8vIENhbGN1bGF0ZSBjdXJyZW50IG1vZGVsIGNsYXNzIHRocm91Z2ggcGF0aFxuICAgIGlmIChjb2x1bW4ucGF0aCkge1xuICAgICAgZm9yIChjb25zdCBwYXRoUGFydCBvZiBjb2x1bW4ucGF0aCkge1xuICAgICAgICBjb25zdCByZWxhdGlvbnNoaXBzID0gZGlnZyhjdXJyZW50TW9kZWxDbGFzcy5tb2RlbENsYXNzRGF0YSgpLCBcInJlbGF0aW9uc2hpcHNcIilcbiAgICAgICAgY29uc3QgcmVsYXRpb25zaGlwID0gcmVsYXRpb25zaGlwcy5maW5kKChyZWxhdGlvbnNoaXBJbkFycmF5KSA9PiByZWxhdGlvbnNoaXBJbkFycmF5Lm5hbWUgPT0gaW5mbGVjdGlvbi51bmRlcnNjb3JlKHBhdGhQYXJ0KSlcblxuICAgICAgICBjdXJyZW50TW9kZWxDbGFzcyA9IG1vZGVsQ2xhc3NSZXF1aXJlKGRpZ2cocmVsYXRpb25zaGlwLCBcInJlc291cmNlX25hbWVcIikpXG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGNvbHVtbi5hdHRyaWJ1dGUpIHJldHVybiBjdXJyZW50TW9kZWxDbGFzcy5odW1hbkF0dHJpYnV0ZU5hbWUoY29sdW1uLmF0dHJpYnV0ZSlcblxuICAgIHRocm93IG5ldyBFcnJvcihcIk5vICdsYWJlbCcgb3IgJ2F0dHJpYnV0ZScgd2FzIGdpdmVuXCIpXG4gIH1cblxuICBvbkZpbHRlckZvcm1TdWJtaXQgPSAoKSA9PiB0aGlzLnN1Ym1pdEZpbHRlcigpXG4gIG9uUmVxdWVzdENsb3NlU2V0dGluZ3MgPSAoKSA9PiB0aGlzLnNldFN0YXRlKHtzaG93U2V0dGluZ3M6IGZhbHNlfSlcblxuICBvblNldHRpbmdzQ2xpY2tlZCA9IChlKSA9PiB7XG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpXG5cbiAgICB0aGlzLnNldFN0YXRlKHtzaG93U2V0dGluZ3M6ICF0aGlzLnMuc2hvd1NldHRpbmdzfSlcbiAgfVxuXG4gIHN1Ym1pdEZpbHRlciA9ICgpID0+IHtcbiAgICBjb25zdCB7YXBwSGlzdG9yeX0gPSB0aGlzLnByb3BzXG4gICAgY29uc3Qge3F1ZXJ5UU5hbWV9ID0gdGhpcy5zXG4gICAgY29uc3QgY2hhbmdlUGFyYW1zUGFyYW1zID0ge31cbiAgICBjb25zdCBxUGFyYW1zID0gdGhpcy5zLmZpbHRlckZvcm0uYXNPYmplY3QoKVxuXG4gICAgaWYgKFBsYXRmb3JtLk9TID09IFwid2ViXCIpIHtcbiAgICAgIGNvbnN0IGZpbHRlckZvcm0gPSBkaWdnKHRoaXMudHQuZmlsdGVyRm9ybVJlZiwgXCJjdXJyZW50XCIpXG4gICAgICBjb25zdCBuYXZ0aXZlRm9ybVBhcmFtcyA9IFBhcmFtcy5zZXJpYWxpemVGb3JtKGZpbHRlckZvcm0pXG5cbiAgICAgIGluY29ycG9yYXRlKHFQYXJhbXMsIG5hdnRpdmVGb3JtUGFyYW1zKVxuICAgIH1cblxuICAgIGNoYW5nZVBhcmFtc1BhcmFtc1txdWVyeVFOYW1lXSA9IEpTT04uc3RyaW5naWZ5KHFQYXJhbXMpXG5cbiAgICBQYXJhbXMuY2hhbmdlUGFyYW1zKGNoYW5nZVBhcmFtc1BhcmFtcywge2FwcEhpc3Rvcnl9KVxuICB9XG5cbiAgc3VibWl0RmlsdGVyRGVib3VuY2UgPSBkZWJvdW5jZSh0aGlzLnR0LnN1Ym1pdEZpbHRlcilcbn0pKVxuIl0sIm1hcHBpbmdzIjoiO0FBQUEsU0FBUUEsSUFBSSxFQUFFQyxJQUFJLFFBQU8sV0FBVztBQUNwQyxPQUFPQyxLQUFLLElBQUdDLGFBQWEsRUFBRUMsVUFBVSxFQUFFQyxPQUFPLEVBQUVDLE1B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
973
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJkaWdnIiwiZGlncyIsIlJlYWN0IiwiY3JlYXRlQ29udGV4dCIsInVzZUNvbnRleHQiLCJ1c2VNZW1vIiwidXNlUmVmIiwiQW5pbWF0ZWQiLCJQbGF0Zm9ybSIsIlByZXNzYWJsZSIsIlZpZXciLCJCYXNlQ29tcG9uZW50IiwiQ2FyZCIsImNsYXNzTmFtZXMiLCJDb2xsZWN0aW9uIiwiY29sdW1uVmlzaWJsZSIsImRlYm91bmNlIiwiRHJhZ2dhYmxlU29ydCIsIkV2ZW50RW1pdHRlciIsIkZpbHRlcnMiLCJGbGF0TGlzdCIsIkZvcm0iLCJIZWFkZXIiLCJIZWFkZXJDb2x1bW4iLCJIZWFkZXJTZWxlY3QiLCJJY29uIiwiaW5jb3Jwb3JhdGUiLCJpbmZsZWN0aW9uIiwibWVtbyIsIm1vZGVsQ2xhc3NSZXF1aXJlIiwiTW9kZWxSb3ciLCJQYWdpbmF0ZSIsIlBhcmFtcyIsIlByb3BUeXBlcyIsIlJvdyIsInNlbGVjdENhbGN1bGF0b3IiLCJTZWxlY3QiLCJTZXR0aW5ncyIsInNoYXBlQ29tcG9uZW50IiwiVGFibGVTZXR0aW5ncyIsIlRleHQiLCJ1bmlxdW5pemUiLCJ1c2VCcmVha3BvaW50IiwidXNlQ29sbGVjdGlvbiIsInVzZUkxOG4iLCJ1c2VFdmVudEVtaXR0ZXIiLCJ1c2VNb2RlbEV2ZW50IiwidXNlUXVlcnlQYXJhbXMiLCJXaWR0aHMiLCJwYWdpbmF0aW9uT3B0aW9ucyIsIldvcmtlclBsdWdpbnNDaGVja0FsbENoZWNrYm94IiwibGF6eSIsIlRhYmxlQ29udGV4dCIsIkxpc3RIZWFkZXJDb21wb25lbnQiLCJzZXR1cCIsInVzZVN0YXRlcyIsImxhc3RVcGRhdGUiLCJEYXRlIiwicmVuZGVyIiwibWRVcCIsInRhYmxlQ29udGV4dFZhbHVlIiwidGFibGUiLCJjb2xsZWN0aW9uIiwiZXZlbnRzIiwicXVlcnlXaXRob3V0UGFnaW5hdGlvbiIsInQiLCJ0dCIsInF1ZXJ5Iiwib25Db2x1bW5WaXNpYmlsaXR5VXBkYXRlZCIsImNyZWF0ZUVsZW1lbnQiLCJkYXRhU2V0IiwiY2xhc3MiLCJzdHlsZSIsInN0eWxlRm9yUm93SGVhZGVyIiwicCIsIndvcmtwbGFjZSIsInMiLCJjdXJyZW50V29ya3BsYWNlIiwic3R5bGVGb3JIZWFkZXIiLCJ3aWR0aCIsInVuZGVmaW5lZCIsIndvcmtlclBsZ3VpbnNDaGVja0FsbENoZWNrYm94U3R5bGUiLCJtYXJnaW5Ib3Jpem9udGFsIiwic2VsZWN0QWxsRm91bmRUZXh0U3R5bGUiLCJtYXJnaW5MZWZ0IiwiZGVmYXVsdFZhbHVlIiwicHJlcGFyZWRDb2x1bW5zIiwiRnJhZ21lbnQiLCJoZWFkZXJzQ29udGVudEZyb21Db2x1bW5zIiwidHlwZSIsInNldFN0YXRlIiwiQXBpTWFrZXJUYWJsZSIsImRlZmF1bHRQcm9wcyIsImNhcmQiLCJjdXJyZW50VXNlciIsImRlc3Ryb3lFbmFibGVkIiwiZmlsdGVyQ2FyZCIsImZpbHRlclN1Ym1pdEJ1dHRvbiIsIm5vUmVjb3Jkc0F2YWlsYWJsZUNvbnRlbnQiLCJub1JlY29yZHNGb3VuZENvbnRlbnQiLCJwcmVsb2FkcyIsInNlbGVjdCIsInN0eWxlVUkiLCJwcm9wVHlwZXMiLCJhYmlsaXRpZXMiLCJvYmplY3QiLCJhY3Rpb25zQ29udGVudCIsImZ1bmMiLCJhcHBIaXN0b3J5IiwiYm9vbCIsImlzUmVxdWlyZWQiLCJjbGFzc05hbWUiLCJzdHJpbmciLCJpbnN0YW5jZU9mIiwiY29sdW1ucyIsIm9uZU9mVHlwZSIsImFycmF5IiwiY29udHJvbHMiLCJkZWZhdWx0RGF0ZUZvcm1hdE5hbWUiLCJkZWZhdWx0RGF0ZVRpbWVGb3JtYXROYW1lIiwiZGVmYXVsdFBhcmFtcyIsImRlc3Ryb3lNZXNzYWdlIiwiZWRpdE1vZGVsUGF0aCIsImZpbHRlckNvbnRlbnQiLCJmaWx0ZXJTdWJtaXRMYWJlbCIsImFueSIsImdyb3VwQnkiLCJoZWFkZXIiLCJpZGVudGlmaWVyIiwibW9kZWxDbGFzcyIsIm9uTW9kZWxzTG9hZGVkIiwicGFnaW5hdGVDb250ZW50IiwicGFnaW5hdGlvbkNvbXBvbmVudCIsInF1ZXJ5TWV0aG9kIiwicXVlcnlOYW1lIiwic2VsZWN0Q29sdW1ucyIsInN0eWxlcyIsInZpZXdNb2RlbFBhdGgiLCJkcmFnZ2FibGVTb3J0RXZlbnRzIiwidGFibGVTZXR0aW5ncyIsIm5hbWVzcGFjZSIsIm5hbWUiLCJicmVha3BvaW50IiwicXVlcnlQYXJhbXMiLCJzZXRJbnN0YW5jZSIsImZpbHRlckZvcm1SZWYiLCJjb2xsZWN0aW9uS2V5IiwibW9kZWxDbGFzc0RhdGEiLCJwcm9wcyIsInF1ZXJ5U05hbWUiLCJjb2x1bW5zQXNBcnJheSIsImN1cnJlbnRXb3JrcGxhY2VDb3VudCIsImZpbHRlckZvcm0iLCJjb2x1bW5zVG9TaG93IiwiZHJhZ2dlZENvbHVtbiIsInByZWxvYWQiLCJxdWVyeVFOYW1lIiwicXVlcnlQYWdlTmFtZSIsInJlc2l6aW5nIiwic2hvd0ZpbHRlcnMiLCJCb29sZWFuIiwic2hvd1NldHRpbmdzIiwidGFibGVTZXR0aW5nIiwidGFibGVTZXR0aW5nTG9hZGVkIiwidGFibGVTZXR0aW5nRnVsbENhY2hlS2V5Iiwid2lkdGhzIiwiY2FjaGVLZXkiLCJsb2FkQ3VycmVudFdvcmtwbGFjZSIsInRoZW4iLCJsb2FkQ3VycmVudFdvcmtwbGFjZUNvdW50IiwiaWQiLCJsb2FkVGFibGVTZXR0aW5nIiwib25MaW5rc0NyZWF0ZWQiLCJvbkxpbmtzRGVzdHJveWVkIiwiY29sbGVjdGlvblJlYWR5IiwiYWJpbGl0aWVzVG9Mb2FkIiwiaWZDb25kaXRpb24iLCJwYWdpbmF0aW9uIiwic3RhdGUiLCJjbG9uZSIsImV4Y2VwdCIsIm9uRHJhZ1N0YXJ0Iiwib25EcmFnRW5kQW5pbWF0aW9uIiwiZ2V0Q29sdW1uc1RvU2hvdyIsIml0ZW0iLCJhbmltYXRlZFpJbmRleCIsInNldFZhbHVlIiwiV29ya3BsYWNlIiwicmVzdWx0IiwiY3VycmVudCIsIldvcmtwbGFjZUxpbmsiLCJyYW5zYWNrIiwicmVzb3VyY2VfdHlwZV9lcSIsIndvcmtwbGFjZV9pZF9lcSIsImNvdW50IiwiZmlsdGVyIiwiY29sdW1uIiwidGFibGVTZXR0aW5nQ29sdW1uIiwic29ydCIsImEiLCJiIiwicG9zaXRpb24iLCJsb2FkRXhpc3RpbmdPckNyZWF0ZVRhYmxlU2V0dGluZ3MiLCJtZXJnZWRQcmVsb2FkcyIsImZ1bGxDYWNoZUtleSIsInVwZGF0ZVNldHRpbmdzRnVsbENhY2hlS2V5IiwiY29uY2F0IiwibW9kZWxzIiwib3ZlcmFsbENvdW50IiwicVBhcmFtcyIsInNob3dOb1JlY29yZHNBdmFpbGFibGVDb250ZW50Iiwic2hvd05vUmVjb3Jkc0ZvdW5kQ29udGVudCIsImFyZ3MiLCJFcnJvciIsIm9uTGF5b3V0Iiwib25Db250YWluZXJMYXlvdXQiLCJjb250YWluZXIiLCJjYXJkT3JUYWJsZSIsIm93bkFiaWxpdGllcyIsInB1c2giLCJsZW5ndGgiLCJtb2RlbENsYXNzTmFtZSIsIm1vZGVsTmFtZSIsImFiaWxpdHkiLCJyZXN0UHJvcHMiLCJoZWFkZXJDb250ZW50IiwiUGFnaW5hdGlvbkNvbXBvbmVudCIsImh1bWFuIiwiZmxhdExpc3RTdHlsZSIsIm92ZXJmbG93WCIsImJvcmRlciIsImJvcmRlclJhZGl1cyIsImZsYXRMaXN0IiwiUHJvdmlkZXIiLCJ2YWx1ZSIsIl9leHRlbmRzIiwiZGF0YSIsImV4dHJhRGF0YSIsImtleUV4dHJhY3RvciIsImtleUV4dHJhdG9yIiwicmVuZGVySXRlbSIsInNob3dzSG9yaXpvbnRhbFNjcm9sbEluZGljYXRvciIsInRhYmxlQ29udHJvbHMiLCJmb290ZXIiLCJ0YWJsZUZvb3RlciIsImUiLCJuYXRpdmVFdmVudCIsImxheW91dCIsInRhYmxlV2lkdGgiLCJjcmVhdGVkIiwiYW1vdW50Q3JlYXRlZCIsInByZXZTdGF0ZSIsImRlc3Ryb3llZCIsImFtb3VudERlc3Ryb3llZCIsIm1vZGVsIiwic3VibWl0RmlsdGVyIiwic3VibWl0RmlsdGVyRGVib3VuY2UiLCJmb3JtUmVmIiwib25TdWJtaXQiLCJvbkZpbHRlckZvcm1TdWJtaXQiLCJzZXRGb3JtIiwic2V0U3RhdGVzIiwib25GaWx0ZXJDaGFuZ2VkIiwib25GaWx0ZXJDaGFuZ2VkV2l0aERlbGF5IiwibWFyZ2luVG9wIiwib25GaWx0ZXJDbGlja2VkIiwicHJldmVudERlZmF1bHQiLCJvblBlclBhZ2VDaGFuZ2VkIiwibmV3UGVyUGFnZVZhbHVlIiwicGVyS2V5IiwicGFyYW1zQ2hhbmdlIiwiY2hhbmdlUGFyYW1zIiwiaW5kZXgiLCJjb2x1bW5XaWR0aHMiLCJrZXkiLCJzdHlsZUZvckNvbHVtbiIsImNvbHVtbkluZGV4IiwiZXZlbiIsImRlZmF1bHRTdHlsZSIsImp1c3RpZnlDb250ZW50IiwicGFkZGluZyIsIm92ZXJmbG93IiwiT2JqZWN0IiwiYXNzaWduIiwiYmFja2dyb3VuZENvbG9yIiwiZmxleERpcmVjdGlvbiIsImFsaWduSXRlbXMiLCJtYXJnaW5SaWdodCIsImJvcmRlclJpZ2h0IiwiYWN0dWFsU3R5bGUiLCJzdHlsZUZvckhlYWRlclRleHQiLCJmb250V2VpZ2h0Iiwic3R5bGVGb3JSb3ciLCJmbGV4Iiwicm9vdFZpZXdTdHlsZSIsIm9uUHJlc3MiLCJzaXplIiwib25SZXF1ZXN0Q2xvc2UiLCJvblJlcXVlc3RDbG9zZVNldHRpbmdzIiwic2V0dGluZ3NCdXR0b25EYXRhU2V0Iiwib25TZXR0aW5nc0NsaWNrZWQiLCJjdXJyZW50UGFnZSIsInRvdGFsQ291bnQiLCJwZXJQYWdlIiwidG8iLCJNYXRoIiwibWluIiwiZnJvbSIsInNob3dpbmdDb3VudHNEYXRhU2V0Iiwic2hvd2luZ0NvdW50c1N0eWxlIiwidG90YWxfY291bnQiLCJ4U2VsZWN0ZWRUZXh0U3R5bGUiLCJzZWxlY3RlZCIsIm9uQ2hhbmdlIiwib3B0aW9ucyIsImpvaW4iLCJjb2x1bW5Qcm9wcyIsInRleHRDZW50ZXIiLCJ0ZXh0QWxpZ24iLCJ0ZXh0UmlnaHQiLCJoZWFkZXJQcm9wcyIsImhvcml6b250YWwiLCJkcmFnTGlzdGtleUV4dHJhY3RvciIsIm9uSXRlbU1vdmVkIiwib25SZW9yZGVyZWQiLCJkcmFnTGlzdFJlbmRlckl0ZW1Db250ZW50IiwiZHJhZ0xpc3RDYWNoZUtleUV4dHJhY3RvciIsImFuaW1hdGlvbkFyZ3MiLCJpdGVtSW5kZXgiLCJ4IiwieSIsImFuaW1hdGVkUG9zaXRpb24iLCJ0aW1pbmciLCJzdGFydCIsImZyb21JdGVtIiwiZnJvbVBvc2l0aW9uIiwidG9JdGVtIiwidG9Qb3NpdGlvbiIsIlRhYmxlU2V0dGluZ0NvbHVtbiIsImNvbnN0cnVjdG9yIiwidG9Db2x1bW4iLCJmaW5kIiwidXBkYXRlIiwiaXNBY3RpdmUiLCJ0b3VjaFByb3BzIiwiYW5pbWF0ZWRXaWR0aCIsImFjdGl2ZSIsImhlYWRlckNsYXNzTmFtZUZvckNvbHVtbiIsImNvbW1vblByb3BzIiwiaGVhZGVyTGFiZWxGb3JDb2x1bW4iLCJsYWJlbCIsImN1cnJlbnRNb2RlbENsYXNzIiwicGF0aCIsInBhdGhQYXJ0IiwicmVsYXRpb25zaGlwcyIsInJlbGF0aW9uc2hpcCIsInJlbGF0aW9uc2hpcEluQXJyYXkiLCJ1bmRlcnNjb3JlIiwiYXR0cmlidXRlIiwiaHVtYW5BdHRyaWJ1dGVOYW1lIiwiY2hhbmdlUGFyYW1zUGFyYW1zIiwiYXNPYmplY3QiLCJPUyIsIm5hdnRpdmVGb3JtUGFyYW1zIiwic2VyaWFsaXplRm9ybSIsIkpTT04iLCJzdHJpbmdpZnkiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvdGFibGUvdGFibGUuanN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7ZGlnZywgZGlnc30gZnJvbSBcImRpZ2dlcml6ZVwiXG5pbXBvcnQgUmVhY3QsIHtjcmVhdGVDb250ZXh0LCB1c2VDb250ZXh0LCB1c2VNZW1vLCB1c2VSZWZ9IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQge0FuaW1hdGVkLCBQbGF0Zm9ybSwgUHJlc3NhYmxlLCBWaWV3fSBmcm9tIFwicmVhY3QtbmF0aXZlXCJcbmltcG9ydCBCYXNlQ29tcG9uZW50IGZyb20gXCIuLi9iYXNlLWNvbXBvbmVudFwiXG5pbXBvcnQgQ2FyZCBmcm9tIFwiLi4vYm9vdHN0cmFwL2NhcmRcIlxuaW1wb3J0IGNsYXNzTmFtZXMgZnJvbSBcImNsYXNzbmFtZXNcIlxuaW1wb3J0IENvbGxlY3Rpb24gZnJvbSBcIi4uL2NvbGxlY3Rpb25cIlxuaW1wb3J0IGNvbHVtblZpc2libGUgZnJvbSBcIi4vY29sdW1uLXZpc2libGVcIlxuaW1wb3J0IGRlYm91bmNlIGZyb20gXCJkZWJvdW5jZVwiXG5pbXBvcnQgRHJhZ2dhYmxlU29ydCBmcm9tIFwiLi4vZHJhZ2dhYmxlLXNvcnQvaW5kZXhcIlxuaW1wb3J0IEV2ZW50RW1pdHRlciBmcm9tIFwiZXZlbnRzXCJcbmltcG9ydCBGaWx0ZXJzIGZyb20gXCIuL2ZpbHRlcnNcIlxuaW1wb3J0IEZsYXRMaXN0IGZyb20gXCIuL2NvbXBvbmVudHMvZmxhdC1saXN0XCJcbmltcG9ydCB7Rm9ybX0gZnJvbSBcIi4uL2Zvcm1cIlxuaW1wb3J0IEhlYWRlciBmcm9tIFwiLi9jb21wb25lbnRzL2hlYWRlclwiXG5pbXBvcnQgSGVhZGVyQ29sdW1uIGZyb20gXCIuL2hlYWRlci1jb2x1bW5cIlxuaW1wb3J0IEhlYWRlclNlbGVjdCBmcm9tIFwiLi9oZWFkZXItc2VsZWN0XCJcbmltcG9ydCBJY29uIGZyb20gXCIuLi91dGlscy9pY29uXCJcbmltcG9ydCB7aW5jb3Jwb3JhdGV9IGZyb20gXCJpbmNvcnBvcmF0b3JcIlxuaW1wb3J0ICogYXMgaW5mbGVjdGlvbiBmcm9tIFwiaW5mbGVjdGlvblwiXG5pbXBvcnQgbWVtbyBmcm9tIFwic2V0LXN0YXRlLWNvbXBhcmUvc3JjL21lbW9cIlxuaW1wb3J0IG1vZGVsQ2xhc3NSZXF1aXJlIGZyb20gXCIuLi9tb2RlbC1jbGFzcy1yZXF1aXJlXCJcbmltcG9ydCBNb2RlbFJvdyBmcm9tIFwiLi9tb2RlbC1yb3dcIlxuaW1wb3J0IFBhZ2luYXRlIGZyb20gXCIuLi9ib290c3RyYXAvcGFnaW5hdGVcIlxuaW1wb3J0IFBhcmFtcyBmcm9tIFwiLi4vcGFyYW1zXCJcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIlxuaW1wb3J0IFJvdyBmcm9tIFwiLi9jb21wb25lbnRzL3Jvd1wiXG5pbXBvcnQgc2VsZWN0Q2FsY3VsYXRvciBmcm9tIFwiLi9zZWxlY3QtY2FsY3VsYXRvclwiXG5pbXBvcnQgU2VsZWN0IGZyb20gXCIuLi9pbnB1dHMvc2VsZWN0XCJcbmltcG9ydCBTZXR0aW5ncyBmcm9tIFwiLi9zZXR0aW5ncy9pbmRleFwiXG5pbXBvcnQge3NoYXBlQ29tcG9uZW50fSBmcm9tIFwic2V0LXN0YXRlLWNvbXBhcmUvc3JjL3NoYXBlLWNvbXBvbmVudFwiXG5pbXBvcnQgVGFibGVTZXR0aW5ncyBmcm9tIFwiLi90YWJsZS1zZXR0aW5nc1wiXG5pbXBvcnQgVGV4dCBmcm9tIFwiLi4vdXRpbHMvdGV4dFwiXG5pbXBvcnQgdW5pcXVuaXplIGZyb20gXCJ1bmlxdW5pemVcIlxuaW1wb3J0IHVzZUJyZWFrcG9pbnQgZnJvbSBcIi4uL3VzZS1icmVha3BvaW50XCJcbmltcG9ydCB1c2VDb2xsZWN0aW9uIGZyb20gXCIuLi91c2UtY29sbGVjdGlvblwiXG5pbXBvcnQgdXNlSTE4biBmcm9tIFwiaTE4bi1vbi1zdGVyb2lkcy9zcmMvdXNlLWkxOG5cIlxuaW1wb3J0IHVzZUV2ZW50RW1pdHRlciBmcm9tIFwiLi4vdXNlLWV2ZW50LWVtaXR0ZXJcIlxuaW1wb3J0IHVzZU1vZGVsRXZlbnQgZnJvbSBcIi4uL3VzZS1tb2RlbC1ldmVudFwiXG5pbXBvcnQgdXNlUXVlcnlQYXJhbXMgZnJvbSBcIm9uLWxvY2F0aW9uLWNoYW5nZWQvYnVpbGQvdXNlLXF1ZXJ5LXBhcmFtc1wiXG5pbXBvcnQgV2lkdGhzIGZyb20gXCIuL3dpZHRoc1wiXG5cbmNvbnN0IHBhZ2luYXRpb25PcHRpb25zID0gWzMwLCA2MCwgOTAsIFtcIkFsbFwiLCBcImFsbFwiXV1cbmNvbnN0IFdvcmtlclBsdWdpbnNDaGVja0FsbENoZWNrYm94ID0gUmVhY3QubGF6eSgoKSA9PiBpbXBvcnQoXCIuL3dvcmtlci1wbHVnaW5zLWNoZWNrLWFsbC1jaGVja2JveFwiKSlcbmNvbnN0IFRhYmxlQ29udGV4dCA9IGNyZWF0ZUNvbnRleHQoKVxuXG5jb25zdCBMaXN0SGVhZGVyQ29tcG9uZW50ID0gbWVtbyhzaGFwZUNvbXBvbmVudChjbGFzcyBMaXN0SGVhZGVyQ29tcG9uZW50IGV4dGVuZHMgQmFzZUNvbXBvbmVudCB7XG4gIHNldHVwKCkge1xuICAgIHRoaXMudXNlU3RhdGVzKHtcbiAgICAgIGxhc3RVcGRhdGU6IG5ldyBEYXRlKClcbiAgICB9KVxuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHttZFVwfSA9IHVzZUJyZWFrcG9pbnQoKVxuICAgIGNvbnN0IHRhYmxlQ29udGV4dFZhbHVlID0gdXNlQ29udGV4dChUYWJsZUNvbnRleHQpXG4gICAgY29uc3QgdGFibGUgPSB0YWJsZUNvbnRleHRWYWx1ZS50YWJsZVxuICAgIGNvbnN0IHtjb2xsZWN0aW9uLCBldmVudHMsIHF1ZXJ5V2l0aG91dFBhZ2luYXRpb24sIHR9ID0gdGFibGUudHRcbiAgICBjb25zdCB7cXVlcnl9ID0gZGlncyhjb2xsZWN0aW9uLCBcInF1ZXJ5XCIpXG5cbiAgICB1c2VFdmVudEVtaXR0ZXIoZXZlbnRzLCBcImNvbHVtblZpc2liaWxpdHlVcGRhdGVkXCIsIHRoaXMudHQub25Db2x1bW5WaXNpYmlsaXR5VXBkYXRlZClcblxuICAgIHJldHVybiAoXG4gICAgICA8Um93IGRhdGFTZXQ9e3tjbGFzczogXCJhcGktbWFrZXIvdGFibGUvaGVhZGVyLXJvd1wifX0gc3R5bGU9e3RhYmxlLnN0eWxlRm9yUm93SGVhZGVyKCl9PlxuICAgICAgICB7dGFibGUucC53b3JrcGxhY2UgJiYgdGFibGUucy5jdXJyZW50V29ya3BsYWNlICYmXG4gICAgICAgICAgPEhlYWRlciBzdHlsZT17dGFibGUuc3R5bGVGb3JIZWFkZXIoe3N0eWxlOiB7d2lkdGg6IG1kVXAgPyA0MSA6IHVuZGVmaW5lZH19KX0+XG4gICAgICAgICAgICA8V29ya2VyUGx1Z2luc0NoZWNrQWxsQ2hlY2tib3hcbiAgICAgICAgICAgICAgY3VycmVudFdvcmtwbGFjZT17dGFibGUucy5jdXJyZW50V29ya3BsYWNlfVxuICAgICAgICAgICAgICBxdWVyeT17cXVlcnlXaXRob3V0UGFnaW5hdGlvbn1cbiAgICAgICAgICAgICAgc3R5bGU9e3RoaXMud29ya2VyUGxndWluc0NoZWNrQWxsQ2hlY2tib3hTdHlsZSB8fD0ge21hcmdpbkhvcml6b250YWw6IFwiYXV0b1wifX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICB7IW1kVXAgJiZcbiAgICAgICAgICAgICAgPFRleHQgc3R5bGU9e3RoaXMuc2VsZWN0QWxsRm91bmRUZXh0U3R5bGUgfHw9IHttYXJnaW5MZWZ0OiAzfX0+XG4gICAgICAgICAgICAgICAge3QoXCIuc2VsZWN0X2FsbF9mb3VuZFwiLCB7ZGVmYXVsdFZhbHVlOiBcIlNlbGVjdCBhbGwgZm91bmRcIn0pfVxuICAgICAgICAgICAgICA8L1RleHQ+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9IZWFkZXI+XG4gICAgICAgIH1cbiAgICAgICAgeyFtZFVwICYmXG4gICAgICAgICAgPEhlYWRlciBzdHlsZT17dGFibGUuc3R5bGVGb3JIZWFkZXIoe3N0eWxlOiB7fX0pfT5cbiAgICAgICAgICAgIDxIZWFkZXJTZWxlY3QgcHJlcGFyZWRDb2x1bW5zPXt0YWJsZS5zLnByZXBhcmVkQ29sdW1uc30gcXVlcnk9e3F1ZXJ5fSB0YWJsZT17dGFibGV9IC8+XG4gICAgICAgICAgPC9IZWFkZXI+XG4gICAgICAgIH1cbiAgICAgICAge21kVXAgJiZcbiAgICAgICAgICA8PlxuICAgICAgICAgICAge3RhYmxlLmhlYWRlcnNDb250ZW50RnJvbUNvbHVtbnMoKX1cbiAgICAgICAgICAgIDxIZWFkZXIgc3R5bGU9e3RhYmxlLnN0eWxlRm9ySGVhZGVyKHtzdHlsZToge30sIHR5cGU6IFwiYWN0aW9uc1wifSl9IC8+XG4gICAgICAgICAgPC8+XG4gICAgICAgIH1cbiAgICAgIDwvUm93PlxuICAgIClcbiAgfVxuXG4gIG9uQ29sdW1uVmlzaWJpbGl0eVVwZGF0ZWQgPSAoKSA9PiB0aGlzLnNldFN0YXRlKHtsYXN0VXBkYXRlOiBuZXcgRGF0ZSgpfSlcbn0pKVxuXG5leHBvcnQgZGVmYXVsdCBtZW1vKHNoYXBlQ29tcG9uZW50KGNsYXNzIEFwaU1ha2VyVGFibGUgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IHtcbiAgc3RhdGljIGRlZmF1bHRQcm9wcyA9IHtcbiAgICBjYXJkOiB0cnVlLFxuICAgIGN1cnJlbnRVc2VyOiBudWxsLFxuICAgIGRlc3Ryb3lFbmFibGVkOiB0cnVlLFxuICAgIGZpbHRlckNhcmQ6IHRydWUsXG4gICAgZmlsdGVyU3VibWl0QnV0dG9uOiB0cnVlLFxuICAgIG5vUmVjb3Jkc0F2YWlsYWJsZUNvbnRlbnQ6IHVuZGVmaW5lZCxcbiAgICBub1JlY29yZHNGb3VuZENvbnRlbnQ6IHVuZGVmaW5lZCxcbiAgICBwcmVsb2FkczogW10sXG4gICAgc2VsZWN0OiB7fSxcbiAgICBzdHlsZVVJOiB0cnVlLFxuICAgIHdvcmtwbGFjZTogZmFsc2VcbiAgfVxuXG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgYWJpbGl0aWVzOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIGFjdGlvbnNDb250ZW50OiBQcm9wVHlwZXMuZnVuYyxcbiAgICBhcHBIaXN0b3J5OiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIGNhcmQ6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gICAgY2xhc3NOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGNvbGxlY3Rpb246IFByb3BUeXBlcy5pbnN0YW5jZU9mKENvbGxlY3Rpb24pLFxuICAgIGNvbHVtbnM6IFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBlcy5hcnJheSwgUHJvcFR5cGVzLmZ1bmNdKSxcbiAgICBjb250cm9sczogUHJvcFR5cGVzLmZ1bmMsXG4gICAgY3VycmVudFVzZXI6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgZGVmYXVsdERhdGVGb3JtYXROYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGRlZmF1bHREYXRlVGltZUZvcm1hdE5hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgZGVmYXVsdFBhcmFtczogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBkZXN0cm95RW5hYmxlZDogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgICBkZXN0cm95TWVzc2FnZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBlZGl0TW9kZWxQYXRoOiBQcm9wVHlwZXMuZnVuYyxcbiAgICBmaWx0ZXJDYXJkOiBQcm9wVHlwZXMuYm9vbC5pc1JlcXVpcmVkLFxuICAgIGZpbHRlckNvbnRlbnQ6IFByb3BUeXBlcy5mdW5jLFxuICAgIGZpbHRlclN1Ym1pdExhYmVsOiBQcm9wVHlwZXMuYW55LFxuICAgIGdyb3VwQnk6IFByb3BUeXBlcy5hcnJheSxcbiAgICBoZWFkZXI6IFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBlcy5mdW5jLCBQcm9wVHlwZXMuc3RyaW5nXSksXG4gICAgaWRlbnRpZmllcjogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBtb2RlbENsYXNzOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG5vUmVjb3Jkc0F2YWlsYWJsZUNvbnRlbnQ6IFByb3BUeXBlcy5mdW5jLFxuICAgIG5vUmVjb3Jkc0ZvdW5kQ29udGVudDogUHJvcFR5cGVzLmZ1bmMsXG4gICAgb25Nb2RlbHNMb2FkZWQ6IFByb3BUeXBlcy5mdW5jLFxuICAgIHBhZ2luYXRlQ29udGVudDogUHJvcFR5cGVzLmZ1bmMsXG4gICAgcGFnaW5hdGlvbkNvbXBvbmVudDogUHJvcFR5cGVzLmZ1bmMsXG4gICAgcHJlbG9hZHM6IFByb3BUeXBlcy5hcnJheS5pc1JlcXVpcmVkLFxuICAgIHF1ZXJ5TWV0aG9kOiBQcm9wVHlwZXMuZnVuYyxcbiAgICBxdWVyeU5hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgc2VsZWN0OiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIHNlbGVjdENvbHVtbnM6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgc3R5bGVzOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIHN0eWxlVUk6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gICAgdmlld01vZGVsUGF0aDogUHJvcFR5cGVzLmZ1bmMsXG4gICAgd29ya3BsYWNlOiBQcm9wVHlwZXMuYm9vbC5pc1JlcXVpcmVkXG4gIH1cblxuICBkcmFnZ2FibGVTb3J0RXZlbnRzID0gbmV3IEV2ZW50RW1pdHRlcigpXG4gIGV2ZW50cyA9IG5ldyBFdmVudEVtaXR0ZXIoKVxuICB0YWJsZVNldHRpbmdzID0gbnVsbFxuXG4gIHNldHVwKCkge1xuICAgIGNvbnN0IHt0fSA9IHVzZUkxOG4oe25hbWVzcGFjZTogXCJqcy5hcGlfbWFrZXIudGFibGVcIn0pXG4gICAgY29uc3Qge25hbWU6IGJyZWFrcG9pbnQsIG1kVXB9ID0gdXNlQnJlYWtwb2ludCgpXG4gICAgY29uc3QgcXVlcnlQYXJhbXMgPSB1c2VRdWVyeVBhcmFtcygpXG5cbiAgICB0aGlzLnNldEluc3RhbmNlKHtcbiAgICAgIGJyZWFrcG9pbnQsXG4gICAgICBmaWx0ZXJGb3JtUmVmOiB1c2VSZWYoKSxcbiAgICAgIG1kVXAsXG4gICAgICB0XG4gICAgfSlcblxuICAgIGNvbnN0IGNvbGxlY3Rpb25LZXkgPSBkaWdnKHRoaXMucC5tb2RlbENsYXNzLm1vZGVsQ2xhc3NEYXRhKCksIFwiY29sbGVjdGlvbktleVwiKVxuICAgIGxldCBxdWVyeU5hbWUgPSB0aGlzLnByb3BzLnF1ZXJ5TmFtZVxuXG4gICAgaWYgKCFxdWVyeU5hbWUpIHF1ZXJ5TmFtZSA9IGNvbGxlY3Rpb25LZXlcblxuICAgIGNvbnN0IHF1ZXJ5U05hbWUgPSBgJHtxdWVyeU5hbWV9X3NgXG5cbiAgICB0aGlzLnVzZVN0YXRlcyh7XG4gICAgICBjb2x1bW5zOiAoKSA9PiB0aGlzLmNvbHVtbnNBc0FycmF5KCksXG4gICAgICBjdXJyZW50V29ya3BsYWNlOiB1bmRlZmluZWQsXG4gICAgICBjdXJyZW50V29ya3BsYWNlQ291bnQ6IG51bGwsXG4gICAgICBmaWx0ZXJGb3JtOiBudWxsLFxuICAgICAgY29sdW1uc1RvU2hvdzogbnVsbCxcbiAgICAgIGRyYWdnZWRDb2x1bW46IG51bGwsXG4gICAgICBpZGVudGlmaWVyOiAoKSA9PiB0aGlzLnByb3BzLmlkZW50aWZpZXIgfHwgYCR7Y29sbGVjdGlvbktleX0tZGVmYXVsdGAsXG4gICAgICBsYXN0VXBkYXRlOiAoKSA9PiBuZXcgRGF0ZSgpLFxuICAgICAgcHJlbG9hZDogdW5kZWZpbmVkLFxuICAgICAgcHJlcGFyZWRDb2x1bW5zOiB1bmRlZmluZWQsXG4gICAgICBxdWVyeU5hbWUsXG4gICAgICBxdWVyeVFOYW1lOiAoKSA9PiBgJHtxdWVyeU5hbWV9X3FgLFxuICAgICAgcXVlcnlQYWdlTmFtZTogKCkgPT4gYCR7cXVlcnlOYW1lfV9wYWdlYCxcbiAgICAgIHF1ZXJ5U05hbWUsXG4gICAgICByZXNpemluZzogZmFsc2UsXG4gICAgICBzaG93RmlsdGVyczogKCkgPT4gQm9vbGVhbihxdWVyeVBhcmFtc1txdWVyeVNOYW1lXSksXG4gICAgICBzaG93U2V0dGluZ3M6IGZhbHNlLFxuICAgICAgdGFibGVTZXR0aW5nOiB1bmRlZmluZWQsXG4gICAgICB0YWJsZVNldHRpbmdMb2FkZWQ6IGZhbHNlLFxuICAgICAgdGFibGVTZXR0aW5nRnVsbENhY2hlS2V5OiB1bmRlZmluZWQsXG4gICAgICB3aWR0aDogdW5kZWZpbmVkLFxuICAgICAgd2lkdGhzOiBudWxsXG4gICAgfSlcblxuICAgIHRoaXMudGFibGVDb250ZXh0VmFsdWUgPSB1c2VNZW1vKFxuICAgICAgKCkgPT4gKHtcbiAgICAgICAgY2FjaGVLZXk6IHRoaXMucy50YWJsZVNldHRpbmdGdWxsQ2FjaGVLZXksXG4gICAgICAgIGxhc3RVcGRhdGU6IHRoaXMucy5sYXN0VXBkYXRlLFxuICAgICAgICByZXNpemluZzogdGhpcy5zLnJlc2l6aW5nLFxuICAgICAgICB0YWJsZTogdGhpc1xuICAgICAgfSksXG4gICAgICBbdGhpcy5zLmxhc3RVcGRhdGUsIHRoaXMucy5yZXNpemluZywgdGhpcy5zLnRhYmxlU2V0dGluZ0Z1bGxDYWNoZUtleV1cbiAgICApXG5cbiAgICB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmICh0aGlzLnByb3BzLndvcmtwbGFjZSkge1xuICAgICAgICB0aGlzLmxvYWRDdXJyZW50V29ya3BsYWNlKCkudGhlbigoKSA9PiB7XG4gICAgICAgICAgdGhpcy5sb2FkQ3VycmVudFdvcmtwbGFjZUNvdW50KClcbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9LCBbdGhpcy5wLmN1cnJlbnRVc2VyPy5pZCgpXSlcblxuICAgIHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKCF0aGlzLnR0LnRhYmxlU2V0dGluZ3MgJiYgdGhpcy5zLndpZHRoKSB7XG4gICAgICAgIHRoaXMubG9hZFRhYmxlU2V0dGluZygpXG4gICAgICB9XG4gICAgfSwgW3RoaXMucC5jdXJyZW50VXNlcj8uaWQoKSwgdGhpcy5zLndpZHRoXSlcblxuICAgIHVzZU1vZGVsRXZlbnQodGhpcy5zLmN1cnJlbnRXb3JrcGxhY2UsIFwid29ya3BsYWNlX2xpbmtzX2NyZWF0ZWRcIiwgdGhpcy50dC5vbkxpbmtzQ3JlYXRlZClcbiAgICB1c2VNb2RlbEV2ZW50KHRoaXMucy5jdXJyZW50V29ya3BsYWNlLCBcIndvcmtwbGFjZV9saW5rc19kZXN0cm95ZWRcIiwgdGhpcy50dC5vbkxpbmtzRGVzdHJveWVkKVxuXG4gICAgbGV0IGNvbGxlY3Rpb25SZWFkeSA9IHRydWVcbiAgICBsZXQgc2VsZWN0XG5cbiAgICBpZiAoIXRoaXMucy5wcmVwYXJlZENvbHVtbnMpIHtcbiAgICAgIGNvbGxlY3Rpb25SZWFkeSA9IGZhbHNlXG4gICAgfVxuXG4gICAgaWYgKGNvbGxlY3Rpb25SZWFkeSkge1xuICAgICAgc2VsZWN0ID0gc2VsZWN0Q2FsY3VsYXRvcih7dGFibGU6IHRoaXN9KVxuICAgIH1cblxuICAgIHRoaXMuY29sbGVjdGlvbiA9IHVzZUNvbGxlY3Rpb24oe1xuICAgICAgYWJpbGl0aWVzOiB0aGlzLmFiaWxpdGllc1RvTG9hZCgpLFxuICAgICAgZGVmYXVsdFBhcmFtczogdGhpcy5wcm9wcy5kZWZhdWx0UGFyYW1zLFxuICAgICAgY29sbGVjdGlvbjogdGhpcy5wcm9wcy5jb2xsZWN0aW9uLFxuICAgICAgZ3JvdXBCeTogdGhpcy5wcm9wcy5ncm91cEJ5LFxuICAgICAgaWZDb25kaXRpb246IGNvbGxlY3Rpb25SZWFkeSxcbiAgICAgIG1vZGVsQ2xhc3M6IHRoaXMucHJvcHMubW9kZWxDbGFzcyxcbiAgICAgIG9uTW9kZWxzTG9hZGVkOiB0aGlzLnByb3BzLm9uTW9kZWxzTG9hZGVkLFxuICAgICAgbm9SZWNvcmRzQXZhaWxhYmxlQ29udGVudDogdGhpcy5wcm9wcy5ub1JlY29yZHNBdmFpbGFibGVDb250ZW50LFxuICAgICAgbm9SZWNvcmRzRm91bmRDb250ZW50OiB0aGlzLnByb3BzLm5vUmVjb3Jkc0ZvdW5kQ29udGVudCxcbiAgICAgIHBhZ2luYXRpb246IHRydWUsXG4gICAgICBwcmVsb2FkczogdGhpcy5zdGF0ZS5wcmVsb2FkLFxuICAgICAgcXVlcnlNZXRob2Q6IHRoaXMucHJvcHMucXVlcnlNZXRob2QsXG4gICAgICBxdWVyeU5hbWUsXG4gICAgICBzZWxlY3QsXG4gICAgICBzZWxlY3RDb2x1bW5zOiB0aGlzLnByb3BzLnNlbGVjdENvbHVtbnNcbiAgICB9KVxuICAgIHRoaXMucXVlcnlXaXRob3V0UGFnaW5hdGlvbiA9IHVzZU1lbW8oXG4gICAgICAoKSA9PiB0aGlzLmNvbGxlY3Rpb24/LnF1ZXJ5Py5jbG9uZSgpPy5leGNlcHQoXCJwYWdlXCIpLFxuICAgICAgW3RoaXMuY29sbGVjdGlvbi5xdWVyeV1cbiAgICApXG5cbiAgICB1c2VFdmVudEVtaXR0ZXIodGhpcy50dC5kcmFnZ2FibGVTb3J0RXZlbnRzLCBcIm9uRHJhZ1N0YXJ0XCIsIHRoaXMudHQub25EcmFnU3RhcnQpXG4gICAgdXNlRXZlbnRFbWl0dGVyKHRoaXMudHQuZHJhZ2dhYmxlU29ydEV2ZW50cywgXCJvbkRyYWdFbmRBbmltYXRpb25cIiwgdGhpcy50dC5vbkRyYWdFbmRBbmltYXRpb24pXG4gICAgdXNlRXZlbnRFbWl0dGVyKHRoaXMudHQuZXZlbnRzLCBcImNvbHVtblZpc2liaWxpdHlVcGRhdGVkXCIsIHRoaXMudHQub25Db2x1bW5WaXNpYmlsaXR5VXBkYXRlZClcbiAgfVxuXG4gIG9uQ29sdW1uVmlzaWJpbGl0eVVwZGF0ZWQgPSAoKSA9PiB0aGlzLnNldFN0YXRlKHtjb2x1bW5zVG9TaG93OiB0aGlzLmdldENvbHVtbnNUb1Nob3codGhpcy5zLmNvbHVtbnMpLCBsYXN0VXBkYXRlOiBuZXcgRGF0ZSgpfSlcbiAgb25EcmFnU3RhcnQgPSAoe2l0ZW19KSA9PiBpdGVtLmFuaW1hdGVkWkluZGV4LnNldFZhbHVlKDk5OTkpXG4gIG9uRHJhZ0VuZEFuaW1hdGlvbiA9ICh7aXRlbX0pID0+IGl0ZW0uYW5pbWF0ZWRaSW5kZXguc2V0VmFsdWUoMClcblxuICBhc3luYyBsb2FkQ3VycmVudFdvcmtwbGFjZSgpIHtcbiAgICBjb25zdCBXb3JrcGxhY2UgPSBtb2RlbENsYXNzUmVxdWlyZShcIldvcmtwbGFjZVwiKVxuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IFdvcmtwbGFjZS5jdXJyZW50KClcbiAgICBjb25zdCBjdXJyZW50V29ya3BsYWNlID0gZGlnZyhyZXN1bHQsIFwiY3VycmVudFwiLCAwKVxuXG4gICAgdGhpcy5zZXRTdGF0ZSh7Y3VycmVudFdvcmtwbGFjZX0pXG4gIH1cblxuICBhc3luYyBsb2FkQ3VycmVudFdvcmtwbGFjZUNvdW50KCkge1xuICAgIGNvbnN0IFdvcmtwbGFjZUxpbmsgPSBtb2RlbENsYXNzUmVxdWlyZShcIldvcmtwbGFjZUxpbmtcIilcbiAgICBjb25zdCBjdXJyZW50V29ya3BsYWNlQ291bnQgPSBhd2FpdCBXb3JrcGxhY2VMaW5rXG4gICAgICAucmFuc2Fjayh7XG4gICAgICAgIHJlc291cmNlX3R5cGVfZXE6IHRoaXMucC5tb2RlbENsYXNzLm1vZGVsQ2xhc3NEYXRhKCkubmFtZSxcbiAgICAgICAgd29ya3BsYWNlX2lkX2VxOiB0aGlzLnMuY3VycmVudFdvcmtwbGFjZS5pZCgpXG4gICAgICB9KVxuICAgICAgLmNvdW50KClcblxuICAgIHRoaXMuc2V0U3RhdGUoe2N1cnJlbnRXb3JrcGxhY2VDb3VudH0pXG4gIH1cblxuICBnZXRDb2x1bW5zVG9TaG93KGNvbHVtbnMpIHtcbiAgICByZXR1cm4gY29sdW1uc1xuICAgICAgLmZpbHRlcigoe2NvbHVtbiwgdGFibGVTZXR0aW5nQ29sdW1ufSkgPT4gY29sdW1uVmlzaWJsZShjb2x1bW4sIHRhYmxlU2V0dGluZ0NvbHVtbikpXG4gICAgICAuc29ydCgoYSwgYikgPT4gYS50YWJsZVNldHRpbmdDb2x1bW4ucG9zaXRpb24oKSAtIGIudGFibGVTZXR0aW5nQ29sdW1uLnBvc2l0aW9uKCkpXG4gIH1cblxuICBhc3luYyBsb2FkVGFibGVTZXR0aW5nKCkge1xuICAgIHRoaXMudGFibGVTZXR0aW5ncyA9IG5ldyBUYWJsZVNldHRpbmdzKHt0YWJsZTogdGhpc30pXG5cbiAgICBjb25zdCB0YWJsZVNldHRpbmcgPSBhd2FpdCB0aGlzLnRhYmxlU2V0dGluZ3MubG9hZEV4aXN0aW5nT3JDcmVhdGVUYWJsZVNldHRpbmdzKClcbiAgICBjb25zdCB7Y29sdW1ucywgcHJlbG9hZH0gPSB0aGlzLnRhYmxlU2V0dGluZ3MucHJlcGFyZWRDb2x1bW5zKHRhYmxlU2V0dGluZylcbiAgICBjb25zdCB7d2lkdGh9ID0gdGhpcy5zXG4gICAgY29uc3Qgd2lkdGhzID0gbmV3IFdpZHRocyh7Y29sdW1ucywgdGFibGU6IHRoaXMsIHdpZHRofSlcbiAgICBjb25zdCBjb2x1bW5zVG9TaG93ID0gdGhpcy5nZXRDb2x1bW5zVG9TaG93KGNvbHVtbnMpXG5cbiAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgIGNvbHVtbnMsXG4gICAgICBjb2x1bW5zVG9TaG93LFxuICAgICAgcHJlcGFyZWRDb2x1bW5zOiBjb2x1bW5zLFxuICAgICAgcHJlbG9hZDogdGhpcy5tZXJnZWRQcmVsb2FkcyhwcmVsb2FkKSxcbiAgICAgIHRhYmxlU2V0dGluZyxcbiAgICAgIHRhYmxlU2V0dGluZ0xvYWRlZDogdHJ1ZSxcbiAgICAgIHRhYmxlU2V0dGluZ0Z1bGxDYWNoZUtleTogdGFibGVTZXR0aW5nLmZ1bGxDYWNoZUtleSgpLFxuICAgICAgd2lkdGhzXG4gICAgfSlcbiAgfVxuXG4gIHVwZGF0ZVNldHRpbmdzRnVsbENhY2hlS2V5ID0gKCkgPT4gdGhpcy5zZXRTdGF0ZSh7dGFibGVTZXR0aW5nRnVsbENhY2hlS2V5OiB0aGlzLnN0YXRlLnRhYmxlU2V0dGluZy5mdWxsQ2FjaGVLZXkoKX0pXG5cbiAgY29sdW1uc0FzQXJyYXkgPSAoKSA9PiB7XG4gICAgaWYgKHR5cGVvZiB0aGlzLnByb3BzLmNvbHVtbnMgPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICByZXR1cm4gdGhpcy5wcm9wcy5jb2x1bW5zKClcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5wcm9wcy5jb2x1bW5zXG4gIH1cblxuICBtZXJnZWRQcmVsb2FkcyhwcmVsb2FkKSB7XG4gICAgY29uc3Qge3ByZWxvYWRzfSA9IHRoaXMucHJvcHNcbiAgICBsZXQgbWVyZ2VkUHJlbG9hZHMgPSBbXVxuXG4gICAgaWYgKHByZWxvYWRzKSBtZXJnZWRQcmVsb2FkcyA9IG1lcmdlZFByZWxvYWRzLmNvbmNhdChwcmVsb2FkcylcbiAgICBpZiAocHJlbG9hZCkgbWVyZ2VkUHJlbG9hZHMgPSBtZXJnZWRQcmVsb2Fkcy5jb25jYXQocHJlbG9hZClcblxuICAgIHJldHVybiB1bmlxdW5pemUobWVyZ2VkUHJlbG9hZHMpXG4gIH1cblxuICByZW5kZXIgKCkge1xuICAgIGNvbnN0IHttb2RlbENsYXNzLCBub1JlY29yZHNBdmFpbGFibGVDb250ZW50LCBub1JlY29yZHNGb3VuZENvbnRlbnR9ID0gdGhpcy5wXG4gICAgY29uc3Qge2NvbGxlY3Rpb24sIGN1cnJlbnRVc2VyfSA9IHRoaXMucHJvcHNcbiAgICBjb25zdCB7cXVlcnlOYW1lLCBxdWVyeVNOYW1lLCBzaG93RmlsdGVyc30gPSB0aGlzLnNcbiAgICBjb25zdCB7XG4gICAgICBtb2RlbHMsXG4gICAgICBvdmVyYWxsQ291bnQsXG4gICAgICBxUGFyYW1zLFxuICAgICAgcXVlcnksXG4gICAgICByZXN1bHQsXG4gICAgICBzaG93Tm9SZWNvcmRzQXZhaWxhYmxlQ29udGVudCxcbiAgICAgIHNob3dOb1JlY29yZHNGb3VuZENvbnRlbnRcbiAgICB9ID0gZGlncyhcbiAgICAgIHRoaXMuY29sbGVjdGlvbixcbiAgICAgIFwibW9kZWxzXCIsXG4gICAgICBcIm92ZXJhbGxDb3VudFwiLFxuICAgICAgXCJxUGFyYW1zXCIsXG4gICAgICBcInF1ZXJ5XCIsXG4gICAgICBcInJlc3VsdFwiLFxuICAgICAgXCJzaG93Tm9SZWNvcmRzQXZhaWxhYmxlQ29udGVudFwiLFxuICAgICAgXCJzaG93Tm9SZWNvcmRzRm91bmRDb250ZW50XCJcbiAgICApXG5cbiAgICBpZiAoY29sbGVjdGlvbiAmJiBjb2xsZWN0aW9uLmFyZ3MubW9kZWxDbGFzcy5tb2RlbENsYXNzRGF0YSgpLm5hbWUgIT0gbW9kZWxDbGFzcy5tb2RlbENsYXNzRGF0YSgpLm5hbWUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYE1vZGVsIGNsYXNzIGZyb20gY29sbGVjdGlvbiAnJHtjb2xsZWN0aW9uLmFyZ3MubW9kZWxDbGFzcy5tb2RlbENsYXNzRGF0YSgpLm5hbWV9JyBgICtcbiAgICAgICAgYGRpZG4ndCBtYXRjaCBtb2RlbCBjbGFzcyBvbiB0YWJsZTogJyR7bW9kZWxDbGFzcy5tb2RlbENsYXNzRGF0YSgpLm5hbWV9J2BcbiAgICAgIClcbiAgICB9XG5cbiAgICByZXR1cm4gKFxuICAgICAgPFZpZXcgZGF0YVNldD17e2NsYXNzOiB0aGlzLmNsYXNzTmFtZSgpfX0gb25MYXlvdXQ9e3RoaXMudHQub25Db250YWluZXJMYXlvdXR9IHN0eWxlPXt0aGlzLnByb3BzLnN0eWxlcz8uY29udGFpbmVyfT5cbiAgICAgICAge3Nob3dOb1JlY29yZHNBdmFpbGFibGVDb250ZW50ICYmXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJsaXZlLXRhYmxlLS1uby1yZWNvcmRzLWF2YWlsYWJsZS1jb250ZW50XCI+XG4gICAgICAgICAgICB7bm9SZWNvcmRzQXZhaWxhYmxlQ29udGVudCh7bW9kZWxzLCBxUGFyYW1zLCBvdmVyYWxsQ291bnR9KX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgICAgICB7c2hvd05vUmVjb3Jkc0ZvdW5kQ29udGVudCAmJlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibGl2ZS10YWJsZS0tbm8tcmVjb3Jkcy1mb3VuZC1jb250ZW50XCI+XG4gICAgICAgICAgICB7bm9SZWNvcmRzRm91bmRDb250ZW50KHttb2RlbHMsIHFQYXJhbXMsIG92ZXJhbGxDb3VudH0pfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICAgIHtzaG93RmlsdGVycyAmJlxuICAgICAgICAgIDxGaWx0ZXJzIGN1cnJlbnRVc2VyPXtjdXJyZW50VXNlcn0gbW9kZWxDbGFzcz17bW9kZWxDbGFzc30gcXVlcnlOYW1lPXtxdWVyeU5hbWV9IHF1ZXJ5U05hbWU9e3F1ZXJ5U05hbWV9IC8+XG4gICAgICAgIH1cbiAgICAgICAge3FQYXJhbXMgJiYgcXVlcnkgJiYgcmVzdWx0ICYmIG1vZGVscyAmJiAhc2hvd05vUmVjb3Jkc0F2YWlsYWJsZUNvbnRlbnQgJiYgIXNob3dOb1JlY29yZHNGb3VuZENvbnRlbnQgJiZcbiAgICAgICAgICB0aGlzLmNhcmRPclRhYmxlKClcbiAgICAgICAgfVxuICAgICAgPC9WaWV3PlxuICAgIClcbiAgfVxuXG4gIGFiaWxpdGllc1RvTG9hZCAoKSB7XG4gICAgY29uc3QgYWJpbGl0aWVzVG9Mb2FkID0ge31cbiAgICBjb25zdCB7YWJpbGl0aWVzLCBtb2RlbENsYXNzfSA9IHRoaXMucHJvcHNcbiAgICBjb25zdCBvd25BYmlsaXRpZXMgPSBbXVxuXG4gICAgaWYgKHRoaXMucHJvcHMuZGVzdHJveUVuYWJsZWQpIG93bkFiaWxpdGllcy5wdXNoKFwiZGVzdHJveVwiKVxuICAgIGlmICh0aGlzLnByb3BzLmVkaXRNb2RlbFBhdGgpIG93bkFiaWxpdGllcy5wdXNoKFwiZWRpdFwiKVxuICAgIGlmICh0aGlzLnByb3BzLnZpZXdNb2RlbFBhdGgpIG93bkFiaWxpdGllcy5wdXNoKFwic2hvd1wiKVxuXG4gICAgaWYgKG93bkFiaWxpdGllcy5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCBtb2RlbENsYXNzTmFtZSA9IGRpZ2cobW9kZWxDbGFzcy5tb2RlbENsYXNzRGF0YSgpLCBcIm5hbWVcIilcblxuICAgICAgYWJpbGl0aWVzVG9Mb2FkW21vZGVsQ2xhc3NOYW1lXSA9IG93bkFiaWxpdGllc1xuICAgIH1cblxuICAgIGlmIChhYmlsaXRpZXMpIHtcbiAgICAgIGZvciAoY29uc3QgbW9kZWxOYW1lIGluIGFiaWxpdGllcykge1xuICAgICAgICBpZiAoIShtb2RlbE5hbWUgaW4gYWJpbGl0aWVzVG9Mb2FkKSkge1xuICAgICAgICAgIGFiaWxpdGllc1RvTG9hZFttb2RlbE5hbWVdID0gW11cbiAgICAgICAgfVxuXG4gICAgICAgIGZvciAoY29uc3QgYWJpbGl0eSBvZiBhYmlsaXRpZXNbbW9kZWxOYW1lXSkge1xuICAgICAgICAgIGFiaWxpdGllc1RvTG9hZFttb2RlbE5hbWVdLnB1c2goYWJpbGl0eSlcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBhYmlsaXRpZXNUb0xvYWRcbiAgfVxuXG4gIGNhcmRPclRhYmxlICgpIHtcbiAgICBjb25zdCB7XG4gICAgICBhYmlsaXRpZXMsXG4gICAgICBhY3Rpb25zQ29udGVudCxcbiAgICAgIGFwcEhpc3RvcnksXG4gICAgICBjYXJkLFxuICAgICAgY2xhc3NOYW1lLFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIGNvbHVtbnMsXG4gICAgICBjb250cm9scyxcbiAgICAgIGN1cnJlbnRVc2VyLFxuICAgICAgZGVmYXVsdERhdGVGb3JtYXROYW1lLFxuICAgICAgZGVmYXVsdERhdGVUaW1lRm9ybWF0TmFtZSxcbiAgICAgIGRlZmF1bHRQYXJhbXMsXG4gICAgICBkZXN0cm95RW5hYmxlZCxcbiAgICAgIGRlc3Ryb3lNZXNzYWdlLFxuICAgICAgZWRpdE1vZGVsUGF0aCxcbiAgICAgIGZpbHRlckNhcmQsXG4gICAgICBmaWx0ZXJDb250ZW50LFxuICAgICAgZmlsdGVyU3VibWl0QnV0dG9uLFxuICAgICAgZmlsdGVyU3VibWl0TGFiZWwsXG4gICAgICBncm91cEJ5LFxuICAgICAgaGVhZGVyLFxuICAgICAgaWRlbnRpZmllcixcbiAgICAgIG1vZGVsQ2xhc3MsXG4gICAgICBub1JlY29yZHNBdmFpbGFibGVDb250ZW50LFxuICAgICAgbm9SZWNvcmRzRm91bmRDb250ZW50LFxuICAgICAgb25Nb2RlbHNMb2FkZWQsXG4gICAgICBwYWdpbmF0ZUNvbnRlbnQsXG4gICAgICBwYWdpbmF0aW9uQ29tcG9uZW50LFxuICAgICAgcHJlbG9hZHMsXG4gICAgICBxdWVyeU1ldGhvZCxcbiAgICAgIHF1ZXJ5TmFtZSxcbiAgICAgIHNlbGVjdCxcbiAgICAgIHNlbGVjdENvbHVtbnMsXG4gICAgICBzdHlsZVVJLFxuICAgICAgdmlld01vZGVsUGF0aCxcbiAgICAgIHdvcmtwbGFjZSxcbiAgICAgIC4uLnJlc3RQcm9wc1xuICAgIH0gPSB0aGlzLnByb3BzXG4gICAgY29uc3Qge21vZGVscywgcVBhcmFtcywgcXVlcnksIHJlc3VsdH0gPSBkaWdzKHRoaXMuY29sbGVjdGlvbiwgXCJtb2RlbHNcIiwgXCJxUGFyYW1zXCIsIFwicXVlcnlcIiwgXCJyZXN1bHRcIilcblxuICAgIGxldCBoZWFkZXJDb250ZW50LCBQYWdpbmF0aW9uQ29tcG9uZW50XG5cbiAgICBpZiAodHlwZW9mIGhlYWRlciA9PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgIGhlYWRlckNvbnRlbnQgPSBoZWFkZXIoe21vZGVscywgcVBhcmFtcywgcXVlcnksIHJlc3VsdH0pXG4gICAgfSBlbHNlIGlmIChoZWFkZXIpIHtcbiAgICAgIGhlYWRlckNvbnRlbnQgPSBoZWFkZXJcbiAgICB9IGVsc2Uge1xuICAgICAgaGVhZGVyQ29udGVudCA9IG1vZGVsQ2xhc3MubW9kZWxOYW1lKCkuaHVtYW4oe2NvdW50OiAyfSlcbiAgICB9XG5cbiAgICBpZiAoIXBhZ2luYXRlQ29udGVudCkge1xuICAgICAgaWYgKHBhZ2luYXRpb25Db21wb25lbnQpIHtcbiAgICAgICAgUGFnaW5hdGlvbkNvbXBvbmVudCA9IHBhZ2luYXRpb25Db21wb25lbnRcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIFBhZ2luYXRpb25Db21wb25lbnQgPSBQYWdpbmF0ZVxuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGZsYXRMaXN0U3R5bGUgPSB7XG4gICAgICBvdmVyZmxvd1g6IFwiYXV0b1wiXG4gICAgfVxuXG4gICAgaWYgKHN0eWxlVUkpIHtcbiAgICAgIGZsYXRMaXN0U3R5bGUuYm9yZGVyID0gXCIxcHggc29saWQgI2RiZGJkYlwiXG4gICAgICBmbGF0TGlzdFN0eWxlLmJvcmRlclJhZGl1cyA9IDVcbiAgICB9XG5cbiAgICBjb25zdCBmbGF0TGlzdCA9IChcbiAgICAgIDxUYWJsZUNvbnRleHQuUHJvdmlkZXIgdmFsdWU9e3RoaXMudHQudGFibGVDb250ZXh0VmFsdWV9PlxuICAgICAgICA8RmxhdExpc3RcbiAgICAgICAgICBkYXRhPXttb2RlbHN9XG4gICAgICAgICAgZGF0YVNldD17e1xuICAgICAgICAgICAgY2xhc3M6IGNsYXNzTmFtZXMoXCJhcGktbWFrZXItLXRhYmxlXCIsIGNsYXNzTmFtZSksXG4gICAgICAgICAgICBjYWNoZUtleTogdGhpcy5zLnRhYmxlU2V0dGluZ0Z1bGxDYWNoZUtleSxcbiAgICAgICAgICAgIGxhc3RVcGRhdGU6IHRoaXMucy5sYXN0VXBkYXRlXG4gICAgICAgICAgfX1cbiAgICAgICAgICBleHRyYURhdGE9e3RoaXMucy5sYXN0VXBkYXRlfVxuICAgICAgICAgIGtleUV4dHJhY3Rvcj17dGhpcy50dC5rZXlFeHRyYXRvcn1cbiAgICAgICAgICBMaXN0SGVhZGVyQ29tcG9uZW50PXtMaXN0SGVhZGVyQ29tcG9uZW50fVxuICAgICAgICAgIHJlbmRlckl0ZW09e3RoaXMudHQucmVuZGVySXRlbX1cbiAgICAgICAgICBzaG93c0hvcml6b250YWxTY3JvbGxJbmRpY2F0b3JcbiAgICAgICAgICBzdHlsZT17ZmxhdExpc3RTdHlsZX1cbiAgICAgICAgICB7Li4ucmVzdFByb3BzfVxuICAgICAgICAvPlxuICAgICAgPC9UYWJsZUNvbnRleHQuUHJvdmlkZXI+XG4gICAgKVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIHtmaWx0ZXJDb250ZW50ICYmIGZpbHRlckNhcmQgJiZcbiAgICAgICAgICA8Q2FyZCBjbGFzc05hbWU9XCJsaXZlLXRhYmxlLS1maWx0ZXItY2FyZCBtYi00XCI+XG4gICAgICAgICAgICB7dGhpcy5maWx0ZXJGb3JtKCl9XG4gICAgICAgICAgPC9DYXJkPlxuICAgICAgICB9XG4gICAgICAgIHtmaWx0ZXJDb250ZW50ICYmICFmaWx0ZXJDYXJkICYmXG4gICAgICAgICAgdGhpcy5maWx0ZXJGb3JtKClcbiAgICAgICAgfVxuICAgICAgICB7Y2FyZCAmJlxuICAgICAgICAgIDxDYXJkXG4gICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZXMoXCJsaXZlLXRhYmxlLS10YWJsZS1jYXJkXCIsIFwibWItNFwiLCBjbGFzc05hbWUpfVxuICAgICAgICAgICAgY29udHJvbHM9e3RoaXMudGFibGVDb250cm9scygpfVxuICAgICAgICAgICAgaGVhZGVyPXtoZWFkZXJDb250ZW50fVxuICAgICAgICAgICAgZm9vdGVyPXt0aGlzLnRhYmxlRm9vdGVyKCl9XG4gICAgICAgICAgICB7Li4ucmVzdFByb3BzfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHtmbGF0TGlzdH1cbiAgICAgICAgICA8L0NhcmQ+XG4gICAgICAgIH1cbiAgICAgICAgeyFjYXJkICYmIGZsYXRMaXN0fVxuICAgICAgICB7cmVzdWx0ICYmIFBhZ2luYXRpb25Db21wb25lbnQgJiZcbiAgICAgICAgICA8UGFnaW5hdGlvbkNvbXBvbmVudCByZXN1bHQ9e3Jlc3VsdH0gLz5cbiAgICAgICAgfVxuICAgICAgICB7cmVzdWx0ICYmIHBhZ2luYXRlQ29udGVudCAmJlxuICAgICAgICAgIHBhZ2luYXRlQ29udGVudCh7cmVzdWx0fSlcbiAgICAgICAgfVxuICAgICAgPC8+XG4gICAgKVxuICB9XG5cbiAgb25Db250YWluZXJMYXlvdXQgPSAoZSkgPT4ge1xuICAgIGNvbnN0IHt3aWR0aH0gPSBlLm5hdGl2ZUV2ZW50LmxheW91dFxuICAgIGNvbnN0IHt3aWR0aHN9ID0gdGhpcy5zXG5cbiAgICB0aGlzLnNldFN0YXRlKHt3aWR0aH0pXG4gICAgaWYgKHdpZHRocykgd2lkdGhzLnRhYmxlV2lkdGggPSB3aWR0aFxuICB9XG5cbiAgb25MaW5rc0NyZWF0ZWQgPSAoe2FyZ3N9KSA9PiB7XG4gICAgY29uc3QgbW9kZWxDbGFzc05hbWUgPSB0aGlzLnAubW9kZWxDbGFzcy5tb2RlbENsYXNzRGF0YSgpLm5hbWVcblxuICAgIGlmIChhcmdzLmNyZWF0ZWRbbW9kZWxDbGFzc05hbWVdKSB7XG4gICAgICBjb25zdCBhbW91bnRDcmVhdGVkID0gYXJncy5jcmVhdGVkW21vZGVsQ2xhc3NOYW1lXS5sZW5ndGhcblxuICAgICAgdGhpcy5zZXRTdGF0ZSgocHJldlN0YXRlKSA9PiAoe1xuICAgICAgICBjdXJyZW50V29ya3BsYWNlQ291bnQ6IHByZXZTdGF0ZS5jdXJyZW50V29ya3BsYWNlQ291bnQgKyBhbW91bnRDcmVhdGVkXG4gICAgICB9KSlcbiAgICB9XG4gIH1cblxuICBvbkxpbmtzRGVzdHJveWVkID0gKHthcmdzfSkgPT4ge1xuICAgIGNvbnN0IG1vZGVsQ2xhc3NOYW1lID0gdGhpcy5wLm1vZGVsQ2xhc3MubW9kZWxDbGFzc0RhdGEoKS5uYW1lXG5cbiAgICBpZiAoYXJncy5kZXN0cm95ZWRbbW9kZWxDbGFzc05hbWVdKSB7XG4gICAgICBjb25zdCBhbW91bnREZXN0cm95ZWQgPSBhcmdzLmRlc3Ryb3llZFttb2RlbENsYXNzTmFtZV0ubGVuZ3RoXG5cbiAgICAgIHRoaXMuc2V0U3RhdGUoKHByZXZTdGF0ZSkgPT4gKHtcbiAgICAgICAgY3VycmVudFdvcmtwbGFjZUNvdW50OiBwcmV2U3RhdGUuY3VycmVudFdvcmtwbGFjZUNvdW50IC0gYW1vdW50RGVzdHJveWVkXG4gICAgICB9KSlcbiAgICB9XG4gIH1cblxuICBrZXlFeHRyYXRvciA9IChtb2RlbCkgPT4gYCR7dGhpcy5zLnRhYmxlU2V0dGluZ0Z1bGxDYWNoZUtleX0tJHttb2RlbC5pZCgpfWBcblxuICBmaWx0ZXJGb3JtID0gKCkgPT4ge1xuICAgIGNvbnN0IHtmaWx0ZXJGb3JtUmVmLCBzdWJtaXRGaWx0ZXIsIHN1Ym1pdEZpbHRlckRlYm91bmNlfSA9IHRoaXMudHRcbiAgICBjb25zdCB7ZmlsdGVyQ29udGVudCwgZmlsdGVyU3VibWl0QnV0dG9ufSA9IHRoaXMucFxuICAgIGNvbnN0IHtxdWVyeVFOYW1lfSA9IHRoaXMuc1xuICAgIGNvbnN0IHtmaWx0ZXJTdWJtaXRMYWJlbH0gPSB0aGlzLnByb3BzXG4gICAgY29uc3Qge3FQYXJhbXN9ID0gZGlncyh0aGlzLmNvbGxlY3Rpb24sIFwicVBhcmFtc1wiKVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDxGb3JtIGNsYXNzTmFtZT1cImxpdmUtdGFibGUtLWZpbHRlci1mb3JtXCIgZm9ybVJlZj17ZmlsdGVyRm9ybVJlZn0gb25TdWJtaXQ9e3RoaXMudHQub25GaWx0ZXJGb3JtU3VibWl0fSBzZXRGb3JtPXt0aGlzLnNldFN0YXRlcy5maWx0ZXJGb3JtfT5cbiAgICAgICAge1wic1wiIGluIHFQYXJhbXMgJiZcbiAgICAgICAgICA8aW5wdXQgbmFtZT1cInNcIiB0eXBlPVwiaGlkZGVuXCIgdmFsdWU9e3FQYXJhbXMuc30gLz5cbiAgICAgICAgfVxuICAgICAgICB7ZmlsdGVyQ29udGVudCh7XG4gICAgICAgICAgb25GaWx0ZXJDaGFuZ2VkOiBzdWJtaXRGaWx0ZXIsXG4gICAgICAgICAgb25GaWx0ZXJDaGFuZ2VkV2l0aERlbGF5OiBzdWJtaXRGaWx0ZXJEZWJvdW5jZSxcbiAgICAgICAgICBxUGFyYW1zLFxuICAgICAgICAgIHF1ZXJ5UU5hbWVcbiAgICAgICAgfSl9XG4gICAgICAgIHtmaWx0ZXJTdWJtaXRCdXR0b24gJiZcbiAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgIGNsYXNzTmFtZT1cImJ0biBidG4tcHJpbWFyeSBsaXZlLXRhYmxlLS1zdWJtaXQtZmlsdGVyLWJ1dHRvblwiXG4gICAgICAgICAgICB0eXBlPVwic3VibWl0XCJcbiAgICAgICAgICAgIHN0eWxlPXt7bWFyZ2luVG9wOiBcIjhweFwifX1cbiAgICAgICAgICAgIHZhbHVlPXtmaWx0ZXJTdWJtaXRMYWJlbCB8fCB0aGlzLnQoXCIuZmlsdGVyXCIsIHtkZWZhdWx0VmFsdWU6IFwiRmlsdGVyXCJ9KX1cbiAgICAgICAgICAvPlxuICAgICAgICB9XG4gICAgICA8L0Zvcm0+XG4gICAgKVxuICB9XG5cbiAgb25GaWx0ZXJDbGlja2VkID0gKGUpID0+IHtcbiAgICBlLnByZXZlbnREZWZhdWx0KClcbiAgICB0aGlzLnNldFN0YXRlKHtzaG93RmlsdGVyczogIXRoaXMuc3RhdGUuc2hvd0ZpbHRlcnN9KVxuICB9XG5cbiAgb25QZXJQYWdlQ2hhbmdlZCA9IChlKSA9PiB7XG4gICAgY29uc3Qge3F1ZXJ5TmFtZX0gPSB0aGlzLnNcbiAgICBjb25zdCBuZXdQZXJQYWdlVmFsdWUgPSBkaWdnKGUsIFwidGFyZ2V0XCIsIFwidmFsdWVcIilcbiAgICBjb25zdCBwZXJLZXkgPSBgJHtxdWVyeU5hbWV9X3BlcmBcbiAgICBjb25zdCBwYXJhbXNDaGFuZ2UgPSB7fVxuXG4gICAgcGFyYW1zQ2hhbmdlW3BlcktleV0gPSBuZXdQZXJQYWdlVmFsdWVcblxuICAgIFBhcmFtcy5jaGFuZ2VQYXJhbXMocGFyYW1zQ2hhbmdlKVxuICB9XG5cbiAgcmVuZGVySXRlbSA9ICh7aW5kZXgsIGl0ZW06IG1vZGVsfSkgPT4ge1xuICAgIGlmICghdGhpcy5zLnRhYmxlU2V0dGluZ0xvYWRlZCkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFZpZXc+XG4gICAgICAgICAgPFRleHQ+XG4gICAgICAgICAgICB7dGhpcy50KFwiLmxvYWRpbmdfZG90X2RvdF9kb3RcIiwge2RlZmF1bHRWYWx1ZTogXCJMb2FkaW5nLi4uXCJ9KX1cbiAgICAgICAgICA8L1RleHQ+XG4gICAgICAgIDwvVmlldz5cbiAgICAgIClcbiAgICB9XG5cbiAgICByZXR1cm4gKFxuICAgICAgPE1vZGVsUm93XG4gICAgICAgIGNhY2hlS2V5PXttb2RlbC5jYWNoZUtleSgpfVxuICAgICAgICBjb2x1bW5zPXt0aGlzLnMuY29sdW1uc1RvU2hvd31cbiAgICAgICAgY29sdW1uV2lkdGhzPXt0aGlzLmNvbHVtbldpZHRocygpfVxuICAgICAgICBldmVudHM9e3RoaXMudHQuZXZlbnRzfVxuICAgICAgICBpbmRleD17aW5kZXh9XG4gICAgICAgIGtleT17bW9kZWwuaWQoKX1cbiAgICAgICAgbW9kZWw9e21vZGVsfVxuICAgICAgICB0YWJsZT17dGhpc31cbiAgICAgICAgdGFibGVTZXR0aW5nRnVsbENhY2hlS2V5PXt0aGlzLnMudGFibGVTZXR0aW5nRnVsbENhY2hlS2V5fVxuICAgICAgLz5cbiAgICApXG4gIH1cblxuICBzdHlsZUZvckNvbHVtbiA9ICh7Y29sdW1uLCBjb2x1bW5JbmRleCwgZXZlbiwgc3R5bGUsIHR5cGV9KSA9PiB7XG4gICAgY29uc3Qge3N0eWxlVUl9ID0gdGhpcy5wXG4gICAgY29uc3QgZGVmYXVsdFN0eWxlID0ge1xuICAgICAganVzdGlmeUNvbnRlbnQ6IFwiY2VudGVyXCIsXG4gICAgICBwYWRkaW5nOiA4LFxuICAgICAgb3ZlcmZsb3c6IFwiaGlkZGVuXCJcbiAgICB9XG5cbiAgICBpZiAoc3R5bGVVSSkge1xuICAgICAgT2JqZWN0LmFzc2lnbihkZWZhdWx0U3R5bGUsIHtcbiAgICAgICAgYmFja2dyb3VuZENvbG9yOiBldmVuID8gXCIjZjVmNWY1XCIgOiBcIiNmZmZcIlxuICAgICAgfSlcbiAgICB9XG5cbiAgICBpZiAodHlwZSA9PSBcImFjdGlvbnNcIikge1xuICAgICAgZGVmYXVsdFN0eWxlLmZsZXhEaXJlY3Rpb24gPSBcInJvd1wiXG4gICAgICBkZWZhdWx0U3R5bGUuYWxpZ25JdGVtcyA9IFwiY2VudGVyXCJcblxuICAgICAgaWYgKHRoaXMudHQubWRVcCkge1xuICAgICAgICBkZWZhdWx0U3R5bGUubWFyZ2luTGVmdCA9IFwiYXV0b1wiXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBkZWZhdWx0U3R5bGUubWFyZ2luUmlnaHQgPSBcImF1dG9cIlxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAodGhpcy50dC5tZFVwICYmIHN0eWxlVUkpIHtcbiAgICAgIGRlZmF1bHRTdHlsZS5ib3JkZXJSaWdodCA9IFwiMXB4IHNvbGlkICNkYmRiZGJcIlxuICAgIH1cblxuICAgIGNvbnN0IGFjdHVhbFN0eWxlID0gT2JqZWN0LmFzc2lnbihcbiAgICAgIGRlZmF1bHRTdHlsZSxcbiAgICAgIHN0eWxlXG4gICAgKVxuXG4gICAgcmV0dXJuIGFjdHVhbFN0eWxlXG4gIH1cblxuICBzdHlsZUZvckhlYWRlciA9ICh7Y29sdW1uLCBjb2x1bW5JbmRleCwgc3R5bGUsIHR5cGV9KSA9PiB7XG4gICAgY29uc3Qge21kVXB9ID0gdGhpcy50dFxuICAgIGNvbnN0IGRlZmF1bHRTdHlsZSA9IHtcbiAgICAgIGZsZXhEaXJlY3Rpb246IFwicm93XCIsXG4gICAgICBhbGlnbkl0ZW1zOiBcImNlbnRlclwiLFxuICAgICAgcGFkZGluZzogOFxuICAgIH1cblxuICAgIGlmICh0eXBlICE9IFwiYWN0aW9uc1wiICYmIG1kVXAgJiYgdGhpcy5wLnN0eWxlVUkpIHtcbiAgICAgIGRlZmF1bHRTdHlsZS5ib3JkZXJSaWdodCA9IFwiMXB4IHNvbGlkICNkYmRiZGJcIlxuICAgIH1cblxuICAgIGNvbnN0IGFjdHVhbFN0eWxlID0gT2JqZWN0LmFzc2lnbihcbiAgICAgIGRlZmF1bHRTdHlsZSxcbiAgICAgIHN0eWxlXG4gICAgKVxuXG4gICAgcmV0dXJuIGFjdHVhbFN0eWxlXG4gIH1cblxuICBzdHlsZUZvckhlYWRlclRleHQoKSB7XG4gICAgY29uc3QgYWN0dWFsU3R5bGUgPSB7Zm9udFdlaWdodDogXCJib2xkXCJ9XG5cbiAgICByZXR1cm4gYWN0dWFsU3R5bGVcbiAgfVxuXG4gIHN0eWxlRm9yUm93ID0gKHtldmVufSA9IHt9KSA9PiB7XG4gICAgY29uc3QgYWN0dWFsU3R5bGUgPSB7XG4gICAgICBmbGV4OiAxLFxuICAgICAgYWxpZ25JdGVtczogXCJzdHJldGNoXCJcbiAgICB9XG5cbiAgICBpZiAoZXZlbiAmJiB0aGlzLnAuc3R5bGVVSSkge1xuICAgICAgYWN0dWFsU3R5bGUuYmFja2dyb3VuZENvbG9yID0gXCIjZjVmNWY1XCJcbiAgICB9XG5cbiAgICByZXR1cm4gYWN0dWFsU3R5bGVcbiAgfVxuXG4gIHN0eWxlRm9yUm93SGVhZGVyID0gKCkgPT4ge1xuICAgIGNvbnN0IGFjdHVhbFN0eWxlID0ge1xuICAgICAgZmxleDogMSxcbiAgICAgIGFsaWduSXRlbXM6IFwic3RyZXRjaFwiXG4gICAgfVxuXG4gICAgcmV0dXJuIGFjdHVhbFN0eWxlXG4gIH1cblxuICB0YWJsZUNvbnRyb2xzKCkge1xuICAgIGNvbnN0IHtjb250cm9sc30gPSB0aGlzLnByb3BzXG4gICAgY29uc3Qge3Nob3dTZXR0aW5nc30gPSB0aGlzLnNcbiAgICBjb25zdCB7bW9kZWxzLCBxUGFyYW1zLCBxdWVyeSwgcmVzdWx0fSA9IGRpZ3ModGhpcy5jb2xsZWN0aW9uLCBcIm1vZGVsc1wiLCBcInFQYXJhbXNcIiwgXCJxdWVyeVwiLCBcInJlc3VsdFwiKVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDxWaWV3IHN0eWxlPXt0aGlzLnJvb3RWaWV3U3R5bGUgfHw9IHtmbGV4RGlyZWN0aW9uOiBcInJvd1wifX0+XG4gICAgICAgIHtjb250cm9scyAmJiBjb250cm9scyh7bW9kZWxzLCBxUGFyYW1zLCBxdWVyeSwgcmVzdWx0fSl9XG4gICAgICAgIDxQcmVzc2FibGUgZGF0YVNldD17e2NsYXNzOiBcImZpbHRlci1idXR0b25cIn19IG9uUHJlc3M9e3RoaXMudHQub25GaWx0ZXJDbGlja2VkfT5cbiAgICAgICAgICA8SWNvbiBuYW1lPVwic2VhcmNoXCIgc2l6ZT17MjB9IC8+XG4gICAgICAgIDwvUHJlc3NhYmxlPlxuICAgICAgICA8Vmlldz5cbiAgICAgICAgICB7c2hvd1NldHRpbmdzICYmXG4gICAgICAgICAgICA8U2V0dGluZ3Mgb25SZXF1ZXN0Q2xvc2U9e3RoaXMudHQub25SZXF1ZXN0Q2xvc2VTZXR0aW5nc30gdGFibGU9e3RoaXN9IC8+XG4gICAgICAgICAgfVxuICAgICAgICAgIDxQcmVzc2FibGUgZGF0YVNldD17dGhpcy5zZXR0aW5nc0J1dHRvbkRhdGFTZXQgfHw9IHtjbGFzczogXCJzZXR0aW5ncy1idXR0b25cIn19IG9uUHJlc3M9e3RoaXMudHQub25TZXR0aW5nc0NsaWNrZWR9PlxuICAgICAgICAgICAgPEljb24gbmFtZT1cImdlYXJcIiBzaXplPXsyMH0gLz5cbiAgICAgICAgICA8L1ByZXNzYWJsZT5cbiAgICAgICAgPC9WaWV3PlxuICAgICAgPC9WaWV3PlxuICAgIClcbiAgfVxuXG4gIHRhYmxlRm9vdGVyKCkge1xuICAgIGNvbnN0IHtyZXN1bHR9ID0gZGlncyh0aGlzLmNvbGxlY3Rpb24sIFwicmVzdWx0XCIpXG4gICAgY29uc3QgY3VycmVudFBhZ2UgPSByZXN1bHQuY3VycmVudFBhZ2UoKVxuICAgIGNvbnN0IHRvdGFsQ291bnQgPSByZXN1bHQudG90YWxDb3VudCgpXG4gICAgY29uc3QgcGVyUGFnZSA9IHJlc3VsdC5wZXJQYWdlKClcbiAgICBjb25zdCB0byA9IE1hdGgubWluKGN1cnJlbnRQYWdlICogcGVyUGFnZSwgdG90YWxDb3VudClcbiAgICBjb25zdCBkZWZhdWx0VmFsdWUgPSBcIlNob3dpbmcgJXtmcm9tfSB0byAle3RvfSBvdXQgb2YgJXt0b3RhbF9jb3VudH0gdG90YWwuXCJcbiAgICBsZXQgZnJvbSA9ICgoY3VycmVudFBhZ2UgLSAxKSAqIHBlclBhZ2UpICsgMVxuXG4gICAgaWYgKHRvID09PSAwKSBmcm9tID0gMFxuXG4gICAgcmV0dXJuIChcbiAgICAgIDxWaWV3IHN0eWxlPXt0aGlzLnJvb3RWaWV3U3R5bGUgfHw9IHtmbGV4RGlyZWN0aW9uOiBcInJvd1wiLCBqdXN0aWZ5Q29udGVudDogXCJzcGFjZS1iZXR3ZWVuXCIsIG1hcmdpblRvcDogMTB9fT5cbiAgICAgICAgPFZpZXcgZGF0YVNldD17dGhpcy5zaG93aW5nQ291bnRzRGF0YVNldCB8fD0ge2NsYXNzOiBcInNob3dpbmctY291bnRzXCJ9fSBzdHlsZT17dGhpcy5zaG93aW5nQ291bnRzU3R5bGUgfHw9IHtmbGV4RGlyZWN0aW9uOiBcInJvd1wifX0+XG4gICAgICAgICAgPFRleHQ+XG4gICAgICAgICAgICB7dGhpcy50KFwiLnNob3dpbmdfZnJvbV90b19vdXRfb2ZfdG90YWxcIiwge2RlZmF1bHRWYWx1ZSwgZnJvbSwgdG8sIHRvdGFsX2NvdW50OiB0b3RhbENvdW50fSl9XG4gICAgICAgICAgPC9UZXh0PlxuICAgICAgICAgIHt0aGlzLnAud29ya3BsYWNlICYmIHRoaXMucy5jdXJyZW50V29ya3BsYWNlQ291bnQgIT09IG51bGwgJiZcbiAgICAgICAgICAgIDxUZXh0IHN0eWxlPXt0aGlzLnhTZWxlY3RlZFRleHRTdHlsZSB8fD0ge21hcmdpbkxlZnQ6IDN9fT5cbiAgICAgICAgICAgICAge3RoaXMudChcIi54X3NlbGVjdGVkXCIsIHtkZWZhdWx0VmFsdWU6IFwiJXtzZWxlY3RlZH0gc2VsZWN0ZWQuXCIsIHNlbGVjdGVkOiB0aGlzLnMuY3VycmVudFdvcmtwbGFjZUNvdW50fSl9XG4gICAgICAgICAgICA8L1RleHQ+XG4gICAgICAgICAgfVxuICAgICAgICA8L1ZpZXc+XG4gICAgICAgIDxWaWV3PlxuICAgICAgICAgIDxTZWxlY3RcbiAgICAgICAgICAgIGNsYXNzTmFtZT1cInBlci1wYWdlLXNlbGVjdFwiXG4gICAgICAgICAgICBkZWZhdWx0VmFsdWU9e3BlclBhZ2V9XG4gICAgICAgICAgICBvbkNoYW5nZT17dGhpcy50dC5vblBlclBhZ2VDaGFuZ2VkfVxuICAgICAgICAgICAgb3B0aW9ucz17cGFnaW5hdGlvbk9wdGlvbnN9XG4gICAgICAgICAgLz5cbiAgICAgICAgPC9WaWV3PlxuICAgICAgPC9WaWV3PlxuICAgIClcbiAgfVxuXG4gIGNsYXNzTmFtZSgpIHtcbiAgICBjb25zdCBjbGFzc05hbWVzID0gW1wiYXBpLW1ha2VyLS10YWJsZVwiXVxuXG4gICAgaWYgKHRoaXMucHJvcHMuY2xhc3NOYW1lKSB7XG4gICAgICBjbGFzc05hbWVzLnB1c2godGhpcy5wcm9wcy5jbGFzc05hbWUpXG4gICAgfVxuXG4gICAgcmV0dXJuIGNsYXNzTmFtZXMuam9pbihcIiBcIilcbiAgfVxuXG4gIGNvbHVtblByb3BzKGNvbHVtbikge1xuICAgIGNvbnN0IHByb3BzID0ge31cblxuICAgIGlmIChjb2x1bW4udGV4dENlbnRlcikge1xuICAgICAgcHJvcHMuc3R5bGUgfHw9IHt9XG4gICAgICBwcm9wcy5zdHlsZS50ZXh0QWxpZ24gPSBcImNlbnRlclwiXG4gICAgfVxuXG4gICAgaWYgKGNvbHVtbi50ZXh0UmlnaHQpIHtcbiAgICAgIHByb3BzLnN0eWxlIHx8PSB7fVxuICAgICAgcHJvcHMuc3R5bGUudGV4dEFsaWduID0gXCJyaWdodFwiXG4gICAgfVxuXG4gICAgcmV0dXJuIHByb3BzXG4gIH1cblxuICBoZWFkZXJQcm9wcyhjb2x1bW4pIHtcbiAgICBjb25zdCBwcm9wcyA9IHt9XG5cbiAgICBpZiAoY29sdW1uLnRleHRDZW50ZXIpIHtcbiAgICAgIHByb3BzLnN0eWxlIHx8PSB7fVxuICAgICAgcHJvcHMuc3R5bGUuanVzdGlmeUNvbnRlbnQgPSBcImNlbnRlclwiXG4gICAgfVxuXG4gICAgaWYgKGNvbHVtbi50ZXh0UmlnaHQpIHtcbiAgICAgIHByb3BzLnN0eWxlIHx8PSB7fVxuICAgICAgcHJvcHMuc3R5bGUuanVzdGlmeUNvbnRlbnQgPSBcImVuZFwiXG4gICAgfVxuXG4gICAgcmV0dXJuIHByb3BzXG4gIH1cblxuICBjb2x1bW5XaWR0aHMoKSB7XG4gICAgY29uc3QgY29sdW1uV2lkdGhzID0ge31cblxuICAgIGZvciAoY29uc3QgY29sdW1uIG9mIHRoaXMucy5wcmVwYXJlZENvbHVtbnMpIHtcbiAgICAgIGNvbHVtbldpZHRoc1tjb2x1bW4udGFibGVTZXR0aW5nQ29sdW1uLmlkZW50aWZpZXIoKV0gPSBjb2x1bW4ud2lkdGhcbiAgICB9XG5cbiAgICByZXR1cm4gY29sdW1uV2lkdGhzXG4gIH1cblxuICBoZWFkZXJzQ29udGVudEZyb21Db2x1bW5zID0gKCkgPT4ge1xuICAgIHJldHVybiAoXG4gICAgICA8RHJhZ2dhYmxlU29ydFxuICAgICAgICBkYXRhPXt0aGlzLnMuY29sdW1uc1RvU2hvd31cbiAgICAgICAgZXZlbnRzPXt0aGlzLnR0LmRyYWdnYWJsZVNvcnRFdmVudHN9XG4gICAgICAgIGhvcml6b250YWxcbiAgICAgICAga2V5RXh0cmFjdG9yPXt0aGlzLnR0LmRyYWdMaXN0a2V5RXh0cmFjdG9yfVxuICAgICAgICBvbkl0ZW1Nb3ZlZD17dGhpcy50dC5vbkl0ZW1Nb3ZlZH1cbiAgICAgICAgb25SZW9yZGVyZWQ9e3RoaXMudHQub25SZW9yZGVyZWR9XG4gICAgICAgIHJlbmRlckl0ZW09e3RoaXMudHQuZHJhZ0xpc3RSZW5kZXJJdGVtQ29udGVudH1cbiAgICAgIC8+XG4gICAgKVxuICB9XG5cbiAgZHJhZ0xpc3RDYWNoZUtleUV4dHJhY3RvciA9IChpdGVtKSA9PiBgJHtpdGVtLnRhYmxlU2V0dGluZ0NvbHVtbi5pZGVudGlmaWVyKCl9LSR7dGhpcy5zLnJlc2l6aW5nfWBcbiAgZHJhZ0xpc3RrZXlFeHRyYWN0b3IgPSAoaXRlbSkgPT4gaXRlbS50YWJsZVNldHRpbmdDb2x1bW4uaWRlbnRpZmllcigpXG5cbiAgb25JdGVtTW92ZWQgPSAoe2FuaW1hdGlvbkFyZ3MsIGl0ZW1JbmRleCwgeCwgeX0pID0+IHtcbiAgICBjb25zdCBhbmltYXRlZFBvc2l0aW9uID0gZGlnZyh0aGlzLCBcInNcIiwgXCJjb2x1bW5zVG9TaG93XCIsIGl0ZW1JbmRleCwgXCJhbmltYXRlZFBvc2l0aW9uXCIpXG5cbiAgICBpZiAoYW5pbWF0aW9uQXJncykge1xuICAgICAgQW5pbWF0ZWQudGltaW5nKGFuaW1hdGVkUG9zaXRpb24sIGFuaW1hdGlvbkFyZ3MpLnN0YXJ0KClcbiAgICB9IGVsc2Uge1xuICAgICAgYW5pbWF0ZWRQb3NpdGlvbi5zZXRWYWx1ZSh7eCwgeX0pXG4gICAgfVxuICB9XG5cbiAgb25SZW9yZGVyZWQgPSBhc3luYyAoe2Zyb21JdGVtLCBmcm9tUG9zaXRpb24sIHRvSXRlbSwgdG9Qb3NpdGlvbn0pID0+IHtcbiAgICBpZiAoZnJvbVBvc2l0aW9uID09IHRvUG9zaXRpb24pIHJldHVybiAvLyBPbmx5IGRvIHJlcXVlc3RzIGFuZCBxdWVyaWVzIGlmIGNoYW5nZWRcblxuICAgIGNvbnN0IFRhYmxlU2V0dGluZ0NvbHVtbiA9IGZyb21JdGVtLnRhYmxlU2V0dGluZ0NvbHVtbi5jb25zdHJ1Y3RvclxuICAgIGNvbnN0IHRvQ29sdW1uID0gYXdhaXQgVGFibGVTZXR0aW5nQ29sdW1uLmZpbmQodG9JdGVtLnRhYmxlU2V0dGluZ0NvbHVtbi5pZCgpKSAvLyBOZWVkIHRvIGxvYWQgbGF0ZXN0IHBvc2l0aW9uIGJlY2F1c2UgQWN0c0FzTGlzdCBtaWdodCBoYXZlIGNoYW5nZWQgaXRcblxuICAgIGF3YWl0IGZyb21JdGVtLnRhYmxlU2V0dGluZ0NvbHVtbi51cGRhdGUoe3Bvc2l0aW9uOiB0b0NvbHVtbi5wb3NpdGlvbigpfSlcbiAgfVxuXG4gIGRyYWdMaXN0UmVuZGVySXRlbUNvbnRlbnQgPSAoe2lzQWN0aXZlLCBpdGVtLCB0b3VjaFByb3BzfSkgPT4ge1xuICAgIGNvbnN0IHthbmltYXRlZFdpZHRoLCBhbmltYXRlZFpJbmRleCwgY29sdW1uLCB0YWJsZVNldHRpbmdDb2x1bW59ID0gaXRlbVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDxIZWFkZXJDb2x1bW5cbiAgICAgICAgYWN0aXZlPXtpc0FjdGl2ZX1cbiAgICAgICAgYW5pbWF0ZWRXaWR0aD17YW5pbWF0ZWRXaWR0aH1cbiAgICAgICAgYW5pbWF0ZWRaSW5kZXg9e2FuaW1hdGVkWkluZGV4fVxuICAgICAgICBjb2x1bW49e2NvbHVtbn1cbiAgICAgICAga2V5PXt0YWJsZVNldHRpbmdDb2x1bW4uaWRlbnRpZmllcigpfVxuICAgICAgICByZXNpemluZz17dGhpcy5zLnJlc2l6aW5nfVxuICAgICAgICB0YWJsZT17dGhpc31cbiAgICAgICAgdGFibGVTZXR0aW5nQ29sdW1uPXt0YWJsZVNldHRpbmdDb2x1bW59XG4gICAgICAgIHRvdWNoUHJvcHM9e3RvdWNoUHJvcHN9XG4gICAgICAgIHdpZHRocz17dGhpcy5zLndpZHRoc31cbiAgICAgIC8+XG4gICAgKVxuICB9XG5cbiAgaGVhZGVyQ2xhc3NOYW1lRm9yQ29sdW1uKGNvbHVtbikge1xuICAgIGNvbnN0IGNsYXNzTmFtZXMgPSBbXVxuXG4gICAgaWYgKGNvbHVtbi5jb21tb25Qcm9wcyAmJiBjb2x1bW4uY29tbW9uUHJvcHMuY2xhc3NOYW1lKSBjbGFzc05hbWVzLnB1c2goY29sdW1uLmNvbW1vblByb3BzLmNsYXNzTmFtZSlcbiAgICBpZiAoY29sdW1uLmhlYWRlclByb3BzICYmIGNvbHVtbi5oZWFkZXJQcm9wcy5jbGFzc05hbWUpIGNsYXNzTmFtZXMucHVzaChjb2x1bW4uaGVhZGVyUHJvcHMuY2xhc3NOYW1lKVxuXG4gICAgcmV0dXJuIGNsYXNzTmFtZXNcbiAgfVxuXG4gIGhlYWRlckxhYmVsRm9yQ29sdW1uKGNvbHVtbikge1xuICAgIGNvbnN0IHttb2RlbENsYXNzfSA9IHRoaXMucFxuXG4gICAgaWYgKFwibGFiZWxcIiBpbiBjb2x1bW4pIHtcbiAgICAgIGlmICh0eXBlb2YgY29sdW1uLmxhYmVsID09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICByZXR1cm4gY29sdW1uLmxhYmVsKClcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBjb2x1bW4ubGFiZWxcbiAgICAgIH1cbiAgICB9XG5cbiAgICBsZXQgY3VycmVudE1vZGVsQ2xhc3MgPSBtb2RlbENsYXNzXG5cbiAgICAvLyBDYWxjdWxhdGUgY3VycmVudCBtb2RlbCBjbGFzcyB0aHJvdWdoIHBhdGhcbiAgICBpZiAoY29sdW1uLnBhdGgpIHtcbiAgICAgIGZvciAoY29uc3QgcGF0aFBhcnQgb2YgY29sdW1uLnBhdGgpIHtcbiAgICAgICAgY29uc3QgcmVsYXRpb25zaGlwcyA9IGRpZ2coY3VycmVudE1vZGVsQ2xhc3MubW9kZWxDbGFzc0RhdGEoKSwgXCJyZWxhdGlvbnNoaXBzXCIpXG4gICAgICAgIGNvbnN0IHJlbGF0aW9uc2hpcCA9IHJlbGF0aW9uc2hpcHMuZmluZCgocmVsYXRpb25zaGlwSW5BcnJheSkgPT4gcmVsYXRpb25zaGlwSW5BcnJheS5uYW1lID09IGluZmxlY3Rpb24udW5kZXJzY29yZShwYXRoUGFydCkpXG5cbiAgICAgICAgY3VycmVudE1vZGVsQ2xhc3MgPSBtb2RlbENsYXNzUmVxdWlyZShkaWdnKHJlbGF0aW9uc2hpcCwgXCJyZXNvdXJjZV9uYW1lXCIpKVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChjb2x1bW4uYXR0cmlidXRlKSByZXR1cm4gY3VycmVudE1vZGVsQ2xhc3MuaHVtYW5BdHRyaWJ1dGVOYW1lKGNvbHVtbi5hdHRyaWJ1dGUpXG5cbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJObyAnbGFiZWwnIG9yICdhdHRyaWJ1dGUnIHdhcyBnaXZlblwiKVxuICB9XG5cbiAgb25GaWx0ZXJGb3JtU3VibWl0ID0gKCkgPT4gdGhpcy5zdWJtaXRGaWx0ZXIoKVxuICBvblJlcXVlc3RDbG9zZVNldHRpbmdzID0gKCkgPT4gdGhpcy5zZXRTdGF0ZSh7c2hvd1NldHRpbmdzOiBmYWxzZX0pXG5cbiAgb25TZXR0aW5nc0NsaWNrZWQgPSAoZSkgPT4ge1xuICAgIGUucHJldmVudERlZmF1bHQoKVxuXG4gICAgdGhpcy5zZXRTdGF0ZSh7c2hvd1NldHRpbmdzOiAhdGhpcy5zLnNob3dTZXR0aW5nc30pXG4gIH1cblxuICBzdWJtaXRGaWx0ZXIgPSAoKSA9PiB7XG4gICAgY29uc3Qge2FwcEhpc3Rvcnl9ID0gdGhpcy5wcm9wc1xuICAgIGNvbnN0IHtxdWVyeVFOYW1lfSA9IHRoaXMuc1xuICAgIGNvbnN0IGNoYW5nZVBhcmFtc1BhcmFtcyA9IHt9XG4gICAgY29uc3QgcVBhcmFtcyA9IHRoaXMucy5maWx0ZXJGb3JtLmFzT2JqZWN0KClcblxuICAgIGlmIChQbGF0Zm9ybS5PUyA9PSBcIndlYlwiKSB7XG4gICAgICBjb25zdCBmaWx0ZXJGb3JtID0gZGlnZyh0aGlzLnR0LmZpbHRlckZvcm1SZWYsIFwiY3VycmVudFwiKVxuICAgICAgY29uc3QgbmF2dGl2ZUZvcm1QYXJhbXMgPSBQYXJhbXMuc2VyaWFsaXplRm9ybShmaWx0ZXJGb3JtKVxuXG4gICAgICBpbmNvcnBvcmF0ZShxUGFyYW1zLCBuYXZ0aXZlRm9ybVBhcmFtcylcbiAgICB9XG5cbiAgICBjaGFuZ2VQYXJhbXNQYXJhbXNbcXVlcnlRTmFtZV0gPSBKU09OLnN0cmluZ2lmeShxUGFyYW1zKVxuXG4gICAgUGFyYW1zLmNoYW5nZVBhcmFtcyhjaGFuZ2VQYXJhbXNQYXJhbXMsIHthcHBIaXN0b3J5fSlcbiAgfVxuXG4gIHN1Ym1pdEZpbHRlckRlYm91bmNlID0gZGVib3VuY2UodGhpcy50dC5zdWJtaXRGaWx0ZXIpXG59KSlcbiJdLCJtYXBwaW5ncyI6IjtBQUFBLFNBQVFBLElBQUksRUFBRUMsSUFBSSxRQUFPLFdBQVc7QUFDcEMsT0FBT0MsS0FBSyxJQUFHQyxhQUFhLEVBQUVDLFVBQVUsRUFBRUMsT0FBTyxFQUFFQyxNQUFN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
@@ -21,7 +21,7 @@ export default memo(shapeComponent(class ApiMakerUtilsButton extends ShapeCompon
21
21
  textProps: {}
22
22
  };
23
23
  static propTypes = propTypesExact({
24
- children: PropTypes.node,
24
+ children: PropTypes.any,
25
25
  danger: PropTypes.bool.isRequired,
26
26
  disabled: PropTypes.bool.isRequired,
27
27
  icon: PropTypes.string,
@@ -122,4 +122,4 @@ export default memo(shapeComponent(class ApiMakerUtilsButton extends ShapeCompon
122
122
  }
123
123
  };
124
124
  }));
125
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJQcmVzc2FibGUiLCJWaWV3Iiwic2hhcGVDb21wb25lbnQiLCJTaGFwZUNvbXBvbmVudCIsIkljb24iLCJtZW1vIiwiUHJvcFR5cGVzIiwicHJvcFR5cGVzRXhhY3QiLCJSZWFjdCIsIlRleHQiLCJ1c2VGb3JtIiwiQXBpTWFrZXJVdGlsc0J1dHRvbiIsImRlZmF1bHRQcm9wcyIsImNoaWxkcmVuIiwiZGFuZ2VyIiwiZGlzYWJsZWQiLCJpY29uIiwibGFiZWwiLCJvblByZXNzIiwicHJlc3NhYmxlUHJvcHMiLCJzdWJtaXQiLCJ0ZXh0UHJvcHMiLCJwcm9wVHlwZXMiLCJub2RlIiwiYm9vbCIsImlzUmVxdWlyZWQiLCJzdHJpbmciLCJmdW5jIiwib2JqZWN0Iiwic2V0dXAiLCJmb3JtIiwidXNlU3RhdGVzIiwiaG92ZXIiLCJyZW5kZXIiLCJwIiwicyIsInN0eWxlIiwicmVzdFByZXNzYWJsZVByb3BzIiwidGV4dFN0eWxlIiwicmVzdFRleHRQcm9wcyIsInByZXNzYWJsZVN0eWxlIiwidXNlTWVtbyIsImJhY2tncm91bmRDb2xvciIsIk9iamVjdCIsImFzc2lnbiIsImZsZXhEaXJlY3Rpb24iLCJhbGlnbkl0ZW1zIiwianVzdGlmeUNvbnRlbnQiLCJwYWRkaW5nSG9yaXpvbnRhbCIsInBhZGRpbmdWZXJ0aWNhbCIsImJvcmRlciIsImJvcmRlclJhZGl1cyIsImFjdHVhbFRleHRTdHlsZSIsImNvbG9yIiwidW5kZWZpbmVkIiwiY3JlYXRlRWxlbWVudCIsIl9leHRlbmRzIiwib25Qb2ludGVyRW50ZXIiLCJ0dCIsIm9uUG9pbnRlckxlYXZlIiwiaWNvblZpZXdTdHlsZSIsIm1hcmdpblJpZ2h0IiwibmFtZSIsInNldFN0YXRlIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL2J1dHRvbi5qc3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtQcmVzc2FibGUsIFZpZXd9IGZyb20gXCJyZWFjdC1uYXRpdmVcIlxuaW1wb3J0IHtzaGFwZUNvbXBvbmVudCwgU2hhcGVDb21wb25lbnR9IGZyb20gXCJzZXQtc3RhdGUtY29tcGFyZS9zcmMvc2hhcGUtY29tcG9uZW50XCJcbmltcG9ydCBJY29uIGZyb20gXCIuL2ljb25cIlxuaW1wb3J0IG1lbW8gZnJvbSBcInNldC1zdGF0ZS1jb21wYXJlL3NyYy9tZW1vXCJcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIlxuaW1wb3J0IHByb3BUeXBlc0V4YWN0IGZyb20gXCJwcm9wLXR5cGVzLWV4YWN0XCJcbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IFRleHQgZnJvbSBcIi4vdGV4dFwiXG5pbXBvcnQge3VzZUZvcm19IGZyb20gXCIuLi9mb3JtXCJcblxuZXhwb3J0IGRlZmF1bHQgbWVtbyhzaGFwZUNvbXBvbmVudChjbGFzcyBBcGlNYWtlclV0aWxzQnV0dG9uIGV4dGVuZHMgU2hhcGVDb21wb25lbnQge1xuICBzdGF0aWMgZGVmYXVsdFByb3BzID0ge1xuICAgIGNoaWxkcmVuOiBudWxsLFxuICAgIGRhbmdlcjogZmFsc2UsXG4gICAgZGlzYWJsZWQ6IGZhbHNlLFxuICAgIGljb246IG51bGwsXG4gICAgbGFiZWw6IG51bGwsXG4gICAgb25QcmVzczogbnVsbCxcbiAgICBwcmVzc2FibGVQcm9wczoge30sXG4gICAgc3VibWl0OiBmYWxzZSxcbiAgICB0ZXh0UHJvcHM6IHt9XG4gIH1cblxuICBzdGF0aWMgcHJvcFR5cGVzID0gcHJvcFR5cGVzRXhhY3Qoe1xuICAgIGNoaWxkcmVuOiBQcm9wVHlwZXMubm9kZSxcbiAgICBkYW5nZXI6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gICAgZGlzYWJsZWQ6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gICAgaWNvbjogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBsYWJlbDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBvblByZXNzOiBQcm9wVHlwZXMuZnVuYyxcbiAgICBwcmVzc2FibGVQcm9wczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgIHN1Ym1pdDogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgICB0ZXh0UHJvcHM6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZFxuICB9KVxuXG4gIHNldHVwKCkge1xuICAgIHRoaXMuZm9ybSA9IHVzZUZvcm0oKVxuICAgIHRoaXMudXNlU3RhdGVzKHtob3ZlcjogZmFsc2V9KVxuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHtjaGlsZHJlbiwgZGFuZ2VyLCBkaXNhYmxlZCwgaWNvbiwgbGFiZWwsIHByZXNzYWJsZVByb3BzLCB0ZXh0UHJvcHN9ID0gdGhpcy5wXG4gICAgY29uc3Qge2hvdmVyfSA9IHRoaXMuc1xuICAgIGNvbnN0IHtzdHlsZSwgLi4ucmVzdFByZXNzYWJsZVByb3BzfSA9IHByZXNzYWJsZVByb3BzXG4gICAgY29uc3Qge3N0eWxlOiB0ZXh0U3R5bGUsIC4uLnJlc3RUZXh0UHJvcHN9ID0gdGV4dFByb3BzXG5cbiAgICBjb25zdCBwcmVzc2FibGVTdHlsZSA9IFJlYWN0LnVzZU1lbW8oKCkgPT4ge1xuICAgICAgbGV0IGJhY2tncm91bmRDb2xvclxuXG4gICAgICBpZiAoZGFuZ2VyKSB7XG4gICAgICAgIGlmIChob3Zlcikge1xuICAgICAgICAgIGJhY2tncm91bmRDb2xvciA9IFwiI2ZmOGE4YVwiXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgYmFja2dyb3VuZENvbG9yID0gXCIjZmY2NzY3XCJcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKGhvdmVyKSB7XG4gICAgICAgICAgYmFja2dyb3VuZENvbG9yID0gXCIjZThlNGZmXCJcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3IgPSBcIiNmZmZcIlxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBPYmplY3QuYXNzaWduKFxuICAgICAgICB7XG4gICAgICAgICAgZmxleERpcmVjdGlvbjogXCJyb3dcIixcbiAgICAgICAgICBhbGlnbkl0ZW1zOiBcImNlbnRlclwiLFxuICAgICAgICAgIGp1c3RpZnlDb250ZW50OiBcImNlbnRlclwiLFxuICAgICAgICAgIHBhZGRpbmdIb3Jpem9udGFsOiAxNCxcbiAgICAgICAgICBwYWRkaW5nVmVydGljYWw6IDgsXG4gICAgICAgICAgYmFja2dyb3VuZENvbG9yLFxuICAgICAgICAgIGJvcmRlcjogYDFweCBzb2xpZCAke2RhbmdlciA/IFwicmVkXCIgOiBcInN0ZWVsYmx1ZVwifWAsXG4gICAgICAgICAgYm9yZGVyUmFkaXVzOiA1XG4gICAgICAgIH0sXG4gICAgICAgIHByZXNzYWJsZVByb3BzPy5zdHlsZVxuICAgICAgKVxuICAgIH0sIFtkYW5nZXIsIGhvdmVyLCBwcmVzc2FibGVQcm9wcz8uc3R5bGVdKVxuXG4gICAgY29uc3QgYWN0dWFsVGV4dFN0eWxlID0gUmVhY3QudXNlTWVtbygoKSA9PiB7XG4gICAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihcbiAgICAgICAge1xuICAgICAgICAgIGNvbG9yOiBkaXNhYmxlZCA/IFwiZ3JleVwiIDogdW5kZWZpbmVkXG4gICAgICAgIH0sXG4gICAgICAgIHRleHRTdHlsZVxuICAgICAgKVxuICAgIH0sIFtkaXNhYmxlZF0pXG5cbiAgICByZXR1cm4gKFxuICAgICAgPFByZXNzYWJsZVxuICAgICAgICBvblBvaW50ZXJFbnRlcj17dGhpcy50dC5vblBvaW50ZXJFbnRlcn1cbiAgICAgICAgb25Qb2ludGVyTGVhdmU9e3RoaXMudHQub25Qb2ludGVyTGVhdmV9XG4gICAgICAgIG9uUHJlc3M9e3RoaXMudHQub25QcmVzc31cbiAgICAgICAgc3R5bGU9e3ByZXNzYWJsZVN0eWxlfVxuICAgICAgICB7Li4ucmVzdFByZXNzYWJsZVByb3BzfVxuICAgICAgPlxuICAgICAgICB7aWNvbiAmJlxuICAgICAgICAgIDxWaWV3IHN0eWxlPXt0aGlzLmljb25WaWV3U3R5bGUgfHw9IHttYXJnaW5SaWdodDogNH19PlxuICAgICAgICAgICAgPEljb24gbmFtZT17aWNvbn0gLz5cbiAgICAgICAgICA8L1ZpZXc+XG4gICAgICAgIH1cbiAgICAgICAge2NoaWxkcmVufVxuICAgICAgICB7bGFiZWwgJiZcbiAgICAgICAgICA8VGV4dCBzdHlsZT17YWN0dWFsVGV4dFN0eWxlfSB7Li4ucmVzdFRleHRQcm9wc30+XG4gICAgICAgICAgICB7bGFiZWx9XG4gICAgICAgICAgPC9UZXh0PlxuICAgICAgICB9XG4gICAgICA8L1ByZXNzYWJsZT5cbiAgICApXG4gIH1cblxuICBvblBvaW50ZXJFbnRlciA9ICgpID0+IHRoaXMuc2V0U3RhdGUoe2hvdmVyOiB0cnVlfSlcbiAgb25Qb2ludGVyTGVhdmUgPSAoKSA9PiB0aGlzLnNldFN0YXRlKHtob3ZlcjogZmFsc2V9KVxuXG4gIG9uUHJlc3MgPSAoKSA9PiB7XG4gICAgaWYgKHRoaXMucC5kaXNhYmxlZCkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgaWYgKHRoaXMucC5vblByZXNzKSB7XG4gICAgICB0aGlzLnAub25QcmVzcygpXG4gICAgfVxuXG4gICAgaWYgKHRoaXMucC5zdWJtaXQgJiYgdGhpcy50dC5mb3JtKSB7XG4gICAgICB0aGlzLnR0LmZvcm0uc3VibWl0KClcbiAgICB9XG4gIH1cbn0pKVxuIl0sIm1hcHBpbmdzIjoiO0FBQUEsU0FBUUEsU0FBUyxFQUFFQyxJQUFJLFFBQU8sY0FBYztBQUM1QyxTQUFRQyxjQUFjLEVBQUVDLGNBQWMsUUFBTyx1Q0FBdUM7QUFDcEYsT0FBT0MsSUFBSSxNQUFNLFFBQVE7QUFDekIsT0FBT0MsSUFBSSxNQUFNLDRCQUE0QjtBQUM3QyxPQUFPQyxTQUFTLE1BQU0sWUFBWTtBQUNsQyxPQUFPQyxjQUFjLE1BQU0sa0JBQWtCO0FBQzdDLE9BQU9DLEtBQUssTUFBTSxPQUFPO0FBQ3pCLE9BQU9DLElBQUksTUFBTSxRQUFRO0FBQ3pCLFNBQVFDLE9BQU8sUUFBTyxTQUFTO0FBRS9CLGVBQWVMLElBQUksQ0FBQ0gsY0FBYyxD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
125
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJQcmVzc2FibGUiLCJWaWV3Iiwic2hhcGVDb21wb25lbnQiLCJTaGFwZUNvbXBvbmVudCIsIkljb24iLCJtZW1vIiwiUHJvcFR5cGVzIiwicHJvcFR5cGVzRXhhY3QiLCJSZWFjdCIsIlRleHQiLCJ1c2VGb3JtIiwiQXBpTWFrZXJVdGlsc0J1dHRvbiIsImRlZmF1bHRQcm9wcyIsImNoaWxkcmVuIiwiZGFuZ2VyIiwiZGlzYWJsZWQiLCJpY29uIiwibGFiZWwiLCJvblByZXNzIiwicHJlc3NhYmxlUHJvcHMiLCJzdWJtaXQiLCJ0ZXh0UHJvcHMiLCJwcm9wVHlwZXMiLCJhbnkiLCJib29sIiwiaXNSZXF1aXJlZCIsInN0cmluZyIsImZ1bmMiLCJvYmplY3QiLCJzZXR1cCIsImZvcm0iLCJ1c2VTdGF0ZXMiLCJob3ZlciIsInJlbmRlciIsInAiLCJzIiwic3R5bGUiLCJyZXN0UHJlc3NhYmxlUHJvcHMiLCJ0ZXh0U3R5bGUiLCJyZXN0VGV4dFByb3BzIiwicHJlc3NhYmxlU3R5bGUiLCJ1c2VNZW1vIiwiYmFja2dyb3VuZENvbG9yIiwiT2JqZWN0IiwiYXNzaWduIiwiZmxleERpcmVjdGlvbiIsImFsaWduSXRlbXMiLCJqdXN0aWZ5Q29udGVudCIsInBhZGRpbmdIb3Jpem9udGFsIiwicGFkZGluZ1ZlcnRpY2FsIiwiYm9yZGVyIiwiYm9yZGVyUmFkaXVzIiwiYWN0dWFsVGV4dFN0eWxlIiwiY29sb3IiLCJ1bmRlZmluZWQiLCJjcmVhdGVFbGVtZW50IiwiX2V4dGVuZHMiLCJvblBvaW50ZXJFbnRlciIsInR0Iiwib25Qb2ludGVyTGVhdmUiLCJpY29uVmlld1N0eWxlIiwibWFyZ2luUmlnaHQiLCJuYW1lIiwic2V0U3RhdGUiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvYnV0dG9uLmpzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1ByZXNzYWJsZSwgVmlld30gZnJvbSBcInJlYWN0LW5hdGl2ZVwiXG5pbXBvcnQge3NoYXBlQ29tcG9uZW50LCBTaGFwZUNvbXBvbmVudH0gZnJvbSBcInNldC1zdGF0ZS1jb21wYXJlL3NyYy9zaGFwZS1jb21wb25lbnRcIlxuaW1wb3J0IEljb24gZnJvbSBcIi4vaWNvblwiXG5pbXBvcnQgbWVtbyBmcm9tIFwic2V0LXN0YXRlLWNvbXBhcmUvc3JjL21lbW9cIlxuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiXG5pbXBvcnQgcHJvcFR5cGVzRXhhY3QgZnJvbSBcInByb3AtdHlwZXMtZXhhY3RcIlxuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgVGV4dCBmcm9tIFwiLi90ZXh0XCJcbmltcG9ydCB7dXNlRm9ybX0gZnJvbSBcIi4uL2Zvcm1cIlxuXG5leHBvcnQgZGVmYXVsdCBtZW1vKHNoYXBlQ29tcG9uZW50KGNsYXNzIEFwaU1ha2VyVXRpbHNCdXR0b24gZXh0ZW5kcyBTaGFwZUNvbXBvbmVudCB7XG4gIHN0YXRpYyBkZWZhdWx0UHJvcHMgPSB7XG4gICAgY2hpbGRyZW46IG51bGwsXG4gICAgZGFuZ2VyOiBmYWxzZSxcbiAgICBkaXNhYmxlZDogZmFsc2UsXG4gICAgaWNvbjogbnVsbCxcbiAgICBsYWJlbDogbnVsbCxcbiAgICBvblByZXNzOiBudWxsLFxuICAgIHByZXNzYWJsZVByb3BzOiB7fSxcbiAgICBzdWJtaXQ6IGZhbHNlLFxuICAgIHRleHRQcm9wczoge31cbiAgfVxuXG4gIHN0YXRpYyBwcm9wVHlwZXMgPSBwcm9wVHlwZXNFeGFjdCh7XG4gICAgY2hpbGRyZW46IFByb3BUeXBlcy5hbnksXG4gICAgZGFuZ2VyOiBQcm9wVHlwZXMuYm9vbC5pc1JlcXVpcmVkLFxuICAgIGRpc2FibGVkOiBQcm9wVHlwZXMuYm9vbC5pc1JlcXVpcmVkLFxuICAgIGljb246IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgbGFiZWw6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgb25QcmVzczogUHJvcFR5cGVzLmZ1bmMsXG4gICAgcHJlc3NhYmxlUHJvcHM6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICBzdWJtaXQ6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gICAgdGV4dFByb3BzOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWRcbiAgfSlcblxuICBzZXR1cCgpIHtcbiAgICB0aGlzLmZvcm0gPSB1c2VGb3JtKClcbiAgICB0aGlzLnVzZVN0YXRlcyh7aG92ZXI6IGZhbHNlfSlcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7Y2hpbGRyZW4sIGRhbmdlciwgZGlzYWJsZWQsIGljb24sIGxhYmVsLCBwcmVzc2FibGVQcm9wcywgdGV4dFByb3BzfSA9IHRoaXMucFxuICAgIGNvbnN0IHtob3Zlcn0gPSB0aGlzLnNcbiAgICBjb25zdCB7c3R5bGUsIC4uLnJlc3RQcmVzc2FibGVQcm9wc30gPSBwcmVzc2FibGVQcm9wc1xuICAgIGNvbnN0IHtzdHlsZTogdGV4dFN0eWxlLCAuLi5yZXN0VGV4dFByb3BzfSA9IHRleHRQcm9wc1xuXG4gICAgY29uc3QgcHJlc3NhYmxlU3R5bGUgPSBSZWFjdC51c2VNZW1vKCgpID0+IHtcbiAgICAgIGxldCBiYWNrZ3JvdW5kQ29sb3JcblxuICAgICAgaWYgKGRhbmdlcikge1xuICAgICAgICBpZiAoaG92ZXIpIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3IgPSBcIiNmZjhhOGFcIlxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGJhY2tncm91bmRDb2xvciA9IFwiI2ZmNjc2N1wiXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChob3Zlcikge1xuICAgICAgICAgIGJhY2tncm91bmRDb2xvciA9IFwiI2U4ZTRmZlwiXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgYmFja2dyb3VuZENvbG9yID0gXCIjZmZmXCJcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihcbiAgICAgICAge1xuICAgICAgICAgIGZsZXhEaXJlY3Rpb246IFwicm93XCIsXG4gICAgICAgICAgYWxpZ25JdGVtczogXCJjZW50ZXJcIixcbiAgICAgICAgICBqdXN0aWZ5Q29udGVudDogXCJjZW50ZXJcIixcbiAgICAgICAgICBwYWRkaW5nSG9yaXpvbnRhbDogMTQsXG4gICAgICAgICAgcGFkZGluZ1ZlcnRpY2FsOiA4LFxuICAgICAgICAgIGJhY2tncm91bmRDb2xvcixcbiAgICAgICAgICBib3JkZXI6IGAxcHggc29saWQgJHtkYW5nZXIgPyBcInJlZFwiIDogXCJzdGVlbGJsdWVcIn1gLFxuICAgICAgICAgIGJvcmRlclJhZGl1czogNVxuICAgICAgICB9LFxuICAgICAgICBwcmVzc2FibGVQcm9wcz8uc3R5bGVcbiAgICAgIClcbiAgICB9LCBbZGFuZ2VyLCBob3ZlciwgcHJlc3NhYmxlUHJvcHM/LnN0eWxlXSlcblxuICAgIGNvbnN0IGFjdHVhbFRleHRTdHlsZSA9IFJlYWN0LnVzZU1lbW8oKCkgPT4ge1xuICAgICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oXG4gICAgICAgIHtcbiAgICAgICAgICBjb2xvcjogZGlzYWJsZWQgPyBcImdyZXlcIiA6IHVuZGVmaW5lZFxuICAgICAgICB9LFxuICAgICAgICB0ZXh0U3R5bGVcbiAgICAgIClcbiAgICB9LCBbZGlzYWJsZWRdKVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDxQcmVzc2FibGVcbiAgICAgICAgb25Qb2ludGVyRW50ZXI9e3RoaXMudHQub25Qb2ludGVyRW50ZXJ9XG4gICAgICAgIG9uUG9pbnRlckxlYXZlPXt0aGlzLnR0Lm9uUG9pbnRlckxlYXZlfVxuICAgICAgICBvblByZXNzPXt0aGlzLnR0Lm9uUHJlc3N9XG4gICAgICAgIHN0eWxlPXtwcmVzc2FibGVTdHlsZX1cbiAgICAgICAgey4uLnJlc3RQcmVzc2FibGVQcm9wc31cbiAgICAgID5cbiAgICAgICAge2ljb24gJiZcbiAgICAgICAgICA8VmlldyBzdHlsZT17dGhpcy5pY29uVmlld1N0eWxlIHx8PSB7bWFyZ2luUmlnaHQ6IDR9fT5cbiAgICAgICAgICAgIDxJY29uIG5hbWU9e2ljb259IC8+XG4gICAgICAgICAgPC9WaWV3PlxuICAgICAgICB9XG4gICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAge2xhYmVsICYmXG4gICAgICAgICAgPFRleHQgc3R5bGU9e2FjdHVhbFRleHRTdHlsZX0gey4uLnJlc3RUZXh0UHJvcHN9PlxuICAgICAgICAgICAge2xhYmVsfVxuICAgICAgICAgIDwvVGV4dD5cbiAgICAgICAgfVxuICAgICAgPC9QcmVzc2FibGU+XG4gICAgKVxuICB9XG5cbiAgb25Qb2ludGVyRW50ZXIgPSAoKSA9PiB0aGlzLnNldFN0YXRlKHtob3ZlcjogdHJ1ZX0pXG4gIG9uUG9pbnRlckxlYXZlID0gKCkgPT4gdGhpcy5zZXRTdGF0ZSh7aG92ZXI6IGZhbHNlfSlcblxuICBvblByZXNzID0gKCkgPT4ge1xuICAgIGlmICh0aGlzLnAuZGlzYWJsZWQpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGlmICh0aGlzLnAub25QcmVzcykge1xuICAgICAgdGhpcy5wLm9uUHJlc3MoKVxuICAgIH1cblxuICAgIGlmICh0aGlzLnAuc3VibWl0ICYmIHRoaXMudHQuZm9ybSkge1xuICAgICAgdGhpcy50dC5mb3JtLnN1Ym1pdCgpXG4gICAgfVxuICB9XG59KSlcbiJdLCJtYXBwaW5ncyI6IjtBQUFBLFNBQVFBLFNBQVMsRUFBRUMsSUFBSSxRQUFPLGNBQWM7QUFDNUMsU0FBUUMsY0FBYyxFQUFFQyxjQUFjLFFBQU8sdUNBQXVDO0FBQ3BGLE9BQU9DLElBQUksTUFBTSxRQUFRO0FBQ3pCLE9BQU9DLElBQUksTUFBTSw0QkFBNEI7QUFDN0MsT0FBT0MsU0FBUyxNQUFNLFlBQVk7QUFDbEMsT0FBT0MsY0FBYyxNQUFNLGtCQUFrQjtBQUM3QyxPQUFPQyxLQUFLLE1BQU0sT0FBTztBQUN6QixPQUFPQyxJQUFJLE1BQU0sUUFBUTtBQUN6QixTQUFRQyxPQUFPLFFBQU8sU0FBUztBQUUvQixlQUFlTCxJQUFJLENBQUNILGNBQWMsQ0FB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
@@ -8,8 +8,8 @@ import Text from "./text";
8
8
  import { View } from "react-native";
9
9
  export default memo(shapeComponent(class ApiMakerUtilsCard extends ShapeComponent {
10
10
  static propTypes = propTypesExact({
11
- children: PropTypes.node,
12
- controls: PropTypes.node,
11
+ children: PropTypes.any,
12
+ controls: PropTypes.any,
13
13
  dataSet: PropTypes.object,
14
14
  header: PropTypes.string,
15
15
  style: PropTypes.object,
@@ -53,4 +53,4 @@ export default memo(shapeComponent(class ApiMakerUtilsCard extends ShapeComponen
53
53
  }, header), children);
54
54
  }
55
55
  }));
56
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsInVzZU1lbW8iLCJjbGFzc05hbWVzIiwibWVtbyIsIlByb3BUeXBlcyIsInByb3BUeXBlc0V4YWN0Iiwic2hhcGVDb21wb25lbnQiLCJTaGFwZUNvbXBvbmVudCIsIlRleHQiLCJWaWV3IiwiQXBpTWFrZXJVdGlsc0NhcmQiLCJwcm9wVHlwZXMiLCJjaGlsZHJlbiIsIm5vZGUiLCJjb250cm9scyIsImRhdGFTZXQiLCJvYmplY3QiLCJoZWFkZXIiLCJzdHJpbmciLCJzdHlsZSIsInRlc3RJRCIsInJlbmRlciIsInByb3BzIiwiY29tcG9uZW50IiwicmVzdERhdGFTZXQiLCJhY3R1YWxEYXRhU2V0IiwiT2JqZWN0IiwiYXNzaWduIiwiYWN0dWFsU3R5bGUiLCJiYWNrZ3JvdW5kQ29sb3IiLCJib3JkZXJSYWRpdXMiLCJwYWRkaW5nIiwiY3JlYXRlRWxlbWVudCIsImNvbnRyb2xzVmlld1N0eWxlIiwicG9zaXRpb24iLCJ0b3AiLCJyaWdodCIsImhlYWRlclRleHRTdHlsZSIsImZvbnRTaXplIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL2NhcmQuanN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwge3VzZU1lbW99IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgY2xhc3NOYW1lcyBmcm9tIFwiY2xhc3NuYW1lc1wiXG5pbXBvcnQgbWVtbyBmcm9tIFwic2V0LXN0YXRlLWNvbXBhcmUvc3JjL21lbW9cIlxuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiXG5pbXBvcnQgcHJvcFR5cGVzRXhhY3QgZnJvbSBcInByb3AtdHlwZXMtZXhhY3RcIlxuaW1wb3J0IHtzaGFwZUNvbXBvbmVudCwgU2hhcGVDb21wb25lbnR9IGZyb20gXCJzZXQtc3RhdGUtY29tcGFyZS9zcmMvc2hhcGUtY29tcG9uZW50XCJcbmltcG9ydCBUZXh0IGZyb20gXCIuL3RleHRcIlxuaW1wb3J0IHtWaWV3fSBmcm9tIFwicmVhY3QtbmF0aXZlXCJcblxuZXhwb3J0IGRlZmF1bHQgbWVtbyhzaGFwZUNvbXBvbmVudChjbGFzcyBBcGlNYWtlclV0aWxzQ2FyZCBleHRlbmRzIFNoYXBlQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHByb3BUeXBlc0V4YWN0KHtcbiAgICBjaGlsZHJlbjogUHJvcFR5cGVzLm5vZGUsXG4gICAgY29udHJvbHM6IFByb3BUeXBlcy5ub2RlLFxuICAgIGRhdGFTZXQ6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgaGVhZGVyOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIHN0eWxlOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIHRlc3RJRDogUHJvcFR5cGVzLnN0cmluZ1xuICB9KVxuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7Y2hpbGRyZW4sIGNvbnRyb2xzLCBkYXRhU2V0LCBoZWFkZXIsIHN0eWxlLCB0ZXN0SUR9ID0gdGhpcy5wcm9wc1xuICAgIGNvbnN0IHtjb21wb25lbnQsIC4uLnJlc3REYXRhU2V0fSA9IGRhdGFTZXQgfHwge31cblxuICAgIGNvbnN0IGFjdHVhbERhdGFTZXQgPSB1c2VNZW1vKCgpID0+XG4gICAgICBPYmplY3QuYXNzaWduKFxuICAgICAgICB7Y29tcG9uZW50OiBjbGFzc05hbWVzKFwiYXBpLW1ha2VyL3V0aWxzL2NhcmRcIiwgY29tcG9uZW50KX0sXG4gICAgICAgIHJlc3REYXRhU2V0XG4gICAgICApXG4gICAgLCBbY29tcG9uZW50LCByZXN0RGF0YVNldF0pXG5cbiAgICBjb25zdCBhY3R1YWxTdHlsZSA9IHVzZU1lbW8oKCkgPT5cbiAgICAgIE9iamVjdC5hc3NpZ24oXG4gICAgICAgIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IFwiI2ZmZlwiLFxuICAgICAgICAgIGJvcmRlclJhZGl1czogMTUsXG4gICAgICAgICAgcGFkZGluZzogMzBcbiAgICAgICAgfSxcbiAgICAgICAgc3R5bGVcbiAgICAgIClcbiAgICAsIFtzdHlsZV0pXG5cbiAgICByZXR1cm4gKFxuICAgICAgPFZpZXcgZGF0YVNldD17YWN0dWFsRGF0YVNldH0gc3R5bGU9e2FjdHVhbFN0eWxlfSB0ZXN0SUQ9e3Rlc3RJRH0+XG4gICAgICAgIHtjb250cm9scyAmJlxuICAgICAgICAgIDxWaWV3IHN0eWxlPXt0aGlzLmNvbnRyb2xzVmlld1N0eWxlIHx8PSB7cG9zaXRpb246IFwiYWJzb2x1dGVcIiwgdG9wOiAxNSwgcmlnaHQ6IDE1fX0+XG4gICAgICAgICAgICB7Y29udHJvbHN9XG4gICAgICAgICAgPC9WaWV3PlxuICAgICAgICB9XG4gICAgICAgIHtoZWFkZXIgJiZcbiAgICAgICAgICA8VGV4dCBzdHlsZT17dGhpcy5oZWFkZXJUZXh0U3R5bGUgfHw9IHtmb250U2l6ZTogMjR9fT5cbiAgICAgICAgICAgIHtoZWFkZXJ9XG4gICAgICAgICAgPC9UZXh0PlxuICAgICAgICB9XG4gICAgICAgIHtjaGlsZHJlbn1cbiAgICAgIDwvVmlldz5cbiAgICApXG4gIH1cbn0pKVxuIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPQSxLQUFLLElBQUdDLE9BQU8sUUFBTyxPQUFPO0FBQ3BDLE9BQU9DLFVBQVUsTUFBTSxZQUFZO0FBQ25DLE9BQU9DLElBQUksTUFBTSw0QkFBNEI7QUFDN0MsT0FBT0MsU0FBUyxNQUFNLFlBQVk7QUFDbEMsT0FBT0MsY0FBYyxNQUFNLGtCQUFrQjtBQUM3QyxTQUFRQyxjQUFjLEVBQUVDLGNBQWMsUUFBTyx1Q0FBdUM7QUFDcEYsT0FBT0MsSUFBSSxNQUFNLFFBQVE7QUFDekIsU0FBUUMsSUFBSSxRQUFPLGNBQWM7QUFFakMsZUFBZU4sSUFBSSxDQUFDRyxjQUFjLENBQUMsTUFBTUksaUJBQWlCLFNBQVNILGNBQWMsQ0FBQztFQUNoRixPQUFPSSxTQUFTLEdBQUdOLGNBQWMsQ0FBQztJQUNoQ08sUUFBUSxFQUFFUixTQUFTLENBQUNTLElBQUk7SUFDeEJDLFFBQVEsRUFBRVYsU0FBUyxDQUFDUyxJQUFJO0lBQ3hCRSxPQUFPLEVBQUVYLFNBQVMsQ0FBQ1ksTUFBTTtJQUN6QkMsTUFBTSxFQUFFYixTQUFTLENBQUNjLE1BQU07SUFDeEJDLEtBQUssRUFBRWYsU0FBUyxDQUFDWSxNQUFNO0lBQ3ZCSSxNQUFNLEVBQUVoQixTQUFTLENBQUNjO0VBQ3BCLENBQUMsQ0FBQztFQUVGRyxNQUFNQSxDQUFBLEVBQUc7SUFDUCxNQUFNO01BQUNULFFBQVE7TUFBRUUsUUFBUTtNQUFFQyxPQUFPO01BQUVFLE1BQU07TUFBRUUsS0FBSztNQUFFQztJQUFNLENBQUMsR0FBRyxJQUFJLENBQUNFLEtBQUs7SUFDdkUsTUFBTTtNQUFDQyxTQUFTO01BQUUsR0FBR0M7SUFBVyxDQUFDLEdBQUdULE9BQU8sSUFBSSxDQUFDLENBQUM7SUFFakQsTUFBTVUsYUFBYSxHQUFHeEIsT0FBTyxDQUFDLE1BQzVCeUIsTUFBTSxDQUFDQyxNQUFNLENBQ1g7TUFBQ0osU0FBUyxFQUFFckIsVUFBVSxDQUFDLHNCQUFzQixFQUFFcUIsU0FBUztJQUFDLENBQUMsRUFDMURDLFdBQ0YsQ0FBQyxFQUNELENBQUNELFNBQVMsRUFBRUMsV0FBVyxDQUFDLENBQUM7SUFFM0IsTUFBTUksV0FBVyxHQUFHM0IsT0FBTyxDQUFDLE1BQzFCeUIsTUFBTSxDQUFDQyxNQUFNLENBQ1g7TUFDRUUsZUFBZSxFQUFFLE1BQU07TUFDdkJDLFlBQVksRUFBRSxFQUFFO01BQ2hCQyxPQUFPLEVBQUU7SUFDWCxDQUFDLEVBQ0RaLEtBQ0YsQ0FBQyxFQUNELENBQUNBLEtBQUssQ0FBQyxDQUFDO0lBRVYsb0JBQ0VuQixLQUFBLENBQUFnQyxhQUFBLENBQUN2QixJQUFJO01BQUNNLE9BQU8sRUFBRVUsYUFBYztNQUFDTixLQUFLLEVBQUVTLFdBQVk7TUFBQ1IsTUFBTSxFQUFFQTtJQUFPLEdBQzlETixRQUFRLGlCQUNQZCxLQUFBLENBQUFnQyxhQUFBLENBQUN2QixJQUFJO01BQUNVLEtBQUssRUFBRSxJQUFJLENBQUNjLGlCQUFpQixLQUFLO1FBQUNDLFFBQVEsRUFBRSxVQUFVO1FBQUVDLEdBQUcsRUFBRSxFQUFFO1FBQUVDLEtBQUssRUFBRTtNQUFFO0lBQUUsR0FDaEZ0QixRQUNHLENBQUMsRUFFUkcsTUFBTSxpQkFDTGpCLEtBQUEsQ0FBQWdDLGFBQUEsQ0FBQ3hCLElBQUk7TUFBQ1csS0FBSyxFQUFFLElBQUksQ0FBQ2tCLGVBQWUsS0FBSztRQUFDQyxRQUFRLEVBQUU7TUFBRTtJQUFFLEdBQ2xEckIsTUFDRyxDQUFDLEVBRVJMLFFBQ0csQ0FBQztFQUVYO0FBQ0YsQ0FBQyxDQUFDLENBQUMiLCJpZ25vcmVMaXN0IjpbXX0=
56
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsInVzZU1lbW8iLCJjbGFzc05hbWVzIiwibWVtbyIsIlByb3BUeXBlcyIsInByb3BUeXBlc0V4YWN0Iiwic2hhcGVDb21wb25lbnQiLCJTaGFwZUNvbXBvbmVudCIsIlRleHQiLCJWaWV3IiwiQXBpTWFrZXJVdGlsc0NhcmQiLCJwcm9wVHlwZXMiLCJjaGlsZHJlbiIsImFueSIsImNvbnRyb2xzIiwiZGF0YVNldCIsIm9iamVjdCIsImhlYWRlciIsInN0cmluZyIsInN0eWxlIiwidGVzdElEIiwicmVuZGVyIiwicHJvcHMiLCJjb21wb25lbnQiLCJyZXN0RGF0YVNldCIsImFjdHVhbERhdGFTZXQiLCJPYmplY3QiLCJhc3NpZ24iLCJhY3R1YWxTdHlsZSIsImJhY2tncm91bmRDb2xvciIsImJvcmRlclJhZGl1cyIsInBhZGRpbmciLCJjcmVhdGVFbGVtZW50IiwiY29udHJvbHNWaWV3U3R5bGUiLCJwb3NpdGlvbiIsInRvcCIsInJpZ2h0IiwiaGVhZGVyVGV4dFN0eWxlIiwiZm9udFNpemUiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvY2FyZC5qc3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7dXNlTWVtb30gZnJvbSBcInJlYWN0XCJcbmltcG9ydCBjbGFzc05hbWVzIGZyb20gXCJjbGFzc25hbWVzXCJcbmltcG9ydCBtZW1vIGZyb20gXCJzZXQtc3RhdGUtY29tcGFyZS9zcmMvbWVtb1wiXG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCJcbmltcG9ydCBwcm9wVHlwZXNFeGFjdCBmcm9tIFwicHJvcC10eXBlcy1leGFjdFwiXG5pbXBvcnQge3NoYXBlQ29tcG9uZW50LCBTaGFwZUNvbXBvbmVudH0gZnJvbSBcInNldC1zdGF0ZS1jb21wYXJlL3NyYy9zaGFwZS1jb21wb25lbnRcIlxuaW1wb3J0IFRleHQgZnJvbSBcIi4vdGV4dFwiXG5pbXBvcnQge1ZpZXd9IGZyb20gXCJyZWFjdC1uYXRpdmVcIlxuXG5leHBvcnQgZGVmYXVsdCBtZW1vKHNoYXBlQ29tcG9uZW50KGNsYXNzIEFwaU1ha2VyVXRpbHNDYXJkIGV4dGVuZHMgU2hhcGVDb21wb25lbnQge1xuICBzdGF0aWMgcHJvcFR5cGVzID0gcHJvcFR5cGVzRXhhY3Qoe1xuICAgIGNoaWxkcmVuOiBQcm9wVHlwZXMuYW55LFxuICAgIGNvbnRyb2xzOiBQcm9wVHlwZXMuYW55LFxuICAgIGRhdGFTZXQ6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgaGVhZGVyOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIHN0eWxlOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIHRlc3RJRDogUHJvcFR5cGVzLnN0cmluZ1xuICB9KVxuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7Y2hpbGRyZW4sIGNvbnRyb2xzLCBkYXRhU2V0LCBoZWFkZXIsIHN0eWxlLCB0ZXN0SUR9ID0gdGhpcy5wcm9wc1xuICAgIGNvbnN0IHtjb21wb25lbnQsIC4uLnJlc3REYXRhU2V0fSA9IGRhdGFTZXQgfHwge31cblxuICAgIGNvbnN0IGFjdHVhbERhdGFTZXQgPSB1c2VNZW1vKCgpID0+XG4gICAgICBPYmplY3QuYXNzaWduKFxuICAgICAgICB7Y29tcG9uZW50OiBjbGFzc05hbWVzKFwiYXBpLW1ha2VyL3V0aWxzL2NhcmRcIiwgY29tcG9uZW50KX0sXG4gICAgICAgIHJlc3REYXRhU2V0XG4gICAgICApXG4gICAgLCBbY29tcG9uZW50LCByZXN0RGF0YVNldF0pXG5cbiAgICBjb25zdCBhY3R1YWxTdHlsZSA9IHVzZU1lbW8oKCkgPT5cbiAgICAgIE9iamVjdC5hc3NpZ24oXG4gICAgICAgIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IFwiI2ZmZlwiLFxuICAgICAgICAgIGJvcmRlclJhZGl1czogMTUsXG4gICAgICAgICAgcGFkZGluZzogMzBcbiAgICAgICAgfSxcbiAgICAgICAgc3R5bGVcbiAgICAgIClcbiAgICAsIFtzdHlsZV0pXG5cbiAgICByZXR1cm4gKFxuICAgICAgPFZpZXcgZGF0YVNldD17YWN0dWFsRGF0YVNldH0gc3R5bGU9e2FjdHVhbFN0eWxlfSB0ZXN0SUQ9e3Rlc3RJRH0+XG4gICAgICAgIHtjb250cm9scyAmJlxuICAgICAgICAgIDxWaWV3IHN0eWxlPXt0aGlzLmNvbnRyb2xzVmlld1N0eWxlIHx8PSB7cG9zaXRpb246IFwiYWJzb2x1dGVcIiwgdG9wOiAxNSwgcmlnaHQ6IDE1fX0+XG4gICAgICAgICAgICB7Y29udHJvbHN9XG4gICAgICAgICAgPC9WaWV3PlxuICAgICAgICB9XG4gICAgICAgIHtoZWFkZXIgJiZcbiAgICAgICAgICA8VGV4dCBzdHlsZT17dGhpcy5oZWFkZXJUZXh0U3R5bGUgfHw9IHtmb250U2l6ZTogMjR9fT5cbiAgICAgICAgICAgIHtoZWFkZXJ9XG4gICAgICAgICAgPC9UZXh0PlxuICAgICAgICB9XG4gICAgICAgIHtjaGlsZHJlbn1cbiAgICAgIDwvVmlldz5cbiAgICApXG4gIH1cbn0pKVxuIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPQSxLQUFLLElBQUdDLE9BQU8sUUFBTyxPQUFPO0FBQ3BDLE9BQU9DLFVBQVUsTUFBTSxZQUFZO0FBQ25DLE9BQU9DLElBQUksTUFBTSw0QkFBNEI7QUFDN0MsT0FBT0MsU0FBUyxNQUFNLFlBQVk7QUFDbEMsT0FBT0MsY0FBYyxNQUFNLGtCQUFrQjtBQUM3QyxTQUFRQyxjQUFjLEVBQUVDLGNBQWMsUUFBTyx1Q0FBdUM7QUFDcEYsT0FBT0MsSUFBSSxNQUFNLFFBQVE7QUFDekIsU0FBUUMsSUFBSSxRQUFPLGNBQWM7QUFFakMsZUFBZU4sSUFBSSxDQUFDRyxjQUFjLENBQUMsTUFBTUksaUJBQWlCLFNBQVNILGNBQWMsQ0FBQztFQUNoRixPQUFPSSxTQUFTLEdBQUdOLGNBQWMsQ0FBQztJQUNoQ08sUUFBUSxFQUFFUixTQUFTLENBQUNTLEdBQUc7SUFDdkJDLFFBQVEsRUFBRVYsU0FBUyxDQUFDUyxHQUFHO0lBQ3ZCRSxPQUFPLEVBQUVYLFNBQVMsQ0FBQ1ksTUFBTTtJQUN6QkMsTUFBTSxFQUFFYixTQUFTLENBQUNjLE1BQU07SUFDeEJDLEtBQUssRUFBRWYsU0FBUyxDQUFDWSxNQUFNO0lBQ3ZCSSxNQUFNLEVBQUVoQixTQUFTLENBQUNjO0VBQ3BCLENBQUMsQ0FBQztFQUVGRyxNQUFNQSxDQUFBLEVBQUc7SUFDUCxNQUFNO01BQUNULFFBQVE7TUFBRUUsUUFBUTtNQUFFQyxPQUFPO01BQUVFLE1BQU07TUFBRUUsS0FBSztNQUFFQztJQUFNLENBQUMsR0FBRyxJQUFJLENBQUNFLEtBQUs7SUFDdkUsTUFBTTtNQUFDQyxTQUFTO01BQUUsR0FBR0M7SUFBVyxDQUFDLEdBQUdULE9BQU8sSUFBSSxDQUFDLENBQUM7SUFFakQsTUFBTVUsYUFBYSxHQUFHeEIsT0FBTyxDQUFDLE1BQzVCeUIsTUFBTSxDQUFDQyxNQUFNLENBQ1g7TUFBQ0osU0FBUyxFQUFFckIsVUFBVSxDQUFDLHNCQUFzQixFQUFFcUIsU0FBUztJQUFDLENBQUMsRUFDMURDLFdBQ0YsQ0FBQyxFQUNELENBQUNELFNBQVMsRUFBRUMsV0FBVyxDQUFDLENBQUM7SUFFM0IsTUFBTUksV0FBVyxHQUFHM0IsT0FBTyxDQUFDLE1BQzFCeUIsTUFBTSxDQUFDQyxNQUFNLENBQ1g7TUFDRUUsZUFBZSxFQUFFLE1BQU07TUFDdkJDLFlBQVksRUFBRSxFQUFFO01BQ2hCQyxPQUFPLEVBQUU7SUFDWCxDQUFDLEVBQ0RaLEtBQ0YsQ0FBQyxFQUNELENBQUNBLEtBQUssQ0FBQyxDQUFDO0lBRVYsb0JBQ0VuQixLQUFBLENBQUFnQyxhQUFBLENBQUN2QixJQUFJO01BQUNNLE9BQU8sRUFBRVUsYUFBYztNQUFDTixLQUFLLEVBQUVTLFdBQVk7TUFBQ1IsTUFBTSxFQUFFQTtJQUFPLEdBQzlETixRQUFRLGlCQUNQZCxLQUFBLENBQUFnQyxhQUFBLENBQUN2QixJQUFJO01BQUNVLEtBQUssRUFBRSxJQUFJLENBQUNjLGlCQUFpQixLQUFLO1FBQUNDLFFBQVEsRUFBRSxVQUFVO1FBQUVDLEdBQUcsRUFBRSxFQUFFO1FBQUVDLEtBQUssRUFBRTtNQUFFO0lBQUUsR0FDaEZ0QixRQUNHLENBQUMsRUFFUkcsTUFBTSxpQkFDTGpCLEtBQUEsQ0FBQWdDLGFBQUEsQ0FBQ3hCLElBQUk7TUFBQ1csS0FBSyxFQUFFLElBQUksQ0FBQ2tCLGVBQWUsS0FBSztRQUFDQyxRQUFRLEVBQUU7TUFBRTtJQUFFLEdBQ2xEckIsTUFDRyxDQUFDLEVBRVJMLFFBQ0csQ0FBQztFQUVYO0FBQ0YsQ0FBQyxDQUFDLENBQUMiLCJpZ25vcmVMaXN0IjpbXX0=
package/link.sh ADDED
@@ -0,0 +1,8 @@
1
+ #!/bin/sh
2
+
3
+ cd node_modules
4
+
5
+ rm -rf react
6
+ ln -s ../../../gratisbyggetilbud_rails/node_modules/react
7
+
8
+ yarn link i18n-on-steroids
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kaspernj/api-maker",
3
- "version": "1.0.2050",
3
+ "version": "1.0.2051",
4
4
  "description": "My new module",
5
5
  "main": "build/index.js",
6
6
  "scripts": {
@@ -19,11 +19,11 @@ export default memo(shapeComponent(class ApiMakerBootstrapAttributeRow extends S
19
19
  static propTypes = {
20
20
  attribute: PropTypes.string,
21
21
  checkIfAttributeLoaded: PropTypes.bool.isRequired,
22
- children: PropTypes.node,
22
+ children: PropTypes.any,
23
23
  identifier: PropTypes.string,
24
- label: PropTypes.oneOfType([PropTypes.node, PropTypes.string]),
24
+ label: PropTypes.oneOfType([PropTypes.any, PropTypes.string]),
25
25
  model: PropTypes.object,
26
- value: PropTypes.node
26
+ value: PropTypes.any
27
27
  }
28
28
 
29
29
  setup() {
@@ -18,13 +18,13 @@ export default memo(shapeComponent(class ApiMakerBootstrapCard extends BaseCompo
18
18
  static propTypes = {
19
19
  cardRef: PropTypes.object,
20
20
  className: PropTypes.string,
21
- children: PropTypes.node,
22
- controls: PropTypes.node,
21
+ children: PropTypes.any,
22
+ controls: PropTypes.any,
23
23
  defaultExpanded: PropTypes.bool.isRequired,
24
24
  expandable: PropTypes.bool.isRequired,
25
25
  expandableHide: PropTypes.bool.isRequired,
26
- footer: PropTypes.node,
27
- header: PropTypes.node,
26
+ footer: PropTypes.any,
27
+ header: PropTypes.any,
28
28
  striped: PropTypes.bool,
29
29
  responsiveTable: PropTypes.bool.isRequired,
30
30
  table: PropTypes.bool.isRequired
@@ -18,10 +18,10 @@ export default memo(shapeComponent(class ApiMakerBootstrapCheckbox extends Shape
18
18
  attribute: PropTypes.string,
19
19
  className: PropTypes.string,
20
20
  defaultChecked: PropTypes.bool,
21
- defaultValue: PropTypes.node,
22
- hint: PropTypes.node,
21
+ defaultValue: PropTypes.any,
22
+ hint: PropTypes.any,
23
23
  id: PropTypes.string,
24
- label: PropTypes.node,
24
+ label: PropTypes.any,
25
25
  labelClassName: PropTypes.string,
26
26
  model: PropTypes.object,
27
27
  name: PropTypes.string,