single-scripture-rcl 3.3.3-beta.55 → 3.3.3-beta.57

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.
@@ -846,7 +846,8 @@ export default function ScriptureCard(_ref) {
846
846
 
847
847
  _map.set("".concat(_chapter2, ":").concat(_verse2), verseObjects);
848
848
  }
849
- }
849
+ } // create new reference range for new linear verse range
850
+
850
851
 
851
852
  var _selectedQuote$refere = selectedQuote === null || selectedQuote === void 0 ? void 0 : (_selectedQuote$refere3 = selectedQuote.reference) === null || _selectedQuote$refere3 === void 0 ? void 0 : _selectedQuote$refere3.split(':'),
852
853
  _selectedQuote$refere2 = _slicedToArray(_selectedQuote$refere, 1),
@@ -1094,4 +1095,4 @@ ScriptureCard.propTypes = {
1094
1095
  /**This is currently selected quote */
1095
1096
  selectedQuote: PropTypes.object
1096
1097
  };
1097
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL1NjcmlwdHVyZUNhcmQvU2NyaXB0dXJlQ2FyZC50c3giXSwibmFtZXMiOlsiUmVhY3QiLCJQcm9wVHlwZXMiLCJjb3JlIiwiU2VsZWN0aW9uc0NvbnRleHRQcm92aWRlciIsInVzZm1qcyIsInVzZUVkaXQiLCJDYXJkIiwidXNlQ2FyZFN0YXRlIiwidXNlVXNlckJyYW5jaCIsIkVSUk9SX1NUQVRFIiwiTUFOSUZFU1RfTk9UX0xPQURFRF9FUlJPUiIsImdldFF1b3RlTWF0Y2hlc0luQm9va1JlZiIsIkFsaWdubWVudEhlbHBlcnMiLCJVc2ZtRmlsZUNvbnZlcnNpb25IZWxwZXJzIiwiaXNFcXVhbCIsImdldFZlcnNlcyIsIlNjcmlwdHVyZVBhbmUiLCJTY3JpcHR1cmVTZWxlY3RvciIsInVzZVNjcmlwdHVyZVNldHRpbmdzIiwiZml4T2NjdXJyZW5jZSIsImdldFJlc291cmNlTGluayIsImdldFJlc291cmNlTWVzc2FnZSIsImdldFNjcmlwdHVyZVZlcnNpb25TZXR0aW5ncyIsImlzT3JpZ2luYWxCaWJsZSIsImNsZWFudXBWZXJzZU9iamVjdHMiLCJhcmVNYXBzVGhlU2FtZSIsIlRpdGxlIiwiTlRfT1JJR19MQU5HIiwiT1JJR0lOQUxfU09VUkNFIiwiT1RfT1JJR19MQU5HIiwiS0VZX0ZPTlRfU0laRV9CQVNFIiwibGFiZWwiLCJzdHlsZSIsIm1hcmdpblRvcCIsIndpZHRoIiwiU2NyaXB0dXJlQ2FyZCIsImlkIiwiaXNOVCIsInRpdGxlIiwic2VydmVyIiwiYXBwUmVmIiwiY2FyZE51bSIsImNsYXNzZXMiLCJyZXNvdXJjZSIsIm93bmVyIiwibGFuZ3VhZ2VJZCIsInJlc291cmNlSWQiLCJvcmlnaW5hbExhbmd1YWdlT3duZXIiLCJnZXRMYW5ndWFnZSIsInJlZmVyZW5jZSIsInZlcnNlIiwiY2hhcHRlciIsImJvb2tJZCIsInByb2plY3RJZCIsInJlc291cmNlTGluayIsInVzZVVzZXJMb2NhbFN0b3JhZ2UiLCJkaXNhYmxlV29yZFBvcG92ZXIiLCJvblJlc291cmNlRXJyb3IiLCJodHRwQ29uZmlnIiwiZ3JlZWtSZXBvVXJsIiwiaGVicmV3UmVwb1VybCIsImdldExleGljb25EYXRhIiwiZmV0Y2hHbG9zc2VzRm9yVmVyc2UiLCJ0cmFuc2xhdGUiLCJvbk1pbmltaXplIiwibG9nZ2VkSW5Vc2VyIiwiYXV0aGVudGljYXRpb24iLCJzZXRTYXZlZENoYW5nZXMiLCJib29rSW5kZXgiLCJzZWxlY3RlZFF1b3RlIiwic2V0V29yZEFsaWduZXJTdGF0dXMiLCJ1c2VTdGF0ZSIsImhhdmVVbnNhdmVkQ2hhbmdlcyIsImxhc3RTZWxlY3RlZFF1b3RlIiwib3JpZ2luYWxWZXJzZU9iamVjdHMiLCJyZWYiLCJzYXZlQ2xpY2tlZCIsInNhdmVDb250ZW50Iiwic2VsZWN0aW9ucyIsIk1hcCIsInNoYSIsInN0YXJ0U2F2ZSIsInVybEVycm9yIiwidXNpbmdVc2VyQnJhbmNoIiwidW5zYXZlZENoYW5nZXNMaXN0IiwidmVyc2VzRm9yUmVmIiwidmVyc2VPYmplY3RzTWFwIiwic3RhdGUiLCJzZXRTdGF0ZV8iLCJmb250U2l6ZSIsInNldEZvbnRTaXplIiwiaXNOVF8iLCJzZXRTdGF0ZSIsIm5ld1N0YXRlIiwicHJldlN0YXRlIiwic2V0T3JpZ2luYWxTY3JpcHR1cmVSZXNvdXJjZSIsIm5ld1Jlc291cmNlIiwibmV3Qm9va09iamVjdHMiLCJib29rT2JqZWN0cyIsIl9uZXdCb29rT2JqZWN0cyIsImNhY2hlIiwibWF4QWdlIiwic2V0VXJsRXJyb3IiLCJlcnJvciIsIndob2xlQm9vayIsImlzTmV3VGVzdGFtZW50Iiwic2NyaXB0dXJlQ29uZmlnIiwic2V0U2NyaXB0dXJlIiwic2NyaXB0dXJlU2V0dGluZ3MiLCJzY3JpcHR1cmVWZXJzaW9uSGlzdCIsImZldGNoUmVzcF8iLCJmZXRjaFJlc3BvbnNlIiwicmVwbyIsInJlZmVyZW5jZV8iLCJ1c2VFZmZlY3QiLCJfc2hhIiwiZGF0YSIsImNvbnNvbGUiLCJsb2ciLCJKU09OIiwic3RyaW5naWZ5IiwiY2FyZFJlc291cmNlSWQiLCJyZWZfIiwiY2FuVXNlRWRpdEJyYW5jaCIsInN1YnN0cmluZyIsImxlbmd0aCIsImNhcmRJZCIsIndvcmtpbmdSZXNvdXJjZUJyYW5jaCIsInVzaW5nVXNlckJyYW5jaF8iLCJzdGFydEVkaXRCcmFuY2giLCJhY3Rpb25zIiwic3RhcnRFZGl0Iiwid29ya2luZ1JlZiIsInNjcmlwdHVyZVRpdGxlIiwid29ya2luZ1JlZl8iLCJyZXNvdXJjZVN0YXR1cyIsIm1lc3NhZ2UiLCJpc0FjY2Vzc0Vycm9yIiwidmVyc2lvbiIsInVwZGF0ZVRpdGxlIiwiZ2V0U2NyaXB0dXJlU2VsZWN0b3IiLCJzY3JpcHR1cmVTZWxlY3Rpb25Db25maWciLCJvbk1lbnVDbG9zZSIsImxhbmd1YWdlSWRfIiwibGFuZ3VhZ2UiLCJkaXJlY3Rpb24iLCJpc0hlYnJldyIsImZvbnRGYWN0b3IiLCJzY2FsZWRGb250U2l6ZSIsIml0ZW1zIiwiaGVhZGVycyIsImZpbHRlcnMiLCJpdGVtSW5kZXgiLCJtYXJrZG93blZpZXciLCJzZXRGaWx0ZXJzIiwic2V0SXRlbUluZGV4Iiwic2V0TWFya2Rvd25WaWV3IiwicmVmU3R5bGUiLCJ1c2VNZW1vIiwiZm9udEZhbWlseSIsIk1hdGgiLCJyb3VuZCIsImNvbnRlbnRTdHlsZSIsInNjcmlwdHVyZUxhYmVsIiwiZGlzYWJsZVdvcmRQb3BvdmVyXyIsInVzaW5nT3JpZ2luYWxCaWJsZSIsInVuZGVmaW5lZCIsImZldGNoR2xvc3NEYXRhRm9yVmVyc2UiLCJ2ZXJzZU9iamVjdHMiLCJ2ZXJzZVJlZiIsIl92ZXJzZU9iamVjdHMiLCJ2ZXJzZURhdGEiLCJjb25jYXQiLCJlbmFibGVFZGl0IiwiZW5hYmxlQWxpZ25tZW50Iiwib3JpZ2luYWxSZXBvVXJsIiwic2NyaXB0dXJlQWxpZ25tZW50RWRpdENvbmZpZyIsImN1cnJlbnRWZXJzZVJlZiIsIl9zZXRTYXZlZENoYW5nZXMiLCJzb3VyY2VMYW5ndWFnZSIsInRhcmdldExhbmd1YWdlIiwiY3VycmVudEluZGV4Iiwic2F2ZWQiLCJnZXRDaGFuZ2VzIiwiY2xlYXJDaGFuZ2VzIiwiX3Vuc2F2ZWRDaGFuZ2VzTGlzdCIsImhhc093blByb3BlcnR5IiwiX2hhdmVVbnNhdmVkQ2hhbmdlcyIsIk9iamVjdCIsImtleXMiLCJmaW5kUmVmSW5BcnJheSIsImZpbmRJdGVtIiwiY2h1bmtzIiwicmVmTGVuIiwiaW5kZXgiLCJmaW5kSW5kZXgiLCJjaHVuayIsImlkeCIsIm5leHRDaGFyIiwiZ2V0Qm9va05hbWUiLCJib29rQ2FwcyIsInRvVXBwZXJDYXNlIiwiZmlsZXBhdGgiLCJjb250ZW50IiwiY29uZmlnIiwidG9rZW4iLCJ0aW1lb3V0Iiwic2VydmVyVGltZU91dCIsImF1dGhvciIsImJyYW5jaCIsIm9uU2F2ZUVkaXQiLCJfc2F2ZUVkaXQiLCJ0aGVuIiwic3VjY2VzcyIsInVuc2F2ZWRDYXJkSW5kaWNlcyIsImNhcmRJbmRleCIsImluZm8iLCJyZWxvYWRSZXNvdXJjZSIsIm1lcmdlVmVyc2VPYmplY3RzSW50b0JpYmxlVXNmbSIsImJpYmxlVXNmbSIsInVwZGF0ZWRWZXJzZU9iamVjdHMiLCJuZXdVc2ZtIiwiY2hhcHRlckNodW5rcyIsInNwbGl0IiwiY2hhcHRlckluZGV4IiwiY3VycmVudENoYXB0ZXIiLCJ2ZXJzZUNodW5rcyIsInZlcnNlSW5kZXgiLCJuZXdWZXJzZVVzZm0iLCJjb252ZXJ0VmVyc2VEYXRhVG9VU0ZNIiwib2xkVmVyc2UiLCJ2ZXJzZU51bUxlbiIsIm5ld0NoYXB0ZXIiLCJqb2luIiwiZ2V0UmVzcG9uc2VEYXRhIiwibWVyZ2VGYWlsIiwicGFyc2VJbnQiLCJuZXdCb29rSnNvbiIsIm5ld1ZlcnNlVGV4dCIsInRhcmdldFZlcnNlT2JqZWN0c18iLCJ1cGRhdGVBbGlnbm1lbnRzVG9UYXJnZXRWZXJzZSIsInRhcmdldFZlcnNlT2JqZWN0cyIsInVwZGF0ZVZlcnNlIiwidG9VU0ZNIiwiZm9yY2VkTmV3TGluZXMiLCJfdmVyc2VzRm9yUmVmIiwibmV3U2VsZWN0aW9ucyIsInVwZGF0ZVNlbGVjdGlvbnMiLCJfbWFwIiwib3JpZ2luYWxCb29rSWQiLCJib29rVmVyc2VPYmplY3QiLCJjaGFwdGVycyIsIm5ld1NlbGVjdGVkUXVvdGUiLCJxdW90ZSIsIm9yaWdpbmFsVmVyc2VzIiwic3Vic3RpdHV0ZSIsInN0YXJ0VmVyc2UiLCJsYXN0VmVyc2UiLCJpIiwibCIsIl92ZXJzZSIsImluY2x1ZGVzIiwidmVyc2VzIiwidmVyc2VJdGVtIiwidm8iLCJzZXQiLCJzdWJSZWYiLCJxdW90ZU1hdGNoZXMiLCJib29rT2JqZWN0Iiwib2NjdXJyZW5jZSIsInNpemUiLCJmb3JFYWNoIiwid29yZHMiLCJrZXkiLCJfa2V5IiwibWFwIiwid29yZCIsInRleHQiLCJub3JtYWxpemVTdHJpbmciLCJyZW5kZXJlZFNjcmlwdHVyZVBhbmVzIiwiX2N1cnJlbnRWZXJzZURhdGEiLCJpbml0aWFsVmVyc2VPYmplY3RzIiwiX3JlZmVyZW5jZSIsIl9zY3JpcHR1cmVBbGlnbm1lbnRFZGl0Q29uZmlnIiwicHJvcFR5cGVzIiwic3RyaW5nIiwiZnVuYyIsImlzUmVxdWlyZWQiLCJudW1iZXIiLCJzaGFwZSIsIm9uZU9mVHlwZSIsImJvb2wiLCJvYmplY3QiLCJhbnkiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxPQUFPLEtBQUtBLEtBQVosTUFBdUIsT0FBdkI7QUFDQSxPQUFPLEtBQUtDLFNBQVosTUFBMkIsWUFBM0I7QUFDQSxTQUFTQyxJQUFULEVBQWVDLHlCQUFmLFFBQWdELHlCQUFoRDtBQUNBLE9BQU9DLE1BQVAsTUFBbUIsU0FBbkI7QUFDQSxTQUFTQyxPQUFULFFBQXdCLHFCQUF4QjtBQUNBLFNBQ0VDLElBREYsRUFFRUMsWUFGRixFQUdFQyxhQUhGLEVBSUVDLFdBSkYsRUFLRUMseUJBTEYsUUFNTyx1QkFOUDtBQU9BLFNBQVNDLHdCQUFULFFBQXlDLGtCQUF6QztBQUNBLFNBQVNDLGdCQUFULEVBQTJCQyx5QkFBM0Is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eERSOztBQXlEeEI7QUFDQS9OLEVBQUFBLFNBQVMsRUFBRTlELFNBQVMsQ0FBQzZSLElBMURHOztBQTJEeEI7QUFDQTlOLEVBQUFBLFVBQVUsRUFBRS9ELFNBQVMsQ0FBQzZSLElBNURFOztBQTZEeEI7QUFDQTdOLEVBQUFBLFlBQVksRUFBRWhFLFNBQVMsQ0FBQzRSLE1BOURBOztBQStEeEI7QUFDQTNOLEVBQUFBLGNBQWMsRUFBRWpFLFNBQVMsQ0FBQ21TLE1BaEVGOztBQWlFeEI7QUFDQWpPLEVBQUFBLGVBQWUsRUFBRWxFLFNBQVMsQ0FBQzZSLElBbEVIOztBQW1FeEI7QUFDQTFOLEVBQUFBLFNBQVMsRUFBRW5FLFNBQVMsQ0FBQzRSLE1BcEVHOztBQXFFeEI7QUFDQXZOLEVBQUFBLG9CQUFvQixFQUFFckUsU0FBUyxDQUFDNlIsSUF0RVI7O0FBdUV4QjtBQUNBek4sRUFBQUEsYUFBYSxFQUFFcEUsU0FBUyxDQUFDbVM7QUF4RUQsQ0FBMUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCdcbmltcG9ydCAqIGFzIFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJ1xuaW1wb3J0IHsgY29yZSwgU2VsZWN0aW9uc0NvbnRleHRQcm92aWRlciB9IGZyb20gJ3NjcmlwdHVyZS1yZXNvdXJjZXMtcmNsJ1xuaW1wb3J0IHVzZm1qcyBmcm9tICd1c2ZtLWpzJ1xuaW1wb3J0IHsgdXNlRWRpdCB9IGZyb20gJ2dpdGVhLXJlYWN0LXRvb2xraXQnXG5pbXBvcnQge1xuICBDYXJkLFxuICB1c2VDYXJkU3RhdGUsXG4gIHVzZVVzZXJCcmFuY2gsXG4gIEVSUk9SX1NUQVRFLFxuICBNQU5JRkVTVF9OT1RfTE9BREVEX0VSUk9SLFxufSBmcm9tICd0cmFuc2xhdGlvbi1oZWxwcy1yY2wnXG5pbXBvcnQgeyBnZXRRdW90ZU1hdGNoZXNJbkJvb2tSZWYgfSBmcm9tICd1dy1xdW90ZS1oZWxwZXJzJ1xuaW1wb3J0IHsgQWxpZ25tZW50SGVscGVycywgVXNmbUZpbGVDb252ZXJzaW9uSGVscGVycyB9IGZyb20gJ3dvcmQtYWxpZ25lci1yY2wnXG5pbXBvcnQgKiBhcyBpc0VxdWFsIGZyb20gJ2RlZXAtZXF1YWwnXG5pbXBvcnQgeyBnZXRWZXJzZXMgfSBmcm9tICdiaWJsZS1yZWZlcmVuY2UtcmFuZ2UnXG5pbXBvcnQgeyBTY3JpcHR1cmVQYW5lLCBTY3JpcHR1cmVTZWxlY3RvciB9IGZyb20gJy4uJ1xuaW1wb3J0IHsgdXNlU2NyaXB0dXJlU2V0dGluZ3MgfSBmcm9tICcuLi8uLi9ob29rcy91c2VTY3JpcHR1cmVTZXR0aW5ncydcbmltcG9ydCB7XG4gIGZpeE9jY3VycmVuY2UsXG4gIGdldFJlc291cmNlTGluayxcbiAgZ2V0UmVzb3VyY2VNZXNzYWdlLFxuICBnZXRTY3JpcHR1cmVWZXJzaW9uU2V0dGluZ3MsXG4gIGlzT3JpZ2luYWxCaWJsZSxcbiAgY2xlYW51cFZlcnNlT2JqZWN0cyxcbn0gZnJvbSAnLi4vLi4vdXRpbHMvU2NyaXB0dXJlU2V0dGluZ3MnXG5pbXBvcnQgeyBhcmVNYXBzVGhlU2FtZSB9IGZyb20gJy4uLy4uL3V0aWxzL21hcHMnXG5pbXBvcnQgeyBUaXRsZSB9IGZyb20gJy4uL1NjcmlwdHVyZVBhbmUvc3R5bGVkJ1xuaW1wb3J0IHtcbiAgTlRfT1JJR19MQU5HLFxuICBPUklHSU5BTF9TT1VSQ0UsXG4gIE9UX09SSUdfTEFORyxcbn0gZnJvbSAnLi4vLi4vdXRpbHMnXG5cbmNvbnN0IEtFWV9GT05UX1NJWkVfQkFTRSA9ICdzY3JpcHR1cmVQYW5lRm9udFNpemVfJ1xuY29uc3QgbGFiZWwgPSAnVmVyc2lvbidcbmNvbnN0IHN0eWxlID0geyBtYXJnaW5Ub3A6ICcxNnB4Jywgd2lkdGg6ICc1MDBweCcgfVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBTY3JpcHR1cmVDYXJkKHtcbiAgaWQsXG4gIGlzTlQsXG4gIHRpdGxlLFxuICBzZXJ2ZXIsXG4gIGFwcFJlZixcbiAgY2FyZE51bSxcbiAgY2xhc3NlcyxcbiAgcmVzb3VyY2U6IHtcbiAgICBvd25lcixcbiAgICBsYW5ndWFnZUlkLFxuICAgIHJlc291cmNlSWQsXG4gICAgb3JpZ2luYWxMYW5ndWFnZU93bmVyLFxuICB9LFxuICBnZXRMYW5ndWFnZSxcbiAgcmVmZXJlbmNlOiB7XG4gICAgdmVyc2UsXG4gICAgY2hhcHRlcixcbiAgICBwcm9qZWN0SWQ6IGJvb2tJZCxcbiAgfSxcbiAgcmVzb3VyY2VMaW5rLFxuICB1c2VVc2VyTG9jYWxTdG9yYWdlLFxuICBkaXNhYmxlV29yZFBvcG92ZXIsXG4gIG9uUmVzb3VyY2VFcnJvcixcbiAgaHR0cENvbmZpZyxcbiAgZ3JlZWtSZXBvVXJsLFxuICBoZWJyZXdSZXBvVXJsLFxuICBnZXRMZXhpY29uRGF0YSxcbiAgZmV0Y2hHbG9zc2VzRm9yVmVyc2UsXG4gIHRyYW5zbGF0ZSxcbiAgb25NaW5pbWl6ZSxcbiAgbG9nZ2VkSW5Vc2VyLFxuICBhdXRoZW50aWNhdGlvbixcbiAgc2V0U2F2ZWRDaGFuZ2VzLFxuICBib29rSW5kZXgsXG4gIHNlbGVjdGVkUXVvdGUsXG4gIHNldFdvcmRBbGlnbmVyU3RhdHVzLFxufSkge1xuICBjb25zdCBbc3RhdGUsIHNldFN0YXRlX10gPSBSZWFjdC51c2VTdGF0ZSh7XG4gICAgaGF2ZVVuc2F2ZWRDaGFuZ2VzOiBmYWxzZSxcbiAgICBsYXN0U2VsZWN0ZWRRdW90ZTogbnVsbCxcbiAgICBvcmlnaW5hbFZlcnNlT2JqZWN0czogbnVsbCxcbiAgICByZWY6IGFwcFJlZixcbiAgICBzYXZlQ2xpY2tlZDogZmFsc2UsXG4gICAgc2F2ZUNvbnRlbnQ6IG51bGwsXG4gICAgc2VsZWN0aW9uczogbmV3IE1hcCgpLFxuICAgIHNoYTogbnVsbCxcbiAgICBzdGFydFNhdmU6IGZhbHNlLFxuICAgIHVybEVycm9yOiBudWxsLFxuICAgIHVzaW5nVXNlckJyYW5jaDogZmFsc2UsXG4gICAgdW5zYXZlZENoYW5nZXNMaXN0OiB7fSxcbiAgICB2ZXJzZXNGb3JSZWY6IG51bGwsXG4gICAgdmVyc2VPYmplY3RzTWFwOiBuZXcgTWFwKCksXG4gIH0pXG4gIGNvbnN0IHtcbiAgICBoYXZlVW5zYXZlZENoYW5nZXMsXG4gICAgbGFzdFNlbGVjdGVkUXVvdGUsXG4gICAgb3JpZ2luYWxWZXJzZU9iamVjdHMsXG4gICAgcmVmLFxuICAgIHNhdmVDbGlja2VkLFxuICAgIHNhdmVDb250ZW50LFxuICAgIHNlbGVjdGlvbnMsXG4gICAgc2hhLFxuICAgIHN0YXJ0U2F2ZSxcbiAgICB1cmxFcnJvcixcbiAgICB1c2luZ1VzZXJCcmFuY2gsXG4gICAgdW5zYXZlZENoYW5nZXNMaXN0LFxuICAgIHZlcnNlc0ZvclJlZixcbiAgICB2ZXJzZU9iamVjdHNNYXAsXG4gIH0gPSBzdGF0ZVxuXG4gIGNvbnN0IFtmb250U2l6ZSwgc2V0Rm9udFNpemVdID0gdXNlVXNlckxvY2FsU3RvcmFnZShLRVlfRk9OVF9TSVpFX0JBU0UgKyBjYXJkTnVtLCAxMDApXG4gIGNvbnN0IGlzTlRfID0gaXNOVChib29rSWQpXG5cbiAgZnVuY3Rpb24gc2V0U3RhdGUobmV3U3RhdGUpIHtcbiAgICBzZXRTdGF0ZV8ocHJldlN0YXRlID0+ICh7IC4uLnByZXZTdGF0ZSwgLi4ubmV3U3RhdGUgfSkpXG4gIH1cblxuICBmdW5jdGlvbiBzZXRPcmlnaW5hbFNjcmlwdHVyZVJlc291cmNlKG5ld1Jlc291cmNlKSB7XG4gICAgY29uc3QgbmV3Qm9va09iamVjdHMgPSBuZXdSZXNvdXJjZT8uYm9va09iamVjdHMgfHwge31cbiAgICBjb25zdCBib29rSWQgPSBuZXdSZXNvdXJjZT8ucmVmZXJlbmNlPy5wcm9qZWN0SWRcbiAgICBjb25zdCBfbmV3Qm9va09iamVjdHMgPSB7XG4gICAgICAuLi5uZXdCb29rT2JqZWN0cyxcbiAgICAgIGJvb2tJZCxcbiAgICB9XG5cbiAgICBpZiAoIWlzRXF1YWwoX25ld0Jvb2tPYmplY3RzLCBvcmlnaW5hbFZlcnNlT2JqZWN0cykpIHtcbiAgICAgIHNldFN0YXRlKHsgb3JpZ2luYWxWZXJzZU9iamVjdHM6IF9uZXdCb29rT2JqZWN0cyB9KVxuICAgIH1cbiAgfVxuXG4gIGlmICh1c2luZ1VzZXJCcmFuY2gpIHtcbiAgICBodHRwQ29uZmlnID0geyAuLi5odHRwQ29uZmlnLCBjYWNoZTogeyBtYXhBZ2U6IDAgfSB9IC8vIGRpc2FibGUgaHR0cCBjYWNoaW5nXG4gIH1cblxuICBjb25zdCB7XG4gICAgaXNOZXdUZXN0YW1lbnQsXG4gICAgc2NyaXB0dXJlQ29uZmlnLFxuICAgIHNldFNjcmlwdHVyZSxcbiAgICBzY3JpcHR1cmVTZXR0aW5ncyxcbiAgICBzY3JpcHR1cmVWZXJzaW9uSGlzdCxcbiAgfSA9IHVzZVNjcmlwdHVyZVNldHRpbmdzKHtcbiAgICBpc05ULFxuICAgIHRpdGxlLFxuICAgIHZlcnNlLFxuICAgIG93bmVyLFxuICAgIGJvb2tJZCxcbiAgICBhcHBSZWY6IHJlZixcbiAgICBzZXJ2ZXIsXG4gICAgY2FyZE51bSxcbiAgICBjaGFwdGVyLFxuICAgIGxhbmd1YWdlSWQsXG4gICAgcmVzb3VyY2VJZCxcbiAgICByZXNvdXJjZUxpbmssXG4gICAgdXNlVXNlckxvY2FsU3RvcmFnZSxcbiAgICBkaXNhYmxlV29yZFBvcG92ZXIsXG4gICAgb3JpZ2luYWxMYW5ndWFnZU93bmVyLFxuICAgIHNldFVybEVycm9yOiAoZXJyb3IpID0+IHNldFN0YXRlKHsgdXJsRXJyb3I6IGVycm9yIH0pLFxuICAgIGh0dHBDb25maWcsXG4gICAgZ3JlZWtSZXBvVXJsLFxuICAgIGhlYnJld1JlcG9VcmwsXG4gICAgd2hvbGVCb29rOiB0cnVlLFxuICB9KVxuXG4gIGNvbnN0IGZldGNoUmVzcF8gPSBzY3JpcHR1cmVDb25maWc/LmZldGNoUmVzcG9uc2VcbiAgLy8gQHRzLWlnbm9yZVxuICBjb25zdCByZXBvID0gYCR7c2NyaXB0dXJlQ29uZmlnPy5yZXNvdXJjZT8ubGFuZ3VhZ2VJZH1fJHtzY3JpcHR1cmVDb25maWc/LnJlc291cmNlPy5wcm9qZWN0SWR9YFxuICBjb25zdCByZWZlcmVuY2VfID0gc2NyaXB0dXJlQ29uZmlnPy5yZWZlcmVuY2UgfHwgbnVsbFxuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7IC8vIGdldCB0aGUgX3NoYSBmcm9tIGxhc3Qgc2NyaXB0dXJlIGRvd25sb2FkXG4gICAgY29uc3QgX3NoYSA9IGZldGNoUmVzcF8/LmRhdGE/LnNoYSB8fCBudWxsXG4gICAgY29uc29sZS5sb2coYGZvciAke0pTT04uc3RyaW5naWZ5KHJlZmVyZW5jZV8pfSBuZXcgc2hhIGlzICR7X3NoYX1gKVxuXG4gICAgaWYgKF9zaGEgIT09IHNoYSkge1xuICAgICAgc2V0U3RhdGUoeyBzaGE6IF9zaGEgfSlcbiAgICB9XG4gIH0sIFtmZXRjaFJlc3BfXSlcblxuICAvLyBAdHMtaWdub3JlXG4gIGNvbnN0IGNhcmRSZXNvdXJjZUlkID0gc2NyaXB0dXJlQ29uZmlnPy5yZXNvdXJjZT8ucHJvamVjdElkIHx8IHJlc291cmNlSWRcbiAgLy8gQHRzLWlnbm9yZVxuICBsZXQgcmVmXyA9IHNjcmlwdHVyZUNvbmZpZz8ucmVzb3VyY2U/LnJlZiB8fCBhcHBSZWZcbiAgY29uc3QgY2FuVXNlRWRpdEJyYW5jaCA9IGxvZ2dlZEluVXNlciAmJiBhdXRoZW50aWNhdGlvbiAmJlxuICAgIChyZXNvdXJjZUlkICE9PSBPUklHSU5BTF9TT1VSQ0UpICYmXG4gICAgKChyZWZfID09PSAnbWFzdGVyJykgfHwgKHJlZl8uc3Vic3RyaW5nKDAsIGxvZ2dlZEluVXNlci5sZW5ndGgpID09PSBsb2dnZWRJblVzZXIpICkgLy8gbm90IHRhZ1xuXG4gIGNvbnN0IHtcbiAgICBzdGF0ZTogeyB3b3JraW5nUmVzb3VyY2VCcmFuY2gsIHVzaW5nVXNlckJyYW5jaDogdXNpbmdVc2VyQnJhbmNoXyB9LFxuICAgIGFjdGlvbnM6IHsgc3RhcnRFZGl0OiBzdGFydEVkaXRCcmFuY2ggfSxcbiAgfSA9IHVzZVVzZXJCcmFuY2goe1xuICAgIG93bmVyLFxuICAgIHNlcnZlcixcbiAgICBhcHBSZWYsXG4gICAgbGFuZ3VhZ2VJZCxcbiAgICBjYXJkSWQ6IGlkLFxuICAgIGxvZ2dlZEluVXNlcjogY2FuVXNlRWRpdEJyYW5jaCA/IGxvZ2dlZEluVXNlciA6IG51bGwsXG4gICAgYXV0aGVudGljYXRpb246IGNhblVzZUVkaXRCcmFuY2ggPyBhdXRoZW50aWNhdGlvbiA6IG51bGwsXG4gICAgY2FyZFJlc291cmNlSWQsXG4gICAgb25SZXNvdXJjZUVycm9yLFxuICAgIHVzZVVzZXJMb2NhbFN0b3JhZ2UsXG4gIH0pXG5cbiAgY29uc3Qgd29ya2luZ1JlZiA9IGNhblVzZUVkaXRCcmFuY2ggPyB3b3JraW5nUmVzb3VyY2VCcmFuY2ggOiBhcHBSZWZcbiAgbGV0IHNjcmlwdHVyZVRpdGxlXG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHsgLy8gc2VsZWN0IGNvcnJlY3Qgd29ya2luZyByZWYgLSBjb3VsZCBiZSBtYXN0ZXIsIHVzZXIgYnJhbmNoLCBvciByZWxlYXNlXG4gICAgaWYgKHVzaW5nVXNlckJyYW5jaF8gIT09IHVzaW5nVXNlckJyYW5jaCkge1xuICAgICAgc2V0U3RhdGUoeyB1c2luZ1VzZXJCcmFuY2g6IHVzaW5nVXNlckJyYW5jaF8gfSlcbiAgICB9XG4gIH0sIFt1c2luZ1VzZXJCcmFuY2hfLCB1c2luZ1VzZXJCcmFuY2hdKVxuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7IC8vIHNlbGVjdCBjb3JyZWN0IHdvcmtpbmcgcmVmIC0gY291bGQgYmUgbWFzdGVyLCB1c2VyIGJyYW5jaCwgb3IgcmVsZWFzZVxuICAgIGxldCB3b3JraW5nUmVmXyA9IHdvcmtpbmdSZWYgfHwgYXBwUmVmXG5cbiAgICBpZiAocmVmICE9PSB3b3JraW5nUmVmXykge1xuICAgICAgc2V0U3RhdGUoeyByZWY6IHdvcmtpbmdSZWZfIH0pXG4gICAgfVxuICB9LCBbd29ya2luZ1JlZiwgcmVmLCBhcHBSZWZdKVxuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7IC8vIHVwZGF0ZSBkaXNwbGF5IHN0YXR1cyBpZiBlcnJvclxuICAgIGNvbnN0IGVycm9yID0gc2NyaXB0dXJlQ29uZmlnPy5yZXNvdXJjZVN0YXR1cz8uW0VSUk9SX1NUQVRFXVxuXG4gICAgaWYgKGVycm9yKSB7IC8vIGlmIGVycm9yIHdhcyBmb3VuZCBkbyBjYWxsYmFja1xuICAgICAgY29uc3QgcmVzb3VyY2VTdGF0dXMgPSBzY3JpcHR1cmVDb25maWc/LnJlc291cmNlU3RhdHVzXG4gICAgICBjb25zdCByZXNvdXJjZUxpbmsgPSBnZXRSZXNvdXJjZUxpbmsoc2NyaXB0dXJlQ29uZmlnKVxuICAgICAgY29uc3QgbWVzc2FnZSA9IGdldFJlc291cmNlTWVzc2FnZShyZXNvdXJjZVN0YXR1cywgc2VydmVyLCByZXNvdXJjZUxpbmssIGlzTlRfKVxuICAgICAgY29uc3QgaXNBY2Nlc3NFcnJvciA9IHJlc291cmNlU3RhdHVzW01BTklGRVNUX05PVF9MT0FERURfRVJST1JdXG4gICAgICBvblJlc291cmNlRXJyb3IgJiYgb25SZXNvdXJjZUVycm9yKG1lc3NhZ2UsIGlzQWNjZXNzRXJyb3IsIHJlc291cmNlU3RhdHVzKVxuICAgIH1cbiAgfSwgW3NjcmlwdHVyZUNvbmZpZz8ucmVzb3VyY2VTdGF0dXM/LltFUlJPUl9TVEFURV1dKVxuXG4gIGlmIChzY3JpcHR1cmVDb25maWcudGl0bGUgJiYgc2NyaXB0dXJlQ29uZmlnLnZlcnNpb24pIHtcbiAgICBzY3JpcHR1cmVUaXRsZSA9IGAke3NjcmlwdHVyZUNvbmZpZy50aXRsZX0gdiR7c2NyaXB0dXJlQ29uZmlnLnZlcnNpb259YFxuICAgIHNjcmlwdHVyZVZlcnNpb25IaXN0LnVwZGF0ZVRpdGxlKHNjcmlwdHVyZUNvbmZpZy5yZXNvdXJjZUxpbmssIHNjcmlwdHVyZVRpdGxlKVxuICB9IGVsc2Uge1xuICAgIHNjcmlwdHVyZVRpdGxlID0gYFRpdGxlIG1pc3NpbmcgZnJvbSBwcm9qZWN0IG1hbmlmZXN0YFxuICB9XG5cbiAgLyoqIER5bmFtaWNhbGx5IGNyZWF0ZXMgdGhlIHNjcmlwdHVyZSBzZWxlY3Rpb24gZHJvcGRvd24gdG8gYmUgaW5zZXJ0ZWQgaW50byBjYXJkIHNldHRpbmdzICovXG4gIGZ1bmN0aW9uIGdldFNjcmlwdHVyZVNlbGVjdG9yKCkge1xuICAgIGNvbnN0IHNjcmlwdHVyZVNlbGVjdGlvbkNvbmZpZyA9IGdldFNjcmlwdHVyZVZlcnNpb25TZXR0aW5ncyh7XG4gICAgICBsYWJlbCxcbiAgICAgIHJlc291cmNlTGluazogc2NyaXB0dXJlQ29uZmlnLnJlc291cmNlTGluayxcbiAgICAgIHNldFNjcmlwdHVyZSxcbiAgICAgIHNjcmlwdHVyZVZlcnNpb25IaXN0LFxuICAgIH0pXG5cbiAgICByZXR1cm4gPFNjcmlwdHVyZVNlbGVjdG9yIHsuLi5zY3JpcHR1cmVTZWxlY3Rpb25Db25maWd9IHN0eWxlPXtzdHlsZX0gZXJyb3JNZXNzYWdlPXt1cmxFcnJvcn0gLz5cbiAgfVxuXG4gIGZ1bmN0aW9uIG9uTWVudUNsb3NlKCkge1xuICAgIC8vIGNvbnNvbGUubG9nKGBvbk1lbnVDbG9zZSgpYClcbiAgICBzZXRTdGF0ZSh7IHVybEVycm9yOiBudWxsIH0pXG4gIH1cblxuICAvLyBAdHMtaWdub3JlXG4gIGNvbnN0IGxhbmd1YWdlSWRfID0gc2NyaXB0dXJlQ29uZmlnPy5yZXNvdXJjZT8ubGFuZ3VhZ2VJZFxuICBjb25zdCBsYW5ndWFnZSA9IGdldExhbmd1YWdlKHsgbGFuZ3VhZ2VJZDogbGFuZ3VhZ2VJZF8gfSlcbiAgY29uc3QgZGlyZWN0aW9uID0gKGxhbmd1YWdlPy5kaXJlY3Rpb24pIHx8ICdsdHInXG4gIGNvbnN0IHJlZmVyZW5jZSA9IHsgLi4uc2NyaXB0dXJlQ29uZmlnLnJlZmVyZW5jZSB9XG5cbiAgY29uc3QgaXNIZWJyZXcgPSAobGFuZ3VhZ2VJZF8gPT09ICdoYm8nKVxuICBjb25zdCBmb250RmFjdG9yID0gaXNIZWJyZXcgPyAxLjQgOiAxIC8vIHdlIGF1dG9tYXRpY2FsbHkgc2NhbGUgdXAgZm9udCBzaXplIGZvciBIZWJyZXdcbiAgY29uc3Qgc2NhbGVkRm9udFNpemUgPSBmb250U2l6ZSAqIGZvbnRGYWN0b3JcblxuICBjb25zdCBpdGVtcyA9IG51bGxcbiAgY29uc3Qge1xuICAgIHN0YXRlOiB7XG4gICAgICBoZWFkZXJzLCBmaWx0ZXJzLCBpdGVtSW5kZXgsIG1hcmtkb3duVmlldyxcbiAgICB9LFxuICAgIGFjdGlvbnM6IHtcbiAgICAgIHNldEZpbHRlcnMsIHNldEl0ZW1JbmRleCwgc2V0TWFya2Rvd25WaWV3LFxuICAgIH0sXG4gIH0gPSB1c2VDYXJkU3RhdGUoeyBpdGVtcyB9KVxuXG4gIGNvbnN0IHJlZlN0eWxlID0gUmVhY3QudXNlTWVtbygoKSA9PiAoe1xuICAgIGZvbnRGYW1pbHk6ICdOb3RvIFNhbnMnLFxuICAgIGZvbnRTaXplOiBgJHtNYXRoLnJvdW5kKHNjYWxlZEZvbnRTaXplICogMC45KX0lYCxcbiAgfSksIFtzY2FsZWRGb250U2l6ZV0pXG5cbiAgY29uc3QgY29udGVudFN0eWxlID0gUmVhY3QudXNlTWVtbygoKSA9PiAoe1xuICAgIGZvbnRGYW1pbHk6ICdOb3RvIFNhbnMnLFxuICAgIGZvbnRTaXplOiBgJHtzY2FsZWRGb250U2l6ZX0lYCxcbiAgfSksIFtzY2FsZWRGb250U2l6ZV0pXG5cbiAgY29uc3Qgc2NyaXB0dXJlTGFiZWwgPSA8VGl0bGU+e3NjcmlwdHVyZVRpdGxlfTwvVGl0bGU+XG4gIGxldCBkaXNhYmxlV29yZFBvcG92ZXJfID0gZGlzYWJsZVdvcmRQb3BvdmVyXG4gIGNvbnN0IHVzaW5nT3JpZ2luYWxCaWJsZSA9IGlzT3JpZ2luYWxCaWJsZShzY3JpcHR1cmVDb25maWdbJ3Jlc291cmNlJ10/LnByb2plY3RJZClcblxuICBpZiAoZGlzYWJsZVdvcmRQb3BvdmVyID09PSB1bmRlZmluZWQpIHsgLy8gaWYgbm90IHNwZWNpZmllZCwgdGhlbiBkZXRlcm1pbmUgaWYgb3JpZ2luYWwgbGFuZ3VhZ2UgcmVzb3VyY2VcbiAgICBkaXNhYmxlV29yZFBvcG92ZXJfID0gIXVzaW5nT3JpZ2luYWxCaWJsZVxuICB9XG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHsgLy8gcHJlLWNhY2hlIGdsb3NzZXMgb24gdmVyc2UgY2hhbmdlXG4gICAgY29uc3QgZmV0Y2hHbG9zc0RhdGFGb3JWZXJzZSA9IGFzeW5jICgpID0+IHtcbiAgICAgIGxldCB2ZXJzZU9iamVjdHMgPSBbXVxuXG4gICAgICAvLyBnZXQgdmVyc2Ugb2JqZWN0cyBvZiBhbGwgdGhlIHZlcnNlc1xuICAgICAgZm9yIChjb25zdCB2ZXJzZVJlZiBvZiBzY3JpcHR1cmVDb25maWc/LnZlcnNlc0ZvclJlZiB8fCBbXSkge1xuICAgICAgICBjb25zdCBfdmVyc2VPYmplY3RzID0gdmVyc2VSZWY/LnZlcnNlRGF0YT8udmVyc2VPYmplY3RzXG4gICAgICAgIHZlcnNlT2JqZWN0cyA9IHZlcnNlT2JqZWN0cy5jb25jYXQoX3ZlcnNlT2JqZWN0cylcbiAgICAgIH1cblxuICAgICAgaWYgKCFkaXNhYmxlV29yZFBvcG92ZXIgJiYgdmVyc2VPYmplY3RzPy5sZW5ndGggJiYgZmV0Y2hHbG9zc2VzRm9yVmVyc2UpIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWF3YWl0LWluLWxvb3BcbiAgICAgICAgYXdhaXQgZmV0Y2hHbG9zc2VzRm9yVmVyc2UodmVyc2VPYmplY3RzLCBsYW5ndWFnZUlkXylcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodXNpbmdPcmlnaW5hbEJpYmxlKSB7XG4gICAgICBmZXRjaEdsb3NzRGF0YUZvclZlcnNlKClcbiAgICB9XG4gIH0sIFsgdmVyc2VzRm9yUmVmLCBsYW5ndWFnZUlkXyBdKVxuXG4gIGNvbnN0IGVuYWJsZUVkaXQgPSAhdXNpbmdPcmlnaW5hbEJpYmxlXG4gIGNvbnN0IGVuYWJsZUFsaWdubWVudCA9ICF1c2luZ09yaWdpbmFsQmlibGVcbiAgY29uc3Qgb3JpZ2luYWxSZXBvVXJsID0gaXNOZXdUZXN0YW1lbnQgPyBncmVla1JlcG9VcmwgOiBoZWJyZXdSZXBvVXJsXG4gIGNvbnN0IHNjcmlwdHVyZUFsaWdubWVudEVkaXRDb25maWcgPSB7XG4gICAgYXV0aGVudGljYXRpb246IGNhblVzZUVkaXRCcmFuY2ggPyBhdXRoZW50aWNhdGlvbiA6IG51bGwsXG4gICAgYm9va0luZGV4LFxuICAgIGN1cnJlbnRWZXJzZVJlZjogcmVmZXJlbmNlLFxuICAgIGVuYWJsZUVkaXQsXG4gICAgZW5hYmxlQWxpZ25tZW50LFxuICAgIGh0dHBDb25maWcsXG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIGlzTmV3VGVzdGFtZW50LFxuICAgIGxvZ2dlZEluVXNlcjogY2FuVXNlRWRpdEJyYW5jaCA/IGxvZ2dlZEluVXNlciA6IG51bGwsXG4gICAgb3JpZ2luYWxMYW5ndWFnZU93bmVyLFxuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBvcmlnaW5hbFJlcG9VcmwsXG4gICAgc2NyaXB0dXJlQ29uZmlnLFxuICAgIHNjcmlwdHVyZVNldHRpbmdzLFxuICAgIHN0YXJ0RWRpdEJyYW5jaCxcbiAgICBzZXRTYXZlZENoYW5nZXM6IF9zZXRTYXZlZENoYW5nZXMsXG4gICAgc291cmNlTGFuZ3VhZ2U6IGlzTlRfID8gTlRfT1JJR19MQU5HIDogT1RfT1JJR19MQU5HLFxuICAgIHRhcmdldExhbmd1YWdlOiBsYW5ndWFnZSxcbiAgICB0aXRsZTogc2NyaXB0dXJlVGl0bGUsXG4gICAgd29ya2luZ1Jlc291cmNlQnJhbmNoOiByZWYsXG4gIH1cblxuICAvKipcbiAgICogdGhpcyBnZXRzIGNhbGxlZCB3aGVuZXZlciBhIHNjcmlwdHVyZSBwYW5lIGhhcyBhIGNoYW5nZSBpbiBzYXZlIHN0YXRlXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBjdXJyZW50SW5kZXhcbiAgICogQHBhcmFtIHtib29sZWFufSBzYXZlZFxuICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBnZXRDaGFuZ2VzIC0gd2lsbCBiZSBjYWxsZWQgd2hlbmV2ZXIgdXNlciBjbGlja3Mgc2F2ZSBidXR0b25cbiAgICogQHBhcmFtIHtmdW5jdGlvbn0gY2xlYXJDaGFuZ2VzIC0gd2lsbCBiZSBjYWxsZWQgd2hlbmV2ZXIgc2F2ZSBoYXMgY29tcGxldGVkXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBzdGF0ZSAtIGN1cnJlbnQgc3RhdGUgb2Ygd29yZCBhbGlnbm1lbnQvZWRpdFxuICAgKi9cbiAgZnVuY3Rpb24gX3NldFNhdmVkQ2hhbmdlcyhjdXJyZW50SW5kZXgsIHNhdmVkLCB7IGdldENoYW5nZXMgPSBudWxsLCBjbGVhckNoYW5nZXMgPSBudWxsLCBzdGF0ZSA9IG51bGwgfSkge1xuICAgIGNvbnN0IF91bnNhdmVkQ2hhbmdlc0xpc3QgPSB7IC4uLnVuc2F2ZWRDaGFuZ2VzTGlzdCB9XG5cbiAgICBpZiAoc2F2ZWQpIHtcbiAgICAgIGlmIChfdW5zYXZlZENoYW5nZXNMaXN0Lmhhc093blByb3BlcnR5KGN1cnJlbnRJbmRleCkpIHtcbiAgICAgICAgZGVsZXRlIF91bnNhdmVkQ2hhbmdlc0xpc3RbY3VycmVudEluZGV4XVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBfdW5zYXZlZENoYW5nZXNMaXN0W2N1cnJlbnRJbmRleF0gPSB7IGdldENoYW5nZXMsIGNsZWFyQ2hhbmdlcywgc3RhdGUgfSAvLyB1cGRhdGUgd2l0aCBsYXRlc3RcbiAgICB9XG5cbiAgICBjb25zdCBfaGF2ZVVuc2F2ZWRDaGFuZ2VzID0gISFPYmplY3Qua2V5cyhfdW5zYXZlZENoYW5nZXNMaXN0KS5sZW5ndGhcblxuICAgIGlmIChoYXZlVW5zYXZlZENoYW5nZXMgIT0gX2hhdmVVbnNhdmVkQ2hhbmdlcykge1xuICAgICAgc2V0U2F2ZWRDaGFuZ2VzICYmIHNldFNhdmVkQ2hhbmdlcyhyZXNvdXJjZUlkLCAhX2hhdmVVbnNhdmVkQ2hhbmdlcylcbiAgICAgIHNldFN0YXRlKHsgaGF2ZVVuc2F2ZWRDaGFuZ2VzOiBfaGF2ZVVuc2F2ZWRDaGFuZ2VzIH0pXG4gICAgfVxuXG4gICAgaWYgKCFpc0VxdWFsKF91bnNhdmVkQ2hhbmdlc0xpc3QsIHVuc2F2ZWRDaGFuZ2VzTGlzdCkpIHtcbiAgICAgIHNldFN0YXRlKHsgdW5zYXZlZENoYW5nZXNMaXN0OiBfdW5zYXZlZENoYW5nZXNMaXN0IH0pXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIHNlYXJjaCBjaGFwdGVyIG9yIHZlcnNlIGNodW5rIHRvIGxpbmUgdGhhdCBzdGFydHMgd2l0aCBmaW5kSXRlbVxuICAgKiBAcGFyYW0ge251bWJlcnxzdHJpbmd9IGZpbmRJdGVtXG4gICAqIEBwYXJhbSB7c3RyaW5nW119IGNodW5rc1xuICAgKi9cbiAgZnVuY3Rpb24gZmluZFJlZkluQXJyYXkoZmluZEl0ZW0sIGNodW5rcykge1xuICAgIGNvbnN0IHJlZl8gPSBmaW5kSXRlbSArICcnXG4gICAgY29uc3QgcmVmTGVuID0gcmVmXy5sZW5ndGhcbiAgICBjb25zdCBpbmRleCA9IGNodW5rcy5maW5kSW5kZXgoKGNodW5rLCBpZHgpID0+IHtcbiAgICAgIGlmIChpZHggPiAwKSB7XG4gICAgICAgIGlmIChjaHVuay5zdWJzdHJpbmcoMCwgcmVmTGVuKSA9PT0gcmVmXykge1xuICAgICAgICAgIGNvbnN0IG5leHRDaGFyID0gY2h1bmtbcmVmTGVuXVxuXG4gICAgICAgICAgaWYgKChuZXh0Q2hhciA+ICc5JykgfHwgKG5leHRDaGFyIDwgJzAnKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH0pXG4gICAgcmV0dXJuIGluZGV4XG4gIH1cblxuICBmdW5jdGlvbiBnZXRCb29rTmFtZSgpIHtcbiAgICBjb25zdCBib29rQ2FwcyA9IHNjcmlwdHVyZUNvbmZpZz8ucmVmZXJlbmNlPy5wcm9qZWN0SWQgPyBzY3JpcHR1cmVDb25maWcucmVmZXJlbmNlLnByb2plY3RJZC50b1VwcGVyQ2FzZSgpIDogJydcbiAgICByZXR1cm4gYCR7Ym9va0luZGV4fS0ke2Jvb2tDYXBzfS51c2ZtYFxuICB9XG5cbiAgY29uc3QgZmlsZXBhdGggPSBnZXRCb29rTmFtZSgpXG5cbiAgLy8ga2VlcCB0cmFjayBvZiB2ZXJzZSBlZGl0IHN0YXRlXG4gIGNvbnN0IHsgb25TYXZlRWRpdCB9ID0gdXNlRWRpdCh7XG4gICAgc2hhLFxuICAgIG93bmVyLFxuICAgIGNvbnRlbnQ6IHNhdmVDb250ZW50LFxuICAgIGNvbmZpZzoge1xuICAgICAgY2FjaGU6IHsgbWF4QWdlOiAwIH0sXG4gICAgICAuLi5hdXRoZW50aWNhdGlvbj8uY29uZmlnLFxuICAgICAgdG9rZW46IGF1dGhlbnRpY2F0aW9uPy50b2tlbixcbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIHRpbWVvdXQ6IGh0dHBDb25maWc/LnNlcnZlclRpbWVPdXQgfHwgaHR0cENvbmZpZz8udGltZW91dCB8fCA1MDAwLFxuICAgIH0sXG4gICAgYXV0aG9yOiBsb2dnZWRJblVzZXIsXG4gICAgdG9rZW46IGF1dGhlbnRpY2F0aW9uPy50b2tlbixcbiAgICBicmFuY2g6IHdvcmtpbmdSZXNvdXJjZUJyYW5jaCxcbiAgICBmaWxlcGF0aCxcbiAgICByZXBvLFxuICB9KVxuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7IC8vIHdoZW4gc3RhcnRTYXZlIGdvZXMgdHJ1ZSwgc2F2ZSBlZGl0cyB0byB1c2VyIGJyYW5jaCBhbmQgdGhlbiBjbGVhciBzdGFydFNhdmVcbiAgICBjb25zdCBfc2F2ZUVkaXQgPSBhc3luYyAoKSA9PiB7IC8vIGJlZ2luIHVwbG9hZGluZyBuZXcgVVNGTVxuICAgICAgbGV0IGJyYW5jaCA9ICh3b3JraW5nUmVzb3VyY2VCcmFuY2ggIT09ICdtYXN0ZXInKSA/IHdvcmtpbmdSZXNvdXJjZUJyYW5jaCA6IHVuZGVmaW5lZFxuXG4gICAgICBpZiAoIWJyYW5jaCkge1xuICAgICAgICBicmFuY2ggPSBhd2FpdCBzdGFydEVkaXRCcmFuY2goKSAvLyBtYWtlIHN1cmUgdXNlciBicmFuY2ggZXhpc3RzIGFuZCBnZXQgbmFtZVxuICAgICAgfVxuXG4gICAgICBhd2FpdCBvblNhdmVFZGl0KGJyYW5jaCkudGhlbigoc3VjY2VzcykgPT4geyAvLyBwdXNoIGNoYW5nZWQgdG8gc2VydmVyXG4gICAgICAgIGlmIChzdWNjZXNzKSB7XG4gICAgICAgICAgY29uc29sZS5sb2coYHNhdmVDaGFuZ2VzVG9DbG91ZCgpIC0gc2F2ZSBzY3JpcHR1cmUgZWRpdHMgc3VjY2Vzc2ApXG4gICAgICAgICAgc2V0U3RhdGUoeyBzdGFydFNhdmU6IGZhbHNlIH0pXG5cbiAgICAgICAgICBjb25zdCB1bnNhdmVkQ2FyZEluZGljZXMgPSBPYmplY3Qua2V5cyh1bnNhdmVkQ2hhbmdlc0xpc3QpXG5cbiAgICAgICAgICBpZiAodW5zYXZlZENhcmRJbmRpY2VzPy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgY2FyZEluZGV4IG9mIHVuc2F2ZWRDYXJkSW5kaWNlcykge1xuICAgICAgICAgICAgICBjb25zdCB7IGNsZWFyQ2hhbmdlcyB9ID0gdW5zYXZlZENoYW5nZXNMaXN0W2NhcmRJbmRleF1cbiAgICAgICAgICAgICAgY2xlYXJDaGFuZ2VzICYmIGNsZWFyQ2hhbmdlcygpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc29sZS5pbmZvKCdzYXZlQ2hhbmdlc1RvQ2xvdWQoKSAtIFJlbG9hZGluZyByZXNvdXJjZScpXG4gICAgICAgICAgc2NyaXB0dXJlQ29uZmlnPy5yZWxvYWRSZXNvdXJjZSgpXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcignc2F2ZUNoYW5nZXNUb0Nsb3VkKCkgLSBzYXZpbmcgY2hhbmdlZCBzY3JpcHR1cmUgZmFpbGVkJylcbiAgICAgICAgICBzZXRTdGF0ZSh7IHN0YXJ0U2F2ZTogZmFsc2UgfSlcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICB9XG5cbiAgICBpZiAoc3RhcnRTYXZlKSB7XG4gICAgICBjb25zb2xlLmxvZyhgc2F2ZUNoYW5nZXNUb0Nsb3VkIC0gY2FsbGluZyBfc2F2ZUVkaXQoKWApXG4gICAgICBfc2F2ZUVkaXQoKVxuICAgIH1cbiAgfSwgW3N0YXJ0U2F2ZV0pXG5cbiAgLyoqXG4gICAqIGNvbnZlcnQgdXBkYXRlZFZlcnNlT2JqZWN0cyB0byBVU0ZNIGFuZCBtZXJnZSBpbnRvIHRoZSBiaWJsZVVzZm1cbiAgICogQHBhcmFtIHtzdHJpbmd9IGJpYmxlVXNmbSAtIFVTRk0gb2YgYmlibGVcbiAgICogQHBhcmFtIHtvYmplY3R9IHJlZiAtIHJlZmVyZW5jZSBvZiB2ZXJzZSB0byBtZXJnZSBpblxuICAgKiBAcGFyYW0ge29iamVjdFtdfSB1cGRhdGVkVmVyc2VPYmplY3RzIC0gbmV3IHZlcnNlIGluIHZlcnNlT2JqZWN0IGZvcm1hdFxuICAgKiBAcGFyYW0ge251bWJlcn0gY2FyZE51bVxuICAgKi9cbiAgZnVuY3Rpb24gbWVyZ2VWZXJzZU9iamVjdHNJbnRvQmlibGVVc2ZtKGJpYmxlVXNmbSwgcmVmLCB1cGRhdGVkVmVyc2VPYmplY3RzLCBjYXJkTnVtOiBudW1iZXIpIHtcbiAgICBsZXQgbmV3VXNmbVxuICAgIGNvbnN0IGNoYXB0ZXJDaHVua3MgPSBiaWJsZVVzZm0/LnNwbGl0KCdcXFxcYyAnKVxuICAgIGNvbnN0IGNoYXB0ZXJJbmRleCA9IGZpbmRSZWZJbkFycmF5KHJlZj8uY2hhcHRlciwgY2hhcHRlckNodW5rcylcblxuICAgIGlmIChjaGFwdGVySW5kZXggPj0gMCkge1xuICAgICAgY29uc3QgY3VycmVudENoYXB0ZXIgPSBjaGFwdGVyQ2h1bmtzW2NoYXB0ZXJJbmRleF1cbiAgICAgIGNvbnN0IHZlcnNlQ2h1bmtzID0gY3VycmVudENoYXB0ZXIuc3BsaXQoJ1xcXFx2ICcpXG4gICAgICBjb25zdCB2ZXJzZUluZGV4ID0gZmluZFJlZkluQXJyYXkocmVmPy52ZXJzZSwgdmVyc2VDaHVua3MpXG5cbiAgICAgIGlmICh2ZXJzZUluZGV4ID49IDApIHtcbiAgICAgICAgY29uc3QgbmV3VmVyc2VVc2ZtID0gVXNmbUZpbGVDb252ZXJzaW9uSGVscGVycy5jb252ZXJ0VmVyc2VEYXRhVG9VU0ZNKHVwZGF0ZWRWZXJzZU9iamVjdHMpXG4gICAgICAgIGNvbnNvbGUubG9nKGBzYXZlQ2hhbmdlc1RvQ2xvdWQoJHtjYXJkTnVtfSkgLSBuZXcgVVNGTSBmb3IgY2FyZDp9IC0gJHtuZXdWZXJzZVVzZm0uc3Vic3RyaW5nKDAsIDEwMCl9YClcbiAgICAgICAgY29uc3Qgb2xkVmVyc2UgPSB2ZXJzZUNodW5rc1t2ZXJzZUluZGV4XVxuICAgICAgICBjb25zdCB2ZXJzZU51bUxlbiA9IChyZWY/LnZlcnNlICsgJycpLmxlbmd0aFxuICAgICAgICB2ZXJzZUNodW5rc1t2ZXJzZUluZGV4XSA9IG9sZFZlcnNlLnN1YnN0cmluZygwLCB2ZXJzZU51bUxlbiArIDEpICsgbmV3VmVyc2VVc2ZtXG4gICAgICAgIGNvbnN0IG5ld0NoYXB0ZXIgPSB2ZXJzZUNodW5rcy5qb2luKCdcXFxcdiAnKVxuICAgICAgICBjaGFwdGVyQ2h1bmtzW2NoYXB0ZXJJbmRleF0gPSBuZXdDaGFwdGVyXG4gICAgICAgIG5ld1VzZm0gPSBjaGFwdGVyQ2h1bmtzLmpvaW4oJ1xcXFxjICcpXG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBuZXdVc2ZtXG4gIH1cblxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4geyAvLyBmb3IgZWFjaCB1bnNhdmVkIGNoYW5nZSwgY2FsbCBpbnRvIHZlcnNlUGFuZSB0byBnZXQgbGF0ZXN0IGNoYW5nZXMgZm9yIHZlcnNlIHRvIHNhdmVcbiAgICBpZiAoc2F2ZUNsaWNrZWQpIHtcbiAgICAgIGNvbnN0IHVuc2F2ZWRDYXJkSW5kaWNlcyA9IE9iamVjdC5rZXlzKHVuc2F2ZWRDaGFuZ2VzTGlzdClcblxuICAgICAgaWYgKHVuc2F2ZWRDYXJkSW5kaWNlcz8ubGVuZ3RoKSB7XG4gICAgICAgIGxldCBiaWJsZVVzZm0gPSBjb3JlLmdldFJlc3BvbnNlRGF0YShzY3JpcHR1cmVDb25maWc/LmZldGNoUmVzcG9uc2UpXG4gICAgICAgIGxldCBtZXJnZUZhaWwgPSBmYWxzZVxuICAgICAgICBsZXQgY2FyZE51bSA9IDBcblxuICAgICAgICBmb3IgKGNvbnN0IGNhcmRJbmRleCBvZiB1bnNhdmVkQ2FyZEluZGljZXMpIHtcbiAgICAgICAgICBjYXJkTnVtID0gcGFyc2VJbnQoY2FyZEluZGV4KVxuICAgICAgICAgIGNvbnN0IHsgZ2V0Q2hhbmdlcywgc3RhdGUgfSA9IHVuc2F2ZWRDaGFuZ2VzTGlzdFtjYXJkTnVtXVxuXG4gICAgICAgICAgaWYgKGdldENoYW5nZXMpIHtcbiAgICAgICAgICAgIGxldCBuZXdVc2ZtXG4gICAgICAgICAgICBjb25zdCB7XG4gICAgICAgICAgICAgIHJlZixcbiAgICAgICAgICAgICAgdXBkYXRlZFZlcnNlT2JqZWN0cyxcbiAgICAgICAgICAgIH0gPSBnZXRDaGFuZ2VzKHN0YXRlKVxuXG4gICAgICAgICAgICBpZiAodXBkYXRlZFZlcnNlT2JqZWN0cyAmJiBiaWJsZVVzZm0pIHsgLy8ganVzdCByZXBsYWNlIHZlcnNlXG4gICAgICAgICAgICAgIG5ld1VzZm0gPSBtZXJnZVZlcnNlT2JqZWN0c0ludG9CaWJsZVVzZm0oYmlibGVVc2ZtLCByZWYsIHVwZGF0ZWRWZXJzZU9iamVjdHMsIGNhcmROdW0pXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChuZXdVc2ZtKSB7XG4gICAgICAgICAgICAgIGJpYmxlVXNmbSA9IG5ld1VzZm1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIG1lcmdlRmFpbCA9IHRydWVcbiAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobWVyZ2VGYWlsKSB7IC8vIGlmIHdlIGZhaWxlZCB0byBtZXJnZSwgZmFsbGJhY2sgdG8gYnJ1dGUgZm9yY2UgdmVyc2Ugb2JqZWN0cyB0byBVU0ZNXG4gICAgICAgICAgY29uc29sZS5sb2coYHNhdmVDaGFuZ2VzVG9DbG91ZCgke2NhcmROdW19KSAtIHZlcnNlIG5vdCBmb3VuZCwgZmFsbGluZyBiYWNrIHRvIGluc2VydGluZyB2ZXJzZSBvYmplY3RgKVxuICAgICAgICAgIGxldCBuZXdCb29rSnNvblxuXG4gICAgICAgICAgZm9yIChjb25zdCBjYXJkSW5kZXggb2YgdW5zYXZlZENhcmRJbmRpY2VzKSB7XG4gICAgICAgICAgICBjb25zdCBjYXJkTnVtID0gcGFyc2VJbnQoY2FyZEluZGV4KVxuICAgICAgICAgICAgY29uc3QgeyBnZXRDaGFuZ2VzLCBzdGF0ZSB9ID0gdW5zYXZlZENoYW5nZXNMaXN0W2NhcmROdW1dXG5cbiAgICAgICAgICAgIGlmIChnZXRDaGFuZ2VzKSB7XG4gICAgICAgICAgICAgIGxldCBuZXdVc2ZtXG4gICAgICAgICAgICAgIGNvbnN0IHtcbiAgICAgICAgICAgICAgICBuZXdWZXJzZVRleHQsXG4gICAgICAgICAgICAgICAgcmVmLFxuICAgICAgICAgICAgICAgIHVwZGF0ZWRWZXJzZU9iamVjdHMsXG4gICAgICAgICAgICAgIH0gPSBnZXRDaGFuZ2VzKHN0YXRlKVxuXG4gICAgICAgICAgICAgIGlmICh1cGRhdGVkVmVyc2VPYmplY3RzICYmICFuZXdVc2ZtKSB7XG4gICAgICAgICAgICAgICAgbGV0IHRhcmdldFZlcnNlT2JqZWN0c18gPSBudWxsXG5cbiAgICAgICAgICAgICAgICBpZiAocmVmKSB7XG4gICAgICAgICAgICAgICAgICBpZiAobmV3VmVyc2VUZXh0KSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgdGFyZ2V0VmVyc2VPYmplY3RzIH0gPSBBbGlnbm1lbnRIZWxwZXJzLnVwZGF0ZUFsaWdubWVudHNUb1RhcmdldFZlcnNlKHVwZGF0ZWRWZXJzZU9iamVjdHMsIG5ld1ZlcnNlVGV4dClcbiAgICAgICAgICAgICAgICAgICAgdGFyZ2V0VmVyc2VPYmplY3RzXyA9IHRhcmdldFZlcnNlT2JqZWN0c1xuICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGFyZ2V0VmVyc2VPYmplY3RzXyA9IHVwZGF0ZWRWZXJzZU9iamVjdHNcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIG5ld0Jvb2tKc29uID0gdGFyZ2V0VmVyc2VPYmplY3RzXyAmJiBzY3JpcHR1cmVDb25maWc/LnVwZGF0ZVZlcnNlKHJlZi5jaGFwdGVyLCByZWYudmVyc2UsIHsgdmVyc2VPYmplY3RzOiB0YXJnZXRWZXJzZU9iamVjdHNfIH0pXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgYmlibGVVc2ZtID0gdXNmbWpzLnRvVVNGTShuZXdCb29rSnNvbiwgeyBmb3JjZWROZXdMaW5lczogdHJ1ZSB9KVxuICAgICAgICB9XG5cbiAgICAgICAgY29uc29sZS5sb2coYHNhdmVDaGFuZ2VzVG9DbG91ZCgpIC0gc2F2aW5nIG5ldyBVU0ZNOiAke2JpYmxlVXNmbS5zdWJzdHJpbmcoMCwgMTAwKX0uLi5gKVxuICAgICAgICBzZXRTdGF0ZSh7IHNhdmVDb250ZW50OiBiaWJsZVVzZm0sIHN0YXJ0U2F2ZTogdHJ1ZSwgc2F2ZUNsaWNrZWQ6IGZhbHNlIH0pXG4gICAgICB9XG4gICAgfVxuICB9LCBbc2F2ZUNsaWNrZWRdKVxuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgX3ZlcnNlc0ZvclJlZiA9IHNjcmlwdHVyZUNvbmZpZz8udmVyc2VzRm9yUmVmXG4gICAgbGV0IG5ld1NlbGVjdGlvbnMgPSBuZXcgTWFwKClcbiAgICBsZXQgdXBkYXRlU2VsZWN0aW9ucyA9IGZhbHNlXG4gICAgY29uc3QgX21hcCA9IG5ld1NlbGVjdGlvbnNcbiAgICBjb25zdCBvcmlnaW5hbEJvb2tJZCA9IG9yaWdpbmFsVmVyc2VPYmplY3RzPy5ib29rSWRcbiAgICBjb25zdCBib29rVmVyc2VPYmplY3QgPSBvcmlnaW5hbFZlcnNlT2JqZWN0cz8uY2hhcHRlcnNcbiAgICBsZXQgbmV3U2VsZWN0ZWRRdW90ZSA9IG51bGxcblxuICAgIC8vIGlmIHdlIGhhdmUgZXZlcnl0aGluZyB3ZSBuZWVkIHRvIGNhbGN1bGF0ZSBzZWxlY3Rpb25zXG4gICAgaWYgKF92ZXJzZXNGb3JSZWY/Lmxlbmd0aCAmJlxuICAgICAgYm9va1ZlcnNlT2JqZWN0ICYmXG4gICAgICAoYm9va0lkID09PSBvcmlnaW5hbEJvb2tJZCkgJiZcbiAgICAgIGJvb2tWZXJzZU9iamVjdFtjaGFwdGVyXSAmJiAvLyB3ZSBuZWVkIHRvIGhhdmUgZGF0YSBmb3IgY2hhcHRlclxuICAgICAgc2VsZWN0ZWRRdW90ZT8ucXVvdGVcbiAgICApIHtcbiAgICAgIC8vIGlmIHF1b3RlIGlzIGRpZmZlcmVudCB0aGFuIGxhc3RcbiAgICAgIGlmICghaXNFcXVhbChsYXN0U2VsZWN0ZWRRdW90ZSwgc2VsZWN0ZWRRdW90ZSkgfHxcbiAgICAgICAgIWlzRXF1YWwodmVyc2VzRm9yUmVmLCBfdmVyc2VzRm9yUmVmKSkge1xuICAgICAgICBjb25zdCBvcmlnaW5hbFZlcnNlcyA9IHt9XG4gICAgICAgIGNvbnN0IHN1YnN0aXR1dGUgPSB7fSAvLyBrZWVwIHRyYWNrIG9mIHZlcnNlIHN1YnN0aXR1dGlvbnNcbiAgICAgICAgbGV0IHN0YXJ0VmVyc2UgPSBfdmVyc2VzRm9yUmVmWzBdLnZlcnNlXG5cbiAgICAgICAgaWYgKHR5cGVvZiBzdGFydFZlcnNlID09PSAnc3RyaW5nJykge1xuICAgICAgICAgIHN0YXJ0VmVyc2UgPSBwYXJzZUludChzdGFydFZlcnNlKVxuICAgICAgICB9XG5cbiAgICAgICAgbGV0IGxhc3RWZXJzZSA9IHN0YXJ0VmVyc2VcblxuICAgICAgICBmb3IgKGxldCBpID0gMCwgbCA9IF92ZXJzZXNGb3JSZWYubGVuZ3RoOyBpIDwgbDsgaSsrKSB7XG4gICAgICAgICAgY29uc3QgdmVyc2VSZWYgPSBfdmVyc2VzRm9yUmVmW2ldXG4gICAgICAgICAgY29uc3Qge1xuICAgICAgICAgICAgY2hhcHRlcixcbiAgICAgICAgICAgIHZlcnNlLFxuICAgICAgICAgIH0gPSB2ZXJzZVJlZlxuICAgICAgICAgIC8vIFRSSUNLWSAtIHdlIHJlbWFwIHZlcnNlcyBpbiByZWZlcmVuY2UgcmFuZ2UgdG8gYSBsaW5lYXIgc2VyaWVzIG9mIHZlcnNlcyBzbyB2ZXJzZSBzcGFucyBkb24ndCBjaG9rZSBnZXRRdW90ZU1hdGNoZXNJbkJvb2tSZWZcbiAgICAgICAgICBsZXQgX3ZlcnNlID0gc3RhcnRWZXJzZSArIGlcbiAgICAgICAgICBsYXN0VmVyc2UgPSBfdmVyc2VcbiAgICAgICAgICBzdWJzdGl0dXRlW2Ake2NoYXB0ZXJ9OiR7X3ZlcnNlfWBdID0gYCR7Y2hhcHRlcn06JHt2ZXJzZX1gXG5cbiAgICAgICAgICBpZiAoIW9yaWdpbmFsVmVyc2VzW2NoYXB0ZXJdKSB7XG4gICAgICAgICAgICBvcmlnaW5hbFZlcnNlc1tjaGFwdGVyXSA9IHt9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgbGV0IHZlcnNlT2JqZWN0cyA9IFtdXG5cbiAgICAgICAgICBpZiAoKHR5cGVvZiB2ZXJzZSA9PT0gJ3N0cmluZycpICYmICh2ZXJzZS5pbmNsdWRlcygnLScpKSkge1xuICAgICAgICAgICAgY29uc3QgdmVyc2VzID0gZ2V0VmVyc2VzKGJvb2tWZXJzZU9iamVjdCwgYCR7Y2hhcHRlcn06JHt2ZXJzZX1gKVxuXG4gICAgICAgICAgICBmb3IgKGNvbnN0IHZlcnNlSXRlbSBvZiB2ZXJzZXMpIHtcbiAgICAgICAgICAgICAgY29uc3Qgdm8gPSB2ZXJzZUl0ZW0udmVyc2VEYXRhLnZlcnNlT2JqZWN0c1xuICAgICAgICAgICAgICB2ZXJzZU9iamVjdHMgPSB2ZXJzZU9iamVjdHMuY29uY2F0KHZvKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB2ZXJzZU9iamVjdHMgPSBib29rVmVyc2VPYmplY3RbY2hhcHRlcl1bdmVyc2VdPy52ZXJzZU9iamVjdHNcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAodmVyc2VPYmplY3RzKSB7XG4gICAgICAgICAgICB2ZXJzZU9iamVjdHMgPSBjbGVhbnVwVmVyc2VPYmplY3RzKHZlcnNlT2JqZWN0cylcbiAgICAgICAgICAgIG9yaWdpbmFsVmVyc2VzW2NoYXB0ZXJdW192ZXJzZV0gPSB7IHZlcnNlT2JqZWN0cyB9XG4gICAgICAgICAgICBfbWFwLnNldChgJHtjaGFwdGVyfToke3ZlcnNlfWAsIHZlcnNlT2JqZWN0cylcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBbY2hhcHRlcl0gPSBzZWxlY3RlZFF1b3RlPy5yZWZlcmVuY2U/LnNwbGl0KCc6JylcbiAgICAgICAgbGV0IHN1YlJlZiA9IGAke2NoYXB0ZXJ9OiR7c3RhcnRWZXJzZX1gXG5cbiAgICAgICAgaWYgKGxhc3RWZXJzZSAhPSBzdGFydFZlcnNlKSB7XG4gICAgICAgICAgc3ViUmVmICs9IGAtJHtsYXN0VmVyc2V9YFxuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcXVvdGVNYXRjaGVzID0gZ2V0UXVvdGVNYXRjaGVzSW5Cb29rUmVmKHtcbiAgICAgICAgICBib29rT2JqZWN0OiBvcmlnaW5hbFZlcnNlcyxcbiAgICAgICAgICByZWY6IHN1YlJlZixcbiAgICAgICAgICBxdW90ZTogc2VsZWN0ZWRRdW90ZT8ucXVvdGUsXG4gICAgICAgICAgb2NjdXJyZW5jZTogc2VsZWN0ZWRRdW90ZT8ub2NjdXJyZW5jZSxcbiAgICAgICAgfSlcblxuICAgICAgICBjb25zdCBzZWxlY3Rpb25zID0gbmV3IE1hcCgpXG5cbiAgICAgICAgaWYgKHF1b3RlTWF0Y2hlcz8uc2l6ZSkge1xuICAgICAgICAgIHF1b3RlTWF0Y2hlcy5mb3JFYWNoKCh3b3Jkcywga2V5KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBfa2V5ID0gc3Vic3RpdHV0ZVtrZXldXG5cbiAgICAgICAgICAgIHNlbGVjdGlvbnMuc2V0KF9rZXksIHdvcmRzLm1hcCh3b3JkID0+IChcbiAgICAgICAgICAgICAgeyAuLi53b3JkLCB0ZXh0OiBjb3JlLm5vcm1hbGl6ZVN0cmluZyh3b3JkLnRleHQpIH1cbiAgICAgICAgICAgICkpKVxuICAgICAgICAgIH0pXG4gICAgICAgIH1cbiAgICAgICAgbmV3U2VsZWN0aW9ucyA9IHNlbGVjdGlvbnNcbiAgICAgICAgbmV3U2VsZWN0ZWRRdW90ZSA9IHNlbGVjdGVkUXVvdGVcbiAgICAgICAgdXBkYXRlU2VsZWN0aW9ucyA9IHRydWVcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBuZXdTdGF0ZTogYW55ID0ge31cblxuICAgIC8vIHVwZGF0ZSBzdGF0ZXMgdGhhdCBoYXZlIGNoYW5nZWRcbiAgICBpZiAoIWFyZU1hcHNUaGVTYW1lKHZlcnNlT2JqZWN0c01hcCwgX21hcCkpIHtcbiAgICAgIG5ld1N0YXRlLnZlcnNlT2JqZWN0c01hcCA9IF9tYXBcbiAgICB9XG5cbiAgICBpZiAoIWlzRXF1YWwoT2JqZWN0LmtleXModmVyc2VzRm9yUmVmIHx8IHt9KSwgT2JqZWN0LmtleXMoX3ZlcnNlc0ZvclJlZiB8fCB7fSkpKSB7XG4gICAgICBuZXdTdGF0ZS52ZXJzZXNGb3JSZWYgPSBfdmVyc2VzRm9yUmVmXG4gICAgICBuZXdTdGF0ZS5sYXN0U2VsZWN0ZWRRdW90ZSA9IG5ld1NlbGVjdGVkUXVvdGVcbiAgICAgIG5ld1N0YXRlLnNlbGVjdGlvbnMgPSBuZXdTZWxlY3Rpb25zXG4gICAgfVxuXG4gICAgaWYgKG5ld1NlbGVjdGVkUXVvdGUpIHtcbiAgICAgIG5ld1N0YXRlLmxhc3RTZWxlY3RlZFF1b3RlID0gbmV3U2VsZWN0ZWRRdW90ZVxuICAgIH1cblxuICAgIGlmICh1cGRhdGVTZWxlY3Rpb25zKSB7XG4gICAgICBpZiAoIWFyZU1hcHNUaGVTYW1lKHNlbGVjdGlvbnMgfHwgKG5ldyBNYXAoKSksIG5ld1NlbGVjdGlvbnMpKSB7XG4gICAgICAgIG5ld1N0YXRlLnNlbGVjdGlvbnMgPSBuZXdTZWxlY3Rpb25zXG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKE9iamVjdC5rZXlzKG5ld1N0YXRlKS5sZW5ndGgpIHtcbiAgICAgIHNldFN0YXRlKG5ld1N0YXRlKVxuICAgIH1cbiAgfSwgW293bmVyLCByZXNvdXJjZUlkLCBib29rSWQsIGxhbmd1YWdlSWRfLCBzY3JpcHR1cmVDb25maWc/LnZlcnNlc0ZvclJlZiwgb3JpZ2luYWxWZXJzZU9iamVjdHMsIHNlbGVjdGVkUXVvdGVdKVxuXG4gIGNvbnN0IHJlbmRlcmVkU2NyaXB0dXJlUGFuZXMgPSB2ZXJzZXNGb3JSZWY/Lm1hcCgoX2N1cnJlbnRWZXJzZURhdGEsIGluZGV4KSA9PiB7XG4gICAgY29uc3QgaW5pdGlhbFZlcnNlT2JqZWN0cyA9IF9jdXJyZW50VmVyc2VEYXRhPy52ZXJzZURhdGE/LnZlcnNlT2JqZWN0cyB8fCBudWxsXG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIGNvbnN0IHsgY2hhcHRlciwgdmVyc2UgfSA9IF9jdXJyZW50VmVyc2VEYXRhIHx8IHt9XG4gICAgY29uc3QgX3JlZmVyZW5jZSA9IHtcbiAgICAgIC4uLnJlZmVyZW5jZSxcbiAgICAgIGNoYXB0ZXIsXG4gICAgICB2ZXJzZSxcbiAgICB9XG4gICAgY29uc3QgX3NjcmlwdHVyZUFsaWdubWVudEVkaXRDb25maWcgPSB7XG4gICAgICAuLi5zY3JpcHR1cmVBbGlnbm1lbnRFZGl0Q29uZmlnLFxuICAgICAgY3VycmVudEluZGV4OiBpbmRleCxcbiAgICAgIGluaXRpYWxWZXJzZU9iamVjdHMsXG4gICAgICByZWZlcmVuY2U6IF9yZWZlcmVuY2UsXG4gICAgfVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDxTY3JpcHR1cmVQYW5lXG4gICAgICAgIHsuLi5zY3JpcHR1cmVDb25maWd9XG4gICAgICAgIGNvbnRlbnRTdHlsZT17Y29udGVudFN0eWxlfVxuICAgICAgICBjdXJyZW50SW5kZXg9e2luZGV4fVxuICAgICAgICBkaXJlY3Rpb249e2RpcmVjdGlvbn1cbiAgICAgICAgZGlzYWJsZVdvcmRQb3BvdmVyPXtkaXNhYmxlV29yZFBvcG92ZXJffVxuICAgICAgICBmb250U2l6ZT17Zm9udFNpemV9XG4gICAgICAgIGdldExleGljb25EYXRhPXtnZXRMZXhpY29uRGF0YX1cbiAgICAgICAgaXNOVD17aXNOVF99XG4gICAgICAgIGtleT17aW5kZXh9XG4gICAgICAgIHJlZlN0eWxlPXtyZWZTdHlsZX1cbiAgICAgICAgcmVmZXJlbmNlPXtfcmVmZXJlbmNlfVxuICAgICAgICBzYXZpbmc9e3N0YXJ0U2F2ZX1cbiAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICBzY3JpcHR1cmVBbGlnbm1lbnRFZGl0Q29uZmlnPXtfc2NyaXB0dXJlQWxpZ25tZW50RWRpdENvbmZpZ31cbiAgICAgICAgc2V0V29yZEFsaWduZXJTdGF0dXM9e3NldFdvcmRBbGlnbmVyU3RhdHVzfVxuICAgICAgICBzZXJ2ZXI9e3NlcnZlcn1cbiAgICAgICAgdHJhbnNsYXRlPXt0cmFuc2xhdGV9XG4gICAgICAgIHNldE9yaWdpbmFsU2NyaXB0dXJlUmVzb3VyY2U9eyFpbmRleCAmJiBzZXRPcmlnaW5hbFNjcmlwdHVyZVJlc291cmNlfVxuICAgICAgLz5cbiAgICApXG4gIH0pXG5cbiAgcmV0dXJuIChcbiAgICA8U2VsZWN0aW9uc0NvbnRleHRQcm92aWRlclxuICAgICAgc2VsZWN0aW9ucz17c2VsZWN0aW9uc31cbiAgICAgIG9uU2VsZWN0aW9ucz17bmV3U2VsZWN0aW9ucyA9PiB7XG4gICAgICAgIC8vIGNvbnNvbGUubG9nKCdvblNlbGVjdGlvbnMnLCBuZXdTZWxlY3Rpb25zKVxuICAgICAgfX1cbiAgICAgIHF1b3RlPXtzZWxlY3RlZFF1b3RlPy5xdW90ZX1cbiAgICAgIG9jY3VycmVuY2U9e2ZpeE9jY3VycmVuY2Uoc2VsZWN0ZWRRdW90ZT8ub2NjdXJyZW5jZSl9XG4gICAgICB2ZXJzZU9iamVjdHNNYXA9e3ZlcnNlT2JqZWN0c01hcH1cbiAgICA+XG4gICAgICA8Q2FyZFxuICAgICAgICBpZD17YHNjcmlwdHVyZV9jYXJkXyR7Y2FyZE51bX1gfVxuICAgICAgICB0aXRsZT17c2NyaXB0dXJlTGFiZWx9XG4gICAgICAgIHNldHRpbmdzVGl0bGU9e3NjcmlwdHVyZVRpdGxlICsgJyBTZXR0aW5ncyd9XG4gICAgICAgIGl0ZW1zPXtpdGVtc31cbiAgICAgICAgY2xhc3Nlcz17Y2xhc3Nlc31cbiAgICAgICAgaGVhZGVycz17aGVhZGVyc31cbiAgICAgICAgZmlsdGVycz17ZmlsdGVyc31cbiAgICAgICAgZm9udFNpemU9e2ZvbnRTaXplfVxuICAgICAgICBpdGVtSW5kZXg9e2l0ZW1JbmRleH1cbiAgICAgICAgc2V0RmlsdGVycz17c2V0RmlsdGVyc31cbiAgICAgICAgc2V0Rm9udFNpemU9e3NldEZvbnRTaXplfVxuICAgICAgICBzZXRJdGVtSW5kZXg9e3NldEl0ZW1JbmRleH1cbiAgICAgICAgbWFya2Rvd25WaWV3PXttYXJrZG93blZpZXd9XG4gICAgICAgIHNldE1hcmtkb3duVmlldz17c2V0TWFya2Rvd25WaWV3fVxuICAgICAgICBnZXRDdXN0b21Db21wb25lbnQ9e2dldFNjcmlwdHVyZVNlbGVjdG9yfVxuICAgICAgICBoaWRlTWFya2Rvd25Ub2dnbGVcbiAgICAgICAgb25NZW51Q2xvc2U9e29uTWVudUNsb3NlfVxuICAgICAgICBvbk1pbmltaXplPXtvbk1pbmltaXplID8gKCkgPT4gb25NaW5pbWl6ZShpZCkgOiBudWxsfVxuICAgICAgICBlZGl0YWJsZT17ZW5hYmxlRWRpdCB8fCBlbmFibGVBbGlnbm1lbnR9XG4gICAgICAgIHNhdmVkPXtzdGFydFNhdmUgfHwgIWhhdmVVbnNhdmVkQ2hhbmdlc31cbiAgICAgICAgb25TYXZlRWRpdD17KCkgPT4gc2V0U3RhdGUoeyBzYXZlQ2xpY2tlZDogdHJ1ZSB9KX1cbiAgICAgID5cbiAgICAgICAgPGRpdiBpZD1cInNjcmlwdHVyZS1wYW5lLWxpc3RcIj5cbiAgICAgICAgICB7cmVuZGVyZWRTY3JpcHR1cmVQYW5lc31cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L0NhcmQ+XG4gICAgPC9TZWxlY3Rpb25zQ29udGV4dFByb3ZpZGVyPlxuICApXG59XG5cblNjcmlwdHVyZUNhcmQucHJvcFR5cGVzID0ge1xuICAvKiogaHRtbCBpZGVudGlmaWVyIHRvIHVzZSBmb3IgY2FyZCAqL1xuICBpZDogUHJvcFR5cGVzLnN0cmluZyxcbiAgLyoqIG1ldGhvZCB0byBkZXRlcm1pbmUgaWYgTlQgb3IgT1QgKi9cbiAgaXNOVDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgLyoqIHRpdGxlIGZvciBzY3JpcHR1cmUgY2FyZCAqL1xuICB0aXRsZTogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAvKiogZ2V0IGxhbmd1YWdlIGRldGFpbHMgKi9cbiAgZ2V0TGFuZ3VhZ2U6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIC8qKiBzY3JpcHR1cmUgY2FyZCBudW1iZXIgKDAgdG8gMiBmb3IgZXhhbXBsZSkgKi9cbiAgY2FyZE51bTogUHJvcFR5cGVzLm51bWJlci5pc1JlcXVpcmVkLFxuICAvKiogcmVzb3VyY2Ugb2JqZWN0ICovXG4gIHJlc291cmNlOiBQcm9wVHlwZXMuc2hhcGUoe1xuICAgIC8qKiByZXNvdXJjZSBsYW5ndWFnZSB0byB1c2UgKi9cbiAgICBsYW5ndWFnZUlkOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gICAgLyoqIHJlcG8gb3duZXIgc3VjaCBhcyB1bmZvbGRpbmdXb3JkICovXG4gICAgb3duZXI6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgICAvKiogcmVzb3VyY2VJZCB0byB1c2UgKGUuZy4gdWdudCkgKi9cbiAgICByZXNvdXJjZUlkOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gICAgLyoqIHJlcG8gb3duZXIgZm9yIG9yaWdpbmFsIGxhbmd1YWdlcyBzdWNoIGFzIHVuZm9sZGluZ1dvcmQgKi9cbiAgICBvcmlnaW5hbExhbmd1YWdlT3duZXI6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgfSksXG4gIHJlZmVyZW5jZTogUHJvcFR5cGVzLnNoYXBlKHtcbiAgICAvKiogcHJvamVjdElkIChib29rSUQpIHRvIHVzZSAqL1xuICAgIHByb2plY3RJZDogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAgIC8qKiBjdXJyZW50IGNoYXB0ZXIgbnVtYmVyICovXG4gICAgY2hhcHRlcjogUHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLm51bWJlciwgUHJvcFR5cGVzLnN0cmluZ10pLmlzUmVxdWlyZWQsXG4gICAgLyoqIGN1cnJlbnQgdmVyc2UgbnVtYmVyICovXG4gICAgdmVyc2U6IFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBlcy5udW1iZXIsIFByb3BUeXBlcy5zdHJpbmddKS5pc1JlcXVpcmVkLFxuICB9KSxcbiAgLyoqIHNlcnZlciAoZS5nLiAnaHR0cHM6Ly9naXQuZG9vcjQzLm9yZycpICovXG4gIHNlcnZlcjogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAvKiogcmVwbyBicmFuY2ggb3IgdGFnIHN1Y2ggYXMgbWFzdGVyICovXG4gIGFwcFJlZjogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAvKiogaWYgdHJ1ZSB0aGVuIHdvcmQgZGF0YSBob3ZlciBpcyBzaG93biAqL1xuICBkaXNhYmxlV29yZFBvcG92ZXI6IFByb3BUeXBlcy5ib29sLFxuICAvKiogQ1NTIGNsYXNzZXMgKi9cbiAgY2xhc3NlczogUHJvcFR5cGVzLm9iamVjdCxcbiAgLyoqIHJlc291cmNlTGluayAqL1xuICByZXNvdXJjZUxpbms6IFByb3BUeXBlcy5hbnksXG4gIC8qKiB1c2UgbWV0aG9kIGZvciB1c2luZyBsb2NhbCBzdG9yYWdlIHNwZWNpZmljIGZvciB1c2VyICovXG4gIHVzZVVzZXJMb2NhbFN0b3JhZ2U6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIC8qKiBvcHRpb25hbCBjYWxsYmFjayBpZiBlcnJvciBsb2FkaW5nIHJlc291cmNlLCBwYXJhbWV0ZXIgcmV0dXJuZWQgYXJlOlxuICAgKiAgICAoe3N0cmluZ30gZXJyb3JNZXNzYWdlLCB7Ym9vbGVhbn0gaXNBY2Nlc3NFcnJvciwge29iamVjdH0gcmVzb3VyY2VTdGF0dXMpXG4gICAqICAgICAgLSBpc0FjY2Vzc0Vycm9yIC0gaXMgdHJ1ZSBpZiB0aGlzIHdhcyBhbiBlcnJvciB0cnlpbmcgdG8gYWNjZXNzIGZpbGVcbiAgICogICAgICAtIHJlc291cmNlU3RhdHVzIC0gaXMgb2JqZWN0IGNvbnRhaW5pbmcgZGV0YWlscyBhYm91dCBwcm9ibGVtcyBmZXRjaGluZyByZXNvdXJjZSAqL1xuICBvblJlc291cmNlRXJyb3I6IFByb3BUeXBlcy5mdW5jLFxuICAvKiogb3B0aW9uYWwgaHR0cCB0aW1lb3V0IGluIG1pbGxpc2Vjb25kcyBmb3IgZmV0Y2hpbmcgcmVzb3VyY2VzLCBkZWZhdWx0IGlzIDAgKHZlcnkgbG9uZyB3YWl0KSAqL1xuICBodHRwQ29uZmlnOiBQcm9wVHlwZXMub2JqZWN0LFxuICAvKiogb3B0aW9uYWwgdXJsIGZvciBncmVlayByZXBvICovXG4gIGdyZWVrUmVwb1VybDogUHJvcFR5cGVzLnN0cmluZyxcbiAgLyoqIG9wdGlvbmFsIHVybCBmb3IgaGVicmV3IHJlcG8gKi9cbiAgaGVicmV3UmVwb1VybDogUHJvcFR5cGVzLnN0cmluZyxcbiAgLyoqIGZ1bmN0aW9uIHRvIGdldCBsYXRlc3QgbGV4aWNvbiBkYXRhICovXG4gIGdldExleGljb25EYXRhOiBQcm9wVHlwZXMuZnVuYyxcbiAgLyoqIGZ1bmN0aW9uIHRvIHByZS1sb2FkIGxleGljb24gZGF0YSBmb3IgdmVyc2UgKi9cbiAgZmV0Y2hHbG9zc2VzRm9yVmVyc2U6IFByb3BUeXBlcy5mdW5jLFxuICAvKiogb3B0aW9uYWwgZnVuY3Rpb24gZm9yIGxvY2FsaXphdGlvbiAqL1xuICB0cmFuc2xhdGU6IFByb3BUeXBlcy5mdW5jLFxuICAvKiogZnVuY3Rpb24gdG8gbWluaW1pemUgdGhlIGNhcmQgKG9wdGlvbmFsKSAqL1xuICBvbk1pbmltaXplOiBQcm9wVHlwZXMuZnVuYyxcbiAgLyoqIHVzZXItbmFtZSAqL1xuICBsb2dnZWRJblVzZXI6IFByb3BUeXBlcy5zdHJpbmcsXG4gIC8qKiBhdXRoZW50aWNhdGlvbiBpbmZvICovXG4gIGF1dGhlbnRpY2F0aW9uOiBQcm9wVHlwZXMub2JqZWN0LFxuICAvKiogZnVuY3Rpb24gdG8gc2V0IHN0YXRlIGluIGFwcCB0aGF0IHRoZXJlIGFyZSB1bnNhdmVkIGNoYW5nZXMgKi9cbiAgc2V0U2F2ZWRDaGFuZ2VzOiBQcm9wVHlwZXMuZnVuYyxcbiAgLyoqIGluZGV4IGZvciBjdXJyZW50IGJvb2sgKGUuZy4gJzAxJyBmb3IgJ2dlbicpKi9cbiAgYm9va0luZGV4OiBQcm9wVHlwZXMuc3RyaW5nLFxuICAvKiogY2FsbGJhY2sgdG8gdXBkYXRlIHdvcmQgYWxpZ25lciBzdGF0ZSAqL1xuICBzZXRXb3JkQWxpZ25lclN0YXR1czogUHJvcFR5cGVzLmZ1bmMsXG4gIC8qKlRoaXMgaXMgY3VycmVudGx5IHNlbGVjdGVkIHF1b3RlICovXG4gIHNlbGVjdGVkUXVvdGU6IFByb3BUeXBlcy5vYmplY3QsXG59XG4iXX0=
1098
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL1NjcmlwdHVyZUNhcmQvU2NyaXB0dXJlQ2FyZC50c3giXSwibmFtZXMiOlsiUmVhY3QiLCJQcm9wVHlwZXMiLCJjb3JlIiwiU2VsZWN0aW9uc0NvbnRleHRQcm92aWRlciIsInVzZm1qcyIsInVzZUVkaXQiLCJDYXJkIiwidXNlQ2FyZFN0YXRlIiwidXNlVXNlckJyYW5jaCIsIkVSUk9SX1NUQVRFIiwiTUFOSUZFU1RfTk9UX0xPQURFRF9FUlJPUiIsImdldFF1b3RlTWF0Y2hlc0luQm9va1JlZiIsIkFsaWdubWVudEhlbHBlcnMiLCJVc2ZtRmlsZUNvbnZlcnNpb25IZWxwZXJzIiwiaXNFcXVhbCIsImdldFZlcnNlcyIsIlNjcmlwdHVyZVBhbmUiLCJTY3JpcHR1cmVTZWxlY3RvciIsInVzZVNjcmlwdHVyZVNldHRpbmdzIiwiZml4T2NjdXJyZW5jZSIsImdldFJlc291cmNlTGluayIsImdldFJlc291cmNlTWVzc2FnZSIsImdldFNjcmlwdHVyZVZlcnNpb25TZXR0aW5ncyIsImlzT3JpZ2luYWxCaWJsZSIsImNsZWFudXBWZXJzZU9iamVjdHMiLCJhcmVNYXBzVGhlU2FtZSIsIlRpdGxlIiwiTlRfT1JJR19MQU5HIiwiT1JJR0lOQUxfU09VUkNFIiwiT1RfT1JJR19MQU5HIiwiS0VZX0ZPTlRfU0laRV9CQVNFIiwibGFiZWwiLCJzdHlsZSIsIm1hcmdpblRvcCIsIndpZHRoIiwiU2NyaXB0dXJlQ2FyZCIsImlkIiwiaXNOVCIsInRpdGxlIiwic2VydmVyIiwiYXBwUmVmIiwiY2FyZE51bSIsImNsYXNzZXMiLCJyZXNvdXJjZSIsIm93bmVyIiwibGFuZ3VhZ2VJZCIsInJlc291cmNlSWQiLCJvcmlnaW5hbExhbmd1YWdlT3duZXIiLCJnZXRMYW5ndWFnZSIsInJlZmVyZW5jZSIsInZlcnNlIiwiY2hhcHRlciIsImJvb2tJZCIsInByb2plY3RJZCIsInJlc291cmNlTGluayIsInVzZVVzZXJMb2NhbFN0b3JhZ2UiLCJkaXNhYmxlV29yZFBvcG92ZXIiLCJvblJlc291cmNlRXJyb3IiLCJodHRwQ29uZmlnIiwiZ3JlZWtSZXBvVXJsIiwiaGVicmV3UmVwb1VybCIsImdldExleGljb25EYXRhIiwiZmV0Y2hHbG9zc2VzRm9yVmVyc2UiLCJ0cmFuc2xhdGUiLCJvbk1pbmltaXplIiwibG9nZ2VkSW5Vc2VyIiwiYXV0aGVudGljYXRpb24iLCJzZXRTYXZlZENoYW5nZXMiLCJib29rSW5kZXgiLCJzZWxlY3RlZFF1b3RlIiwic2V0V29yZEFsaWduZXJTdGF0dXMiLCJ1c2VTdGF0ZSIsImhhdmVVbnNhdmVkQ2hhbmdlcyIsImxhc3RTZWxlY3RlZFF1b3RlIiwib3JpZ2luYWxWZXJzZU9iamVjdHMiLCJyZWYiLCJzYXZlQ2xpY2tlZCIsInNhdmVDb250ZW50Iiwic2VsZWN0aW9ucyIsIk1hcCIsInNoYSIsInN0YXJ0U2F2ZSIsInVybEVycm9yIiwidXNpbmdVc2VyQnJhbmNoIiwidW5zYXZlZENoYW5nZXNMaXN0IiwidmVyc2VzRm9yUmVmIiwidmVyc2VPYmplY3RzTWFwIiwic3RhdGUiLCJzZXRTdGF0ZV8iLCJmb250U2l6ZSIsInNldEZvbnRTaXplIiwiaXNOVF8iLCJzZXRTdGF0ZSIsIm5ld1N0YXRlIiwicHJldlN0YXRlIiwic2V0T3JpZ2luYWxTY3JpcHR1cmVSZXNvdXJjZSIsIm5ld1Jlc291cmNlIiwibmV3Qm9va09iamVjdHMiLCJib29rT2JqZWN0cyIsIl9uZXdCb29rT2JqZWN0cyIsImNhY2hlIiwibWF4QWdlIiwic2V0VXJsRXJyb3IiLCJlcnJvciIsIndob2xlQm9vayIsImlzTmV3VGVzdGFtZW50Iiwic2NyaXB0dXJlQ29uZmlnIiwic2V0U2NyaXB0dXJlIiwic2NyaXB0dXJlU2V0dGluZ3MiLCJzY3JpcHR1cmVWZXJzaW9uSGlzdCIsImZldGNoUmVzcF8iLCJmZXRjaFJlc3BvbnNlIiwicmVwbyIsInJlZmVyZW5jZV8iLCJ1c2VFZmZlY3QiLCJfc2hhIiwiZGF0YSIsImNvbnNvbGUiLCJsb2ciLCJKU09OIiwic3RyaW5naWZ5IiwiY2FyZFJlc291cmNlSWQiLCJyZWZfIiwiY2FuVXNlRWRpdEJyYW5jaCIsInN1YnN0cmluZyIsImxlbmd0aCIsImNhcmRJZCIsIndvcmtpbmdSZXNvdXJjZUJyYW5jaCIsInVzaW5nVXNlckJyYW5jaF8iLCJzdGFydEVkaXRCcmFuY2giLCJhY3Rpb25zIiwic3RhcnRFZGl0Iiwid29ya2luZ1JlZiIsInNjcmlwdHVyZVRpdGxlIiwid29ya2luZ1JlZl8iLCJyZXNvdXJjZVN0YXR1cyIsIm1lc3NhZ2UiLCJpc0FjY2Vzc0Vycm9yIiwidmVyc2lvbiIsInVwZGF0ZVRpdGxlIiwiZ2V0U2NyaXB0dXJlU2VsZWN0b3IiLCJzY3JpcHR1cmVTZWxlY3Rpb25Db25maWciLCJvbk1lbnVDbG9zZSIsImxhbmd1YWdlSWRfIiwibGFuZ3VhZ2UiLCJkaXJlY3Rpb24iLCJpc0hlYnJldyIsImZvbnRGYWN0b3IiLCJzY2FsZWRGb250U2l6ZSIsIml0ZW1zIiwiaGVhZGVycyIsImZpbHRlcnMiLCJpdGVtSW5kZXgiLCJtYXJrZG93blZpZXciLCJzZXRGaWx0ZXJzIiwic2V0SXRlbUluZGV4Iiwic2V0TWFya2Rvd25WaWV3IiwicmVmU3R5bGUiLCJ1c2VNZW1vIiwiZm9udEZhbWlseSIsIk1hdGgiLCJyb3VuZCIsImNvbnRlbnRTdHlsZSIsInNjcmlwdHVyZUxhYmVsIiwiZGlzYWJsZVdvcmRQb3BvdmVyXyIsInVzaW5nT3JpZ2luYWxCaWJsZSIsInVuZGVmaW5lZCIsImZldGNoR2xvc3NEYXRhRm9yVmVyc2UiLCJ2ZXJzZU9iamVjdHMiLCJ2ZXJzZVJlZiIsIl92ZXJzZU9iamVjdHMiLCJ2ZXJzZURhdGEiLCJjb25jYXQiLCJlbmFibGVFZGl0IiwiZW5hYmxlQWxpZ25tZW50Iiwib3JpZ2luYWxSZXBvVXJsIiwic2NyaXB0dXJlQWxpZ25tZW50RWRpdENvbmZpZyIsImN1cnJlbnRWZXJzZVJlZiIsIl9zZXRTYXZlZENoYW5nZXMiLCJzb3VyY2VMYW5ndWFnZSIsInRhcmdldExhbmd1YWdlIiwiY3VycmVudEluZGV4Iiwic2F2ZWQiLCJnZXRDaGFuZ2VzIiwiY2xlYXJDaGFuZ2VzIiwiX3Vuc2F2ZWRDaGFuZ2VzTGlzdCIsImhhc093blByb3BlcnR5IiwiX2hhdmVVbnNhdmVkQ2hhbmdlcyIsIk9iamVjdCIsImtleXMiLCJmaW5kUmVmSW5BcnJheSIsImZpbmRJdGVtIiwiY2h1bmtzIiwicmVmTGVuIiwiaW5kZXgiLCJmaW5kSW5kZXgiLCJjaHVuayIsImlkeCIsIm5leHRDaGFyIiwiZ2V0Qm9va05hbWUiLCJib29rQ2FwcyIsInRvVXBwZXJDYXNlIiwiZmlsZXBhdGgiLCJjb250ZW50IiwiY29uZmlnIiwidG9rZW4iLCJ0aW1lb3V0Iiwic2VydmVyVGltZU91dCIsImF1dGhvciIsImJyYW5jaCIsIm9uU2F2ZUVkaXQiLCJfc2F2ZUVkaXQiLCJ0aGVuIiwic3VjY2VzcyIsInVuc2F2ZWRDYXJkSW5kaWNlcyIsImNhcmRJbmRleCIsImluZm8iLCJyZWxvYWRSZXNvdXJjZSIsIm1lcmdlVmVyc2VPYmplY3RzSW50b0JpYmxlVXNmbSIsImJpYmxlVXNmbSIsInVwZGF0ZWRWZXJzZU9iamVjdHMiLCJuZXdVc2ZtIiwiY2hhcHRlckNodW5rcyIsInNwbGl0IiwiY2hhcHRlckluZGV4IiwiY3VycmVudENoYXB0ZXIiLCJ2ZXJzZUNodW5rcyIsInZlcnNlSW5kZXgiLCJuZXdWZXJzZVVzZm0iLCJjb252ZXJ0VmVyc2VEYXRhVG9VU0ZNIiwib2xkVmVyc2UiLCJ2ZXJzZU51bUxlbiIsIm5ld0NoYXB0ZXIiLCJqb2luIiwiZ2V0UmVzcG9uc2VEYXRhIiwibWVyZ2VGYWlsIiwicGFyc2VJbnQiLCJuZXdCb29rSnNvbiIsIm5ld1ZlcnNlVGV4dCIsInRhcmdldFZlcnNlT2JqZWN0c18iLCJ1cGRhdGVBbGlnbm1lbnRzVG9UYXJnZXRWZXJzZSIsInRhcmdldFZlcnNlT2JqZWN0cyIsInVwZGF0ZVZlcnNlIiwidG9VU0ZNIiwiZm9yY2VkTmV3TGluZXMiLCJfdmVyc2VzRm9yUmVmIiwibmV3U2VsZWN0aW9ucyIsInVwZGF0ZVNlbGVjdGlvbnMiLCJfbWFwIiwib3JpZ2luYWxCb29rSWQiLCJib29rVmVyc2VPYmplY3QiLCJjaGFwdGVycyIsIm5ld1NlbGVjdGVkUXVvdGUiLCJxdW90ZSIsIm9yaWdpbmFsVmVyc2VzIiwic3Vic3RpdHV0ZSIsInN0YXJ0VmVyc2UiLCJsYXN0VmVyc2UiLCJpIiwibCIsIl92ZXJzZSIsImluY2x1ZGVzIiwidmVyc2VzIiwidmVyc2VJdGVtIiwidm8iLCJzZXQiLCJzdWJSZWYiLCJxdW90ZU1hdGNoZXMiLCJib29rT2JqZWN0Iiwib2NjdXJyZW5jZSIsInNpemUiLCJmb3JFYWNoIiwid29yZHMiLCJrZXkiLCJfa2V5IiwibWFwIiwid29yZCIsInRleHQiLCJub3JtYWxpemVTdHJpbmciLCJyZW5kZXJlZFNjcmlwdHVyZVBhbmVzIiwiX2N1cnJlbnRWZXJzZURhdGEiLCJpbml0aWFsVmVyc2VPYmplY3RzIiwiX3JlZmVyZW5jZSIsIl9zY3JpcHR1cmVBbGlnbm1lbnRFZGl0Q29uZmlnIiwicHJvcFR5cGVzIiwic3RyaW5nIiwiZnVuYyIsImlzUmVxdWlyZWQiLCJudW1iZXIiLCJzaGFwZSIsIm9uZU9mVHlwZSIsImJvb2wiLCJvYmplY3QiLCJhbnkiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxPQUFPLEtBQUtBLEtBQVosTUFBdUIsT0FBdkI7QUFDQSxPQUFPLEtBQUtDLFNBQVosTUFBMkIsWUFBM0I7QUFDQSxTQUFTQyxJQUFULEVBQWVDLHlCQUFmLFFBQWdELHlCQUFoRDtBQUNBLE9BQU9DLE1BQVAsTUFBbUIsU0FBbkI7QUFDQSxTQUFTQyxPQUFULFFBQXdCLHFCQUF4QjtBQUNBLFNBQ0VDLElBREYsRUFFRUMsWUFGRixFQUdFQyxhQUhGLEVBSUVDLFdBSkYsRUFLRUMseUJBTEYsUUFNTyx1QkFOUDtBQU9BLFNBQVNDLHdCQUFULFFBQXlDLGtCQUF6QztBQUNBLFNBQVNDLGdCQUFULEVBQTJCQyx5QkFBM0Is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LFNBQVMsQ0FBQzZSLElBeERSOztBQXlEeEI7QUFDQS9OLEVBQUFBLFNBQVMsRUFBRTlELFNBQVMsQ0FBQzZSLElBMURHOztBQTJEeEI7QUFDQTlOLEVBQUFBLFVBQVUsRUFBRS9ELFNBQVMsQ0FBQzZSLElBNURFOztBQTZEeEI7QUFDQTdOLEVBQUFBLFlBQVksRUFBRWhFLFNBQVMsQ0FBQzRSLE1BOURBOztBQStEeEI7QUFDQTNOLEVBQUFBLGNBQWMsRUFBRWpFLFNBQVMsQ0FBQ21TLE1BaEVGOztBQWlFeEI7QUFDQWpPLEVBQUFBLGVBQWUsRUFBRWxFLFNBQVMsQ0FBQzZSLElBbEVIOztBQW1FeEI7QUFDQTFOLEVBQUFBLFNBQVMsRUFBRW5FLFNBQVMsQ0FBQzRSLE1BcEVHOztBQXFFeEI7QUFDQXZOLEVBQUFBLG9CQUFvQixFQUFFckUsU0FBUyxDQUFDNlIsSUF0RVI7O0FBdUV4QjtBQUNBek4sRUFBQUEsYUFBYSxFQUFFcEUsU0FBUyxDQUFDbVM7QUF4RUQsQ0FBMUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCdcbmltcG9ydCAqIGFzIFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJ1xuaW1wb3J0IHsgY29yZSwgU2VsZWN0aW9uc0NvbnRleHRQcm92aWRlciB9IGZyb20gJ3NjcmlwdHVyZS1yZXNvdXJjZXMtcmNsJ1xuaW1wb3J0IHVzZm1qcyBmcm9tICd1c2ZtLWpzJ1xuaW1wb3J0IHsgdXNlRWRpdCB9IGZyb20gJ2dpdGVhLXJlYWN0LXRvb2xraXQnXG5pbXBvcnQge1xuICBDYXJkLFxuICB1c2VDYXJkU3RhdGUsXG4gIHVzZVVzZXJCcmFuY2gsXG4gIEVSUk9SX1NUQVRFLFxuICBNQU5JRkVTVF9OT1RfTE9BREVEX0VSUk9SLFxufSBmcm9tICd0cmFuc2xhdGlvbi1oZWxwcy1yY2wnXG5pbXBvcnQgeyBnZXRRdW90ZU1hdGNoZXNJbkJvb2tSZWYgfSBmcm9tICd1dy1xdW90ZS1oZWxwZXJzJ1xuaW1wb3J0IHsgQWxpZ25tZW50SGVscGVycywgVXNmbUZpbGVDb252ZXJzaW9uSGVscGVycyB9IGZyb20gJ3dvcmQtYWxpZ25lci1yY2wnXG5pbXBvcnQgKiBhcyBpc0VxdWFsIGZyb20gJ2RlZXAtZXF1YWwnXG5pbXBvcnQgeyBnZXRWZXJzZXMgfSBmcm9tICdiaWJsZS1yZWZlcmVuY2UtcmFuZ2UnXG5pbXBvcnQgeyBTY3JpcHR1cmVQYW5lLCBTY3JpcHR1cmVTZWxlY3RvciB9IGZyb20gJy4uJ1xuaW1wb3J0IHsgdXNlU2NyaXB0dXJlU2V0dGluZ3MgfSBmcm9tICcuLi8uLi9ob29rcy91c2VTY3JpcHR1cmVTZXR0aW5ncydcbmltcG9ydCB7XG4gIGZpeE9jY3VycmVuY2UsXG4gIGdldFJlc291cmNlTGluayxcbiAgZ2V0UmVzb3VyY2VNZXNzYWdlLFxuICBnZXRTY3JpcHR1cmVWZXJzaW9uU2V0dGluZ3MsXG4gIGlzT3JpZ2luYWxCaWJsZSxcbiAgY2xlYW51cFZlcnNlT2JqZWN0cyxcbn0gZnJvbSAnLi4vLi4vdXRpbHMvU2NyaXB0dXJlU2V0dGluZ3MnXG5pbXBvcnQgeyBhcmVNYXBzVGhlU2FtZSB9IGZyb20gJy4uLy4uL3V0aWxzL21hcHMnXG5pbXBvcnQgeyBUaXRsZSB9IGZyb20gJy4uL1NjcmlwdHVyZVBhbmUvc3R5bGVkJ1xuaW1wb3J0IHtcbiAgTlRfT1JJR19MQU5HLFxuICBPUklHSU5BTF9TT1VSQ0UsXG4gIE9UX09SSUdfTEFORyxcbn0gZnJvbSAnLi4vLi4vdXRpbHMnXG5cbmNvbnN0IEtFWV9GT05UX1NJWkVfQkFTRSA9ICdzY3JpcHR1cmVQYW5lRm9udFNpemVfJ1xuY29uc3QgbGFiZWwgPSAnVmVyc2lvbidcbmNvbnN0IHN0eWxlID0geyBtYXJnaW5Ub3A6ICcxNnB4Jywgd2lkdGg6ICc1MDBweCcgfVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBTY3JpcHR1cmVDYXJkKHtcbiAgaWQsXG4gIGlzTlQsXG4gIHRpdGxlLFxuICBzZXJ2ZXIsXG4gIGFwcFJlZixcbiAgY2FyZE51bSxcbiAgY2xhc3NlcyxcbiAgcmVzb3VyY2U6IHtcbiAgICBvd25lcixcbiAgICBsYW5ndWFnZUlkLFxuICAgIHJlc291cmNlSWQsXG4gICAgb3JpZ2luYWxMYW5ndWFnZU93bmVyLFxuICB9LFxuICBnZXRMYW5ndWFnZSxcbiAgcmVmZXJlbmNlOiB7XG4gICAgdmVyc2UsXG4gICAgY2hhcHRlcixcbiAgICBwcm9qZWN0SWQ6IGJvb2tJZCxcbiAgfSxcbiAgcmVzb3VyY2VMaW5rLFxuICB1c2VVc2VyTG9jYWxTdG9yYWdlLFxuICBkaXNhYmxlV29yZFBvcG92ZXIsXG4gIG9uUmVzb3VyY2VFcnJvcixcbiAgaHR0cENvbmZpZyxcbiAgZ3JlZWtSZXBvVXJsLFxuICBoZWJyZXdSZXBvVXJsLFxuICBnZXRMZXhpY29uRGF0YSxcbiAgZmV0Y2hHbG9zc2VzRm9yVmVyc2UsXG4gIHRyYW5zbGF0ZSxcbiAgb25NaW5pbWl6ZSxcbiAgbG9nZ2VkSW5Vc2VyLFxuICBhdXRoZW50aWNhdGlvbixcbiAgc2V0U2F2ZWRDaGFuZ2VzLFxuICBib29rSW5kZXgsXG4gIHNlbGVjdGVkUXVvdGUsXG4gIHNldFdvcmRBbGlnbmVyU3RhdHVzLFxufSkge1xuICBjb25zdCBbc3RhdGUsIHNldFN0YXRlX10gPSBSZWFjdC51c2VTdGF0ZSh7XG4gICAgaGF2ZVVuc2F2ZWRDaGFuZ2VzOiBmYWxzZSxcbiAgICBsYXN0U2VsZWN0ZWRRdW90ZTogbnVsbCxcbiAgICBvcmlnaW5hbFZlcnNlT2JqZWN0czogbnVsbCxcbiAgICByZWY6IGFwcFJlZixcbiAgICBzYXZlQ2xpY2tlZDogZmFsc2UsXG4gICAgc2F2ZUNvbnRlbnQ6IG51bGwsXG4gICAgc2VsZWN0aW9uczogbmV3IE1hcCgpLFxuICAgIHNoYTogbnVsbCxcbiAgICBzdGFydFNhdmU6IGZhbHNlLFxuICAgIHVybEVycm9yOiBudWxsLFxuICAgIHVzaW5nVXNlckJyYW5jaDogZmFsc2UsXG4gICAgdW5zYXZlZENoYW5nZXNMaXN0OiB7fSxcbiAgICB2ZXJzZXNGb3JSZWY6IG51bGwsXG4gICAgdmVyc2VPYmplY3RzTWFwOiBuZXcgTWFwKCksXG4gIH0pXG4gIGNvbnN0IHtcbiAgICBoYXZlVW5zYXZlZENoYW5nZXMsXG4gICAgbGFzdFNlbGVjdGVkUXVvdGUsXG4gICAgb3JpZ2luYWxWZXJzZU9iamVjdHMsXG4gICAgcmVmLFxuICAgIHNhdmVDbGlja2VkLFxuICAgIHNhdmVDb250ZW50LFxuICAgIHNlbGVjdGlvbnMsXG4gICAgc2hhLFxuICAgIHN0YXJ0U2F2ZSxcbiAgICB1cmxFcnJvcixcbiAgICB1c2luZ1VzZXJCcmFuY2gsXG4gICAgdW5zYXZlZENoYW5nZXNMaXN0LFxuICAgIHZlcnNlc0ZvclJlZixcbiAgICB2ZXJzZU9iamVjdHNNYXAsXG4gIH0gPSBzdGF0ZVxuXG4gIGNvbnN0IFtmb250U2l6ZSwgc2V0Rm9udFNpemVdID0gdXNlVXNlckxvY2FsU3RvcmFnZShLRVlfRk9OVF9TSVpFX0JBU0UgKyBjYXJkTnVtLCAxMDApXG4gIGNvbnN0IGlzTlRfID0gaXNOVChib29rSWQpXG5cbiAgZnVuY3Rpb24gc2V0U3RhdGUobmV3U3RhdGUpIHtcbiAgICBzZXRTdGF0ZV8ocHJldlN0YXRlID0+ICh7IC4uLnByZXZTdGF0ZSwgLi4ubmV3U3RhdGUgfSkpXG4gIH1cblxuICBmdW5jdGlvbiBzZXRPcmlnaW5hbFNjcmlwdHVyZVJlc291cmNlKG5ld1Jlc291cmNlKSB7XG4gICAgY29uc3QgbmV3Qm9va09iamVjdHMgPSBuZXdSZXNvdXJjZT8uYm9va09iamVjdHMgfHwge31cbiAgICBjb25zdCBib29rSWQgPSBuZXdSZXNvdXJjZT8ucmVmZXJlbmNlPy5wcm9qZWN0SWRcbiAgICBjb25zdCBfbmV3Qm9va09iamVjdHMgPSB7XG4gICAgICAuLi5uZXdCb29rT2JqZWN0cyxcbiAgICAgIGJvb2tJZCxcbiAgICB9XG5cbiAgICBpZiAoIWlzRXF1YWwoX25ld0Jvb2tPYmplY3RzLCBvcmlnaW5hbFZlcnNlT2JqZWN0cykpIHtcbiAgICAgIHNldFN0YXRlKHsgb3JpZ2luYWxWZXJzZU9iamVjdHM6IF9uZXdCb29rT2JqZWN0cyB9KVxuICAgIH1cbiAgfVxuXG4gIGlmICh1c2luZ1VzZXJCcmFuY2gpIHtcbiAgICBodHRwQ29uZmlnID0geyAuLi5odHRwQ29uZmlnLCBjYWNoZTogeyBtYXhBZ2U6IDAgfSB9IC8vIGRpc2FibGUgaHR0cCBjYWNoaW5nXG4gIH1cblxuICBjb25zdCB7XG4gICAgaXNOZXdUZXN0YW1lbnQsXG4gICAgc2NyaXB0dXJlQ29uZmlnLFxuICAgIHNldFNjcmlwdHVyZSxcbiAgICBzY3JpcHR1cmVTZXR0aW5ncyxcbiAgICBzY3JpcHR1cmVWZXJzaW9uSGlzdCxcbiAgfSA9IHVzZVNjcmlwdHVyZVNldHRpbmdzKHtcbiAgICBpc05ULFxuICAgIHRpdGxlLFxuICAgIHZlcnNlLFxuICAgIG93bmVyLFxuICAgIGJvb2tJZCxcbiAgICBhcHBSZWY6IHJlZixcbiAgICBzZXJ2ZXIsXG4gICAgY2FyZE51bSxcbiAgICBjaGFwdGVyLFxuICAgIGxhbmd1YWdlSWQsXG4gICAgcmVzb3VyY2VJZCxcbiAgICByZXNvdXJjZUxpbmssXG4gICAgdXNlVXNlckxvY2FsU3RvcmFnZSxcbiAgICBkaXNhYmxlV29yZFBvcG92ZXIsXG4gICAgb3JpZ2luYWxMYW5ndWFnZU93bmVyLFxuICAgIHNldFVybEVycm9yOiAoZXJyb3IpID0+IHNldFN0YXRlKHsgdXJsRXJyb3I6IGVycm9yIH0pLFxuICAgIGh0dHBDb25maWcsXG4gICAgZ3JlZWtSZXBvVXJsLFxuICAgIGhlYnJld1JlcG9VcmwsXG4gICAgd2hvbGVCb29rOiB0cnVlLFxuICB9KVxuXG4gIGNvbnN0IGZldGNoUmVzcF8gPSBzY3JpcHR1cmVDb25maWc/LmZldGNoUmVzcG9uc2VcbiAgLy8gQHRzLWlnbm9yZVxuICBjb25zdCByZXBvID0gYCR7c2NyaXB0dXJlQ29uZmlnPy5yZXNvdXJjZT8ubGFuZ3VhZ2VJZH1fJHtzY3JpcHR1cmVDb25maWc/LnJlc291cmNlPy5wcm9qZWN0SWR9YFxuICBjb25zdCByZWZlcmVuY2VfID0gc2NyaXB0dXJlQ29uZmlnPy5yZWZlcmVuY2UgfHwgbnVsbFxuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7IC8vIGdldCB0aGUgX3NoYSBmcm9tIGxhc3Qgc2NyaXB0dXJlIGRvd25sb2FkXG4gICAgY29uc3QgX3NoYSA9IGZldGNoUmVzcF8/LmRhdGE/LnNoYSB8fCBudWxsXG4gICAgY29uc29sZS5sb2coYGZvciAke0pTT04uc3RyaW5naWZ5KHJlZmVyZW5jZV8pfSBuZXcgc2hhIGlzICR7X3NoYX1gKVxuXG4gICAgaWYgKF9zaGEgIT09IHNoYSkge1xuICAgICAgc2V0U3RhdGUoeyBzaGE6IF9zaGEgfSlcbiAgICB9XG4gIH0sIFtmZXRjaFJlc3BfXSlcblxuICAvLyBAdHMtaWdub3JlXG4gIGNvbnN0IGNhcmRSZXNvdXJjZUlkID0gc2NyaXB0dXJlQ29uZmlnPy5yZXNvdXJjZT8ucHJvamVjdElkIHx8IHJlc291cmNlSWRcbiAgLy8gQHRzLWlnbm9yZVxuICBsZXQgcmVmXyA9IHNjcmlwdHVyZUNvbmZpZz8ucmVzb3VyY2U/LnJlZiB8fCBhcHBSZWZcbiAgY29uc3QgY2FuVXNlRWRpdEJyYW5jaCA9IGxvZ2dlZEluVXNlciAmJiBhdXRoZW50aWNhdGlvbiAmJlxuICAgIChyZXNvdXJjZUlkICE9PSBPUklHSU5BTF9TT1VSQ0UpICYmXG4gICAgKChyZWZfID09PSAnbWFzdGVyJykgfHwgKHJlZl8uc3Vic3RyaW5nKDAsIGxvZ2dlZEluVXNlci5sZW5ndGgpID09PSBsb2dnZWRJblVzZXIpICkgLy8gbm90IHRhZ1xuXG4gIGNvbnN0IHtcbiAgICBzdGF0ZTogeyB3b3JraW5nUmVzb3VyY2VCcmFuY2gsIHVzaW5nVXNlckJyYW5jaDogdXNpbmdVc2VyQnJhbmNoXyB9LFxuICAgIGFjdGlvbnM6IHsgc3RhcnRFZGl0OiBzdGFydEVkaXRCcmFuY2ggfSxcbiAgfSA9IHVzZVVzZXJCcmFuY2goe1xuICAgIG93bmVyLFxuICAgIHNlcnZlcixcbiAgICBhcHBSZWYsXG4gICAgbGFuZ3VhZ2VJZCxcbiAgICBjYXJkSWQ6IGlkLFxuICAgIGxvZ2dlZEluVXNlcjogY2FuVXNlRWRpdEJyYW5jaCA/IGxvZ2dlZEluVXNlciA6IG51bGwsXG4gICAgYXV0aGVudGljYXRpb246IGNhblVzZUVkaXRCcmFuY2ggPyBhdXRoZW50aWNhdGlvbiA6IG51bGwsXG4gICAgY2FyZFJlc291cmNlSWQsXG4gICAgb25SZXNvdXJjZUVycm9yLFxuICAgIHVzZVVzZXJMb2NhbFN0b3JhZ2UsXG4gIH0pXG5cbiAgY29uc3Qgd29ya2luZ1JlZiA9IGNhblVzZUVkaXRCcmFuY2ggPyB3b3JraW5nUmVzb3VyY2VCcmFuY2ggOiBhcHBSZWZcbiAgbGV0IHNjcmlwdHVyZVRpdGxlXG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHsgLy8gc2VsZWN0IGNvcnJlY3Qgd29ya2luZyByZWYgLSBjb3VsZCBiZSBtYXN0ZXIsIHVzZXIgYnJhbmNoLCBvciByZWxlYXNlXG4gICAgaWYgKHVzaW5nVXNlckJyYW5jaF8gIT09IHVzaW5nVXNlckJyYW5jaCkge1xuICAgICAgc2V0U3RhdGUoeyB1c2luZ1VzZXJCcmFuY2g6IHVzaW5nVXNlckJyYW5jaF8gfSlcbiAgICB9XG4gIH0sIFt1c2luZ1VzZXJCcmFuY2hfLCB1c2luZ1VzZXJCcmFuY2hdKVxuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7IC8vIHNlbGVjdCBjb3JyZWN0IHdvcmtpbmcgcmVmIC0gY291bGQgYmUgbWFzdGVyLCB1c2VyIGJyYW5jaCwgb3IgcmVsZWFzZVxuICAgIGxldCB3b3JraW5nUmVmXyA9IHdvcmtpbmdSZWYgfHwgYXBwUmVmXG5cbiAgICBpZiAocmVmICE9PSB3b3JraW5nUmVmXykge1xuICAgICAgc2V0U3RhdGUoeyByZWY6IHdvcmtpbmdSZWZfIH0pXG4gICAgfVxuICB9LCBbd29ya2luZ1JlZiwgcmVmLCBhcHBSZWZdKVxuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7IC8vIHVwZGF0ZSBkaXNwbGF5IHN0YXR1cyBpZiBlcnJvclxuICAgIGNvbnN0IGVycm9yID0gc2NyaXB0dXJlQ29uZmlnPy5yZXNvdXJjZVN0YXR1cz8uW0VSUk9SX1NUQVRFXVxuXG4gICAgaWYgKGVycm9yKSB7IC8vIGlmIGVycm9yIHdhcyBmb3VuZCBkbyBjYWxsYmFja1xuICAgICAgY29uc3QgcmVzb3VyY2VTdGF0dXMgPSBzY3JpcHR1cmVDb25maWc/LnJlc291cmNlU3RhdHVzXG4gICAgICBjb25zdCByZXNvdXJjZUxpbmsgPSBnZXRSZXNvdXJjZUxpbmsoc2NyaXB0dXJlQ29uZmlnKVxuICAgICAgY29uc3QgbWVzc2FnZSA9IGdldFJlc291cmNlTWVzc2FnZShyZXNvdXJjZVN0YXR1cywgc2VydmVyLCByZXNvdXJjZUxpbmssIGlzTlRfKVxuICAgICAgY29uc3QgaXNBY2Nlc3NFcnJvciA9IHJlc291cmNlU3RhdHVzW01BTklGRVNUX05PVF9MT0FERURfRVJST1JdXG4gICAgICBvblJlc291cmNlRXJyb3IgJiYgb25SZXNvdXJjZUVycm9yKG1lc3NhZ2UsIGlzQWNjZXNzRXJyb3IsIHJlc291cmNlU3RhdHVzKVxuICAgIH1cbiAgfSwgW3NjcmlwdHVyZUNvbmZpZz8ucmVzb3VyY2VTdGF0dXM/LltFUlJPUl9TVEFURV1dKVxuXG4gIGlmIChzY3JpcHR1cmVDb25maWcudGl0bGUgJiYgc2NyaXB0dXJlQ29uZmlnLnZlcnNpb24pIHtcbiAgICBzY3JpcHR1cmVUaXRsZSA9IGAke3NjcmlwdHVyZUNvbmZpZy50aXRsZX0gdiR7c2NyaXB0dXJlQ29uZmlnLnZlcnNpb259YFxuICAgIHNjcmlwdHVyZVZlcnNpb25IaXN0LnVwZGF0ZVRpdGxlKHNjcmlwdHVyZUNvbmZpZy5yZXNvdXJjZUxpbmssIHNjcmlwdHVyZVRpdGxlKVxuICB9IGVsc2Uge1xuICAgIHNjcmlwdHVyZVRpdGxlID0gYFRpdGxlIG1pc3NpbmcgZnJvbSBwcm9qZWN0IG1hbmlmZXN0YFxuICB9XG5cbiAgLyoqIER5bmFtaWNhbGx5IGNyZWF0ZXMgdGhlIHNjcmlwdHVyZSBzZWxlY3Rpb24gZHJvcGRvd24gdG8gYmUgaW5zZXJ0ZWQgaW50byBjYXJkIHNldHRpbmdzICovXG4gIGZ1bmN0aW9uIGdldFNjcmlwdHVyZVNlbGVjdG9yKCkge1xuICAgIGNvbnN0IHNjcmlwdHVyZVNlbGVjdGlvbkNvbmZpZyA9IGdldFNjcmlwdHVyZVZlcnNpb25TZXR0aW5ncyh7XG4gICAgICBsYWJlbCxcbiAgICAgIHJlc291cmNlTGluazogc2NyaXB0dXJlQ29uZmlnLnJlc291cmNlTGluayxcbiAgICAgIHNldFNjcmlwdHVyZSxcbiAgICAgIHNjcmlwdHVyZVZlcnNpb25IaXN0LFxuICAgIH0pXG5cbiAgICByZXR1cm4gPFNjcmlwdHVyZVNlbGVjdG9yIHsuLi5zY3JpcHR1cmVTZWxlY3Rpb25Db25maWd9IHN0eWxlPXtzdHlsZX0gZXJyb3JNZXNzYWdlPXt1cmxFcnJvcn0gLz5cbiAgfVxuXG4gIGZ1bmN0aW9uIG9uTWVudUNsb3NlKCkge1xuICAgIC8vIGNvbnNvbGUubG9nKGBvbk1lbnVDbG9zZSgpYClcbiAgICBzZXRTdGF0ZSh7IHVybEVycm9yOiBudWxsIH0pXG4gIH1cblxuICAvLyBAdHMtaWdub3JlXG4gIGNvbnN0IGxhbmd1YWdlSWRfID0gc2NyaXB0dXJlQ29uZmlnPy5yZXNvdXJjZT8ubGFuZ3VhZ2VJZFxuICBjb25zdCBsYW5ndWFnZSA9IGdldExhbmd1YWdlKHsgbGFuZ3VhZ2VJZDogbGFuZ3VhZ2VJZF8gfSlcbiAgY29uc3QgZGlyZWN0aW9uID0gKGxhbmd1YWdlPy5kaXJlY3Rpb24pIHx8ICdsdHInXG4gIGNvbnN0IHJlZmVyZW5jZSA9IHsgLi4uc2NyaXB0dXJlQ29uZmlnLnJlZmVyZW5jZSB9XG5cbiAgY29uc3QgaXNIZWJyZXcgPSAobGFuZ3VhZ2VJZF8gPT09ICdoYm8nKVxuICBjb25zdCBmb250RmFjdG9yID0gaXNIZWJyZXcgPyAxLjQgOiAxIC8vIHdlIGF1dG9tYXRpY2FsbHkgc2NhbGUgdXAgZm9udCBzaXplIGZvciBIZWJyZXdcbiAgY29uc3Qgc2NhbGVkRm9udFNpemUgPSBmb250U2l6ZSAqIGZvbnRGYWN0b3JcblxuICBjb25zdCBpdGVtcyA9IG51bGxcbiAgY29uc3Qge1xuICAgIHN0YXRlOiB7XG4gICAgICBoZWFkZXJzLCBmaWx0ZXJzLCBpdGVtSW5kZXgsIG1hcmtkb3duVmlldyxcbiAgICB9LFxuICAgIGFjdGlvbnM6IHtcbiAgICAgIHNldEZpbHRlcnMsIHNldEl0ZW1JbmRleCwgc2V0TWFya2Rvd25WaWV3LFxuICAgIH0sXG4gIH0gPSB1c2VDYXJkU3RhdGUoeyBpdGVtcyB9KVxuXG4gIGNvbnN0IHJlZlN0eWxlID0gUmVhY3QudXNlTWVtbygoKSA9PiAoe1xuICAgIGZvbnRGYW1pbHk6ICdOb3RvIFNhbnMnLFxuICAgIGZvbnRTaXplOiBgJHtNYXRoLnJvdW5kKHNjYWxlZEZvbnRTaXplICogMC45KX0lYCxcbiAgfSksIFtzY2FsZWRGb250U2l6ZV0pXG5cbiAgY29uc3QgY29udGVudFN0eWxlID0gUmVhY3QudXNlTWVtbygoKSA9PiAoe1xuICAgIGZvbnRGYW1pbHk6ICdOb3RvIFNhbnMnLFxuICAgIGZvbnRTaXplOiBgJHtzY2FsZWRGb250U2l6ZX0lYCxcbiAgfSksIFtzY2FsZWRGb250U2l6ZV0pXG5cbiAgY29uc3Qgc2NyaXB0dXJlTGFiZWwgPSA8VGl0bGU+e3NjcmlwdHVyZVRpdGxlfTwvVGl0bGU+XG4gIGxldCBkaXNhYmxlV29yZFBvcG92ZXJfID0gZGlzYWJsZVdvcmRQb3BvdmVyXG4gIGNvbnN0IHVzaW5nT3JpZ2luYWxCaWJsZSA9IGlzT3JpZ2luYWxCaWJsZShzY3JpcHR1cmVDb25maWdbJ3Jlc291cmNlJ10/LnByb2plY3RJZClcblxuICBpZiAoZGlzYWJsZVdvcmRQb3BvdmVyID09PSB1bmRlZmluZWQpIHsgLy8gaWYgbm90IHNwZWNpZmllZCwgdGhlbiBkZXRlcm1pbmUgaWYgb3JpZ2luYWwgbGFuZ3VhZ2UgcmVzb3VyY2VcbiAgICBkaXNhYmxlV29yZFBvcG92ZXJfID0gIXVzaW5nT3JpZ2luYWxCaWJsZVxuICB9XG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHsgLy8gcHJlLWNhY2hlIGdsb3NzZXMgb24gdmVyc2UgY2hhbmdlXG4gICAgY29uc3QgZmV0Y2hHbG9zc0RhdGFGb3JWZXJzZSA9IGFzeW5jICgpID0+IHtcbiAgICAgIGxldCB2ZXJzZU9iamVjdHMgPSBbXVxuXG4gICAgICAvLyBnZXQgdmVyc2Ugb2JqZWN0cyBvZiBhbGwgdGhlIHZlcnNlc1xuICAgICAgZm9yIChjb25zdCB2ZXJzZVJlZiBvZiBzY3JpcHR1cmVDb25maWc/LnZlcnNlc0ZvclJlZiB8fCBbXSkge1xuICAgICAgICBjb25zdCBfdmVyc2VPYmplY3RzID0gdmVyc2VSZWY/LnZlcnNlRGF0YT8udmVyc2VPYmplY3RzXG4gICAgICAgIHZlcnNlT2JqZWN0cyA9IHZlcnNlT2JqZWN0cy5jb25jYXQoX3ZlcnNlT2JqZWN0cylcbiAgICAgIH1cblxuICAgICAgaWYgKCFkaXNhYmxlV29yZFBvcG92ZXIgJiYgdmVyc2VPYmplY3RzPy5sZW5ndGggJiYgZmV0Y2hHbG9zc2VzRm9yVmVyc2UpIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWF3YWl0LWluLWxvb3BcbiAgICAgICAgYXdhaXQgZmV0Y2hHbG9zc2VzRm9yVmVyc2UodmVyc2VPYmplY3RzLCBsYW5ndWFnZUlkXylcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodXNpbmdPcmlnaW5hbEJpYmxlKSB7XG4gICAgICBmZXRjaEdsb3NzRGF0YUZvclZlcnNlKClcbiAgICB9XG4gIH0sIFsgdmVyc2VzRm9yUmVmLCBsYW5ndWFnZUlkXyBdKVxuXG4gIGNvbnN0IGVuYWJsZUVkaXQgPSAhdXNpbmdPcmlnaW5hbEJpYmxlXG4gIGNvbnN0IGVuYWJsZUFsaWdubWVudCA9ICF1c2luZ09yaWdpbmFsQmlibGVcbiAgY29uc3Qgb3JpZ2luYWxSZXBvVXJsID0gaXNOZXdUZXN0YW1lbnQgPyBncmVla1JlcG9VcmwgOiBoZWJyZXdSZXBvVXJsXG4gIGNvbnN0IHNjcmlwdHVyZUFsaWdubWVudEVkaXRDb25maWcgPSB7XG4gICAgYXV0aGVudGljYXRpb246IGNhblVzZUVkaXRCcmFuY2ggPyBhdXRoZW50aWNhdGlvbiA6IG51bGwsXG4gICAgYm9va0luZGV4LFxuICAgIGN1cnJlbnRWZXJzZVJlZjogcmVmZXJlbmNlLFxuICAgIGVuYWJsZUVkaXQsXG4gICAgZW5hYmxlQWxpZ25tZW50LFxuICAgIGh0dHBDb25maWcsXG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIGlzTmV3VGVzdGFtZW50LFxuICAgIGxvZ2dlZEluVXNlcjogY2FuVXNlRWRpdEJyYW5jaCA/IGxvZ2dlZEluVXNlciA6IG51bGwsXG4gICAgb3JpZ2luYWxMYW5ndWFnZU93bmVyLFxuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBvcmlnaW5hbFJlcG9VcmwsXG4gICAgc2NyaXB0dXJlQ29uZmlnLFxuICAgIHNjcmlwdHVyZVNldHRpbmdzLFxuICAgIHN0YXJ0RWRpdEJyYW5jaCxcbiAgICBzZXRTYXZlZENoYW5nZXM6IF9zZXRTYXZlZENoYW5nZXMsXG4gICAgc291cmNlTGFuZ3VhZ2U6IGlzTlRfID8gTlRfT1JJR19MQU5HIDogT1RfT1JJR19MQU5HLFxuICAgIHRhcmdldExhbmd1YWdlOiBsYW5ndWFnZSxcbiAgICB0aXRsZTogc2NyaXB0dXJlVGl0bGUsXG4gICAgd29ya2luZ1Jlc291cmNlQnJhbmNoOiByZWYsXG4gIH1cblxuICAvKipcbiAgICogdGhpcyBnZXRzIGNhbGxlZCB3aGVuZXZlciBhIHNjcmlwdHVyZSBwYW5lIGhhcyBhIGNoYW5nZSBpbiBzYXZlIHN0YXRlXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBjdXJyZW50SW5kZXhcbiAgICogQHBhcmFtIHtib29sZWFufSBzYXZlZFxuICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBnZXRDaGFuZ2VzIC0gd2lsbCBiZSBjYWxsZWQgd2hlbmV2ZXIgdXNlciBjbGlja3Mgc2F2ZSBidXR0b25cbiAgICogQHBhcmFtIHtmdW5jdGlvbn0gY2xlYXJDaGFuZ2VzIC0gd2lsbCBiZSBjYWxsZWQgd2hlbmV2ZXIgc2F2ZSBoYXMgY29tcGxldGVkXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBzdGF0ZSAtIGN1cnJlbnQgc3RhdGUgb2Ygd29yZCBhbGlnbm1lbnQvZWRpdFxuICAgKi9cbiAgZnVuY3Rpb24gX3NldFNhdmVkQ2hhbmdlcyhjdXJyZW50SW5kZXgsIHNhdmVkLCB7IGdldENoYW5nZXMgPSBudWxsLCBjbGVhckNoYW5nZXMgPSBudWxsLCBzdGF0ZSA9IG51bGwgfSkge1xuICAgIGNvbnN0IF91bnNhdmVkQ2hhbmdlc0xpc3QgPSB7IC4uLnVuc2F2ZWRDaGFuZ2VzTGlzdCB9XG5cbiAgICBpZiAoc2F2ZWQpIHtcbiAgICAgIGlmIChfdW5zYXZlZENoYW5nZXNMaXN0Lmhhc093blByb3BlcnR5KGN1cnJlbnRJbmRleCkpIHtcbiAgICAgICAgZGVsZXRlIF91bnNhdmVkQ2hhbmdlc0xpc3RbY3VycmVudEluZGV4XVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBfdW5zYXZlZENoYW5nZXNMaXN0W2N1cnJlbnRJbmRleF0gPSB7IGdldENoYW5nZXMsIGNsZWFyQ2hhbmdlcywgc3RhdGUgfSAvLyB1cGRhdGUgd2l0aCBsYXRlc3RcbiAgICB9XG5cbiAgICBjb25zdCBfaGF2ZVVuc2F2ZWRDaGFuZ2VzID0gISFPYmplY3Qua2V5cyhfdW5zYXZlZENoYW5nZXNMaXN0KS5sZW5ndGhcblxuICAgIGlmIChoYXZlVW5zYXZlZENoYW5nZXMgIT0gX2hhdmVVbnNhdmVkQ2hhbmdlcykge1xuICAgICAgc2V0U2F2ZWRDaGFuZ2VzICYmIHNldFNhdmVkQ2hhbmdlcyhyZXNvdXJjZUlkLCAhX2hhdmVVbnNhdmVkQ2hhbmdlcylcbiAgICAgIHNldFN0YXRlKHsgaGF2ZVVuc2F2ZWRDaGFuZ2VzOiBfaGF2ZVVuc2F2ZWRDaGFuZ2VzIH0pXG4gICAgfVxuXG4gICAgaWYgKCFpc0VxdWFsKF91bnNhdmVkQ2hhbmdlc0xpc3QsIHVuc2F2ZWRDaGFuZ2VzTGlzdCkpIHtcbiAgICAgIHNldFN0YXRlKHsgdW5zYXZlZENoYW5nZXNMaXN0OiBfdW5zYXZlZENoYW5nZXNMaXN0IH0pXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIHNlYXJjaCBjaGFwdGVyIG9yIHZlcnNlIGNodW5rIHRvIGxpbmUgdGhhdCBzdGFydHMgd2l0aCBmaW5kSXRlbVxuICAgKiBAcGFyYW0ge251bWJlcnxzdHJpbmd9IGZpbmRJdGVtXG4gICAqIEBwYXJhbSB7c3RyaW5nW119IGNodW5rc1xuICAgKi9cbiAgZnVuY3Rpb24gZmluZFJlZkluQXJyYXkoZmluZEl0ZW0sIGNodW5rcykge1xuICAgIGNvbnN0IHJlZl8gPSBmaW5kSXRlbSArICcnXG4gICAgY29uc3QgcmVmTGVuID0gcmVmXy5sZW5ndGhcbiAgICBjb25zdCBpbmRleCA9IGNodW5rcy5maW5kSW5kZXgoKGNodW5rLCBpZHgpID0+IHtcbiAgICAgIGlmIChpZHggPiAwKSB7XG4gICAgICAgIGlmIChjaHVuay5zdWJzdHJpbmcoMCwgcmVmTGVuKSA9PT0gcmVmXykge1xuICAgICAgICAgIGNvbnN0IG5leHRDaGFyID0gY2h1bmtbcmVmTGVuXVxuXG4gICAgICAgICAgaWYgKChuZXh0Q2hhciA+ICc5JykgfHwgKG5leHRDaGFyIDwgJzAnKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH0pXG4gICAgcmV0dXJuIGluZGV4XG4gIH1cblxuICBmdW5jdGlvbiBnZXRCb29rTmFtZSgpIHtcbiAgICBjb25zdCBib29rQ2FwcyA9IHNjcmlwdHVyZUNvbmZpZz8ucmVmZXJlbmNlPy5wcm9qZWN0SWQgPyBzY3JpcHR1cmVDb25maWcucmVmZXJlbmNlLnByb2plY3RJZC50b1VwcGVyQ2FzZSgpIDogJydcbiAgICByZXR1cm4gYCR7Ym9va0luZGV4fS0ke2Jvb2tDYXBzfS51c2ZtYFxuICB9XG5cbiAgY29uc3QgZmlsZXBhdGggPSBnZXRCb29rTmFtZSgpXG5cbiAgLy8ga2VlcCB0cmFjayBvZiB2ZXJzZSBlZGl0IHN0YXRlXG4gIGNvbnN0IHsgb25TYXZlRWRpdCB9ID0gdXNlRWRpdCh7XG4gICAgc2hhLFxuICAgIG93bmVyLFxuICAgIGNvbnRlbnQ6IHNhdmVDb250ZW50LFxuICAgIGNvbmZpZzoge1xuICAgICAgY2FjaGU6IHsgbWF4QWdlOiAwIH0sXG4gICAgICAuLi5hdXRoZW50aWNhdGlvbj8uY29uZmlnLFxuICAgICAgdG9rZW46IGF1dGhlbnRpY2F0aW9uPy50b2tlbixcbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIHRpbWVvdXQ6IGh0dHBDb25maWc/LnNlcnZlclRpbWVPdXQgfHwgaHR0cENvbmZpZz8udGltZW91dCB8fCA1MDAwLFxuICAgIH0sXG4gICAgYXV0aG9yOiBsb2dnZWRJblVzZXIsXG4gICAgdG9rZW46IGF1dGhlbnRpY2F0aW9uPy50b2tlbixcbiAgICBicmFuY2g6IHdvcmtpbmdSZXNvdXJjZUJyYW5jaCxcbiAgICBmaWxlcGF0aCxcbiAgICByZXBvLFxuICB9KVxuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7IC8vIHdoZW4gc3RhcnRTYXZlIGdvZXMgdHJ1ZSwgc2F2ZSBlZGl0cyB0byB1c2VyIGJyYW5jaCBhbmQgdGhlbiBjbGVhciBzdGFydFNhdmVcbiAgICBjb25zdCBfc2F2ZUVkaXQgPSBhc3luYyAoKSA9PiB7IC8vIGJlZ2luIHVwbG9hZGluZyBuZXcgVVNGTVxuICAgICAgbGV0IGJyYW5jaCA9ICh3b3JraW5nUmVzb3VyY2VCcmFuY2ggIT09ICdtYXN0ZXInKSA/IHdvcmtpbmdSZXNvdXJjZUJyYW5jaCA6IHVuZGVmaW5lZFxuXG4gICAgICBpZiAoIWJyYW5jaCkge1xuICAgICAgICBicmFuY2ggPSBhd2FpdCBzdGFydEVkaXRCcmFuY2goKSAvLyBtYWtlIHN1cmUgdXNlciBicmFuY2ggZXhpc3RzIGFuZCBnZXQgbmFtZVxuICAgICAgfVxuXG4gICAgICBhd2FpdCBvblNhdmVFZGl0KGJyYW5jaCkudGhlbigoc3VjY2VzcykgPT4geyAvLyBwdXNoIGNoYW5nZWQgdG8gc2VydmVyXG4gICAgICAgIGlmIChzdWNjZXNzKSB7XG4gICAgICAgICAgY29uc29sZS5sb2coYHNhdmVDaGFuZ2VzVG9DbG91ZCgpIC0gc2F2ZSBzY3JpcHR1cmUgZWRpdHMgc3VjY2Vzc2ApXG4gICAgICAgICAgc2V0U3RhdGUoeyBzdGFydFNhdmU6IGZhbHNlIH0pXG5cbiAgICAgICAgICBjb25zdCB1bnNhdmVkQ2FyZEluZGljZXMgPSBPYmplY3Qua2V5cyh1bnNhdmVkQ2hhbmdlc0xpc3QpXG5cbiAgICAgICAgICBpZiAodW5zYXZlZENhcmRJbmRpY2VzPy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgY2FyZEluZGV4IG9mIHVuc2F2ZWRDYXJkSW5kaWNlcykge1xuICAgICAgICAgICAgICBjb25zdCB7IGNsZWFyQ2hhbmdlcyB9ID0gdW5zYXZlZENoYW5nZXNMaXN0W2NhcmRJbmRleF1cbiAgICAgICAgICAgICAgY2xlYXJDaGFuZ2VzICYmIGNsZWFyQ2hhbmdlcygpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc29sZS5pbmZvKCdzYXZlQ2hhbmdlc1RvQ2xvdWQoKSAtIFJlbG9hZGluZyByZXNvdXJjZScpXG4gICAgICAgICAgc2NyaXB0dXJlQ29uZmlnPy5yZWxvYWRSZXNvdXJjZSgpXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcignc2F2ZUNoYW5nZXNUb0Nsb3VkKCkgLSBzYXZpbmcgY2hhbmdlZCBzY3JpcHR1cmUgZmFpbGVkJylcbiAgICAgICAgICBzZXRTdGF0ZSh7IHN0YXJ0U2F2ZTogZmFsc2UgfSlcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICB9XG5cbiAgICBpZiAoc3RhcnRTYXZlKSB7XG4gICAgICBjb25zb2xlLmxvZyhgc2F2ZUNoYW5nZXNUb0Nsb3VkIC0gY2FsbGluZyBfc2F2ZUVkaXQoKWApXG4gICAgICBfc2F2ZUVkaXQoKVxuICAgIH1cbiAgfSwgW3N0YXJ0U2F2ZV0pXG5cbiAgLyoqXG4gICAqIGNvbnZlcnQgdXBkYXRlZFZlcnNlT2JqZWN0cyB0byBVU0ZNIGFuZCBtZXJnZSBpbnRvIHRoZSBiaWJsZVVzZm1cbiAgICogQHBhcmFtIHtzdHJpbmd9IGJpYmxlVXNmbSAtIFVTRk0gb2YgYmlibGVcbiAgICogQHBhcmFtIHtvYmplY3R9IHJlZiAtIHJlZmVyZW5jZSBvZiB2ZXJzZSB0byBtZXJnZSBpblxuICAgKiBAcGFyYW0ge29iamVjdFtdfSB1cGRhdGVkVmVyc2VPYmplY3RzIC0gbmV3IHZlcnNlIGluIHZlcnNlT2JqZWN0IGZvcm1hdFxuICAgKiBAcGFyYW0ge251bWJlcn0gY2FyZE51bVxuICAgKi9cbiAgZnVuY3Rpb24gbWVyZ2VWZXJzZU9iamVjdHNJbnRvQmlibGVVc2ZtKGJpYmxlVXNmbSwgcmVmLCB1cGRhdGVkVmVyc2VPYmplY3RzLCBjYXJkTnVtOiBudW1iZXIpIHtcbiAgICBsZXQgbmV3VXNmbVxuICAgIGNvbnN0IGNoYXB0ZXJDaHVua3MgPSBiaWJsZVVzZm0/LnNwbGl0KCdcXFxcYyAnKVxuICAgIGNvbnN0IGNoYXB0ZXJJbmRleCA9IGZpbmRSZWZJbkFycmF5KHJlZj8uY2hhcHRlciwgY2hhcHRlckNodW5rcylcblxuICAgIGlmIChjaGFwdGVySW5kZXggPj0gMCkge1xuICAgICAgY29uc3QgY3VycmVudENoYXB0ZXIgPSBjaGFwdGVyQ2h1bmtzW2NoYXB0ZXJJbmRleF1cbiAgICAgIGNvbnN0IHZlcnNlQ2h1bmtzID0gY3VycmVudENoYXB0ZXIuc3BsaXQoJ1xcXFx2ICcpXG4gICAgICBjb25zdCB2ZXJzZUluZGV4ID0gZmluZFJlZkluQXJyYXkocmVmPy52ZXJzZSwgdmVyc2VDaHVua3MpXG5cbiAgICAgIGlmICh2ZXJzZUluZGV4ID49IDApIHtcbiAgICAgICAgY29uc3QgbmV3VmVyc2VVc2ZtID0gVXNmbUZpbGVDb252ZXJzaW9uSGVscGVycy5jb252ZXJ0VmVyc2VEYXRhVG9VU0ZNKHVwZGF0ZWRWZXJzZU9iamVjdHMpXG4gICAgICAgIGNvbnNvbGUubG9nKGBzYXZlQ2hhbmdlc1RvQ2xvdWQoJHtjYXJkTnVtfSkgLSBuZXcgVVNGTSBmb3IgY2FyZDp9IC0gJHtuZXdWZXJzZVVzZm0uc3Vic3RyaW5nKDAsIDEwMCl9YClcbiAgICAgICAgY29uc3Qgb2xkVmVyc2UgPSB2ZXJzZUNodW5rc1t2ZXJzZUluZGV4XVxuICAgICAgICBjb25zdCB2ZXJzZU51bUxlbiA9IChyZWY/LnZlcnNlICsgJycpLmxlbmd0aFxuICAgICAgICB2ZXJzZUNodW5rc1t2ZXJzZUluZGV4XSA9IG9sZFZlcnNlLnN1YnN0cmluZygwLCB2ZXJzZU51bUxlbiArIDEpICsgbmV3VmVyc2VVc2ZtXG4gICAgICAgIGNvbnN0IG5ld0NoYXB0ZXIgPSB2ZXJzZUNodW5rcy5qb2luKCdcXFxcdiAnKVxuICAgICAgICBjaGFwdGVyQ2h1bmtzW2NoYXB0ZXJJbmRleF0gPSBuZXdDaGFwdGVyXG4gICAgICAgIG5ld1VzZm0gPSBjaGFwdGVyQ2h1bmtzLmpvaW4oJ1xcXFxjICcpXG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBuZXdVc2ZtXG4gIH1cblxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4geyAvLyBmb3IgZWFjaCB1bnNhdmVkIGNoYW5nZSwgY2FsbCBpbnRvIHZlcnNlUGFuZSB0byBnZXQgbGF0ZXN0IGNoYW5nZXMgZm9yIHZlcnNlIHRvIHNhdmVcbiAgICBpZiAoc2F2ZUNsaWNrZWQpIHtcbiAgICAgIGNvbnN0IHVuc2F2ZWRDYXJkSW5kaWNlcyA9IE9iamVjdC5rZXlzKHVuc2F2ZWRDaGFuZ2VzTGlzdClcblxuICAgICAgaWYgKHVuc2F2ZWRDYXJkSW5kaWNlcz8ubGVuZ3RoKSB7XG4gICAgICAgIGxldCBiaWJsZVVzZm0gPSBjb3JlLmdldFJlc3BvbnNlRGF0YShzY3JpcHR1cmVDb25maWc/LmZldGNoUmVzcG9uc2UpXG4gICAgICAgIGxldCBtZXJnZUZhaWwgPSBmYWxzZVxuICAgICAgICBsZXQgY2FyZE51bSA9IDBcblxuICAgICAgICBmb3IgKGNvbnN0IGNhcmRJbmRleCBvZiB1bnNhdmVkQ2FyZEluZGljZXMpIHtcbiAgICAgICAgICBjYXJkTnVtID0gcGFyc2VJbnQoY2FyZEluZGV4KVxuICAgICAgICAgIGNvbnN0IHsgZ2V0Q2hhbmdlcywgc3RhdGUgfSA9IHVuc2F2ZWRDaGFuZ2VzTGlzdFtjYXJkTnVtXVxuXG4gICAgICAgICAgaWYgKGdldENoYW5nZXMpIHtcbiAgICAgICAgICAgIGxldCBuZXdVc2ZtXG4gICAgICAgICAgICBjb25zdCB7XG4gICAgICAgICAgICAgIHJlZixcbiAgICAgICAgICAgICAgdXBkYXRlZFZlcnNlT2JqZWN0cyxcbiAgICAgICAgICAgIH0gPSBnZXRDaGFuZ2VzKHN0YXRlKVxuXG4gICAgICAgICAgICBpZiAodXBkYXRlZFZlcnNlT2JqZWN0cyAmJiBiaWJsZVVzZm0pIHsgLy8ganVzdCByZXBsYWNlIHZlcnNlXG4gICAgICAgICAgICAgIG5ld1VzZm0gPSBtZXJnZVZlcnNlT2JqZWN0c0ludG9CaWJsZVVzZm0oYmlibGVVc2ZtLCByZWYsIHVwZGF0ZWRWZXJzZU9iamVjdHMsIGNhcmROdW0pXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChuZXdVc2ZtKSB7XG4gICAgICAgICAgICAgIGJpYmxlVXNmbSA9IG5ld1VzZm1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIG1lcmdlRmFpbCA9IHRydWVcbiAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobWVyZ2VGYWlsKSB7IC8vIGlmIHdlIGZhaWxlZCB0byBtZXJnZSwgZmFsbGJhY2sgdG8gYnJ1dGUgZm9yY2UgdmVyc2Ugb2JqZWN0cyB0byBVU0ZNXG4gICAgICAgICAgY29uc29sZS5sb2coYHNhdmVDaGFuZ2VzVG9DbG91ZCgke2NhcmROdW19KSAtIHZlcnNlIG5vdCBmb3VuZCwgZmFsbGluZyBiYWNrIHRvIGluc2VydGluZyB2ZXJzZSBvYmplY3RgKVxuICAgICAgICAgIGxldCBuZXdCb29rSnNvblxuXG4gICAgICAgICAgZm9yIChjb25zdCBjYXJkSW5kZXggb2YgdW5zYXZlZENhcmRJbmRpY2VzKSB7XG4gICAgICAgICAgICBjb25zdCBjYXJkTnVtID0gcGFyc2VJbnQoY2FyZEluZGV4KVxuICAgICAgICAgICAgY29uc3QgeyBnZXRDaGFuZ2VzLCBzdGF0ZSB9ID0gdW5zYXZlZENoYW5nZXNMaXN0W2NhcmROdW1dXG5cbiAgICAgICAgICAgIGlmIChnZXRDaGFuZ2VzKSB7XG4gICAgICAgICAgICAgIGxldCBuZXdVc2ZtXG4gICAgICAgICAgICAgIGNvbnN0IHtcbiAgICAgICAgICAgICAgICBuZXdWZXJzZVRleHQsXG4gICAgICAgICAgICAgICAgcmVmLFxuICAgICAgICAgICAgICAgIHVwZGF0ZWRWZXJzZU9iamVjdHMsXG4gICAgICAgICAgICAgIH0gPSBnZXRDaGFuZ2VzKHN0YXRlKVxuXG4gICAgICAgICAgICAgIGlmICh1cGRhdGVkVmVyc2VPYmplY3RzICYmICFuZXdVc2ZtKSB7XG4gICAgICAgICAgICAgICAgbGV0IHRhcmdldFZlcnNlT2JqZWN0c18gPSBudWxsXG5cbiAgICAgICAgICAgICAgICBpZiAocmVmKSB7XG4gICAgICAgICAgICAgICAgICBpZiAobmV3VmVyc2VUZXh0KSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgdGFyZ2V0VmVyc2VPYmplY3RzIH0gPSBBbGlnbm1lbnRIZWxwZXJzLnVwZGF0ZUFsaWdubWVudHNUb1RhcmdldFZlcnNlKHVwZGF0ZWRWZXJzZU9iamVjdHMsIG5ld1ZlcnNlVGV4dClcbiAgICAgICAgICAgICAgICAgICAgdGFyZ2V0VmVyc2VPYmplY3RzXyA9IHRhcmdldFZlcnNlT2JqZWN0c1xuICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGFyZ2V0VmVyc2VPYmplY3RzXyA9IHVwZGF0ZWRWZXJzZU9iamVjdHNcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIG5ld0Jvb2tKc29uID0gdGFyZ2V0VmVyc2VPYmplY3RzXyAmJiBzY3JpcHR1cmVDb25maWc/LnVwZGF0ZVZlcnNlKHJlZi5jaGFwdGVyLCByZWYudmVyc2UsIHsgdmVyc2VPYmplY3RzOiB0YXJnZXRWZXJzZU9iamVjdHNfIH0pXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgYmlibGVVc2ZtID0gdXNmbWpzLnRvVVNGTShuZXdCb29rSnNvbiwgeyBmb3JjZWROZXdMaW5lczogdHJ1ZSB9KVxuICAgICAgICB9XG5cbiAgICAgICAgY29uc29sZS5sb2coYHNhdmVDaGFuZ2VzVG9DbG91ZCgpIC0gc2F2aW5nIG5ldyBVU0ZNOiAke2JpYmxlVXNmbS5zdWJzdHJpbmcoMCwgMTAwKX0uLi5gKVxuICAgICAgICBzZXRTdGF0ZSh7IHNhdmVDb250ZW50OiBiaWJsZVVzZm0sIHN0YXJ0U2F2ZTogdHJ1ZSwgc2F2ZUNsaWNrZWQ6IGZhbHNlIH0pXG4gICAgICB9XG4gICAgfVxuICB9LCBbc2F2ZUNsaWNrZWRdKVxuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgX3ZlcnNlc0ZvclJlZiA9IHNjcmlwdHVyZUNvbmZpZz8udmVyc2VzRm9yUmVmXG4gICAgbGV0IG5ld1NlbGVjdGlvbnMgPSBuZXcgTWFwKClcbiAgICBsZXQgdXBkYXRlU2VsZWN0aW9ucyA9IGZhbHNlXG4gICAgY29uc3QgX21hcCA9IG5ld1NlbGVjdGlvbnNcbiAgICBjb25zdCBvcmlnaW5hbEJvb2tJZCA9IG9yaWdpbmFsVmVyc2VPYmplY3RzPy5ib29rSWRcbiAgICBjb25zdCBib29rVmVyc2VPYmplY3QgPSBvcmlnaW5hbFZlcnNlT2JqZWN0cz8uY2hhcHRlcnNcbiAgICBsZXQgbmV3U2VsZWN0ZWRRdW90ZSA9IG51bGxcblxuICAgIC8vIGlmIHdlIGhhdmUgZXZlcnl0aGluZyB3ZSBuZWVkIHRvIGNhbGN1bGF0ZSBzZWxlY3Rpb25zXG4gICAgaWYgKF92ZXJzZXNGb3JSZWY/Lmxlbmd0aCAmJlxuICAgICAgYm9va1ZlcnNlT2JqZWN0ICYmXG4gICAgICAoYm9va0lkID09PSBvcmlnaW5hbEJvb2tJZCkgJiZcbiAgICAgIGJvb2tWZXJzZU9iamVjdFtjaGFwdGVyXSAmJiAvLyB3ZSBuZWVkIHRvIGhhdmUgZGF0YSBmb3IgY2hhcHRlclxuICAgICAgc2VsZWN0ZWRRdW90ZT8ucXVvdGVcbiAgICApIHtcbiAgICAgIC8vIGlmIHF1b3RlIGlzIGRpZmZlcmVudCB0aGFuIGxhc3RcbiAgICAgIGlmICghaXNFcXVhbChsYXN0U2VsZWN0ZWRRdW90ZSwgc2VsZWN0ZWRRdW90ZSkgfHxcbiAgICAgICAgIWlzRXF1YWwodmVyc2VzRm9yUmVmLCBfdmVyc2VzRm9yUmVmKSkge1xuICAgICAgICBjb25zdCBvcmlnaW5hbFZlcnNlcyA9IHt9XG4gICAgICAgIGNvbnN0IHN1YnN0aXR1dGUgPSB7fSAvLyBrZWVwIHRyYWNrIG9mIHZlcnNlIHN1YnN0aXR1dGlvbnNcbiAgICAgICAgbGV0IHN0YXJ0VmVyc2UgPSBfdmVyc2VzRm9yUmVmWzBdLnZlcnNlXG5cbiAgICAgICAgaWYgKHR5cGVvZiBzdGFydFZlcnNlID09PSAnc3RyaW5nJykge1xuICAgICAgICAgIHN0YXJ0VmVyc2UgPSBwYXJzZUludChzdGFydFZlcnNlKVxuICAgICAgICB9XG5cbiAgICAgICAgbGV0IGxhc3RWZXJzZSA9IHN0YXJ0VmVyc2VcblxuICAgICAgICBmb3IgKGxldCBpID0gMCwgbCA9IF92ZXJzZXNGb3JSZWYubGVuZ3RoOyBpIDwgbDsgaSsrKSB7XG4gICAgICAgICAgY29uc3QgdmVyc2VSZWYgPSBfdmVyc2VzRm9yUmVmW2ldXG4gICAgICAgICAgY29uc3Qge1xuICAgICAgICAgICAgY2hhcHRlcixcbiAgICAgICAgICAgIHZlcnNlLFxuICAgICAgICAgIH0gPSB2ZXJzZVJlZlxuICAgICAgICAgIC8vIFRSSUNLWSAtIHdlIHJlbWFwIHZlcnNlcyBpbiByZWZlcmVuY2UgcmFuZ2UgdG8gYSBsaW5lYXIgc2VyaWVzIG9mIHZlcnNlcyBzbyB2ZXJzZSBzcGFucyBkb24ndCBjaG9rZSBnZXRRdW90ZU1hdGNoZXNJbkJvb2tSZWZcbiAgICAgICAgICBsZXQgX3ZlcnNlID0gc3RhcnRWZXJzZSArIGlcbiAgICAgICAgICBsYXN0VmVyc2UgPSBfdmVyc2VcbiAgICAgICAgICBzdWJzdGl0dXRlW2Ake2NoYXB0ZXJ9OiR7X3ZlcnNlfWBdID0gYCR7Y2hhcHRlcn06JHt2ZXJzZX1gXG5cbiAgICAgICAgICBpZiAoIW9yaWdpbmFsVmVyc2VzW2NoYXB0ZXJdKSB7XG4gICAgICAgICAgICBvcmlnaW5hbFZlcnNlc1tjaGFwdGVyXSA9IHt9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgbGV0IHZlcnNlT2JqZWN0cyA9IFtdXG5cbiAgICAgICAgICBpZiAoKHR5cGVvZiB2ZXJzZSA9PT0gJ3N0cmluZycpICYmICh2ZXJzZS5pbmNsdWRlcygnLScpKSkge1xuICAgICAgICAgICAgY29uc3QgdmVyc2VzID0gZ2V0VmVyc2VzKGJvb2tWZXJzZU9iamVjdCwgYCR7Y2hhcHRlcn06JHt2ZXJzZX1gKVxuXG4gICAgICAgICAgICBmb3IgKGNvbnN0IHZlcnNlSXRlbSBvZiB2ZXJzZXMpIHtcbiAgICAgICAgICAgICAgY29uc3Qgdm8gPSB2ZXJzZUl0ZW0udmVyc2VEYXRhLnZlcnNlT2JqZWN0c1xuICAgICAgICAgICAgICB2ZXJzZU9iamVjdHMgPSB2ZXJzZU9iamVjdHMuY29uY2F0KHZvKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB2ZXJzZU9iamVjdHMgPSBib29rVmVyc2VPYmplY3RbY2hhcHRlcl1bdmVyc2VdPy52ZXJzZU9iamVjdHNcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAodmVyc2VPYmplY3RzKSB7XG4gICAgICAgICAgICB2ZXJzZU9iamVjdHMgPSBjbGVhbnVwVmVyc2VPYmplY3RzKHZlcnNlT2JqZWN0cylcbiAgICAgICAgICAgIG9yaWdpbmFsVmVyc2VzW2NoYXB0ZXJdW192ZXJzZV0gPSB7IHZlcnNlT2JqZWN0cyB9XG4gICAgICAgICAgICBfbWFwLnNldChgJHtjaGFwdGVyfToke3ZlcnNlfWAsIHZlcnNlT2JqZWN0cylcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBjcmVhdGUgbmV3IHJlZmVyZW5jZSByYW5nZSBmb3IgbmV3IGxpbmVhciB2ZXJzZSByYW5nZVxuICAgICAgICBjb25zdCBbY2hhcHRlcl0gPSBzZWxlY3RlZFF1b3RlPy5yZWZlcmVuY2U/LnNwbGl0KCc6JylcbiAgICAgICAgbGV0IHN1YlJlZiA9IGAke2NoYXB0ZXJ9OiR7c3RhcnRWZXJzZX1gXG5cbiAgICAgICAgaWYgKGxhc3RWZXJzZSAhPSBzdGFydFZlcnNlKSB7XG4gICAgICAgICAgc3ViUmVmICs9IGAtJHtsYXN0VmVyc2V9YFxuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcXVvdGVNYXRjaGVzID0gZ2V0UXVvdGVNYXRjaGVzSW5Cb29rUmVmKHtcbiAgICAgICAgICBib29rT2JqZWN0OiBvcmlnaW5hbFZlcnNlcyxcbiAgICAgICAgICByZWY6IHN1YlJlZixcbiAgICAgICAgICBxdW90ZTogc2VsZWN0ZWRRdW90ZT8ucXVvdGUsXG4gICAgICAgICAgb2NjdXJyZW5jZTogc2VsZWN0ZWRRdW90ZT8ub2NjdXJyZW5jZSxcbiAgICAgICAgfSlcblxuICAgICAgICBjb25zdCBzZWxlY3Rpb25zID0gbmV3IE1hcCgpXG5cbiAgICAgICAgaWYgKHF1b3RlTWF0Y2hlcz8uc2l6ZSkge1xuICAgICAgICAgIHF1b3RlTWF0Y2hlcy5mb3JFYWNoKCh3b3Jkcywga2V5KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBfa2V5ID0gc3Vic3RpdHV0ZVtrZXldXG5cbiAgICAgICAgICAgIHNlbGVjdGlvbnMuc2V0KF9rZXksIHdvcmRzLm1hcCh3b3JkID0+IChcbiAgICAgICAgICAgICAgeyAuLi53b3JkLCB0ZXh0OiBjb3JlLm5vcm1hbGl6ZVN0cmluZyh3b3JkLnRleHQpIH1cbiAgICAgICAgICAgICkpKVxuICAgICAgICAgIH0pXG4gICAgICAgIH1cbiAgICAgICAgbmV3U2VsZWN0aW9ucyA9IHNlbGVjdGlvbnNcbiAgICAgICAgbmV3U2VsZWN0ZWRRdW90ZSA9IHNlbGVjdGVkUXVvdGVcbiAgICAgICAgdXBkYXRlU2VsZWN0aW9ucyA9IHRydWVcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBuZXdTdGF0ZTogYW55ID0ge31cblxuICAgIC8vIHVwZGF0ZSBzdGF0ZXMgdGhhdCBoYXZlIGNoYW5nZWRcbiAgICBpZiAoIWFyZU1hcHNUaGVTYW1lKHZlcnNlT2JqZWN0c01hcCwgX21hcCkpIHtcbiAgICAgIG5ld1N0YXRlLnZlcnNlT2JqZWN0c01hcCA9IF9tYXBcbiAgICB9XG5cbiAgICBpZiAoIWlzRXF1YWwoT2JqZWN0LmtleXModmVyc2VzRm9yUmVmIHx8IHt9KSwgT2JqZWN0LmtleXMoX3ZlcnNlc0ZvclJlZiB8fCB7fSkpKSB7XG4gICAgICBuZXdTdGF0ZS52ZXJzZXNGb3JSZWYgPSBfdmVyc2VzRm9yUmVmXG4gICAgICBuZXdTdGF0ZS5sYXN0U2VsZWN0ZWRRdW90ZSA9IG5ld1NlbGVjdGVkUXVvdGVcbiAgICAgIG5ld1N0YXRlLnNlbGVjdGlvbnMgPSBuZXdTZWxlY3Rpb25zXG4gICAgfVxuXG4gICAgaWYgKG5ld1NlbGVjdGVkUXVvdGUpIHtcbiAgICAgIG5ld1N0YXRlLmxhc3RTZWxlY3RlZFF1b3RlID0gbmV3U2VsZWN0ZWRRdW90ZVxuICAgIH1cblxuICAgIGlmICh1cGRhdGVTZWxlY3Rpb25zKSB7XG4gICAgICBpZiAoIWFyZU1hcHNUaGVTYW1lKHNlbGVjdGlvbnMgfHwgKG5ldyBNYXAoKSksIG5ld1NlbGVjdGlvbnMpKSB7XG4gICAgICAgIG5ld1N0YXRlLnNlbGVjdGlvbnMgPSBuZXdTZWxlY3Rpb25zXG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKE9iamVjdC5rZXlzKG5ld1N0YXRlKS5sZW5ndGgpIHtcbiAgICAgIHNldFN0YXRlKG5ld1N0YXRlKVxuICAgIH1cbiAgfSwgW293bmVyLCByZXNvdXJjZUlkLCBib29rSWQsIGxhbmd1YWdlSWRfLCBzY3JpcHR1cmVDb25maWc/LnZlcnNlc0ZvclJlZiwgb3JpZ2luYWxWZXJzZU9iamVjdHMsIHNlbGVjdGVkUXVvdGVdKVxuXG4gIGNvbnN0IHJlbmRlcmVkU2NyaXB0dXJlUGFuZXMgPSB2ZXJzZXNGb3JSZWY/Lm1hcCgoX2N1cnJlbnRWZXJzZURhdGEsIGluZGV4KSA9PiB7XG4gICAgY29uc3QgaW5pdGlhbFZlcnNlT2JqZWN0cyA9IF9jdXJyZW50VmVyc2VEYXRhPy52ZXJzZURhdGE/LnZlcnNlT2JqZWN0cyB8fCBudWxsXG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIGNvbnN0IHsgY2hhcHRlciwgdmVyc2UgfSA9IF9jdXJyZW50VmVyc2VEYXRhIHx8IHt9XG4gICAgY29uc3QgX3JlZmVyZW5jZSA9IHtcbiAgICAgIC4uLnJlZmVyZW5jZSxcbiAgICAgIGNoYXB0ZXIsXG4gICAgICB2ZXJzZSxcbiAgICB9XG4gICAgY29uc3QgX3NjcmlwdHVyZUFsaWdubWVudEVkaXRDb25maWcgPSB7XG4gICAgICAuLi5zY3JpcHR1cmVBbGlnbm1lbnRFZGl0Q29uZmlnLFxuICAgICAgY3VycmVudEluZGV4OiBpbmRleCxcbiAgICAgIGluaXRpYWxWZXJzZU9iamVjdHMsXG4gICAgICByZWZlcmVuY2U6IF9yZWZlcmVuY2UsXG4gICAgfVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDxTY3JpcHR1cmVQYW5lXG4gICAgICAgIHsuLi5zY3JpcHR1cmVDb25maWd9XG4gICAgICAgIGNvbnRlbnRTdHlsZT17Y29udGVudFN0eWxlfVxuICAgICAgICBjdXJyZW50SW5kZXg9e2luZGV4fVxuICAgICAgICBkaXJlY3Rpb249e2RpcmVjdGlvbn1cbiAgICAgICAgZGlzYWJsZVdvcmRQb3BvdmVyPXtkaXNhYmxlV29yZFBvcG92ZXJffVxuICAgICAgICBmb250U2l6ZT17Zm9udFNpemV9XG4gICAgICAgIGdldExleGljb25EYXRhPXtnZXRMZXhpY29uRGF0YX1cbiAgICAgICAgaXNOVD17aXNOVF99XG4gICAgICAgIGtleT17aW5kZXh9XG4gICAgICAgIHJlZlN0eWxlPXtyZWZTdHlsZX1cbiAgICAgICAgcmVmZXJlbmNlPXtfcmVmZXJlbmNlfVxuICAgICAgICBzYXZpbmc9e3N0YXJ0U2F2ZX1cbiAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICBzY3JpcHR1cmVBbGlnbm1lbnRFZGl0Q29uZmlnPXtfc2NyaXB0dXJlQWxpZ25tZW50RWRpdENvbmZpZ31cbiAgICAgICAgc2V0V29yZEFsaWduZXJTdGF0dXM9e3NldFdvcmRBbGlnbmVyU3RhdHVzfVxuICAgICAgICBzZXJ2ZXI9e3NlcnZlcn1cbiAgICAgICAgdHJhbnNsYXRlPXt0cmFuc2xhdGV9XG4gICAgICAgIHNldE9yaWdpbmFsU2NyaXB0dXJlUmVzb3VyY2U9eyFpbmRleCAmJiBzZXRPcmlnaW5hbFNjcmlwdHVyZVJlc291cmNlfVxuICAgICAgLz5cbiAgICApXG4gIH0pXG5cbiAgcmV0dXJuIChcbiAgICA8U2VsZWN0aW9uc0NvbnRleHRQcm92aWRlclxuICAgICAgc2VsZWN0aW9ucz17c2VsZWN0aW9uc31cbiAgICAgIG9uU2VsZWN0aW9ucz17bmV3U2VsZWN0aW9ucyA9PiB7XG4gICAgICAgIC8vIGNvbnNvbGUubG9nKCdvblNlbGVjdGlvbnMnLCBuZXdTZWxlY3Rpb25zKVxuICAgICAgfX1cbiAgICAgIHF1b3RlPXtzZWxlY3RlZFF1b3RlPy5xdW90ZX1cbiAgICAgIG9jY3VycmVuY2U9e2ZpeE9jY3VycmVuY2Uoc2VsZWN0ZWRRdW90ZT8ub2NjdXJyZW5jZSl9XG4gICAgICB2ZXJzZU9iamVjdHNNYXA9e3ZlcnNlT2JqZWN0c01hcH1cbiAgICA+XG4gICAgICA8Q2FyZFxuICAgICAgICBpZD17YHNjcmlwdHVyZV9jYXJkXyR7Y2FyZE51bX1gfVxuICAgICAgICB0aXRsZT17c2NyaXB0dXJlTGFiZWx9XG4gICAgICAgIHNldHRpbmdzVGl0bGU9e3NjcmlwdHVyZVRpdGxlICsgJyBTZXR0aW5ncyd9XG4gICAgICAgIGl0ZW1zPXtpdGVtc31cbiAgICAgICAgY2xhc3Nlcz17Y2xhc3Nlc31cbiAgICAgICAgaGVhZGVycz17aGVhZGVyc31cbiAgICAgICAgZmlsdGVycz17ZmlsdGVyc31cbiAgICAgICAgZm9udFNpemU9e2ZvbnRTaXplfVxuICAgICAgICBpdGVtSW5kZXg9e2l0ZW1JbmRleH1cbiAgICAgICAgc2V0RmlsdGVycz17c2V0RmlsdGVyc31cbiAgICAgICAgc2V0Rm9udFNpemU9e3NldEZvbnRTaXplfVxuICAgICAgICBzZXRJdGVtSW5kZXg9e3NldEl0ZW1JbmRleH1cbiAgICAgICAgbWFya2Rvd25WaWV3PXttYXJrZG93blZpZXd9XG4gICAgICAgIHNldE1hcmtkb3duVmlldz17c2V0TWFya2Rvd25WaWV3fVxuICAgICAgICBnZXRDdXN0b21Db21wb25lbnQ9e2dldFNjcmlwdHVyZVNlbGVjdG9yfVxuICAgICAgICBoaWRlTWFya2Rvd25Ub2dnbGVcbiAgICAgICAgb25NZW51Q2xvc2U9e29uTWVudUNsb3NlfVxuICAgICAgICBvbk1pbmltaXplPXtvbk1pbmltaXplID8gKCkgPT4gb25NaW5pbWl6ZShpZCkgOiBudWxsfVxuICAgICAgICBlZGl0YWJsZT17ZW5hYmxlRWRpdCB8fCBlbmFibGVBbGlnbm1lbnR9XG4gICAgICAgIHNhdmVkPXtzdGFydFNhdmUgfHwgIWhhdmVVbnNhdmVkQ2hhbmdlc31cbiAgICAgICAgb25TYXZlRWRpdD17KCkgPT4gc2V0U3RhdGUoeyBzYXZlQ2xpY2tlZDogdHJ1ZSB9KX1cbiAgICAgID5cbiAgICAgICAgPGRpdiBpZD1cInNjcmlwdHVyZS1wYW5lLWxpc3RcIj5cbiAgICAgICAgICB7cmVuZGVyZWRTY3JpcHR1cmVQYW5lc31cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L0NhcmQ+XG4gICAgPC9TZWxlY3Rpb25zQ29udGV4dFByb3ZpZGVyPlxuICApXG59XG5cblNjcmlwdHVyZUNhcmQucHJvcFR5cGVzID0ge1xuICAvKiogaHRtbCBpZGVudGlmaWVyIHRvIHVzZSBmb3IgY2FyZCAqL1xuICBpZDogUHJvcFR5cGVzLnN0cmluZyxcbiAgLyoqIG1ldGhvZCB0byBkZXRlcm1pbmUgaWYgTlQgb3IgT1QgKi9cbiAgaXNOVDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgLyoqIHRpdGxlIGZvciBzY3JpcHR1cmUgY2FyZCAqL1xuICB0aXRsZTogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAvKiogZ2V0IGxhbmd1YWdlIGRldGFpbHMgKi9cbiAgZ2V0TGFuZ3VhZ2U6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIC8qKiBzY3JpcHR1cmUgY2FyZCBudW1iZXIgKDAgdG8gMiBmb3IgZXhhbXBsZSkgKi9cbiAgY2FyZE51bTogUHJvcFR5cGVzLm51bWJlci5pc1JlcXVpcmVkLFxuICAvKiogcmVzb3VyY2Ugb2JqZWN0ICovXG4gIHJlc291cmNlOiBQcm9wVHlwZXMuc2hhcGUoe1xuICAgIC8qKiByZXNvdXJjZSBsYW5ndWFnZSB0byB1c2UgKi9cbiAgICBsYW5ndWFnZUlkOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gICAgLyoqIHJlcG8gb3duZXIgc3VjaCBhcyB1bmZvbGRpbmdXb3JkICovXG4gICAgb3duZXI6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgICAvKiogcmVzb3VyY2VJZCB0byB1c2UgKGUuZy4gdWdudCkgKi9cbiAgICByZXNvdXJjZUlkOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gICAgLyoqIHJlcG8gb3duZXIgZm9yIG9yaWdpbmFsIGxhbmd1YWdlcyBzdWNoIGFzIHVuZm9sZGluZ1dvcmQgKi9cbiAgICBvcmlnaW5hbExhbmd1YWdlT3duZXI6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgfSksXG4gIHJlZmVyZW5jZTogUHJvcFR5cGVzLnNoYXBlKHtcbiAgICAvKiogcHJvamVjdElkIChib29rSUQpIHRvIHVzZSAqL1xuICAgIHByb2plY3RJZDogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAgIC8qKiBjdXJyZW50IGNoYXB0ZXIgbnVtYmVyICovXG4gICAgY2hhcHRlcjogUHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLm51bWJlciwgUHJvcFR5cGVzLnN0cmluZ10pLmlzUmVxdWlyZWQsXG4gICAgLyoqIGN1cnJlbnQgdmVyc2UgbnVtYmVyICovXG4gICAgdmVyc2U6IFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBlcy5udW1iZXIsIFByb3BUeXBlcy5zdHJpbmddKS5pc1JlcXVpcmVkLFxuICB9KSxcbiAgLyoqIHNlcnZlciAoZS5nLiAnaHR0cHM6Ly9naXQuZG9vcjQzLm9yZycpICovXG4gIHNlcnZlcjogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAvKiogcmVwbyBicmFuY2ggb3IgdGFnIHN1Y2ggYXMgbWFzdGVyICovXG4gIGFwcFJlZjogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAvKiogaWYgdHJ1ZSB0aGVuIHdvcmQgZGF0YSBob3ZlciBpcyBzaG93biAqL1xuICBkaXNhYmxlV29yZFBvcG92ZXI6IFByb3BUeXBlcy5ib29sLFxuICAvKiogQ1NTIGNsYXNzZXMgKi9cbiAgY2xhc3NlczogUHJvcFR5cGVzLm9iamVjdCxcbiAgLyoqIHJlc291cmNlTGluayAqL1xuICByZXNvdXJjZUxpbms6IFByb3BUeXBlcy5hbnksXG4gIC8qKiB1c2UgbWV0aG9kIGZvciB1c2luZyBsb2NhbCBzdG9yYWdlIHNwZWNpZmljIGZvciB1c2VyICovXG4gIHVzZVVzZXJMb2NhbFN0b3JhZ2U6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIC8qKiBvcHRpb25hbCBjYWxsYmFjayBpZiBlcnJvciBsb2FkaW5nIHJlc291cmNlLCBwYXJhbWV0ZXIgcmV0dXJuZWQgYXJlOlxuICAgKiAgICAoe3N0cmluZ30gZXJyb3JNZXNzYWdlLCB7Ym9vbGVhbn0gaXNBY2Nlc3NFcnJvciwge29iamVjdH0gcmVzb3VyY2VTdGF0dXMpXG4gICAqICAgICAgLSBpc0FjY2Vzc0Vycm9yIC0gaXMgdHJ1ZSBpZiB0aGlzIHdhcyBhbiBlcnJvciB0cnlpbmcgdG8gYWNjZXNzIGZpbGVcbiAgICogICAgICAtIHJlc291cmNlU3RhdHVzIC0gaXMgb2JqZWN0IGNvbnRhaW5pbmcgZGV0YWlscyBhYm91dCBwcm9ibGVtcyBmZXRjaGluZyByZXNvdXJjZSAqL1xuICBvblJlc291cmNlRXJyb3I6IFByb3BUeXBlcy5mdW5jLFxuICAvKiogb3B0aW9uYWwgaHR0cCB0aW1lb3V0IGluIG1pbGxpc2Vjb25kcyBmb3IgZmV0Y2hpbmcgcmVzb3VyY2VzLCBkZWZhdWx0IGlzIDAgKHZlcnkgbG9uZyB3YWl0KSAqL1xuICBodHRwQ29uZmlnOiBQcm9wVHlwZXMub2JqZWN0LFxuICAvKiogb3B0aW9uYWwgdXJsIGZvciBncmVlayByZXBvICovXG4gIGdyZWVrUmVwb1VybDogUHJvcFR5cGVzLnN0cmluZyxcbiAgLyoqIG9wdGlvbmFsIHVybCBmb3IgaGVicmV3IHJlcG8gKi9cbiAgaGVicmV3UmVwb1VybDogUHJvcFR5cGVzLnN0cmluZyxcbiAgLyoqIGZ1bmN0aW9uIHRvIGdldCBsYXRlc3QgbGV4aWNvbiBkYXRhICovXG4gIGdldExleGljb25EYXRhOiBQcm9wVHlwZXMuZnVuYyxcbiAgLyoqIGZ1bmN0aW9uIHRvIHByZS1sb2FkIGxleGljb24gZGF0YSBmb3IgdmVyc2UgKi9cbiAgZmV0Y2hHbG9zc2VzRm9yVmVyc2U6IFByb3BUeXBlcy5mdW5jLFxuICAvKiogb3B0aW9uYWwgZnVuY3Rpb24gZm9yIGxvY2FsaXphdGlvbiAqL1xuICB0cmFuc2xhdGU6IFByb3BUeXBlcy5mdW5jLFxuICAvKiogZnVuY3Rpb24gdG8gbWluaW1pemUgdGhlIGNhcmQgKG9wdGlvbmFsKSAqL1xuICBvbk1pbmltaXplOiBQcm9wVHlwZXMuZnVuYyxcbiAgLyoqIHVzZXItbmFtZSAqL1xuICBsb2dnZWRJblVzZXI6IFByb3BUeXBlcy5zdHJpbmcsXG4gIC8qKiBhdXRoZW50aWNhdGlvbiBpbmZvICovXG4gIGF1dGhlbnRpY2F0aW9uOiBQcm9wVHlwZXMub2JqZWN0LFxuICAvKiogZnVuY3Rpb24gdG8gc2V0IHN0YXRlIGluIGFwcCB0aGF0IHRoZXJlIGFyZSB1bnNhdmVkIGNoYW5nZXMgKi9cbiAgc2V0U2F2ZWRDaGFuZ2VzOiBQcm9wVHlwZXMuZnVuYyxcbiAgLyoqIGluZGV4IGZvciBjdXJyZW50IGJvb2sgKGUuZy4gJzAxJyBmb3IgJ2dlbicpKi9cbiAgYm9va0luZGV4OiBQcm9wVHlwZXMuc3RyaW5nLFxuICAvKiogY2FsbGJhY2sgdG8gdXBkYXRlIHdvcmQgYWxpZ25lciBzdGF0ZSAqL1xuICBzZXRXb3JkQWxpZ25lclN0YXR1czogUHJvcFR5cGVzLmZ1bmMsXG4gIC8qKlRoaXMgaXMgY3VycmVudGx5IHNlbGVjdGVkIHF1b3RlICovXG4gIHNlbGVjdGVkUXVvdGU6IFByb3BUeXBlcy5vYmplY3QsXG59XG4iXX0=
@@ -393,7 +393,7 @@ export function cleanupVerseObjects(verseObjects) {
393
393
  for (var i = 0, l = verseObjects_.length; i < l; i++) {
394
394
  var vo = verseObjects_[i];
395
395
 
396
- if (vo.type === 'word') {
396
+ if (vo.type === 'word' && (vo.occurrence || vo.occurrences)) {
397
397
  var word = _objectSpread({}, vo);
398
398
 
399
399
  if (vo.occurrence) {
@@ -421,4 +421,4 @@ export function cleanupVerseObjects(verseObjects) {
421
421
 
422
422
  return [];
423
423
  }
424
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9TY3JpcHR1cmVTZXR0aW5ncy50cyJdLCJuYW1lcyI6WyJDT05URU5UX05PVF9GT1VORF9FUlJPUiIsIklOVkFMSURfTUFOSUZFU1RfRVJST1IiLCJMT0FESU5HX1NUQVRFIiwiTUFOSUZFU1RfTk9UX0xPQURFRF9FUlJPUiIsIlNDUklQVFVSRV9OT1RfTE9BREVEX0VSUk9SIiwiQk9PS19OT1RfRk9VTkRfRVJST1JfTVNHIiwiTE9BRElOR19SRVNPVVJDRSIsIk1BTklGRVNUX0lOVkFMSURfRVJST1JfTVNHIiwiTUFOSUZFU1RfTk9UX0ZPVU5EX0VSUk9SX01TRyIsIk5UX09SSUdfTEFORyIsIk5UX09SSUdfTEFOR19CSUJMRSIsIk9SSUdJTkFMX1NPVVJDRSIsIk9UX09SSUdfTEFORyIsIk9UX09SSUdfTEFOR19CSUJMRSIsIlNDUklQVFVSRV9OT1RfRk9VTkRfRVJST1JfTVNHIiwiVEFSR0VUX0xJVEVSQUwiLCJUQVJHRVRfU0lNUExJRklFRCIsIkRJU0FCTEVfV09SRF9QT1BPVkVSIiwiZ2V0UmVzb3VyY2VMaW5rIiwic2NyaXB0dXJlIiwicmVmIiwiYnJhbmNoIiwib3duZXIiLCJsYW5ndWFnZUlkIiwicmVzb3VyY2VJZCIsImdldFNjcmlwdHVyZU9iamVjdCIsInRpdGxlIiwic2VydmVyIiwicmVzb3VyY2VMaW5rIiwiZGlzYWJsZVdvcmRQb3BvdmVyIiwib3JpZ2luYWxMYW5ndWFnZU93bmVyIiwiZ2V0VmVyc2VEYXRhRnJvbVNjcmlwQ29uZmlnIiwic2NyaXB0dXJlQ29uZmlnIiwidmVyc2VOdW0iLCJ2ZXJzZXNGb3JSZWYiLCJmaW5kIiwidmVyc2VSZWYiLCJ2ZXJzZSIsImlzT3JpZ2luYWxCaWJsZSIsImlzT3JpZyIsImNsZWFudXBBY2NvdW50U2V0dGluZ3MiLCJzY3JpcHR1cmVTZXR0aW5ncyIsImN1cnJlbnRPd25lciIsImN1cnJlbnRMYW5ndWFnZUlkIiwic3BsaXRVcmwiLCJvcmlnaW5hbFJlcG9VcmwiLCJ1cmwiLCJVUkwiLCJvcmlnaW4iLCJwYXRobmFtZSIsInNlYXJjaCIsImdldFNjcmlwdHVyZVJlc291cmNlU2V0dGluZ3MiLCJib29rSWQiLCJzY3JpcHR1cmVTZXR0aW5nc18iLCJpc05ld1Rlc3RhbWVudCIsImdldFNjcmlwdHVyZVZlcnNpb25TZXR0aW5ncyIsImxhYmVsIiwic2V0U2NyaXB0dXJlIiwic2NyaXB0dXJlVmVyc2lvbkhpc3QiLCJoaXN0b3J5IiwiZ2V0TGF0ZXN0IiwiaW5kZXgiLCJmaW5kSXRlbUluZGV4QnlLZXkiLCJzY3JpcHR1cmVTZWxlY3RvckNvbmZpZyIsIm9wdGlvbnMiLCJjdXJyZW50IiwiYWxsb3dVc2VySW5wdXQiLCJvbkNoYW5nZSIsInZhbGlkYXRpb25DQiIsIml0ZW0iLCJuZXdJdGVtIiwiYWRkSXRlbVRvSGlzdG9yeSIsImdldEl0ZW1CeVRpdGxlIiwiZGVsZXRlSXRlbSIsImRlbGV0ZUluZGV4IiwicmVtb3ZlSXRlbUJ5SW5kZXgiLCJnZXRSZXBvVXJsIiwiaXNOVCIsInJlcG9VcmwiLCJzcGxpdCIsImUiLCJnZXRFcnJvck1lc3NhZ2VGb3JSZXNvdXJjZUxpbmsiLCJlcnJvckNvZGUiLCJlcnJvck1zZyIsInZhbGlkYXRlRGNzVXJsIiwidmFsaWRSZXBvUGF0aCIsInZhbGlkVXJsIiwicGFydHMiLCJwcm90b2NvbCIsImhvc3QiLCJ1c2VyIiwicmVwbyIsImhvc3RQYXJ0cyIsImxlbmd0aCIsInBhcnQiLCJwcm9qZWN0SWQiLCJjb25zb2xlIiwibG9nIiwiZ2V0UmVzb3VyY2VFcnJvck1lc3NhZ2UiLCJyZXNvdXJjZVN0YXR1cyIsIm1lc3NhZ2UiLCJnZXRSZXNvdXJjZU1lc3NhZ2UiLCJnZXRSZXNvdXJjZUxpbmtTcGVjaWZpYyIsImZpeE9jY3VycmVuY2UiLCJvY2N1cnJlbmNlIiwicGFyc2VJbnQiLCJjbGVhbnVwVmVyc2VPYmplY3RzIiwidmVyc2VPYmplY3RzIiwidmVyc2VPYmplY3RzXyIsImkiLCJsIiwidm8iLCJ0eXBlIiwid29yZCIsIm9jY3VycmVu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QUFKLENBQXBDOztBQUNBLFlBQU1DLEtBQUssbUNBQ05MLEVBRE07QUFFVEksVUFBQUEsUUFBUSxFQUFSQTtBQUZTLFVBQVg7O0FBSUFQLFFBQUFBLGFBQWEsQ0FBQ0MsQ0FBRCxDQUFiLEdBQW1CTyxLQUFuQjtBQUNEO0FBQ0Y7O0FBQ0QsV0FBT1IsYUFBUDtBQUNEOztBQUNELFNBQU8sRUFBUDtBQUNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ09OVEVOVF9OT1RfRk9VTkRfRVJST1IsXG4gIElOVkFMSURfTUFOSUZFU1RfRVJST1IsXG4gIExPQURJTkdfU1RBVEUsXG4gIE1BTklGRVNUX05PVF9MT0FERURfRVJST1IsXG4gIFNDUklQVFVSRV9OT1RfTE9BREVEX0VSUk9SLFxufSBmcm9tICd0cmFuc2xhdGlvbi1oZWxwcy1yY2wnXG5pbXBvcnQge1xuICBCT09LX05PVF9GT1VORF9FUlJPUl9NU0csXG4gIExPQURJTkdfUkVTT1VSQ0UsXG4gIE1BTklGRVNUX0lOVkFMSURfRVJST1JfTVNHLFxuICBNQU5JRkVTVF9OT1RfRk9VTkRfRVJST1JfTVNHLFxuICBOVF9PUklHX0xBTkcsXG4gIE5UX09SSUdfTEFOR19CSUJMRSxcbiAgT1JJR0lOQUxfU09VUkNFLFxuICBPVF9PUklHX0xBTkcsXG4gIE9UX09SSUdfTEFOR19CSUJMRSxcbiAgU0NSSVBUVVJFX05PVF9GT1VORF9FUlJPUl9NU0csXG4gIFRBUkdFVF9MSVRFUkFMLFxuICBUQVJHRVRfU0lNUExJRklFRCxcbn0gZnJvbSAnLi9jb21tb24nXG5cbmV4cG9ydCBjb25zdCBESVNBQkxFX1dPUkRfUE9QT1ZFUiA9IHRydWUgLy8gZGlzYWJsZSB3b3JkIHBvcG92ZXIgZm9yIGV2ZXJ5IHNjcmlwdHVyZSBwYW5lIGJ1dCBvcmlnaW5hbCBsYW5ndWFnZXNcblxuZXhwb3J0IGZ1bmN0aW9uIGdldFJlc291cmNlTGluayhzY3JpcHR1cmUpIHtcbiAgY29uc3QgcmVmID0gc2NyaXB0dXJlLnJlZiB8fCBzY3JpcHR1cmUuYnJhbmNoXG4gIHJldHVybiBgJHtzY3JpcHR1cmUub3duZXJ9LyR7c2NyaXB0dXJlLmxhbmd1YWdlSWR9LyR7c2NyaXB0dXJlLnJlc291cmNlSWR9LyR7cmVmfWBcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFNjcmlwdHVyZU9iamVjdCh7XG4gIHRpdGxlLFxuICBzZXJ2ZXIsXG4gIG93bmVyLFxuICByZWYsXG4gIGxhbmd1YWdlSWQsXG4gIHJlc291cmNlSWQsXG4gIHJlc291cmNlTGluayxcbiAgZGlzYWJsZVdvcmRQb3BvdmVyLFxuICBvcmlnaW5hbExhbmd1YWdlT3duZXIsXG59KSB7XG4gIGNvbnN0IHNjcmlwdHVyZSA9IHtcbiAgICB0aXRsZSxcbiAgICBzZXJ2ZXIsXG4gICAgb3duZXIsXG4gICAgb3JpZ2luYWxMYW5ndWFnZU93bmVyLFxuICAgIHJlZixcbiAgICBsYW5ndWFnZUlkLFxuICAgIHJlc291cmNlSWQsXG4gICAgZGlzYWJsZVdvcmRQb3BvdmVyLFxuICAgIHJlc291cmNlTGluayxcbiAgfVxuXG4gIGlmICghcmVzb3VyY2VMaW5rKSB7XG4gICAgc2NyaXB0dXJlLnJlc291cmNlTGluayA9IGdldFJlc291cmNlTGluayh7XG4gICAgICBvd25lcixcbiAgICAgIHJlZixcbiAgICAgIGxhbmd1YWdlSWQsXG4gICAgICByZXNvdXJjZUlkLFxuICAgIH0pXG4gIH1cbiAgcmV0dXJuIHNjcmlwdHVyZVxufVxuXG4vKipcbiAqIHJldHVybiB2ZXJzZSBkYXRhIGdpdmVuIGEgc2NyaXB0dXJlIGNvbmZpZyBhbmQgdmVyc2UgbnVtYmVyXG4gKiBAcGFyYW0gc2NyaXB0dXJlQ29uZmlnXG4gKiBAcGFyYW0gdmVyc2VOdW1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFZlcnNlRGF0YUZyb21TY3JpcENvbmZpZyhzY3JpcHR1cmVDb25maWcsIHZlcnNlTnVtKSB7XG4gIHJldHVybiBzY3JpcHR1cmVDb25maWc/LnZlcnNlc0ZvclJlZj8uZmluZChcbiAgICB2ZXJzZVJlZiA9PiB2ZXJzZVJlZi52ZXJzZSA9PT0gdmVyc2VOdW1cbiAgKVxufVxuXG4vKipcbiAqIHJldHVybiB0cnVlIGlmIHJlc291cmNlIGlzIGFuIG9yaWdpbmFsIGxhbmd1YWdlIGJpYmxlXG4gKiBAcGFyYW0gcmVzb3VyY2VJZFxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNPcmlnaW5hbEJpYmxlKHJlc291cmNlSWQpIHtcbiAgY29uc3QgaXNPcmlnID0gKChyZXNvdXJjZUlkID09PSBOVF9PUklHX0xBTkdfQklCTEUpIHx8IChyZXNvdXJjZUlkID09PSBPVF9PUklHX0xBTkdfQklCTEUpIHx8IChyZXNvdXJjZUlkID09PSBPUklHSU5BTF9TT1VSQ0UpKVxuICByZXR1cm4gaXNPcmlnXG59XG5cbi8qKlxuICogbWFrZSBzdXJlIHNjcmlwdHVyZVNldHRpbmdzIGFyZSB1cCB0byBkYXRlIHdpdGggY3VycmVudCBvd25lciBhbmQgbGFuZ3VhZ2VcbiAqIEBwYXJhbSB7b2JqZWN0fSBzY3JpcHR1cmVTZXR0aW5nc1xuICogQHBhcmFtIHtzdHJpbmd9IGN1cnJlbnRPd25lciAtIG9wdGlvbmFsIG92ZXItcmlkZSBmb3IgdHJhbnNpZW50IGNhc2Ugd2hlcmUgb3duZXIgaW4gc2NyaXB0dXJlIHNldHRpbmdzIGhhdmUgbm90IHlldCB1cGRhdGVkXG4gKiBAcGFyYW0ge3N0cmluZ30gY3VycmVudExhbmd1YWdlSWQgLSBvcHRpb25hbCBvdmVyLXJpZGUgZm9yIHRyYW5zaWVudCBjYXNlIHdoZXJlIGxhbmd1YWdlIGluIHNjcmlwdHVyZSBzZXR0aW5ncyBoYXZlIG5vdCB5ZXQgdXBkYXRlZFxuICovXG5leHBvcnQgZnVuY3Rpb24gY2xlYW51cEFjY291bnRTZXR0aW5ncyhzY3JpcHR1cmVTZXR0aW5nczogYW55LCBjdXJyZW50T3duZXI6IGFueSwgY3VycmVudExhbmd1YWdlSWQ6IGFueSkge1xuICBpZiAoY3VycmVudE93bmVyICYmIChjdXJyZW50T3duZXIgIT09IHNjcmlwdHVyZVNldHRpbmdzLm93bmVyKSkgeyAvLyBpZiBvd25lciBjaGFuZ2VkLCB1cGRhdGUgc2NyaXB0dXJlU2V0dGluZ3NcbiAgICBzY3JpcHR1cmVTZXR0aW5ncy5vd25lciA9IGN1cnJlbnRPd25lclxuICB9XG5cbiAgaWYgKGN1cnJlbnRMYW5ndWFnZUlkICYmIChjdXJyZW50TGFuZ3VhZ2VJZCAhPT0gc2NyaXB0dXJlU2V0dGluZ3MubGFuZ3VhZ2VJZCkpIHsgLy8gaWYgbGFuZ3VhZ2UgY2hhbmdlZCwgdXBkYXRlIHNjcmlwdHVyZVNldHRpbmdzXG4gICAgc2NyaXB0dXJlU2V0dGluZ3MubGFuZ3VhZ2VJZCA9IGN1cnJlbnRMYW5ndWFnZUlkXG4gIH1cbn1cblxuLyoqXG4gKiBzZXBhcmF0ZSBVUkwgaW50byBzZXJ2ZXIgYW5kIHJlc291cmNlIGxpbmtcbiAqIEBwYXJhbSB7c3RyaW5nfSBvcmlnaW5hbFJlcG9VcmxcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNwbGl0VXJsKG9yaWdpbmFsUmVwb1VybCkge1xuICBpZiAob3JpZ2luYWxSZXBvVXJsKSB7XG4gICAgY29uc3QgdXJsID0gbmV3IFVSTChvcmlnaW5hbFJlcG9VcmwpXG4gICAgY29uc3Qgc2VydmVyID0gdXJsLm9yaWdpblxuICAgIGNvbnN0IHJlc291cmNlTGluayA9IHVybC5wYXRobmFtZSArICh1cmwuc2VhcmNoIHx8ICcnKVxuICAgIHJldHVybiB7IHNlcnZlciwgcmVzb3VyY2VMaW5rIH1cbiAgfVxuICByZXR1cm4ge31cbn1cblxuLyoqXG4gKiBnZXQgdGhlIHNjcmlwdHVyZSBzZXR0aW5ncyBuZWVkZWQgZm9yIGZldGNoIC0gZm9yIE9yaWdMYW5nLCBVTFQsIEdMVCB3aWxsIHJlcGxhY2Ugb3duZXIgYW5kIGxhbmd1YWdlSWQgd2l0aCBjb3JyZWN0IHZhbHVlc1xuICogQHBhcmFtIHtzdHJpbmd9IGJvb2tJZFxuICogQHBhcmFtIHtvYmplY3R9IHNjcmlwdHVyZVNldHRpbmdzX1xuICogQHBhcmFtIHtib29sZWFufSBpc05ld1Rlc3RhbWVudFxuICogQHBhcmFtIHtzdHJpbmd9IG9yaWdpbmFsUmVwb1VybCAtIG9wdGlvbmFsIHBhdGggdG8gcmVwbyBmb3Igb3JpZ2luYWwgbGFuZ3VhZ2VcbiAqIEBwYXJhbSB7c3RyaW5nfSBjdXJyZW50TGFuZ3VhZ2VJZCAtIG9wdGlvbmFsIG92ZXItcmlkZSBmb3IgdHJhbnNpZW50IGNhc2Ugd2hlcmUgbGFuZ3VhZ2UgaW4gc2NyaXB0dXJlIHNldHRpbmdzIGhhdmUgbm90IHlldCB1cGRhdGVkXG4gKiBAcGFyYW0ge3N0cmluZ30gY3VycmVudE93bmVyIC0gb3B0aW9uYWwgb3Zlci1yaWRlIGZvciB0cmFuc2llbnQgY2FzZSB3aGVyZSBvd25lciBpbiBzY3JpcHR1cmUgc2V0dGluZ3MgaGF2ZSBub3QgeWV0IHVwZGF0ZWRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFNjcmlwdHVyZVJlc291cmNlU2V0dGluZ3MoXG4gIGJvb2tJZCwgc2NyaXB0dXJlU2V0dGluZ3NfLCBpc05ld1Rlc3RhbWVudCxcbiAgb3JpZ2luYWxSZXBvVXJsPW51bGwsXG4gIGN1cnJlbnRMYW5ndWFnZUlkPW51bGwsXG4gIGN1cnJlbnRPd25lcj1udWxsLFxuKSB7XG4gIGNvbnN0IHNjcmlwdHVyZVNldHRpbmdzID0geyAuLi5zY3JpcHR1cmVTZXR0aW5nc18gfVxuICBzY3JpcHR1cmVTZXR0aW5ncy5kaXNhYmxlV29yZFBvcG92ZXIgPSBESVNBQkxFX1dPUkRfUE9QT1ZFUlxuICBjb25zdCByZXNvdXJjZUlkID0gc2NyaXB0dXJlU2V0dGluZ3NfLnJlc291cmNlSWRcblxuICBpZiAocmVzb3VyY2VJZCA9PT0gT1JJR0lOQUxfU09VUkNFKSB7XG4gICAgLy8gc2VsZWN0IG9yaWdpbmFsIGxhbmd1YWdlIEJpYmxlIGJhc2VkIG9uIHdoaWNoIHRlc3RhbWVudCB0aGUgYm9vayBiZWxvbmdzXG4gICAgc2NyaXB0dXJlU2V0dGluZ3MubGFuZ3VhZ2VJZCA9IGlzTmV3VGVzdGFtZW50ID8gTlRfT1JJR19MQU5HIDogT1RfT1JJR19MQU5HXG4gICAgc2NyaXB0dXJlU2V0dGluZ3MucmVzb3VyY2VJZCA9IGlzTmV3VGVzdGFtZW50XG4gICAgICA/IE5UX09SSUdfTEFOR19CSUJMRVxuICAgICAgOiBPVF9PUklHX0xBTkdfQklCTEVcblxuICAgIGlmIChzY3JpcHR1cmVTZXR0aW5ncy5vcmlnaW5hbExhbmd1YWdlT3duZXIpIHtcbiAgICAgIHNjcmlwdHVyZVNldHRpbmdzLm93bmVyID0gc2NyaXB0dXJlU2V0dGluZ3Mub3JpZ2luYWxMYW5ndWFnZU93bmVyXG4gICAgfVxuXG4gICAgaWYgKG9yaWdpbmFsUmVwb1VybCkgeyAvLyB1c2UgdGhpcyB1cmwgaWYgZGVmaW5lZFxuICAgICAgY29uc3QgeyBzZXJ2ZXIsIHJlc291cmNlTGluayB9ID0gc3BsaXRVcmwob3JpZ2luYWxSZXBvVXJsKVxuICAgICAgc2NyaXB0dXJlU2V0dGluZ3Muc2VydmVyID0gc2VydmVyXG4gICAgICBzY3JpcHR1cmVTZXR0aW5ncy5yZXNvdXJjZUxpbmsgPSByZXNvdXJjZUxpbmtcbiAgICB9IGVsc2UgeyAvLyBmYWxsIGJhY2sgdG8gYXBwIGRlZmF1bHRzXG4gICAgICBzY3JpcHR1cmVTZXR0aW5ncy5yZXNvdXJjZUxpbmsgPSBnZXRSZXNvdXJjZUxpbmsoc2NyaXB0dXJlU2V0dGluZ3MpXG4gICAgfVxuICAgIHNjcmlwdHVyZVNldHRpbmdzLmRpc2FibGVXb3JkUG9wb3ZlciA9IGZhbHNlXG4gIH0gZWxzZSBpZiAocmVzb3VyY2VJZCA9PT0gVEFSR0VUX0xJVEVSQUwpIHtcbiAgICBjbGVhbnVwQWNjb3VudFNldHRpbmdzKHNjcmlwdHVyZVNldHRpbmdzLCBjdXJyZW50T3duZXIsIGN1cnJlbnRMYW5ndWFnZUlkKVxuICAgIHNjcmlwdHVyZVNldHRpbmdzLnJlc291cmNlSWQgPSBzY3JpcHR1cmVTZXR0aW5ncy5sYW5ndWFnZUlkID09PSAnZW4nID8gJ3VsdCcgOiAnZ2x0J1xuICAgIHNjcmlwdHVyZVNldHRpbmdzLnJlc291cmNlTGluayA9IGdldFJlc291cmNlTGluayhzY3JpcHR1cmVTZXR0aW5ncylcbiAgfSBlbHNlIGlmIChyZXNvdXJjZUlkID09PSBUQVJHRVRfU0lNUExJRklFRCkge1xuICAgIGNsZWFudXBBY2NvdW50U2V0dGluZ3Moc2NyaXB0dXJlU2V0dGluZ3MsIGN1cnJlbnRPd25lciwgY3VycmVudExhbmd1YWdlSWQpXG4gICAgc2NyaXB0dXJlU2V0dGluZ3MucmVzb3VyY2VJZCA9IHNjcmlwdHVyZVNldHRpbmdzLmxhbmd1YWdlSWQgPT09ICdlbicgPyAndXN0JyA6ICdnc3QnXG4gICAgc2NyaXB0dXJlU2V0dGluZ3MucmVzb3VyY2VMaW5rID0gZ2V0UmVzb3VyY2VMaW5rKHNjcmlwdHVyZVNldHRpbmdzKVxuICB9XG4gIHJldHVybiBzY3JpcHR1cmVTZXR0aW5nc1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0U2NyaXB0dXJlVmVyc2lvblNldHRpbmdzKHtcbiAgbGFiZWwsXG4gIHJlc291cmNlTGluayxcbiAgc2V0U2NyaXB0dXJlLFxuICBzY3JpcHR1cmVWZXJzaW9uSGlzdCxcbn0pIHtcbiAgY29uc3QgaGlzdG9yeSA9IHNjcmlwdHVyZVZlcnNpb25IaXN0LmdldExhdGVzdCgpXG4gIGxldCBpbmRleCA9IHNjcmlwdHVyZVZlcnNpb25IaXN0LmZpbmRJdGVtSW5kZXhCeUtleShoaXN0b3J5LCAncmVzb3VyY2VMaW5rJywgcmVzb3VyY2VMaW5rKVxuXG4gIGNvbnN0IHNjcmlwdHVyZVNlbGVjdG9yQ29uZmlnID0ge1xuICAgIGxhYmVsLCAvLyBsYWJlbCBmb3IgY29tYm9ib3hcbiAgICBvcHRpb25zOiBoaXN0b3J5LFxuICAgIGN1cnJlbnQ6IGluZGV4LFxuICAgIGFsbG93VXNlcklucHV0OiB0cnVlLFxuICAgIG9uQ2hhbmdlOiAodGl0bGUsIGluZGV4LCB2YWxpZGF0aW9uQ0I9bnVsbCkgPT4ge1xuICAgICAgbGV0IGl0ZW1cblxuICAgICAgaWYgKChpbmRleCA8IDApICYmIHRpdGxlKSB7XG4gICAgICAgIGNvbnN0IG5ld0l0ZW0gPSB7XG4gICAgICAgICAgdXJsOiB0aXRsZSxcbiAgICAgICAgICB0aXRsZSxcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBpbmRleCA9IHNjcmlwdHVyZVZlcnNpb25IaXN0LmFkZEl0ZW1Ub0hpc3RvcnkobmV3SXRlbSlcblxuICAgICAgICBpZiAoaW5kZXggPj0gMCkge1xuICAgICAgICAgIGl0ZW0gPSBzY3JpcHR1cmVWZXJzaW9uSGlzdC5nZXRMYXRlc3QoKVtpbmRleF1cbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaXRlbSA9IHNjcmlwdHVyZVZlcnNpb25IaXN0LmdldEl0ZW1CeVRpdGxlKHRpdGxlKVxuICAgICAgfVxuXG4gICAgICBpZiAoaXRlbSkge1xuICAgICAgICBzZXRTY3JpcHR1cmUoaXRlbSwgdmFsaWRhdGlvbkNCKVxuICAgICAgfVxuICAgIH0sXG4gICAgZGVsZXRlSXRlbTogdGl0bGUgPT4ge1xuICAgICAgY29uc3QgaGlzdG9yeSA9IHNjcmlwdHVyZVZlcnNpb25IaXN0LmdldExhdGVzdCgpXG4gICAgICBjb25zdCBkZWxldGVJbmRleCA9IHNjcmlwdHVyZVZlcnNpb25IaXN0LmZpbmRJdGVtSW5kZXhCeUtleShoaXN0b3J5LCAndGl0bGUnLCB0aXRsZSlcbiAgICAgIHNjcmlwdHVyZVZlcnNpb25IaXN0LnJlbW92ZUl0ZW1CeUluZGV4KGRlbGV0ZUluZGV4KVxuICAgIH0sXG4gIH1cblxuICByZXR1cm4gc2NyaXB0dXJlU2VsZWN0b3JDb25maWdcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFJlcG9VcmwocmVzb3VyY2VMaW5rOiBzdHJpbmcsIHNlcnZlcjogc3RyaW5nLCBpc05UOiBib29sZWFuKTogc3RyaW5nIHtcbiAgbGV0IHJlcG9VcmxcblxuICB0cnkge1xuICAgIGxldCBbb3duZXIsIGxhbmd1YWdlSWQsIHJlc291cmNlSWRdID0gcmVzb3VyY2VMaW5rLnNwbGl0KCcvJylcblxuICAgIHN3aXRjaCAocmVzb3VyY2VJZCkge1xuICAgIGNhc2UgT1JJR0lOQUxfU09VUkNFOlxuICAgICAgbGFuZ3VhZ2VJZCA9IGlzTlQgPyBOVF9PUklHX0xBTkcgOiBPVF9PUklHX0xBTkdcbiAgICAgIHJlc291cmNlSWQgPSBpc05UXG4gICAgICAgID8gTlRfT1JJR19MQU5HX0JJQkxFXG4gICAgICAgIDogT1RfT1JJR19MQU5HX0JJQkxFXG4gICAgICBicmVha1xuXG4gICAgY2FzZSBUQVJHRVRfTElURVJBTDpcbiAgICAgIHJlc291cmNlSWQgPSAobGFuZ3VhZ2VJZCA9PT0gJ2VuJykgPyAndWx0JyA6ICdnbHQnXG4gICAgICBicmVha1xuXG4gICAgY2FzZSBUQVJHRVRfU0lNUExJRklFRDpcbiAgICAgIHJlc291cmNlSWQgPSAobGFuZ3VhZ2VJZCA9PT0gJ2VuJykgPyAndXN0JyA6ICdnc3QnXG4gICAgICBicmVha1xuICAgIH1cbiAgICByZXBvVXJsID0gYCR7b3duZXJ9LyR7bGFuZ3VhZ2VJZH1fJHtyZXNvdXJjZUlkfWBcbiAgfSBjYXRjaCAoZSkge1xuICAgIC8vIHJlc291cmNlTGluayB3YXMgaW52YWxpZFxuICB9XG5cbiAgLy8gQHRzLWlnbm9yZVxuICByZXR1cm4gYCR7c2VydmVyIHx8ICcnfS8ke3JlcG9Vcmx9YFxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RXJyb3JNZXNzYWdlRm9yUmVzb3VyY2VMaW5rKFxuICByZXNvdXJjZUxpbms6IHN0cmluZyxcbiAgc2VydmVyOiBzdHJpbmcsXG4gIGVycm9yQ29kZTogc3RyaW5nLFxuICBpc05UOiBib29sZWFuKTogc3RyaW5nXG57XG4gIGNvbnN0IHJlcG9VcmwgPSBnZXRSZXBvVXJsKHJlc291cmNlTGluaywgc2VydmVyLCBpc05UKVxuICBjb25zdCBlcnJvck1zZyA9IGVycm9yQ29kZSArIHJlcG9VcmxcbiAgcmV0dXJuIGVycm9yTXNnXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZURjc1VybCh1cmwpIHtcbiAgbGV0IHZhbGlkUmVwb1BhdGggPSBmYWxzZVxuICBsZXQgdmFsaWRVcmwgPSBmYWxzZVxuXG4gIHRyeSB7XG4gICAgY29uc3QgcGFydHMgPSB1cmwuc3BsaXQoJy8nKVxuICAgIGNvbnN0IFtwcm90b2NvbCwgLCBob3N0LCB1c2VyLCByZXBvXSA9IHBhcnRzXG4gICAgdmFsaWRVcmwgPSAocHJvdG9jb2wgPT09ICdodHRwczonKVxuICAgIGNvbnN0IGhvc3RQYXJ0cyA9IGhvc3QgPyBob3N0LnNwbGl0KCcuJykgOiBbXVxuXG4gICAgaWYgKGhvc3RQYXJ0cy5sZW5ndGggPj0gMikge1xuICAgICAgZm9yIChsZXQgcGFydCBvZiBob3N0UGFydHMpIHtcbiAgICAgICAgaWYgKCFwYXJ0KSB7XG4gICAgICAgICAgdmFsaWRVcmwgPSBmYWxzZVxuICAgICAgICAgIGJyZWFrXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdmFsaWRVcmwgPSBmYWxzZVxuICAgIH1cblxuICAgIGlmICggcHJvdG9jb2wgJiYgaG9zdCAmJiB1c2VyICYmIHJlcG8gKSB7XG4gICAgICBjb25zdCBbbGFuZ3VhZ2VJZCwgcHJvamVjdElkXSA9IHJlcG8uc3BsaXQoJ18nKVxuICAgICAgdmFsaWRSZXBvUGF0aCA9IGxhbmd1YWdlSWQgJiYgcHJvamVjdElkXG4gICAgfVxuICB9IGNhdGNoIHtcbiAgICBjb25zb2xlLmxvZygnSW52YWxpZCBEQ1MgVVJMOiAnICsgdXJsKVxuICB9XG4gIHJldHVybiB7IHZhbGlkVXJsLCB2YWxpZFJlcG9QYXRoIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFJlc291cmNlRXJyb3JNZXNzYWdlKHJlc291cmNlU3RhdHVzOiBvYmplY3QpIHtcbiAgbGV0IG1lc3NhZ2UgPSAnJ1xuXG4gIGlmIChyZXNvdXJjZVN0YXR1c1tNQU5JRkVTVF9OT1RfTE9BREVEX0VSUk9SXSkge1xuICAgIG1lc3NhZ2UgPSBNQU5JRkVTVF9OT1RfRk9VTkRfRVJST1JfTVNHXG4gIH0gZWxzZSBpZiAocmVzb3VyY2VTdGF0dXNbSU5WQUxJRF9NQU5JRkVTVF9FUlJPUl0pIHtcbiAgICBtZXNzYWdlID0gTUFOSUZFU1RfSU5WQUxJRF9FUlJPUl9NU0dcbiAgfSBlbHNlIGlmIChyZXNvdXJjZVN0YXR1c1tDT05URU5UX05PVF9GT1VORF9FUlJPUl0pIHtcbiAgICBtZXNzYWdlID0gQk9PS19OT1RfRk9VTkRfRVJST1JfTVNHXG4gIH0gZWxzZSBpZiAocmVzb3VyY2VTdGF0dXNbU0NSSVBUVVJFX05PVF9MT0FERURfRVJST1JdKSB7XG4gICAgbWVzc2FnZSA9IFNDUklQVFVSRV9OT1RfRk9VTkRfRVJST1JfTVNHXG4gIH1cbiAgcmV0dXJuIG1lc3NhZ2Vcbn1cblxuLyoqXG4gKiBkZWNvZGUgcmVzb3VyY2Ugc3RhdHVzIGludG8gc3RyaW5nLiAgQ3VycmVudGx5IG9ubHkgRW5nbGlzaFxuICogQHBhcmFtIHJlc291cmNlU3RhdHVzIC0gb2JqZWN0IHRoYXQgY29udGFpbnMgc3RhdGUgYW5kIGVycm9ycyB0aGF0IGFyZSBkZXRlY3RlZFxuICogQHBhcmFtIHNlcnZlciAtIGNvbnRhaW5zIHRoZSBzZXJ2ZXIgYmVpbmcgdXNlZFxuICogQHBhcmFtIHJlc291cmNlTGluayAtIHBhdGggdG8gcmVwbyBvbiBzZXJ2ZXJcbiAqIEBwYXJhbSBpc05UIC0gdHJ1ZSBpZiBOVCBib29rXG4gKiBAcmV0dXJuIGVtcHR5IHN0cmluZyBpZiBubyBlcnJvciwgZWxzZSByZXR1cm5zIHVzZXIgZXJyb3IgbWVzc2FnZVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0UmVzb3VyY2VNZXNzYWdlKHJlc291cmNlU3RhdHVzOiBvYmplY3QsIHNlcnZlcjogc3RyaW5nLCByZXNvdXJjZUxpbms6IHN0cmluZywgaXNOVDogYm9vbGVhbikge1xuICBsZXQgbWVzc2FnZSA9ICcnXG5cbiAgaWYgKHJlc291cmNlU3RhdHVzW0xPQURJTkdfU1RBVEVdKSB7XG4gICAgbWVzc2FnZSA9IExPQURJTkdfUkVTT1VSQ0VcbiAgfSBlbHNlIHtcbiAgICBtZXNzYWdlID0gZ2V0UmVzb3VyY2VFcnJvck1lc3NhZ2UocmVzb3VyY2VTdGF0dXMpXG5cbiAgICBpZiAobWVzc2FnZSkge1xuICAgICAgbWVzc2FnZSA9IGdldEVycm9yTWVzc2FnZUZvclJlc291cmNlTGluayhyZXNvdXJjZUxpbmssIHNlcnZlciwgbWVzc2FnZSwgaXNOVClcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG1lc3NhZ2Vcbn1cblxuLyoqXG4gKiBnZW5lcmF0ZSByZXNvdXJjZSBzdHJpbmdcbiAqIEBwYXJhbSBvd25lclxuICogQHBhcmFtIGxhbmd1YWdlSWRcbiAqIEBwYXJhbSBwcm9qZWN0SWRcbiAqIEBwYXJhbSByZWZcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFJlc291cmNlTGlua1NwZWNpZmljKG93bmVyOiBzdHJpbmcsIGxhbmd1YWdlSWQ6IHN0cmluZywgcHJvamVjdElkOiBzdHJpbmcsIHJlZjogc3RyaW5nKSB7XG4gIHJldHVybiBgYXBpL3YxL3JlcG9zLyR7b3duZXJ9LyR7bGFuZ3VhZ2VJZH1fJHtwcm9qZWN0SWR9L2NvbnRlbnRzP3JlZj0ke3JlZn1gXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmaXhPY2N1cnJlbmNlKG9jY3VycmVuY2UpIHtcbiAgaWYgKHR5cGVvZiBvY2N1cnJlbmNlID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBwYXJzZUludChvY2N1cnJlbmNlKVxuICB9XG4gIHJldHVybiBvY2N1cnJlbmNlXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjbGVhbnVwVmVyc2VPYmplY3RzKHZlcnNlT2JqZWN0cykge1xuICBpZiAodmVyc2VPYmplY3RzPy5sZW5ndGgpIHtcbiAgICBjb25zdCB2ZXJzZU9iamVjdHNfID0gWy4uLnZlcnNlT2JqZWN0c11cblxuICAgIGZvciAobGV0IGkgPSAwLCBsID0gdmVyc2VPYmplY3RzXy5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICAgIGNvbnN0IHZvID0gdmVyc2VPYmplY3RzX1tpXVxuXG4gICAgICBpZiAodm8udHlwZSA9PT0gJ3dvcmQnKSB7XG4gICAgICAgIGNvbnN0IHdvcmQgPSB7IC4uLnZvIH1cblxuICAgICAgICBpZiAodm8ub2NjdXJyZW5jZSkge1xuICAgICAgICAgIHdvcmQub2NjdXJyZW5jZSA9IGZpeE9jY3VycmVuY2Uodm8ub2NjdXJyZW5jZSlcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh2by5vY2N1cnJlbmNlcykge1xuICAgICAgICAgIHdvcmQub2NjdXJyZW5jZXMgPSBmaXhPY2N1cnJlbmNlKHZvLm9jY3VycmVuY2VzKVxuICAgICAgICB9XG4gICAgICAgIHZlcnNlT2JqZWN0c19baV0gPSB3b3JkXG4gICAgICB9IGVsc2UgaWYgKHZvLmNoaWxkcmVuKSB7XG4gICAgICAgIGNvbnN0IGNoaWxkcmVuID0gY2xlYW51cFZlcnNlT2JqZWN0cyh2by5jaGlsZHJlbilcbiAgICAgICAgY29uc3QgbmV3Vm8gPSB7XG4gICAgICAgICAgLi4udm8sXG4gICAgICAgICAgY2hpbGRyZW4sXG4gICAgICAgIH1cbiAgICAgICAgdmVyc2VPYmplY3RzX1tpXSA9IG5ld1ZvXG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB2ZXJzZU9iamVjdHNfXG4gIH1cbiAgcmV0dXJuIFtdXG59XG4iXX0=
424
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9TY3JpcHR1cmVTZXR0aW5ncy50cyJdLCJuYW1lcyI6WyJDT05URU5UX05PVF9GT1VORF9FUlJPUiIsIklOVkFMSURfTUFOSUZFU1RfRVJST1IiLCJMT0FESU5HX1NUQVRFIiwiTUFOSUZFU1RfTk9UX0xPQURFRF9FUlJPUiIsIlNDUklQVFVSRV9OT1RfTE9BREVEX0VSUk9SIiwiQk9PS19OT1RfRk9VTkRfRVJST1JfTVNHIiwiTE9BRElOR19SRVNPVVJDRSIsIk1BTklGRVNUX0lOVkFMSURfRVJST1JfTVNHIiwiTUFOSUZFU1RfTk9UX0ZPVU5EX0VSUk9SX01TRyIsIk5UX09SSUdfTEFORyIsIk5UX09SSUdfTEFOR19CSUJMRSIsIk9SSUdJTkFMX1NPVVJDRSIsIk9UX09SSUdfTEFORyIsIk9UX09SSUdfTEFOR19CSUJMRSIsIlNDUklQVFVSRV9OT1RfRk9VTkRfRVJST1JfTVNHIiwiVEFSR0VUX0xJVEVSQUwiLCJUQVJHRVRfU0lNUExJRklFRCIsIkRJU0FCTEVfV09SRF9QT1BPVkVSIiwiZ2V0UmVzb3VyY2VMaW5rIiwic2NyaXB0dXJlIiwicmVmIiwiYnJhbmNoIiwib3duZXIiLCJsYW5ndWFnZUlkIiwicmVzb3VyY2VJZCIsImdldFNjcmlwdHVyZU9iamVjdCIsInRpdGxlIiwic2VydmVyIiwicmVzb3VyY2VMaW5rIiwiZGlzYWJsZVdvcmRQb3BvdmVyIiwib3JpZ2luYWxMYW5ndWFnZU93bmVyIiwiZ2V0VmVyc2VEYXRhRnJvbVNjcmlwQ29uZmlnIiwic2NyaXB0dXJlQ29uZmlnIiwidmVyc2VOdW0iLCJ2ZXJzZXNGb3JSZWYiLCJmaW5kIiwidmVyc2VSZWYiLCJ2ZXJzZSIsImlzT3JpZ2luYWxCaWJsZSIsImlzT3JpZyIsImNsZWFudXBBY2NvdW50U2V0dGluZ3MiLCJzY3JpcHR1cmVTZXR0aW5ncyIsImN1cnJlbnRPd25lciIsImN1cnJlbnRMYW5ndWFnZUlkIiwic3BsaXRVcmwiLCJvcmlnaW5hbFJlcG9VcmwiLCJ1cmwiLCJVUkwiLCJvcmlnaW4iLCJwYXRobmFtZSIsInNlYXJjaCIsImdldFNjcmlwdHVyZVJlc291cmNlU2V0dGluZ3MiLCJib29rSWQiLCJzY3JpcHR1cmVTZXR0aW5nc18iLCJpc05ld1Rlc3RhbWVudCIsImdldFNjcmlwdHVyZVZlcnNpb25TZXR0aW5ncyIsImxhYmVsIiwic2V0U2NyaXB0dXJlIiwic2NyaXB0dXJlVmVyc2lvbkhpc3QiLCJoaXN0b3J5IiwiZ2V0TGF0ZXN0IiwiaW5kZXgiLCJmaW5kSXRlbUluZGV4QnlLZXkiLCJzY3JpcHR1cmVTZWxlY3RvckNvbmZpZyIsIm9wdGlvbnMiLCJjdXJyZW50IiwiYWxsb3dVc2VySW5wdXQiLCJvbkNoYW5nZSIsInZhbGlkYXRpb25DQiIsIml0ZW0iLCJuZXdJdGVtIiwiYWRkSXRlbVRvSGlzdG9yeSIsImdldEl0ZW1CeVRpdGxlIiwiZGVsZXRlSXRlbSIsImRlbGV0ZUluZGV4IiwicmVtb3ZlSXRlbUJ5SW5kZXgiLCJnZXRSZXBvVXJsIiwiaXNOVCIsInJlcG9VcmwiLCJzcGxpdCIsImUiLCJnZXRFcnJvck1lc3NhZ2VGb3JSZXNvdXJjZUxpbmsiLCJlcnJvckNvZGUiLCJlcnJvck1zZyIsInZhbGlkYXRlRGNzVXJsIiwidmFsaWRSZXBvUGF0aCIsInZhbGlkVXJsIiwicGFydHMiLCJwcm90b2NvbCIsImhvc3QiLCJ1c2VyIiwicmVwbyIsImhvc3RQYXJ0cyIsImxlbmd0aCIsInBhcnQiLCJwcm9qZWN0SWQiLCJjb25zb2xlIiwibG9nIiwiZ2V0UmVzb3VyY2VFcnJvck1lc3NhZ2UiLCJyZXNvdXJjZVN0YXR1cyIsIm1lc3NhZ2UiLCJnZXRSZXNvdXJjZU1lc3NhZ2UiLCJnZXRSZXNvdXJjZUxpbmtTcGVjaWZpYyIsImZpeE9jY3VycmVuY2UiLCJvY2N1cnJlbmNlIiwicGFyc2VJbnQiLCJjbGVhbnVwVmVyc2VPYmplY3RzIiwidmVyc2VPYmplY3RzIiwidmVyc2VPYmplY3RzXyIsImkiLCJsIiwidm8iLCJ0eXBlIiwib2NjdXJyZW5jZXMiLCJ3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aUI7QUFDdEIsWUFBTUEsUUFBUSxHQUFHVCxtQkFBbUIsQ0FBQ0ssRUFBRSxDQUFDSSxRQUFKLENBQXBDOztBQUNBLFlBQU1DLEtBQUssbUNBQ05MLEVBRE07QUFFVEksVUFBQUEsUUFBUSxFQUFSQTtBQUZTLFVBQVg7O0FBSUFQLFFBQUFBLGFBQWEsQ0FBQ0MsQ0FBRCxDQUFiLEdBQW1CTyxLQUFuQjtBQUNEO0FBQ0Y7O0FBQ0QsV0FBT1IsYUFBUDtBQUNEOztBQUNELFNBQU8sRUFBUDtBQUNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ09OVEVOVF9OT1RfRk9VTkRfRVJST1IsXG4gIElOVkFMSURfTUFOSUZFU1RfRVJST1IsXG4gIExPQURJTkdfU1RBVEUsXG4gIE1BTklGRVNUX05PVF9MT0FERURfRVJST1IsXG4gIFNDUklQVFVSRV9OT1RfTE9BREVEX0VSUk9SLFxufSBmcm9tICd0cmFuc2xhdGlvbi1oZWxwcy1yY2wnXG5pbXBvcnQge1xuICBCT09LX05PVF9GT1VORF9FUlJPUl9NU0csXG4gIExPQURJTkdfUkVTT1VSQ0UsXG4gIE1BTklGRVNUX0lOVkFMSURfRVJST1JfTVNHLFxuICBNQU5JRkVTVF9OT1RfRk9VTkRfRVJST1JfTVNHLFxuICBOVF9PUklHX0xBTkcsXG4gIE5UX09SSUdfTEFOR19CSUJMRSxcbiAgT1JJR0lOQUxfU09VUkNFLFxuICBPVF9PUklHX0xBTkcsXG4gIE9UX09SSUdfTEFOR19CSUJMRSxcbiAgU0NSSVBUVVJFX05PVF9GT1VORF9FUlJPUl9NU0csXG4gIFRBUkdFVF9MSVRFUkFMLFxuICBUQVJHRVRfU0lNUExJRklFRCxcbn0gZnJvbSAnLi9jb21tb24nXG5cbmV4cG9ydCBjb25zdCBESVNBQkxFX1dPUkRfUE9QT1ZFUiA9IHRydWUgLy8gZGlzYWJsZSB3b3JkIHBvcG92ZXIgZm9yIGV2ZXJ5IHNjcmlwdHVyZSBwYW5lIGJ1dCBvcmlnaW5hbCBsYW5ndWFnZXNcblxuZXhwb3J0IGZ1bmN0aW9uIGdldFJlc291cmNlTGluayhzY3JpcHR1cmUpIHtcbiAgY29uc3QgcmVmID0gc2NyaXB0dXJlLnJlZiB8fCBzY3JpcHR1cmUuYnJhbmNoXG4gIHJldHVybiBgJHtzY3JpcHR1cmUub3duZXJ9LyR7c2NyaXB0dXJlLmxhbmd1YWdlSWR9LyR7c2NyaXB0dXJlLnJlc291cmNlSWR9LyR7cmVmfWBcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFNjcmlwdHVyZU9iamVjdCh7XG4gIHRpdGxlLFxuICBzZXJ2ZXIsXG4gIG93bmVyLFxuICByZWYsXG4gIGxhbmd1YWdlSWQsXG4gIHJlc291cmNlSWQsXG4gIHJlc291cmNlTGluayxcbiAgZGlzYWJsZVdvcmRQb3BvdmVyLFxuICBvcmlnaW5hbExhbmd1YWdlT3duZXIsXG59KSB7XG4gIGNvbnN0IHNjcmlwdHVyZSA9IHtcbiAgICB0aXRsZSxcbiAgICBzZXJ2ZXIsXG4gICAgb3duZXIsXG4gICAgb3JpZ2luYWxMYW5ndWFnZU93bmVyLFxuICAgIHJlZixcbiAgICBsYW5ndWFnZUlkLFxuICAgIHJlc291cmNlSWQsXG4gICAgZGlzYWJsZVdvcmRQb3BvdmVyLFxuICAgIHJlc291cmNlTGluayxcbiAgfVxuXG4gIGlmICghcmVzb3VyY2VMaW5rKSB7XG4gICAgc2NyaXB0dXJlLnJlc291cmNlTGluayA9IGdldFJlc291cmNlTGluayh7XG4gICAgICBvd25lcixcbiAgICAgIHJlZixcbiAgICAgIGxhbmd1YWdlSWQsXG4gICAgICByZXNvdXJjZUlkLFxuICAgIH0pXG4gIH1cbiAgcmV0dXJuIHNjcmlwdHVyZVxufVxuXG4vKipcbiAqIHJldHVybiB2ZXJzZSBkYXRhIGdpdmVuIGEgc2NyaXB0dXJlIGNvbmZpZyBhbmQgdmVyc2UgbnVtYmVyXG4gKiBAcGFyYW0gc2NyaXB0dXJlQ29uZmlnXG4gKiBAcGFyYW0gdmVyc2VOdW1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFZlcnNlRGF0YUZyb21TY3JpcENvbmZpZyhzY3JpcHR1cmVDb25maWcsIHZlcnNlTnVtKSB7XG4gIHJldHVybiBzY3JpcHR1cmVDb25maWc/LnZlcnNlc0ZvclJlZj8uZmluZChcbiAgICB2ZXJzZVJlZiA9PiB2ZXJzZVJlZi52ZXJzZSA9PT0gdmVyc2VOdW1cbiAgKVxufVxuXG4vKipcbiAqIHJldHVybiB0cnVlIGlmIHJlc291cmNlIGlzIGFuIG9yaWdpbmFsIGxhbmd1YWdlIGJpYmxlXG4gKiBAcGFyYW0gcmVzb3VyY2VJZFxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNPcmlnaW5hbEJpYmxlKHJlc291cmNlSWQpIHtcbiAgY29uc3QgaXNPcmlnID0gKChyZXNvdXJjZUlkID09PSBOVF9PUklHX0xBTkdfQklCTEUpIHx8IChyZXNvdXJjZUlkID09PSBPVF9PUklHX0xBTkdfQklCTEUpIHx8IChyZXNvdXJjZUlkID09PSBPUklHSU5BTF9TT1VSQ0UpKVxuICByZXR1cm4gaXNPcmlnXG59XG5cbi8qKlxuICogbWFrZSBzdXJlIHNjcmlwdHVyZVNldHRpbmdzIGFyZSB1cCB0byBkYXRlIHdpdGggY3VycmVudCBvd25lciBhbmQgbGFuZ3VhZ2VcbiAqIEBwYXJhbSB7b2JqZWN0fSBzY3JpcHR1cmVTZXR0aW5nc1xuICogQHBhcmFtIHtzdHJpbmd9IGN1cnJlbnRPd25lciAtIG9wdGlvbmFsIG92ZXItcmlkZSBmb3IgdHJhbnNpZW50IGNhc2Ugd2hlcmUgb3duZXIgaW4gc2NyaXB0dXJlIHNldHRpbmdzIGhhdmUgbm90IHlldCB1cGRhdGVkXG4gKiBAcGFyYW0ge3N0cmluZ30gY3VycmVudExhbmd1YWdlSWQgLSBvcHRpb25hbCBvdmVyLXJpZGUgZm9yIHRyYW5zaWVudCBjYXNlIHdoZXJlIGxhbmd1YWdlIGluIHNjcmlwdHVyZSBzZXR0aW5ncyBoYXZlIG5vdCB5ZXQgdXBkYXRlZFxuICovXG5leHBvcnQgZnVuY3Rpb24gY2xlYW51cEFjY291bnRTZXR0aW5ncyhzY3JpcHR1cmVTZXR0aW5nczogYW55LCBjdXJyZW50T3duZXI6IGFueSwgY3VycmVudExhbmd1YWdlSWQ6IGFueSkge1xuICBpZiAoY3VycmVudE93bmVyICYmIChjdXJyZW50T3duZXIgIT09IHNjcmlwdHVyZVNldHRpbmdzLm93bmVyKSkgeyAvLyBpZiBvd25lciBjaGFuZ2VkLCB1cGRhdGUgc2NyaXB0dXJlU2V0dGluZ3NcbiAgICBzY3JpcHR1cmVTZXR0aW5ncy5vd25lciA9IGN1cnJlbnRPd25lclxuICB9XG5cbiAgaWYgKGN1cnJlbnRMYW5ndWFnZUlkICYmIChjdXJyZW50TGFuZ3VhZ2VJZCAhPT0gc2NyaXB0dXJlU2V0dGluZ3MubGFuZ3VhZ2VJZCkpIHsgLy8gaWYgbGFuZ3VhZ2UgY2hhbmdlZCwgdXBkYXRlIHNjcmlwdHVyZVNldHRpbmdzXG4gICAgc2NyaXB0dXJlU2V0dGluZ3MubGFuZ3VhZ2VJZCA9IGN1cnJlbnRMYW5ndWFnZUlkXG4gIH1cbn1cblxuLyoqXG4gKiBzZXBhcmF0ZSBVUkwgaW50byBzZXJ2ZXIgYW5kIHJlc291cmNlIGxpbmtcbiAqIEBwYXJhbSB7c3RyaW5nfSBvcmlnaW5hbFJlcG9VcmxcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNwbGl0VXJsKG9yaWdpbmFsUmVwb1VybCkge1xuICBpZiAob3JpZ2luYWxSZXBvVXJsKSB7XG4gICAgY29uc3QgdXJsID0gbmV3IFVSTChvcmlnaW5hbFJlcG9VcmwpXG4gICAgY29uc3Qgc2VydmVyID0gdXJsLm9yaWdpblxuICAgIGNvbnN0IHJlc291cmNlTGluayA9IHVybC5wYXRobmFtZSArICh1cmwuc2VhcmNoIHx8ICcnKVxuICAgIHJldHVybiB7IHNlcnZlciwgcmVzb3VyY2VMaW5rIH1cbiAgfVxuICByZXR1cm4ge31cbn1cblxuLyoqXG4gKiBnZXQgdGhlIHNjcmlwdHVyZSBzZXR0aW5ncyBuZWVkZWQgZm9yIGZldGNoIC0gZm9yIE9yaWdMYW5nLCBVTFQsIEdMVCB3aWxsIHJlcGxhY2Ugb3duZXIgYW5kIGxhbmd1YWdlSWQgd2l0aCBjb3JyZWN0IHZhbHVlc1xuICogQHBhcmFtIHtzdHJpbmd9IGJvb2tJZFxuICogQHBhcmFtIHtvYmplY3R9IHNjcmlwdHVyZVNldHRpbmdzX1xuICogQHBhcmFtIHtib29sZWFufSBpc05ld1Rlc3RhbWVudFxuICogQHBhcmFtIHtzdHJpbmd9IG9yaWdpbmFsUmVwb1VybCAtIG9wdGlvbmFsIHBhdGggdG8gcmVwbyBmb3Igb3JpZ2luYWwgbGFuZ3VhZ2VcbiAqIEBwYXJhbSB7c3RyaW5nfSBjdXJyZW50TGFuZ3VhZ2VJZCAtIG9wdGlvbmFsIG92ZXItcmlkZSBmb3IgdHJhbnNpZW50IGNhc2Ugd2hlcmUgbGFuZ3VhZ2UgaW4gc2NyaXB0dXJlIHNldHRpbmdzIGhhdmUgbm90IHlldCB1cGRhdGVkXG4gKiBAcGFyYW0ge3N0cmluZ30gY3VycmVudE93bmVyIC0gb3B0aW9uYWwgb3Zlci1yaWRlIGZvciB0cmFuc2llbnQgY2FzZSB3aGVyZSBvd25lciBpbiBzY3JpcHR1cmUgc2V0dGluZ3MgaGF2ZSBub3QgeWV0IHVwZGF0ZWRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFNjcmlwdHVyZVJlc291cmNlU2V0dGluZ3MoXG4gIGJvb2tJZCwgc2NyaXB0dXJlU2V0dGluZ3NfLCBpc05ld1Rlc3RhbWVudCxcbiAgb3JpZ2luYWxSZXBvVXJsPW51bGwsXG4gIGN1cnJlbnRMYW5ndWFnZUlkPW51bGwsXG4gIGN1cnJlbnRPd25lcj1udWxsLFxuKSB7XG4gIGNvbnN0IHNjcmlwdHVyZVNldHRpbmdzID0geyAuLi5zY3JpcHR1cmVTZXR0aW5nc18gfVxuICBzY3JpcHR1cmVTZXR0aW5ncy5kaXNhYmxlV29yZFBvcG92ZXIgPSBESVNBQkxFX1dPUkRfUE9QT1ZFUlxuICBjb25zdCByZXNvdXJjZUlkID0gc2NyaXB0dXJlU2V0dGluZ3NfLnJlc291cmNlSWRcblxuICBpZiAocmVzb3VyY2VJZCA9PT0gT1JJR0lOQUxfU09VUkNFKSB7XG4gICAgLy8gc2VsZWN0IG9yaWdpbmFsIGxhbmd1YWdlIEJpYmxlIGJhc2VkIG9uIHdoaWNoIHRlc3RhbWVudCB0aGUgYm9vayBiZWxvbmdzXG4gICAgc2NyaXB0dXJlU2V0dGluZ3MubGFuZ3VhZ2VJZCA9IGlzTmV3VGVzdGFtZW50ID8gTlRfT1JJR19MQU5HIDogT1RfT1JJR19MQU5HXG4gICAgc2NyaXB0dXJlU2V0dGluZ3MucmVzb3VyY2VJZCA9IGlzTmV3VGVzdGFtZW50XG4gICAgICA/IE5UX09SSUdfTEFOR19CSUJMRVxuICAgICAgOiBPVF9PUklHX0xBTkdfQklCTEVcblxuICAgIGlmIChzY3JpcHR1cmVTZXR0aW5ncy5vcmlnaW5hbExhbmd1YWdlT3duZXIpIHtcbiAgICAgIHNjcmlwdHVyZVNldHRpbmdzLm93bmVyID0gc2NyaXB0dXJlU2V0dGluZ3Mub3JpZ2luYWxMYW5ndWFnZU93bmVyXG4gICAgfVxuXG4gICAgaWYgKG9yaWdpbmFsUmVwb1VybCkgeyAvLyB1c2UgdGhpcyB1cmwgaWYgZGVmaW5lZFxuICAgICAgY29uc3QgeyBzZXJ2ZXIsIHJlc291cmNlTGluayB9ID0gc3BsaXRVcmwob3JpZ2luYWxSZXBvVXJsKVxuICAgICAgc2NyaXB0dXJlU2V0dGluZ3Muc2VydmVyID0gc2VydmVyXG4gICAgICBzY3JpcHR1cmVTZXR0aW5ncy5yZXNvdXJjZUxpbmsgPSByZXNvdXJjZUxpbmtcbiAgICB9IGVsc2UgeyAvLyBmYWxsIGJhY2sgdG8gYXBwIGRlZmF1bHRzXG4gICAgICBzY3JpcHR1cmVTZXR0aW5ncy5yZXNvdXJjZUxpbmsgPSBnZXRSZXNvdXJjZUxpbmsoc2NyaXB0dXJlU2V0dGluZ3MpXG4gICAgfVxuICAgIHNjcmlwdHVyZVNldHRpbmdzLmRpc2FibGVXb3JkUG9wb3ZlciA9IGZhbHNlXG4gIH0gZWxzZSBpZiAocmVzb3VyY2VJZCA9PT0gVEFSR0VUX0xJVEVSQUwpIHtcbiAgICBjbGVhbnVwQWNjb3VudFNldHRpbmdzKHNjcmlwdHVyZVNldHRpbmdzLCBjdXJyZW50T3duZXIsIGN1cnJlbnRMYW5ndWFnZUlkKVxuICAgIHNjcmlwdHVyZVNldHRpbmdzLnJlc291cmNlSWQgPSBzY3JpcHR1cmVTZXR0aW5ncy5sYW5ndWFnZUlkID09PSAnZW4nID8gJ3VsdCcgOiAnZ2x0J1xuICAgIHNjcmlwdHVyZVNldHRpbmdzLnJlc291cmNlTGluayA9IGdldFJlc291cmNlTGluayhzY3JpcHR1cmVTZXR0aW5ncylcbiAgfSBlbHNlIGlmIChyZXNvdXJjZUlkID09PSBUQVJHRVRfU0lNUExJRklFRCkge1xuICAgIGNsZWFudXBBY2NvdW50U2V0dGluZ3Moc2NyaXB0dXJlU2V0dGluZ3MsIGN1cnJlbnRPd25lciwgY3VycmVudExhbmd1YWdlSWQpXG4gICAgc2NyaXB0dXJlU2V0dGluZ3MucmVzb3VyY2VJZCA9IHNjcmlwdHVyZVNldHRpbmdzLmxhbmd1YWdlSWQgPT09ICdlbicgPyAndXN0JyA6ICdnc3QnXG4gICAgc2NyaXB0dXJlU2V0dGluZ3MucmVzb3VyY2VMaW5rID0gZ2V0UmVzb3VyY2VMaW5rKHNjcmlwdHVyZVNldHRpbmdzKVxuICB9XG4gIHJldHVybiBzY3JpcHR1cmVTZXR0aW5nc1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0U2NyaXB0dXJlVmVyc2lvblNldHRpbmdzKHtcbiAgbGFiZWwsXG4gIHJlc291cmNlTGluayxcbiAgc2V0U2NyaXB0dXJlLFxuICBzY3JpcHR1cmVWZXJzaW9uSGlzdCxcbn0pIHtcbiAgY29uc3QgaGlzdG9yeSA9IHNjcmlwdHVyZVZlcnNpb25IaXN0LmdldExhdGVzdCgpXG4gIGxldCBpbmRleCA9IHNjcmlwdHVyZVZlcnNpb25IaXN0LmZpbmRJdGVtSW5kZXhCeUtleShoaXN0b3J5LCAncmVzb3VyY2VMaW5rJywgcmVzb3VyY2VMaW5rKVxuXG4gIGNvbnN0IHNjcmlwdHVyZVNlbGVjdG9yQ29uZmlnID0ge1xuICAgIGxhYmVsLCAvLyBsYWJlbCBmb3IgY29tYm9ib3hcbiAgICBvcHRpb25zOiBoaXN0b3J5LFxuICAgIGN1cnJlbnQ6IGluZGV4LFxuICAgIGFsbG93VXNlcklucHV0OiB0cnVlLFxuICAgIG9uQ2hhbmdlOiAodGl0bGUsIGluZGV4LCB2YWxpZGF0aW9uQ0I9bnVsbCkgPT4ge1xuICAgICAgbGV0IGl0ZW1cblxuICAgICAgaWYgKChpbmRleCA8IDApICYmIHRpdGxlKSB7XG4gICAgICAgIGNvbnN0IG5ld0l0ZW0gPSB7XG4gICAgICAgICAgdXJsOiB0aXRsZSxcbiAgICAgICAgICB0aXRsZSxcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBpbmRleCA9IHNjcmlwdHVyZVZlcnNpb25IaXN0LmFkZEl0ZW1Ub0hpc3RvcnkobmV3SXRlbSlcblxuICAgICAgICBpZiAoaW5kZXggPj0gMCkge1xuICAgICAgICAgIGl0ZW0gPSBzY3JpcHR1cmVWZXJzaW9uSGlzdC5nZXRMYXRlc3QoKVtpbmRleF1cbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaXRlbSA9IHNjcmlwdHVyZVZlcnNpb25IaXN0LmdldEl0ZW1CeVRpdGxlKHRpdGxlKVxuICAgICAgfVxuXG4gICAgICBpZiAoaXRlbSkge1xuICAgICAgICBzZXRTY3JpcHR1cmUoaXRlbSwgdmFsaWRhdGlvbkNCKVxuICAgICAgfVxuICAgIH0sXG4gICAgZGVsZXRlSXRlbTogdGl0bGUgPT4ge1xuICAgICAgY29uc3QgaGlzdG9yeSA9IHNjcmlwdHVyZVZlcnNpb25IaXN0LmdldExhdGVzdCgpXG4gICAgICBjb25zdCBkZWxldGVJbmRleCA9IHNjcmlwdHVyZVZlcnNpb25IaXN0LmZpbmRJdGVtSW5kZXhCeUtleShoaXN0b3J5LCAndGl0bGUnLCB0aXRsZSlcbiAgICAgIHNjcmlwdHVyZVZlcnNpb25IaXN0LnJlbW92ZUl0ZW1CeUluZGV4KGRlbGV0ZUluZGV4KVxuICAgIH0sXG4gIH1cblxuICByZXR1cm4gc2NyaXB0dXJlU2VsZWN0b3JDb25maWdcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFJlcG9VcmwocmVzb3VyY2VMaW5rOiBzdHJpbmcsIHNlcnZlcjogc3RyaW5nLCBpc05UOiBib29sZWFuKTogc3RyaW5nIHtcbiAgbGV0IHJlcG9VcmxcblxuICB0cnkge1xuICAgIGxldCBbb3duZXIsIGxhbmd1YWdlSWQsIHJlc291cmNlSWRdID0gcmVzb3VyY2VMaW5rLnNwbGl0KCcvJylcblxuICAgIHN3aXRjaCAocmVzb3VyY2VJZCkge1xuICAgIGNhc2UgT1JJR0lOQUxfU09VUkNFOlxuICAgICAgbGFuZ3VhZ2VJZCA9IGlzTlQgPyBOVF9PUklHX0xBTkcgOiBPVF9PUklHX0xBTkdcbiAgICAgIHJlc291cmNlSWQgPSBpc05UXG4gICAgICAgID8gTlRfT1JJR19MQU5HX0JJQkxFXG4gICAgICAgIDogT1RfT1JJR19MQU5HX0JJQkxFXG4gICAgICBicmVha1xuXG4gICAgY2FzZSBUQVJHRVRfTElURVJBTDpcbiAgICAgIHJlc291cmNlSWQgPSAobGFuZ3VhZ2VJZCA9PT0gJ2VuJykgPyAndWx0JyA6ICdnbHQnXG4gICAgICBicmVha1xuXG4gICAgY2FzZSBUQVJHRVRfU0lNUExJRklFRDpcbiAgICAgIHJlc291cmNlSWQgPSAobGFuZ3VhZ2VJZCA9PT0gJ2VuJykgPyAndXN0JyA6ICdnc3QnXG4gICAgICBicmVha1xuICAgIH1cbiAgICByZXBvVXJsID0gYCR7b3duZXJ9LyR7bGFuZ3VhZ2VJZH1fJHtyZXNvdXJjZUlkfWBcbiAgfSBjYXRjaCAoZSkge1xuICAgIC8vIHJlc291cmNlTGluayB3YXMgaW52YWxpZFxuICB9XG5cbiAgLy8gQHRzLWlnbm9yZVxuICByZXR1cm4gYCR7c2VydmVyIHx8ICcnfS8ke3JlcG9Vcmx9YFxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RXJyb3JNZXNzYWdlRm9yUmVzb3VyY2VMaW5rKFxuICByZXNvdXJjZUxpbms6IHN0cmluZyxcbiAgc2VydmVyOiBzdHJpbmcsXG4gIGVycm9yQ29kZTogc3RyaW5nLFxuICBpc05UOiBib29sZWFuKTogc3RyaW5nXG57XG4gIGNvbnN0IHJlcG9VcmwgPSBnZXRSZXBvVXJsKHJlc291cmNlTGluaywgc2VydmVyLCBpc05UKVxuICBjb25zdCBlcnJvck1zZyA9IGVycm9yQ29kZSArIHJlcG9VcmxcbiAgcmV0dXJuIGVycm9yTXNnXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZURjc1VybCh1cmwpIHtcbiAgbGV0IHZhbGlkUmVwb1BhdGggPSBmYWxzZVxuICBsZXQgdmFsaWRVcmwgPSBmYWxzZVxuXG4gIHRyeSB7XG4gICAgY29uc3QgcGFydHMgPSB1cmwuc3BsaXQoJy8nKVxuICAgIGNvbnN0IFtwcm90b2NvbCwgLCBob3N0LCB1c2VyLCByZXBvXSA9IHBhcnRzXG4gICAgdmFsaWRVcmwgPSAocHJvdG9jb2wgPT09ICdodHRwczonKVxuICAgIGNvbnN0IGhvc3RQYXJ0cyA9IGhvc3QgPyBob3N0LnNwbGl0KCcuJykgOiBbXVxuXG4gICAgaWYgKGhvc3RQYXJ0cy5sZW5ndGggPj0gMikge1xuICAgICAgZm9yIChsZXQgcGFydCBvZiBob3N0UGFydHMpIHtcbiAgICAgICAgaWYgKCFwYXJ0KSB7XG4gICAgICAgICAgdmFsaWRVcmwgPSBmYWxzZVxuICAgICAgICAgIGJyZWFrXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdmFsaWRVcmwgPSBmYWxzZVxuICAgIH1cblxuICAgIGlmICggcHJvdG9jb2wgJiYgaG9zdCAmJiB1c2VyICYmIHJlcG8gKSB7XG4gICAgICBjb25zdCBbbGFuZ3VhZ2VJZCwgcHJvamVjdElkXSA9IHJlcG8uc3BsaXQoJ18nKVxuICAgICAgdmFsaWRSZXBvUGF0aCA9IGxhbmd1YWdlSWQgJiYgcHJvamVjdElkXG4gICAgfVxuICB9IGNhdGNoIHtcbiAgICBjb25zb2xlLmxvZygnSW52YWxpZCBEQ1MgVVJMOiAnICsgdXJsKVxuICB9XG4gIHJldHVybiB7IHZhbGlkVXJsLCB2YWxpZFJlcG9QYXRoIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFJlc291cmNlRXJyb3JNZXNzYWdlKHJlc291cmNlU3RhdHVzOiBvYmplY3QpIHtcbiAgbGV0IG1lc3NhZ2UgPSAnJ1xuXG4gIGlmIChyZXNvdXJjZVN0YXR1c1tNQU5JRkVTVF9OT1RfTE9BREVEX0VSUk9SXSkge1xuICAgIG1lc3NhZ2UgPSBNQU5JRkVTVF9OT1RfRk9VTkRfRVJST1JfTVNHXG4gIH0gZWxzZSBpZiAocmVzb3VyY2VTdGF0dXNbSU5WQUxJRF9NQU5JRkVTVF9FUlJPUl0pIHtcbiAgICBtZXNzYWdlID0gTUFOSUZFU1RfSU5WQUxJRF9FUlJPUl9NU0dcbiAgfSBlbHNlIGlmIChyZXNvdXJjZVN0YXR1c1tDT05URU5UX05PVF9GT1VORF9FUlJPUl0pIHtcbiAgICBtZXNzYWdlID0gQk9PS19OT1RfRk9VTkRfRVJST1JfTVNHXG4gIH0gZWxzZSBpZiAocmVzb3VyY2VTdGF0dXNbU0NSSVBUVVJFX05PVF9MT0FERURfRVJST1JdKSB7XG4gICAgbWVzc2FnZSA9IFNDUklQVFVSRV9OT1RfRk9VTkRfRVJST1JfTVNHXG4gIH1cbiAgcmV0dXJuIG1lc3NhZ2Vcbn1cblxuLyoqXG4gKiBkZWNvZGUgcmVzb3VyY2Ugc3RhdHVzIGludG8gc3RyaW5nLiAgQ3VycmVudGx5IG9ubHkgRW5nbGlzaFxuICogQHBhcmFtIHJlc291cmNlU3RhdHVzIC0gb2JqZWN0IHRoYXQgY29udGFpbnMgc3RhdGUgYW5kIGVycm9ycyB0aGF0IGFyZSBkZXRlY3RlZFxuICogQHBhcmFtIHNlcnZlciAtIGNvbnRhaW5zIHRoZSBzZXJ2ZXIgYmVpbmcgdXNlZFxuICogQHBhcmFtIHJlc291cmNlTGluayAtIHBhdGggdG8gcmVwbyBvbiBzZXJ2ZXJcbiAqIEBwYXJhbSBpc05UIC0gdHJ1ZSBpZiBOVCBib29rXG4gKiBAcmV0dXJuIGVtcHR5IHN0cmluZyBpZiBubyBlcnJvciwgZWxzZSByZXR1cm5zIHVzZXIgZXJyb3IgbWVzc2FnZVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0UmVzb3VyY2VNZXNzYWdlKHJlc291cmNlU3RhdHVzOiBvYmplY3QsIHNlcnZlcjogc3RyaW5nLCByZXNvdXJjZUxpbms6IHN0cmluZywgaXNOVDogYm9vbGVhbikge1xuICBsZXQgbWVzc2FnZSA9ICcnXG5cbiAgaWYgKHJlc291cmNlU3RhdHVzW0xPQURJTkdfU1RBVEVdKSB7XG4gICAgbWVzc2FnZSA9IExPQURJTkdfUkVTT1VSQ0VcbiAgfSBlbHNlIHtcbiAgICBtZXNzYWdlID0gZ2V0UmVzb3VyY2VFcnJvck1lc3NhZ2UocmVzb3VyY2VTdGF0dXMpXG5cbiAgICBpZiAobWVzc2FnZSkge1xuICAgICAgbWVzc2FnZSA9IGdldEVycm9yTWVzc2FnZUZvclJlc291cmNlTGluayhyZXNvdXJjZUxpbmssIHNlcnZlciwgbWVzc2FnZSwgaXNOVClcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG1lc3NhZ2Vcbn1cblxuLyoqXG4gKiBnZW5lcmF0ZSByZXNvdXJjZSBzdHJpbmdcbiAqIEBwYXJhbSBvd25lclxuICogQHBhcmFtIGxhbmd1YWdlSWRcbiAqIEBwYXJhbSBwcm9qZWN0SWRcbiAqIEBwYXJhbSByZWZcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFJlc291cmNlTGlua1NwZWNpZmljKG93bmVyOiBzdHJpbmcsIGxhbmd1YWdlSWQ6IHN0cmluZywgcHJvamVjdElkOiBzdHJpbmcsIHJlZjogc3RyaW5nKSB7XG4gIHJldHVybiBgYXBpL3YxL3JlcG9zLyR7b3duZXJ9LyR7bGFuZ3VhZ2VJZH1fJHtwcm9qZWN0SWR9L2NvbnRlbnRzP3JlZj0ke3JlZn1gXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmaXhPY2N1cnJlbmNlKG9jY3VycmVuY2UpIHtcbiAgaWYgKHR5cGVvZiBvY2N1cnJlbmNlID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBwYXJzZUludChvY2N1cnJlbmNlKVxuICB9XG4gIHJldHVybiBvY2N1cnJlbmNlXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjbGVhbnVwVmVyc2VPYmplY3RzKHZlcnNlT2JqZWN0cykge1xuICBpZiAodmVyc2VPYmplY3RzPy5sZW5ndGgpIHtcbiAgICBjb25zdCB2ZXJzZU9iamVjdHNfID0gWy4uLnZlcnNlT2JqZWN0c11cblxuICAgIGZvciAobGV0IGkgPSAwLCBsID0gdmVyc2VPYmplY3RzXy5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICAgIGNvbnN0IHZvID0gdmVyc2VPYmplY3RzX1tpXVxuXG4gICAgICBpZiAodm8udHlwZSA9PT0gJ3dvcmQnICYmICh2by5vY2N1cnJlbmNlIHx8IHZvLm9jY3VycmVuY2VzKSkge1xuICAgICAgICBjb25zdCB3b3JkID0geyAuLi52byB9XG5cbiAgICAgICAgaWYgKHZvLm9jY3VycmVuY2UpIHtcbiAgICAgICAgICB3b3JkLm9jY3VycmVuY2UgPSBmaXhPY2N1cnJlbmNlKHZvLm9jY3VycmVuY2UpXG4gICAgICAgIH1cblxuICAgICAgICBpZiAodm8ub2NjdXJyZW5jZXMpIHtcbiAgICAgICAgICB3b3JkLm9jY3VycmVuY2VzID0gZml4T2NjdXJyZW5jZSh2by5vY2N1cnJlbmNlcylcbiAgICAgICAgfVxuICAgICAgICB2ZXJzZU9iamVjdHNfW2ldID0gd29yZFxuICAgICAgfSBlbHNlIGlmICh2by5jaGlsZHJlbikge1xuICAgICAgICBjb25zdCBjaGlsZHJlbiA9IGNsZWFudXBWZXJzZU9iamVjdHModm8uY2hpbGRyZW4pXG4gICAgICAgIGNvbnN0IG5ld1ZvID0ge1xuICAgICAgICAgIC4uLnZvLFxuICAgICAgICAgIGNoaWxkcmVuLFxuICAgICAgICB9XG4gICAgICAgIHZlcnNlT2JqZWN0c19baV0gPSBuZXdWb1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdmVyc2VPYmplY3RzX1xuICB9XG4gIHJldHVybiBbXVxufVxuIl19
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "single-scripture-rcl",
3
3
  "description": "A React Component Library for Rendering a Single Scripture Resource.",
4
- "version": "3.3.3-beta.55",
4
+ "version": "3.3.3-beta.57",
5
5
  "repository": {
6
6
  "type": "git",
7
7
  "url": "https://github.com/unfoldingWord/single-scripture-rcl.git"