single-scripture-rcl 3.4.34 → 3.4.35

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.
@@ -43,7 +43,7 @@ import { VerseObjects } from 'scripture-resources-rcl';
43
43
  import { UsfmFileConversionHelpers } from 'word-aligner-rcl';
44
44
  import { CircularProgress } from 'translation-helps-rcl';
45
45
  import { BookObjectsType, ScriptureReferenceType } from '../../types';
46
- import { delay, findNonWhiteSpaceChars, getResourceMessage, LOADING_RESOURCE, verseObjectsHaveWords } from '../../utils';
46
+ import { delay, emptyContent, getResourceMessage, LOADING_RESOURCE, verseObjectsHaveWords } from '../../utils';
47
47
  import { ScriptureALignmentEditProps, useScriptureAlignmentEdit } from '../../hooks/useScriptureAlignmentEdit';
48
48
  import { Container, Content, EmptyContent } from './styled';
49
49
  var MessageStyle = {
@@ -66,21 +66,6 @@ var TextAreaStyle = {
66
66
  minHeight: '100px',
67
67
  fontSize: '16px'
68
68
  };
69
-
70
- /**
71
- * Checks if the given content is empty by verifying the presence of non-whitespace characters
72
- * or if the provided verseObjects array is empty or undefined.
73
- *
74
- * @param {Array} verseObjects - An array of verse objects to be checked.
75
- * @return {boolean} Returns true if the content is empty or contains only whitespace, false otherwise.
76
- */
77
- function emptyContent(verseObjects) {
78
- var hasNoVerses = !(verseObjects !== null && verseObjects !== void 0 && verseObjects.length);
79
- if (hasNoVerses) {
80
- return true;
81
- }
82
- return !findNonWhiteSpaceChars(verseObjects);
83
- }
84
69
  function ScripturePane(_ref) {
85
70
  var _scriptureAlignmentEd3;
86
71
  var currentIndex = _ref.currentIndex,
@@ -323,4 +308,4 @@ ScripturePane.defaultProps = {
323
308
  verseObjects: []
324
309
  };
325
310
  export default ScripturePane;
326
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsInVzZURlZXBDb21wYXJlRWZmZWN0IiwiVmVyc2VPYmplY3RzIiwiVXNmbUZpbGVDb252ZXJzaW9uSGVscGVycyIsIkNpcmN1bGFyUHJvZ3Jlc3MiLCJCb29rT2JqZWN0c1R5cGUiLCJTY3JpcHR1cmVSZWZlcmVuY2VUeXBlIiwiZGVsYXkiLCJmaW5kTm9uV2hpdGVTcGFjZUNoYXJzIiwiZ2V0UmVzb3VyY2VNZXNzYWdlIiwiTE9BRElOR19SRVNPVVJDRSIsInZlcnNlT2JqZWN0c0hhdmVXb3JkcyIsIlNjcmlwdHVyZUFMaWdubWVudEVkaXRQcm9wcyIsInVzZVNjcmlwdHVyZUFsaWdubWVudEVkaXQiLCJDb250YWluZXIiLCJDb250ZW50IiwiRW1wdHlDb250ZW50IiwiTWVzc2FnZVN0eWxlIiwiZGlyZWN0aW9uIiwid2hpdGVTcGFjZSIsImxpbmVIZWlnaHQiLCJkaXNwbGF5IiwianVzdGlmeUNvbnRlbnQiLCJhbGlnbkl0ZW1zIiwiaGVpZ2h0Iiwid2lkdGgiLCJmb250U2l6ZSIsImZvbnRGYW1pbHkiLCJmb250V2VpZ2h0IiwiVGV4dEFyZWFTdHlsZSIsIm1pbldpZHRoIiwibWluSGVpZ2h0IiwiZW1wdHlDb250ZW50IiwidmVyc2VPYmplY3RzIiwiaGFzTm9WZXJzZXMiLCJsZW5ndGgiLCJTY3JpcHR1cmVQYW5lIiwiX3JlZiIsIl9zY3JpcHR1cmVBbGlnbm1lbnRFZDMiLCJjdXJyZW50SW5kZXgiLCJjb250ZW50U3R5bGUiLCJkZXRlcm1pbmluZ0JyYW5jaCIsImRpc2FibGVXb3JkUG9wb3ZlciIsImdldExleGljb25EYXRhIiwiaXNOVCIsImlzVmVyc2VTZWxlY3RlZEZvckFsaWdubWVudCIsIm9uQWxpZ25tZW50RmluaXNoIiwib3JpZ2luYWxTY3JpcHR1cmVCb29rT2JqZWN0cyIsInJlZmVyZW5jZSIsInJlZlN0eWxlIiwicmVzb3VyY2VTdGF0dXMiLCJyZXNvdXJjZUxpbmsiLCJzYXZpbmciLCJzY3JpcHR1cmVBbGlnbm1lbnRFZGl0Q29uZmlnIiwic2V0RWRpdFZlcnNlIiwic2V0U2F2ZWRDaGFuZ2VzIiwic2V0V29yZEFsaWduZXJTdGF0dXMiLCJzZXJ2ZXIiLCJ0cmFuc2xhdGUiLCJ1cGRhdGVWZXJzZXNBbGlnbm1lbnRTdGF0dXMiLCJfUmVhY3QkdXNlU3RhdGUiLCJ1c2VTdGF0ZSIsImRvaW5nQWxpZ25tZW50IiwibmV3VGV4dCIsInByb2Nlc3NpbmdFZGl0IiwiX1JlYWN0JHVzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5Iiwic3RhdGUiLCJzZXRTdGF0ZV8iLCJzZXRTdGF0ZSIsIm5ld1N0YXRlIiwicHJldlN0YXRlIiwiX29iamVjdFNwcmVhZCIsIl9SZWFjdCR1c2VTdGF0ZTMiLCJfUmVhY3QkdXNlU3RhdGU0IiwiaW5pdGlhbFZlcnNlVGV4dCIsInNldEluaXRpYWxWZXJzZVRleHQiLCJyZXNvdXJjZU1lc3NhZ2UiLCJfcmVmMiIsImNoYXB0ZXIiLCJib29rSWQiLCJ2ZXJzZSIsIl9zY3JpcHR1cmVBbGlnbm1lbnRFZGl0Q29uZmlnIiwiX3NjcmlwdHVyZUFsaWdubWVudEVkaXQiLCJfc2NyaXB0dXJlQWxpZ25tZW50RWQiLCJhY3Rpb25zIiwiY2xlYXJDaGFuZ2VzIiwiaGFuZGxlQWxpZ25tZW50Q2xpY2siLCJzZXRFZGl0aW5nIiwic2V0VmVyc2VDaGFuZ2VkIiwiX3NjcmlwdHVyZUFsaWdubWVudEVkMiIsImFsaWduZWQiLCJhbGlnbmVyRGF0YSIsImN1cnJlbnRWZXJzZU9iamVjdHMiLCJlZGl0aW5nIiwiZW5hYmxlRWRpdCIsImluaXRpYWxWZXJzZU9iamVjdHMiLCJuZXdWZXJzZVRleHQiLCJ1c2VFZmZlY3QiLCJjb25zb2xlIiwibG9nIiwiY2FsY3VsYXRlZEZvbnRTaXplIiwidXNlTWVtbyIsInBhcnNlRmxvYXQiLCJ0ZXh0QXJlYVN0eWxlIiwidmVyc2VUZXh0IiwiZ2V0VXNmbUZvclZlcnNlQ29udGVudCIsIm9uQmx1ciIsImV2ZW50IiwiX2V2ZW50JHRhcmdldCIsInRhcmdldCIsInZhbHVlIiwidGhlbiIsIl9lZGl0aW5nIiwidmVyc2VSZWYiLCJjb25jYXQiLCJub1dvcmRzIiwidmVyc2VDb250ZW50IiwiY3JlYXRlRWxlbWVudCIsInNpemUiLCJkZWZhdWx0VmFsdWUiLCJzdHlsZSIsImF1dG9Gb2N1cyIsIm5vVmVyc2VDb250ZW50IiwidmVyc2VLZXkiLCJwYWRkaW5nQm90dG9tIiwib25DbGljayIsImRlZmF1bHRQcm9wcyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL1NjcmlwdHVyZVBhbmUvU2NyaXB0dXJlUGFuZS50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnXG5pbXBvcnQgdXNlRGVlcENvbXBhcmVFZmZlY3QgZnJvbSAndXNlLWRlZXAtY29tcGFyZS1lZmZlY3QnXG5pbXBvcnQgeyBWZXJzZU9iamVjdHMgfSBmcm9tICdzY3JpcHR1cmUtcmVzb3VyY2VzLXJjbCdcbmltcG9ydCB7IFVzZm1GaWxlQ29udmVyc2lvbkhlbHBlcnMgfSBmcm9tICd3b3JkLWFsaWduZXItcmNsJ1xuaW1wb3J0IHsgQ2lyY3VsYXJQcm9ncmVzcyB9IGZyb20gJ3RyYW5zbGF0aW9uLWhlbHBzLXJjbCdcbmltcG9ydCB7IEJvb2tPYmplY3RzVHlwZSwgU2NyaXB0dXJlUmVmZXJlbmNlVHlwZSB9IGZyb20gJy4uLy4uL3R5cGVzJ1xuaW1wb3J0IHtcbiAgZGVsYXksXG4gIGZpbmROb25XaGl0ZVNwYWNlQ2hhcnMsXG4gIGdldFJlc291cmNlTWVzc2FnZSxcbiAgTE9BRElOR19SRVNPVVJDRSxcbiAgdmVyc2VPYmplY3RzSGF2ZVdvcmRzLFxufSBmcm9tICcuLi8uLi91dGlscydcbmltcG9ydCB7IFNjcmlwdHVyZUFMaWdubWVudEVkaXRQcm9wcywgdXNlU2NyaXB0dXJlQWxpZ25tZW50RWRpdCB9IGZyb20gJy4uLy4uL2hvb2tzL3VzZVNjcmlwdHVyZUFsaWdubWVudEVkaXQnXG5pbXBvcnQge1xuICBDb250YWluZXIsXG4gIENvbnRlbnQsXG4gIEVtcHR5Q29udGVudCxcbn0gZnJvbSAnLi9zdHlsZWQnXG5cbmludGVyZmFjZSBQcm9wcyB7XG4gIC8qKiBvcHRpb25hbCBzdHlsZXMgdG8gdXNlIGZvciBjb250ZW50ICoqL1xuICBjb250ZW50U3R5bGU6IGFueTtcbiAgLy8gaW5kZXggbnVtYmVyIGZvciB0aGlzIHNjcmlwdHVyZSBwYW5lXG4gIGN1cnJlbnRJbmRleDogbnVtYmVyLFxuICAvLyB3YWl0aW5nIHRvIGRldGVybWluZSBicmFuY2hcbiAgZGV0ZXJtaW5pbmdCcmFuY2g6IGJvb2xlYW4sXG4gIC8qKiBsYW5ndWFnZSBkaXJlY3Rpb24gdG8gdXNlICoqL1xuICBkaXJlY3Rpb246IHN0cmluZ3x1bmRlZmluZWQ7XG4gIC8qKiBpZiB0cnVlIHRoZW4gZG8gbm90IGRpc3BsYXkgbGV4aWNvbiBwb3BvdmVyIG9uIGhvdmVyICoqL1xuICBkaXNhYmxlV29yZFBvcG92ZXI6IGJvb2xlYW58dW5kZWZpbmVkO1xuICAvKiogZm9udCBzaXplIGZvciBtZXNzYWdlcyAqL1xuICBmb250U2l6ZTogbnVtYmVyO1xuICAvKiogZnVuY3Rpb24gdG8gZ2V0IGxhdGVzdCBsZXhpY29uIGRhdGEgKi9cbiAgZ2V0TGV4aWNvbkRhdGE6IEZ1bmN0aW9uO1xuICAvKiogdHJ1ZSBpZiBicm93c2luZyBOVCAqL1xuICBpc05UOiBib29sZWFuO1xuICAvKiogd2hldGhlciBvciBub3QgdGhpcyBjdXJyZW50IHZlcnNlIGhhcyBiZWVuIHNlbGVjdGVkIGZvciBhbGlnbm1lbnQgKi9cbiAgaXNWZXJzZVNlbGVjdGVkRm9yQWxpZ25tZW50OiBib29sZWFuO1xuICAvKiogZnVuY3Rpb24gdG8gYmUgY2FsbGVkIHdoZW4gdmVyc2UgYWxpZ25tZW50IGhhcyBmaW5pc2hlZCAqL1xuICBvbkFsaWdubWVudEZpbmlzaDogRnVuY3Rpb247XG4gIC8vIG9yaWdpbmFsIHNjcmlwdHVyZSBib29rT2JqZWN0cyBmb3IgY3VycmVudCBib29rXG4gIG9yaWdpbmFsU2NyaXB0dXJlQm9va09iamVjdHM6IEJvb2tPYmplY3RzVHlwZSxcbiAgLyoqIGN1cnJlbnQgcmVmZXJlbmNlICoqL1xuICByZWZlcmVuY2U6IFNjcmlwdHVyZVJlZmVyZW5jZVR5cGU7XG4gIC8qKiBvcHRpb25hbCBzdHlsZXMgdG8gdXNlIGZvciByZWZlcmVuY2UgKiovXG4gIHJlZlN0eWxlOiBhbnk7XG4gIC8qKiBvYmplY3QgdGhhdCBjb250YWlucyByZXNvdXJjZSBsb2FkaW5nIHN0YXR1cyBvciBmZXRjaGluZyBlcnJvcnMgKi9cbiAgcmVzb3VyY2VTdGF0dXM6IG9iamVjdHx1bmRlZmluZWQ7XG4gIC8qKiByZXNvdXJjZSB0aGF0IHdhcyBsb2FkZWQgKi9cbiAgcmVzb3VyY2VMaW5rOiBzdHJpbmd8dW5kZWZpbmVkO1xuICAvKiogdHJ1ZSBpZiBjdXJyZW50bHkgc2F2aW5nIHVwZGF0ZWQgdGV4dCBhbmQgYWxpZ25tZW50cyAqL1xuICBzYXZpbmc6IGJvb2xlYW47XG4gIC8vIGluaXRpYWxpemF0aW9uIGZvciB1c2VTY3JpcHR1cmVBbGlnbm1lbnRFZGl0XG4gIHNjcmlwdHVyZUFsaWdubWVudEVkaXRDb25maWc6IFNjcmlwdHVyZUFMaWdubWVudEVkaXRQcm9wcyxcbiAgLyoqIHNlcnZlciAqL1xuICBzZXJ2ZXI6IHN0cmluZ3x1bmRlZmluZWQ7XG4gIC8qKiBjYWxsYmFjayB0byBmbGFnIHRoYXQgd2UgYXJlIGVkaXRpbmcgKi9cbiAgc2V0RWRpdFZlcnNlOiBGdW5jdGlvbjtcbiAgLyoqIGNhbGxiYWNrIHRvIGZsYWcgdW5zYXZlZCBzdGF0dXMgKi9cbiAgc2V0U2F2ZWRDaGFuZ2VzOiBGdW5jdGlvbjtcbiAgLy8gY2FsbGJhY2sgZm9yIGNoYW5nZSBpbiB3b3JkIGFsaWdubWVudCBzdGF0dXNcbiAgc2V0V29yZEFsaWduZXJTdGF0dXM6IEZ1bmN0aW9uO1xuICAvKiogb3B0aW9uYWwgZnVuY3Rpb24gZm9yIGxvY2FsaXphdGlvbiAqL1xuICB0cmFuc2xhdGU6IEZ1bmN0aW9uO1xuICAvKiogZnVuY3Rpb24gdG8gYmUgY2FsbGVkIHRvIHVwZGF0ZSB2ZXJzZSBhbGlnbm1lbnQgc3RhdHVzICovXG4gIHVwZGF0ZVZlcnNlc0FsaWdubWVudFN0YXR1czogRnVuY3Rpb247XG59XG5cbmNvbnN0IE1lc3NhZ2VTdHlsZSA9IHtcbiAgZGlyZWN0aW9uOiAnbHRyJyxcbiAgd2hpdGVTcGFjZTogJ3ByZS13cmFwJyxcbiAgbGluZUhlaWdodDogJ25vcm1hbCcsXG4gIGRpc3BsYXk6ICdmbGV4JyxcbiAganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLFxuICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAgaGVpZ2h0OiAnMTAwJScsXG4gIHdpZHRoOiAnMTAwJScsXG4gIGZvbnRTaXplOiAnMTZweCcsXG4gIGZvbnRGYW1pbHk6ICdOb3RvIFNhbnMnLFxuICBmb250V2VpZ2h0OiAnYm9sZCcsXG59XG5cbmNvbnN0IFRleHRBcmVhU3R5bGUgPSB7XG4gIGhlaWdodDogJzYwJScsXG4gIHdpZHRoOiAnMTAwJScsXG4gIG1pbldpZHRoOiAnMjIwcHgnLFxuICBtaW5IZWlnaHQ6ICcxMDBweCcsXG4gIGZvbnRTaXplOiAnMTZweCcsXG59XG5cbi8qKlxuICogQ2hlY2tzIGlmIHRoZSBnaXZlbiBjb250ZW50IGlzIGVtcHR5IGJ5IHZlcmlmeWluZyB0aGUgcHJlc2VuY2Ugb2Ygbm9uLXdoaXRlc3BhY2UgY2hhcmFjdGVyc1xuICogb3IgaWYgdGhlIHByb3ZpZGVkIHZlcnNlT2JqZWN0cyBhcnJheSBpcyBlbXB0eSBvciB1bmRlZmluZWQuXG4gKlxuICogQHBhcmFtIHtBcnJheX0gdmVyc2VPYmplY3RzIC0gQW4gYXJyYXkgb2YgdmVyc2Ugb2JqZWN0cyB0byBiZSBjaGVja2VkLlxuICogQHJldHVybiB7Ym9vbGVhbn0gUmV0dXJucyB0cnVlIGlmIHRoZSBjb250ZW50IGlzIGVtcHR5IG9yIGNvbnRhaW5zIG9ubHkgd2hpdGVzcGFjZSwgZmFsc2Ugb3RoZXJ3aXNlLlxuICovXG5mdW5jdGlvbiBlbXB0eUNvbnRlbnQodmVyc2VPYmplY3RzKSB7XG4gIGNvbnN0IGhhc05vVmVyc2VzID0gIXZlcnNlT2JqZWN0cz8ubGVuZ3RoO1xuICBpZiAoaGFzTm9WZXJzZXMpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHJldHVybiAhZmluZE5vbldoaXRlU3BhY2VDaGFycyh2ZXJzZU9iamVjdHMpO1xufVxuXG5mdW5jdGlvbiBTY3JpcHR1cmVQYW5lKHtcbiAgY3VycmVudEluZGV4LFxuICBjb250ZW50U3R5bGUsXG4gIGRldGVybWluaW5nQnJhbmNoLFxuICBkaXJlY3Rpb24sXG4gIGRpc2FibGVXb3JkUG9wb3ZlcixcbiAgZm9udFNpemUsXG4gIGdldExleGljb25EYXRhLFxuICBpc05ULFxuICBpc1ZlcnNlU2VsZWN0ZWRGb3JBbGlnbm1lbnQsXG4gIG9uQWxpZ25tZW50RmluaXNoLFxuICBvcmlnaW5hbFNjcmlwdHVyZUJvb2tPYmplY3RzLFxuICByZWZlcmVuY2UsXG4gIHJlZlN0eWxlLFxuICByZXNvdXJjZVN0YXR1cyxcbiAgcmVzb3VyY2VMaW5rLFxuICBzYXZpbmcsXG4gIHNjcmlwdHVyZUFsaWdubWVudEVkaXRDb25maWcsXG4gIHNldEVkaXRWZXJzZSxcbiAgc2V0U2F2ZWRDaGFuZ2VzLFxuICBzZXRXb3JkQWxpZ25lclN0YXR1cyxcbiAgc2VydmVyLFxuICB0cmFuc2xhdGUsXG4gIHVwZGF0ZVZlcnNlc0FsaWdubWVudFN0YXR1cyxcbn0gOiBQcm9wcykge1xuICBjb25zdCBbc3RhdGUsIHNldFN0YXRlX10gPSBSZWFjdC51c2VTdGF0ZSh7XG4gICAgZG9pbmdBbGlnbm1lbnQ6IGZhbHNlLFxuICAgIG5ld1RleHQ6IG51bGwsXG4gICAgcHJvY2Vzc2luZ0VkaXQ6IGZhbHNlLFxuICB9KVxuICBjb25zdCB7XG4gICAgZG9pbmdBbGlnbm1lbnQsXG4gICAgbmV3VGV4dCxcbiAgICBwcm9jZXNzaW5nRWRpdCwgLy8gdHJ1ZSB3aGVuIHdlIGFyZSBwcm9jZXNzaW5nIGVkaXQgdGV4dCBhZnRlciBvbkJsdXJcbiAgfSA9IHN0YXRlXG5cbiAgZnVuY3Rpb24gc2V0U3RhdGUobmV3U3RhdGUpIHtcbiAgICBzZXRTdGF0ZV8ocHJldlN0YXRlID0+ICh7IC4uLnByZXZTdGF0ZSwgLi4ubmV3U3RhdGUgfSkpXG4gIH1cblxuICBjb25zdCBbaW5pdGlhbFZlcnNlVGV4dCwgc2V0SW5pdGlhbFZlcnNlVGV4dF0gPSBSZWFjdC51c2VTdGF0ZShudWxsKVxuXG4gIGxldCByZXNvdXJjZU1lc3NhZ2UgPSAnJ1xuXG4gIGlmIChzYXZpbmcpIHtcbiAgICByZXNvdXJjZU1lc3NhZ2UgPSAnU2F2aW5nIENoYW5nZXMuLi4nXG4gIH0gZWxzZSBpZiAoZGV0ZXJtaW5pbmdCcmFuY2gpIHtcbiAgICByZXNvdXJjZU1lc3NhZ2UgPSAnUHJlLScgKyBMT0FESU5HX1JFU09VUkNFXG4gIH0gZWxzZSB7XG4gICAgcmVzb3VyY2VNZXNzYWdlID0gZ2V0UmVzb3VyY2VNZXNzYWdlKHJlc291cmNlU3RhdHVzLCBzZXJ2ZXIsIHJlc291cmNlTGluaywgaXNOVClcbiAgfVxuXG4gIGNvbnN0IHtcbiAgICBjaGFwdGVyLFxuICAgIGJvb2tJZCxcbiAgICB2ZXJzZSxcbiAgfSA9IHJlZmVyZW5jZSB8fCB7fVxuICBkaXJlY3Rpb24gPSBkaXJlY3Rpb24gfHwgJ2x0cidcblxuICByZWZTdHlsZSA9IHJlZlN0eWxlIHx8IHtcbiAgICBmb250RmFtaWx5OiAnTm90byBTYW5zJyxcbiAgICBmb250U2l6ZTogJzkwJScsXG4gIH1cblxuICBjb250ZW50U3R5bGUgPSBjb250ZW50U3R5bGUgfHwge1xuICAgIGZvbnRGYW1pbHk6ICdOb3RvIFNhbnMnLFxuICAgIGZvbnRTaXplOiAnMTAwJScsXG4gIH1cblxuICBjb25zdCBfc2NyaXB0dXJlQWxpZ25tZW50RWRpdENvbmZpZyA9IHtcbiAgICAuLi5zY3JpcHR1cmVBbGlnbm1lbnRFZGl0Q29uZmlnLFxuICAgIGluaXRpYWxWZXJzZVRleHQsXG4gICAgb3JpZ2luYWxTY3JpcHR1cmVCb29rT2JqZWN0cyxcbiAgfVxuXG4gIGNvbnN0IF9zY3JpcHR1cmVBbGlnbm1lbnRFZGl0ID0gdXNlU2NyaXB0dXJlQWxpZ25tZW50RWRpdChfc2NyaXB0dXJlQWxpZ25tZW50RWRpdENvbmZpZylcbiAgY29uc3Qge1xuICAgIGFjdGlvbnM6IHtcbiAgICAgIGNsZWFyQ2hhbmdlcyxcbiAgICAgIGhhbmRsZUFsaWdubWVudENsaWNrLFxuICAgICAgc2V0RWRpdGluZyxcbiAgICAgIHNldFZlcnNlQ2hhbmdlZCxcbiAgICB9LFxuICAgIHN0YXRlOiB7XG4gICAgICBhbGlnbmVkLFxuICAgICAgYWxpZ25lckRhdGEsXG4gICAgICBjdXJyZW50VmVyc2VPYmplY3RzLFxuICAgICAgZWRpdGluZyxcbiAgICAgIGVuYWJsZUVkaXQsXG4gICAgICBpbml0aWFsVmVyc2VPYmplY3RzLFxuICAgICAgbmV3VmVyc2VUZXh0LFxuICAgIH0sXG4gIH0gPSBfc2NyaXB0dXJlQWxpZ25tZW50RWRpdFxuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7IC8vIG1vbml0b3IgaWYgd2UgbmVlZCB0byBzdGFydCBhbGlnbm1lbnRcbiAgICBpZiAoaXNWZXJzZVNlbGVjdGVkRm9yQWxpZ25tZW50ICYmICFhbGlnbmVyRGF0YSAmJiAhZG9pbmdBbGlnbm1lbnQpIHsgLy8gY2hlY2sgaWYgZWRpdCBmb3IgdGhpcyB2ZXJzZSBpcyBzZWxlY3RlZCBhbmQgbm90IGFscmVhZHkgZG9pbmcgYWxpZ25tZW50XG4gICAgICBpZiAoIWVkaXRpbmcgJiYgIXByb2Nlc3NpbmdFZGl0KSB7IC8vIG1ha2Ugc3VyZSBub3Qgc3RpbGwgZWRpdGluZyBvciBwcm9jZXNzaW5nIGVkaXRcbiAgICAgICAgY29uc29sZS5sb2coYFNjcmlwdHVyZVBhbmUgLSB2ZXJzZSBzZWxlY3RlZCBmb3IgYWxpZ25tZW50YCwgcmVmZXJlbmNlKVxuICAgICAgICBoYW5kbGVBbGlnbm1lbnRDbGljaygpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zb2xlLmxvZyhgU2NyaXB0dXJlUGFuZSAtIHN0aWxsIGVkaXRpbmcgdmVyc2UsIG5vdCByZWFkeSBmb3IgYWxpZ25tZW50YCwge2VkaXRpbmcsIHByb2Nlc3NpbmdFZGl0fSlcbiAgICAgIH1cbiAgICB9XG4gIH0sIFtpc1ZlcnNlU2VsZWN0ZWRGb3JBbGlnbm1lbnQsIGFsaWduZXJEYXRhLCBkb2luZ0FsaWdubWVudCwgZWRpdGluZywgcHJvY2Vzc2luZ0VkaXRdKVxuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgdXBkYXRlVmVyc2VzQWxpZ25tZW50U3RhdHVzICYmIHVwZGF0ZVZlcnNlc0FsaWdubWVudFN0YXR1cyhyZWZlcmVuY2UsIGFsaWduZWQpXG4gIH0sIFthbGlnbmVkLCBjaGFwdGVyLCB2ZXJzZSwgYm9va0lkXSlcblxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChhbGlnbmVyRGF0YSAmJiAhZG9pbmdBbGlnbm1lbnQpIHtcbiAgICAgIHNldFdvcmRBbGlnbmVyU3RhdHVzICYmIHNldFdvcmRBbGlnbmVyU3RhdHVzKF9zY3JpcHR1cmVBbGlnbm1lbnRFZGl0KVxuICAgICAgc2V0U3RhdGUoeyBkb2luZ0FsaWdubWVudDogdHJ1ZSB9KVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoIWRvaW5nQWxpZ25tZW50KSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGBTY3JpcHR1cmVQYW5lIC0gYWxpZ25lckRhdGEgd2VudCBmYWxzZSB1bmV4cGVjdGVkYCwgeyByZWZlcmVuY2UsIGFsaWduZXJEYXRhLCBkb2luZ0FsaWdubWVudCB9KVxuICAgICAgfVxuXG4gICAgICBzZXRXb3JkQWxpZ25lclN0YXR1cyAmJiBzZXRXb3JkQWxpZ25lclN0YXR1cyhfc2NyaXB0dXJlQWxpZ25tZW50RWRpdClcbiAgICAgIHNldFN0YXRlKHsgZG9pbmdBbGlnbm1lbnQ6IGZhbHNlIH0pXG4gICAgICBvbkFsaWdubWVudEZpbmlzaCAmJiBvbkFsaWdubWVudEZpbmlzaCgpXG4gICAgfVxuICB9LCBbX3NjcmlwdHVyZUFsaWdubWVudEVkaXQ/LnN0YXRlPy5hbGlnbmVyRGF0YV0pXG5cbiAgLy8gZHluYW1pY2FsbHkgYWRqdXN0IGZvbnQgc2l6ZVxuICBjb25zdCBjYWxjdWxhdGVkRm9udFNpemUgPSBSZWFjdC51c2VNZW1vKCgpID0+IChcbiAgICBwYXJzZUZsb2F0KFRleHRBcmVhU3R5bGUuZm9udFNpemUpICogZm9udFNpemUgLyAxMDAgKyAncHgnXG4gICksIFtmb250U2l6ZV0pXG5cbiAgY29uc3QgdGV4dEFyZWFTdHlsZSA9IHtcbiAgICAuLi5jb250ZW50U3R5bGUsXG4gICAgLi4uVGV4dEFyZWFTdHlsZSxcbiAgICBmb250U2l6ZTogY2FsY3VsYXRlZEZvbnRTaXplLFxuICB9XG5cbiAgdXNlRGVlcENvbXBhcmVFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IHZlcnNlVGV4dCA9IFVzZm1GaWxlQ29udmVyc2lvbkhlbHBlcnMuZ2V0VXNmbUZvclZlcnNlQ29udGVudCh7IHZlcnNlT2JqZWN0czogaW5pdGlhbFZlcnNlT2JqZWN0cyB9KVxuICAgIGNsZWFyQ2hhbmdlcygpXG4gICAgc2V0SW5pdGlhbFZlcnNlVGV4dCh2ZXJzZVRleHQpXG4gICAgc2V0U3RhdGUoeyBuZXdUZXh0OiBudWxsIH0pXG4gIH0sIFt7IHJlZmVyZW5jZSwgaW5pdGlhbFZlcnNlT2JqZWN0cyB9XSlcblxuICAvKipcbiAgICogd2hlbiBmb2N1cyBpcyBjaGFuZ2VkIGZyb20gdGV4dCBlZGl0aW5nLCBnZXQgZmluYWwgdGV4dCBhbmQgZG8gcHJvY2Vzc2luZyBvZiBmaW5hbCB0ZXh0XG4gICAqIEBwYXJhbSB7UmVhY3QuQ2hhbmdlRXZlbnQ8SFRNTFRleHRBcmVhRWxlbWVudD59IGV2ZW50IC0gRE9NIGV2ZW50IGluZm9cbiAgICovXG4gIGZ1bmN0aW9uIG9uQmx1cihldmVudDogUmVhY3QuQ2hhbmdlRXZlbnQ8SFRNTFRleHRBcmVhRWxlbWVudD4pIHtcbiAgICBjb25zdCBuZXdWZXJzZVRleHQgPSBldmVudD8udGFyZ2V0Py52YWx1ZSAvLyBnZXQgbmV3IHRleHRcbiAgICBzZXRTdGF0ZSh7IG5ld1RleHQ6IG5ld1ZlcnNlVGV4dCwgcHJvY2Vzc2luZ0VkaXQ6IHRydWUgfSkgLy8gc2hvdyBzcGlubmVyIHdoaWxlIHByb2Nlc3NpbmcgZWRpdCB0ZXh0XG4gICAgZGVsYXkoNTAwKS50aGVuKCgpID0+IHsgLy8gYWxsb3cgc3RhdGUgdG8gdXBkYXRlIGJlZm9yZSBwcm9jZXNzaW5nIG5ldyB0ZXh0XG4gICAgICBzZXRFZGl0aW5nKGZhbHNlLCBuZXdWZXJzZVRleHQpLnRoZW4oKCkgPT4geyAvLyBwcm9jZXNzIHRoZSBsYXRlc3QgZWRpdCB0ZXh0XG4gICAgICAgIHNldFN0YXRlKHtwcm9jZXNzaW5nRWRpdDogZmFsc2V9KSAvLyBub3cgZG9uZSwgcmVtb3ZlIHNwaW5uZXJcbiAgICAgIH0pXG4gICAgfSlcbiAgfVxuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7IC8vIG1vbml0b3IgZm9yIGVkaXQgc3RhdGUgY2hhbmdlcyBhbmQgY2FsbCBiYWNrIHRvIHNjcmlwdHVyZSBjYXJkIHdpdGggZWRpdCBzdGF0dXNcbiAgICBjb25zdCBfZWRpdGluZyA9IGVkaXRpbmcgfHwgcHJvY2Vzc2luZ0VkaXRcbiAgICBjb25zdCB2ZXJzZVJlZiA9IGAke3JlZmVyZW5jZS5jaGFwdGVyfToke3JlZmVyZW5jZS52ZXJzZX1gXG4gICAgc2V0RWRpdFZlcnNlICYmIHNldEVkaXRWZXJzZSh2ZXJzZVJlZiwgX2VkaXRpbmcpXG4gIH0sIFtlZGl0aW5nLCBwcm9jZXNzaW5nRWRpdF0pXG5cbiAgY29uc3QgdmVyc2VPYmplY3RzID0gY3VycmVudFZlcnNlT2JqZWN0cyB8fCBpbml0aWFsVmVyc2VPYmplY3RzIHx8IFtdXG4gIGNvbnN0IG5vV29yZHMgPSBSZWFjdC51c2VNZW1vKCgpID0+ICF2ZXJzZU9iamVjdHNIYXZlV29yZHModmVyc2VPYmplY3RzKSwgW2N1cnJlbnRWZXJzZU9iamVjdHMsIGluaXRpYWxWZXJzZU9iamVjdHNdKVxuXG4gIC8qKlxuICAgKiBkZXRlcm1pbmUgd2hhdCBVSSB0byBzaG93IGJhc2VkIG9uIHN0YXRlXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gZWRpdGluZyAtIGlmIHRydWUgc2hvdyBlZGl0IG1vZGVcbiAgICogQHBhcmFtIHtib29sZWFufSBlbmFibGVFZGl0IC0gaWYgdHJ1ZSB0aGVuIGVkaXQgaXMgZW5hYmxlZFxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IG5vV29yZHMgLSBpZiB0cnVlIHRoZW4gdGhlcmUgYXJlIG5vIGRpc3BsYXlhYmxlIHdvcmRzXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gcHJvY2Vzc2luZ0VkaXQgLSBpZiB0cnVlIHRoZW4gZWRpdCBpcyBiZWluZyBwcm9jZXNzZWRcbiAgICovXG4gIGZ1bmN0aW9uIHZlcnNlQ29udGVudChlZGl0aW5nLCBlbmFibGVFZGl0LCBub1dvcmRzLCBwcm9jZXNzaW5nRWRpdCkge1xuICAgIGlmIChwcm9jZXNzaW5nRWRpdCkgeyAvLyBwdXQgdXAgc3Bpbm5lciB3aGlsZSBwcm9jZXNzaW5nIHRoZSBlZGl0XG4gICAgICByZXR1cm4gPENpcmN1bGFyUHJvZ3Jlc3Mgc2l6ZT17NDB9Lz5cbiAgICB9XG5cbiAgICBpZiAoZWRpdGluZykge1xuICAgICAgcmV0dXJuIDx0ZXh0YXJlYVxuICAgICAgICBkZWZhdWx0VmFsdWU9e25ld1ZlcnNlVGV4dCB8fCBpbml0aWFsVmVyc2VUZXh0fVxuICAgICAgICBvbkJsdXI9e29uQmx1cn1cbiAgICAgICAgc3R5bGU9e3RleHRBcmVhU3R5bGV9XG4gICAgICAgIGF1dG9Gb2N1c1xuICAgICAgLz5cbiAgICB9XG5cbiAgICBjb25zdCBub1ZlcnNlQ29udGVudCA9IG5vV29yZHMgJiYgZW1wdHlDb250ZW50KHZlcnNlT2JqZWN0cyk7IC8vVFJJQ0tZIC0ganVzdCBiZWNhdXNlIHRoZXJlIGFyZSBubyB3b3JkcyBkb2Vzbid0IG1lYW4gdGhlcmUgaXMgbm90IHZpc2libGUgY29udGVudCwgc28gYWxzbyBjaGVjayBmb3IgdGhhdFxuICAgIGlmIChub1ZlcnNlQ29udGVudCAmJiBlbmFibGVFZGl0KSB7IC8vIHNob3cgYSBjbGlja2FibGUgbWVzc2FnZSBpbiB0aGUgY2FzZSB0aGF0IHRoZXJlIGlzIG5vIHRleHQgdG8gY2xpY2sgb25cbiAgICAgIHJldHVybiA8RW1wdHlDb250ZW50PlxuICAgICAgICBDbGljayB0byBFZGl0XG4gICAgICA8L0VtcHR5Q29udGVudD5cbiAgICB9XG5cbiAgICByZXR1cm4gPFZlcnNlT2JqZWN0c1xuICAgICAgdmVyc2VLZXk9e2Ake3JlZmVyZW5jZS5jaGFwdGVyfToke3JlZmVyZW5jZS52ZXJzZX1gfVxuICAgICAgdmVyc2VPYmplY3RzPXt2ZXJzZU9iamVjdHN9XG4gICAgICBkaXNhYmxlV29yZFBvcG92ZXI9e2Rpc2FibGVXb3JkUG9wb3Zlcn1cbiAgICAgIGdldExleGljb25EYXRhPXtnZXRMZXhpY29uRGF0YX1cbiAgICAgIHRyYW5zbGF0ZT17dHJhbnNsYXRlfVxuICAgIC8+XG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxDb250YWluZXIgc3R5bGU9e3sgZGlyZWN0aW9uLCB3aWR0aDogJzEwMCUnLCBwYWRkaW5nQm90dG9tOiAnMC41ZW0nIH19PlxuICAgICAge3Jlc291cmNlTWVzc2FnZSA/XG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgPGRpdiBzdHlsZT17TWVzc2FnZVN0eWxlfT5cbiAgICAgICAgICA8ZGl2IHN0eWxlPXt7IGZvbnRTaXplOiBgJHtmb250U2l6ZX0lYCB9fT4ge3Jlc291cmNlTWVzc2FnZX0gPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA6XG4gICAgICAgIDxDb250ZW50PlxuICAgICAgICAgIDxzcGFuIHN0eWxlPXtyZWZTdHlsZX0+IHtjaGFwdGVyfTp7dmVyc2V9Jm5ic3A7PC9zcGFuPlxuICAgICAgICAgIDxzcGFuIHN0eWxlPXtjb250ZW50U3R5bGV9IG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgIHNldEVkaXRpbmcgJiYgc2V0RWRpdGluZyh0cnVlKVxuICAgICAgICAgIH19XG4gICAgICAgICAgPlxuICAgICAgICAgICAge3ZlcnNlQ29udGVudChlZGl0aW5nLCBlbmFibGVFZGl0LCBub1dvcmRzLCBwcm9jZXNzaW5nRWRpdCl9XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L0NvbnRlbnQ+XG4gICAgICB9XG4gICAgPC9Db250YWluZXI+XG4gIClcbn1cblxuU2NyaXB0dXJlUGFuZS5kZWZhdWx0UHJvcHMgPSB7IHZlcnNlT2JqZWN0czogW10gfVxuXG5leHBvcnQgZGVmYXVsdCBTY3JpcHR1cmVQYW5lXG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU8sS0FBS0EsS0FBSyxNQUFNLE9BQU87QUFDOUIsT0FBT0Msb0JBQW9CLE1BQU0seUJBQXlCO0FBQzFELFNBQVNDLFlBQVksUUFBUSx5QkFBeUI7QUFDdEQsU0FBU0MseUJBQXlCLFFBQVEsa0JBQWtCO0FBQzVELFNBQVNDLGdCQUFnQixRQUFRLHVCQUF1QjtBQUN4RCxTQUFTQyxlQUFlLEVBQUVDLHNCQUFzQixRQUFRLGFBQWE7QUFDckUsU0FDRUMsS0FBSyxFQUNMQyxzQkFBc0IsRUFDdEJDLGtCQUFrQixFQUNsQkMsZ0JBQWdCLEVBQ2hCQyxxQkFBcUIsUUFDaEIsYUFBYTtBQUNwQixTQUFTQywyQkFBMkIsRUFBRUMseUJBQXlCLFFBQVEsdUNBQXVDO0FBQzlHLFNBQ0VDLFNBQVMsRUFDVEMsT0FBTyxFQUNQQyxZQUFZLFFBQ1AsVUFBVTtBQW1EakIsSUFBTUMsWUFBWSxHQUFHO0VBQ25CQyxTQUFTLEVBQUUsS0FBSztFQUNoQkMsVUFBVSxFQUFFLFVBQVU7RUFDdEJDLFVBQVUsRUFBRSxRQUFRO0VBQ3BCQyxPQUFPLEVBQUUsTUFBTTtFQUNmQyxjQUFjLEVBQUUsUUFBUTtFQUN4QkMsVUFBVSxFQUFFLFFBQVE7RUFDcEJDLE1BQU0sRUFBRSxNQUFNO0VBQ2RDLEtBQUssRUFBRSxNQUFNO0VBQ2JDLFFBQVEsRUFBRSxNQUFN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
311
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsInVzZURlZXBDb21wYXJlRWZmZWN0IiwiVmVyc2VPYmplY3RzIiwiVXNmbUZpbGVDb252ZXJzaW9uSGVscGVycyIsIkNpcmN1bGFyUHJvZ3Jlc3MiLCJCb29rT2JqZWN0c1R5cGUiLCJTY3JpcHR1cmVSZWZlcmVuY2VUeXBlIiwiZGVsYXkiLCJlbXB0eUNvbnRlbnQiLCJnZXRSZXNvdXJjZU1lc3NhZ2UiLCJMT0FESU5HX1JFU09VUkNFIiwidmVyc2VPYmplY3RzSGF2ZVdvcmRzIiwiU2NyaXB0dXJlQUxpZ25tZW50RWRpdFByb3BzIiwidXNlU2NyaXB0dXJlQWxpZ25tZW50RWRpdCIsIkNvbnRhaW5lciIsIkNvbnRlbnQiLCJFbXB0eUNvbnRlbnQiLCJNZXNzYWdlU3R5bGUiLCJkaXJlY3Rpb24iLCJ3aGl0ZVNwYWNlIiwibGluZUhlaWdodCIsImRpc3BsYXkiLCJqdXN0aWZ5Q29udGVudCIsImFsaWduSXRlbXMiLCJoZWlnaHQiLCJ3aWR0aCIsImZvbnRTaXplIiwiZm9udEZhbWlseSIsImZvbnRXZWlnaHQiLCJUZXh0QXJlYVN0eWxlIiwibWluV2lkdGgiLCJtaW5IZWlnaHQiLCJTY3JpcHR1cmVQYW5lIiwiX3JlZiIsIl9zY3JpcHR1cmVBbGlnbm1lbnRFZDMiLCJjdXJyZW50SW5kZXgiLCJjb250ZW50U3R5bGUiLCJkZXRlcm1pbmluZ0JyYW5jaCIsImRpc2FibGVXb3JkUG9wb3ZlciIsImdldExleGljb25EYXRhIiwiaXNOVCIsImlzVmVyc2VTZWxlY3RlZEZvckFsaWdubWVudCIsIm9uQWxpZ25tZW50RmluaXNoIiwib3JpZ2luYWxTY3JpcHR1cmVCb29rT2JqZWN0cyIsInJlZmVyZW5jZSIsInJlZlN0eWxlIiwicmVzb3VyY2VTdGF0dXMiLCJyZXNvdXJjZUxpbmsiLCJzYXZpbmciLCJzY3JpcHR1cmVBbGlnbm1lbnRFZGl0Q29uZmlnIiwic2V0RWRpdFZlcnNlIiwic2V0U2F2ZWRDaGFuZ2VzIiwic2V0V29yZEFsaWduZXJTdGF0dXMiLCJzZXJ2ZXIiLCJ0cmFuc2xhdGUiLCJ1cGRhdGVWZXJzZXNBbGlnbm1lbnRTdGF0dXMiLCJfUmVhY3QkdXNlU3RhdGUiLCJ1c2VTdGF0ZSIsImRvaW5nQWxpZ25tZW50IiwibmV3VGV4dCIsInByb2Nlc3NpbmdFZGl0IiwiX1JlYWN0JHVzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5Iiwic3RhdGUiLCJzZXRTdGF0ZV8iLCJzZXRTdGF0ZSIsIm5ld1N0YXRlIiwicHJldlN0YXRlIiwiX29iamVjdFNwcmVhZCIsIl9SZWFjdCR1c2VTdGF0ZTMiLCJfUmVhY3QkdXNlU3RhdGU0IiwiaW5pdGlhbFZlcnNlVGV4dCIsInNldEluaXRpYWxWZXJzZVRleHQiLCJyZXNvdXJjZU1lc3NhZ2UiLCJfcmVmMiIsImNoYXB0ZXIiLCJib29rSWQiLCJ2ZXJzZSIsIl9zY3JpcHR1cmVBbGlnbm1lbnRFZGl0Q29uZmlnIiwiX3NjcmlwdHVyZUFsaWdubWVudEVkaXQiLCJfc2NyaXB0dXJlQWxpZ25tZW50RWQiLCJhY3Rpb25zIiwiY2xlYXJDaGFuZ2VzIiwiaGFuZGxlQWxpZ25tZW50Q2xpY2siLCJzZXRFZGl0aW5nIiwic2V0VmVyc2VDaGFuZ2VkIiwiX3NjcmlwdHVyZUFsaWdubWVudEVkMiIsImFsaWduZWQiLCJhbGlnbmVyRGF0YSIsImN1cnJlbnRWZXJzZU9iamVjdHMiLCJlZGl0aW5nIiwiZW5hYmxlRWRpdCIsImluaXRpYWxWZXJzZU9iamVjdHMiLCJuZXdWZXJzZVRleHQiLCJ1c2VFZmZlY3QiLCJjb25zb2xlIiwibG9nIiwiY2FsY3VsYXRlZEZvbnRTaXplIiwidXNlTWVtbyIsInBhcnNlRmxvYXQiLCJ0ZXh0QXJlYVN0eWxlIiwidmVyc2VUZXh0IiwiZ2V0VXNmbUZvclZlcnNlQ29udGVudCIsInZlcnNlT2JqZWN0cyIsIm9uQmx1ciIsImV2ZW50IiwiX2V2ZW50JHRhcmdldCIsInRhcmdldCIsInZhbHVlIiwidGhlbiIsIl9lZGl0aW5nIiwidmVyc2VSZWYiLCJjb25jYXQiLCJub1dvcmRzIiwidmVyc2VDb250ZW50IiwiY3JlYXRlRWxlbWVudCIsInNpemUiLCJkZWZhdWx0VmFsdWUiLCJzdHlsZSIsImF1dG9Gb2N1cyIsIm5vVmVyc2VDb250ZW50IiwidmVyc2VLZXkiLCJwYWRkaW5nQm90dG9tIiwib25DbGljayIsImRlZmF1bHRQcm9wcyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL1NjcmlwdHVyZVBhbmUvU2NyaXB0dXJlUGFuZS50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnXG5pbXBvcnQgdXNlRGVlcENvbXBhcmVFZmZlY3QgZnJvbSAndXNlLWRlZXAtY29tcGFyZS1lZmZlY3QnXG5pbXBvcnQgeyBWZXJzZU9iamVjdHMgfSBmcm9tICdzY3JpcHR1cmUtcmVzb3VyY2VzLXJjbCdcbmltcG9ydCB7IFVzZm1GaWxlQ29udmVyc2lvbkhlbHBlcnMgfSBmcm9tICd3b3JkLWFsaWduZXItcmNsJ1xuaW1wb3J0IHsgQ2lyY3VsYXJQcm9ncmVzcyB9IGZyb20gJ3RyYW5zbGF0aW9uLWhlbHBzLXJjbCdcbmltcG9ydCB7IEJvb2tPYmplY3RzVHlwZSwgU2NyaXB0dXJlUmVmZXJlbmNlVHlwZSB9IGZyb20gJy4uLy4uL3R5cGVzJ1xuaW1wb3J0IHtcbiAgZGVsYXksXG4gIGVtcHR5Q29udGVudCxcbiAgZ2V0UmVzb3VyY2VNZXNzYWdlLFxuICBMT0FESU5HX1JFU09VUkNFLFxuICB2ZXJzZU9iamVjdHNIYXZlV29yZHMsXG59IGZyb20gJy4uLy4uL3V0aWxzJ1xuaW1wb3J0IHsgU2NyaXB0dXJlQUxpZ25tZW50RWRpdFByb3BzLCB1c2VTY3JpcHR1cmVBbGlnbm1lbnRFZGl0IH0gZnJvbSAnLi4vLi4vaG9va3MvdXNlU2NyaXB0dXJlQWxpZ25tZW50RWRpdCdcbmltcG9ydCB7XG4gIENvbnRhaW5lcixcbiAgQ29udGVudCxcbiAgRW1wdHlDb250ZW50LFxufSBmcm9tICcuL3N0eWxlZCdcblxuaW50ZXJmYWNlIFByb3BzIHtcbiAgLyoqIG9wdGlvbmFsIHN0eWxlcyB0byB1c2UgZm9yIGNvbnRlbnQgKiovXG4gIGNvbnRlbnRTdHlsZTogYW55O1xuICAvLyBpbmRleCBudW1iZXIgZm9yIHRoaXMgc2NyaXB0dXJlIHBhbmVcbiAgY3VycmVudEluZGV4OiBudW1iZXIsXG4gIC8vIHdhaXRpbmcgdG8gZGV0ZXJtaW5lIGJyYW5jaFxuICBkZXRlcm1pbmluZ0JyYW5jaDogYm9vbGVhbixcbiAgLyoqIGxhbmd1YWdlIGRpcmVjdGlvbiB0byB1c2UgKiovXG4gIGRpcmVjdGlvbjogc3RyaW5nfHVuZGVmaW5lZDtcbiAgLyoqIGlmIHRydWUgdGhlbiBkbyBub3QgZGlzcGxheSBsZXhpY29uIHBvcG92ZXIgb24gaG92ZXIgKiovXG4gIGRpc2FibGVXb3JkUG9wb3ZlcjogYm9vbGVhbnx1bmRlZmluZWQ7XG4gIC8qKiBmb250IHNpemUgZm9yIG1lc3NhZ2VzICovXG4gIGZvbnRTaXplOiBudW1iZXI7XG4gIC8qKiBmdW5jdGlvbiB0byBnZXQgbGF0ZXN0IGxleGljb24gZGF0YSAqL1xuICBnZXRMZXhpY29uRGF0YTogRnVuY3Rpb247XG4gIC8qKiB0cnVlIGlmIGJyb3dzaW5nIE5UICovXG4gIGlzTlQ6IGJvb2xlYW47XG4gIC8qKiB3aGV0aGVyIG9yIG5vdCB0aGlzIGN1cnJlbnQgdmVyc2UgaGFzIGJlZW4gc2VsZWN0ZWQgZm9yIGFsaWdubWVudCAqL1xuICBpc1ZlcnNlU2VsZWN0ZWRGb3JBbGlnbm1lbnQ6IGJvb2xlYW47XG4gIC8qKiBmdW5jdGlvbiB0byBiZSBjYWxsZWQgd2hlbiB2ZXJzZSBhbGlnbm1lbnQgaGFzIGZpbmlzaGVkICovXG4gIG9uQWxpZ25tZW50RmluaXNoOiBGdW5jdGlvbjtcbiAgLy8gb3JpZ2luYWwgc2NyaXB0dXJlIGJvb2tPYmplY3RzIGZvciBjdXJyZW50IGJvb2tcbiAgb3JpZ2luYWxTY3JpcHR1cmVCb29rT2JqZWN0czogQm9va09iamVjdHNUeXBlLFxuICAvKiogY3VycmVudCByZWZlcmVuY2UgKiovXG4gIHJlZmVyZW5jZTogU2NyaXB0dXJlUmVmZXJlbmNlVHlwZTtcbiAgLyoqIG9wdGlvbmFsIHN0eWxlcyB0byB1c2UgZm9yIHJlZmVyZW5jZSAqKi9cbiAgcmVmU3R5bGU6IGFueTtcbiAgLyoqIG9iamVjdCB0aGF0IGNvbnRhaW5zIHJlc291cmNlIGxvYWRpbmcgc3RhdHVzIG9yIGZldGNoaW5nIGVycm9ycyAqL1xuICByZXNvdXJjZVN0YXR1czogb2JqZWN0fHVuZGVmaW5lZDtcbiAgLyoqIHJlc291cmNlIHRoYXQgd2FzIGxvYWRlZCAqL1xuICByZXNvdXJjZUxpbms6IHN0cmluZ3x1bmRlZmluZWQ7XG4gIC8qKiB0cnVlIGlmIGN1cnJlbnRseSBzYXZpbmcgdXBkYXRlZCB0ZXh0IGFuZCBhbGlnbm1lbnRzICovXG4gIHNhdmluZzogYm9vbGVhbjtcbiAgLy8gaW5pdGlhbGl6YXRpb24gZm9yIHVzZVNjcmlwdHVyZUFsaWdubWVudEVkaXRcbiAgc2NyaXB0dXJlQWxpZ25tZW50RWRpdENvbmZpZzogU2NyaXB0dXJlQUxpZ25tZW50RWRpdFByb3BzLFxuICAvKiogc2VydmVyICovXG4gIHNlcnZlcjogc3RyaW5nfHVuZGVmaW5lZDtcbiAgLyoqIGNhbGxiYWNrIHRvIGZsYWcgdGhhdCB3ZSBhcmUgZWRpdGluZyAqL1xuICBzZXRFZGl0VmVyc2U6IEZ1bmN0aW9uO1xuICAvKiogY2FsbGJhY2sgdG8gZmxhZyB1bnNhdmVkIHN0YXR1cyAqL1xuICBzZXRTYXZlZENoYW5nZXM6IEZ1bmN0aW9uO1xuICAvLyBjYWxsYmFjayBmb3IgY2hhbmdlIGluIHdvcmQgYWxpZ25tZW50IHN0YXR1c1xuICBzZXRXb3JkQWxpZ25lclN0YXR1czogRnVuY3Rpb247XG4gIC8qKiBvcHRpb25hbCBmdW5jdGlvbiBmb3IgbG9jYWxpemF0aW9uICovXG4gIHRyYW5zbGF0ZTogRnVuY3Rpb247XG4gIC8qKiBmdW5jdGlvbiB0byBiZSBjYWxsZWQgdG8gdXBkYXRlIHZlcnNlIGFsaWdubWVudCBzdGF0dXMgKi9cbiAgdXBkYXRlVmVyc2VzQWxpZ25tZW50U3RhdHVzOiBGdW5jdGlvbjtcbn1cblxuY29uc3QgTWVzc2FnZVN0eWxlID0ge1xuICBkaXJlY3Rpb246ICdsdHInLFxuICB3aGl0ZVNwYWNlOiAncHJlLXdyYXAnLFxuICBsaW5lSGVpZ2h0OiAnbm9ybWFsJyxcbiAgZGlzcGxheTogJ2ZsZXgnLFxuICBqdXN0aWZ5Q29udGVudDogJ2NlbnRlcicsXG4gIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICBoZWlnaHQ6ICcxMDAlJyxcbiAgd2lkdGg6ICcxMDAlJyxcbiAgZm9udFNpemU6ICcxNnB4JyxcbiAgZm9udEZhbWlseTogJ05vdG8gU2FucycsXG4gIGZvbnRXZWlnaHQ6ICdib2xkJyxcbn1cblxuY29uc3QgVGV4dEFyZWFTdHlsZSA9IHtcbiAgaGVpZ2h0OiAnNjAlJyxcbiAgd2lkdGg6ICcxMDAlJyxcbiAgbWluV2lkdGg6ICcyMjBweCcsXG4gIG1pbkhlaWdodDogJzEwMHB4JyxcbiAgZm9udFNpemU6ICcxNnB4Jyxcbn1cblxuZnVuY3Rpb24gU2NyaXB0dXJlUGFuZSh7XG4gIGN1cnJlbnRJbmRleCxcbiAgY29udGVudFN0eWxlLFxuICBkZXRlcm1pbmluZ0JyYW5jaCxcbiAgZGlyZWN0aW9uLFxuICBkaXNhYmxlV29yZFBvcG92ZXIsXG4gIGZvbnRTaXplLFxuICBnZXRMZXhpY29uRGF0YSxcbiAgaXNOVCxcbiAgaXNWZXJzZVNlbGVjdGVkRm9yQWxpZ25tZW50LFxuICBvbkFsaWdubWVudEZpbmlzaCxcbiAgb3JpZ2luYWxTY3JpcHR1cmVCb29rT2JqZWN0cyxcbiAgcmVmZXJlbmNlLFxuICByZWZTdHlsZSxcbiAgcmVzb3VyY2VTdGF0dXMsXG4gIHJlc291cmNlTGluayxcbiAgc2F2aW5nLFxuICBzY3JpcHR1cmVBbGlnbm1lbnRFZGl0Q29uZmlnLFxuICBzZXRFZGl0VmVyc2UsXG4gIHNldFNhdmVkQ2hhbmdlcyxcbiAgc2V0V29yZEFsaWduZXJTdGF0dXMsXG4gIHNlcnZlcixcbiAgdHJhbnNsYXRlLFxuICB1cGRhdGVWZXJzZXNBbGlnbm1lbnRTdGF0dXMsXG59IDogUHJvcHMpIHtcbiAgY29uc3QgW3N0YXRlLCBzZXRTdGF0ZV9dID0gUmVhY3QudXNlU3RhdGUoe1xuICAgIGRvaW5nQWxpZ25tZW50OiBmYWxzZSxcbiAgICBuZXdUZXh0OiBudWxsLFxuICAgIHByb2Nlc3NpbmdFZGl0OiBmYWxzZSxcbiAgfSlcbiAgY29uc3Qge1xuICAgIGRvaW5nQWxpZ25tZW50LFxuICAgIG5ld1RleHQsXG4gICAgcHJvY2Vzc2luZ0VkaXQsIC8vIHRydWUgd2hlbiB3ZSBhcmUgcHJvY2Vzc2luZyBlZGl0IHRleHQgYWZ0ZXIgb25CbHVyXG4gIH0gPSBzdGF0ZVxuXG4gIGZ1bmN0aW9uIHNldFN0YXRlKG5ld1N0YXRlKSB7XG4gICAgc2V0U3RhdGVfKHByZXZTdGF0ZSA9PiAoeyAuLi5wcmV2U3RhdGUsIC4uLm5ld1N0YXRlIH0pKVxuICB9XG5cbiAgY29uc3QgW2luaXRpYWxWZXJzZVRleHQsIHNldEluaXRpYWxWZXJzZVRleHRdID0gUmVhY3QudXNlU3RhdGUobnVsbClcblxuICBsZXQgcmVzb3VyY2VNZXNzYWdlID0gJydcblxuICBpZiAoc2F2aW5nKSB7XG4gICAgcmVzb3VyY2VNZXNzYWdlID0gJ1NhdmluZyBDaGFuZ2VzLi4uJ1xuICB9IGVsc2UgaWYgKGRldGVybWluaW5nQnJhbmNoKSB7XG4gICAgcmVzb3VyY2VNZXNzYWdlID0gJ1ByZS0nICsgTE9BRElOR19SRVNPVVJDRVxuICB9IGVsc2Uge1xuICAgIHJlc291cmNlTWVzc2FnZSA9IGdldFJlc291cmNlTWVzc2FnZShyZXNvdXJjZVN0YXR1cywgc2VydmVyLCByZXNvdXJjZUxpbmssIGlzTlQpXG4gIH1cblxuICBjb25zdCB7XG4gICAgY2hhcHRlcixcbiAgICBib29rSWQsXG4gICAgdmVyc2UsXG4gIH0gPSByZWZlcmVuY2UgfHwge31cbiAgZGlyZWN0aW9uID0gZGlyZWN0aW9uIHx8ICdsdHInXG5cbiAgcmVmU3R5bGUgPSByZWZTdHlsZSB8fCB7XG4gICAgZm9udEZhbWlseTogJ05vdG8gU2FucycsXG4gICAgZm9udFNpemU6ICc5MCUnLFxuICB9XG5cbiAgY29udGVudFN0eWxlID0gY29udGVudFN0eWxlIHx8IHtcbiAgICBmb250RmFtaWx5OiAnTm90byBTYW5zJyxcbiAgICBmb250U2l6ZTogJzEwMCUnLFxuICB9XG5cbiAgY29uc3QgX3NjcmlwdHVyZUFsaWdubWVudEVkaXRDb25maWcgPSB7XG4gICAgLi4uc2NyaXB0dXJlQWxpZ25tZW50RWRpdENvbmZpZyxcbiAgICBpbml0aWFsVmVyc2VUZXh0LFxuICAgIG9yaWdpbmFsU2NyaXB0dXJlQm9va09iamVjdHMsXG4gIH1cblxuICBjb25zdCBfc2NyaXB0dXJlQWxpZ25tZW50RWRpdCA9IHVzZVNjcmlwdHVyZUFsaWdubWVudEVkaXQoX3NjcmlwdHVyZUFsaWdubWVudEVkaXRDb25maWcpXG4gIGNvbnN0IHtcbiAgICBhY3Rpb25zOiB7XG4gICAgICBjbGVhckNoYW5nZXMsXG4gICAgICBoYW5kbGVBbGlnbm1lbnRDbGljayxcbiAgICAgIHNldEVkaXRpbmcsXG4gICAgICBzZXRWZXJzZUNoYW5nZWQsXG4gICAgfSxcbiAgICBzdGF0ZToge1xuICAgICAgYWxpZ25lZCxcbiAgICAgIGFsaWduZXJEYXRhLFxuICAgICAgY3VycmVudFZlcnNlT2JqZWN0cyxcbiAgICAgIGVkaXRpbmcsXG4gICAgICBlbmFibGVFZGl0LFxuICAgICAgaW5pdGlhbFZlcnNlT2JqZWN0cyxcbiAgICAgIG5ld1ZlcnNlVGV4dCxcbiAgICB9LFxuICB9ID0gX3NjcmlwdHVyZUFsaWdubWVudEVkaXRcblxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4geyAvLyBtb25pdG9yIGlmIHdlIG5lZWQgdG8gc3RhcnQgYWxpZ25tZW50XG4gICAgaWYgKGlzVmVyc2VTZWxlY3RlZEZvckFsaWdubWVudCAmJiAhYWxpZ25lckRhdGEgJiYgIWRvaW5nQWxpZ25tZW50KSB7IC8vIGNoZWNrIGlmIGVkaXQgZm9yIHRoaXMgdmVyc2UgaXMgc2VsZWN0ZWQgYW5kIG5vdCBhbHJlYWR5IGRvaW5nIGFsaWdubWVudFxuICAgICAgaWYgKCFlZGl0aW5nICYmICFwcm9jZXNzaW5nRWRpdCkgeyAvLyBtYWtlIHN1cmUgbm90IHN0aWxsIGVkaXRpbmcgb3IgcHJvY2Vzc2luZyBlZGl0XG4gICAgICAgIGNvbnNvbGUubG9nKGBTY3JpcHR1cmVQYW5lIC0gdmVyc2Ugc2VsZWN0ZWQgZm9yIGFsaWdubWVudGAsIHJlZmVyZW5jZSlcbiAgICAgICAgaGFuZGxlQWxpZ25tZW50Q2xpY2soKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc29sZS5sb2coYFNjcmlwdHVyZVBhbmUgLSBzdGlsbCBlZGl0aW5nIHZlcnNlLCBub3QgcmVhZHkgZm9yIGFsaWdubWVudGAsIHtlZGl0aW5nLCBwcm9jZXNzaW5nRWRpdH0pXG4gICAgICB9XG4gICAgfVxuICB9LCBbaXNWZXJzZVNlbGVjdGVkRm9yQWxpZ25tZW50LCBhbGlnbmVyRGF0YSwgZG9pbmdBbGlnbm1lbnQsIGVkaXRpbmcsIHByb2Nlc3NpbmdFZGl0XSlcblxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgIHVwZGF0ZVZlcnNlc0FsaWdubWVudFN0YXR1cyAmJiB1cGRhdGVWZXJzZXNBbGlnbm1lbnRTdGF0dXMocmVmZXJlbmNlLCBhbGlnbmVkKVxuICB9LCBbYWxpZ25lZCwgY2hhcHRlciwgdmVyc2UsIGJvb2tJZF0pXG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoYWxpZ25lckRhdGEgJiYgIWRvaW5nQWxpZ25tZW50KSB7XG4gICAgICBzZXRXb3JkQWxpZ25lclN0YXR1cyAmJiBzZXRXb3JkQWxpZ25lclN0YXR1cyhfc2NyaXB0dXJlQWxpZ25tZW50RWRpdClcbiAgICAgIHNldFN0YXRlKHsgZG9pbmdBbGlnbm1lbnQ6IHRydWUgfSlcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKCFkb2luZ0FsaWdubWVudCkge1xuICAgICAgICBjb25zb2xlLmxvZyhgU2NyaXB0dXJlUGFuZSAtIGFsaWduZXJEYXRhIHdlbnQgZmFsc2UgdW5leHBlY3RlZGAsIHsgcmVmZXJlbmNlLCBhbGlnbmVyRGF0YSwgZG9pbmdBbGlnbm1lbnQgfSlcbiAgICAgIH1cblxuICAgICAgc2V0V29yZEFsaWduZXJTdGF0dXMgJiYgc2V0V29yZEFsaWduZXJTdGF0dXMoX3NjcmlwdHVyZUFsaWdubWVudEVkaXQpXG4gICAgICBzZXRTdGF0ZSh7IGRvaW5nQWxpZ25tZW50OiBmYWxzZSB9KVxuICAgICAgb25BbGlnbm1lbnRGaW5pc2ggJiYgb25BbGlnbm1lbnRGaW5pc2goKVxuICAgIH1cbiAgfSwgW19zY3JpcHR1cmVBbGlnbm1lbnRFZGl0Py5zdGF0ZT8uYWxpZ25lckRhdGFdKVxuXG4gIC8vIGR5bmFtaWNhbGx5IGFkanVzdCBmb250IHNpemVcbiAgY29uc3QgY2FsY3VsYXRlZEZvbnRTaXplID0gUmVhY3QudXNlTWVtbygoKSA9PiAoXG4gICAgcGFyc2VGbG9hdChUZXh0QXJlYVN0eWxlLmZvbnRTaXplKSAqIGZvbnRTaXplIC8gMTAwICsgJ3B4J1xuICApLCBbZm9udFNpemVdKVxuXG4gIGNvbnN0IHRleHRBcmVhU3R5bGUgPSB7XG4gICAgLi4uY29udGVudFN0eWxlLFxuICAgIC4uLlRleHRBcmVhU3R5bGUsXG4gICAgZm9udFNpemU6IGNhbGN1bGF0ZWRGb250U2l6ZSxcbiAgfVxuXG4gIHVzZURlZXBDb21wYXJlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCB2ZXJzZVRleHQgPSBVc2ZtRmlsZUNvbnZlcnNpb25IZWxwZXJzLmdldFVzZm1Gb3JWZXJzZUNvbnRlbnQoeyB2ZXJzZU9iamVjdHM6IGluaXRpYWxWZXJzZU9iamVjdHMgfSlcbiAgICBjbGVhckNoYW5nZXMoKVxuICAgIHNldEluaXRpYWxWZXJzZVRleHQodmVyc2VUZXh0KVxuICAgIHNldFN0YXRlKHsgbmV3VGV4dDogbnVsbCB9KVxuICB9LCBbeyByZWZlcmVuY2UsIGluaXRpYWxWZXJzZU9iamVjdHMgfV0pXG5cbiAgLyoqXG4gICAqIHdoZW4gZm9jdXMgaXMgY2hhbmdlZCBmcm9tIHRleHQgZWRpdGluZywgZ2V0IGZpbmFsIHRleHQgYW5kIGRvIHByb2Nlc3Npbmcgb2YgZmluYWwgdGV4dFxuICAgKiBAcGFyYW0ge1JlYWN0LkNoYW5nZUV2ZW50PEhUTUxUZXh0QXJlYUVsZW1lbnQ+fSBldmVudCAtIERPTSBldmVudCBpbmZvXG4gICAqL1xuICBmdW5jdGlvbiBvbkJsdXIoZXZlbnQ6IFJlYWN0LkNoYW5nZUV2ZW50PEhUTUxUZXh0QXJlYUVsZW1lbnQ+KSB7XG4gICAgY29uc3QgbmV3VmVyc2VUZXh0ID0gZXZlbnQ/LnRhcmdldD8udmFsdWUgLy8gZ2V0IG5ldyB0ZXh0XG4gICAgc2V0U3RhdGUoeyBuZXdUZXh0OiBuZXdWZXJzZVRleHQsIHByb2Nlc3NpbmdFZGl0OiB0cnVlIH0pIC8vIHNob3cgc3Bpbm5lciB3aGlsZSBwcm9jZXNzaW5nIGVkaXQgdGV4dFxuICAgIGRlbGF5KDUwMCkudGhlbigoKSA9PiB7IC8vIGFsbG93IHN0YXRlIHRvIHVwZGF0ZSBiZWZvcmUgcHJvY2Vzc2luZyBuZXcgdGV4dFxuICAgICAgc2V0RWRpdGluZyhmYWxzZSwgbmV3VmVyc2VUZXh0KS50aGVuKCgpID0+IHsgLy8gcHJvY2VzcyB0aGUgbGF0ZXN0IGVkaXQgdGV4dFxuICAgICAgICBzZXRTdGF0ZSh7cHJvY2Vzc2luZ0VkaXQ6IGZhbHNlfSkgLy8gbm93IGRvbmUsIHJlbW92ZSBzcGlubmVyXG4gICAgICB9KVxuICAgIH0pXG4gIH1cblxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4geyAvLyBtb25pdG9yIGZvciBlZGl0IHN0YXRlIGNoYW5nZXMgYW5kIGNhbGwgYmFjayB0byBzY3JpcHR1cmUgY2FyZCB3aXRoIGVkaXQgc3RhdHVzXG4gICAgY29uc3QgX2VkaXRpbmcgPSBlZGl0aW5nIHx8IHByb2Nlc3NpbmdFZGl0XG4gICAgY29uc3QgdmVyc2VSZWYgPSBgJHtyZWZlcmVuY2UuY2hhcHRlcn06JHtyZWZlcmVuY2UudmVyc2V9YFxuICAgIHNldEVkaXRWZXJzZSAmJiBzZXRFZGl0VmVyc2UodmVyc2VSZWYsIF9lZGl0aW5nKVxuICB9LCBbZWRpdGluZywgcHJvY2Vzc2luZ0VkaXRdKVxuXG4gIGNvbnN0IHZlcnNlT2JqZWN0cyA9IGN1cnJlbnRWZXJzZU9iamVjdHMgfHwgaW5pdGlhbFZlcnNlT2JqZWN0cyB8fCBbXVxuICBjb25zdCBub1dvcmRzID0gUmVhY3QudXNlTWVtbygoKSA9PiAhdmVyc2VPYmplY3RzSGF2ZVdvcmRzKHZlcnNlT2JqZWN0cyksIFtjdXJyZW50VmVyc2VPYmplY3RzLCBpbml0aWFsVmVyc2VPYmplY3RzXSlcblxuICAvKipcbiAgICogZGV0ZXJtaW5lIHdoYXQgVUkgdG8gc2hvdyBiYXNlZCBvbiBzdGF0ZVxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IGVkaXRpbmcgLSBpZiB0cnVlIHNob3cgZWRpdCBtb2RlXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gZW5hYmxlRWRpdCAtIGlmIHRydWUgdGhlbiBlZGl0IGlzIGVuYWJsZWRcbiAgICogQHBhcmFtIHtib29sZWFufSBub1dvcmRzIC0gaWYgdHJ1ZSB0aGVuIHRoZXJlIGFyZSBubyBkaXNwbGF5YWJsZSB3b3Jkc1xuICAgKiBAcGFyYW0ge2Jvb2xlYW59IHByb2Nlc3NpbmdFZGl0IC0gaWYgdHJ1ZSB0aGVuIGVkaXQgaXMgYmVpbmcgcHJvY2Vzc2VkXG4gICAqL1xuICBmdW5jdGlvbiB2ZXJzZUNvbnRlbnQoZWRpdGluZywgZW5hYmxlRWRpdCwgbm9Xb3JkcywgcHJvY2Vzc2luZ0VkaXQpIHtcbiAgICBpZiAocHJvY2Vzc2luZ0VkaXQpIHsgLy8gcHV0IHVwIHNwaW5uZXIgd2hpbGUgcHJvY2Vzc2luZyB0aGUgZWRpdFxuICAgICAgcmV0dXJuIDxDaXJjdWxhclByb2dyZXNzIHNpemU9ezQwfS8+XG4gICAgfVxuXG4gICAgaWYgKGVkaXRpbmcpIHtcbiAgICAgIHJldHVybiA8dGV4dGFyZWFcbiAgICAgICAgZGVmYXVsdFZhbHVlPXtuZXdWZXJzZVRleHQgfHwgaW5pdGlhbFZlcnNlVGV4dH1cbiAgICAgICAgb25CbHVyPXtvbkJsdXJ9XG4gICAgICAgIHN0eWxlPXt0ZXh0QXJlYVN0eWxlfVxuICAgICAgICBhdXRvRm9jdXNcbiAgICAgIC8+XG4gICAgfVxuXG4gICAgY29uc3Qgbm9WZXJzZUNvbnRlbnQgPSBub1dvcmRzICYmIGVtcHR5Q29udGVudCh2ZXJzZU9iamVjdHMpOyAvL1RSSUNLWSAtIGp1c3QgYmVjYXVzZSB0aGVyZSBhcmUgbm8gd29yZHMgZG9lc24ndCBtZWFuIHRoZXJlIGlzIG5vdCB2aXNpYmxlIGNvbnRlbnQsIHNvIGFsc28gY2hlY2sgZm9yIHRoYXRcbiAgICBpZiAobm9WZXJzZUNvbnRlbnQgJiYgZW5hYmxlRWRpdCkgeyAvLyBzaG93IGEgY2xpY2thYmxlIG1lc3NhZ2UgaW4gdGhlIGNhc2UgdGhhdCB0aGVyZSBpcyBubyB0ZXh0IHRvIGNsaWNrIG9uXG4gICAgICByZXR1cm4gPEVtcHR5Q29udGVudD5cbiAgICAgICAgQ2xpY2sgdG8gRWRpdFxuICAgICAgPC9FbXB0eUNvbnRlbnQ+XG4gICAgfVxuXG4gICAgcmV0dXJuIDxWZXJzZU9iamVjdHNcbiAgICAgIHZlcnNlS2V5PXtgJHtyZWZlcmVuY2UuY2hhcHRlcn06JHtyZWZlcmVuY2UudmVyc2V9YH1cbiAgICAgIHZlcnNlT2JqZWN0cz17dmVyc2VPYmplY3RzfVxuICAgICAgZGlzYWJsZVdvcmRQb3BvdmVyPXtkaXNhYmxlV29yZFBvcG92ZXJ9XG4gICAgICBnZXRMZXhpY29uRGF0YT17Z2V0TGV4aWNvbkRhdGF9XG4gICAgICB0cmFuc2xhdGU9e3RyYW5zbGF0ZX1cbiAgICAvPlxuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8Q29udGFpbmVyIHN0eWxlPXt7IGRpcmVjdGlvbiwgd2lkdGg6ICcxMDAlJywgcGFkZGluZ0JvdHRvbTogJzAuNWVtJyB9fT5cbiAgICAgIHtyZXNvdXJjZU1lc3NhZ2UgP1xuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIDxkaXYgc3R5bGU9e01lc3NhZ2VTdHlsZX0+XG4gICAgICAgICAgPGRpdiBzdHlsZT17eyBmb250U2l6ZTogYCR7Zm9udFNpemV9JWAgfX0+IHtyZXNvdXJjZU1lc3NhZ2V9IDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgOlxuICAgICAgICA8Q29udGVudD5cbiAgICAgICAgICA8c3BhbiBzdHlsZT17cmVmU3R5bGV9PiB7Y2hhcHRlcn06e3ZlcnNlfSZuYnNwOzwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiBzdHlsZT17Y29udGVudFN0eWxlfSBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICBzZXRFZGl0aW5nICYmIHNldEVkaXRpbmcodHJ1ZSlcbiAgICAgICAgICB9fVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHt2ZXJzZUNvbnRlbnQoZWRpdGluZywgZW5hYmxlRWRpdCwgbm9Xb3JkcywgcHJvY2Vzc2luZ0VkaXQpfVxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9Db250ZW50PlxuICAgICAgfVxuICAgIDwvQ29udGFpbmVyPlxuICApXG59XG5cblNjcmlwdHVyZVBhbmUuZGVmYXVsdFByb3BzID0geyB2ZXJzZU9iamVjdHM6IFtdIH1cblxuZXhwb3J0IGRlZmF1bHQgU2NyaXB0dXJlUGFuZVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxPQUFPLEtBQUtBLEtBQUssTUFBTSxPQUFPO0FBQzlCLE9BQU9DLG9CQUFvQixNQUFNLHlCQUF5QjtBQUMxRCxTQUFTQyxZQUFZLFFBQVEseUJBQXlCO0FBQ3RELFNBQVNDLHlCQUF5QixRQUFRLGtCQUFrQjtBQUM1RCxTQUFTQyxnQkFBZ0IsUUFBUSx1QkFBdUI7QUFDeEQsU0FBU0MsZUFBZSxFQUFFQyxzQkFBc0IsUUFBUSxhQUFhO0FBQ3JFLFNBQ0VDLEtBQUssRUFDTEMsWUFBWSxFQUNaQyxrQkFBa0IsRUFDbEJDLGdCQUFnQixFQUNoQkMscUJBQXFCLFFBQ2hCLGFBQWE7QUFDcEIsU0FBU0Ms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
@@ -533,6 +533,21 @@ export function findNonWhiteSpaceChars(verseObjects) {
533
533
  return false;
534
534
  }
535
535
 
536
+ /**
537
+ * Checks if the given content is empty by verifying the presence of non-whitespace characters
538
+ * or if the provided verseObjects array is empty or undefined.
539
+ *
540
+ * @param {Array} verseObjects - An array of verse objects to be checked.
541
+ * @return {boolean} Returns true if the content is empty or contains only whitespace, false otherwise.
542
+ */
543
+ export function emptyContent(verseObjects) {
544
+ var hasNoVerses = !(verseObjects !== null && verseObjects !== void 0 && verseObjects.length);
545
+ if (hasNoVerses) {
546
+ return true;
547
+ }
548
+ return !findNonWhiteSpaceChars(verseObjects);
549
+ }
550
+
536
551
  /**
537
552
  * extract just the alignments from verseObjects
538
553
  * @param {VerseObjectsType} verseObjects
@@ -686,4 +701,4 @@ function _fetchBibleBook() {
686
701
  }));
687
702
  return _fetchBibleBook.apply(this, arguments);
688
703
  }
689
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVnZW5lcmF0b3JSdW50aW1lIiwiZSIsInQiLCJyIiwiT2JqZWN0IiwicHJvdG90eXBlIiwibiIsImhhc093blByb3BlcnR5IiwibyIsImRlZmluZVByb3BlcnR5IiwidmFsdWUiLCJpIiwiU3ltYm9sIiwiYSIsIml0ZXJhdG9yIiwiYyIsImFzeW5jSXRlcmF0b3IiLCJ1IiwidG9TdHJpbmdUYWciLCJkZWZpbmUiLCJlbnVtZXJhYmxlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJ3cmFwIiwiR2VuZXJhdG9yIiwiY3JlYXRlIiwiQ29udGV4dCIsIm1ha2VJbnZva2VNZXRob2QiLCJ0cnlDYXRjaCIsInR5cGUiLCJhcmciLCJjYWxsIiwiaCIsImwiLCJmIiwicyIsInkiLCJHZW5lcmF0b3JGdW5jdGlvbiIsIkdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlIiwicCIsImQiLCJnZXRQcm90b3R5cGVPZiIsInYiLCJ2YWx1ZXMiLCJnIiwiZGVmaW5lSXRlcmF0b3JNZXRob2RzIiwiZm9yRWFjaCIsIl9pbnZva2UiLCJBc3luY0l0ZXJhdG9yIiwiaW52b2tlIiwiX3R5cGVvZiIsInJlc29sdmUiLCJfX2F3YWl0IiwidGhlbiIsImNhbGxJbnZva2VXaXRoTWV0aG9kQW5kQXJnIiwiRXJyb3IiLCJkb25lIiwibWV0aG9kIiwiZGVsZWdhdGUiLCJtYXliZUludm9rZURlbGVnYXRlIiwic2VudCIsIl9zZW50IiwiZGlzcGF0Y2hFeGNlcHRpb24iLCJhYnJ1cHQiLCJUeXBlRXJyb3IiLCJyZXN1bHROYW1lIiwibmV4dCIsIm5leHRMb2MiLCJwdXNoVHJ5RW50cnkiLCJ0cnlMb2MiLCJjYXRjaExvYyIsImZpbmFsbHlMb2MiLCJhZnRlckxvYyIsInRyeUVudHJpZXMiLCJwdXNoIiwicmVzZXRUcnlFbnRyeSIsImNvbXBsZXRpb24iLCJyZXNldCIsImlzTmFOIiwibGVuZ3RoIiwiZGlzcGxheU5hbWUiLCJpc0dlbmVyYXRvckZ1bmN0aW9uIiwiY29uc3RydWN0b3IiLCJuYW1lIiwibWFyayIsInNldFByb3RvdHlwZU9mIiwiX19wcm90b19fIiwiYXdyYXAiLCJhc3luYyIsIlByb21pc2UiLCJrZXlzIiwicmV2ZXJzZSIsInBvcCIsInByZXYiLCJjaGFyQXQiLCJzbGljZSIsInN0b3AiLCJydmFsIiwiaGFuZGxlIiwiY29tcGxldGUiLCJmaW5pc2giLCJfY2F0Y2giLCJkZWxlZ2F0ZVlpZWxkIiwiYXN5bmNHZW5lcmF0b3JTdGVwIiwiZ2VuIiwicmVqZWN0IiwiX25leHQiLCJfdGhyb3ciLCJrZXkiLCJpbmZvIiwiZXJyb3IiLCJfYXN5bmNUb0dlbmVyYXRvciIsImZuIiwic2VsZiIsImFyZ3MiLCJhcmd1bWVudHMiLCJhcHBseSIsImVyciIsInVuZGVmaW5lZCIsIl90b0NvbnN1bWFibGVBcnJheSIsImFyciIsIl9hcnJheVdpdGhvdXRIb2xlcyIsIl9pdGVyYWJsZVRvQXJyYXkiLCJfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkiLCJfbm9uSXRlcmFibGVTcHJlYWQiLCJpdGVyIiwiQXJyYXkiLCJmcm9tIiwiaXNBcnJheSIsIl9hcnJheUxpa2VUb0FycmF5IiwiX2NyZWF0ZUZvck9mSXRlcmF0b3JIZWxwZXIiLCJhbGxvd0FycmF5TGlrZSIsIml0IiwiRiIsIl9lIiwibm9ybWFsQ29tcGxldGlvbiIsImRpZEVyciIsInN0ZXAiLCJfZTIiLCJvd25LZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwiZmlsdGVyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiX29iamVjdFNwcmVhZCIsIl9kZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwib2JqIiwiX3RvUHJvcGVydHlLZXkiLCJfdG9QcmltaXRpdmUiLCJTdHJpbmciLCJpbnB1dCIsImhpbnQiLCJwcmltIiwidG9QcmltaXRpdmUiLCJyZXMiLCJOdW1iZXIiLCJfc2xpY2VkVG9BcnJheSIsIl9hcnJheVdpdGhIb2xlcyIsIl9pdGVyYWJsZVRvQXJyYXlMaW1pdCIsIl9ub25JdGVyYWJsZVJlc3QiLCJtaW5MZW4iLCJ0b1N0cmluZyIsInRlc3QiLCJsZW4iLCJhcnIyIiwiQ09OVEVOVF9OT1RfRk9VTkRfRVJST1IiLCJJTlZBTElEX01BTklGRVNUX0VSUk9SIiwiTE9BRElOR19TVEFURSIsIk1BTklGRVNUX05PVF9MT0FERURfRVJST1IiLCJTQ1JJUFRVUkVfTk9UX0xPQURFRF9FUlJPUiIsImNvcmUiLCJ1c2ZtanMiLCJCb29rRmV0Y2hQYXJhbXMiLCJTY3JpcHR1cmVSZWZlcmVuY2VUeXBlIiwiU2NyaXB0dXJlUmVzb3VyY2VUeXBlIiwiU2VydmVyQ29uZmlnVHlwZSIsIlZlcnNlT2JqZWN0c1R5cGUiLCJCT09LX05PVF9GT1VORF9FUlJPUl9NU0ciLCJMT0FESU5HX1JFU09VUkNFIiwiTUFOSUZFU1RfSU5WQUxJRF9FUlJPUl9NU0ciLCJNQU5JRkVTVF9OT1RfRk9VTkRfRVJST1JfTVNHIiwiTlRfT1JJR19MQU5HIiwiTlRfT1JJR19MQU5HX0JJQkxFIiwiT1JJR0lOQUxfU09VUkNFIiwiT1RfT1JJR19MQU5HIiwiT1RfT1JJR19MQU5HX0JJQkxFIiwiU0NSSVBUVVJFX05PVF9GT1VORF9FUlJPUl9NU0ciLCJUQVJHRVRfTElURVJBTCIsIlRBUkdFVF9TSU1QTElGSUVEIiwiZGVsYXkiLCJESVNBQkxFX1dPUkRfUE9QT1ZFUiIsImdldFJlc291cmNlTGluayIsInNjcmlwdHVyZSIsInJlZiIsImJyYW5jaCIsInJlc291cmNlSWQiLCJwcm9qZWN0SWQiLCJjb25jYXQiLCJvd25lciIsImxhbmd1YWdlSWQiLCJwYXJzZVJlc291cmNlTGluayIsInJlc291cmNlTGluayIsIl9yZXNvdXJjZUxpbmskc3BsaXQiLCJzcGxpdCIsIl9yZXNvdXJjZUxpbmskc3BsaXQyIiwiZ2V0U2NyaXB0dXJlT2JqZWN0IiwiX3JlZiIsInRpdGxlIiwic2VydmVyIiwiZGlzYWJsZVdvcmRQb3BvdmVyIiwib3JpZ2luYWxMYW5ndWFnZU93bmVyIiwiZ2V0VmVyc2VEYXRhRnJvbVNjcmlwQ29uZmlnIiwic2NyaXB0dXJlQ29uZmlnIiwidmVyc2VOdW0iLCJfc2NyaXB0dXJlQ29uZmlnJHZlcnMiLCJ2ZXJzZXNGb3JSZWYiLCJmaW5kIiwidmVyc2VSZWYiLCJ2ZXJzZSIsImlzT3JpZ2luYWxCaWJsZSIsImlzT3JpZyIsImNsZWFudXBBY2NvdW50U2V0dGluZ3MiLCJzY3JpcHR1cmVTZXR0aW5ncyIsImN1cnJlbnRPd25lciIsImN1cnJlbnRMYW5ndWFnZUlkIiwic3BsaXRVcmwiLCJvcmlnaW5hbFJlcG9VcmwiLCJ1cmwiLCJVUkwiLCJvcmlnaW4iLCJwYXRobmFtZSIsInNlYXJjaCIsImdldFNjcmlwdHVyZVJlc291cmNlU2V0dGluZ3MiLCJib29rSWQiLCJzY3JpcHR1cmVTZXR0aW5nc18iLCJpc05ld1Rlc3RhbWVudCIsIl9zcGxpdFVybCIsImdldFNjcmlwdHVyZVZlcnNpb25TZXR0aW5ncyIsIl9yZWYyIiwibGFiZWwiLCJzZXRTY3JpcHR1cmUiLCJzY3JpcHR1cmVWZXJzaW9uSGlzdCIsImhpc3RvcnkiLCJnZXRMYXRlc3QiLCJpbmRleCIsImZpbmRJdGVtSW5kZXhCeUtleSIsInNjcmlwdHVyZVNlbGVjdG9yQ29uZmlnIiwib3B0aW9ucyIsImN1cnJlbnQiLCJhbGxvd1VzZXJJbnB1dCIsIm9uQ2hhbmdlIiwidmFsaWRhdGlvbkNCIiwiaXRlbSIsIm5ld0l0ZW0iLCJhZGRJdGVtVG9IaXN0b3J5IiwiZ2V0SXRlbUJ5VGl0bGUiLCJkZWxldGVJdGVtIiwiZGVsZXRlSW5kZXgiLCJyZW1vdmVJdGVtQnlJbmRleCIsImdldFJlcG9VcmwiLCJpc05UIiwicmVwb1VybCIsIl9yZXNvdXJjZUxpbmskc3BsaXQzIiwiX3Jlc291cmNlTGluayRzcGxpdDQiLCJnZXRFcnJvck1lc3NhZ2VGb3JSZXNvdXJjZUxpbmsiLCJlcnJvckNvZGUiLCJlcnJvck1zZyIsInZhbGlkYXRlRGNzVXJsIiwidmFsaWRSZXBvUGF0aCIsInZhbGlkVXJsIiwicGFydHMiLCJfcGFydHMiLCJwcm90b2NvbCIsImhvc3QiLCJ1c2VyIiwicmVwbyIsImhvc3RQYXJ0cyIsIl9pdGVyYXRvciIsIl9zdGVwIiwicGFydCIsIl9yZXBvJHNwbGl0IiwiX3JlcG8kc3BsaXQyIiwiX3VudXNlZCIsImNvbnNvbGUiLCJsb2ciLCJnZXRSZXNvdXJjZUVycm9yTWVzc2FnZSIsInJlc291cmNlU3RhdHVzIiwibWVzc2FnZSIsImdldFJlc291cmNlTWVzc2FnZSIsImdldFJlc291cmNlTGlua1NwZWNpZmljIiwiZml4T2NjdXJyZW5jZSIsIm9jY3VycmVuY2UiLCJwYXJzZUludCIsImNsZWFudXBWZXJzZU9iamVjdHMiLCJ2ZXJzZU9iamVjdHMiLCJ2ZXJzZU9iamVjdHNfIiwidm8iLCJvY2N1cnJlbmNlcyIsIndvcmQiLCJjaGlsZHJlbiIsIm5ld1ZvIiwiZ2V0Qm9va05hbWVGcm9tVXNmbUZpbGVOYW1lIiwiZmlsZW5hbWUiLCJfZmlsZW5hbWUkbWF0Y2giLCJyZWdleCIsImJvb2tOYW1lIiwibWF0Y2giLCJnZXRCaWJsZUlkRnJvbVVzZm1Db250ZW50SUQiLCJiaWJsZVVzZm0iLCJpZEhlYWRlciIsInBvc0lkIiwiaW5kZXhPZiIsImlkU3RhcnQiLCJoZWFkZXJJZCIsInN1YnN0cmluZyIsInRyaW0iLCJoZWFkZXJCb29rSUQiLCJfaGVhZGVyQm9va0lEIiwidmVyc2VPYmplY3RzSGF2ZVdvcmRzIiwiX2l0ZXJhdG9yMiIsIl9zdGVwMiIsImZvdW5kV29yZHMiLCJmaW5kTm9uV2hpdGVTcGFjZUNoYXJzIiwibm90RW1wdHkiLCJfaXRlcmF0b3IzIiwiX3N0ZXAzIiwiX3ZvJHRleHQiLCJ0ZXh0IiwiZ2V0QWxpZ25tZW50cyIsImFsaWdubWVudHNMaXN0IiwidGFnIiwiYWxpZ25tZW50IiwiZW5kVGFnIiwiX2FsaWdubWVudCIsImZldGNoQmlibGVCb29rQ29yZSIsIl94IiwiX2ZldGNoQmlibGVCb29rQ29yZSIsIl9jYWxsZWUiLCJmZXRjaFBhcmFtcyIsIl9yZXNvdXJjZSRwcm9qZWN0IiwiX3Jlc291cmNlJHByb2plY3QyIiwicmVzb3VyY2UiLCJyZXNwb25zZSIsImJvb2tPYmplY3RzIiwiX2Vycm9yTXNnIiwiX3JlZjMiLCJzaGEiLCJfZXJyb3JNc2cyIiwiX2NhbGxlZSQiLCJfY29udGV4dCIsInJlc291cmNlRnJvbVJlc291cmNlTGluayIsIm1hbmlmZXN0IiwicHJvamVjdCIsImZpbGUiLCJ3YXJuIiwicmVzb3VyY2VFcnJvciIsImdldFJlc3BvbnNlRGF0YSIsInRvSlNPTiIsImRhdGEiLCJ0MCIsImZldGNoQmlibGVCb29rIiwiX3gyIiwiX3gzIiwiX3g0IiwiX3g1IiwiX2ZldGNoQmlibGVCb29rIiwiX2NhbGxlZTIiLCJjb25maWciLCJyZWZlcmVuY2UiLCJyZWZfIiwicmVzdWx0cyIsIl9jYWxsZWUyJCIsIl9jb250ZXh0MiJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9TY3JpcHR1cmVTZXR0aW5ncy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDT05URU5UX05PVF9GT1VORF9FUlJPUixcbiAgSU5WQUxJRF9NQU5JRkVTVF9FUlJPUixcbiAgTE9BRElOR19TVEFURSxcbiAgTUFOSUZFU1RfTk9UX0xPQURFRF9FUlJPUixcbiAgU0NSSVBUVVJFX05PVF9MT0FERURfRVJST1IsXG59IGZyb20gJ3RyYW5zbGF0aW9uLWhlbHBzLXJjbCdcbmltcG9ydCB7IGNvcmUgfSBmcm9tICdzY3JpcHR1cmUtcmVzb3VyY2VzLXJjbCdcbmltcG9ydCB1c2ZtanMgZnJvbSAndXNmbS1qcydcbmltcG9ydCB7XG4gIEJvb2tGZXRjaFBhcmFtcyxcbiAgU2NyaXB0dXJlUmVmZXJlbmNlVHlwZSxcbiAgU2NyaXB0dXJlUmVzb3VyY2VUeXBlLFxuICBTZXJ2ZXJDb25maWdUeXBlLFxuICBWZXJzZU9iamVjdHNUeXBlLFxufSBmcm9tICcuLi90eXBlcydcbmltcG9ydCB7XG4gIEJPT0tfTk9UX0ZPVU5EX0VSUk9SX01TRyxcbiAgTE9BRElOR19SRVNPVVJDRSxcbiAgTUFOSUZFU1RfSU5WQUxJRF9FUlJPUl9NU0csXG4gIE1BTklGRVNUX05PVF9GT1VORF9FUlJPUl9NU0csXG4gIE5UX09SSUdfTEFORyxcbiAgTlRfT1JJR19MQU5HX0JJQkxFLFxuICBPUklHSU5BTF9TT1VSQ0UsXG4gIE9UX09SSUdfTEFORyxcbiAgT1RfT1JJR19MQU5HX0JJQkxFLFxuICBTQ1JJUFRVUkVfTk9UX0ZPVU5EX0VSUk9SX01TRyxcbiAgVEFSR0VUX0xJVEVSQUwsXG4gIFRBUkdFVF9TSU1QTElGSUVELFxufSBmcm9tICcuL2NvbW1vbidcbmltcG9ydCB7IGRlbGF5IH0gZnJvbSAnLi9kZWxheSdcblxuZXhwb3J0IGNvbnN0IERJU0FCTEVfV09SRF9QT1BPVkVSID0gdHJ1ZSAvLyBkaXNhYmxlIHdvcmQgcG9wb3ZlciBmb3IgZXZlcnkgc2NyaXB0dXJlIHBhbmUgYnV0IG9yaWdpbmFsIGxhbmd1YWdlc1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UmVzb3VyY2VMaW5rKHNjcmlwdHVyZSkge1xuICBjb25zdCByZWYgPSBzY3JpcHR1cmUucmVmIHx8IHNjcmlwdHVyZS5icmFuY2hcbiAgY29uc3QgcmVzb3VyY2VJZCA9IHNjcmlwdHVyZS5yZXNvdXJjZUlkIHx8IHNjcmlwdHVyZS5wcm9qZWN0SWRcbiAgcmV0dXJuIGAke3NjcmlwdHVyZS5vd25lcn0vJHtzY3JpcHR1cmUubGFuZ3VhZ2VJZH0vJHtyZXNvdXJjZUlkfS8ke3JlZn1gXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZVJlc291cmNlTGluayhyZXNvdXJjZUxpbmspIHtcbiAgY29uc3QgW293bmVyLCBsYW5ndWFnZUlkLCByZXNvdXJjZUlkLCByZWZdID0gcmVzb3VyY2VMaW5rLnNwbGl0KCcvJylcbiAgcmV0dXJuIHtcbiAgICBvd25lcixcbiAgICBsYW5ndWFnZUlkLFxuICAgIHJlc291cmNlSWQsXG4gICAgcmVmLFxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRTY3JpcHR1cmVPYmplY3Qoe1xuICB0aXRsZSxcbiAgc2VydmVyLFxuICBvd25lcixcbiAgcmVmLFxuICBsYW5ndWFnZUlkLFxuICByZXNvdXJjZUlkLFxuICByZXNvdXJjZUxpbmssXG4gIGRpc2FibGVXb3JkUG9wb3ZlcixcbiAgb3JpZ2luYWxMYW5ndWFnZU93bmVyLFxufSkge1xuICBjb25zdCBzY3JpcHR1cmUgPSB7XG4gICAgdGl0bGUsXG4gICAgc2VydmVyLFxuICAgIG93bmVyLFxuICAgIG9yaWdpbmFsTGFuZ3VhZ2VPd25lcixcbiAgICByZWYsXG4gICAgbGFuZ3VhZ2VJZCxcbiAgICByZXNvdXJjZUlkLFxuICAgIGRpc2FibGVXb3JkUG9wb3ZlcixcbiAgICByZXNvdXJjZUxpbmssXG4gIH1cblxuICBpZiAoIXJlc291cmNlTGluaykge1xuICAgIHNjcmlwdHVyZS5yZXNvdXJjZUxpbmsgPSBnZXRSZXNvdXJjZUxpbmsoe1xuICAgICAgb3duZXIsXG4gICAgICByZWYsXG4gICAgICBsYW5ndWFnZUlkLFxuICAgICAgcmVzb3VyY2VJZCxcbiAgICB9KVxuICB9XG4gIHJldHVybiBzY3JpcHR1cmVcbn1cblxuLyoqXG4gKiByZXR1cm4gdmVyc2UgZGF0YSBnaXZlbiBhIHNjcmlwdHVyZSBjb25maWcgYW5kIHZlcnNlIG51bWJlclxuICogQHBhcmFtIHNjcmlwdHVyZUNvbmZpZ1xuICogQHBhcmFtIHZlcnNlTnVtXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRWZXJzZURhdGFGcm9tU2NyaXBDb25maWcoc2NyaXB0dXJlQ29uZmlnLCB2ZXJzZU51bSkge1xuICByZXR1cm4gc2NyaXB0dXJlQ29uZmlnPy52ZXJzZXNGb3JSZWY/LmZpbmQoXG4gICAgdmVyc2VSZWYgPT4gdmVyc2VSZWYudmVyc2UgPT09IHZlcnNlTnVtLFxuICApXG59XG5cbi8qKlxuICogcmV0dXJuIHRydWUgaWYgcmVzb3VyY2UgaXMgYW4gb3JpZ2luYWwgbGFuZ3VhZ2UgYmlibGVcbiAqIEBwYXJhbSByZXNvdXJjZUlkXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc09yaWdpbmFsQmlibGUocmVzb3VyY2VJZCkge1xuICBjb25zdCBpc09yaWcgPSAoKHJlc291cmNlSWQgPT09IE5UX09SSUdfTEFOR19CSUJMRSkgfHwgKHJlc291cmNlSWQgPT09IE9UX09SSUdfTEFOR19CSUJMRSkgfHwgKHJlc291cmNlSWQgPT09IE9SSUdJTkFMX1NPVVJDRSkpXG4gIHJldHVybiBpc09yaWdcbn1cblxuLyoqXG4gKiBtYWtlIHN1cmUgc2NyaXB0dXJlU2V0dGluZ3MgYXJlIHVwIHRvIGRhdGUgd2l0aCBjdXJyZW50IG93bmVyIGFuZCBsYW5ndWFnZVxuICogQHBhcmFtIHtvYmplY3R9IHNjcmlwdHVyZVNldHRpbmdzXG4gKiBAcGFyYW0ge3N0cmluZ30gY3VycmVudE93bmVyIC0gb3B0aW9uYWwgb3Zlci1yaWRlIGZvciB0cmFuc2llbnQgY2FzZSB3aGVyZSBvd25lciBpbiBzY3JpcHR1cmUgc2V0dGluZ3MgaGF2ZSBub3QgeWV0IHVwZGF0ZWRcbiAqIEBwYXJhbSB7c3RyaW5nfSBjdXJyZW50TGFuZ3VhZ2VJZCAtIG9wdGlvbmFsIG92ZXItcmlkZSBmb3IgdHJhbnNpZW50IGNhc2Ugd2hlcmUgbGFuZ3VhZ2UgaW4gc2NyaXB0dXJlIHNldHRpbmdzIGhhdmUgbm90IHlldCB1cGRhdGVkXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjbGVhbnVwQWNjb3VudFNldHRpbmdzKHNjcmlwdHVyZVNldHRpbmdzOiBhbnksIGN1cnJlbnRPd25lcjogYW55LCBjdXJyZW50TGFuZ3VhZ2VJZDogYW55KSB7XG4gIGlmIChjdXJyZW50T3duZXIgJiYgKGN1cnJlbnRPd25lciAhPT0gc2NyaXB0dXJlU2V0dGluZ3Mub3duZXIpKSB7IC8vIGlmIG93bmVyIGNoYW5nZWQsIHVwZGF0ZSBzY3JpcHR1cmVTZXR0aW5nc1xuICAgIHNjcmlwdHVyZVNldHRpbmdzLm93bmVyID0gY3VycmVudE93bmVyXG4gIH1cblxuICBpZiAoY3VycmVudExhbmd1YWdlSWQgJiYgKGN1cnJlbnRMYW5ndWFnZUlkICE9PSBzY3JpcHR1cmVTZXR0aW5ncy5sYW5ndWFnZUlkKSkgeyAvLyBpZiBsYW5ndWFnZSBjaGFuZ2VkLCB1cGRhdGUgc2NyaXB0dXJlU2V0dGluZ3NcbiAgICBzY3JpcHR1cmVTZXR0aW5ncy5sYW5ndWFnZUlkID0gY3VycmVudExhbmd1YWdlSWRcbiAgfVxufVxuXG4vKipcbiAqIHNlcGFyYXRlIFVSTCBpbnRvIHNlcnZlciBhbmQgcmVzb3VyY2UgbGlua1xuICogQHBhcmFtIHtzdHJpbmd9IG9yaWdpbmFsUmVwb1VybFxuICovXG5leHBvcnQgZnVuY3Rpb24gc3BsaXRVcmwob3JpZ2luYWxSZXBvVXJsKSB7XG4gIGlmIChvcmlnaW5hbFJlcG9VcmwpIHtcbiAgICBjb25zdCB1cmwgPSBuZXcgVVJMKG9yaWdpbmFsUmVwb1VybClcbiAgICBjb25zdCBzZXJ2ZXIgPSB1cmwub3JpZ2luXG4gICAgY29uc3QgcmVzb3VyY2VMaW5rID0gdXJsLnBhdGhuYW1lICsgKHVybC5zZWFyY2ggfHwgJycpXG4gICAgcmV0dXJuIHsgc2VydmVyLCByZXNvdXJjZUxpbmsgfVxuICB9XG4gIHJldHVybiB7fVxufVxuXG4vKipcbiAqIGdldCB0aGUgc2NyaXB0dXJlIHNldHRpbmdzIG5lZWRlZCBmb3IgZmV0Y2ggLSBmb3IgT3JpZ0xhbmcsIFVMVCwgR0xUIHdpbGwgcmVwbGFjZSBvd25lciBhbmQgbGFuZ3VhZ2VJZCB3aXRoIGNvcnJlY3QgdmFsdWVzXG4gKiBAcGFyYW0ge3N0cmluZ30gYm9va0lkXG4gKiBAcGFyYW0ge29iamVjdH0gc2NyaXB0dXJlU2V0dGluZ3NfXG4gKiBAcGFyYW0ge2Jvb2xlYW59IGlzTmV3VGVzdGFtZW50XG4gKiBAcGFyYW0ge3N0cmluZ30gb3JpZ2luYWxSZXBvVXJsIC0gb3B0aW9uYWwgcGF0aCB0byByZXBvIGZvciBvcmlnaW5hbCBsYW5ndWFnZVxuICogQHBhcmFtIHtzdHJpbmd9IGN1cnJlbnRMYW5ndWFnZUlkIC0gb3B0aW9uYWwgb3Zlci1yaWRlIGZvciB0cmFuc2llbnQgY2FzZSB3aGVyZSBsYW5ndWFnZSBpbiBzY3JpcHR1cmUgc2V0dGluZ3MgaGF2ZSBub3QgeWV0IHVwZGF0ZWRcbiAqIEBwYXJhbSB7c3RyaW5nfSBjdXJyZW50T3duZXIgLSBvcHRpb25hbCBvdmVyLXJpZGUgZm9yIHRyYW5zaWVudCBjYXNlIHdoZXJlIG93bmVyIGluIHNjcmlwdHVyZSBzZXR0aW5ncyBoYXZlIG5vdCB5ZXQgdXBkYXRlZFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0U2NyaXB0dXJlUmVzb3VyY2VTZXR0aW5ncyhcbiAgYm9va0lkLCBzY3JpcHR1cmVTZXR0aW5nc18sIGlzTmV3VGVzdGFtZW50LFxuICBvcmlnaW5hbFJlcG9Vcmw9bnVsbCxcbiAgY3VycmVudExhbmd1YWdlSWQ9bnVsbCxcbiAgY3VycmVudE93bmVyPW51bGwsXG4pIHtcbiAgY29uc3Qgc2NyaXB0dXJlU2V0dGluZ3MgPSB7IC4uLnNjcmlwdHVyZVNldHRpbmdzXyB9XG4gIHNjcmlwdHVyZVNldHRpbmdzLmRpc2FibGVXb3JkUG9wb3ZlciA9IERJU0FCTEVfV09SRF9QT1BPVkVSXG4gIGNvbnN0IHJlc291cmNlSWQgPSBzY3JpcHR1cmVTZXR0aW5nc18ucmVzb3VyY2VJZFxuXG4gIGlmIChyZXNvdXJjZUlkID09PSBPUklHSU5BTF9TT1VSQ0UpIHtcbiAgICAvLyBzZWxlY3Qgb3JpZ2luYWwgbGFuZ3VhZ2UgQmlibGUgYmFzZWQgb24gd2hpY2ggdGVzdGFtZW50IHRoZSBib29rIGJlbG9uZ3NcbiAgICBzY3JpcHR1cmVTZXR0aW5ncy5sYW5ndWFnZUlkID0gaXNOZXdUZXN0YW1lbnQgPyBOVF9PUklHX0xBTkcgOiBPVF9PUklHX0xBTkdcbiAgICBzY3JpcHR1cmVTZXR0aW5ncy5yZXNvdXJjZUlkID0gaXNOZXdUZXN0YW1lbnRcbiAgICAgID8gTlRfT1JJR19MQU5HX0JJQkxFXG4gICAgICA6IE9UX09SSUdfTEFOR19CSUJMRVxuXG4gICAgaWYgKHNjcmlwdHVyZVNldHRpbmdzLm9yaWdpbmFsTGFuZ3VhZ2VPd25lcikge1xuICAgICAgc2NyaXB0dXJlU2V0dGluZ3Mub3duZXIgPSBzY3JpcHR1cmVTZXR0aW5ncy5vcmlnaW5hbExhbmd1YWdlT3duZXJcbiAgICB9XG5cbiAgICBpZiAob3JpZ2luYWxSZXBvVXJsKSB7IC8vIHVzZSB0aGlzIHVybCBpZiBkZWZpbmVkXG4gICAgICBjb25zdCB7IHNlcnZlciwgcmVzb3VyY2VMaW5rIH0gPSBzcGxpdFVybChvcmlnaW5hbFJlcG9VcmwpXG4gICAgICBzY3JpcHR1cmVTZXR0aW5ncy5zZXJ2ZXIgPSBzZXJ2ZXJcbiAgICAgIHNjcmlwdHVyZVNldHRpbmdzLnJlc291cmNlTGluayA9IHJlc291cmNlTGlua1xuICAgIH0gZWxzZSB7IC8vIGZhbGwgYmFjayB0byBhcHAgZGVmYXVsdHNcbiAgICAgIHNjcmlwdHVyZVNldHRpbmdzLnJlc291cmNlTGluayA9IGdldFJlc291cmNlTGluayhzY3JpcHR1cmVTZXR0aW5ncylcbiAgICB9XG4gICAgc2NyaXB0dXJlU2V0dGluZ3MuZGlzYWJsZVdvcmRQb3BvdmVyID0gZmFsc2VcbiAgfSBlbHNlIGlmIChyZXNvdXJjZUlkID09PSBUQVJHRVRfTElURVJBTCkge1xuICAgIGNsZWFudXBBY2NvdW50U2V0dGluZ3Moc2NyaXB0dXJlU2V0dGluZ3MsIGN1cnJlbnRPd25lciwgY3VycmVudExhbmd1YWdlSWQpXG4gICAgc2NyaXB0dXJlU2V0dGluZ3MucmVzb3VyY2VJZCA9IHNjcmlwdHVyZVNldHRpbmdzLmxhbmd1YWdlSWQgPT09ICdlbicgPyAndWx0JyA6ICdnbHQnXG4gICAgc2NyaXB0dXJlU2V0dGluZ3MucmVzb3VyY2VMaW5rID0gZ2V0UmVzb3VyY2VMaW5rKHNjcmlwdHVyZVNldHRpbmdzKVxuICB9IGVsc2UgaWYgKHJlc291cmNlSWQgPT09IFRBUkdFVF9TSU1QTElGSUVEKSB7XG4gICAgY2xlYW51cEFjY291bnRTZXR0aW5ncyhzY3JpcHR1cmVTZXR0aW5ncywgY3VycmVudE93bmVyLCBjdXJyZW50TGFuZ3VhZ2VJZClcbiAgICBzY3JpcHR1cmVTZXR0aW5ncy5yZXNvdXJjZUlkID0gc2NyaXB0dXJlU2V0dGluZ3MubGFuZ3VhZ2VJZCA9PT0gJ2VuJyA/ICd1c3QnIDogJ2dzdCdcbiAgICBzY3JpcHR1cmVTZXR0aW5ncy5yZXNvdXJjZUxpbmsgPSBnZXRSZXNvdXJjZUxpbmsoc2NyaXB0dXJlU2V0dGluZ3MpXG4gIH1cbiAgcmV0dXJuIHNjcmlwdHVyZVNldHRpbmdzXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRTY3JpcHR1cmVWZXJzaW9uU2V0dGluZ3Moe1xuICBsYWJlbCxcbiAgcmVzb3VyY2VMaW5rLFxuICBzZXRTY3JpcHR1cmUsXG4gIHNjcmlwdHVyZVZlcnNpb25IaXN0LFxufSkge1xuICBjb25zdCBoaXN0b3J5ID0gc2NyaXB0dXJlVmVyc2lvbkhpc3QuZ2V0TGF0ZXN0KClcbiAgbGV0IGluZGV4ID0gc2NyaXB0dXJlVmVyc2lvbkhpc3QuZmluZEl0ZW1JbmRleEJ5S2V5KGhpc3RvcnksICdyZXNvdXJjZUxpbmsnLCByZXNvdXJjZUxpbmspXG5cbiAgY29uc3Qgc2NyaXB0dXJlU2VsZWN0b3JDb25maWcgPSB7XG4gICAgbGFiZWwsIC8vIGxhYmVsIGZvciBjb21ib2JveFxuICAgIG9wdGlvbnM6IGhpc3RvcnksXG4gICAgY3VycmVudDogaW5kZXgsXG4gICAgYWxsb3dVc2VySW5wdXQ6IHRydWUsXG4gICAgb25DaGFuZ2U6ICh0aXRsZSwgaW5kZXgsIHZhbGlkYXRpb25DQj1udWxsKSA9PiB7XG4gICAgICBsZXQgaXRlbVxuXG4gICAgICBpZiAoKGluZGV4IDwgMCkgJiYgdGl0bGUpIHtcbiAgICAgICAgY29uc3QgbmV3SXRlbSA9IHtcbiAgICAgICAgICB1cmw6IHRpdGxlLFxuICAgICAgICAgIHRpdGxlLFxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGluZGV4ID0gc2NyaXB0dXJlVmVyc2lvbkhpc3QuYWRkSXRlbVRvSGlzdG9yeShuZXdJdGVtKVxuXG4gICAgICAgIGlmIChpbmRleCA+PSAwKSB7XG4gICAgICAgICAgaXRlbSA9IHNjcmlwdHVyZVZlcnNpb25IaXN0LmdldExhdGVzdCgpW2luZGV4XVxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpdGVtID0gc2NyaXB0dXJlVmVyc2lvbkhpc3QuZ2V0SXRlbUJ5VGl0bGUodGl0bGUpXG4gICAgICB9XG5cbiAgICAgIGlmIChpdGVtKSB7XG4gICAgICAgIHNldFNjcmlwdHVyZShpdGVtLCB2YWxpZGF0aW9uQ0IpXG4gICAgICB9XG4gICAgfSxcbiAgICBkZWxldGVJdGVtOiB0aXRsZSA9PiB7XG4gICAgICBjb25zdCBoaXN0b3J5ID0gc2NyaXB0dXJlVmVyc2lvbkhpc3QuZ2V0TGF0ZXN0KClcbiAgICAgIGNvbnN0IGRlbGV0ZUluZGV4ID0gc2NyaXB0dXJlVmVyc2lvbkhpc3QuZmluZEl0ZW1JbmRleEJ5S2V5KGhpc3RvcnksICd0aXRsZScsIHRpdGxlKVxuICAgICAgc2NyaXB0dXJlVmVyc2lvbkhpc3QucmVtb3ZlSXRlbUJ5SW5kZXgoZGVsZXRlSW5kZXgpXG4gICAgfSxcbiAgfVxuXG4gIHJldHVybiBzY3JpcHR1cmVTZWxlY3RvckNvbmZpZ1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UmVwb1VybChyZXNvdXJjZUxpbms6IHN0cmluZywgc2VydmVyOiBzdHJpbmcsIGlzTlQ6IGJvb2xlYW4pOiBzdHJpbmcge1xuICBsZXQgcmVwb1VybFxuXG4gIHRyeSB7XG4gICAgbGV0IFtvd25lciwgbGFuZ3VhZ2VJZCwgcmVzb3VyY2VJZF0gPSByZXNvdXJjZUxpbmsuc3BsaXQoJy8nKVxuXG4gICAgc3dpdGNoIChyZXNvdXJjZUlkKSB7XG4gICAgY2FzZSBPUklHSU5BTF9TT1VSQ0U6XG4gICAgICBsYW5ndWFnZUlkID0gaXNOVCA/IE5UX09SSUdfTEFORyA6IE9UX09SSUdfTEFOR1xuICAgICAgcmVzb3VyY2VJZCA9IGlzTlRcbiAgICAgICAgPyBOVF9PUklHX0xBTkdfQklCTEVcbiAgICAgICAgOiBPVF9PUklHX0xBTkdfQklCTEVcbiAgICAgIGJyZWFrXG5cbiAgICBjYXNlIFRBUkdFVF9MSVRFUkFMOlxuICAgICAgcmVzb3VyY2VJZCA9IChsYW5ndWFnZUlkID09PSAnZW4nKSA/ICd1bHQnIDogJ2dsdCdcbiAgICAgIGJyZWFrXG5cbiAgICBjYXNlIFRBUkdFVF9TSU1QTElGSUVEOlxuICAgICAgcmVzb3VyY2VJZCA9IChsYW5ndWFnZUlkID09PSAnZW4nKSA/ICd1c3QnIDogJ2dzdCdcbiAgICAgIGJyZWFrXG4gICAgfVxuICAgIHJlcG9VcmwgPSBgJHtvd25lcn0vJHtsYW5ndWFnZUlkfV8ke3Jlc291cmNlSWR9YFxuICB9IGNhdGNoIChlKSB7XG4gICAgLy8gcmVzb3VyY2VMaW5rIHdhcyBpbnZhbGlkXG4gIH1cblxuICAvLyBAdHMtaWdub3JlXG4gIHJldHVybiBgJHtzZXJ2ZXIgfHwgJyd9LyR7cmVwb1VybH1gXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRFcnJvck1lc3NhZ2VGb3JSZXNvdXJjZUxpbmsoXG4gIHJlc291cmNlTGluazogc3RyaW5nLFxuICBzZXJ2ZXI6IHN0cmluZyxcbiAgZXJyb3JDb2RlOiBzdHJpbmcsXG4gIGlzTlQ6IGJvb2xlYW4pOiBzdHJpbmdcbntcbiAgY29uc3QgcmVwb1VybCA9IGdldFJlcG9VcmwocmVzb3VyY2VMaW5rLCBzZXJ2ZXIsIGlzTlQpXG4gIGNvbnN0IGVycm9yTXNnID0gZXJyb3JDb2RlICsgcmVwb1VybFxuICByZXR1cm4gZXJyb3JNc2dcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlRGNzVXJsKHVybCkge1xuICBsZXQgdmFsaWRSZXBvUGF0aCA9IGZhbHNlXG4gIGxldCB2YWxpZFVybCA9IGZhbHNlXG5cbiAgdHJ5IHtcbiAgICBjb25zdCBwYXJ0cyA9IHVybC5zcGxpdCgnLycpXG4gICAgY29uc3QgW3Byb3RvY29sLCAsIGhvc3QsIHVzZXIsIHJlcG9dID0gcGFydHNcbiAgICB2YWxpZFVybCA9IChwcm90b2NvbCA9PT0gJ2h0dHBzOicpXG4gICAgY29uc3QgaG9zdFBhcnRzID0gaG9zdCA/IGhvc3Quc3BsaXQoJy4nKSA6IFtdXG5cbiAgICBpZiAoaG9zdFBhcnRzLmxlbmd0aCA+PSAyKSB7XG4gICAgICBmb3IgKGxldCBwYXJ0IG9mIGhvc3RQYXJ0cykge1xuICAgICAgICBpZiAoIXBhcnQpIHtcbiAgICAgICAgICB2YWxpZFVybCA9IGZhbHNlXG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB2YWxpZFVybCA9IGZhbHNlXG4gICAgfVxuXG4gICAgaWYgKCBwcm90b2NvbCAmJiBob3N0ICYmIHVzZXIgJiYgcmVwbyApIHtcbiAgICAgIGNvbnN0IFtsYW5ndWFnZUlkLCBwcm9qZWN0SWRdID0gcmVwby5zcGxpdCgnXycpXG4gICAgICB2YWxpZFJlcG9QYXRoID0gbGFuZ3VhZ2VJZCAmJiBwcm9qZWN0SWRcbiAgICB9XG4gIH0gY2F0Y2gge1xuICAgIGNvbnNvbGUubG9nKCdJbnZhbGlkIERDUyBVUkw6ICcgKyB1cmwpXG4gIH1cbiAgcmV0dXJuIHsgdmFsaWRVcmwsIHZhbGlkUmVwb1BhdGggfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UmVzb3VyY2VFcnJvck1lc3NhZ2UocmVzb3VyY2VTdGF0dXM6IG9iamVjdCkge1xuICBsZXQgbWVzc2FnZSA9ICcnXG5cbiAgaWYgKHJlc291cmNlU3RhdHVzW01BTklGRVNUX05PVF9MT0FERURfRVJST1JdKSB7XG4gICAgbWVzc2FnZSA9IE1BTklGRVNUX05PVF9GT1VORF9FUlJPUl9NU0dcbiAgfSBlbHNlIGlmIChyZXNvdXJjZVN0YXR1c1tJTlZBTElEX01BTklGRVNUX0VSUk9SXSkge1xuICAgIG1lc3NhZ2UgPSBNQU5JRkVTVF9JTlZBTElEX0VSUk9SX01TR1xuICB9IGVsc2UgaWYgKHJlc291cmNlU3RhdHVzW0NPTlRFTlRfTk9UX0ZPVU5EX0VSUk9SXSkge1xuICAgIG1lc3NhZ2UgPSBCT09LX05PVF9GT1VORF9FUlJPUl9NU0dcbiAgfSBlbHNlIGlmIChyZXNvdXJjZVN0YXR1c1tTQ1JJUFRVUkVfTk9UX0xPQURFRF9FUlJPUl0pIHtcbiAgICBtZXNzYWdlID0gU0NSSVBUVVJFX05PVF9GT1VORF9FUlJPUl9NU0dcbiAgfVxuICByZXR1cm4gbWVzc2FnZVxufVxuXG4vKipcbiAqIGRlY29kZSByZXNvdXJjZSBzdGF0dXMgaW50byBzdHJpbmcuICBDdXJyZW50bHkgb25seSBFbmdsaXNoXG4gKiBAcGFyYW0gcmVzb3VyY2VTdGF0dXMgLSBvYmplY3QgdGhhdCBjb250YWlucyBzdGF0ZSBhbmQgZXJyb3JzIHRoYXQgYXJlIGRldGVjdGVkXG4gKiBAcGFyYW0gc2VydmVyIC0gY29udGFpbnMgdGhlIHNlcnZlciBiZWluZyB1c2VkXG4gKiBAcGFyYW0gcmVzb3VyY2VMaW5rIC0gcGF0aCB0byByZXBvIG9uIHNlcnZlclxuICogQHBhcmFtIGlzTlQgLSB0cnVlIGlmIE5UIGJvb2tcbiAqIEByZXR1cm4gZW1wdHkgc3RyaW5nIGlmIG5vIGVycm9yLCBlbHNlIHJldHVybnMgdXNlciBlcnJvciBtZXNzYWdlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRSZXNvdXJjZU1lc3NhZ2UocmVzb3VyY2VTdGF0dXM6IG9iamVjdCwgc2VydmVyOiBzdHJpbmcsIHJlc291cmNlTGluazogc3RyaW5nLCBpc05UOiBib29sZWFuKSB7XG4gIGxldCBtZXNzYWdlID0gJydcblxuICBpZiAocmVzb3VyY2VTdGF0dXNbTE9BRElOR19TVEFURV0pIHtcbiAgICBtZXNzYWdlID0gTE9BRElOR19SRVNPVVJDRVxuICB9IGVsc2Uge1xuICAgIG1lc3NhZ2UgPSBnZXRSZXNvdXJjZUVycm9yTWVzc2FnZShyZXNvdXJjZVN0YXR1cylcblxuICAgIGlmIChtZXNzYWdlKSB7XG4gICAgICBtZXNzYWdlID0gZ2V0RXJyb3JNZXNzYWdlRm9yUmVzb3VyY2VMaW5rKHJlc291cmNlTGluaywgc2VydmVyLCBtZXNzYWdlLCBpc05UKVxuICAgIH1cbiAgfVxuICByZXR1cm4gbWVzc2FnZVxufVxuXG4vKipcbiAqIGdlbmVyYXRlIHJlc291cmNlIHN0cmluZ1xuICogQHBhcmFtIG93bmVyXG4gKiBAcGFyYW0gbGFuZ3VhZ2VJZFxuICogQHBhcmFtIHByb2plY3RJZFxuICogQHBhcmFtIHJlZlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0UmVzb3VyY2VMaW5rU3BlY2lmaWMob3duZXI6IHN0cmluZywgbGFuZ3VhZ2VJZDogc3RyaW5nLCBwcm9qZWN0SWQ6IHN0cmluZywgcmVmOiBzdHJpbmcpIHtcbiAgcmV0dXJuIGBhcGkvdjEvcmVwb3MvJHtvd25lcn0vJHtsYW5ndWFnZUlkfV8ke3Byb2plY3RJZH0vY29udGVudHM/cmVmPSR7cmVmfWBcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZpeE9jY3VycmVuY2Uob2NjdXJyZW5jZSkge1xuICBpZiAodHlwZW9mIG9jY3VycmVuY2UgPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIHBhcnNlSW50KG9jY3VycmVuY2UpXG4gIH1cbiAgcmV0dXJuIG9jY3VycmVuY2Vcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNsZWFudXBWZXJzZU9iamVjdHModmVyc2VPYmplY3RzKSB7XG4gIGlmICh2ZXJzZU9iamVjdHM/Lmxlbmd0aCkge1xuICAgIGNvbnN0IHZlcnNlT2JqZWN0c18gPSBbLi4udmVyc2VPYmplY3RzXVxuXG4gICAgZm9yIChsZXQgaSA9IDAsIGwgPSB2ZXJzZU9iamVjdHNfLmxlbmd0aDsgaSA8IGw7IGkrKykge1xuICAgICAgY29uc3Qgdm8gPSB2ZXJzZU9iamVjdHNfW2ldXG5cbiAgICAgIGlmICh2by50eXBlID09PSAnd29yZCcgJiYgKHZvLm9jY3VycmVuY2UgfHwgdm8ub2NjdXJyZW5jZXMpKSB7XG4gICAgICAgIGNvbnN0IHdvcmQgPSB7IC4uLnZvIH1cblxuICAgICAgICBpZiAodm8ub2NjdXJyZW5jZSkge1xuICAgICAgICAgIHdvcmQub2NjdXJyZW5jZSA9IGZpeE9jY3VycmVuY2Uodm8ub2NjdXJyZW5jZSlcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh2by5vY2N1cnJlbmNlcykge1xuICAgICAgICAgIHdvcmQub2NjdXJyZW5jZXMgPSBmaXhPY2N1cnJlbmNlKHZvLm9jY3VycmVuY2VzKVxuICAgICAgICB9XG4gICAgICAgIHZlcnNlT2JqZWN0c19baV0gPSB3b3JkXG4gICAgICB9IGVsc2UgaWYgKHZvLmNoaWxkcmVuKSB7XG4gICAgICAgIGNvbnN0IGNoaWxkcmVuID0gY2xlYW51cFZlcnNlT2JqZWN0cyh2by5jaGlsZHJlbilcbiAgICAgICAgY29uc3QgbmV3Vm8gPSB7XG4gICAgICAgICAgLi4udm8sXG4gICAgICAgICAgY2hpbGRyZW4sXG4gICAgICAgIH1cbiAgICAgICAgdmVyc2VPYmplY3RzX1tpXSA9IG5ld1ZvXG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB2ZXJzZU9iamVjdHNfXG4gIH1cbiAgcmV0dXJuIFtdXG59XG5cbi8qKlxuICogdGFrZSB0aGUgZmlsZW5hbWUgb2YgdGhlIGJvb2sgKGUuZy4gXCI1Ny1USVQudXNmbVwiKSBhbmQgcGFyc2Ugb3V0IHRoZSBib29rSWRcbiAqIEBwYXJhbSB7c3RyaW5nfSBmaWxlbmFtZVxuICogQHJldHVybiB7c3RyaW5nfSBib29rSWQgaWYgZm91bmRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEJvb2tOYW1lRnJvbVVzZm1GaWxlTmFtZShmaWxlbmFtZSkge1xuICBjb25zdCByZWdleCA9IC9eKC4qPylcXC51c2ZtL1xuICBjb25zdCBib29rTmFtZSA9IGZpbGVuYW1lPy5tYXRjaChyZWdleCk/LlsxXVxuICByZXR1cm4gYm9va05hbWVcbn1cblxuLyoqXG4gKiBwYXJzZSB0aGUgVVNGTSB0byBmaW5kIGJvb2tJRCBpbiBoZWFkZXJcbiAqIEBwYXJhbSB7c3RyaW5nfSBiaWJsZVVzZm1cbiAqIEByZXR1cm4ge3N0cmluZ30gYm9va0lkIGlmIGZvdW5kXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRCaWJsZUlkRnJvbVVzZm1Db250ZW50SUQoYmlibGVVc2ZtKSB7XG4gIGNvbnN0IGlkSGVhZGVyID0gJ1xcXFxpZCAnXG4gIGNvbnN0IHBvc0lkID0gYmlibGVVc2ZtPy5pbmRleE9mKGlkSGVhZGVyKVxuXG4gIGlmIChwb3NJZCA+PSAwKSB7XG4gICAgY29uc3QgaWRTdGFydCA9IHBvc0lkICsgaWRIZWFkZXIubGVuZ3RoXG4gICAgbGV0IGhlYWRlcklkID0gYmlibGVVc2ZtPy5zdWJzdHJpbmcoIGlkU3RhcnQsIGlkU3RhcnQgKyAxMDApLnRyaW0oKVxuICAgIGxldCBoZWFkZXJCb29rSUQgPSBudWxsXG5cbiAgICBpZiAoaGVhZGVySWQ/Lmxlbmd0aCA+IDEpIHtcbiAgICAgIGhlYWRlckJvb2tJRCA9IGhlYWRlcklkPy5zcGxpdCgnICcpXG4gICAgICBoZWFkZXJCb29rSUQgPSBoZWFkZXJCb29rSUQ/LlswXS50cmltKClcbiAgICB9XG4gICAgcmV0dXJuIGhlYWRlckJvb2tJRFxuICB9XG4gIHJldHVybiBudWxsXG59XG5cbi8qKlxuICogZGV0ZXJtaW5lcyBpZiB0aGVyZSBhcmUgYW55IHdvcmRzIGluIHZlcnNlT2JqZWN0c1xuICogQHBhcmFtIHtWZXJzZU9iamVjdHNUeXBlfSB2ZXJzZU9iamVjdHMgLSBhcnJheSBvZiB2ZXJzZU9iamVjdHMgdG8gc2VhcmNoIGZvciB3b3Jkc1xuICogQHJldHVybiB7Ym9vbGVhbn0gdHJ1ZSBpZiB3b3JkIGlzIGZvdW5kXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB2ZXJzZU9iamVjdHNIYXZlV29yZHModmVyc2VPYmplY3RzOiBWZXJzZU9iamVjdHNUeXBlKSB7XG4gIGlmICh2ZXJzZU9iamVjdHM/Lmxlbmd0aCkge1xuICAgIGZvciAoY29uc3Qgdm8gb2YgdmVyc2VPYmplY3RzKSB7XG4gICAgICBpZiAodm8udHlwZSA9PT0gJ3dvcmQnKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9IGVsc2UgaWYgKHZvLmNoaWxkcmVuKSB7XG4gICAgICAgIGNvbnN0IGZvdW5kV29yZHMgPSB2ZXJzZU9iamVjdHNIYXZlV29yZHModm8uY2hpbGRyZW4pXG5cbiAgICAgICAgaWYgKGZvdW5kV29yZHMpIHtcbiAgICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiBmYWxzZVxufVxuXG4vKipcbiAqIERldGVybWluZXMgaWYgdGhlcmUgYXJlIGFueSBub24td2hpdGVzcGFjZSBjaGFyYWN0ZXJzIHdpdGhpbiB0aGUgcHJvdmlkZWQgdmVyc2Ugb2JqZWN0cy5cbiAqIFRoZSBtZXRob2QgdHJhdmVyc2VzIHRocm91Z2ggdGhlIGlucHV0LCBjaGVja2luZyBmb3Igbm9uLWVtcHR5IHN0cmluZ3MgaW4gYHdvcmRgIG9yIGB0ZXh0YCB0eXBlIG9iamVjdHMsXG4gKiBvcHRpb25hbGx5IHRyYXZlcnNpbmcgY2hpbGQgb2JqZWN0cyBpZiBwcmVzZW50LlxuICpcbiAqIEBwYXJhbSB7VmVyc2VPYmplY3RzVHlwZX0gdmVyc2VPYmplY3RzIC0gVGhlIGlucHV0IG9iamVjdHMgdG8gY2hlY2sgZm9yIG5vbi13aGl0ZXNwYWNlIGNoYXJhY3RlcnMuIFRoaXMgY2FuIGJlIGEgc3RyaW5nLCBhbiBhcnJheSBvZiBvYmplY3RzLCBvciBjb250YWluIG5lc3RlZCBzdHJ1Y3R1cmVzLlxuICogQHJldHVybiB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYW55IG5vbi13aGl0ZXNwYWNlIGNoYXJhY3RlcnMgYXJlIGZvdW5kLCBvdGhlcndpc2UgYGZhbHNlYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZpbmROb25XaGl0ZVNwYWNlQ2hhcnModmVyc2VPYmplY3RzOiBWZXJzZU9iamVjdHNUeXBlKSB7XG4gIGlmICh0eXBlb2YgdmVyc2VPYmplY3RzID09PSAnc3RyaW5nJykge1xuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBjb25zdCBub3RFbXB0eSA9IHZlcnNlT2JqZWN0cy50cmltKClcbiAgICByZXR1cm4gISFub3RFbXB0eVxuICB9XG5cbiAgLy8gQHRzLWlnbm9yZVxuICBpZiAodmVyc2VPYmplY3RzPy52ZXJzZU9iamVjdHMpIHsgLy8gc3BlY2lhbCBjYXNlIGZvciB2ZXJzZU9iamVjdHMgd2l0aCB2ZXJzZU9iamVjdHMgcHJvcGVydHlcbiAgICAvLyBAdHMtaWdub3JlXG4gICAgcmV0dXJuIGZpbmROb25XaGl0ZVNwYWNlQ2hhcnModmVyc2VPYmplY3RzLnZlcnNlT2JqZWN0cylcbiAgfVxuXG4gIGlmICh2ZXJzZU9iamVjdHM/Lmxlbmd0aCkge1xuICAgIGZvciAoY29uc3Qgdm8gb2YgdmVyc2VPYmplY3RzKSB7XG4gICAgICBpZiAoKHZvLnR5cGUgPT09ICd3b3JkJykgfHwgKHZvLnR5cGUgPT09ICd0ZXh0JykpIHtcbiAgICAgICAgY29uc3QgdGV4dCA9IHZvLnRleHQ/LnRyaW0oKVxuXG4gICAgICAgIGlmICh0ZXh0KSB7XG4gICAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmICh2by5jaGlsZHJlbikge1xuICAgICAgICBjb25zdCBmb3VuZFdvcmRzID0gZmluZE5vbldoaXRlU3BhY2VDaGFycyh2by5jaGlsZHJlbilcblxuICAgICAgICBpZiAoZm91bmRXb3Jkcykge1xuICAgICAgICAgIHJldHVybiB0cnVlXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gZmFsc2Vcbn1cblxuXG4vKipcbiAqIGV4dHJhY3QganVzdCB0aGUgYWxpZ25tZW50cyBmcm9tIHZlcnNlT2JqZWN0c1xuICogQHBhcmFtIHtWZXJzZU9iamVjdHNUeXBlfSB2ZXJzZU9iamVjdHNcbiAqIEByZXR1cm5zIHtWZXJzZU9iamVjdHNUeXBlfSAtIGp1c3QgYWxpZ25tZW50c1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0QWxpZ25tZW50cyh2ZXJzZU9iamVjdHM6IFZlcnNlT2JqZWN0c1R5cGUpOlZlcnNlT2JqZWN0c1R5cGUge1xuICBjb25zdCBhbGlnbm1lbnRzTGlzdCA9IHZlcnNlT2JqZWN0cy5maWx0ZXIodm8gPT4gdm8udGFnID09PSAnemFsbicpXG5cbiAgLy8gcmVtb3ZlIGVuZFRhZ1xuICBmb3IgKGxldCBpID0gMDsgaSA8IGFsaWdubWVudHNMaXN0Lmxlbmd0aDsgaSsrKSB7XG4gICAgY29uc3QgYWxpZ25tZW50ID0gYWxpZ25tZW50c0xpc3RbaV1cblxuICAgIGlmIChhbGlnbm1lbnQuZW5kVGFnKSB7XG4gICAgICBjb25zdCBfYWxpZ25tZW50ID0geyAuLi5hbGlnbm1lbnQgfVxuICAgICAgZGVsZXRlIF9hbGlnbm1lbnQuZW5kVGFnXG4gICAgICBhbGlnbm1lbnRzTGlzdFtpXSA9IF9hbGlnbm1lbnRcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGFsaWdubWVudHNMaXN0XG59XG5cbi8qKlxuICogZG8gYSBmZXRjaCBvZiBtYW5pZmVzdCBhbmQgYm9vayBvZiB0aGUgYmlibGUgc3BlY2lmaWVkIGluIGZldGNoUGFyYW1zLlxuICpcbiAqICAgIFRSSUNLWSAtIHRoaXMgZnVuY3Rpb24gaXMgYmVpbmcgY2FsbGVkIGJ5IGV2ZXJ5IHNjcmlwdHVyZSBjYXJkIHNpbXVsdGFuZW91c2x5IGR1cmluZyBib29rIG5hdmlnYXRpb24sIHNvIGl0IGlzXG4gKiAgICAgIHZlcnkgaW1wb3J0YW50IHRoYXQgaXQgZG9lcyBub3QgY2F1c2Ugc2lnbmlmaWNhbnQgZGVsYXlzIChwYXJ0aWN1bGFybHkgb24gc2xvd2VyIGRldmljZXMpIGFuZCBibG9jayBVSSBvclxuICogICAgICBzdGF0ZSB1cGRhdGVzLlxuICpcbiAqIEBwYXJhbSB7Qm9va0ZldGNoUGFyYW1zfSBmZXRjaFBhcmFtc1xuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZmV0Y2hCaWJsZUJvb2tDb3JlKGZldGNoUGFyYW1zOiBCb29rRmV0Y2hQYXJhbXMpIHtcbiAgdHJ5IHtcbiAgICBjb25zb2xlLmxvZyhgZmV0Y2hCaWJsZUJvb2tDb3JlKCkgLSBGRVRDSElORyBiaWJsZSAke2ZldGNoUGFyYW1zPy5yZXNvdXJjZUxpbmt9YCwgZmV0Y2hQYXJhbXMpXG5cbiAgICAvLyBmZXRjaCBtYW5pZmVzdCBkYXRhXG4gICAgY29uc3QgcmVzb3VyY2UgPSBhd2FpdCBjb3JlLnJlc291cmNlRnJvbVJlc291cmNlTGluayhmZXRjaFBhcmFtcylcblxuICAgIGlmICghcmVzb3VyY2U/Lm1hbmlmZXN0IHx8ICFyZXNvdXJjZT8ucHJvamVjdD8uZmlsZSkge1xuICAgICAgY29uc3QgZXJyb3JNc2cgPSByZXNvdXJjZT8ubWFuaWZlc3QgPyAncGFyc2luZyByZXNvdXJjZSBtYW5pZmVzdCcgOiAnbG9hZGluZyByZXNvdXJjZSBtYW5pZmVzdCdcbiAgICAgIGNvbnNvbGUud2FybihgZmV0Y2hCaWJsZUJvb2tDb3JlKCkgLSBlcnJvciAke2Vycm9yTXNnfWAsIGZldGNoUGFyYW1zIClcbiAgICAgIHJldHVybiB7IGVycm9yOiBlcnJvck1zZywgcmVzb3VyY2VFcnJvcjogdHJ1ZSB9XG4gICAgfVxuXG4gICAgY29uc29sZS5sb2coYGZldGNoQmlibGVCb29rQ29yZSgpIC0gTE9BREVEIGJpYmxlIG1hbmlmZXN0LCBmZXRjaGluZyBib29rICAke2ZldGNoUGFyYW1zPy5yZXNvdXJjZUxpbmt9YCwgZmV0Y2hQYXJhbXMpXG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCByZXNvdXJjZT8ucHJvamVjdD8uZmlsZSgpXG4gICAgLy8gcGFyc2UgYm9vayB1c2ZtXG4gICAgY29uc3QgYmlibGVVc2ZtID0gcmVzcG9uc2UgJiYgY29yZS5nZXRSZXNwb25zZURhdGEocmVzcG9uc2UpXG4gICAgYXdhaXQgZGVsYXkoMTAwKSAvLyBhbGxvdyBVSSB0byB1cGRhdGUgYmV0d2VlbiB0d28gY29tcHV0YXRpb25hbGx5IGV4cGVuc2l2ZSBmdW5jdGlvbnNcbiAgICBjb25zdCBib29rT2JqZWN0cyA9IGJpYmxlVXNmbSAmJiB1c2ZtanMudG9KU09OKGJpYmxlVXNmbSkgLy8gY29udmVydCB0byBiaWJsZSBvYmplY3RzXG5cbiAgICBpZiAoIWJvb2tPYmplY3RzKSB7XG4gICAgICBjb25zdCBlcnJvck1zZyA9IGJpYmxlVXNmbSA/ICdmZXRjaGluZyBib29rIG9mIHRoZSBiaWJsZScgOiAncGFyc2luZyBib29rIG9mIHRoZSBiaWJsZSdcbiAgICAgIGNvbnNvbGUud2FybihgZmV0Y2hCaWJsZUJvb2tDb3JlKCkgLSBlcnJvciAke2Vycm9yTXNnfWAsIGZldGNoUGFyYW1zIClcbiAgICAgIHJldHVybiB7IGVycm9yOiBlcnJvck1zZyB9XG4gICAgfVxuXG4gICAgY29uc3Qge1xuICAgICAgbmFtZSxcbiAgICAgIHNoYSxcbiAgICAgIHVybCxcbiAgICB9ID0gcmVzcG9uc2U/LmRhdGEgfHwge31cblxuICAgIGNvbnNvbGUubG9nKGBmZXRjaEJpYmxlQm9va0NvcmUoKSAtIExPQURFRCBiaWJsZSBib29rLCAgJHtmZXRjaFBhcmFtcz8ucmVzb3VyY2VMaW5rfWAsIGZldGNoUGFyYW1zKVxuICAgIHJldHVybiB7XG4gICAgICAuLi5yZXNvdXJjZSxcbiAgICAgIGJpYmxlVXNmbSxcbiAgICAgIGJvb2tPYmplY3RzLFxuICAgICAgbmFtZSxcbiAgICAgIHJlc3BvbnNlLFxuICAgICAgc2hhLFxuICAgICAgdXJsLFxuICAgIH1cbiAgfSBjYXRjaCAoZSkge1xuICAgIGNvbnN0IGVycm9yTXNnID0gJ2hhcmQgZXJyb3IgbG9hZGluZyByZXNvdXJjZSdcbiAgICBjb25zb2xlLmVycm9yKGBmZXRjaEJpYmxlQm9va0NvcmUoKSAtICR7ZXJyb3JNc2d9YCwgZmV0Y2hQYXJhbXMsIGUgKVxuICAgIHJldHVybiB7IGVycm9yOiBlcnJvck1zZyB9XG4gIH1cbn1cblxuLyoqXG4gKiBkbyBhIGZldGNoIG9mIG1hbmlmZXN0IGFuZCBib29rIG9mIHRoZSBiaWJsZSBzcGVjaWZpZWQgaW4gZmV0Y2hQYXJhbXNcbiAqIEBwYXJhbSB7c3RyaW5nfSBzZXJ2ZXIgLSBzZXJ2ZXIgdG8gYWNjZXNzXG4gKiBAcGFyYW0ge1NlcnZlckNvbmZpZ1R5cGV9IGNvbmZpZ1xuICogQHBhcmFtIHtTY3JpcHR1cmVSZXNvdXJjZVR5cGV9IHJlc291cmNlXG4gKiBAcGFyYW0ge1NjcmlwdHVyZVJlZmVyZW5jZVR5cGV9IHJlZmVyZW5jZVxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZmV0Y2hCaWJsZUJvb2soc2VydmVyOiBzdHJpbmcsIGNvbmZpZzogU2VydmVyQ29uZmlnVHlwZSwgcmVzb3VyY2U6IFNjcmlwdHVyZVJlc291cmNlVHlwZSwgcmVmZXJlbmNlOiBTY3JpcHR1cmVSZWZlcmVuY2VUeXBlKSB7XG4gIGNvbnNvbGUubG9nKGBmZXRjaEJpYmxlQm9vaygpIC0gbG9hZGluZyBiaWJsZSBib29rYCwgcmVzb3VyY2UpXG4gIGNvbnN0IHJlZl8gPSByZXNvdXJjZT8uYnJhbmNoIHx8IHJlc291cmNlPy5yZWZcbiAgY29uc3QgcmVzb3VyY2VMaW5rID0gZ2V0UmVzb3VyY2VMaW5rKHtcbiAgICAuLi5yZXNvdXJjZSxcbiAgICByZXNvdXJjZUlkOiByZXNvdXJjZT8ucHJvamVjdElkIHx8ICcnLFxuICAgIGJvb2tJZDogcmVmZXJlbmNlPy5ib29rSWQgfHwgJycsXG4gICAgcmVmOiByZWZfLFxuICB9KVxuXG4gIGxldCBmZXRjaFBhcmFtczogQm9va0ZldGNoUGFyYW1zID0ge1xuICAgIGNvbmZpZzoge1xuICAgICAgLi4uY29uZmlnLFxuICAgICAgc2VydmVyLFxuICAgIH0sXG4gICAgcmVzb3VyY2UsXG4gICAgcmVmZXJlbmNlLFxuICAgIHJlc291cmNlTGluayxcbiAgfVxuXG4gIGNvbnN0IHJlc3VsdHMgPSBhd2FpdCBmZXRjaEJpYmxlQm9va0NvcmUoZmV0Y2hQYXJhbXMpXG4gIGNvbnNvbGUubG9nKGBmZXRjaEJpYmxlQm9vaygpIC0gYmlibGUgYm9vayBsb2FkIGZpbmlzaGVkYCwgcmVzb3VyY2UpXG4gIHJldHVybiByZXN1bHRzXG59XG4iXSwibWFwcGluZ3MiOiI7K0NBQ0EscUpBQUFBLG1CQUFBLFlBQUFBLG9CQUFBLFdBQUFDLENBQUEsU0FBQUMsQ0FBQSxFQUFBRCxDQUFBLE9BQUFFLENBQUEsR0FBQUMsTUFBQSxDQUFBQyxTQUFBLEVBQUFDLENBQUEsR0FBQUgsQ0FBQSxDQUFBSSxjQUFBLEVBQUFDLENB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
704
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVnZW5lcmF0b3JSdW50aW1lIiwiZSIsInQiLCJyIiwiT2JqZWN0IiwicHJvdG90eXBlIiwibiIsImhhc093blByb3BlcnR5IiwibyIsImRlZmluZVByb3BlcnR5IiwidmFsdWUiLCJpIiwiU3ltYm9sIiwiYSIsIml0ZXJhdG9yIiwiYyIsImFzeW5jSXRlcmF0b3IiLCJ1IiwidG9TdHJpbmdUYWciLCJkZWZpbmUiLCJlbnVtZXJhYmxlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJ3cmFwIiwiR2VuZXJhdG9yIiwiY3JlYXRlIiwiQ29udGV4dCIsIm1ha2VJbnZva2VNZXRob2QiLCJ0cnlDYXRjaCIsInR5cGUiLCJhcmciLCJjYWxsIiwiaCIsImwiLCJmIiwicyIsInkiLCJHZW5lcmF0b3JGdW5jdGlvbiIsIkdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlIiwicCIsImQiLCJnZXRQcm90b3R5cGVPZiIsInYiLCJ2YWx1ZXMiLCJnIiwiZGVmaW5lSXRlcmF0b3JNZXRob2RzIiwiZm9yRWFjaCIsIl9pbnZva2UiLCJBc3luY0l0ZXJhdG9yIiwiaW52b2tlIiwiX3R5cGVvZiIsInJlc29sdmUiLCJfX2F3YWl0IiwidGhlbiIsImNhbGxJbnZva2VXaXRoTWV0aG9kQW5kQXJnIiwiRXJyb3IiLCJkb25lIiwibWV0aG9kIiwiZGVsZWdhdGUiLCJtYXliZUludm9rZURlbGVnYXRlIiwic2VudCIsIl9zZW50IiwiZGlzcGF0Y2hFeGNlcHRpb24iLCJhYnJ1cHQiLCJUeXBlRXJyb3IiLCJyZXN1bHROYW1lIiwibmV4dCIsIm5leHRMb2MiLCJwdXNoVHJ5RW50cnkiLCJ0cnlMb2MiLCJjYXRjaExvYyIsImZpbmFsbHlMb2MiLCJhZnRlckxvYyIsInRyeUVudHJpZXMiLCJwdXNoIiwicmVzZXRUcnlFbnRyeSIsImNvbXBsZXRpb24iLCJyZXNldCIsImlzTmFOIiwibGVuZ3RoIiwiZGlzcGxheU5hbWUiLCJpc0dlbmVyYXRvckZ1bmN0aW9uIiwiY29uc3RydWN0b3IiLCJuYW1lIiwibWFyayIsInNldFByb3RvdHlwZU9mIiwiX19wcm90b19fIiwiYXdyYXAiLCJhc3luYyIsIlByb21pc2UiLCJrZXlzIiwicmV2ZXJzZSIsInBvcCIsInByZXYiLCJjaGFyQXQiLCJzbGljZSIsInN0b3AiLCJydmFsIiwiaGFuZGxlIiwiY29tcGxldGUiLCJmaW5pc2giLCJfY2F0Y2giLCJkZWxlZ2F0ZVlpZWxkIiwiYXN5bmNHZW5lcmF0b3JTdGVwIiwiZ2VuIiwicmVqZWN0IiwiX25leHQiLCJfdGhyb3ciLCJrZXkiLCJpbmZvIiwiZXJyb3IiLCJfYXN5bmNUb0dlbmVyYXRvciIsImZuIiwic2VsZiIsImFyZ3MiLCJhcmd1bWVudHMiLCJhcHBseSIsImVyciIsInVuZGVmaW5lZCIsIl90b0NvbnN1bWFibGVBcnJheSIsImFyciIsIl9hcnJheVdpdGhvdXRIb2xlcyIsIl9pdGVyYWJsZVRvQXJyYXkiLCJfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkiLCJfbm9uSXRlcmFibGVTcHJlYWQiLCJpdGVyIiwiQXJyYXkiLCJmcm9tIiwiaXNBcnJheSIsIl9hcnJheUxpa2VUb0FycmF5IiwiX2NyZWF0ZUZvck9mSXRlcmF0b3JIZWxwZXIiLCJhbGxvd0FycmF5TGlrZSIsIml0IiwiRiIsIl9lIiwibm9ybWFsQ29tcGxldGlvbiIsImRpZEVyciIsInN0ZXAiLCJfZTIiLCJvd25LZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwiZmlsdGVyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiX29iamVjdFNwcmVhZCIsIl9kZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwib2JqIiwiX3RvUHJvcGVydHlLZXkiLCJfdG9QcmltaXRpdmUiLCJTdHJpbmciLCJpbnB1dCIsImhpbnQiLCJwcmltIiwidG9QcmltaXRpdmUiLCJyZXMiLCJOdW1iZXIiLCJfc2xpY2VkVG9BcnJheSIsIl9hcnJheVdpdGhIb2xlcyIsIl9pdGVyYWJsZVRvQXJyYXlMaW1pdCIsIl9ub25JdGVyYWJsZVJlc3QiLCJtaW5MZW4iLCJ0b1N0cmluZyIsInRlc3QiLCJsZW4iLCJhcnIyIiwiQ09OVEVOVF9OT1RfRk9VTkRfRVJST1IiLCJJTlZBTElEX01BTklGRVNUX0VSUk9SIiwiTE9BRElOR19TVEFURSIsIk1BTklGRVNUX05PVF9MT0FERURfRVJST1IiLCJTQ1JJUFRVUkVfTk9UX0xPQURFRF9FUlJPUiIsImNvcmUiLCJ1c2ZtanMiLCJCb29rRmV0Y2hQYXJhbXMiLCJTY3JpcHR1cmVSZWZlcmVuY2VUeXBlIiwiU2NyaXB0dXJlUmVzb3VyY2VUeXBlIiwiU2VydmVyQ29uZmlnVHlwZSIsIlZlcnNlT2JqZWN0c1R5cGUiLCJCT09LX05PVF9GT1VORF9FUlJPUl9NU0ciLCJMT0FESU5HX1JFU09VUkNFIiwiTUFOSUZFU1RfSU5WQUxJRF9FUlJPUl9NU0ciLCJNQU5JRkVTVF9OT1RfRk9VTkRfRVJST1JfTVNHIiwiTlRfT1JJR19MQU5HIiwiTlRfT1JJR19MQU5HX0JJQkxFIiwiT1JJR0lOQUxfU09VUkNFIiwiT1RfT1JJR19MQU5HIiwiT1RfT1JJR19MQU5HX0JJQkxFIiwiU0NSSVBUVVJFX05PVF9GT1VORF9FUlJPUl9NU0ciLCJUQVJHRVRfTElURVJBTCIsIlRBUkdFVF9TSU1QTElGSUVEIiwiZGVsYXkiLCJESVNBQkxFX1dPUkRfUE9QT1ZFUiIsImdldFJlc291cmNlTGluayIsInNjcmlwdHVyZSIsInJlZiIsImJyYW5jaCIsInJlc291cmNlSWQiLCJwcm9qZWN0SWQiLCJjb25jYXQiLCJvd25lciIsImxhbmd1YWdlSWQiLCJwYXJzZVJlc291cmNlTGluayIsInJlc291cmNlTGluayIsIl9yZXNvdXJjZUxpbmskc3BsaXQiLCJzcGxpdCIsIl9yZXNvdXJjZUxpbmskc3BsaXQyIiwiZ2V0U2NyaXB0dXJlT2JqZWN0IiwiX3JlZiIsInRpdGxlIiwic2VydmVyIiwiZGlzYWJsZVdvcmRQb3BvdmVyIiwib3JpZ2luYWxMYW5ndWFnZU93bmVyIiwiZ2V0VmVyc2VEYXRhRnJvbVNjcmlwQ29uZmlnIiwic2NyaXB0dXJlQ29uZmlnIiwidmVyc2VOdW0iLCJfc2NyaXB0dXJlQ29uZmlnJHZlcnMiLCJ2ZXJzZXNGb3JSZWYiLCJmaW5kIiwidmVyc2VSZWYiLCJ2ZXJzZSIsImlzT3JpZ2luYWxCaWJsZSIsImlzT3JpZyIsImNsZWFudXBBY2NvdW50U2V0dGluZ3MiLCJzY3JpcHR1cmVTZXR0aW5ncyIsImN1cnJlbnRPd25lciIsImN1cnJlbnRMYW5ndWFnZUlkIiwic3BsaXRVcmwiLCJvcmlnaW5hbFJlcG9VcmwiLCJ1cmwiLCJVUkwiLCJvcmlnaW4iLCJwYXRobmFtZSIsInNlYXJjaCIsImdldFNjcmlwdHVyZVJlc291cmNlU2V0dGluZ3MiLCJib29rSWQiLCJzY3JpcHR1cmVTZXR0aW5nc18iLCJpc05ld1Rlc3RhbWVudCIsIl9zcGxpdFVybCIsImdldFNjcmlwdHVyZVZlcnNpb25TZXR0aW5ncyIsIl9yZWYyIiwibGFiZWwiLCJzZXRTY3JpcHR1cmUiLCJzY3JpcHR1cmVWZXJzaW9uSGlzdCIsImhpc3RvcnkiLCJnZXRMYXRlc3QiLCJpbmRleCIsImZpbmRJdGVtSW5kZXhCeUtleSIsInNjcmlwdHVyZVNlbGVjdG9yQ29uZmlnIiwib3B0aW9ucyIsImN1cnJlbnQiLCJhbGxvd1VzZXJJbnB1dCIsIm9uQ2hhbmdlIiwidmFsaWRhdGlvbkNCIiwiaXRlbSIsIm5ld0l0ZW0iLCJhZGRJdGVtVG9IaXN0b3J5IiwiZ2V0SXRlbUJ5VGl0bGUiLCJkZWxldGVJdGVtIiwiZGVsZXRlSW5kZXgiLCJyZW1vdmVJdGVtQnlJbmRleCIsImdldFJlcG9VcmwiLCJpc05UIiwicmVwb1VybCIsIl9yZXNvdXJjZUxpbmskc3BsaXQzIiwiX3Jlc291cmNlTGluayRzcGxpdDQiLCJnZXRFcnJvck1lc3NhZ2VGb3JSZXNvdXJjZUxpbmsiLCJlcnJvckNvZGUiLCJlcnJvck1zZyIsInZhbGlkYXRlRGNzVXJsIiwidmFsaWRSZXBvUGF0aCIsInZhbGlkVXJsIiwicGFydHMiLCJfcGFydHMiLCJwcm90b2NvbCIsImhvc3QiLCJ1c2VyIiwicmVwbyIsImhvc3RQYXJ0cyIsIl9pdGVyYXRvciIsIl9zdGVwIiwicGFydCIsIl9yZXBvJHNwbGl0IiwiX3JlcG8kc3BsaXQyIiwiX3VudXNlZCIsImNvbnNvbGUiLCJsb2ciLCJnZXRSZXNvdXJjZUVycm9yTWVzc2FnZSIsInJlc291cmNlU3RhdHVzIiwibWVzc2FnZSIsImdldFJlc291cmNlTWVzc2FnZSIsImdldFJlc291cmNlTGlua1NwZWNpZmljIiwiZml4T2NjdXJyZW5jZSIsIm9jY3VycmVuY2UiLCJwYXJzZUludCIsImNsZWFudXBWZXJzZU9iamVjdHMiLCJ2ZXJzZU9iamVjdHMiLCJ2ZXJzZU9iamVjdHNfIiwidm8iLCJvY2N1cnJlbmNlcyIsIndvcmQiLCJjaGlsZHJlbiIsIm5ld1ZvIiwiZ2V0Qm9va05hbWVGcm9tVXNmbUZpbGVOYW1lIiwiZmlsZW5hbWUiLCJfZmlsZW5hbWUkbWF0Y2giLCJyZWdleCIsImJvb2tOYW1lIiwibWF0Y2giLCJnZXRCaWJsZUlkRnJvbVVzZm1Db250ZW50SUQiLCJiaWJsZVVzZm0iLCJpZEhlYWRlciIsInBvc0lkIiwiaW5kZXhPZiIsImlkU3RhcnQiLCJoZWFkZXJJZCIsInN1YnN0cmluZyIsInRyaW0iLCJoZWFkZXJCb29rSUQiLCJfaGVhZGVyQm9va0lEIiwidmVyc2VPYmplY3RzSGF2ZVdvcmRzIiwiX2l0ZXJhdG9yMiIsIl9zdGVwMiIsImZvdW5kV29yZHMiLCJmaW5kTm9uV2hpdGVTcGFjZUNoYXJzIiwibm90RW1wdHkiLCJfaXRlcmF0b3IzIiwiX3N0ZXAzIiwiX3ZvJHRleHQiLCJ0ZXh0IiwiZW1wdHlDb250ZW50IiwiaGFzTm9WZXJzZXMiLCJnZXRBbGlnbm1lbnRzIiwiYWxpZ25tZW50c0xpc3QiLCJ0YWciLCJhbGlnbm1lbnQiLCJlbmRUYWciLCJfYWxpZ25tZW50IiwiZmV0Y2hCaWJsZUJvb2tDb3JlIiwiX3giLCJfZmV0Y2hCaWJsZUJvb2tDb3JlIiwiX2NhbGxlZSIsImZldGNoUGFyYW1zIiwiX3Jlc291cmNlJHByb2plY3QiLCJfcmVzb3VyY2UkcHJvamVjdDIiLCJyZXNvdXJjZSIsInJlc3BvbnNlIiwiYm9va09iamVjdHMiLCJfZXJyb3JNc2ciLCJfcmVmMyIsInNoYSIsIl9lcnJvck1zZzIiLCJfY2FsbGVlJCIsIl9jb250ZXh0IiwicmVzb3VyY2VGcm9tUmVzb3VyY2VMaW5rIiwibWFuaWZlc3QiLCJwcm9qZWN0IiwiZmlsZSIsIndhcm4iLCJyZXNvdXJjZUVycm9yIiwiZ2V0UmVzcG9uc2VEYXRhIiwidG9KU09OIiwiZGF0YSIsInQwIiwiZmV0Y2hCaWJsZUJvb2siLCJfeDIiLCJfeDMiLCJfeDQiLCJfeDUiLCJfZmV0Y2hCaWJsZUJvb2siLCJfY2FsbGVlMiIsImNvbmZpZyIsInJlZmVyZW5jZSIsInJlZl8iLCJyZXN1bHRzIiwiX2NhbGxlZTIkIiwiX2NvbnRleHQyIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL1NjcmlwdHVyZVNldHRpbmdzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENPTlRFTlRfTk9UX0ZPVU5EX0VSUk9SLFxuICBJTlZBTElEX01BTklGRVNUX0VSUk9SLFxuICBMT0FESU5HX1NUQVRFLFxuICBNQU5JRkVTVF9OT1RfTE9BREVEX0VSUk9SLFxuICBTQ1JJUFRVUkVfTk9UX0xPQURFRF9FUlJPUixcbn0gZnJvbSAndHJhbnNsYXRpb24taGVscHMtcmNsJ1xuaW1wb3J0IHsgY29yZSB9IGZyb20gJ3NjcmlwdHVyZS1yZXNvdXJjZXMtcmNsJ1xuaW1wb3J0IHVzZm1qcyBmcm9tICd1c2ZtLWpzJ1xuaW1wb3J0IHtcbiAgQm9va0ZldGNoUGFyYW1zLFxuICBTY3JpcHR1cmVSZWZlcmVuY2VUeXBlLFxuICBTY3JpcHR1cmVSZXNvdXJjZVR5cGUsXG4gIFNlcnZlckNvbmZpZ1R5cGUsXG4gIFZlcnNlT2JqZWN0c1R5cGUsXG59IGZyb20gJy4uL3R5cGVzJ1xuaW1wb3J0IHtcbiAgQk9PS19OT1RfRk9VTkRfRVJST1JfTVNHLFxuICBMT0FESU5HX1JFU09VUkNFLFxuICBNQU5JRkVTVF9JTlZBTElEX0VSUk9SX01TRyxcbiAgTUFOSUZFU1RfTk9UX0ZPVU5EX0VSUk9SX01TRyxcbiAgTlRfT1JJR19MQU5HLFxuICBOVF9PUklHX0xBTkdfQklCTEUsXG4gIE9SSUdJTkFMX1NPVVJDRSxcbiAgT1RfT1JJR19MQU5HLFxuICBPVF9PUklHX0xBTkdfQklCTEUsXG4gIFNDUklQVFVSRV9OT1RfRk9VTkRfRVJST1JfTVNHLFxuICBUQVJHRVRfTElURVJBTCxcbiAgVEFSR0VUX1NJTVBMSUZJRUQsXG59IGZyb20gJy4vY29tbW9uJ1xuaW1wb3J0IHsgZGVsYXkgfSBmcm9tICcuL2RlbGF5J1xuXG5leHBvcnQgY29uc3QgRElTQUJMRV9XT1JEX1BPUE9WRVIgPSB0cnVlIC8vIGRpc2FibGUgd29yZCBwb3BvdmVyIGZvciBldmVyeSBzY3JpcHR1cmUgcGFuZSBidXQgb3JpZ2luYWwgbGFuZ3VhZ2VzXG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRSZXNvdXJjZUxpbmsoc2NyaXB0dXJlKSB7XG4gIGNvbnN0IHJlZiA9IHNjcmlwdHVyZS5yZWYgfHwgc2NyaXB0dXJlLmJyYW5jaFxuICBjb25zdCByZXNvdXJjZUlkID0gc2NyaXB0dXJlLnJlc291cmNlSWQgfHwgc2NyaXB0dXJlLnByb2plY3RJZFxuICByZXR1cm4gYCR7c2NyaXB0dXJlLm93bmVyfS8ke3NjcmlwdHVyZS5sYW5ndWFnZUlkfS8ke3Jlc291cmNlSWR9LyR7cmVmfWBcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlUmVzb3VyY2VMaW5rKHJlc291cmNlTGluaykge1xuICBjb25zdCBbb3duZXIsIGxhbmd1YWdlSWQsIHJlc291cmNlSWQsIHJlZl0gPSByZXNvdXJjZUxpbmsuc3BsaXQoJy8nKVxuICByZXR1cm4ge1xuICAgIG93bmVyLFxuICAgIGxhbmd1YWdlSWQsXG4gICAgcmVzb3VyY2VJZCxcbiAgICByZWYsXG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFNjcmlwdHVyZU9iamVjdCh7XG4gIHRpdGxlLFxuICBzZXJ2ZXIsXG4gIG93bmVyLFxuICByZWYsXG4gIGxhbmd1YWdlSWQsXG4gIHJlc291cmNlSWQsXG4gIHJlc291cmNlTGluayxcbiAgZGlzYWJsZVdvcmRQb3BvdmVyLFxuICBvcmlnaW5hbExhbmd1YWdlT3duZXIsXG59KSB7XG4gIGNvbnN0IHNjcmlwdHVyZSA9IHtcbiAgICB0aXRsZSxcbiAgICBzZXJ2ZXIsXG4gICAgb3duZXIsXG4gICAgb3JpZ2luYWxMYW5ndWFnZU93bmVyLFxuICAgIHJlZixcbiAgICBsYW5ndWFnZUlkLFxuICAgIHJlc291cmNlSWQsXG4gICAgZGlzYWJsZVdvcmRQb3BvdmVyLFxuICAgIHJlc291cmNlTGluayxcbiAgfVxuXG4gIGlmICghcmVzb3VyY2VMaW5rKSB7XG4gICAgc2NyaXB0dXJlLnJlc291cmNlTGluayA9IGdldFJlc291cmNlTGluayh7XG4gICAgICBvd25lcixcbiAgICAgIHJlZixcbiAgICAgIGxhbmd1YWdlSWQsXG4gICAgICByZXNvdXJjZUlkLFxuICAgIH0pXG4gIH1cbiAgcmV0dXJuIHNjcmlwdHVyZVxufVxuXG4vKipcbiAqIHJldHVybiB2ZXJzZSBkYXRhIGdpdmVuIGEgc2NyaXB0dXJlIGNvbmZpZyBhbmQgdmVyc2UgbnVtYmVyXG4gKiBAcGFyYW0gc2NyaXB0dXJlQ29uZmlnXG4gKiBAcGFyYW0gdmVyc2VOdW1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFZlcnNlRGF0YUZyb21TY3JpcENvbmZpZyhzY3JpcHR1cmVDb25maWcsIHZlcnNlTnVtKSB7XG4gIHJldHVybiBzY3JpcHR1cmVDb25maWc/LnZlcnNlc0ZvclJlZj8uZmluZChcbiAgICB2ZXJzZVJlZiA9PiB2ZXJzZVJlZi52ZXJzZSA9PT0gdmVyc2VOdW0sXG4gIClcbn1cblxuLyoqXG4gKiByZXR1cm4gdHJ1ZSBpZiByZXNvdXJjZSBpcyBhbiBvcmlnaW5hbCBsYW5ndWFnZSBiaWJsZVxuICogQHBhcmFtIHJlc291cmNlSWRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzT3JpZ2luYWxCaWJsZShyZXNvdXJjZUlkKSB7XG4gIGNvbnN0IGlzT3JpZyA9ICgocmVzb3VyY2VJZCA9PT0gTlRfT1JJR19MQU5HX0JJQkxFKSB8fCAocmVzb3VyY2VJZCA9PT0gT1RfT1JJR19MQU5HX0JJQkxFKSB8fCAocmVzb3VyY2VJZCA9PT0gT1JJR0lOQUxfU09VUkNFKSlcbiAgcmV0dXJuIGlzT3JpZ1xufVxuXG4vKipcbiAqIG1ha2Ugc3VyZSBzY3JpcHR1cmVTZXR0aW5ncyBhcmUgdXAgdG8gZGF0ZSB3aXRoIGN1cnJlbnQgb3duZXIgYW5kIGxhbmd1YWdlXG4gKiBAcGFyYW0ge29iamVjdH0gc2NyaXB0dXJlU2V0dGluZ3NcbiAqIEBwYXJhbSB7c3RyaW5nfSBjdXJyZW50T3duZXIgLSBvcHRpb25hbCBvdmVyLXJpZGUgZm9yIHRyYW5zaWVudCBjYXNlIHdoZXJlIG93bmVyIGluIHNjcmlwdHVyZSBzZXR0aW5ncyBoYXZlIG5vdCB5ZXQgdXBkYXRlZFxuICogQHBhcmFtIHtzdHJpbmd9IGN1cnJlbnRMYW5ndWFnZUlkIC0gb3B0aW9uYWwgb3Zlci1yaWRlIGZvciB0cmFuc2llbnQgY2FzZSB3aGVyZSBsYW5ndWFnZSBpbiBzY3JpcHR1cmUgc2V0dGluZ3MgaGF2ZSBub3QgeWV0IHVwZGF0ZWRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNsZWFudXBBY2NvdW50U2V0dGluZ3Moc2NyaXB0dXJlU2V0dGluZ3M6IGFueSwgY3VycmVudE93bmVyOiBhbnksIGN1cnJlbnRMYW5ndWFnZUlkOiBhbnkpIHtcbiAgaWYgKGN1cnJlbnRPd25lciAmJiAoY3VycmVudE93bmVyICE9PSBzY3JpcHR1cmVTZXR0aW5ncy5vd25lcikpIHsgLy8gaWYgb3duZXIgY2hhbmdlZCwgdXBkYXRlIHNjcmlwdHVyZVNldHRpbmdzXG4gICAgc2NyaXB0dXJlU2V0dGluZ3Mub3duZXIgPSBjdXJyZW50T3duZXJcbiAgfVxuXG4gIGlmIChjdXJyZW50TGFuZ3VhZ2VJZCAmJiAoY3VycmVudExhbmd1YWdlSWQgIT09IHNjcmlwdHVyZVNldHRpbmdzLmxhbmd1YWdlSWQpKSB7IC8vIGlmIGxhbmd1YWdlIGNoYW5nZWQsIHVwZGF0ZSBzY3JpcHR1cmVTZXR0aW5nc1xuICAgIHNjcmlwdHVyZVNldHRpbmdzLmxhbmd1YWdlSWQgPSBjdXJyZW50TGFuZ3VhZ2VJZFxuICB9XG59XG5cbi8qKlxuICogc2VwYXJhdGUgVVJMIGludG8gc2VydmVyIGFuZCByZXNvdXJjZSBsaW5rXG4gKiBAcGFyYW0ge3N0cmluZ30gb3JpZ2luYWxSZXBvVXJsXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzcGxpdFVybChvcmlnaW5hbFJlcG9VcmwpIHtcbiAgaWYgKG9yaWdpbmFsUmVwb1VybCkge1xuICAgIGNvbnN0IHVybCA9IG5ldyBVUkwob3JpZ2luYWxSZXBvVXJsKVxuICAgIGNvbnN0IHNlcnZlciA9IHVybC5vcmlnaW5cbiAgICBjb25zdCByZXNvdXJjZUxpbmsgPSB1cmwucGF0aG5hbWUgKyAodXJsLnNlYXJjaCB8fCAnJylcbiAgICByZXR1cm4geyBzZXJ2ZXIsIHJlc291cmNlTGluayB9XG4gIH1cbiAgcmV0dXJuIHt9XG59XG5cbi8qKlxuICogZ2V0IHRoZSBzY3JpcHR1cmUgc2V0dGluZ3MgbmVlZGVkIGZvciBmZXRjaCAtIGZvciBPcmlnTGFuZywgVUxULCBHTFQgd2lsbCByZXBsYWNlIG93bmVyIGFuZCBsYW5ndWFnZUlkIHdpdGggY29ycmVjdCB2YWx1ZXNcbiAqIEBwYXJhbSB7c3RyaW5nfSBib29rSWRcbiAqIEBwYXJhbSB7b2JqZWN0fSBzY3JpcHR1cmVTZXR0aW5nc19cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gaXNOZXdUZXN0YW1lbnRcbiAqIEBwYXJhbSB7c3RyaW5nfSBvcmlnaW5hbFJlcG9VcmwgLSBvcHRpb25hbCBwYXRoIHRvIHJlcG8gZm9yIG9yaWdpbmFsIGxhbmd1YWdlXG4gKiBAcGFyYW0ge3N0cmluZ30gY3VycmVudExhbmd1YWdlSWQgLSBvcHRpb25hbCBvdmVyLXJpZGUgZm9yIHRyYW5zaWVudCBjYXNlIHdoZXJlIGxhbmd1YWdlIGluIHNjcmlwdHVyZSBzZXR0aW5ncyBoYXZlIG5vdCB5ZXQgdXBkYXRlZFxuICogQHBhcmFtIHtzdHJpbmd9IGN1cnJlbnRPd25lciAtIG9wdGlvbmFsIG92ZXItcmlkZSBmb3IgdHJhbnNpZW50IGNhc2Ugd2hlcmUgb3duZXIgaW4gc2NyaXB0dXJlIHNldHRpbmdzIGhhdmUgbm90IHlldCB1cGRhdGVkXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRTY3JpcHR1cmVSZXNvdXJjZVNldHRpbmdzKFxuICBib29rSWQsIHNjcmlwdHVyZVNldHRpbmdzXywgaXNOZXdUZXN0YW1lbnQsXG4gIG9yaWdpbmFsUmVwb1VybD1udWxsLFxuICBjdXJyZW50TGFuZ3VhZ2VJZD1udWxsLFxuICBjdXJyZW50T3duZXI9bnVsbCxcbikge1xuICBjb25zdCBzY3JpcHR1cmVTZXR0aW5ncyA9IHsgLi4uc2NyaXB0dXJlU2V0dGluZ3NfIH1cbiAgc2NyaXB0dXJlU2V0dGluZ3MuZGlzYWJsZVdvcmRQb3BvdmVyID0gRElTQUJMRV9XT1JEX1BPUE9WRVJcbiAgY29uc3QgcmVzb3VyY2VJZCA9IHNjcmlwdHVyZVNldHRpbmdzXy5yZXNvdXJjZUlkXG5cbiAgaWYgKHJlc291cmNlSWQgPT09IE9SSUdJTkFMX1NPVVJDRSkge1xuICAgIC8vIHNlbGVjdCBvcmlnaW5hbCBsYW5ndWFnZSBCaWJsZSBiYXNlZCBvbiB3aGljaCB0ZXN0YW1lbnQgdGhlIGJvb2sgYmVsb25nc1xuICAgIHNjcmlwdHVyZVNldHRpbmdzLmxhbmd1YWdlSWQgPSBpc05ld1Rlc3RhbWVudCA/IE5UX09SSUdfTEFORyA6IE9UX09SSUdfTEFOR1xuICAgIHNjcmlwdHVyZVNldHRpbmdzLnJlc291cmNlSWQgPSBpc05ld1Rlc3RhbWVudFxuICAgICAgPyBOVF9PUklHX0xBTkdfQklCTEVcbiAgICAgIDogT1RfT1JJR19MQU5HX0JJQkxFXG5cbiAgICBpZiAoc2NyaXB0dXJlU2V0dGluZ3Mub3JpZ2luYWxMYW5ndWFnZU93bmVyKSB7XG4gICAgICBzY3JpcHR1cmVTZXR0aW5ncy5vd25lciA9IHNjcmlwdHVyZVNldHRpbmdzLm9yaWdpbmFsTGFuZ3VhZ2VPd25lclxuICAgIH1cblxuICAgIGlmIChvcmlnaW5hbFJlcG9VcmwpIHsgLy8gdXNlIHRoaXMgdXJsIGlmIGRlZmluZWRcbiAgICAgIGNvbnN0IHsgc2VydmVyLCByZXNvdXJjZUxpbmsgfSA9IHNwbGl0VXJsKG9yaWdpbmFsUmVwb1VybClcbiAgICAgIHNjcmlwdHVyZVNldHRpbmdzLnNlcnZlciA9IHNlcnZlclxuICAgICAgc2NyaXB0dXJlU2V0dGluZ3MucmVzb3VyY2VMaW5rID0gcmVzb3VyY2VMaW5rXG4gICAgfSBlbHNlIHsgLy8gZmFsbCBiYWNrIHRvIGFwcCBkZWZhdWx0c1xuICAgICAgc2NyaXB0dXJlU2V0dGluZ3MucmVzb3VyY2VMaW5rID0gZ2V0UmVzb3VyY2VMaW5rKHNjcmlwdHVyZVNldHRpbmdzKVxuICAgIH1cbiAgICBzY3JpcHR1cmVTZXR0aW5ncy5kaXNhYmxlV29yZFBvcG92ZXIgPSBmYWxzZVxuICB9IGVsc2UgaWYgKHJlc291cmNlSWQgPT09IFRBUkdFVF9MSVRFUkFMKSB7XG4gICAgY2xlYW51cEFjY291bnRTZXR0aW5ncyhzY3JpcHR1cmVTZXR0aW5ncywgY3VycmVudE93bmVyLCBjdXJyZW50TGFuZ3VhZ2VJZClcbiAgICBzY3JpcHR1cmVTZXR0aW5ncy5yZXNvdXJjZUlkID0gc2NyaXB0dXJlU2V0dGluZ3MubGFuZ3VhZ2VJZCA9PT0gJ2VuJyA/ICd1bHQnIDogJ2dsdCdcbiAgICBzY3JpcHR1cmVTZXR0aW5ncy5yZXNvdXJjZUxpbmsgPSBnZXRSZXNvdXJjZUxpbmsoc2NyaXB0dXJlU2V0dGluZ3MpXG4gIH0gZWxzZSBpZiAocmVzb3VyY2VJZCA9PT0gVEFSR0VUX1NJTVBMSUZJRUQpIHtcbiAgICBjbGVhbnVwQWNjb3VudFNldHRpbmdzKHNjcmlwdHVyZVNldHRpbmdzLCBjdXJyZW50T3duZXIsIGN1cnJlbnRMYW5ndWFnZUlkKVxuICAgIHNjcmlwdHVyZVNldHRpbmdzLnJlc291cmNlSWQgPSBzY3JpcHR1cmVTZXR0aW5ncy5sYW5ndWFnZUlkID09PSAnZW4nID8gJ3VzdCcgOiAnZ3N0J1xuICAgIHNjcmlwdHVyZVNldHRpbmdzLnJlc291cmNlTGluayA9IGdldFJlc291cmNlTGluayhzY3JpcHR1cmVTZXR0aW5ncylcbiAgfVxuICByZXR1cm4gc2NyaXB0dXJlU2V0dGluZ3Ncbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFNjcmlwdHVyZVZlcnNpb25TZXR0aW5ncyh7XG4gIGxhYmVsLFxuICByZXNvdXJjZUxpbmssXG4gIHNldFNjcmlwdHVyZSxcbiAgc2NyaXB0dXJlVmVyc2lvbkhpc3QsXG59KSB7XG4gIGNvbnN0IGhpc3RvcnkgPSBzY3JpcHR1cmVWZXJzaW9uSGlzdC5nZXRMYXRlc3QoKVxuICBsZXQgaW5kZXggPSBzY3JpcHR1cmVWZXJzaW9uSGlzdC5maW5kSXRlbUluZGV4QnlLZXkoaGlzdG9yeSwgJ3Jlc291cmNlTGluaycsIHJlc291cmNlTGluaylcblxuICBjb25zdCBzY3JpcHR1cmVTZWxlY3RvckNvbmZpZyA9IHtcbiAgICBsYWJlbCwgLy8gbGFiZWwgZm9yIGNvbWJvYm94XG4gICAgb3B0aW9uczogaGlzdG9yeSxcbiAgICBjdXJyZW50OiBpbmRleCxcbiAgICBhbGxvd1VzZXJJbnB1dDogdHJ1ZSxcbiAgICBvbkNoYW5nZTogKHRpdGxlLCBpbmRleCwgdmFsaWRhdGlvbkNCPW51bGwpID0+IHtcbiAgICAgIGxldCBpdGVtXG5cbiAgICAgIGlmICgoaW5kZXggPCAwKSAmJiB0aXRsZSkge1xuICAgICAgICBjb25zdCBuZXdJdGVtID0ge1xuICAgICAgICAgIHVybDogdGl0bGUsXG4gICAgICAgICAgdGl0bGUsXG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaW5kZXggPSBzY3JpcHR1cmVWZXJzaW9uSGlzdC5hZGRJdGVtVG9IaXN0b3J5KG5ld0l0ZW0pXG5cbiAgICAgICAgaWYgKGluZGV4ID49IDApIHtcbiAgICAgICAgICBpdGVtID0gc2NyaXB0dXJlVmVyc2lvbkhpc3QuZ2V0TGF0ZXN0KClbaW5kZXhdXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGl0ZW0gPSBzY3JpcHR1cmVWZXJzaW9uSGlzdC5nZXRJdGVtQnlUaXRsZSh0aXRsZSlcbiAgICAgIH1cblxuICAgICAgaWYgKGl0ZW0pIHtcbiAgICAgICAgc2V0U2NyaXB0dXJlKGl0ZW0sIHZhbGlkYXRpb25DQilcbiAgICAgIH1cbiAgICB9LFxuICAgIGRlbGV0ZUl0ZW06IHRpdGxlID0+IHtcbiAgICAgIGNvbnN0IGhpc3RvcnkgPSBzY3JpcHR1cmVWZXJzaW9uSGlzdC5nZXRMYXRlc3QoKVxuICAgICAgY29uc3QgZGVsZXRlSW5kZXggPSBzY3JpcHR1cmVWZXJzaW9uSGlzdC5maW5kSXRlbUluZGV4QnlLZXkoaGlzdG9yeSwgJ3RpdGxlJywgdGl0bGUpXG4gICAgICBzY3JpcHR1cmVWZXJzaW9uSGlzdC5yZW1vdmVJdGVtQnlJbmRleChkZWxldGVJbmRleClcbiAgICB9LFxuICB9XG5cbiAgcmV0dXJuIHNjcmlwdHVyZVNlbGVjdG9yQ29uZmlnXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRSZXBvVXJsKHJlc291cmNlTGluazogc3RyaW5nLCBzZXJ2ZXI6IHN0cmluZywgaXNOVDogYm9vbGVhbik6IHN0cmluZyB7XG4gIGxldCByZXBvVXJsXG5cbiAgdHJ5IHtcbiAgICBsZXQgW293bmVyLCBsYW5ndWFnZUlkLCByZXNvdXJjZUlkXSA9IHJlc291cmNlTGluay5zcGxpdCgnLycpXG5cbiAgICBzd2l0Y2ggKHJlc291cmNlSWQpIHtcbiAgICBjYXNlIE9SSUdJTkFMX1NPVVJDRTpcbiAgICAgIGxhbmd1YWdlSWQgPSBpc05UID8gTlRfT1JJR19MQU5HIDogT1RfT1JJR19MQU5HXG4gICAgICByZXNvdXJjZUlkID0gaXNOVFxuICAgICAgICA/IE5UX09SSUdfTEFOR19CSUJMRVxuICAgICAgICA6IE9UX09SSUdfTEFOR19CSUJMRVxuICAgICAgYnJlYWtcblxuICAgIGNhc2UgVEFSR0VUX0xJVEVSQUw6XG4gICAgICByZXNvdXJjZUlkID0gKGxhbmd1YWdlSWQgPT09ICdlbicpID8gJ3VsdCcgOiAnZ2x0J1xuICAgICAgYnJlYWtcblxuICAgIGNhc2UgVEFSR0VUX1NJTVBMSUZJRUQ6XG4gICAgICByZXNvdXJjZUlkID0gKGxhbmd1YWdlSWQgPT09ICdlbicpID8gJ3VzdCcgOiAnZ3N0J1xuICAgICAgYnJlYWtcbiAgICB9XG4gICAgcmVwb1VybCA9IGAke293bmVyfS8ke2xhbmd1YWdlSWR9XyR7cmVzb3VyY2VJZH1gXG4gIH0gY2F0Y2ggKGUpIHtcbiAgICAvLyByZXNvdXJjZUxpbmsgd2FzIGludmFsaWRcbiAgfVxuXG4gIC8vIEB0cy1pZ25vcmVcbiAgcmV0dXJuIGAke3NlcnZlciB8fCAnJ30vJHtyZXBvVXJsfWBcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEVycm9yTWVzc2FnZUZvclJlc291cmNlTGluayhcbiAgcmVzb3VyY2VMaW5rOiBzdHJpbmcsXG4gIHNlcnZlcjogc3RyaW5nLFxuICBlcnJvckNvZGU6IHN0cmluZyxcbiAgaXNOVDogYm9vbGVhbik6IHN0cmluZ1xue1xuICBjb25zdCByZXBvVXJsID0gZ2V0UmVwb1VybChyZXNvdXJjZUxpbmssIHNlcnZlciwgaXNOVClcbiAgY29uc3QgZXJyb3JNc2cgPSBlcnJvckNvZGUgKyByZXBvVXJsXG4gIHJldHVybiBlcnJvck1zZ1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVEY3NVcmwodXJsKSB7XG4gIGxldCB2YWxpZFJlcG9QYXRoID0gZmFsc2VcbiAgbGV0IHZhbGlkVXJsID0gZmFsc2VcblxuICB0cnkge1xuICAgIGNvbnN0IHBhcnRzID0gdXJsLnNwbGl0KCcvJylcbiAgICBjb25zdCBbcHJvdG9jb2wsICwgaG9zdCwgdXNlciwgcmVwb10gPSBwYXJ0c1xuICAgIHZhbGlkVXJsID0gKHByb3RvY29sID09PSAnaHR0cHM6JylcbiAgICBjb25zdCBob3N0UGFydHMgPSBob3N0ID8gaG9zdC5zcGxpdCgnLicpIDogW11cblxuICAgIGlmIChob3N0UGFydHMubGVuZ3RoID49IDIpIHtcbiAgICAgIGZvciAobGV0IHBhcnQgb2YgaG9zdFBhcnRzKSB7XG4gICAgICAgIGlmICghcGFydCkge1xuICAgICAgICAgIHZhbGlkVXJsID0gZmFsc2VcbiAgICAgICAgICBicmVha1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhbGlkVXJsID0gZmFsc2VcbiAgICB9XG5cbiAgICBpZiAoIHByb3RvY29sICYmIGhvc3QgJiYgdXNlciAmJiByZXBvICkge1xuICAgICAgY29uc3QgW2xhbmd1YWdlSWQsIHByb2plY3RJZF0gPSByZXBvLnNwbGl0KCdfJylcbiAgICAgIHZhbGlkUmVwb1BhdGggPSBsYW5ndWFnZUlkICYmIHByb2plY3RJZFxuICAgIH1cbiAgfSBjYXRjaCB7XG4gICAgY29uc29sZS5sb2coJ0ludmFsaWQgRENTIFVSTDogJyArIHVybClcbiAgfVxuICByZXR1cm4geyB2YWxpZFVybCwgdmFsaWRSZXBvUGF0aCB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRSZXNvdXJjZUVycm9yTWVzc2FnZShyZXNvdXJjZVN0YXR1czogb2JqZWN0KSB7XG4gIGxldCBtZXNzYWdlID0gJydcblxuICBpZiAocmVzb3VyY2VTdGF0dXNbTUFOSUZFU1RfTk9UX0xPQURFRF9FUlJPUl0pIHtcbiAgICBtZXNzYWdlID0gTUFOSUZFU1RfTk9UX0ZPVU5EX0VSUk9SX01TR1xuICB9IGVsc2UgaWYgKHJlc291cmNlU3RhdHVzW0lOVkFMSURfTUFOSUZFU1RfRVJST1JdKSB7XG4gICAgbWVzc2FnZSA9IE1BTklGRVNUX0lOVkFMSURfRVJST1JfTVNHXG4gIH0gZWxzZSBpZiAocmVzb3VyY2VTdGF0dXNbQ09OVEVOVF9OT1RfRk9VTkRfRVJST1JdKSB7XG4gICAgbWVzc2FnZSA9IEJPT0tfTk9UX0ZPVU5EX0VSUk9SX01TR1xuICB9IGVsc2UgaWYgKHJlc291cmNlU3RhdHVzW1NDUklQVFVSRV9OT1RfTE9BREVEX0VSUk9SXSkge1xuICAgIG1lc3NhZ2UgPSBTQ1JJUFRVUkVfTk9UX0ZPVU5EX0VSUk9SX01TR1xuICB9XG4gIHJldHVybiBtZXNzYWdlXG59XG5cbi8qKlxuICogZGVjb2RlIHJlc291cmNlIHN0YXR1cyBpbnRvIHN0cmluZy4gIEN1cnJlbnRseSBvbmx5IEVuZ2xpc2hcbiAqIEBwYXJhbSByZXNvdXJjZVN0YXR1cyAtIG9iamVjdCB0aGF0IGNvbnRhaW5zIHN0YXRlIGFuZCBlcnJvcnMgdGhhdCBhcmUgZGV0ZWN0ZWRcbiAqIEBwYXJhbSBzZXJ2ZXIgLSBjb250YWlucyB0aGUgc2VydmVyIGJlaW5nIHVzZWRcbiAqIEBwYXJhbSByZXNvdXJjZUxpbmsgLSBwYXRoIHRvIHJlcG8gb24gc2VydmVyXG4gKiBAcGFyYW0gaXNOVCAtIHRydWUgaWYgTlQgYm9va1xuICogQHJldHVybiBlbXB0eSBzdHJpbmcgaWYgbm8gZXJyb3IsIGVsc2UgcmV0dXJucyB1c2VyIGVycm9yIG1lc3NhZ2VcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFJlc291cmNlTWVzc2FnZShyZXNvdXJjZVN0YXR1czogb2JqZWN0LCBzZXJ2ZXI6IHN0cmluZywgcmVzb3VyY2VMaW5rOiBzdHJpbmcsIGlzTlQ6IGJvb2xlYW4pIHtcbiAgbGV0IG1lc3NhZ2UgPSAnJ1xuXG4gIGlmIChyZXNvdXJjZVN0YXR1c1tMT0FESU5HX1NUQVRFXSkge1xuICAgIG1lc3NhZ2UgPSBMT0FESU5HX1JFU09VUkNFXG4gIH0gZWxzZSB7XG4gICAgbWVzc2FnZSA9IGdldFJlc291cmNlRXJyb3JNZXNzYWdlKHJlc291cmNlU3RhdHVzKVxuXG4gICAgaWYgKG1lc3NhZ2UpIHtcbiAgICAgIG1lc3NhZ2UgPSBnZXRFcnJvck1lc3NhZ2VGb3JSZXNvdXJjZUxpbmsocmVzb3VyY2VMaW5rLCBzZXJ2ZXIsIG1lc3NhZ2UsIGlzTlQpXG4gICAgfVxuICB9XG4gIHJldHVybiBtZXNzYWdlXG59XG5cbi8qKlxuICogZ2VuZXJhdGUgcmVzb3VyY2Ugc3RyaW5nXG4gKiBAcGFyYW0gb3duZXJcbiAqIEBwYXJhbSBsYW5ndWFnZUlkXG4gKiBAcGFyYW0gcHJvamVjdElkXG4gKiBAcGFyYW0gcmVmXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRSZXNvdXJjZUxpbmtTcGVjaWZpYyhvd25lcjogc3RyaW5nLCBsYW5ndWFnZUlkOiBzdHJpbmcsIHByb2plY3RJZDogc3RyaW5nLCByZWY6IHN0cmluZykge1xuICByZXR1cm4gYGFwaS92MS9yZXBvcy8ke293bmVyfS8ke2xhbmd1YWdlSWR9XyR7cHJvamVjdElkfS9jb250ZW50cz9yZWY9JHtyZWZ9YFxufVxuXG5leHBvcnQgZnVuY3Rpb24gZml4T2NjdXJyZW5jZShvY2N1cnJlbmNlKSB7XG4gIGlmICh0eXBlb2Ygb2NjdXJyZW5jZSA9PT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gcGFyc2VJbnQob2NjdXJyZW5jZSlcbiAgfVxuICByZXR1cm4gb2NjdXJyZW5jZVxufVxuXG5leHBvcnQgZnVuY3Rpb24gY2xlYW51cFZlcnNlT2JqZWN0cyh2ZXJzZU9iamVjdHMpIHtcbiAgaWYgKHZlcnNlT2JqZWN0cz8ubGVuZ3RoKSB7XG4gICAgY29uc3QgdmVyc2VPYmplY3RzXyA9IFsuLi52ZXJzZU9iamVjdHNdXG5cbiAgICBmb3IgKGxldCBpID0gMCwgbCA9IHZlcnNlT2JqZWN0c18ubGVuZ3RoOyBpIDwgbDsgaSsrKSB7XG4gICAgICBjb25zdCB2byA9IHZlcnNlT2JqZWN0c19baV1cblxuICAgICAgaWYgKHZvLnR5cGUgPT09ICd3b3JkJyAmJiAodm8ub2NjdXJyZW5jZSB8fCB2by5vY2N1cnJlbmNlcykpIHtcbiAgICAgICAgY29uc3Qgd29yZCA9IHsgLi4udm8gfVxuXG4gICAgICAgIGlmICh2by5vY2N1cnJlbmNlKSB7XG4gICAgICAgICAgd29yZC5vY2N1cnJlbmNlID0gZml4T2NjdXJyZW5jZSh2by5vY2N1cnJlbmNlKVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHZvLm9jY3VycmVuY2VzKSB7XG4gICAgICAgICAgd29yZC5vY2N1cnJlbmNlcyA9IGZpeE9jY3VycmVuY2Uodm8ub2NjdXJyZW5jZXMpXG4gICAgICAgIH1cbiAgICAgICAgdmVyc2VPYmplY3RzX1tpXSA9IHdvcmRcbiAgICAgIH0gZWxzZSBpZiAodm8uY2hpbGRyZW4pIHtcbiAgICAgICAgY29uc3QgY2hpbGRyZW4gPSBjbGVhbnVwVmVyc2VPYmplY3RzKHZvLmNoaWxkcmVuKVxuICAgICAgICBjb25zdCBuZXdWbyA9IHtcbiAgICAgICAgICAuLi52byxcbiAgICAgICAgICBjaGlsZHJlbixcbiAgICAgICAgfVxuICAgICAgICB2ZXJzZU9iamVjdHNfW2ldID0gbmV3Vm9cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHZlcnNlT2JqZWN0c19cbiAgfVxuICByZXR1cm4gW11cbn1cblxuLyoqXG4gKiB0YWtlIHRoZSBmaWxlbmFtZSBvZiB0aGUgYm9vayAoZS5nLiBcIjU3LVRJVC51c2ZtXCIpIGFuZCBwYXJzZSBvdXQgdGhlIGJvb2tJZFxuICogQHBhcmFtIHtzdHJpbmd9IGZpbGVuYW1lXG4gKiBAcmV0dXJuIHtzdHJpbmd9IGJvb2tJZCBpZiBmb3VuZFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0Qm9va05hbWVGcm9tVXNmbUZpbGVOYW1lKGZpbGVuYW1lKSB7XG4gIGNvbnN0IHJlZ2V4ID0gL14oLio/KVxcLnVzZm0vXG4gIGNvbnN0IGJvb2tOYW1lID0gZmlsZW5hbWU/Lm1hdGNoKHJlZ2V4KT8uWzFdXG4gIHJldHVybiBib29rTmFtZVxufVxuXG4vKipcbiAqIHBhcnNlIHRoZSBVU0ZNIHRvIGZpbmQgYm9va0lEIGluIGhlYWRlclxuICogQHBhcmFtIHtzdHJpbmd9IGJpYmxlVXNmbVxuICogQHJldHVybiB7c3RyaW5nfSBib29rSWQgaWYgZm91bmRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEJpYmxlSWRGcm9tVXNmbUNvbnRlbnRJRChiaWJsZVVzZm0pIHtcbiAgY29uc3QgaWRIZWFkZXIgPSAnXFxcXGlkICdcbiAgY29uc3QgcG9zSWQgPSBiaWJsZVVzZm0/LmluZGV4T2YoaWRIZWFkZXIpXG5cbiAgaWYgKHBvc0lkID49IDApIHtcbiAgICBjb25zdCBpZFN0YXJ0ID0gcG9zSWQgKyBpZEhlYWRlci5sZW5ndGhcbiAgICBsZXQgaGVhZGVySWQgPSBiaWJsZVVzZm0/LnN1YnN0cmluZyggaWRTdGFydCwgaWRTdGFydCArIDEwMCkudHJpbSgpXG4gICAgbGV0IGhlYWRlckJvb2tJRCA9IG51bGxcblxuICAgIGlmIChoZWFkZXJJZD8ubGVuZ3RoID4gMSkge1xuICAgICAgaGVhZGVyQm9va0lEID0gaGVhZGVySWQ/LnNwbGl0KCcgJylcbiAgICAgIGhlYWRlckJvb2tJRCA9IGhlYWRlckJvb2tJRD8uWzBdLnRyaW0oKVxuICAgIH1cbiAgICByZXR1cm4gaGVhZGVyQm9va0lEXG4gIH1cbiAgcmV0dXJuIG51bGxcbn1cblxuLyoqXG4gKiBkZXRlcm1pbmVzIGlmIHRoZXJlIGFyZSBhbnkgd29yZHMgaW4gdmVyc2VPYmplY3RzXG4gKiBAcGFyYW0ge1ZlcnNlT2JqZWN0c1R5cGV9IHZlcnNlT2JqZWN0cyAtIGFycmF5IG9mIHZlcnNlT2JqZWN0cyB0byBzZWFyY2ggZm9yIHdvcmRzXG4gKiBAcmV0dXJuIHtib29sZWFufSB0cnVlIGlmIHdvcmQgaXMgZm91bmRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHZlcnNlT2JqZWN0c0hhdmVXb3Jkcyh2ZXJzZU9iamVjdHM6IFZlcnNlT2JqZWN0c1R5cGUpIHtcbiAgaWYgKHZlcnNlT2JqZWN0cz8ubGVuZ3RoKSB7XG4gICAgZm9yIChjb25zdCB2byBvZiB2ZXJzZU9iamVjdHMpIHtcbiAgICAgIGlmICh2by50eXBlID09PSAnd29yZCcpIHtcbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgIH0gZWxzZSBpZiAodm8uY2hpbGRyZW4pIHtcbiAgICAgICAgY29uc3QgZm91bmRXb3JkcyA9IHZlcnNlT2JqZWN0c0hhdmVXb3Jkcyh2by5jaGlsZHJlbilcblxuICAgICAgICBpZiAoZm91bmRXb3Jkcykge1xuICAgICAgICAgIHJldHVybiB0cnVlXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIGZhbHNlXG59XG5cbi8qKlxuICogRGV0ZXJtaW5lcyBpZiB0aGVyZSBhcmUgYW55IG5vbi13aGl0ZXNwYWNlIGNoYXJhY3RlcnMgd2l0aGluIHRoZSBwcm92aWRlZCB2ZXJzZSBvYmplY3RzLlxuICogVGhlIG1ldGhvZCB0cmF2ZXJzZXMgdGhyb3VnaCB0aGUgaW5wdXQsIGNoZWNraW5nIGZvciBub24tZW1wdHkgc3RyaW5ncyBpbiBgd29yZGAgb3IgYHRleHRgIHR5cGUgb2JqZWN0cyxcbiAqIG9wdGlvbmFsbHkgdHJhdmVyc2luZyBjaGlsZCBvYmplY3RzIGlmIHByZXNlbnQuXG4gKlxuICogQHBhcmFtIHtWZXJzZU9iamVjdHNUeXBlfSB2ZXJzZU9iamVjdHMgLSBUaGUgaW5wdXQgb2JqZWN0cyB0byBjaGVjayBmb3Igbm9uLXdoaXRlc3BhY2UgY2hhcmFjdGVycy4gVGhpcyBjYW4gYmUgYSBzdHJpbmcsIGFuIGFycmF5IG9mIG9iamVjdHMsIG9yIGNvbnRhaW4gbmVzdGVkIHN0cnVjdHVyZXMuXG4gKiBAcmV0dXJuIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBhbnkgbm9uLXdoaXRlc3BhY2UgY2hhcmFjdGVycyBhcmUgZm91bmQsIG90aGVyd2lzZSBgZmFsc2VgLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZmluZE5vbldoaXRlU3BhY2VDaGFycyh2ZXJzZU9iamVjdHM6IFZlcnNlT2JqZWN0c1R5cGUpIHtcbiAgaWYgKHR5cGVvZiB2ZXJzZU9iamVjdHMgPT09ICdzdHJpbmcnKSB7XG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIGNvbnN0IG5vdEVtcHR5ID0gdmVyc2VPYmplY3RzLnRyaW0oKVxuICAgIHJldHVybiAhIW5vdEVtcHR5XG4gIH1cblxuICAvLyBAdHMtaWdub3JlXG4gIGlmICh2ZXJzZU9iamVjdHM/LnZlcnNlT2JqZWN0cykgeyAvLyBzcGVjaWFsIGNhc2UgZm9yIHZlcnNlT2JqZWN0cyB3aXRoIHZlcnNlT2JqZWN0cyBwcm9wZXJ0eVxuICAgIC8vIEB0cy1pZ25vcmVcbiAgICByZXR1cm4gZmluZE5vbldoaXRlU3BhY2VDaGFycyh2ZXJzZU9iamVjdHMudmVyc2VPYmplY3RzKVxuICB9XG5cbiAgaWYgKHZlcnNlT2JqZWN0cz8ubGVuZ3RoKSB7XG4gICAgZm9yIChjb25zdCB2byBvZiB2ZXJzZU9iamVjdHMpIHtcbiAgICAgIGlmICgodm8udHlwZSA9PT0gJ3dvcmQnKSB8fCAodm8udHlwZSA9PT0gJ3RleHQnKSkge1xuICAgICAgICBjb25zdCB0ZXh0ID0gdm8udGV4dD8udHJpbSgpXG5cbiAgICAgICAgaWYgKHRleHQpIHtcbiAgICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKHZvLmNoaWxkcmVuKSB7XG4gICAgICAgIGNvbnN0IGZvdW5kV29yZHMgPSBmaW5kTm9uV2hpdGVTcGFjZUNoYXJzKHZvLmNoaWxkcmVuKVxuXG4gICAgICAgIGlmIChmb3VuZFdvcmRzKSB7XG4gICAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBmYWxzZVxufVxuXG5cbi8qKlxuICogQ2hlY2tzIGlmIHRoZSBnaXZlbiBjb250ZW50IGlzIGVtcHR5IGJ5IHZlcmlmeWluZyB0aGUgcHJlc2VuY2Ugb2Ygbm9uLXdoaXRlc3BhY2UgY2hhcmFjdGVyc1xuICogb3IgaWYgdGhlIHByb3ZpZGVkIHZlcnNlT2JqZWN0cyBhcnJheSBpcyBlbXB0eSBvciB1bmRlZmluZWQuXG4gKlxuICogQHBhcmFtIHtBcnJheX0gdmVyc2VPYmplY3RzIC0gQW4gYXJyYXkgb2YgdmVyc2Ugb2JqZWN0cyB0byBiZSBjaGVja2VkLlxuICogQHJldHVybiB7Ym9vbGVhbn0gUmV0dXJucyB0cnVlIGlmIHRoZSBjb250ZW50IGlzIGVtcHR5IG9yIGNvbnRhaW5zIG9ubHkgd2hpdGVzcGFjZSwgZmFsc2Ugb3RoZXJ3aXNlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZW1wdHlDb250ZW50KHZlcnNlT2JqZWN0cykge1xuICBjb25zdCBoYXNOb1ZlcnNlcyA9ICF2ZXJzZU9iamVjdHM/Lmxlbmd0aFxuXG4gIGlmIChoYXNOb1ZlcnNlcykge1xuICAgIHJldHVybiB0cnVlXG4gIH1cblxuICByZXR1cm4gIWZpbmROb25XaGl0ZVNwYWNlQ2hhcnModmVyc2VPYmplY3RzKTtcbn1cblxuXG4vKipcbiAqIGV4dHJhY3QganVzdCB0aGUgYWxpZ25tZW50cyBmcm9tIHZlcnNlT2JqZWN0c1xuICogQHBhcmFtIHtWZXJzZU9iamVjdHNUeXBlfSB2ZXJzZU9iamVjdHNcbiAqIEByZXR1cm5zIHtWZXJzZU9iamVjdHNUeXBlfSAtIGp1c3QgYWxpZ25tZW50c1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0QWxpZ25tZW50cyh2ZXJzZU9iamVjdHM6IFZlcnNlT2JqZWN0c1R5cGUpOlZlcnNlT2JqZWN0c1R5cGUge1xuICBjb25zdCBhbGlnbm1lbnRzTGlzdCA9IHZlcnNlT2JqZWN0cy5maWx0ZXIodm8gPT4gdm8udGFnID09PSAnemFsbicpXG5cbiAgLy8gcmVtb3ZlIGVuZFRhZ1xuICBmb3IgKGxldCBpID0gMDsgaSA8IGFsaWdubWVudHNMaXN0Lmxlbmd0aDsgaSsrKSB7XG4gICAgY29uc3QgYWxpZ25tZW50ID0gYWxpZ25tZW50c0xpc3RbaV1cblxuICAgIGlmIChhbGlnbm1lbnQuZW5kVGFnKSB7XG4gICAgICBjb25zdCBfYWxpZ25tZW50ID0geyAuLi5hbGlnbm1lbnQgfVxuICAgICAgZGVsZXRlIF9hbGlnbm1lbnQuZW5kVGFnXG4gICAgICBhbGlnbm1lbnRzTGlzdFtpXSA9IF9hbGlnbm1lbnRcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGFsaWdubWVudHNMaXN0XG59XG5cbi8qKlxuICogZG8gYSBmZXRjaCBvZiBtYW5pZmVzdCBhbmQgYm9vayBvZiB0aGUgYmlibGUgc3BlY2lmaWVkIGluIGZldGNoUGFyYW1zLlxuICpcbiAqICAgIFRSSUNLWSAtIHRoaXMgZnVuY3Rpb24gaXMgYmVpbmcgY2FsbGVkIGJ5IGV2ZXJ5IHNjcmlwdHVyZSBjYXJkIHNpbXVsdGFuZW91c2x5IGR1cmluZyBib29rIG5hdmlnYXRpb24sIHNvIGl0IGlzXG4gKiAgICAgIHZlcnkgaW1wb3J0YW50IHRoYXQgaXQgZG9lcyBub3QgY2F1c2Ugc2lnbmlmaWNhbnQgZGVsYXlzIChwYXJ0aWN1bGFybHkgb24gc2xvd2VyIGRldmljZXMpIGFuZCBibG9jayBVSSBvclxuICogICAgICBzdGF0ZSB1cGRhdGVzLlxuICpcbiAqIEBwYXJhbSB7Qm9va0ZldGNoUGFyYW1zfSBmZXRjaFBhcmFtc1xuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZmV0Y2hCaWJsZUJvb2tDb3JlKGZldGNoUGFyYW1zOiBCb29rRmV0Y2hQYXJhbXMpIHtcbiAgdHJ5IHtcbiAgICBjb25zb2xlLmxvZyhgZmV0Y2hCaWJsZUJvb2tDb3JlKCkgLSBGRVRDSElORyBiaWJsZSAke2ZldGNoUGFyYW1zPy5yZXNvdXJjZUxpbmt9YCwgZmV0Y2hQYXJhbXMpXG5cbiAgICAvLyBmZXRjaCBtYW5pZmVzdCBkYXRhXG4gICAgY29uc3QgcmVzb3VyY2UgPSBhd2FpdCBjb3JlLnJlc291cmNlRnJvbVJlc291cmNlTGluayhmZXRjaFBhcmFtcylcblxuICAgIGlmICghcmVzb3VyY2U/Lm1hbmlmZXN0IHx8ICFyZXNvdXJjZT8ucHJvamVjdD8uZmlsZSkge1xuICAgICAgY29uc3QgZXJyb3JNc2cgPSByZXNvdXJjZT8ubWFuaWZlc3QgPyAncGFyc2luZyByZXNvdXJjZSBtYW5pZmVzdCcgOiAnbG9hZGluZyByZXNvdXJjZSBtYW5pZmVzdCdcbiAgICAgIGNvbnNvbGUud2FybihgZmV0Y2hCaWJsZUJvb2tDb3JlKCkgLSBlcnJvciAke2Vycm9yTXNnfWAsIGZldGNoUGFyYW1zIClcbiAgICAgIHJldHVybiB7IGVycm9yOiBlcnJvck1zZywgcmVzb3VyY2VFcnJvcjogdHJ1ZSB9XG4gICAgfVxuXG4gICAgY29uc29sZS5sb2coYGZldGNoQmlibGVCb29rQ29yZSgpIC0gTE9BREVEIGJpYmxlIG1hbmlmZXN0LCBmZXRjaGluZyBib29rICAke2ZldGNoUGFyYW1zPy5yZXNvdXJjZUxpbmt9YCwgZmV0Y2hQYXJhbXMpXG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCByZXNvdXJjZT8ucHJvamVjdD8uZmlsZSgpXG4gICAgLy8gcGFyc2UgYm9vayB1c2ZtXG4gICAgY29uc3QgYmlibGVVc2ZtID0gcmVzcG9uc2UgJiYgY29yZS5nZXRSZXNwb25zZURhdGEocmVzcG9uc2UpXG4gICAgYXdhaXQgZGVsYXkoMTAwKSAvLyBhbGxvdyBVSSB0byB1cGRhdGUgYmV0d2VlbiB0d28gY29tcHV0YXRpb25hbGx5IGV4cGVuc2l2ZSBmdW5jdGlvbnNcbiAgICBjb25zdCBib29rT2JqZWN0cyA9IGJpYmxlVXNmbSAmJiB1c2ZtanMudG9KU09OKGJpYmxlVXNmbSkgLy8gY29udmVydCB0byBiaWJsZSBvYmplY3RzXG5cbiAgICBpZiAoIWJvb2tPYmplY3RzKSB7XG4gICAgICBjb25zdCBlcnJvck1zZyA9IGJpYmxlVXNmbSA/ICdmZXRjaGluZyBib29rIG9mIHRoZSBiaWJsZScgOiAncGFyc2luZyBib29rIG9mIHRoZSBiaWJsZSdcbiAgICAgIGNvbnNvbGUud2FybihgZmV0Y2hCaWJsZUJvb2tDb3JlKCkgLSBlcnJvciAke2Vycm9yTXNnfWAsIGZldGNoUGFyYW1zIClcbiAgICAgIHJldHVybiB7IGVycm9yOiBlcnJvck1zZyB9XG4gICAgfVxuXG4gICAgY29uc3Qge1xuICAgICAgbmFtZSxcbiAgICAgIHNoYSxcbiAgICAgIHVybCxcbiAgICB9ID0gcmVzcG9uc2U/LmRhdGEgfHwge31cblxuICAgIGNvbnNvbGUubG9nKGBmZXRjaEJpYmxlQm9va0NvcmUoKSAtIExPQURFRCBiaWJsZSBib29rLCAgJHtmZXRjaFBhcmFtcz8ucmVzb3VyY2VMaW5rfWAsIGZldGNoUGFyYW1zKVxuICAgIHJldHVybiB7XG4gICAgICAuLi5yZXNvdXJjZSxcbiAgICAgIGJpYmxlVXNmbSxcbiAgICAgIGJvb2tPYmplY3RzLFxuICAgICAgbmFtZSxcbiAgICAgIHJlc3BvbnNlLFxuICAgICAgc2hhLFxuICAgICAgdXJsLFxuICAgIH1cbiAgfSBjYXRjaCAoZSkge1xuICAgIGNvbnN0IGVycm9yTXNnID0gJ2hhcmQgZXJyb3IgbG9hZGluZyByZXNvdXJjZSdcbiAgICBjb25zb2xlLmVycm9yKGBmZXRjaEJpYmxlQm9va0NvcmUoKSAtICR7ZXJyb3JNc2d9YCwgZmV0Y2hQYXJhbXMsIGUgKVxuICAgIHJldHVybiB7IGVycm9yOiBlcnJvck1zZyB9XG4gIH1cbn1cblxuLyoqXG4gKiBkbyBhIGZldGNoIG9mIG1hbmlmZXN0IGFuZCBib29rIG9mIHRoZSBiaWJsZSBzcGVjaWZpZWQgaW4gZmV0Y2hQYXJhbXNcbiAqIEBwYXJhbSB7c3RyaW5nfSBzZXJ2ZXIgLSBzZXJ2ZXIgdG8gYWNjZXNzXG4gKiBAcGFyYW0ge1NlcnZlckNvbmZpZ1R5cGV9IGNvbmZpZ1xuICogQHBhcmFtIHtTY3JpcHR1cmVSZXNvdXJjZVR5cGV9IHJlc291cmNlXG4gKiBAcGFyYW0ge1NjcmlwdHVyZVJlZmVyZW5jZVR5cGV9IHJlZmVyZW5jZVxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZmV0Y2hCaWJsZUJvb2soc2VydmVyOiBzdHJpbmcsIGNvbmZpZzogU2VydmVyQ29uZmlnVHlwZSwgcmVzb3VyY2U6IFNjcmlwdHVyZVJlc291cmNlVHlwZSwgcmVmZXJlbmNlOiBTY3JpcHR1cmVSZWZlcmVuY2VUeXBlKSB7XG4gIGNvbnNvbGUubG9nKGBmZXRjaEJpYmxlQm9vaygpIC0gbG9hZGluZyBiaWJsZSBib29rYCwgcmVzb3VyY2UpXG4gIGNvbnN0IHJlZl8gPSByZXNvdXJjZT8uYnJhbmNoIHx8IHJlc291cmNlPy5yZWZcbiAgY29uc3QgcmVzb3VyY2VMaW5rID0gZ2V0UmVzb3VyY2VMaW5rKHtcbiAgICAuLi5yZXNvdXJjZSxcbiAgICByZXNvdXJjZUlkOiByZXNvdXJjZT8ucHJvamVjdElkIHx8ICcnLFxuICAgIGJvb2tJZDogcmVmZXJlbmNlPy5ib29rSWQgfHwgJycsXG4gICAgcmVmOiByZWZfLFxuICB9KVxuXG4gIGxldCBmZXRjaFBhcmFtczogQm9va0ZldGNoUGFyYW1zID0ge1xuICAgIGNvbmZpZzoge1xuICAgICAgLi4uY29uZmlnLFxuICAgICAgc2VydmVyLFxuICAgIH0sXG4gICAgcmVzb3VyY2UsXG4gICAgcmVmZXJlbmNlLFxuICAgIHJlc291cmNlTGluayxcbiAgfVxuXG4gIGNvbnN0IHJlc3VsdHMgPSBhd2FpdCBmZXRjaEJpYmxlQm9va0NvcmUoZmV0Y2hQYXJhbXMpXG4gIGNvbnNvbGUubG9nKGBmZXRjaEJpYmxlQm9vaygpIC0gYmlibGUgYm9vayBsb2FkIGZpbmlzaGVkYCwgcmVzb3VyY2UpXG4gIHJldHVybiByZXN1bHRzXG59XG4iXSwibWFwcGluZ3MiOiI7K0NBQ0EscUpBQUFBLG1CQUFBLFlBQUFBLG9CQUFBLFdBQUFDLENBQUEsU0FBQUMsQ0FBQSxFQUFBRCxDQUFBLE9BQUFFLENBQUEsR0FBQUMsTUFBQSxDQUFBQyxTQUFBLEVBQUFDLENBQUEsR0FBQUgsQ0FBQSxDQUFBSSxjQUFBLEVBQUFDLENBQUEsR0FBQUosTUFBQSxDQUFBSyxjQUFBLGNBQUFQLENBQUEsRUFBQUQsQ0FBQSxFQUFBRSxDQUFBLElBQUFELENBQUEsQ0FBQUQsQ0FBQSxJQUFBRSxDQUFBLENBQUFPLEtBQUEsS0FBQUMsQ0FBQSx3QkFBQUMsTUFBQSxHQUFBQSxNQUFBLE9BQUFDLENBQUEsR0FBQUYsQ0FBQSxDQUFBRyxRQUFBLGtCQUFBQyxDQUFBLEdBQUFKLENBQUEsQ0FBQUssYUFBQSx1QkFBQUMsQ0FBQSxHQUFBTixDQUFBLENBQUFPLFdBQUEsOEJBQUFDLE9BQUFqQixDQUFBLEVBQUFELENBQUEsRUFBQUUsQ0FBQSxXQUFBQyxNQUFBLENBQUFLLGNBQUEsQ0FBQVAsQ0FBQSxFQUFBRCxDQUFB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
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.4.34",
4
+ "version": "3.4.35",
5
5
  "repository": {
6
6
  "type": "git",
7
7
  "url": "https://github.com/unfoldingWord/single-scripture-rcl.git"