occam-furtle 3.0.328 → 3.0.329

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.
@@ -12,7 +12,6 @@ const _occamlanguages = require("occam-languages");
12
12
  const _elements = /*#__PURE__*/ _interop_require_wildcard(require("../../elements"));
13
13
  const _exception = /*#__PURE__*/ _interop_require_default(require("../../exception"));
14
14
  const _typeNames = require("../../typeNames");
15
- const _string = require("../../utilities/string");
16
15
  function _interop_require_default(obj) {
17
16
  return obj && obj.__esModule ? obj : {
18
17
  default: obj
@@ -109,4 +108,4 @@ const _default = (0, _elements.define)(class ArrayAssigment extends _occamlangua
109
108
  static name = "ArrayAssignment";
110
109
  });
111
110
 
112
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50L2Fzc2lnbm1lbnQvYXJyYXkuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IEVsZW1lbnQgfSBmcm9tIFwib2NjYW0tbGFuZ3VhZ2VzXCI7XG5cbmltcG9ydCBlbGVtZW50cyBmcm9tIFwiLi4vLi4vZWxlbWVudHNcIjtcbmltcG9ydCBFeGNlcHRpb24gZnJvbSBcIi4uLy4uL2V4Y2VwdGlvblwiO1xuXG5pbXBvcnQgeyBkZWZpbmUgfSBmcm9tIFwiLi4vLi4vZWxlbWVudHNcIjtcbmltcG9ydCB7IExJU1RfVFlQRV9OQU1FIH0gZnJvbSBcIi4uLy4uL3R5cGVOYW1lc1wiO1xuaW1wb3J0IHsgcHJpbXRpdmVTdHJpbmdGcm9tTm9taW5hbFZhbHVlcyB9IGZyb20gXCIuLi8uLi91dGlsaXRpZXMvc3RyaW5nXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGRlZmluZShjbGFzcyBBcnJheUFzc2lnbWVudCBleHRlbmRzIEVsZW1lbnQge1xuICBjb25zdHJ1Y3Rvcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIHZhcmlhYmxlLCBiaW5kaW5ncykge1xuICAgIHN1cGVyKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCk7XG5cbiAgICB0aGlzLnZhcmlhYmxlID0gdmFyaWFibGU7XG4gICAgdGhpcy5iaW5kaW5ncyA9IGJpbmRpbmdzO1xuICB9XG5cbiAgZ2V0VmFyaWFibGUoKSB7XG4gICAgcmV0dXJuIHRoaXMudmFyaWFibGU7XG4gIH1cblxuICBnZXRCaW5kaW5ncygpIHtcbiAgICByZXR1cm4gdGhpcy5iaW5kaW5ncztcbiAgfVxuXG4gIGV2YWx1YXRlKGNvbnRleHQpIHtcbiAgICBjb25zdCBhcnJheUFzc2lnbm1lbnRTdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYEV2YWx1YXRpbmcgdGhlICcke2FycmF5QXNzaWdubWVudFN0cmluZ30nIGFycmF5IGFzc2lnbm1lbnQuLi5gKTtcblxuICAgIGNvbnN0IHZhbHVlID0gdGhpcy52YXJpYWJsZS5ldmFsdWF0ZShjb250ZXh0KSxcbiAgICAgICAgICB2YWx1ZVR5cGUgPSB2YWx1ZS5nZXRUeXBlKCksXG4gICAgICAgICAgdmFsdWVUeXBlTGlzdFR5cGUgPSB2YWx1ZVR5cGUuaXNMaXN0VHlwZSgpO1xuXG4gICAgaWYgKCF2YWx1ZVR5cGVMaXN0VHlwZSkge1xuICAgICAgY29uc3QgdmFsdWVTdHJpbmcgPSB2YWx1ZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgICAgIG1lc3NhZ2UgPSBgVGhlICcke3ZhbHVlU3RyaW5nfScgdmFsdWUncyAnJHt2YWx1ZVR5cGV9JyB0eXBlIHNob3VsZCBiZSAnJHtMSVNUX1RZUEVfTkFNRX0nLmAsXG4gICAgICAgICAgICBleGNlcHRpb24gPSBFeGNlcHRpb24uZnJvbU1lc3NhZ2UobWVzc2FnZSk7XG5cbiAgICAgIHRocm93IGV4Y2VwdGlvbjtcbiAgICB9XG5cbiAgICBjb25zdCBiaW5kaW5nc0xlbmd0aCA9IHRoaXMuYmluZGluZ3MuZ2V0TGVuZ3RoKCksXG4gICAgICAgICAgcHJpbWl0aXZlVmFsdWUgPSB2YWx1ZS5nZXRQcmltaXRpdmVWYWx1ZSgpLFxuICAgICAgICAgIHByaW1pdGl2ZVZhbHVlTGVuZ3RoID0gcHJpbWl0aXZlVmFsdWUubGVuZ3RoO1xuXG4gICAgaWYgKGJpbmRpbmdzTGVuZ3RoID4gcHJpbWl0aXZlVmFsdWVMZW5ndGgpIHtcbiAgICAgIGNvbnN0IHZhbHVlU3RyaW5nID0gdmFsdWUuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgICBiaW5kaW5nc1N0cmluZyA9IHRoaXMuYmluZGluZ3MuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgICBtZXNzYWdlID0gYFRoZSBsZW5ndGggb2YgdGhlICcke2JpbmRpbmdzU3RyaW5nfScgYmluZGluZ3MgaXMgZ3JlYXRlciB0aGFuIHRoZSBsZW5ndGggb2YgdGhlICcke3ZhbHVlU3RyaW5nfScgbGlzdC5gLFxuICAgICAgICAgICAgZXhjZXB0aW9uID0gRXhjZXB0aW9uLmZyb21NZXNzYWdlKG1lc3NhZ2UpO1xuXG4gICAgICB0aHJvdyBleGNlcHRpb247XG4gICAgfVxuXG4gICAgY29uc3QgdmFsdWVzID0gdmFsdWUubGlmdChjb250ZXh0KTtcblxuICAgIHRoaXMuYmluZGluZ3MuZm9yRWFjaEJpbmRpbmcoKGJpbmRpbmcsIGluZGV4KSA9PiB7XG4gICAgICBjb25zdCBlbGlkZWQgPSBiaW5kaW5nLmlzRWxpZGVkKCk7XG5cbiAgICAgIGlmICghZWxpZGVkKSB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gdmFsdWVzW2luZGV4XTtcblxuICAgICAgICB0aGlzLmV2YWx1YXRlQmluZGluZyhiaW5kaW5nLCB2YWx1ZSwgY29udGV4dCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBjb250ZXh0LmRlYnVnKGAuLi5ldmFsdWF0ZWQgdGhlICcke2FycmF5QXNzaWdubWVudFN0cmluZ30nIGFycmF5IGFzc2lnbm1lbnQuYCk7XG4gIH1cblxuICBldmFsdWF0ZUJpbmRpbmcoYmluZGluZywgdmFsdWUsIGNvbnRleHQpIHtcbiAgICBjb25zdCB2YWx1ZVN0cmluZyA9IHZhbHVlLmdldFN0cmluZygpLFxuICAgICAgICAgIGJpbmRpbmdTdHJpbmcgPSBiaW5kaW5nLmdldFN0cmluZygpO1xuXG4gICAgY29udGV4dC50cmFjZShgRXZhbHVhdGluZyB0aGUgJyR7YmluZGluZ1N0cmluZ30nIGJpbmRpbmcgYWdhaW5zdCB0aGUgJyR7dmFsdWVTdHJpbmd9JyB2YWx1ZS4uLmApO1xuXG4gICAgY29uc3QgdmFsdWVUeXBlID0gdmFsdWUuZ2V0VHlwZSgpLFxuICAgICAgICAgIGJpbmRpbmdUeXBlID0gYmluZGluZy5nZXRUeXBlKCksXG4gICAgICAgICAgYmluZGluZ1R5cGVFcXVhbFRvVmFsdWVUeXBlID0gYmluZGluZ1R5cGUuaXNFcXVhbFRvKHZhbHVlVHlwZSk7XG5cbiAgICBpZiAoIWJpbmRpbmdUeXBlRXF1YWxUb1ZhbHVlVHlwZSkge1xuICAgICAgY29uc3QgYmluZGluZ1R5cGVTdHJpbmcgPSBiaW5kaW5nVHlwZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgICAgIHZhbHVlVHlwZVN0cmluZyA9IHZhbHVlVHlwZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgICAgIHZhbHVlU3RyaW5nID0gdmFsdWUuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgICBtZXNzYWdlID0gYFRoZSAnJHtiaW5kaW5nU3RyaW5nfScgYmluZGluZydzICcke2JpbmRpbmdUeXBlU3RyaW5nfScgdHlwZSBpcyBub3QgZXF1YWwgdG8gdGhlICcke3ZhbHVlU3RyaW5nfScgdmFsdWUncyAnJHt2YWx1ZVR5cGVTdHJpbmd9JyB0eXBlLmAsXG4gICAgICAgICAgICBleGNlcHRpb24gPSBFeGNlcHRpb24uZnJvbU1lc3NhZ2UobWVzc2FnZSk7XG5cbiAgICAgIHRocm93IGV4Y2VwdGlvbjtcbiAgICB9XG5cbiAgICBjb25zdCB7IFZhcmlhYmxlIH0gPSBlbGVtZW50cyxcbiAgICAgICAgICB2YXJpYWJsZSA9IFZhcmlhYmxlLmZyb21CaW5kaW5nKGJpbmRpbmcsIGNvbnRleHQpO1xuXG4gICAgdmFyaWFibGUuYXNzaWduKHZhbHVlLCBjb250ZXh0KTtcblxuICAgIGNvbnRleHQuZGVidWcoYC4uLmV2YWx1YXRlZCB0aGUgJyR7YmluZGluZ1N0cmluZ30nIGJpbmRpbmcgYWdhaW5zdCB0aGUgJyR7dmFsdWVTdHJpbmd9JyB2YWx1ZS5gKTtcbiAgfVxuXG4gIHN0YXRpYyBuYW1lID0gXCJBcnJheUFzc2lnbm1lbnRcIjtcbn0pO1xuIl0sIm5hbWVzIjpbImRlZmluZSIsIkFycmF5QXNzaWdtZW50IiwiRWxlbWVudCIsImNvbnRleHQiLCJzdHJpbmciLCJub2RlIiwiYnJlYWtQb2ludCIsInZhcmlhYmxlIiwiYmluZGluZ3MiLCJnZXRWYXJpYWJsZSIsImdldEJpbmRpbmdzIiwiZXZhbHVhdGUiLCJhcnJheUFzc2lnbm1lbnRTdHJpbmciLCJnZXRTdHJpbmciLCJ0cmFjZSIsInZhbHVlIiwidmFsdWVUeXBlIiwiZ2V0VHlwZSIsInZhbHVlVHlwZUxpc3RUeXBlIiwiaXNMaXN0VHlwZSIsInZhbHVlU3RyaW5nIiwibWVzc2FnZSIsIkxJU1RfVFlQRV9OQU1FIiwiZXhjZXB0aW9uIiwiRXhjZXB0aW9uIiwiZnJvbU1lc3NhZ2UiLCJiaW5kaW5nc0xlbmd0aCIsImdldExlbmd0aCIsInByaW1pdGl2ZVZhbHVlIiwiZ2V0UHJpbWl0aXZlVmFsdWUiLCJwcmltaXRpdmVWYWx1ZUxlbmd0aCIsImxlbmd0aCIsImJpbmRpbmdzU3RyaW5nIiwidmFsdWVzIiwibGlmdCIsImZvckVhY2hCaW5kaW5nIiwiYmluZGluZyIsImluZGV4IiwiZWxpZGVkIiwiaXNFbGlkZWQiLCJldmFsdWF0ZUJpbmRpbmciLCJkZWJ1ZyIsImJpbmRpbmdTdHJpbmciLCJiaW5kaW5nVHlwZSIsImJpbmRpbmdUeXBlRXF1YWxUb1ZhbHVlVHlwZSIsImlzRXF1YWxUbyIsImJpbmRpbmdUeXBlU3RyaW5nIiwidmFsdWVUeXBlU3RyaW5nIiwiVmFyaWFibGUiLCJlbGVtZW50cyIsImZyb21CaW5kaW5nIiwiYXNzaWduIiwibmFtZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBV0E7OztlQUFBOzs7Z0NBVHdCO2tFQUVIO2tFQUNDOzJCQUdTO3dCQUNpQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7TUFFaEQsV0FBZUEsSUFBQUEsZ0JBQU0sRUFBQyxNQUFNQyx1QkFBdUJDLHVCQUFPO0lBQ3hELFlBQVlDLE9BQU8sRUFBRUMsTUFBTSxFQUFFQyxJQUFJLEVBQUVDLFVBQVUsRUFBRUMsUUFBUSxFQUFFQyxRQUFRLENBQUU7UUFDakUsS0FBSyxDQUFDTCxTQUFTQyxRQUFRQyxNQUFNQztRQUU3QixJQUFJLENBQUNDLFFBQVEsR0FBR0E7UUFDaEIsSUFBSSxDQUFDQyxRQUFRLEdBQUdBO0lBQ2xCO0lBRUFDLGNBQWM7UUFDWixPQUFP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
111
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50L2Fzc2lnbm1lbnQvYXJyYXkuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IEVsZW1lbnQgfSBmcm9tIFwib2NjYW0tbGFuZ3VhZ2VzXCI7XG5cbmltcG9ydCBlbGVtZW50cyBmcm9tIFwiLi4vLi4vZWxlbWVudHNcIjtcbmltcG9ydCBFeGNlcHRpb24gZnJvbSBcIi4uLy4uL2V4Y2VwdGlvblwiO1xuXG5pbXBvcnQgeyBkZWZpbmUgfSBmcm9tIFwiLi4vLi4vZWxlbWVudHNcIjtcbmltcG9ydCB7IExJU1RfVFlQRV9OQU1FIH0gZnJvbSBcIi4uLy4uL3R5cGVOYW1lc1wiO1xuXG5leHBvcnQgZGVmYXVsdCBkZWZpbmUoY2xhc3MgQXJyYXlBc3NpZ21lbnQgZXh0ZW5kcyBFbGVtZW50IHtcbiAgY29uc3RydWN0b3IoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCB2YXJpYWJsZSwgYmluZGluZ3MpIHtcbiAgICBzdXBlcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQpO1xuXG4gICAgdGhpcy52YXJpYWJsZSA9IHZhcmlhYmxlO1xuICAgIHRoaXMuYmluZGluZ3MgPSBiaW5kaW5ncztcbiAgfVxuXG4gIGdldFZhcmlhYmxlKCkge1xuICAgIHJldHVybiB0aGlzLnZhcmlhYmxlO1xuICB9XG5cbiAgZ2V0QmluZGluZ3MoKSB7XG4gICAgcmV0dXJuIHRoaXMuYmluZGluZ3M7XG4gIH1cblxuICBldmFsdWF0ZShjb250ZXh0KSB7XG4gICAgY29uc3QgYXJyYXlBc3NpZ25tZW50U3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBFdmFsdWF0aW5nIHRoZSAnJHthcnJheUFzc2lnbm1lbnRTdHJpbmd9JyBhcnJheSBhc3NpZ25tZW50Li4uYCk7XG5cbiAgICBjb25zdCB2YWx1ZSA9IHRoaXMudmFyaWFibGUuZXZhbHVhdGUoY29udGV4dCksXG4gICAgICAgICAgdmFsdWVUeXBlID0gdmFsdWUuZ2V0VHlwZSgpLFxuICAgICAgICAgIHZhbHVlVHlwZUxpc3RUeXBlID0gdmFsdWVUeXBlLmlzTGlzdFR5cGUoKTtcblxuICAgIGlmICghdmFsdWVUeXBlTGlzdFR5cGUpIHtcbiAgICAgIGNvbnN0IHZhbHVlU3RyaW5nID0gdmFsdWUuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgICBtZXNzYWdlID0gYFRoZSAnJHt2YWx1ZVN0cmluZ30nIHZhbHVlJ3MgJyR7dmFsdWVUeXBlfScgdHlwZSBzaG91bGQgYmUgJyR7TElTVF9UWVBFX05BTUV9Jy5gLFxuICAgICAgICAgICAgZXhjZXB0aW9uID0gRXhjZXB0aW9uLmZyb21NZXNzYWdlKG1lc3NhZ2UpO1xuXG4gICAgICB0aHJvdyBleGNlcHRpb247XG4gICAgfVxuXG4gICAgY29uc3QgYmluZGluZ3NMZW5ndGggPSB0aGlzLmJpbmRpbmdzLmdldExlbmd0aCgpLFxuICAgICAgICAgIHByaW1pdGl2ZVZhbHVlID0gdmFsdWUuZ2V0UHJpbWl0aXZlVmFsdWUoKSxcbiAgICAgICAgICBwcmltaXRpdmVWYWx1ZUxlbmd0aCA9IHByaW1pdGl2ZVZhbHVlLmxlbmd0aDtcblxuICAgIGlmIChiaW5kaW5nc0xlbmd0aCA+IHByaW1pdGl2ZVZhbHVlTGVuZ3RoKSB7XG4gICAgICBjb25zdCB2YWx1ZVN0cmluZyA9IHZhbHVlLmdldFN0cmluZygpLFxuICAgICAgICAgICAgYmluZGluZ3NTdHJpbmcgPSB0aGlzLmJpbmRpbmdzLmdldFN0cmluZygpLFxuICAgICAgICAgICAgbWVzc2FnZSA9IGBUaGUgbGVuZ3RoIG9mIHRoZSAnJHtiaW5kaW5nc1N0cmluZ30nIGJpbmRpbmdzIGlzIGdyZWF0ZXIgdGhhbiB0aGUgbGVuZ3RoIG9mIHRoZSAnJHt2YWx1ZVN0cmluZ30nIGxpc3QuYCxcbiAgICAgICAgICAgIGV4Y2VwdGlvbiA9IEV4Y2VwdGlvbi5mcm9tTWVzc2FnZShtZXNzYWdlKTtcblxuICAgICAgdGhyb3cgZXhjZXB0aW9uO1xuICAgIH1cblxuICAgIGNvbnN0IHZhbHVlcyA9IHZhbHVlLmxpZnQoY29udGV4dCk7XG5cbiAgICB0aGlzLmJpbmRpbmdzLmZvckVhY2hCaW5kaW5nKChiaW5kaW5nLCBpbmRleCkgPT4ge1xuICAgICAgY29uc3QgZWxpZGVkID0gYmluZGluZy5pc0VsaWRlZCgpO1xuXG4gICAgICBpZiAoIWVsaWRlZCkge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IHZhbHVlc1tpbmRleF07XG5cbiAgICAgICAgdGhpcy5ldmFsdWF0ZUJpbmRpbmcoYmluZGluZywgdmFsdWUsIGNvbnRleHQpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgY29udGV4dC5kZWJ1ZyhgLi4uZXZhbHVhdGVkIHRoZSAnJHthcnJheUFzc2lnbm1lbnRTdHJpbmd9JyBhcnJheSBhc3NpZ25tZW50LmApO1xuICB9XG5cbiAgZXZhbHVhdGVCaW5kaW5nKGJpbmRpbmcsIHZhbHVlLCBjb250ZXh0KSB7XG4gICAgY29uc3QgdmFsdWVTdHJpbmcgPSB2YWx1ZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgICBiaW5kaW5nU3RyaW5nID0gYmluZGluZy5nZXRTdHJpbmcoKTtcblxuICAgIGNvbnRleHQudHJhY2UoYEV2YWx1YXRpbmcgdGhlICcke2JpbmRpbmdTdHJpbmd9JyBiaW5kaW5nIGFnYWluc3QgdGhlICcke3ZhbHVlU3RyaW5nfScgdmFsdWUuLi5gKTtcblxuICAgIGNvbnN0IHZhbHVlVHlwZSA9IHZhbHVlLmdldFR5cGUoKSxcbiAgICAgICAgICBiaW5kaW5nVHlwZSA9IGJpbmRpbmcuZ2V0VHlwZSgpLFxuICAgICAgICAgIGJpbmRpbmdUeXBlRXF1YWxUb1ZhbHVlVHlwZSA9IGJpbmRpbmdUeXBlLmlzRXF1YWxUbyh2YWx1ZVR5cGUpO1xuXG4gICAgaWYgKCFiaW5kaW5nVHlwZUVxdWFsVG9WYWx1ZVR5cGUpIHtcbiAgICAgIGNvbnN0IGJpbmRpbmdUeXBlU3RyaW5nID0gYmluZGluZ1R5cGUuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgICB2YWx1ZVR5cGVTdHJpbmcgPSB2YWx1ZVR5cGUuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgICB2YWx1ZVN0cmluZyA9IHZhbHVlLmdldFN0cmluZygpLFxuICAgICAgICAgICAgbWVzc2FnZSA9IGBUaGUgJyR7YmluZGluZ1N0cmluZ30nIGJpbmRpbmcncyAnJHtiaW5kaW5nVHlwZVN0cmluZ30nIHR5cGUgaXMgbm90IGVxdWFsIHRvIHRoZSAnJHt2YWx1ZVN0cmluZ30nIHZhbHVlJ3MgJyR7dmFsdWVUeXBlU3RyaW5nfScgdHlwZS5gLFxuICAgICAgICAgICAgZXhjZXB0aW9uID0gRXhjZXB0aW9uLmZyb21NZXNzYWdlKG1lc3NhZ2UpO1xuXG4gICAgICB0aHJvdyBleGNlcHRpb247XG4gICAgfVxuXG4gICAgY29uc3QgeyBWYXJpYWJsZSB9ID0gZWxlbWVudHMsXG4gICAgICAgICAgdmFyaWFibGUgPSBWYXJpYWJsZS5mcm9tQmluZGluZyhiaW5kaW5nLCBjb250ZXh0KTtcblxuICAgIHZhcmlhYmxlLmFzc2lnbih2YWx1ZSwgY29udGV4dCk7XG5cbiAgICBjb250ZXh0LmRlYnVnKGAuLi5ldmFsdWF0ZWQgdGhlICcke2JpbmRpbmdTdHJpbmd9JyBiaW5kaW5nIGFnYWluc3QgdGhlICcke3ZhbHVlU3RyaW5nfScgdmFsdWUuYCk7XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiQXJyYXlBc3NpZ25tZW50XCI7XG59KTtcbiJdLCJuYW1lcyI6WyJkZWZpbmUiLCJBcnJheUFzc2lnbWVudCIsIkVsZW1lbnQiLCJjb250ZXh0Iiwic3RyaW5nIiwibm9kZSIsImJyZWFrUG9pbnQiLCJ2YXJpYWJsZSIsImJpbmRpbmdzIiwiZ2V0VmFyaWFibGUiLCJnZXRCaW5kaW5ncyIsImV2YWx1YXRlIiwiYXJyYXlBc3NpZ25tZW50U3RyaW5nIiwiZ2V0U3RyaW5nIiwidHJhY2UiLCJ2YWx1ZSIsInZhbHVlVHlwZSIsImdldFR5cGUiLCJ2YWx1ZVR5cGVMaXN0VHlwZSIsImlzTGlzdFR5cGUiLCJ2YWx1ZVN0cmluZyIsIm1lc3NhZ2UiLCJMSVNUX1RZUEVfTkFNRSIsImV4Y2VwdGlvbiIsIkV4Y2VwdGlvbiIsImZyb21NZXNzYWdlIiwiYmluZGluZ3NMZW5ndGgiLCJnZXRMZW5ndGgiLCJwcmltaXRpdmVWYWx1ZSIsImdldFByaW1pdGl2ZVZhbHVlIiwicHJpbWl0aXZlVmFsdWVMZW5ndGgiLCJsZW5ndGgiLCJiaW5kaW5nc1N0cmluZyIsInZhbHVlcyIsImxpZnQiLCJmb3JFYWNoQmluZGluZyIsImJpbmRpbmciLCJpbmRleCIsImVsaWRlZCIsImlzRWxpZGVkIiwiZXZhbHVhdGVCaW5kaW5nIiwiZGVidWciLCJiaW5kaW5nU3RyaW5nIiwiYmluZGluZ1R5cGUiLCJiaW5kaW5nVHlwZUVxdWFsVG9WYWx1ZVR5cGUiLCJpc0VxdWFsVG8iLCJiaW5kaW5nVHlwZVN0cmluZyIsInZhbHVlVHlwZVN0cmluZyIsIlZhcmlhYmxlIiwiZWxlbWVudHMiLCJmcm9tQmluZGluZyIsImFzc2lnbiIsIm5hbWUiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQVVBOzs7ZUFBQTs7O2dDQVJ3QjtrRUFFSDtrRUFDQzsyQkFHUzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7TUFFL0IsV0FBZUEsSUFBQUEsZ0JBQU0sRUFBQyxNQUFNQyx1QkFBdUJDLHVCQUFPO0lBQ3hELFlBQVlDLE9BQU8sRUFBRUMsTUFBTSxFQUFFQyxJQUFJLEVBQUVDLFVBQVUsRUFBRUMsUUFBUSxFQUFFQyxRQUFRLENBQUU7UUFDakUsS0FBSyxDQUFDTCxTQUFTQyxRQUFRQyxNQUFNQztRQUU3QixJQUFJLENBQUNDLFFBQVEsR0FBR0E7UUFDaEIsSUFBSSxDQUFDQyxRQUFRLEdBQUdBO0lBQ2xCO0lBRUFDLGNBQWM7UUFDWixPQUFPLElBQUksQ0FBQ0YsUUFBUTtJQUN0QjtJQUVBRyxjQUFjO1FBQ1osT0FBTyxJQUFJLENBQUNGLFFBQVE7SUFDdEI7SUFFQUcsU0FBU1IsT0FBTyxF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
@@ -12,11 +12,10 @@ const _occamlanguages = require("occam-languages");
12
12
  const _elements = /*#__PURE__*/ _interop_require_wildcard(require("../../elements"));
13
13
  const _exception = /*#__PURE__*/ _interop_require_default(require("../../exception"));
14
14
  const _nominalValueProperties = /*#__PURE__*/ _interop_require_default(require("../../nominalValueProperties"));
15
- const _value = require("../../utilities/value");
16
15
  const _stringLiteral = require("../../utilities/stringLiteral");
17
- const _term = require("../../utilities/term");
18
- const _parameterNames = require("../../parameterNames");
16
+ const _value = require("../../utilities/value");
19
17
  const _typeNames = require("../../typeNames");
18
+ const _parameterNames = require("../../parameterNames");
20
19
  function _interop_require_default(obj) {
21
20
  return obj && obj.__esModule ? obj : {
22
21
  default: obj
@@ -92,26 +91,32 @@ const _default = (0, _elements.define)(class ObjectAssigment extends _occamlangu
92
91
  evaluateNamedBinding(namedBinding, term, context) {
93
92
  const termString = term.getString(), namedBindingString = namedBinding.getString();
94
93
  context.trace(`Evaluating the '${namedBindingString}' named binding against the '${termString}' term...`);
94
+ let value;
95
95
  const name = namedBinding.getName();
96
96
  switch(name){
97
97
  case _parameterNames.CONTENT_PARAMETER_NAME:
98
98
  {
99
- term = this.evaluateContentNamedBinding(namedBinding, term, context);
99
+ value = this.evaluateContentNamedBinding(namedBinding, term, context);
100
100
  break;
101
101
  }
102
102
  case _parameterNames.TERMINAL_PARAMETER_NAME:
103
103
  {
104
- term = this.evaluateTerminalNamedBinding(namedBinding, term, context);
104
+ value = this.evaluateTerminalNamedBinding(namedBinding, term, context);
105
105
  break;
106
106
  }
107
107
  case _parameterNames.CHILD_NODES_PARAMETER_NAME:
108
108
  {
109
- term = this.evaluateChildNodesNamedBinding(namedBinding, term, context);
109
+ value = this.evaluateChildNodesNamedBinding(namedBinding, term, context);
110
+ break;
111
+ }
112
+ case _parameterNames.NO_WHITESPACE_PARAMETER_NAME:
113
+ {
114
+ value = this.evaluateNoWhitespaceNamedBinding(namedBinding, term, context);
110
115
  break;
111
116
  }
112
117
  }
113
118
  const { Variable } = _elements.default, variable = Variable.fromNamedBinding(namedBinding, context);
114
- variable.assign(term, context);
119
+ variable.assign(value, context);
115
120
  context.debug(`...evaluated the '${namedBindingString}' parameter named against the '${termString}' term.`);
116
121
  }
117
122
  evaluateContentNamedBinding(namedBinding, term, context) {
@@ -127,11 +132,9 @@ const _default = (0, _elements.define)(class ObjectAssigment extends _occamlangu
127
132
  const termString = term.getString(), message = `The '${termString}' term's node must be terminal.`, exception = _exception.default.fromMessage(message);
128
133
  throw exception;
129
134
  }
130
- const terminalNode = node, content = terminalNode.getContent(), string = content, stringLiteral = (0, _stringLiteral.stringLiteralFromString)(string);
131
- term = (0, _term.termFromStringLiteral)(stringLiteral, context);
132
- const termSttring = term.getString();
133
- context.debug(`...evaluated the content '${namedBindingString}' named binding as '${termSttring}'.`);
134
- return term;
135
+ const terminalNode = node, content = terminalNode.getContent(), string = content, stringLiteral = (0, _stringLiteral.stringLiteralFromString)(string), value = (0, _value.valueFromStringLiteral)(stringLiteral, context), valueSttring = value.getString();
136
+ context.debug(`...evaluated the content '${namedBindingString}' named binding as '${valueSttring}'.`);
137
+ return value;
135
138
  }
136
139
  evaluateTerminalNamedBinding(namedBinding, term, context) {
137
140
  const type = namedBinding.getType(), namedBindingString = namedBinding.getString();
@@ -141,12 +144,9 @@ const _default = (0, _elements.define)(class ObjectAssigment extends _occamlangu
141
144
  const namedBindingString = namedBinding.getString(), message = `The '${namedBindingString}' named binding's type should be '${_typeNames.BOOLEAN_TYPE_NAME}'.`, exception = _exception.default.fromMessage(message);
142
145
  throw exception;
143
146
  }
144
- const primitiveValue = term.getPrimitiveValue(), nominalValue = primitiveValue, node = nominalValue.getNode(), nodeTerminalNode = node.isTerminalNode(), terminal = nodeTerminalNode; ///
145
- const boolean = terminal; ///
146
- term = (0, _term.termFromBoolean)(boolean, context); ///
147
- const termSttring = term.getString();
148
- context.debug(`...evaluated the terminal '${namedBindingString}' named binding as '${termSttring}'.`);
149
- return term;
147
+ const primitiveValue = term.getPrimitiveValue(), nominalValue = primitiveValue, node = nominalValue.getNode(), nodeTerminalNode = node.isTerminalNode(), terminal = nodeTerminalNode, boolean = terminal, value = (0, _value.valueFromBoolean)(boolean, context), valueSttring = value.getString();
148
+ context.debug(`...evaluated the terminal '${namedBindingString}' named binding as '${valueSttring}'.`);
149
+ return value;
150
150
  }
151
151
  evaluateChildNodesNamedBinding(namedBinding, term, context) {
152
152
  const type = namedBinding.getType(), namedBindingString = namedBinding.getString();
@@ -165,7 +165,24 @@ const _default = (0, _elements.define)(class ObjectAssigment extends _occamlangu
165
165
  context.debug(`...evaluated the childNodes '${namedBindingString}' named binding as '${valueSttring}'.`);
166
166
  return value;
167
167
  }
168
+ evaluateNoWhitespaceNamedBinding(namedBinding, term, context) {
169
+ const type = namedBinding.getType(), namedBindingString = namedBinding.getString();
170
+ context.trace(`Evaluating the no whitespace '${namedBindingString}' named binding...`);
171
+ const typeBooleanType = type.isBooleanType();
172
+ if (!typeBooleanType) {
173
+ const namedBindingString = namedBinding.getString(), message = `The '${namedBindingString}' named binding's type should be '${_typeNames.BOOLEAN_TYPE_NAME}'.`, exception = _exception.default.fromMessage(message);
174
+ throw exception;
175
+ }
176
+ const primitiveValue = term.getPrimitiveValue(), nominalValue = primitiveValue, node = nominalValue.getNode(), nodeTerminalNode = node.isTerminalNode();
177
+ if (!nodeTerminalNode) {
178
+ const termString = term.getString(), message = `The '${termString}' term's node must be terminal.`, exception = _exception.default.fromMessage(message);
179
+ throw exception;
180
+ }
181
+ const terminalNode = node, noWhiteapce = terminalNode.isNoWhitespaceNode(), boolean = noWhiteapce, value = (0, _value.valueFromBoolean)(boolean, context), valueSttring = value.getString();
182
+ context.debug(`...evaluated the no whitespace '${namedBindingString}' named binding as '${valueSttring}'.`);
183
+ return value;
184
+ }
168
185
  static name = "ObjectAssigment";
169
186
  });
170
187
 
171
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50L2Fzc2lnbm1lbnQvb2JqZWN0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBFbGVtZW50IH0gZnJvbSBcIm9jY2FtLWxhbmd1YWdlc1wiO1xuXG5pbXBvcnQgZWxlbWVudHMgZnJvbSBcIi4uLy4uL2VsZW1lbnRzXCI7XG5pbXBvcnQgRXhjZXB0aW9uIGZyb20gXCIuLi8uLi9leGNlcHRpb25cIjtcbmltcG9ydCBub21pbmFsVmFsdWVQcm9wZXJ0aWVzIGZyb20gXCIuLi8uLi9ub21pbmFsVmFsdWVQcm9wZXJ0aWVzXCI7XG5cbmltcG9ydCB7IGRlZmluZSB9IGZyb20gXCIuLi8uLi9lbGVtZW50c1wiO1xuaW1wb3J0IHsgdmFsdWVGcm9tTm9kZXNBbmROb21pbmFsVmFsdWUgfSBmcm9tIFwiLi4vLi4vdXRpbGl0aWVzL3ZhbHVlXCI7XG5pbXBvcnQgeyBzdHJpbmdMaXRlcmFsRnJvbVN0cmluZyB9IGZyb20gXCIuLi8uLi91dGlsaXRpZXMvc3RyaW5nTGl0ZXJhbFwiO1xuaW1wb3J0IHsgdGVybUZyb21Cb29sZWFuLCB0ZXJtRnJvbVN0cmluZ0xpdGVyYWwgfSBmcm9tIFwiLi4vLi4vdXRpbGl0aWVzL3Rlcm1cIjtcbmltcG9ydCB7IENPTlRFTlRfUEFSQU1FVEVSX05BTUUsIFRFUk1JTkFMX1BBUkFNRVRFUl9OQU1FLCBDSElMRF9OT0RFU19QQVJBTUVURVJfTkFNRSB9IGZyb20gXCIuLi8uLi9wYXJhbWV0ZXJOYW1lc1wiO1xuaW1wb3J0IHsgTElTVF9UWVBFX05BTUUsIFNUUklOR19UWVBFX05BTUUsIEJPT0xFQU5fVFlQRV9OQU1FLCBOT01JTkFMX1ZBTFVFX1RZUEVfTkFNRSB9IGZyb20gXCIuLi8uLi90eXBlTmFtZXNcIjtcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIE9iamVjdEFzc2lnbWVudCBleHRlbmRzIEVsZW1lbnQge1xuICBjb25zdHJ1Y3Rvcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIHZhcmlhYmxlLCBuYW1lZEJpbmRpbmdzKSB7XG4gICAgc3VwZXIoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50KTtcblxuICAgIHRoaXMudmFyaWFibGUgPSB2YXJpYWJsZTtcbiAgICB0aGlzLm5hbWVkQmluZGluZ3MgPSBuYW1lZEJpbmRpbmdzO1xuICB9XG5cbiAgZ2V0VmFyaWFibGUoKSB7XG4gICAgcmV0dXJuIHRoaXMudmFyaWFibGU7XG4gIH1cblxuICBnZXROYW1lZEJpbmRpbmdzKCkge1xuICAgIHJldHVybiB0aGlzLm5hbWVkQmluZGluZ3M7XG4gIH1cblxuICBldmFsdWF0ZShjb250ZXh0KSB7XG4gICAgY29uc3Qgb2JqZWN0QXNzaWdubWVudFN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7IC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgRXZhbHVhdGluZyB0aGUgJyR7b2JqZWN0QXNzaWdubWVudFN0cmluZ30nIG9iamVjdCBhc3NpZ25tZW50Li4uYCk7XG5cbiAgICBjb25zdCB2YWx1ZSA9IHRoaXMudmFyaWFibGUuZXZhbHVhdGUoY29udGV4dCksXG4gICAgICAgICAgdmFsdWVUeXBlID0gdmFsdWUuZ2V0VHlwZSgpLFxuICAgICAgICAgIHZhbHVlVHlwZU5vbWluYWxWYWx1ZVR5cGUgPSB2YWx1ZVR5cGUuaXNOb21pbmFsVmFsdWVUeXBlKCk7XG5cbiAgICBpZiAoIXZhbHVlVHlwZU5vbWluYWxWYWx1ZVR5cGUpIHtcbiAgICAgIGNvbnN0IHZhbHVlU3RyaW5nID0gdmFsdWUuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgICBtZXNzYWdlID0gYFRoZSAnJHt2YWx1ZVN0cmluZ30nIHZhbHVlJ3MgJyR7dmFsdWVUeXBlfScgdHlwZSBzaG91bGQgYmUgJyR7Tk9NSU5BTF9WQUxVRV9UWVBFX05BTUV9Jy5gLFxuICAgICAgICAgICAgZXhjZXB0aW9uID0gRXhjZXB0aW9uLmZyb21NZXNzYWdlKG1lc3NhZ2UpO1xuXG4gICAgICB0aHJvdyBleGNlcHRpb247XG4gICAgfVxuXG4gICAgbm9taW5hbFZhbHVlUHJvcGVydGllcy5jb21wYXJlTmFtZWRCaW5kaW5ncyh0aGlzLm5hbWVkQmluZGluZ3MsIGNvbnRleHQpO1xuXG4gICAgdGhpcy5uYW1lZEJpbmRpbmdzLmZvckVhY2hOYW1lZEJpbmRpbmcoKG5hbWVkQmluZGluZykgPT4ge1xuICAgICAgdGhpcy5ldmFsdWF0ZU5hbWVkQmluZGluZyhuYW1lZEJpbmRpbmcsIHZhbHVlLCBjb250ZXh0KTtcbiAgICB9KTtcblxuICAgIGNvbnRleHQuZGVidWcoYC4uLmV2YWx1YXRlZCB0aGUgJyR7b2JqZWN0QXNzaWdubWVudFN0cmluZ30nIG9iamVjdCBhc3NpZ25tZW50LmApO1xuICB9XG5cbiAgZXZhbHVhdGVOYW1lZEJpbmRpbmcobmFtZWRCaW5kaW5nLCB0ZXJtLCBjb250ZXh0KSB7XG4gICAgY29uc3QgdGVybVN0cmluZyA9IHRlcm0uZ2V0U3RyaW5nKCksXG4gICAgICAgICAgbmFtZWRCaW5kaW5nU3RyaW5nID0gbmFtZWRCaW5kaW5nLmdldFN0cmluZygpO1xuXG4gICAgY29udGV4dC50cmFjZShgRXZhbHVhdGluZyB0aGUgJyR7bmFtZWRCaW5kaW5nU3RyaW5nfScgbmFtZWQgYmluZGluZyBhZ2FpbnN0IHRoZSAnJHt0ZXJtU3RyaW5nfScgdGVybS4uLmApO1xuXG4gICAgY29uc3QgbmFtZSA9IG5hbWVkQmluZGluZy5nZXROYW1lKCk7XG5cbiAgICBzd2l0Y2ggKG5hbWUpIHtcbiAgICAgIGNhc2UgQ09OVEVOVF9QQVJBTUVURVJfTkFNRToge1xuICAgICAgICB0ZXJtID0gdGhpcy5ldmFsdWF0ZUNvbnRlbnROYW1lZEJpbmRpbmcobmFtZWRCaW5kaW5nLCB0ZXJtLCBjb250ZXh0KTtcblxuICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgICAgY2FzZSBURVJNSU5BTF9QQVJBTUVURVJfTkFNRToge1xuICAgICAgICB0ZXJtID0gdGhpcy5ldmFsdWF0ZVRlcm1pbmFsTmFtZWRCaW5kaW5nKG5hbWVkQmluZGluZywgdGVybSwgY29udGV4dCk7XG5cbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAgIGNhc2UgQ0hJTERfTk9ERVNfUEFSQU1FVEVSX05BTUU6IHtcbiAgICAgICAgdGVybSA9IHRoaXMuZXZhbHVhdGVDaGlsZE5vZGVzTmFtZWRCaW5kaW5nKG5hbWVkQmluZGluZywgdGVybSwgY29udGV4dCk7XG5cbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgeyBWYXJpYWJsZSB9ID0gZWxlbWVudHMsXG4gICAgICAgICAgdmFyaWFibGUgPSBWYXJpYWJsZS5mcm9tTmFtZWRCaW5kaW5nKG5hbWVkQmluZGluZywgY29udGV4dCk7XG5cbiAgICB2YXJpYWJsZS5hc3NpZ24odGVybSwgY29udGV4dCk7XG5cbiAgICBjb250ZXh0LmRlYnVnKGAuLi5ldmFsdWF0ZWQgdGhlICcke25hbWVkQmluZGluZ1N0cmluZ30nIHBhcmFtZXRlciBuYW1lZCBhZ2FpbnN0IHRoZSAnJHt0ZXJtU3RyaW5nfScgdGVybS5gKTtcbiAgfVxuXG4gIGV2YWx1YXRlQ29udGVudE5hbWVkQmluZGluZyhuYW1lZEJpbmRpbmcsIHRlcm0sIGNvbnRleHQpIHtcbiAgICBjb25zdCB0eXBlID0gbmFtZWRCaW5kaW5nLmdldFR5cGUoKSxcbiAgICAgICAgICBuYW1lZEJpbmRpbmdTdHJpbmcgPSBuYW1lZEJpbmRpbmcuZ2V0U3RyaW5nKCk7XG5cbiAgICBjb250ZXh0LnRyYWNlKGBFdmFsdWF0aW5nIHRoZSBjb250ZW50ICcke25hbWVkQmluZGluZ1N0cmluZ30nIG5hbWVkIGJpbmRpbmcuLi5gKTtcblxuICAgIGNvbnN0IHR5cGVTdHJpbmdUeXBlID0gdHlwZS5pc1N0cmluZ1R5cGUoKTtcblxuICAgIGlmICghdHlwZVN0cmluZ1R5cGUpIHtcbiAgICAgIGNvbnN0IG5hbWVkQmluZGluZ1N0cmluZyA9IG5hbWVkQmluZGluZy5nZXRTdHJpbmcoKSxcbiAgICAgICAgICAgIG1lc3NhZ2UgPSBgVGhlICcke25hbWVkQmluZGluZ1N0cmluZ30nIG5hbWVkIGJpbmRpbmcncyB0eXBlIHNob3VsZCBiZSAnJHtTVFJJTkdfVFlQRV9OQU1FfScuYCxcbiAgICAgICAgICAgIGV4Y2VwdGlvbiA9IEV4Y2VwdGlvbi5mcm9tTWVzc2FnZShtZXNzYWdlKTtcblxuICAgICAgdGhyb3cgZXhjZXB0aW9uO1xuICAgIH1cblxuICAgIGNvbnN0IHByaW1pdGl2ZVZhbHVlID0gdGVybS5nZXRQcmltaXRpdmVWYWx1ZSgpLFxuICAgICAgICAgIG5vbWluYWxWYWx1ZSA9IHByaW1pdGl2ZVZhbHVlLCAgLy8vXG4gICAgICAgICAgbm9kZSA9IG5vbWluYWxWYWx1ZS5nZXROb2RlKCksXG4gICAgICAgICAgbm9kZVRlcm1pbmFsTm9kZSA9IG5vZGUuaXNUZXJtaW5hbE5vZGUoKTtcblxuICAgIGlmICghbm9kZVRlcm1pbmFsTm9kZSkge1xuICAgICAgY29uc3QgdGVybVN0cmluZyA9IHRlcm0uZ2V0U3RyaW5nKCksXG4gICAgICAgICAgICBtZXNzYWdlID0gYFRoZSAnJHt0ZXJtU3RyaW5nfScgdGVybSdzIG5vZGUgbXVzdCBiZSB0ZXJtaW5hbC5gLFxuICAgICAgICAgICAgZXhjZXB0aW9uID0gRXhjZXB0aW9uLmZyb21NZXNzYWdlKG1lc3NhZ2UpO1xuXG4gICAgICB0aHJvdyBleGNlcHRpb247XG4gICAgfVxuXG4gICAgY29uc3QgdGVybWluYWxOb2RlID0gbm9kZSwgIC8vL1xuICAgICAgICAgIGNvbnRlbnQgPSB0ZXJtaW5hbE5vZGUuZ2V0Q29udGVudCgpLFxuICAgICAgICAgIHN0cmluZyA9IGNvbnRlbnQsICAvLy9cbiAgICAgICAgICBzdHJpbmdMaXRlcmFsID0gc3RyaW5nTGl0ZXJhbEZyb21TdHJpbmcoc3RyaW5nKTtcblxuICAgIHRlcm0gPSB0ZXJtRnJvbVN0cmluZ0xpdGVyYWwoc3RyaW5nTGl0ZXJhbCwgY29udGV4dCk7XG5cbiAgICBjb25zdCB0ZXJtU3R0cmluZyA9IHRlcm0uZ2V0U3RyaW5nKCk7XG5cbiAgICBjb250ZXh0LmRlYnVnKGAuLi5ldmFsdWF0ZWQgdGhlIGNvbnRlbnQgJyR7bmFtZWRCaW5kaW5nU3RyaW5nfScgbmFtZWQgYmluZGluZyBhcyAnJHt0ZXJtU3R0cmluZ30nLmApO1xuXG4gICAgcmV0dXJuIHRlcm07XG4gIH1cblxuICBldmFsdWF0ZVRlcm1pbmFsTmFtZWRCaW5kaW5nKG5hbWVkQmluZGluZywgdGVybSwgY29udGV4dCkge1xuICAgIGNvbnN0IHR5cGUgPSBuYW1lZEJpbmRpbmcuZ2V0VHlwZSgpLFxuICAgICAgICAgIG5hbWVkQmluZGluZ1N0cmluZyA9IG5hbWVkQmluZGluZy5nZXRTdHJpbmcoKTtcblxuICAgIGNvbnRleHQudHJhY2UoYEV2YWx1YXRpbmcgdGhlIHRlcm1pbmFsICcke25hbWVkQmluZGluZ1N0cmluZ30nIG5hbWVkIGJpbmRpbmcuLi5gKTtcblxuICAgIGNvbnN0IHR5cGVCb29sZWFuVHlwZSA9IHR5cGUuaXNCb29sZWFuVHlwZSgpO1xuXG4gICAgaWYgKCF0eXBlQm9vbGVhblR5cGUpIHtcbiAgICAgIGNvbnN0IG5hbWVkQmluZGluZ1N0cmluZyA9IG5hbWVkQmluZGluZy5nZXRTdHJpbmcoKSxcbiAgICAgICAgICAgIG1lc3NhZ2UgPSBgVGhlICcke25hbWVkQmluZGluZ1N0cmluZ30nIG5hbWVkIGJpbmRpbmcncyB0eXBlIHNob3VsZCBiZSAnJHtCT09MRUFOX1RZUEVfTkFNRX0nLmAsXG4gICAgICAgICAgICBleGNlcHRpb24gPSBFeGNlcHRpb24uZnJvbU1lc3NhZ2UobWVzc2FnZSk7XG5cbiAgICAgIHRocm93IGV4Y2VwdGlvbjtcbiAgICB9XG5cbiAgICBjb25zdCBwcmltaXRpdmVWYWx1ZSA9IHRlcm0uZ2V0UHJpbWl0aXZlVmFsdWUoKSxcbiAgICAgICAgICBub21pbmFsVmFsdWUgPSBwcmltaXRpdmVWYWx1ZSwgIC8vL1xuICAgICAgICAgIG5vZGUgPSBub21pbmFsVmFsdWUuZ2V0Tm9kZSgpLFxuICAgICAgICAgIG5vZGVUZXJtaW5hbE5vZGUgPSBub2RlLmlzVGVybWluYWxOb2RlKCksXG4gICAgICAgICAgdGVybWluYWwgPSBub2RlVGVybWluYWxOb2RlOyAgLy8vXG5cbiAgICBjb25zdCBib29sZWFuID0gdGVybWluYWw7IC8vL1xuXG4gICAgdGVybSA9IHRlcm1Gcm9tQm9vbGVhbihib29sZWFuLCBjb250ZXh0KTsgIC8vL1xuXG4gICAgY29uc3QgdGVybVN0dHJpbmcgPSB0ZXJtLmdldFN0cmluZygpO1xuXG4gICAgY29udGV4dC5kZWJ1ZyhgLi4uZXZhbHVhdGVkIHRoZSB0ZXJtaW5hbCAnJHtuYW1lZEJpbmRpbmdTdHJpbmd9JyBuYW1lZCBiaW5kaW5nIGFzICcke3Rlcm1TdHRyaW5nfScuYCk7XG5cbiAgICByZXR1cm4gdGVybTtcbiAgfVxuXG4gIGV2YWx1YXRlQ2hpbGROb2Rlc05hbWVkQmluZGluZyhuYW1lZEJpbmRpbmcsIHRlcm0sIGNvbnRleHQpIHtcbiAgICBjb25zdCB0eXBlID0gbmFtZWRCaW5kaW5nLmdldFR5cGUoKSxcbiAgICAgICAgICBuYW1lZEJpbmRpbmdTdHJpbmcgPSBuYW1lZEJpbmRpbmcuZ2V0U3RyaW5nKCk7XG5cbiAgICBjb250ZXh0LnRyYWNlKGBFdmFsdWF0aW5nIHRoZSBjaGlsZCBub2RlcyAnJHtuYW1lZEJpbmRpbmdTdHJpbmd9JyBuYW1lZCBiaW5kaW5nLi4uYCk7XG5cbiAgICBjb25zdCB0eXBlTGlzdFR5cGUgPSB0eXBlLmlzTGlzdFR5cGUoKTtcblxuICAgIGlmICghdHlwZUxpc3RUeXBlKSB7XG4gICAgICBjb25zdCBuYW1lZEJpbmRpbmdTdHJpbmcgPSBuYW1lZEJpbmRpbmcuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgICBtZXNzYWdlID0gYFRoZSAnJHtuYW1lZEJpbmRpbmdTdHJpbmd9JyBuYW1lZCBiaW5kaW5nJ3MgdHlwZSBzaG91bGQgYmUgJyR7TElTVF9UWVBFX05BTUV9Jy5gLFxuICAgICAgICAgICAgZXhjZXB0aW9uID0gRXhjZXB0aW9uLmZyb21NZXNzYWdlKG1lc3NhZ2UpO1xuXG4gICAgICB0aHJvdyBleGNlcHRpb247XG4gICAgfVxuXG4gICAgY29uc3QgcHJpbWl0aXZlVmFsdWUgPSB0ZXJtLmdldFByaW1pdGl2ZVZhbHVlKCksXG4gICAgICAgICAgbm9taW5hbFZhbHVlID0gcHJpbWl0aXZlVmFsdWUsICAvLy9cbiAgICAgICAgICBub2RlID0gbm9taW5hbFZhbHVlLmdldE5vZGUoKSxcbiAgICAgICAgICBub2RlTm9uVGVybWluYWxOb2RlID0gbm9kZS5pc05vblRlcm1pbmFsTm9kZSgpO1xuXG4gICAgaWYgKCFub2RlTm9uVGVybWluYWxOb2RlKSB7XG4gICAgICBjb25zdCB0ZXJtU3RyaW5nID0gdGVybS5nZXRTdHJpbmcoKSxcbiAgICAgICAgICAgIG1lc3NhZ2UgPSBgVGhlICcke3Rlcm1TdHJpbmd9JyB0ZXJtJ3Mgbm9kZSBtdXN0IGJlIG5vbi10ZXJtaW5hbC5gLFxuICAgICAgICAgICAgZXhjZXB0aW9uID0gRXhjZXB0aW9uLmZyb21NZXNzYWdlKG1lc3NhZ2UpO1xuXG4gICAgICB0aHJvdyBleGNlcHRpb247XG4gICAgfVxuXG4gICAgY29uc3Qgbm9uVGVybWluYWxOb2RlID0gbm9kZSwgIC8vL1xuICAgICAgICAgIGNoaWxkTm9kZXMgPSBub25UZXJtaW5hbE5vZGUuZ2V0Q2hpbGROb2RlcygpLFxuICAgICAgICAgIG5vZGVzID0gY2hpbGROb2RlcywgLy8vXG4gICAgICAgICAgdmFsdWUgPSB2YWx1ZUZyb21Ob2Rlc0FuZE5vbWluYWxWYWx1ZShub2Rlcywgbm9taW5hbFZhbHVlKSxcbiAgICAgICAgICB2YWx1ZVN0dHJpbmcgPSB2YWx1ZS5nZXRTdHJpbmcoKTtcblxuICAgIGNvbnRleHQuZGVidWcoYC4uLmV2YWx1YXRlZCB0aGUgY2hpbGROb2RlcyAnJHtuYW1lZEJpbmRpbmdTdHJpbmd9JyBuYW1lZCBiaW5kaW5nIGFzICcke3ZhbHVlU3R0cmluZ30nLmApO1xuXG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgc3RhdGljIG5hbWUgPSBcIk9iamVjdEFzc2lnbWVudFwiO1xufSk7XG4iXSwibmFtZXMiOlsiZGVmaW5lIiwiT2JqZWN0QXNzaWdtZW50IiwiRWxlbWVudCIsImNvbnRleHQiLCJzdHJpbmciLCJub2RlIiwiYnJlYWtQb2ludCIsInZhcmlhYmxlIiwibmFtZWRCaW5kaW5ncyIsImdldFZhcmlhYmxlIiwiZ2V0TmFtZWRCaW5kaW5ncyIsImV2YWx1YXRlIiwib2JqZWN0QXNzaWdubWVudFN0cmluZyIsImdldFN0cmluZyIsInRyYWNlIiwidmFsdWUiLCJ2YWx1ZVR5cGUiLCJnZXRUeXBlIiwidmFsdWVUeXBlTm9taW5hbFZhbHVlVHlwZSIsImlzTm9taW5hbFZhbHVlVHlwZSIsInZhbHVlU3RyaW5nIiwibWVzc2FnZSIsIk5PTUlOQUxfVkFMVUVfVFlQRV9OQU1FIiwiZXhjZXB0aW9uIiwiRXhjZXB0aW9uIiwiZnJvbU1lc3NhZ2UiLCJub21pbmFsVmFsdWVQcm9wZXJ0aWVzIiwiY29tcGFyZU5hbWVkQmluZGluZ3MiLCJmb3JFYWNoTmFtZWRCaW5kaW5nIiwibmFtZWRCaW5kaW5nIiwiZXZhbHVhdGVOYW1lZEJpbmRpbmciLCJkZWJ1ZyIsInRlcm0iLCJ0ZXJtU3RyaW5nIiwibmFtZWRCaW5kaW5nU3RyaW5nIiwibmFtZSIsImdldE5hbWUiLCJDT05URU5UX1BBUkFNRVRFUl9OQU1FIiwiZXZhbHVhdGVDb250ZW50TmFtZWRCaW5kaW5nIiwiVEVSTUlOQUxfUEFSQU1FVEVSX05BTUUiLCJldmFsdWF0ZVRlcm1pbmFsTmFtZWRCaW5kaW5nIiwiQ0hJTERfTk9ERVNfUEFSQU1FVEVSX05BTUUiLCJldmFsdWF0ZUNoaWxkTm9kZXNOYW1lZEJpbmRpbmciLCJWYXJpYWJsZSIsImVsZW1lbnRzIiwiZnJvbU5hbWVkQmluZGluZyIsImFzc2lnbiIsInR5cGUiLCJ0eXBlU3RyaW5nVHlwZSIsImlzU3RyaW5nVHlwZSIsIlNUUklOR19UWVBFX05BTUUiLCJwcmltaXRpdmVWYWx1ZSIsImdldFByaW1pdGl2ZVZhbHVlIiwibm9taW5hbFZhbHVlIiwiZ2V0Tm9kZSIsIm5vZGVUZXJtaW5hbE5vZGUiLCJpc1Rlcm1pbmFsTm9kZSIsInRlcm1pbmFsTm9kZSIsImNvbnRlbnQiLCJnZXRDb250ZW50Iiwic3RyaW5nTGl0ZXJhbCIsInN0cmluZ0xpdGVyYWxGcm9tU3RyaW5nIiwidGVybUZyb21TdHJpbmdMaXRlcmFsIiwidGVybVN0dHJpbmciLCJ0eXBlQm9vbGVhblR5cGUiLCJpc0Jvb2xlYW5UeXBlIiwiQk9PTEVBTl9UWVBFX05BTUUiLCJ0ZXJtaW5hbCIsImJvb2xlYW4iLCJ0ZXJtRnJvbUJvb2xlYW4iLCJ0eXBlTGlzdFR5cGUiLCJpc0xpc3RUeXBlIiwiTElTVF9UWVBFX05BTUUiLCJub2RlTm9uVGVybWluYWxOb2RlIiwiaXNOb25UZXJtaW5hbE5vZGUiLCJub25UZXJtaW5hbE5vZGUiLCJjaGlsZE5vZGVzIiwiZ2V0Q2hpbGROb2RlcyIsIm5vZGVzIiwidmFsdWVGcm9tTm9kZXNBbmROb21pbmFsVmFsdWUiLCJ2YWx1ZVN0dHJpbmciXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQWVBOzs7ZUFBQTs7O2dDQWJ3QjtrRUFFSDtrRUFDQzsrRUFDYTt1QkFHVzsrQkFDTjtzQkFDZTtnQ0FDcUM7MkJBQ0M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O01BRTdGLFdBQWVBLElBQUFBLGdCQUFNLEVBQUMsTUFBTUMsd0JBQXdCQyx1QkFBTztJQUN6RCxZQUFZQyxPQUFPLEVBQUVDLE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxVQUFVLEVBQUVDLFFBQVEsRUFBRUMsYUFBYSxDQUFFO1FBQ3RFLEtBQUssQ0FBQ0wsU0FBU0MsUUFBUUMsTUFBTUM7UUFFN0IsSUFBSSxDQUFDQyxRQUFRLEdBQUdBO1FBQ2hCLElBQUksQ0FBQ0MsYUFBYSxHQUFHQTtJQUN2QjtJQUVBQyxjQUFjO1FBQ1osT0FBTyxJQUFJLENBQUNGLFFBQVE7SUFDdEI7SUFFQUcsbUJBQW1CO1FBQ2pC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
188
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50L2Fzc2lnbm1lbnQvb2JqZWN0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBFbGVtZW50IH0gZnJvbSBcIm9jY2FtLWxhbmd1YWdlc1wiO1xuXG5pbXBvcnQgZWxlbWVudHMgZnJvbSBcIi4uLy4uL2VsZW1lbnRzXCI7XG5pbXBvcnQgRXhjZXB0aW9uIGZyb20gXCIuLi8uLi9leGNlcHRpb25cIjtcbmltcG9ydCBub21pbmFsVmFsdWVQcm9wZXJ0aWVzIGZyb20gXCIuLi8uLi9ub21pbmFsVmFsdWVQcm9wZXJ0aWVzXCI7XG5cbmltcG9ydCB7IGRlZmluZSB9IGZyb20gXCIuLi8uLi9lbGVtZW50c1wiO1xuaW1wb3J0IHsgc3RyaW5nTGl0ZXJhbEZyb21TdHJpbmcgfSBmcm9tIFwiLi4vLi4vdXRpbGl0aWVzL3N0cmluZ0xpdGVyYWxcIjtcbmltcG9ydCB7IHZhbHVlRnJvbUJvb2xlYW4sIHZhbHVlRnJvbVN0cmluZ0xpdGVyYWwsIHZhbHVlRnJvbU5vZGVzQW5kTm9taW5hbFZhbHVlIH0gZnJvbSBcIi4uLy4uL3V0aWxpdGllcy92YWx1ZVwiO1xuaW1wb3J0IHsgTElTVF9UWVBFX05BTUUsIFNUUklOR19UWVBFX05BTUUsIEJPT0xFQU5fVFlQRV9OQU1FLCBOT01JTkFMX1ZBTFVFX1RZUEVfTkFNRSB9IGZyb20gXCIuLi8uLi90eXBlTmFtZXNcIjtcbmltcG9ydCB7IENPTlRFTlRfUEFSQU1FVEVSX05BTUUsIFRFUk1JTkFMX1BBUkFNRVRFUl9OQU1FLCBDSElMRF9OT0RFU19QQVJBTUVURVJfTkFNRSwgTk9fV0hJVEVTUEFDRV9QQVJBTUVURVJfTkFNRSB9IGZyb20gXCIuLi8uLi9wYXJhbWV0ZXJOYW1lc1wiO1xuXG5leHBvcnQgZGVmYXVsdCBkZWZpbmUoY2xhc3MgT2JqZWN0QXNzaWdtZW50IGV4dGVuZHMgRWxlbWVudCB7XG4gIGNvbnN0cnVjdG9yKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgdmFyaWFibGUsIG5hbWVkQmluZGluZ3MpIHtcbiAgICBzdXBlcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQpO1xuXG4gICAgdGhpcy52YXJpYWJsZSA9IHZhcmlhYmxlO1xuICAgIHRoaXMubmFtZWRCaW5kaW5ncyA9IG5hbWVkQmluZGluZ3M7XG4gIH1cblxuICBnZXRWYXJpYWJsZSgpIHtcbiAgICByZXR1cm4gdGhpcy52YXJpYWJsZTtcbiAgfVxuXG4gIGdldE5hbWVkQmluZGluZ3MoKSB7XG4gICAgcmV0dXJuIHRoaXMubmFtZWRCaW5kaW5ncztcbiAgfVxuXG4gIGV2YWx1YXRlKGNvbnRleHQpIHtcbiAgICBjb25zdCBvYmplY3RBc3NpZ25tZW50U3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBFdmFsdWF0aW5nIHRoZSAnJHtvYmplY3RBc3NpZ25tZW50U3RyaW5nfScgb2JqZWN0IGFzc2lnbm1lbnQuLi5gKTtcblxuICAgIGNvbnN0IHZhbHVlID0gdGhpcy52YXJpYWJsZS5ldmFsdWF0ZShjb250ZXh0KSxcbiAgICAgICAgICB2YWx1ZVR5cGUgPSB2YWx1ZS5nZXRUeXBlKCksXG4gICAgICAgICAgdmFsdWVUeXBlTm9taW5hbFZhbHVlVHlwZSA9IHZhbHVlVHlwZS5pc05vbWluYWxWYWx1ZVR5cGUoKTtcblxuICAgIGlmICghdmFsdWVUeXBlTm9taW5hbFZhbHVlVHlwZSkge1xuICAgICAgY29uc3QgdmFsdWVTdHJpbmcgPSB2YWx1ZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgICAgIG1lc3NhZ2UgPSBgVGhlICcke3ZhbHVlU3RyaW5nfScgdmFsdWUncyAnJHt2YWx1ZVR5cGV9JyB0eXBlIHNob3VsZCBiZSAnJHtOT01JTkFMX1ZBTFVFX1RZUEVfTkFNRX0nLmAsXG4gICAgICAgICAgICBleGNlcHRpb24gPSBFeGNlcHRpb24uZnJvbU1lc3NhZ2UobWVzc2FnZSk7XG5cbiAgICAgIHRocm93IGV4Y2VwdGlvbjtcbiAgICB9XG5cbiAgICBub21pbmFsVmFsdWVQcm9wZXJ0aWVzLmNvbXBhcmVOYW1lZEJpbmRpbmdzKHRoaXMubmFtZWRCaW5kaW5ncywgY29udGV4dCk7XG5cbiAgICB0aGlzLm5hbWVkQmluZGluZ3MuZm9yRWFjaE5hbWVkQmluZGluZygobmFtZWRCaW5kaW5nKSA9PiB7XG4gICAgICB0aGlzLmV2YWx1YXRlTmFtZWRCaW5kaW5nKG5hbWVkQmluZGluZywgdmFsdWUsIGNvbnRleHQpO1xuICAgIH0pO1xuXG4gICAgY29udGV4dC5kZWJ1ZyhgLi4uZXZhbHVhdGVkIHRoZSAnJHtvYmplY3RBc3NpZ25tZW50U3RyaW5nfScgb2JqZWN0IGFzc2lnbm1lbnQuYCk7XG4gIH1cblxuICBldmFsdWF0ZU5hbWVkQmluZGluZyhuYW1lZEJpbmRpbmcsIHRlcm0sIGNvbnRleHQpIHtcbiAgICBjb25zdCB0ZXJtU3RyaW5nID0gdGVybS5nZXRTdHJpbmcoKSxcbiAgICAgICAgICBuYW1lZEJpbmRpbmdTdHJpbmcgPSBuYW1lZEJpbmRpbmcuZ2V0U3RyaW5nKCk7XG5cbiAgICBjb250ZXh0LnRyYWNlKGBFdmFsdWF0aW5nIHRoZSAnJHtuYW1lZEJpbmRpbmdTdHJpbmd9JyBuYW1lZCBiaW5kaW5nIGFnYWluc3QgdGhlICcke3Rlcm1TdHJpbmd9JyB0ZXJtLi4uYCk7XG5cbiAgICBsZXQgdmFsdWU7XG5cbiAgICBjb25zdCBuYW1lID0gbmFtZWRCaW5kaW5nLmdldE5hbWUoKTtcblxuICAgIHN3aXRjaCAobmFtZSkge1xuICAgICAgY2FzZSBDT05URU5UX1BBUkFNRVRFUl9OQU1FOiB7XG4gICAgICAgIHZhbHVlID0gdGhpcy5ldmFsdWF0ZUNvbnRlbnROYW1lZEJpbmRpbmcobmFtZWRCaW5kaW5nLCB0ZXJtLCBjb250ZXh0KTtcblxuICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgICAgY2FzZSBURVJNSU5BTF9QQVJBTUVURVJfTkFNRToge1xuICAgICAgICB2YWx1ZSA9IHRoaXMuZXZhbHVhdGVUZXJtaW5hbE5hbWVkQmluZGluZyhuYW1lZEJpbmRpbmcsIHRlcm0sIGNvbnRleHQpO1xuXG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgICBjYXNlIENISUxEX05PREVTX1BBUkFNRVRFUl9OQU1FOiB7XG4gICAgICAgIHZhbHVlID0gdGhpcy5ldmFsdWF0ZUNoaWxkTm9kZXNOYW1lZEJpbmRpbmcobmFtZWRCaW5kaW5nLCB0ZXJtLCBjb250ZXh0KTtcblxuICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgICAgY2FzZSBOT19XSElURVNQQUNFX1BBUkFNRVRFUl9OQU1FOiB7XG4gICAgICAgIHZhbHVlID0gdGhpcy5ldmFsdWF0ZU5vV2hpdGVzcGFjZU5hbWVkQmluZGluZyhuYW1lZEJpbmRpbmcsIHRlcm0sIGNvbnRleHQpO1xuXG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IHsgVmFyaWFibGUgfSA9IGVsZW1lbnRzLFxuICAgICAgICAgIHZhcmlhYmxlID0gVmFyaWFibGUuZnJvbU5hbWVkQmluZGluZyhuYW1lZEJpbmRpbmcsIGNvbnRleHQpO1xuXG4gICAgdmFyaWFibGUuYXNzaWduKHZhbHVlLCBjb250ZXh0KTtcblxuICAgIGNvbnRleHQuZGVidWcoYC4uLmV2YWx1YXRlZCB0aGUgJyR7bmFtZWRCaW5kaW5nU3RyaW5nfScgcGFyYW1ldGVyIG5hbWVkIGFnYWluc3QgdGhlICcke3Rlcm1TdHJpbmd9JyB0ZXJtLmApO1xuICB9XG5cbiAgZXZhbHVhdGVDb250ZW50TmFtZWRCaW5kaW5nKG5hbWVkQmluZGluZywgdGVybSwgY29udGV4dCkge1xuICAgIGNvbnN0IHR5cGUgPSBuYW1lZEJpbmRpbmcuZ2V0VHlwZSgpLFxuICAgICAgICAgIG5hbWVkQmluZGluZ1N0cmluZyA9IG5hbWVkQmluZGluZy5nZXRTdHJpbmcoKTtcblxuICAgIGNvbnRleHQudHJhY2UoYEV2YWx1YXRpbmcgdGhlIGNvbnRlbnQgJyR7bmFtZWRCaW5kaW5nU3RyaW5nfScgbmFtZWQgYmluZGluZy4uLmApO1xuXG4gICAgY29uc3QgdHlwZVN0cmluZ1R5cGUgPSB0eXBlLmlzU3RyaW5nVHlwZSgpO1xuXG4gICAgaWYgKCF0eXBlU3RyaW5nVHlwZSkge1xuICAgICAgY29uc3QgbmFtZWRCaW5kaW5nU3RyaW5nID0gbmFtZWRCaW5kaW5nLmdldFN0cmluZygpLFxuICAgICAgICAgICAgbWVzc2FnZSA9IGBUaGUgJyR7bmFtZWRCaW5kaW5nU3RyaW5nfScgbmFtZWQgYmluZGluZydzIHR5cGUgc2hvdWxkIGJlICcke1NUUklOR19UWVBFX05BTUV9Jy5gLFxuICAgICAgICAgICAgZXhjZXB0aW9uID0gRXhjZXB0aW9uLmZyb21NZXNzYWdlKG1lc3NhZ2UpO1xuXG4gICAgICB0aHJvdyBleGNlcHRpb247XG4gICAgfVxuXG4gICAgY29uc3QgcHJpbWl0aXZlVmFsdWUgPSB0ZXJtLmdldFByaW1pdGl2ZVZhbHVlKCksXG4gICAgICAgICAgbm9taW5hbFZhbHVlID0gcHJpbWl0aXZlVmFsdWUsICAvLy9cbiAgICAgICAgICBub2RlID0gbm9taW5hbFZhbHVlLmdldE5vZGUoKSxcbiAgICAgICAgICBub2RlVGVybWluYWxOb2RlID0gbm9kZS5pc1Rlcm1pbmFsTm9kZSgpO1xuXG4gICAgaWYgKCFub2RlVGVybWluYWxOb2RlKSB7XG4gICAgICBjb25zdCB0ZXJtU3RyaW5nID0gdGVybS5nZXRTdHJpbmcoKSxcbiAgICAgICAgICAgIG1lc3NhZ2UgPSBgVGhlICcke3Rlcm1TdHJpbmd9JyB0ZXJtJ3Mgbm9kZSBtdXN0IGJlIHRlcm1pbmFsLmAsXG4gICAgICAgICAgICBleGNlcHRpb24gPSBFeGNlcHRpb24uZnJvbU1lc3NhZ2UobWVzc2FnZSk7XG5cbiAgICAgIHRocm93IGV4Y2VwdGlvbjtcbiAgICB9XG5cbiAgICBjb25zdCB0ZXJtaW5hbE5vZGUgPSBub2RlLCAgLy8vXG4gICAgICAgICAgY29udGVudCA9IHRlcm1pbmFsTm9kZS5nZXRDb250ZW50KCksXG4gICAgICAgICAgc3RyaW5nID0gY29udGVudCwgIC8vL1xuICAgICAgICAgIHN0cmluZ0xpdGVyYWwgPSBzdHJpbmdMaXRlcmFsRnJvbVN0cmluZyhzdHJpbmcpLFxuICAgICAgICAgIHZhbHVlID0gdmFsdWVGcm9tU3RyaW5nTGl0ZXJhbChzdHJpbmdMaXRlcmFsLCBjb250ZXh0KSxcbiAgICAgICAgICB2YWx1ZVN0dHJpbmcgPSB2YWx1ZS5nZXRTdHJpbmcoKTtcblxuICAgIGNvbnRleHQuZGVidWcoYC4uLmV2YWx1YXRlZCB0aGUgY29udGVudCAnJHtuYW1lZEJpbmRpbmdTdHJpbmd9JyBuYW1lZCBiaW5kaW5nIGFzICcke3ZhbHVlU3R0cmluZ30nLmApO1xuXG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgZXZhbHVhdGVUZXJtaW5hbE5hbWVkQmluZGluZyhuYW1lZEJpbmRpbmcsIHRlcm0sIGNvbnRleHQpIHtcbiAgICBjb25zdCB0eXBlID0gbmFtZWRCaW5kaW5nLmdldFR5cGUoKSxcbiAgICAgICAgICBuYW1lZEJpbmRpbmdTdHJpbmcgPSBuYW1lZEJpbmRpbmcuZ2V0U3RyaW5nKCk7XG5cbiAgICBjb250ZXh0LnRyYWNlKGBFdmFsdWF0aW5nIHRoZSB0ZXJtaW5hbCAnJHtuYW1lZEJpbmRpbmdTdHJpbmd9JyBuYW1lZCBiaW5kaW5nLi4uYCk7XG5cbiAgICBjb25zdCB0eXBlQm9vbGVhblR5cGUgPSB0eXBlLmlzQm9vbGVhblR5cGUoKTtcblxuICAgIGlmICghdHlwZUJvb2xlYW5UeXBlKSB7XG4gICAgICBjb25zdCBuYW1lZEJpbmRpbmdTdHJpbmcgPSBuYW1lZEJpbmRpbmcuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgICBtZXNzYWdlID0gYFRoZSAnJHtuYW1lZEJpbmRpbmdTdHJpbmd9JyBuYW1lZCBiaW5kaW5nJ3MgdHlwZSBzaG91bGQgYmUgJyR7Qk9PTEVBTl9UWVBFX05BTUV9Jy5gLFxuICAgICAgICAgICAgZXhjZXB0aW9uID0gRXhjZXB0aW9uLmZyb21NZXNzYWdlKG1lc3NhZ2UpO1xuXG4gICAgICB0aHJvdyBleGNlcHRpb247XG4gICAgfVxuXG4gICAgY29uc3QgcHJpbWl0aXZlVmFsdWUgPSB0ZXJtLmdldFByaW1pdGl2ZVZhbHVlKCksXG4gICAgICAgICAgbm9taW5hbFZhbHVlID0gcHJpbWl0aXZlVmFsdWUsICAvLy9cbiAgICAgICAgICBub2RlID0gbm9taW5hbFZhbHVlLmdldE5vZGUoKSxcbiAgICAgICAgICBub2RlVGVybWluYWxOb2RlID0gbm9kZS5pc1Rlcm1pbmFsTm9kZSgpLFxuICAgICAgICAgIHRlcm1pbmFsID0gbm9kZVRlcm1pbmFsTm9kZSwgIC8vL1xuICAgICAgICAgIGJvb2xlYW4gPSB0ZXJtaW5hbCwgLy8vXG4gICAgICAgICAgdmFsdWUgPSB2YWx1ZUZyb21Cb29sZWFuKGJvb2xlYW4sIGNvbnRleHQpLCAgLy8vXG4gICAgICAgICAgdmFsdWVTdHRyaW5nID0gdmFsdWUuZ2V0U3RyaW5nKCk7XG5cbiAgICBjb250ZXh0LmRlYnVnKGAuLi5ldmFsdWF0ZWQgdGhlIHRlcm1pbmFsICcke25hbWVkQmluZGluZ1N0cmluZ30nIG5hbWVkIGJpbmRpbmcgYXMgJyR7dmFsdWVTdHRyaW5nfScuYCk7XG5cbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cblxuICBldmFsdWF0ZUNoaWxkTm9kZXNOYW1lZEJpbmRpbmcobmFtZWRCaW5kaW5nLCB0ZXJtLCBjb250ZXh0KSB7XG4gICAgY29uc3QgdHlwZSA9IG5hbWVkQmluZGluZy5nZXRUeXBlKCksXG4gICAgICAgICAgbmFtZWRCaW5kaW5nU3RyaW5nID0gbmFtZWRCaW5kaW5nLmdldFN0cmluZygpO1xuXG4gICAgY29udGV4dC50cmFjZShgRXZhbHVhdGluZyB0aGUgY2hpbGQgbm9kZXMgJyR7bmFtZWRCaW5kaW5nU3RyaW5nfScgbmFtZWQgYmluZGluZy4uLmApO1xuXG4gICAgY29uc3QgdHlwZUxpc3RUeXBlID0gdHlwZS5pc0xpc3RUeXBlKCk7XG5cbiAgICBpZiAoIXR5cGVMaXN0VHlwZSkge1xuICAgICAgY29uc3QgbmFtZWRCaW5kaW5nU3RyaW5nID0gbmFtZWRCaW5kaW5nLmdldFN0cmluZygpLFxuICAgICAgICAgICAgbWVzc2FnZSA9IGBUaGUgJyR7bmFtZWRCaW5kaW5nU3RyaW5nfScgbmFtZWQgYmluZGluZydzIHR5cGUgc2hvdWxkIGJlICcke0xJU1RfVFlQRV9OQU1FfScuYCxcbiAgICAgICAgICAgIGV4Y2VwdGlvbiA9IEV4Y2VwdGlvbi5mcm9tTWVzc2FnZShtZXNzYWdlKTtcblxuICAgICAgdGhyb3cgZXhjZXB0aW9uO1xuICAgIH1cblxuICAgIGNvbnN0IHByaW1pdGl2ZVZhbHVlID0gdGVybS5nZXRQcmltaXRpdmVWYWx1ZSgpLFxuICAgICAgICAgIG5vbWluYWxWYWx1ZSA9IHByaW1pdGl2ZVZhbHVlLCAgLy8vXG4gICAgICAgICAgbm9kZSA9IG5vbWluYWxWYWx1ZS5nZXROb2RlKCksXG4gICAgICAgICAgbm9kZU5vblRlcm1pbmFsTm9kZSA9IG5vZGUuaXNOb25UZXJtaW5hbE5vZGUoKTtcblxuICAgIGlmICghbm9kZU5vblRlcm1pbmFsTm9kZSkge1xuICAgICAgY29uc3QgdGVybVN0cmluZyA9IHRlcm0uZ2V0U3RyaW5nKCksXG4gICAgICAgICAgICBtZXNzYWdlID0gYFRoZSAnJHt0ZXJtU3RyaW5nfScgdGVybSdzIG5vZGUgbXVzdCBiZSBub24tdGVybWluYWwuYCxcbiAgICAgICAgICAgIGV4Y2VwdGlvbiA9IEV4Y2VwdGlvbi5mcm9tTWVzc2FnZShtZXNzYWdlKTtcblxuICAgICAgdGhyb3cgZXhjZXB0aW9uO1xuICAgIH1cblxuICAgIGNvbnN0IG5vblRlcm1pbmFsTm9kZSA9IG5vZGUsICAvLy9cbiAgICAgICAgICBjaGlsZE5vZGVzID0gbm9uVGVybWluYWxOb2RlLmdldENoaWxkTm9kZXMoKSxcbiAgICAgICAgICBub2RlcyA9IGNoaWxkTm9kZXMsIC8vL1xuICAgICAgICAgIHZhbHVlID0gdmFsdWVGcm9tTm9kZXNBbmROb21pbmFsVmFsdWUobm9kZXMsIG5vbWluYWxWYWx1ZSksXG4gICAgICAgICAgdmFsdWVTdHRyaW5nID0gdmFsdWUuZ2V0U3RyaW5nKCk7XG5cbiAgICBjb250ZXh0LmRlYnVnKGAuLi5ldmFsdWF0ZWQgdGhlIGNoaWxkTm9kZXMgJyR7bmFtZWRCaW5kaW5nU3RyaW5nfScgbmFtZWQgYmluZGluZyBhcyAnJHt2YWx1ZVN0dHJpbmd9Jy5gKTtcblxuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuXG4gIGV2YWx1YXRlTm9XaGl0ZXNwYWNlTmFtZWRCaW5kaW5nKG5hbWVkQmluZGluZywgdGVybSwgY29udGV4dCkge1xuICAgIGNvbnN0IHR5cGUgPSBuYW1lZEJpbmRpbmcuZ2V0VHlwZSgpLFxuICAgICAgICAgIG5hbWVkQmluZGluZ1N0cmluZyA9IG5hbWVkQmluZGluZy5nZXRTdHJpbmcoKTtcblxuICAgIGNvbnRleHQudHJhY2UoYEV2YWx1YXRpbmcgdGhlIG5vIHdoaXRlc3BhY2UgJyR7bmFtZWRCaW5kaW5nU3RyaW5nfScgbmFtZWQgYmluZGluZy4uLmApO1xuXG4gICAgY29uc3QgdHlwZUJvb2xlYW5UeXBlID0gdHlwZS5pc0Jvb2xlYW5UeXBlKCk7XG5cbiAgICBpZiAoIXR5cGVCb29sZWFuVHlwZSkge1xuICAgICAgY29uc3QgbmFtZWRCaW5kaW5nU3RyaW5nID0gbmFtZWRCaW5kaW5nLmdldFN0cmluZygpLFxuICAgICAgICAgICAgbWVzc2FnZSA9IGBUaGUgJyR7bmFtZWRCaW5kaW5nU3RyaW5nfScgbmFtZWQgYmluZGluZydzIHR5cGUgc2hvdWxkIGJlICcke0JPT0xFQU5fVFlQRV9OQU1FfScuYCxcbiAgICAgICAgICAgIGV4Y2VwdGlvbiA9IEV4Y2VwdGlvbi5mcm9tTWVzc2FnZShtZXNzYWdlKTtcblxuICAgICAgdGhyb3cgZXhjZXB0aW9uO1xuICAgIH1cblxuICAgIGNvbnN0IHByaW1pdGl2ZVZhbHVlID0gdGVybS5nZXRQcmltaXRpdmVWYWx1ZSgpLFxuICAgICAgICAgIG5vbWluYWxWYWx1ZSA9IHByaW1pdGl2ZVZhbHVlLCAgLy8vXG4gICAgICAgICAgbm9kZSA9IG5vbWluYWxWYWx1ZS5nZXROb2RlKCksXG4gICAgICAgICAgbm9kZVRlcm1pbmFsTm9kZSA9IG5vZGUuaXNUZXJtaW5hbE5vZGUoKTtcblxuICAgIGlmICghbm9kZVRlcm1pbmFsTm9kZSkge1xuICAgICAgY29uc3QgdGVybVN0cmluZyA9IHRlcm0uZ2V0U3RyaW5nKCksXG4gICAgICAgICAgICBtZXNzYWdlID0gYFRoZSAnJHt0ZXJtU3RyaW5nfScgdGVybSdzIG5vZGUgbXVzdCBiZSB0ZXJtaW5hbC5gLFxuICAgICAgICAgICAgZXhjZXB0aW9uID0gRXhjZXB0aW9uLmZyb21NZXNzYWdlKG1lc3NhZ2UpO1xuXG4gICAgICB0aHJvdyBleGNlcHRpb247XG4gICAgfVxuXG4gICAgY29uc3QgdGVybWluYWxOb2RlID0gbm9kZSwgIC8vL1xuICAgICAgICAgIG5vV2hpdGVhcGNlID0gdGVybWluYWxOb2RlLmlzTm9XaGl0ZXNwYWNlTm9kZSgpLFxuICAgICAgICAgIGJvb2xlYW4gPSBub1doaXRlYXBjZSwgIC8vL1xuICAgICAgICAgIHZhbHVlID0gdmFsdWVGcm9tQm9vbGVhbihib29sZWFuLCBjb250ZXh0KSxcbiAgICAgICAgICB2YWx1ZVN0dHJpbmcgPSB2YWx1ZS5nZXRTdHJpbmcoKTtcblxuICAgIGNvbnRleHQuZGVidWcoYC4uLmV2YWx1YXRlZCB0aGUgbm8gd2hpdGVzcGFjZSAnJHtuYW1lZEJpbmRpbmdTdHJpbmd9JyBuYW1lZCBiaW5kaW5nIGFzICcke3ZhbHVlU3R0cmluZ30nLmApO1xuXG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgc3RhdGljIG5hbWUgPSBcIk9iamVjdEFzc2lnbWVudFwiO1xufSk7XG4iXSwibmFtZXMiOlsiZGVmaW5lIiwiT2JqZWN0QXNzaWdtZW50IiwiRWxlbWVudCIsImNvbnRleHQiLCJzdHJpbmciLCJub2RlIiwiYnJlYWtQb2ludCIsInZhcmlhYmxlIiwibmFtZWRCaW5kaW5ncyIsImdldFZhcmlhYmxlIiwiZ2V0TmFtZWRCaW5kaW5ncyIsImV2YWx1YXRlIiwib2JqZWN0QXNzaWdubWVudFN0cmluZyIsImdldFN0cmluZyIsInRyYWNlIiwidmFsdWUiLCJ2YWx1ZVR5cGUiLCJnZXRUeXBlIiwidmFsdWVUeXBlTm9taW5hbFZhbHVlVHlwZSIsImlzTm9taW5hbFZhbHVlVHlwZSIsInZhbHVlU3RyaW5nIiwibWVzc2FnZSIsIk5PTUlOQUxfVkFMVUVfVFlQRV9OQU1FIiwiZXhjZXB0aW9uIiwiRXhjZXB0aW9uIiwiZnJvbU1lc3NhZ2UiLCJub21pbmFsVmFsdWVQcm9wZXJ0aWVzIiwiY29tcGFyZU5hbWVkQmluZGluZ3MiLCJmb3JFYWNoTmFtZWRCaW5kaW5nIiwibmFtZWRCaW5kaW5nIiwiZXZhbHVhdGVOYW1lZEJpbmRpbmciLCJkZWJ1ZyIsInRlcm0iLCJ0ZXJtU3RyaW5nIiwibmFtZWRCaW5kaW5nU3RyaW5nIiwibmFtZSIsImdldE5hbWUiLCJDT05URU5UX1BBUkFNRVRFUl9OQU1FIiwiZXZhbHVhdGVDb250ZW50TmFtZWRCaW5kaW5nIiwiVEVSTUlOQUxfUEFSQU1FVEVSX05BTUUiLCJldmFsdWF0ZVRlcm1pbmFsTmFtZWRCaW5kaW5nIiwiQ0hJTERfTk9ERVNfUEFSQU1FVEVSX05BTUUiLCJldmFsdWF0ZUNoaWxkTm9kZXNOYW1lZEJpbmRpbmciLCJOT19XSElURVNQQUNFX1BBUkFNRVRFUl9OQU1FIiwiZXZhbHVhdGVOb1doaXRlc3BhY2VOYW1lZEJpbmRpbmciLCJWYXJpYWJsZSIsImVsZW1lbnRzIiwiZnJvbU5hbWVkQmluZGluZyIsImFzc2lnbiIsInR5cGUiLCJ0eXBlU3RyaW5nVHlwZSIsImlzU3RyaW5nVHlwZSIsIlNUUklOR19UWVBFX05BTUUiLCJwcmltaXRpdmVWYWx1ZSIsImdldFByaW1pdGl2ZVZhbHVlIiwibm9taW5hbFZhbHVlIiwiZ2V0Tm9kZSIsIm5vZGVUZXJtaW5hbE5vZGUiLCJpc1Rlcm1pbmFsTm9kZSIsInRlcm1pbmFsTm9kZSIsImNvbnRlbnQiLCJnZXRDb250ZW50Iiwic3RyaW5nTGl0ZXJhbCIsInN0cmluZ0xpdGVyYWxGcm9tU3RyaW5nIiwidmFsdWVGcm9tU3RyaW5nTGl0ZXJhbCIsInZhbHVlU3R0cmluZyIsInR5cGVCb29sZWFuVHlwZSIsImlzQm9vbGVhblR5cGUiLCJCT09MRUFOX1RZUEVfTkFNRSIsInRlcm1pbmFsIiwiYm9vbGVhbiIsInZhbHVlRnJvbUJvb2xlYW4iLCJ0eXBlTGlzdFR5cGUiLCJpc0xpc3RUeXBlIiwiTElTVF9UWVBFX05BTUUiLCJub2RlTm9uVGVybWluYWxOb2RlIiwiaXNOb25UZXJtaW5hbE5vZGUiLCJub25UZXJtaW5hbE5vZGUiLCJjaGlsZE5vZGVzIiwiZ2V0Q2hpbGROb2RlcyIsIm5vZGVzIiwidmFsdWVGcm9tTm9kZXNBbmROb21pbmFsVmFsdWUiLCJub1doaXRlYXBjZSIsImlzTm9XaGl0ZXNwYWNlTm9kZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBY0E7OztlQUFBOzs7Z0NBWndCO2tFQUVIO2tFQUNDOytFQUNhOytCQUdLO3VCQUNnRDsyQkFDSztnQ0FDNkI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O01BRTFILFdBQWVBLElBQUFBLGdCQUFNLEVBQUMsTUFBTUMsd0JBQXdCQyx1QkFBTztJQUN6RCxZQUFZQyxPQUFPLEVBQUVDLE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxVQUFVLEVBQUVDLFFBQVEsRUFBRUMsYUFBYSxDQUFFO1FBQ3RFLEtBQUssQ0FBQ0wsU0FBU0MsUUFBUUMsTUFBTUM7UUFFN0IsSUFBSSxDQUFDQyxRQUFRLEdBQUdBO1FBQ2hCLElBQUksQ0FBQ0MsYUFBYSxHQUFHQTtJQUN2QjtJQUVBQyxjQUFjO1FBQ1osT0FBTyxJQUFJLENBQUNGLFFBQVE7SUFDdEI7SUFFQUcsbUJBQW1CO1FBQ2pCLE9BQU8sSUFBSSxDQUFDRixhQUFhO0lBQzNCO0lBRUFHLFNBQVNSLE9BQU8sRUFBRTtRQUNoQixNQUFNUyx5QkFBeUIsSUFBSSxDQUFDQyxTQUFTLElBQUksR0FBRztRQUVwRFYsUUFBUVcsS0FBSyxDQUFDLENBQUMsZ0JBQWdCLEVBQUVGLHVCQUF1QixzQkFBc0IsQ0FBQztRQUUvRSxNQUFNRyxRQUFRLElBQUksQ0FBQ1IsUUFBUSxDQUFDSSxRQUFRLENBQUNSLFVBQy9CYSxZQUFZRCxNQUFNRSxPQUFPLElBQ3pCQyw0QkFBNEJGLFVBQVVHLGtCQUFrQjtRQUU5RCxJQUFJLENBQUNELDJCQUEyQjtZQUM5QixNQUFNRSxjQUFjTCxNQUFNRixTQUFTLElBQzdCUSxVQUFVLENBQUMsS0FBSyxFQUFFRCxZQUFZLFdBQVcsRUFBRUosVUFBVSxrQkFBa0IsRUFBRU0sa0NBQXVCLENBQUMsRUFBRSxDQUFDLEVBQ3BHQyxZQUFZQyxrQkFBUyxDQUFDQyxXQUFXLENBQUNKO1lBRXhDLE1BQU1FO1FBQ1I7UUFFQUcsK0JBQXNCLENBQUNDLG9CQUFvQixDQUFDLElBQUksQ0FBQ25CLGFBQWEsRUFBRUw7UUFFaEUsSUFBSSxDQUFDSyxhQUFhLENBQUNvQixtQkFBbUIsQ0FBQyxDQUFDQztZQUN0QyxJQUFJLENBQUNDLG9CQUFvQixDQUFDRCxjQUFjZCxPQUFPWjtRQUNqRDtRQUVBQSxRQUFRNEIsS0FBSyxDQUFDLENBQUMsa0JBQWtCLEVBQUVuQix1QkFBdUIsb0JBQW9CLENBQUM7SUFDakY7SUFFQWtCLHFCQUFxQkQsWUFBWSxFQUFFRyxJQUFJLEVBQUU3QixPQUFPLEVBQUU7UUFDaEQsTUFBTThCLGFBQWFELEtBQUtuQixTQUFTLElBQzNCcUIscUJBQXFCTCxhQUFhaEIsU0FBUztRQUVqRFYsUUFBUVcsS0FBSyxDQUFDLENBQUMsZ0JBQWdCLEVBQUVvQixtQkFBbUIsNkJBQTZCLEVBQUVELFdBQVcsU0FBUyxDQUFDO1FBRXhHLElBQUlsQjtRQUVKLE1BQU1vQixPQUFPTixhQUFhTyxPQUFPO1FBRWpDLE9BQVFEO1lBQ04sS0FBS0Usc0NBQXNCO2dCQUFFO29CQUMzQnRCLFFBQVEsSUFBSSxDQUFDdUIsMkJBQTJCLENBQUNULGNBQWNHLE1BQU03QjtvQkFFN0Q7Z0JBQ0Y7WUFFQSxLQUFLb0MsdUNBQXVCO2dCQUFFO29CQUM1QnhCLFFBQVEsSUFBSSxDQUFDeUIsNEJBQTRCLENBQUNYLGNBQWNHLE1BQU03QjtvQkFFOUQ7Z0JBQ0Y7WUFFQSxLQUFLc0MsMENBQTBCO2dCQUFFO29CQUMvQjFCLFFBQVEsSUFBSSxDQUFDMkIsOEJBQThCLENBQUNiLGNBQWNHLE1BQU03QjtvQkFFaEU7Z0JBQ0Y7WUFFQSxLQUFLd0MsNENBQTRCO2dCQUFFO29CQUNqQzVCLFFBQVEsSUFBSSxDQUFDNkIsZ0NBQWdDLENBQUNmLGNBQWNHLE1BQU03QjtvQkFFbEU7Z0JBQ0Y7UUFDRjtRQUVBLE1BQU0sRUFBRTBDLFFBQVEsRUFBRSxHQUFHQyxpQkFBUSxFQUN2QnZDLFdBQVdzQyxTQUFTRSxnQkFBZ0IsQ0FBQ2xCLGNBQWMxQjtRQUV6REksU0FBU3lDLE1BQU0sQ0FBQ2pDLE9BQU9aO1FBRXZCQSxRQUFRNEIsS0FBSyxDQUFDLENBQUMsa0JBQWtCLEVBQUVHLG1CQUFtQiwrQkFBK0IsRUFBRUQsV0FBVyxPQUFPLENBQUM7SUFDNUc7SUFFQUssNEJBQTRCVCxZQUFZLEVBQUVHLElBQUksRUFBRTdCLE9BQU8sRUFBRTtRQUN2RCxNQUFNOEMsT0FBT3BCLGFBQWFaLE9BQU8sSUFDM0JpQixxQkFBcUJMLGFBQWFoQixTQUFTO1FBRWpEVixRQUFRVyxLQUFLLENBQUMsQ0FBQyx3QkFBd0IsRUFBRW9CLG1CQUFtQixrQkFBa0IsQ0FBQztRQUUvRSxNQUFNZ0IsaUJBQWlCRCxLQUFLRSxZQUFZO1FBRXhDLElBQUksQ0FBQ0QsZ0JBQWdCO1lBQ25CLE1BQU1oQixxQkFBcUJMLGFBQWFoQixTQUFTLElBQzNDUSxVQUFVLENBQUMsS0FBSyxFQUFFYSxtQkFBbUIsa0NBQWtDLEVBQUVrQiwyQkFBZ0IsQ0FBQyxFQUFFLENBQUMsRUFDN0Y3QixZQUFZQyxrQkFBUyxDQUFDQyxXQUFXLENBQUNKO1lBRXhDLE1BQU1FO1FBQ1I7UUFFQSxNQUFNOEIsaUJBQWlCckIsS0FBS3NCLGlCQUFpQixJQUN2Q0MsZUFBZUYsZ0JBQ2ZoRCxPQUFPa0QsYUFBYUMsT0FBTyxJQUMzQkMsbUJBQW1CcEQsS0FBS3FELGNBQWM7UUFFNUMsSUFBSSxDQUFDRCxrQkFBa0I7WUFDckIsTUFBTXhCLGFBQWFELEtBQUtuQixTQUFTLElBQzNCUSxVQUFVLENBQUMsS0FBSyxFQUFFWSxXQUFXLCtCQUErQixDQUFDLEVBQzdEVixZQUFZQyxrQkFBUyxDQUFDQyxXQUFXLENBQUNKO1lBRXhDLE1BQU1FO1FBQ1I7UUFFQSxNQUFNb0MsZUFBZXRELE1BQ2Z1RCxVQUFVRCxhQUFhRSxVQUFVLElBQ2pDekQsU0FBU3dELFNBQ1RFLGdCQUFnQkMsSUFBQUEsc0NBQXVCLEVBQUMzRCxTQUN4Q1csUUFBUWlELElBQUFBLDZCQUFzQixFQUFDRixlQUFlM0QsVUFDOUM4RCxlQUFlbEQsTUFBTUYsU0FBUztRQUVwQ1YsUUFBUTRCLEtBQUssQ0FBQyxDQUFDLDBCQUEwQixFQUFFRyxtQkFBbUIsb0JBQW9CLEVBQUUrQixhQUFhLEVBQUUsQ0FBQztRQUVwRyxPQUFPbEQ7SUFDVDtJQUVBeUIsNkJBQTZCWCxZQUFZLEVBQUVHLElBQUksRUFBRTdCLE9BQU8sRUFBRTtRQUN4RCxNQUFNOEMsT0FBT3BCLGFBQWFaLE9BQU8sSUFDM0JpQixxQkFBcUJMLGFBQWFoQixTQUFTO1FBRWpEVixRQUFRVyxLQUFLLENBQUMsQ0FBQyx5QkFBeUIsRUFBRW9CLG1CQUFtQixrQkFBa0IsQ0FBQztRQUVoRixNQUFNZ0Msa0JBQWtCakIsS0FBS2tCLGFBQWE7UUFFMUMsSUFBSSxDQUFDRCxpQkFBaUI7WUFDcEIsTUFBTWhDLHFCQUFxQkwsYUFBYWhCLFNBQVMsSUFDM0NRLFVBQVUsQ0FBQyxLQUFLLEVBQUVhLG1CQUFtQixrQ0FBa0MsRUFBRWtDLDRCQUFpQixDQUFDLEVBQUUsQ0FBQyxFQUM5RjdDLFlBQVlDLGtCQUFTLENBQUNDLFdBQVcsQ0FBQ0o7WUFFeEMsTUFBTUU7UUFDUjtRQUVBLE1BQU04QixpQkFBaUJyQixLQUFLc0IsaUJBQWlCLElBQ3ZDQyxlQUFlRixnQkFDZmhELE9BQU9rRCxhQUFhQyxPQUFPLElBQzNCQyxtQkFBbUJwRCxLQUFLcUQsY0FBYyxJQUN0Q1csV0FBV1osa0JBQ1hhLFVBQVVELFVBQ1Z0RCxRQUFRd0QsSUFBQUEsdUJBQWdCLEVBQUNELFNBQVNuRSxVQUNsQzhELGVBQWVsRCxNQUFNRixTQUFTO1FBRXBDVixRQUFRNEIsS0FBSyxDQUFDLENBQUMsMkJBQTJCLEVBQUVHLG1CQUFtQixvQkFBb0IsRUFBRStCLGFBQWEsRUFBRSxDQUFDO1FBRXJHLE9BQU9sRDtJQUNUO0lBRUEyQiwrQkFBK0JiLFlBQVksRUFBRUcsSUFBSSxFQUFFN0IsT0FBTyxFQUFFO1FBQzFELE1BQU04QyxPQUFPcEIsYUFBYVosT0FBTyxJQUMzQmlCLHFCQUFxQkwsYUFBYWhCLFNBQVM7UUFFakRWLFFBQVFXLEtBQUssQ0FBQyxDQUFDLDRCQUE0QixFQUFFb0IsbUJBQW1CLGtCQUFrQixDQUFDO1FBRW5GLE1BQU1zQyxlQUFldkIsS0FBS3dCLFVBQVU7UUFFcEMsSUFBSSxDQUFDRCxjQUFjO1lBQ2pCLE1BQU10QyxxQkFBcUJMLGFBQWFoQixTQUFTLElBQzNDUSxVQUFVLENBQUMsS0FBSyxFQUFFYSxtQkFBbUIsa0NBQWtDLEVBQUV3Qyx5QkFBYyxDQUFDLEVBQUUsQ0FBQyxFQUMzRm5ELFlBQVlDLGtCQUFTLENBQUNDLFdBQVcsQ0FBQ0o7WUFFeEMsTUFBTUU7UUFDUjtRQUVBLE1BQU04QixpQkFBaUJyQixLQUFLc0IsaUJBQWlCLElBQ3ZDQyxlQUFlRixnQkFDZmhELE9BQU9rRCxhQUFhQyxPQUFPLElBQzNCbUIsc0JBQXNCdEUsS0FBS3VFLGlCQUFpQjtRQUVsRCxJQUFJLENBQUNELHFCQUFxQjtZQUN4QixNQUFNMUMsYUFBYUQsS0FBS25CLFNBQVMsSUFDM0JRLFVBQVUsQ0FBQyxLQUFLLEVBQUVZLFdBQVcsbUNBQW1DLENBQUMsRUFDakVWLFlBQVlDLGtCQUFTLENBQUNDLFdBQVcsQ0FBQ0o7WUFFeEMsTUFBTUU7UUFDUjtRQUVBLE1BQU1zRCxrQkFBa0J4RSxNQUNsQnlFLGFBQWFELGdCQUFnQkUsYUFBYSxJQUMxQ0MsUUFBUUYsWUFDUi9ELFFBQVFrRSxJQUFBQSxvQ0FBNkIsRUFBQ0QsT0FBT3pCLGVBQzdDVSxlQUFlbEQsTUFBTUYsU0FBUztRQUVwQ1YsUUFBUTRCLEtBQUssQ0FBQyxDQUFDLDZCQUE2QixFQUFFRyxtQkFBbUIsb0JBQW9CLEVBQUUrQixhQUFhLEVBQUUsQ0FBQztRQUV2RyxPQUFPbEQ7SUFDVDtJQUVBNkIsaUNBQWlDZixZQUFZLEVBQUVHLElBQUksRUFBRTdCLE9BQU8sRUFBRTtRQUM1RCxNQUFNOEMsT0FBT3BCLGFBQWFaLE9BQU8sSUFDM0JpQixxQkFBcUJMLGFBQWFoQixTQUFTO1FBRWpEVixRQUFRVyxLQUFLLENBQUMsQ0FBQyw4QkFBOEIsRUFBRW9CLG1CQUFtQixrQkFBa0IsQ0FBQztRQUVyRixNQUFNZ0Msa0JBQWtCakIsS0FBS2tCLGFBQWE7UUFFMUMsSUFBSSxDQUFDRCxpQkFBaUI7WUFDcEIsTUFBTWhDLHFCQUFxQkwsYUFBYWhCLFNBQVMsSUFDM0NRLFVBQVUsQ0FBQyxLQUFLLEVBQUVhLG1CQUFtQixrQ0FBa0MsRUFBRWtDLDRCQUFpQixDQUFDLEVBQUUsQ0FBQyxFQUM5RjdDLFlBQVlDLGtCQUFTLENBQUNDLFdBQVcsQ0FBQ0o7WUFFeEMsTUFBTUU7UUFDUjtRQUVBLE1BQU04QixpQkFBaUJyQixLQUFLc0IsaUJBQWlCLElBQ3ZDQyxlQUFlRixnQkFDZmhELE9BQU9rRCxhQUFhQyxPQUFPLElBQzNCQyxtQkFBbUJwRCxLQUFLcUQsY0FBYztRQUU1QyxJQUFJLENBQUNELGtCQUFrQjtZQUNyQixNQUFNeEIsYUFBYUQsS0FBS25CLFNBQVMsSUFDM0JRLFVBQVUsQ0FBQyxLQUFLLEVBQUVZLFdBQVcsK0JBQStCLENBQUMsRUFDN0RWLFlBQVlDLGtCQUFTLENBQUNDLFdBQVcsQ0FBQ0o7WUFFeEMsTUFBTUU7UUFDUjtRQUVBLE1BQU1vQyxlQUFldEQsTUFDZjZFLGNBQWN2QixhQUFhd0Isa0JBQWtCLElBQzdDYixVQUFVWSxhQUNWbkUsUUFBUXdELElBQUFBLHVCQUFnQixFQUFDRCxTQUFTbkUsVUFDbEM4RCxlQUFlbEQsTUFBTUYsU0FBUztRQUVwQ1YsUUFBUTRCLEtBQUssQ0FBQyxDQUFDLGdDQUFnQyxFQUFFRyxtQkFBbUIsb0JBQW9CLEVBQUUrQixhQUFhLEVBQUUsQ0FBQztRQUUxRyxPQUFPbEQ7SUFDVDtJQUVBLE9BQU9vQixPQUFPLGtCQUFrQjtBQUNsQyJ9
@@ -11,7 +11,7 @@ Object.defineProperty(exports, "default", {
11
11
  const _occamlanguages = require("occam-languages");
12
12
  const _elements = require("../elements");
13
13
  const _default = (0, _elements.define)(class Expression extends _occamlanguages.Element {
14
- constructor(context, string, node, breakPoint, term, some, every, reduce, ternary, nodeQuery, nodesQuery, toInteger, tryInteger, returnBlock, procedureCall){
14
+ constructor(context, string, node, breakPoint, term, some, every, reduce, ternary, nodeQuery, nodesQuery, lengthOf, toInteger, tryInteger, returnBlock, procedureCall){
15
15
  super(context, string, node, breakPoint);
16
16
  this.term = term;
17
17
  this.some = some;
@@ -20,6 +20,7 @@ const _default = (0, _elements.define)(class Expression extends _occamlanguages.
20
20
  this.ternary = ternary;
21
21
  this.nodeQuery = nodeQuery;
22
22
  this.nodesQuery = nodesQuery;
23
+ this.lengthOf = lengthOf;
23
24
  this.toInteger = toInteger;
24
25
  this.tryInteger = tryInteger;
25
26
  this.returnBlock = returnBlock;
@@ -46,6 +47,9 @@ const _default = (0, _elements.define)(class Expression extends _occamlanguages.
46
47
  getNodesQuery() {
47
48
  return this.nodesQuery;
48
49
  }
50
+ getLengthOf() {
51
+ return this.lengthOf;
52
+ }
49
53
  getToInteger() {
50
54
  return this.toInteger;
51
55
  }
@@ -76,6 +80,8 @@ const _default = (0, _elements.define)(class Expression extends _occamlanguages.
76
80
  type = this.nodeQuery.getType();
77
81
  } else if (this.nodesQuery !== null) {
78
82
  type = this.nodesQuery.getType();
83
+ } else if (this.lengthOf !== null) {
84
+ type = this.lengthOf.getType();
79
85
  } else if (this.toInteger !== null) {
80
86
  type = this.toInteger.getType();
81
87
  } else if (this.tryInteger !== null) {
@@ -97,6 +103,8 @@ const _default = (0, _elements.define)(class Expression extends _occamlanguages.
97
103
  value = this.nodeQuery.evaluate(context);
98
104
  } else if (this.nodesQuery !== null) {
99
105
  value = this.nodesQuery.evaluate(context);
106
+ } else if (this.lengthOf !== null) {
107
+ value = this.lengthOf.evaluate(context);
100
108
  } else if (this.toInteger !== null) {
101
109
  value = this.toInteger.evaluate(context);
102
110
  } else if (this.tryInteger !== null) {
@@ -119,4 +127,4 @@ const _default = (0, _elements.define)(class Expression extends _occamlanguages.
119
127
  static name = "Expression";
120
128
  });
121
129
 
122
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L2V4cHJlc3Npb24uanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IEVsZW1lbnQgfSBmcm9tIFwib2NjYW0tbGFuZ3VhZ2VzXCI7XG5cbmltcG9ydCB7IGRlZmluZSB9IGZyb20gXCIuLi9lbGVtZW50c1wiO1xuXG5leHBvcnQgZGVmYXVsdCBkZWZpbmUoY2xhc3MgRXhwcmVzc2lvbiBleHRlbmRzIEVsZW1lbnQge1xuICBjb25zdHJ1Y3Rvcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIHRlcm0sIHNvbWUsIGV2ZXJ5LCByZWR1Y2UsIHRlcm5hcnksIG5vZGVRdWVyeSwgbm9kZXNRdWVyeSwgdG9JbnRlZ2VyLCB0cnlJbnRlZ2VyLCByZXR1cm5CbG9jaywgcHJvY2VkdXJlQ2FsbCkge1xuICAgIHN1cGVyKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCk7XG5cbiAgICB0aGlzLnRlcm0gPSB0ZXJtO1xuICAgIHRoaXMuc29tZSA9IHNvbWU7XG4gICAgdGhpcy5ldmVyeSA9IGV2ZXJ5O1xuICAgIHRoaXMucmVkdWNlID0gcmVkdWNlO1xuICAgIHRoaXMudGVybmFyeSA9IHRlcm5hcnk7XG4gICAgdGhpcy5ub2RlUXVlcnkgPSBub2RlUXVlcnk7XG4gICAgdGhpcy5ub2Rlc1F1ZXJ5ID0gbm9kZXNRdWVyeTtcbiAgICB0aGlzLnRvSW50ZWdlciA9IHRvSW50ZWdlcjtcbiAgICB0aGlzLnRyeUludGVnZXIgPSB0cnlJbnRlZ2VyO1xuICAgIHRoaXMucmV0dXJuQmxvY2sgPSByZXR1cm5CbG9jaztcbiAgICB0aGlzLnByb2NlZHVyZUNhbGwgPSBwcm9jZWR1cmVDYWxsO1xuICB9XG5cbiAgZ2V0VGVybSgpIHtcbiAgICByZXR1cm4gdGhpcy50ZXJtO1xuICB9XG5cbiAgZ2V0U29tZSgpIHtcbiAgICByZXR1cm4gdGhpcy5zb21lO1xuICB9XG5cbiAgZ2V0RXZlcnkoKSB7XG4gICAgcmV0dXJuIHRoaXMuZXZlcnk7XG4gIH1cblxuICBnZXRSZWR1Y2UoKSB7XG4gICAgcmV0dXJuIHRoaXMucmVkdWNlO1xuICB9XG5cbiAgZ2V0VGVybmFyeSgpIHtcbiAgICByZXR1cm4gdGhpcy50ZXJuYXk7XG4gIH1cblxuICBnZXROb2RlUXVlcnkoKSB7XG4gICAgcmV0dXJuIHRoaXMubm9kZVF1ZXJ5O1xuICB9XG5cbiAgZ2V0Tm9kZXNRdWVyeSgpIHtcbiAgICByZXR1cm4gdGhpcy5ub2Rlc1F1ZXJ5O1xuICB9XG5cbiAgZ2V0VG9JbnRlZ2VyKCkge1xuICAgIHJldHVybiB0aGlzLnRvSW50ZWdlcjtcbiAgfVxuXG4gIGdldFRyeUludGVnZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMudHJ5SW50ZWdlcjtcbiAgfVxuXG4gIGdldFJldHVybkJsb2NrKCkge1xuICAgIHJldHVybiB0aGlzLnJldHVybkJsb2NrO1xuICB9XG5cbiAgZ2V0UHJvY2VkdXJlQ2FsbCgpIHtcbiAgICByZXR1cm4gdGhpcy5wcm9jZWR1cmVDYWxsO1xuICB9XG5cbiAgZ2V0VHlwZSgpIHtcbiAgICBsZXQgdHlwZTtcblxuICAgIGlmIChmYWxzZSkge1xuICAgICAgLy8vXG4gICAgfSBlbHNlIGlmICh0aGlzLnRlcm0gIT09IG51bGwpIHtcbiAgICAgIHR5cGUgPSB0aGlzLnRlcm0uZ2V0VHlwZSgpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5zb21lICE9PSBudWxsKSB7XG4gICAgICB0eXBlID0gdGhpcy5zb21lLmdldFR5cGUoKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuZXZlcnkgIT09IG51bGwpIHtcbiAgICAgIHR5cGUgPSB0aGlzLmV2ZXJ5LmdldFR5cGUoKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMucmVkdWNlICE9PSBudWxsKSB7XG4gICAgICB0eXBlID0gdGhpcy5yZWR1Y2UuZ2V0VHlwZSgpO1xuICAgIH0gZWxzZSBpZiAodGhpcy50ZXJuYXJ5ICE9PSBudWxsKSB7XG4gICAgICB0eXBlID0gdGhpcy50ZXJuYXJ5LmdldFR5cGUoKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMubm9kZVF1ZXJ5ICE9PSBudWxsKSB7XG4gICAgICB0eXBlID0gdGhpcy5ub2RlUXVlcnkuZ2V0VHlwZSgpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5ub2Rlc1F1ZXJ5ICE9PSBudWxsKSB7XG4gICAgICB0eXBlID0gdGhpcy5ub2Rlc1F1ZXJ5LmdldFR5cGUoKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMudG9JbnRlZ2VyICE9PSBudWxsKSB7XG4gICAgICB0eXBlID0gdGhpcy50b0ludGVnZXIuZ2V0VHlwZSgpO1xuICAgIH0gZWxzZSBpZiAodGhpcy50cnlJbnRlZ2VyICE9PSBudWxsKSB7XG4gICAgICB0eXBlID0gdGhpcy50cnlJbnRlZ2VyLmdldFR5cGUoKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMucmV0dXJuQmxvY2sgIT09IG51bGwpIHtcbiAgICAgIHR5cGUgPSB0aGlzLnJldHVybkJsb2NrLmdldFR5cGUoKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMucHJvY2VkdXJlQ2FsbCAhPT0gbnVsbCkge1xuICAgICAgdHlwZSA9IHRoaXMucHJvY2VkdXJlQ2FsbC5nZXRUeXBlKCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHR5cGU7XG4gIH1cblxuICBhc3luYyBldmFsdWF0ZShjb250ZXh0KSB7XG4gICAgbGV0IHZhbHVlO1xuXG4gICAgaWYgKGZhbHNlKSB7XG4gICAgICAvLy9cbiAgICB9IGVsc2UgaWYgKHRoaXMudGVybSAhPT0gbnVsbCkge1xuICAgICAgdmFsdWUgPSB0aGlzLnRlcm0uZXZhbHVhdGUoY29udGV4dCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLm5vZGVRdWVyeSAhPT0gbnVsbCkge1xuICAgICAgdmFsdWUgPSB0aGlzLm5vZGVRdWVyeS5ldmFsdWF0ZShjb250ZXh0KTtcbiAgICB9IGVsc2UgaWYgKHRoaXMubm9kZXNRdWVyeSAhPT0gbnVsbCkge1xuICAgICAgdmFsdWUgPSB0aGlzLm5vZGVzUXVlcnkuZXZhbHVhdGUoY29udGV4dCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLnRvSW50ZWdlciAhPT0gbnVsbCkge1xuICAgICAgdmFsdWUgPSB0aGlzLnRvSW50ZWdlci5ldmFsdWF0ZShjb250ZXh0KTtcbiAgICB9IGVsc2UgaWYgKHRoaXMudHJ5SW50ZWdlciAhPT0gbnVsbCkge1xuICAgICAgdmFsdWUgPSB0aGlzLnRyeUludGVnZXIuZXZhbHVhdGUoY29udGV4dCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLnNvbWUgIT09IG51bGwpIHtcbiAgICAgIHZhbHVlID0gYXdhaXQgdGhpcy5zb21lLmV2YWx1YXRlKGNvbnRleHQpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5ldmVyeSAhPT0gbnVsbCkge1xuICAgICAgdmFsdWUgPSBhd2FpdCAgdGhpcy5ldmVyeS5ldmFsdWF0ZShjb250ZXh0KTtcbiAgICB9IGVsc2UgaWYgKHRoaXMucmVkdWNlICE9PSBudWxsKSB7XG4gICAgICB2YWx1ZSA9IGF3YWl0IHRoaXMucmVkdWNlLmV2YWx1YXRlKGNvbnRleHQpO1xuICAgIH0gZWxzZSBpZiAodGhpcy50ZXJuYXJ5ICE9PSBudWxsKSB7XG4gICAgICB2YWx1ZSA9IGF3YWl0IHRoaXMudGVybmFyeS5ldmFsdWF0ZShjb250ZXh0KTtcbiAgICB9IGVsc2UgaWYgKHRoaXMucmV0dXJuQmxvY2sgIT09IG51bGwpIHtcbiAgICAgIHZhbHVlID0gYXdhaXQgdGhpcy5yZXR1cm5CbG9jay5ldmFsdWF0ZShjb250ZXh0KTtcbiAgICB9IGVsc2UgaWYgKHRoaXMucHJvY2VkdXJlQ2FsbCAhPT0gbnVsbCkge1xuICAgICAgdmFsdWUgPSBhd2FpdCB0aGlzLnByb2NlZHVyZUNhbGwuZXZhbHVhdGUoY29udGV4dCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgc3RhdGljIG5hbWUgPSBcIkV4cHJlc3Npb25cIjtcbn0pO1xuIl0sIm5hbWVzIjpbImRlZmluZSIsIkV4cHJlc3Npb24iLCJFbGVtZW50IiwiY29udGV4dCIsInN0cmluZyIsIm5vZGUiLCJicmVha1BvaW50IiwidGVybSIsInNvbWUiLCJldmVyeSIsInJlZHVjZSIsInRlcm5hcnkiLCJub2RlUXVlcnkiLCJub2Rlc1F1ZXJ5IiwidG9JbnRlZ2VyIiwidHJ5SW50ZWdlciIsInJldHVybkJsb2NrIiwicHJvY2VkdXJlQ2FsbCIsImdldFRlcm0iLCJnZXRTb21lIiwiZ2V0RXZlcnkiLCJnZXRSZWR1Y2UiLCJnZXRUZXJuYXJ5IiwidGVybmF5IiwiZ2V0Tm9kZVF1ZXJ5IiwiZ2V0Tm9kZXNRdWVyeSIsImdldFRvSW50ZWdlciIsImdldFRyeUludGVnZXIiLCJnZXRSZXR1cm5CbG9jayIsImdldFByb2NlZHVyZUNhbGwiLCJnZXRUeXBlIiwidHlwZSIsImV2YWx1YXRlIiwidmFsdWUiLCJuYW1lIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFNQTs7O2VBQUE7OztnQ0FKd0I7MEJBRUQ7TUFFdkIsV0FBZUEsSUFBQUEsZ0JBQU0sRUFBQyxNQUFNQyxtQkFBbUJDLHVCQUFPO0lBQ3BELFlBQVlDLE9BQU8sRUFBRUMsTUFBTSxFQUFFQyxJQUFJLEVBQUVDLFVBQVUsRUFBRUMsSUFBSSxFQUFFQyxJQUFJLEVBQUVDLEtBQUssRUFBRUMsTUFBTSxFQUFFQyxPQUFPLEVBQUVDLFNBQVMsRUFBRUMsVUFBVSxFQUFFQyxTQUFTLEVBQUVDLFVBQVUsRUFBRUMsV0FBVyxFQUFFQyxhQUFhLENBQUU7UUFDM0osS0FBSyxDQUFDZCxTQUFTQyxRQUFRQyxNQUFNQztRQUU3QixJQUFJLENBQUNDLElBQUksR0FBR0E7UUFDWixJQUFJLENBQUNDLElBQUksR0FBR0E7UUFDWixJQUFJLENBQUNDLEtBQUssR0FBR0E7UUFDYixJQUFJLENBQUNDLE1BQU0sR0FBR0E7UUFDZCxJQUFJLENBQUNDLE9BQU8sR0FBR0E7UUFDZixJQUFJLENBQUNDLFNBQVMsR0FBR0E7UUFDakIsSUFBSSxDQUFDQyxVQUFVLEdBQUdBO1FBQ2xCLElBQUksQ0FBQ0MsU0FBUyxHQUFHQTtRQUNqQixJQUFJLENB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
130
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L2V4cHJlc3Npb24uanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IEVsZW1lbnQgfSBmcm9tIFwib2NjYW0tbGFuZ3VhZ2VzXCI7XG5cbmltcG9ydCB7IGRlZmluZSB9IGZyb20gXCIuLi9lbGVtZW50c1wiO1xuXG5leHBvcnQgZGVmYXVsdCBkZWZpbmUoY2xhc3MgRXhwcmVzc2lvbiBleHRlbmRzIEVsZW1lbnQge1xuICBjb25zdHJ1Y3Rvcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIHRlcm0sIHNvbWUsIGV2ZXJ5LCByZWR1Y2UsIHRlcm5hcnksIG5vZGVRdWVyeSwgbm9kZXNRdWVyeSwgbGVuZ3RoT2YsIHRvSW50ZWdlciwgdHJ5SW50ZWdlciwgcmV0dXJuQmxvY2ssIHByb2NlZHVyZUNhbGwpIHtcbiAgICBzdXBlcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQpO1xuXG4gICAgdGhpcy50ZXJtID0gdGVybTtcbiAgICB0aGlzLnNvbWUgPSBzb21lO1xuICAgIHRoaXMuZXZlcnkgPSBldmVyeTtcbiAgICB0aGlzLnJlZHVjZSA9IHJlZHVjZTtcbiAgICB0aGlzLnRlcm5hcnkgPSB0ZXJuYXJ5O1xuICAgIHRoaXMubm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5O1xuICAgIHRoaXMubm9kZXNRdWVyeSA9IG5vZGVzUXVlcnk7XG4gICAgdGhpcy5sZW5ndGhPZiA9IGxlbmd0aE9mO1xuICAgIHRoaXMudG9JbnRlZ2VyID0gdG9JbnRlZ2VyO1xuICAgIHRoaXMudHJ5SW50ZWdlciA9IHRyeUludGVnZXI7XG4gICAgdGhpcy5yZXR1cm5CbG9jayA9IHJldHVybkJsb2NrO1xuICAgIHRoaXMucHJvY2VkdXJlQ2FsbCA9IHByb2NlZHVyZUNhbGw7XG4gIH1cblxuICBnZXRUZXJtKCkge1xuICAgIHJldHVybiB0aGlzLnRlcm07XG4gIH1cblxuICBnZXRTb21lKCkge1xuICAgIHJldHVybiB0aGlzLnNvbWU7XG4gIH1cblxuICBnZXRFdmVyeSgpIHtcbiAgICByZXR1cm4gdGhpcy5ldmVyeTtcbiAgfVxuXG4gIGdldFJlZHVjZSgpIHtcbiAgICByZXR1cm4gdGhpcy5yZWR1Y2U7XG4gIH1cblxuICBnZXRUZXJuYXJ5KCkge1xuICAgIHJldHVybiB0aGlzLnRlcm5heTtcbiAgfVxuXG4gIGdldE5vZGVRdWVyeSgpIHtcbiAgICByZXR1cm4gdGhpcy5ub2RlUXVlcnk7XG4gIH1cblxuICBnZXROb2Rlc1F1ZXJ5KCkge1xuICAgIHJldHVybiB0aGlzLm5vZGVzUXVlcnk7XG4gIH1cblxuICBnZXRMZW5ndGhPZigpIHtcbiAgICByZXR1cm4gdGhpcy5sZW5ndGhPZjtcbiAgfVxuXG4gIGdldFRvSW50ZWdlcigpIHtcbiAgICByZXR1cm4gdGhpcy50b0ludGVnZXI7XG4gIH1cblxuICBnZXRUcnlJbnRlZ2VyKCkge1xuICAgIHJldHVybiB0aGlzLnRyeUludGVnZXI7XG4gIH1cblxuICBnZXRSZXR1cm5CbG9jaygpIHtcbiAgICByZXR1cm4gdGhpcy5yZXR1cm5CbG9jaztcbiAgfVxuXG4gIGdldFByb2NlZHVyZUNhbGwoKSB7XG4gICAgcmV0dXJuIHRoaXMucHJvY2VkdXJlQ2FsbDtcbiAgfVxuXG4gIGdldFR5cGUoKSB7XG4gICAgbGV0IHR5cGU7XG5cbiAgICBpZiAoZmFsc2UpIHtcbiAgICAgIC8vL1xuICAgIH0gZWxzZSBpZiAodGhpcy50ZXJtICE9PSBudWxsKSB7XG4gICAgICB0eXBlID0gdGhpcy50ZXJtLmdldFR5cGUoKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuc29tZSAhPT0gbnVsbCkge1xuICAgICAgdHlwZSA9IHRoaXMuc29tZS5nZXRUeXBlKCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLmV2ZXJ5ICE9PSBudWxsKSB7XG4gICAgICB0eXBlID0gdGhpcy5ldmVyeS5nZXRUeXBlKCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLnJlZHVjZSAhPT0gbnVsbCkge1xuICAgICAgdHlwZSA9IHRoaXMucmVkdWNlLmdldFR5cGUoKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMudGVybmFyeSAhPT0gbnVsbCkge1xuICAgICAgdHlwZSA9IHRoaXMudGVybmFyeS5nZXRUeXBlKCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLm5vZGVRdWVyeSAhPT0gbnVsbCkge1xuICAgICAgdHlwZSA9IHRoaXMubm9kZVF1ZXJ5LmdldFR5cGUoKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMubm9kZXNRdWVyeSAhPT0gbnVsbCkge1xuICAgICAgdHlwZSA9IHRoaXMubm9kZXNRdWVyeS5nZXRUeXBlKCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLmxlbmd0aE9mICE9PSBudWxsKSB7XG4gICAgICB0eXBlID0gdGhpcy5sZW5ndGhPZi5nZXRUeXBlKCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLnRvSW50ZWdlciAhPT0gbnVsbCkge1xuICAgICAgdHlwZSA9IHRoaXMudG9JbnRlZ2VyLmdldFR5cGUoKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMudHJ5SW50ZWdlciAhPT0gbnVsbCkge1xuICAgICAgdHlwZSA9IHRoaXMudHJ5SW50ZWdlci5nZXRUeXBlKCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLnJldHVybkJsb2NrICE9PSBudWxsKSB7XG4gICAgICB0eXBlID0gdGhpcy5yZXR1cm5CbG9jay5nZXRUeXBlKCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLnByb2NlZHVyZUNhbGwgIT09IG51bGwpIHtcbiAgICAgIHR5cGUgPSB0aGlzLnByb2NlZHVyZUNhbGwuZ2V0VHlwZSgpO1xuICAgIH1cblxuICAgIHJldHVybiB0eXBlO1xuICB9XG5cbiAgYXN5bmMgZXZhbHVhdGUoY29udGV4dCkge1xuICAgIGxldCB2YWx1ZTtcblxuICAgIGlmIChmYWxzZSkge1xuICAgICAgLy8vXG4gICAgfSBlbHNlIGlmICh0aGlzLnRlcm0gIT09IG51bGwpIHtcbiAgICAgIHZhbHVlID0gdGhpcy50ZXJtLmV2YWx1YXRlKGNvbnRleHQpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5ub2RlUXVlcnkgIT09IG51bGwpIHtcbiAgICAgIHZhbHVlID0gdGhpcy5ub2RlUXVlcnkuZXZhbHVhdGUoY29udGV4dCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLm5vZGVzUXVlcnkgIT09IG51bGwpIHtcbiAgICAgIHZhbHVlID0gdGhpcy5ub2Rlc1F1ZXJ5LmV2YWx1YXRlKGNvbnRleHQpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5sZW5ndGhPZiAhPT0gbnVsbCkge1xuICAgICAgdmFsdWUgPSB0aGlzLmxlbmd0aE9mLmV2YWx1YXRlKGNvbnRleHQpO1xuICAgIH0gZWxzZSBpZiAodGhpcy50b0ludGVnZXIgIT09IG51bGwpIHtcbiAgICAgIHZhbHVlID0gdGhpcy50b0ludGVnZXIuZXZhbHVhdGUoY29udGV4dCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLnRyeUludGVnZXIgIT09IG51bGwpIHtcbiAgICAgIHZhbHVlID0gdGhpcy50cnlJbnRlZ2VyLmV2YWx1YXRlKGNvbnRleHQpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5zb21lICE9PSBudWxsKSB7XG4gICAgICB2YWx1ZSA9IGF3YWl0IHRoaXMuc29tZS5ldmFsdWF0ZShjb250ZXh0KTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuZXZlcnkgIT09IG51bGwpIHtcbiAgICAgIHZhbHVlID0gYXdhaXQgIHRoaXMuZXZlcnkuZXZhbHVhdGUoY29udGV4dCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLnJlZHVjZSAhPT0gbnVsbCkge1xuICAgICAgdmFsdWUgPSBhd2FpdCB0aGlzLnJlZHVjZS5ldmFsdWF0ZShjb250ZXh0KTtcbiAgICB9IGVsc2UgaWYgKHRoaXMudGVybmFyeSAhPT0gbnVsbCkge1xuICAgICAgdmFsdWUgPSBhd2FpdCB0aGlzLnRlcm5hcnkuZXZhbHVhdGUoY29udGV4dCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLnJldHVybkJsb2NrICE9PSBudWxsKSB7XG4gICAgICB2YWx1ZSA9IGF3YWl0IHRoaXMucmV0dXJuQmxvY2suZXZhbHVhdGUoY29udGV4dCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLnByb2NlZHVyZUNhbGwgIT09IG51bGwpIHtcbiAgICAgIHZhbHVlID0gYXdhaXQgdGhpcy5wcm9jZWR1cmVDYWxsLmV2YWx1YXRlKGNvbnRleHQpO1xuICAgIH1cblxuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuXG4gIHN0YXRpYyBuYW1lID0gXCJFeHByZXNzaW9uXCI7XG59KTtcbiJdLCJuYW1lcyI6WyJkZWZpbmUiLCJFeHByZXNzaW9uIiwiRWxlbWVudCIsImNvbnRleHQiLCJzdHJpbmciLCJub2RlIiwiYnJlYWtQb2ludCIsInRlcm0iLCJzb21lIiwiZXZlcnkiLCJyZWR1Y2UiLCJ0ZXJuYXJ5Iiwibm9kZVF1ZXJ5Iiwibm9kZXNRdWVyeSIsImxlbmd0aE9mIiwidG9JbnRlZ2VyIiwidHJ5SW50ZWdlciIsInJldHVybkJsb2NrIiwicHJvY2VkdXJlQ2FsbCIsImdldFRlcm0iLCJnZXRTb21lIiwiZ2V0RXZlcnkiLCJnZXRSZWR1Y2UiLCJnZXRUZXJuYXJ5IiwidGVybmF5IiwiZ2V0Tm9kZVF1ZXJ5IiwiZ2V0Tm9kZXNRdWVyeSIsImdldExlbmd0aE9mIiwiZ2V0VG9JbnRlZ2VyIiwiZ2V0VHJ5SW50ZWdlciIsImdldFJldHVybkJsb2NrIiwiZ2V0UHJvY2VkdXJlQ2FsbCIsImdldFR5cGUiLCJ0eXBlIiwiZXZhbHVhdGUiLCJ2YWx1ZSIsIm5hbWUiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQU1BOzs7ZUFBQTs7O2dDQUp3QjswQkFFRDtNQUV2QixXQUFlQSxJQUFBQSxnQkFBTSxFQUFDLE1BQU1DLG1CQUFtQkMsdUJBQU87SUFDcEQsWUFBWUMsT0FBTyxFQUFFQyxNQUFNLEVBQUVDLElBQUksRUFBRUMsVUFBVSxFQUFFQyxJQUFJLEVBQUVDLElBQUksRUFBRUMsS0FBSyxFQUFFQyxNQUFNLEVBQUVDLE9BQU8sRUFBRUMsU0FBUyxFQUFFQyxVQUFVLEVBQUVDLFFBQVEsRUFBRUMsU0FBUyxFQUFF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
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "default", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return _default;
9
+ }
10
+ });
11
+ const _occamlanguages = require("occam-languages");
12
+ const _exception = /*#__PURE__*/ _interop_require_default(require("../exception"));
13
+ const _elements = require("../elements");
14
+ const _typeNames = require("../typeNames");
15
+ const _value = require("../utilities/value");
16
+ function _interop_require_default(obj) {
17
+ return obj && obj.__esModule ? obj : {
18
+ default: obj
19
+ };
20
+ }
21
+ const _default = (0, _elements.define)(class LengthOf extends _occamlanguages.Element {
22
+ constructor(context, string, node, breakPoint, variable){
23
+ super(context, string, node, breakPoint);
24
+ this.variable = variable;
25
+ }
26
+ getVariable() {
27
+ return this.variable;
28
+ }
29
+ evaluate(context) {
30
+ let value;
31
+ const lengthOfString = this.getString(); ///
32
+ context.trace(`Evaluating the '${lengthOfString}' function...`);
33
+ value = this.variable.evaluate(context);
34
+ const valueType = value.getType(), valueTypeListType = valueType.isListType();
35
+ if (!valueTypeListType) {
36
+ const valueString = value.getString(), message = `The '${valueString}' value's '${valueType}' type should be '${_typeNames.LIST_TYPE_NAME}'.`, exception = _exception.default.fromMessage(message);
37
+ throw exception;
38
+ }
39
+ const primitiveValue = value.getPrimitiveValue(), length = primitiveValue.length, integer = length; ///
40
+ value = (0, _value.valueFromInteger)(integer, context);
41
+ const valueString = value.getString();
42
+ context.debug(`...evaluated the '${lengthOfString}' function as '${valueString}'.`);
43
+ return value;
44
+ }
45
+ static name = "LengthOf";
46
+ });
47
+
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L2xlbmd0aE9mLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBFbGVtZW50IH0gZnJvbSBcIm9jY2FtLWxhbmd1YWdlc1wiO1xuXG5pbXBvcnQgRXhjZXB0aW9uIGZyb20gXCIuLi9leGNlcHRpb25cIjtcblxuaW1wb3J0IHsgZGVmaW5lIH0gZnJvbSBcIi4uL2VsZW1lbnRzXCI7XG5pbXBvcnQgeyBMSVNUX1RZUEVfTkFNRSB9IGZyb20gXCIuLi90eXBlTmFtZXNcIjtcbmltcG9ydCB7dmFsdWVGcm9tSW50ZWdlcn0gZnJvbSBcIi4uL3V0aWxpdGllcy92YWx1ZVwiO1xuXG5leHBvcnQgZGVmYXVsdCBkZWZpbmUoY2xhc3MgTGVuZ3RoT2YgZXh0ZW5kcyBFbGVtZW50IHtcbiAgY29uc3RydWN0b3IoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCB2YXJpYWJsZSkge1xuICAgIHN1cGVyKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCk7XG5cbiAgICB0aGlzLnZhcmlhYmxlID0gdmFyaWFibGU7XG4gIH1cblxuICBnZXRWYXJpYWJsZSgpIHtcbiAgICByZXR1cm4gdGhpcy52YXJpYWJsZTtcbiAgfVxuXG4gIGV2YWx1YXRlKGNvbnRleHQpIHtcbiAgICBsZXQgdmFsdWU7XG5cbiAgICBjb25zdCBsZW5ndGhPZlN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7ICAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYEV2YWx1YXRpbmcgdGhlICcke2xlbmd0aE9mU3RyaW5nfScgZnVuY3Rpb24uLi5gKTtcblxuICAgIHZhbHVlID0gdGhpcy52YXJpYWJsZS5ldmFsdWF0ZShjb250ZXh0KTtcblxuICAgIGNvbnN0IHZhbHVlVHlwZSA9IHZhbHVlLmdldFR5cGUoKSxcbiAgICAgICAgICB2YWx1ZVR5cGVMaXN0VHlwZSA9IHZhbHVlVHlwZS5pc0xpc3RUeXBlKCk7XG5cbiAgICBpZiAoIXZhbHVlVHlwZUxpc3RUeXBlKSB7XG4gICAgICBjb25zdCB2YWx1ZVN0cmluZyA9IHZhbHVlLmdldFN0cmluZygpLFxuICAgICAgICAgICAgbWVzc2FnZSA9IGBUaGUgJyR7dmFsdWVTdHJpbmd9JyB2YWx1ZSdzICcke3ZhbHVlVHlwZX0nIHR5cGUgc2hvdWxkIGJlICcke0xJU1RfVFlQRV9OQU1FfScuYCxcbiAgICAgICAgICAgIGV4Y2VwdGlvbiA9IEV4Y2VwdGlvbi5mcm9tTWVzc2FnZShtZXNzYWdlKTtcblxuICAgICAgdGhyb3cgZXhjZXB0aW9uO1xuICAgIH1cblxuICAgIGNvbnN0IHByaW1pdGl2ZVZhbHVlID0gdmFsdWUuZ2V0UHJpbWl0aXZlVmFsdWUoKSxcbiAgICAgICAgICBsZW5ndGggPSBwcmltaXRpdmVWYWx1ZS5sZW5ndGgsXG4gICAgICAgICAgaW50ZWdlciA9IGxlbmd0aDsgLy8vXG5cbiAgICB2YWx1ZSA9IHZhbHVlRnJvbUludGVnZXIoaW50ZWdlciwgY29udGV4dCk7XG5cbiAgICBjb25zdCB2YWx1ZVN0cmluZyA9IHZhbHVlLmdldFN0cmluZygpO1xuXG4gICAgY29udGV4dC5kZWJ1ZyhgLi4uZXZhbHVhdGVkIHRoZSAnJHtsZW5ndGhPZlN0cmluZ30nIGZ1bmN0aW9uIGFzICcke3ZhbHVlU3RyaW5nfScuYCk7XG5cbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiTGVuZ3RoT2ZcIjtcbn0pO1xuIl0sIm5hbWVzIjpbImRlZmluZSIsIkxlbmd0aE9mIiwiRWxlbWVudCIsImNvbnRleHQiLCJzdHJpbmciLCJub2RlIiwiYnJlYWtQb2ludCIsInZhcmlhYmxlIiwiZ2V0VmFyaWFibGUiLCJldmFsdWF0ZSIsInZhbHVlIiwibGVuZ3RoT2ZTdHJpbmciLCJnZXRTdHJpbmciLCJ0cmFjZSIsInZhbHVlVHlwZSIsImdldFR5cGUiLCJ2YWx1ZVR5cGVMaXN0VHlwZSIsImlzTGlzdFR5cGUiLCJ2YWx1ZVN0cmluZyIsIm1lc3NhZ2UiLCJMSVNUX1RZUEVfTkFNRSIsImV4Y2VwdGlvbiIsIkV4Y2VwdGlvbiIsImZyb21NZXNzYWdlIiwicHJpbWl0aXZlVmFsdWUiLCJnZXRQcmltaXRpdmVWYWx1ZSIsImxlbmd0aCIsImludGVnZXIiLCJ2YWx1ZUZyb21JbnRlZ2VyIiwiZGVidWciLCJuYW1lIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFVQTs7O2VBQUE7OztnQ0FSd0I7a0VBRUY7MEJBRUM7MkJBQ1E7dUJBQ0E7Ozs7OztNQUUvQixXQUFlQSxJQUFBQSxnQkFBTSxFQUFDLE1BQU1DLGlCQUFpQkMsdUJBQU87SUFDbEQsWUFBWUMsT0FBTyxFQUFFQyxNQUFNLEVBQUVDLElBQUksRUFBRUMsVUFBVSxFQUFFQyxRQUFRLENBQUU7UUFDdkQsS0FBSyxDQUFDSixTQUFTQyxRQUFRQyxNQUFNQztRQUU3QixJQUFJLENBQUNDLFFBQVEsR0FBR0E7SUFDbEI7SUFFQUMsY0FBYztRQUNaLE9BQU8sSUFBSSxDQUFDRCxRQUFRO0lBQ3RCO0lBRUFFLFNBQVNOLE9BQU8sRUFBRTtRQUNoQixJQUFJTztRQUVKLE1BQU1DLGlCQUFpQixJQUFJLENBQUNDLFNBQVMsSUFBSyxHQUFHO1FBRTdDVCxRQUFRVSxLQUFLLENBQUMsQ0FBQyxnQkFBZ0IsRUFBRUYsZUFBZSxhQUFhLENBQUM7UUFFOURELFFBQVEsSUFBSSxDQUFDSCxRQUFRLENBQUNFLFFBQVEsQ0FBQ047UUFFL0IsTUFBTVcsWUFBWUosTUFBTUssT0FBTyxJQUN6QkMsb0JBQW9CRixVQUFVRyxVQUFVO1FBRTlDLElBQUksQ0FBQ0QsbUJBQW1CO1lBQ3RCLE1BQU1FLGNBQWNSLE1BQU1FLFNBQVMsSUFDN0JPLFVBQVUsQ0FBQyxLQUFLLEVBQUVELFlBQVksV0FBVyxFQUFFSixVQUFVLGtCQUFrQixFQUFFTSx5QkFBYyxDQUFDLEVBQUUsQ0FBQyxFQUMzRkMsWUFBWUMsa0JBQVMsQ0FBQ0MsV0FBVyxDQUFDSjtZQUV4QyxNQUFNRTtRQUNSO1FBRUEsTUFBTUcsaUJBQWlCZCxNQUFNZSxpQkFBaUIsSUFDeENDLFNBQVNGLGVBQWVFLE1BQU0sRUFDOUJDLFVBQVVELFFBQVEsR0FBRztRQUUzQmhCLFFBQVFrQixJQUFBQSx1QkFBZ0IsRUFBQ0QsU0FBU3hCO1FBRWxDLE1BQU1lLGNBQWNSLE1BQU1FLFNBQVM7UUFFbkNULFFBQVEwQixLQUFLLENBQUMsQ0FBQyxrQkFBa0IsRUFBRWxCLGVBQWUsZUFBZSxFQUFFTyxZQUFZLEVBQUUsQ0FBQztRQUVsRixPQUFPUjtJQUNUO0lBRUEsT0FBT29CLE9BQU8sV0FBVztBQUMzQiJ9
@@ -31,6 +31,10 @@ class ExpressionNode extends _occamlanguages.NonTerminalNode {
31
31
  const ruleName = _ruleNames.TERNARY_RULE_NAME, ternaryNode = this.getNodeByRuleName(ruleName);
32
32
  return ternaryNode;
33
33
  }
34
+ getLengthOfNode() {
35
+ const ruleName = _ruleNames.LENGTH_OF_RULE_NAME, lengthOfNode = this.getNodeByRuleName(ruleName);
36
+ return lengthOfNode;
37
+ }
34
38
  getNodeQueryNode() {
35
39
  const ruleName = _ruleNames.NODE_QUERY_RULE_NAME, nodeQueryNode = this.getNodeByRuleName(ruleName);
36
40
  return nodeQueryNode;
@@ -60,4 +64,4 @@ class ExpressionNode extends _occamlanguages.NonTerminalNode {
60
64
  }
61
65
  }
62
66
 
63
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ub2RlL2V4cHJlc3Npb24uanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IE5vblRlcm1pbmFsTm9kZSB9IGZyb20gXCJvY2NhbS1sYW5ndWFnZXNcIjtcblxuaW1wb3J0IHsgVEVSTV9SVUxFX05BTUUsXG4gICAgICAgICBTT01FX1JVTEVfTkFNRSxcbiAgICAgICAgIEVWRVJZX1JVTEVfTkFNRSxcbiAgICAgICAgIFJFRFVDRV9SVUxFX05BTUUsXG4gICAgICAgICBURVJOQVJZX1JVTEVfTkFNRSxcbiAgICAgICAgIFRPX0lOVEVHRVJfUlVMRV9OQU1FLFxuICAgICAgICAgTk9ERV9RVUVSWV9SVUxFX05BTUUsXG4gICAgICAgICBUUllfSU5URUdFUl9SVUxFX05BTUUsXG4gICAgICAgICBOT0RFU19RVUVSWV9SVUxFX05BTUUsXG4gICAgICAgICBSRVRVUk5fQkxPQ0tfUlVMRV9OQU1FLFxuICAgICAgICAgUFJPQ0VEVVJFX0NBTExfUlVMRV9OQU1FIH0gZnJvbSBcIi4uL3J1bGVOYW1lc1wiO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBFeHByZXNzaW9uTm9kZSBleHRlbmRzIE5vblRlcm1pbmFsTm9kZSB7XG4gIGdldFRlcm1Ob2RlKCkge1xuICAgIGNvbnN0IHJ1bGVOYW1lID0gVEVSTV9SVUxFX05BTUUsXG4gICAgICAgICAgdGVybU5vZGUgPSB0aGlzLmdldE5vZGVCeVJ1bGVOYW1lKHJ1bGVOYW1lKTtcblxuICAgIHJldHVybiB0ZXJtTm9kZTtcbiAgfVxuXG4gIGdldFNvbWVOb2RlKCkge1xuICAgIGNvbnN0IHJ1bGVOYW1lID0gU09NRV9SVUxFX05BTUUsXG4gICAgICAgICAgc29tZU5vZGUgPSB0aGlzLmdldE5vZGVCeVJ1bGVOYW1lKHJ1bGVOYW1lKTtcblxuICAgIHJldHVybiBzb21lTm9kZTtcbiAgfVxuXG4gIGdldEV2ZXJ5Tm9kZSgpIHtcbiAgICBjb25zdCBydWxlTmFtZSA9IEVWRVJZX1JVTEVfTkFNRSxcbiAgICAgICAgICBldmVyeU5vZGUgPSB0aGlzLmdldE5vZGVCeVJ1bGVOYW1lKHJ1bGVOYW1lKTtcblxuICAgIHJldHVybiBldmVyeU5vZGU7XG4gIH1cblxuICBnZXRSZWR1Y2VOb2RlKCkge1xuICAgIGNvbnN0IHJ1bGVOYW1lID0gUkVEVUNFX1JVTEVfTkFNRSxcbiAgICAgICAgICByZWR1Y2VOb2RlID0gdGhpcy5nZXROb2RlQnlSdWxlTmFtZShydWxlTmFtZSk7XG5cbiAgICByZXR1cm4gcmVkdWNlTm9kZTtcbiAgfVxuXG4gIGdldFRlcm5hcnlOb2RlKCkge1xuICAgIGNvbnN0IHJ1bGVOYW1lID0gVEVSTkFSWV9SVUxFX05BTUUsXG4gICAgICAgICAgdGVybmFyeU5vZGUgPSB0aGlzLmdldE5vZGVCeVJ1bGVOYW1lKHJ1bGVOYW1lKTtcblxuICAgIHJldHVybiB0ZXJuYXJ5Tm9kZTtcbiAgfVxuXG4gIGdldE5vZGVRdWVyeU5vZGUoKSB7XG4gICAgY29uc3QgcnVsZU5hbWUgPSBOT0RFX1FVRVJZX1JVTEVfTkFNRSxcbiAgICAgIG5vZGVRdWVyeU5vZGUgPSB0aGlzLmdldE5vZGVCeVJ1bGVOYW1lKHJ1bGVOYW1lKTtcblxuICAgIHJldHVybiBub2RlUXVlcnlOb2RlO1xuICB9XG5cbiAgZ2V0VG9JbnRlZ2VyTm9kZSgpIHtcbiAgICBjb25zdCBydWxlTmFtZSA9IFRPX0lOVEVHRVJfUlVMRV9OQU1FLFxuICAgICAgICAgIHRvSW50ZWdlck5vZGUgPSB0aGlzLmdldE5vZGVCeVJ1bGVOYW1lKHJ1bGVOYW1lKTtcblxuICAgIHJldHVybiB0b0ludGVnZXJOb2RlO1xuICB9XG5cbiAgZ2V0Tm9kZXNRdWVyeU5vZGUoKSB7XG4gICAgY29uc3QgcnVsZU5hbWUgPSBOT0RFU19RVUVSWV9SVUxFX05BTUUsXG4gICAgICAgICAgbm9kZVNRdWVyeU5vZGUgPSB0aGlzLmdldE5vZGVCeVJ1bGVOYW1lKHJ1bGVOYW1lKTtcblxuICAgIHJldHVybiBub2RlU1F1ZXJ5Tm9kZTtcbiAgfVxuXG4gIGdldFRyeUludGVnZXJOb2RlKCkge1xuICAgIGNvbnN0IHJ1bGVOYW1lID0gVFJZX0lOVEVHRVJfUlVMRV9OQU1FLFxuICAgICAgICAgIHRyeUludGVnZXJOb2RlID0gdGhpcy5nZXROb2RlQnlSdWxlTmFtZShydWxlTmFtZSk7XG5cbiAgICByZXR1cm4gdHJ5SW50ZWdlck5vZGU7XG4gIH1cblxuICBnZXRSZXR1cm5CbG9ja05vZGUoKSB7XG4gICAgY29uc3QgcnVsZU5hbWUgPSBSRVRVUk5fQkxPQ0tfUlVMRV9OQU1FLFxuICAgICAgICAgIHJldHVybkJsb2NrTm9kZSA9IHRoaXMuZ2V0Tm9kZUJ5UnVsZU5hbWUocnVsZU5hbWUpO1xuXG4gICAgcmV0dXJuIHJldHVybkJsb2NrTm9kZTtcbiAgfVxuXG4gIGdldFByb2NlZHVyZUNhbGxOb2RlKCkge1xuICAgIGNvbnN0IHJ1bGVOYW1lID0gUFJPQ0VEVVJFX0NBTExfUlVMRV9OQU1FLFxuICAgICAgICAgIHByb2NlZHVyZUNhbGxOb2RlID0gdGhpcy5nZXROb2RlQnlSdWxlTmFtZShydWxlTmFtZSk7XG5cbiAgICByZXR1cm4gcHJvY2VkdXJlQ2FsbE5vZGU7XG4gIH1cblxuICBzdGF0aWMgZnJvbVJ1bGVOYW1lQ2hpbGROb2Rlc09wYWNpdHlBbmRQcmVjZWRlbmNlKHJ1bGVOYW1lLCBjaGlsZE5vZGVzLCBvcGFjaXR5LCBwcmVjZWRlbmNlKSB7IHJldHVybiBOb25UZXJtaW5hbE5vZGUuZnJvbVJ1bGVOYW1lQ2hpbGROb2Rlc09wYWNpdHlBbmRQcmVjZWRlbmNlKEV4cHJlc3Npb25Ob2RlLCBydWxlTmFtZSwgY2hpbGROb2Rlcywgb3BhY2l0eSwgcHJlY2VkZW5jZSk7IH1cbn1cbiJdLCJuYW1lcyI6WyJFeHByZXNzaW9uTm9kZSIsIk5vblRlcm1pbmFsTm9kZSIsImdldFRlcm1Ob2RlIiwicnVsZU5hbWUiLCJURVJNX1JVTEVfTkFNRSIsInRlcm1Ob2RlIiwiZ2V0Tm9kZUJ5UnVsZU5hbWUiLCJnZXRTb21lTm9kZSIsIlNPTUVfUlVMRV9OQU1FIiwic29tZU5vZGUiLCJnZXRFdmVyeU5vZGUiLCJFVkVSWV9SVUxFX05BTUUiLCJldmVyeU5vZGUiLCJnZXRSZWR1Y2VOb2RlIiwiUkVEVUNFX1JVTEVfTkFNRSIsInJlZHVjZU5vZGUiLCJnZXRUZXJuYXJ5Tm9kZSIsIlRFUk5BUllfUlVMRV9OQU1FIiwidGVybmFyeU5vZGUiLCJnZXROb2RlUXVlcnlOb2RlIiwiTk9ERV9RVUVSWV9SVUxFX05BTUUiLCJub2RlUXVlcnlOb2RlIiwiZ2V0VG9JbnRlZ2VyTm9kZSIsIlRPX0lOVEVHRVJfUlVMRV9OQU1FIiwidG9JbnRlZ2VyTm9kZSIsImdldE5vZGVzUXVlcnlOb2RlIiwiTk9ERVNfUVVFUllfUlVMRV9OQU1FIiwibm9kZVNRdWVyeU5vZGUiLCJnZXRUcnlJbnRlZ2VyTm9kZSIsIlRSWV9JTlRFR0VSX1JVTEVfTkFNRSIsInRyeUludGVnZXJOb2RlIiwiZ2V0UmV0dXJuQmxvY2tOb2RlIiwiUkVUVVJOX0JMT0NLX1JVTEVfTkFNRSIsInJldHVybkJsb2NrTm9kZSIsImdldFByb2NlZHVyZUNhbGxOb2RlIiwiUFJPQ0VEVVJFX0NBTExfUlVMRV9OQU1FIiwicHJvY2VkdXJlQ2FsbE5vZGUiLCJmcm9tUnVsZU5hbWVDaGlsZE5vZGVzT3BhY2l0eUFuZFByZWNlZGVuY2UiLCJjaGlsZE5vZGVzIiwib3BhY2l0eSIsInByZWNlZGVuY2UiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQWdCQTs7O2VBQXFCQTs7O2dDQWRXOzJCQVlTO0FBRTFCLE1BQU1BLHVCQUF1QkMsK0JBQWU7SUFDekRDLGNBQWM7UUFDWixNQUFNQyxXQUFXQyx5QkFBYyxFQUN6QkMsV0FBVyxJQUFJLENBQUNDLGlCQUFpQixDQUFDSDtRQUV4QyxPQUFPRTtJQUNUO0lBRUFFLGNBQWM7UUFDWixNQUFNSixXQUFXSyx5QkFBYyxFQUN6QkMsV0FBVyxJQUFJLENBQUNILGlCQUFpQixDQUFDSDtRQUV4QyxPQUFPTTtJQUNUO0lBRUFDLGVBQWU7UUFDYixNQUFNUCxXQUFXUSwwQkFBZSxFQUMxQkMsWUFBWSxJQUFJLENBQUNOLGlCQUFpQixDQUFDSDtRQUV6QyxPQUFPUztJQUNUO0lBRUFDLGdCQUFnQjtRQUNkLE1BQU1WLFdBQVdXLDJCQUFnQixFQUMzQkMsYUFBYSxJQUFJLENBQUNULGlCQUFpQixDQUFDSDtRQUUxQyxPQUFPWTtJQUNUO0lBRUFDLGlCQUFpQjtRQUNmLE1BQU1iLFdBQVdjLDRCQUFpQixFQUM1QkMsY0FBYyxJQUFJLENBQUNaLGlCQUFpQixDQUFDSDtRQUUzQyxPQUFPZTtJQUNUO0lBRUFDLG1CQUFtQjtRQUNqQixNQUFNaEIsV0FBV2lCLCtCQUFvQixFQUNuQ0MsZ0JBQWdCLElBQUksQ0FBQ2YsaUJBQWlCLENBQUNIO1FBRXpDLE9BQU9rQjtJQUNUO0lBRUFDLG1CQUFtQjtRQUNqQixNQUFNbkIsV0FBV29CLCtCQUFvQixFQUMvQkMsZ0JBQWdCLElBQUksQ0FBQ2xCLGlCQUFpQixDQUFDSDtRQUU3QyxPQUFPcUI7SUFDVDtJQUVBQyxvQkFBb0I7UUFDbEIsTUFBTXRCLFdBQVd1QixnQ0FBcUIsRUFDaENDLGlCQUFpQixJQUFJLENBQUNyQixpQkFBaUIsQ0FBQ0g7UUFFOUMsT0FBT3dCO0lBQ1Q7SUFFQUMsb0JBQW9CO1FBQ2xCLE1BQU16QixXQUFXMEIsZ0NBQXFCLEVBQ2hDQyxpQkFBaUIsSUFBSSxDQUFDeEIsaUJBQWlCLENBQUNIO1FBRTlDLE9BQU8yQjtJQUNUO0lBRUFDLHFCQUFxQjtRQUNuQixNQUFNNUIsV0FBVzZCLGlDQUFzQixFQUNqQ0Msa0JBQWtCLElBQUksQ0FBQzNCLGlCQUFpQixDQUFDSDtRQUUvQyxPQUFPOEI7SUFDVDtJQUVBQyx1QkFBdUI7UUFDckIsTUFBTS9CLFdBQVdnQyxtQ0FBd0IsRUFDbkNDLG9CQUFvQixJQUFJLENBQUM5QixpQkFBaUIsQ0FBQ0g7UUFFakQsT0FBT2lDO0lBQ1Q7SUFFQSxPQUFPQywyQ0FBMkNsQyxRQUFRLEVBQUVtQyxVQUFVLEVBQUVDLE9BQU8sRUFBRUMsVUFBVSxFQUFFO1FBQUUsT0FBT3ZDLCtCQUFlLENBQUNvQywwQ0FBMEMsQ0FBQ3JDLGdCQUFnQkcsVUFBVW1DLFlBQVlDLFNBQVNDO0lBQWE7QUFDL04ifQ==
67
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ub2RlL2V4cHJlc3Npb24uanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IE5vblRlcm1pbmFsTm9kZSB9IGZyb20gXCJvY2NhbS1sYW5ndWFnZXNcIjtcblxuaW1wb3J0IHsgVEVSTV9SVUxFX05BTUUsXG4gICAgICAgICBTT01FX1JVTEVfTkFNRSxcbiAgICAgICAgIEVWRVJZX1JVTEVfTkFNRSxcbiAgICAgICAgIFJFRFVDRV9SVUxFX05BTUUsXG4gICAgICAgICBURVJOQVJZX1JVTEVfTkFNRSxcbiAgICAgICAgIExFTkdUSF9PRl9SVUxFX05BTUUsXG4gICAgICAgICBUT19JTlRFR0VSX1JVTEVfTkFNRSxcbiAgICAgICAgIE5PREVfUVVFUllfUlVMRV9OQU1FLFxuICAgICAgICAgVFJZX0lOVEVHRVJfUlVMRV9OQU1FLFxuICAgICAgICAgTk9ERVNfUVVFUllfUlVMRV9OQU1FLFxuICAgICAgICAgUkVUVVJOX0JMT0NLX1JVTEVfTkFNRSxcbiAgICAgICAgIFBST0NFRFVSRV9DQUxMX1JVTEVfTkFNRSB9IGZyb20gXCIuLi9ydWxlTmFtZXNcIjtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRXhwcmVzc2lvbk5vZGUgZXh0ZW5kcyBOb25UZXJtaW5hbE5vZGUge1xuICBnZXRUZXJtTm9kZSgpIHtcbiAgICBjb25zdCBydWxlTmFtZSA9IFRFUk1fUlVMRV9OQU1FLFxuICAgICAgICAgIHRlcm1Ob2RlID0gdGhpcy5nZXROb2RlQnlSdWxlTmFtZShydWxlTmFtZSk7XG5cbiAgICByZXR1cm4gdGVybU5vZGU7XG4gIH1cblxuICBnZXRTb21lTm9kZSgpIHtcbiAgICBjb25zdCBydWxlTmFtZSA9IFNPTUVfUlVMRV9OQU1FLFxuICAgICAgICAgIHNvbWVOb2RlID0gdGhpcy5nZXROb2RlQnlSdWxlTmFtZShydWxlTmFtZSk7XG5cbiAgICByZXR1cm4gc29tZU5vZGU7XG4gIH1cblxuICBnZXRFdmVyeU5vZGUoKSB7XG4gICAgY29uc3QgcnVsZU5hbWUgPSBFVkVSWV9SVUxFX05BTUUsXG4gICAgICAgICAgZXZlcnlOb2RlID0gdGhpcy5nZXROb2RlQnlSdWxlTmFtZShydWxlTmFtZSk7XG5cbiAgICByZXR1cm4gZXZlcnlOb2RlO1xuICB9XG5cbiAgZ2V0UmVkdWNlTm9kZSgpIHtcbiAgICBjb25zdCBydWxlTmFtZSA9IFJFRFVDRV9SVUxFX05BTUUsXG4gICAgICAgICAgcmVkdWNlTm9kZSA9IHRoaXMuZ2V0Tm9kZUJ5UnVsZU5hbWUocnVsZU5hbWUpO1xuXG4gICAgcmV0dXJuIHJlZHVjZU5vZGU7XG4gIH1cblxuICBnZXRUZXJuYXJ5Tm9kZSgpIHtcbiAgICBjb25zdCBydWxlTmFtZSA9IFRFUk5BUllfUlVMRV9OQU1FLFxuICAgICAgICAgIHRlcm5hcnlOb2RlID0gdGhpcy5nZXROb2RlQnlSdWxlTmFtZShydWxlTmFtZSk7XG5cbiAgICByZXR1cm4gdGVybmFyeU5vZGU7XG4gIH1cblxuICBnZXRMZW5ndGhPZk5vZGUoKSB7XG4gICAgY29uc3QgcnVsZU5hbWUgPSBMRU5HVEhfT0ZfUlVMRV9OQU1FLFxuICAgICAgICAgIGxlbmd0aE9mTm9kZSA9IHRoaXMuZ2V0Tm9kZUJ5UnVsZU5hbWUocnVsZU5hbWUpO1xuXG4gICAgcmV0dXJuIGxlbmd0aE9mTm9kZTtcbiAgfVxuXG4gIGdldE5vZGVRdWVyeU5vZGUoKSB7XG4gICAgY29uc3QgcnVsZU5hbWUgPSBOT0RFX1FVRVJZX1JVTEVfTkFNRSxcbiAgICAgICAgICBub2RlUXVlcnlOb2RlID0gdGhpcy5nZXROb2RlQnlSdWxlTmFtZShydWxlTmFtZSk7XG5cbiAgICByZXR1cm4gbm9kZVF1ZXJ5Tm9kZTtcbiAgfVxuXG4gIGdldFRvSW50ZWdlck5vZGUoKSB7XG4gICAgY29uc3QgcnVsZU5hbWUgPSBUT19JTlRFR0VSX1JVTEVfTkFNRSxcbiAgICAgIHRvSW50ZWdlck5vZGUgPSB0aGlzLmdldE5vZGVCeVJ1bGVOYW1lKHJ1bGVOYW1lKTtcblxuICAgIHJldHVybiB0b0ludGVnZXJOb2RlO1xuICB9XG5cbiAgZ2V0Tm9kZXNRdWVyeU5vZGUoKSB7XG4gICAgY29uc3QgcnVsZU5hbWUgPSBOT0RFU19RVUVSWV9SVUxFX05BTUUsXG4gICAgICAgICAgbm9kZVNRdWVyeU5vZGUgPSB0aGlzLmdldE5vZGVCeVJ1bGVOYW1lKHJ1bGVOYW1lKTtcblxuICAgIHJldHVybiBub2RlU1F1ZXJ5Tm9kZTtcbiAgfVxuXG4gIGdldFRyeUludGVnZXJOb2RlKCkge1xuICAgIGNvbnN0IHJ1bGVOYW1lID0gVFJZX0lOVEVHRVJfUlVMRV9OQU1FLFxuICAgICAgICAgIHRyeUludGVnZXJOb2RlID0gdGhpcy5nZXROb2RlQnlSdWxlTmFtZShydWxlTmFtZSk7XG5cbiAgICByZXR1cm4gdHJ5SW50ZWdlck5vZGU7XG4gIH1cblxuICBnZXRSZXR1cm5CbG9ja05vZGUoKSB7XG4gICAgY29uc3QgcnVsZU5hbWUgPSBSRVRVUk5fQkxPQ0tfUlVMRV9OQU1FLFxuICAgICAgICAgIHJldHVybkJsb2NrTm9kZSA9IHRoaXMuZ2V0Tm9kZUJ5UnVsZU5hbWUocnVsZU5hbWUpO1xuXG4gICAgcmV0dXJuIHJldHVybkJsb2NrTm9kZTtcbiAgfVxuXG4gIGdldFByb2NlZHVyZUNhbGxOb2RlKCkge1xuICAgIGNvbnN0IHJ1bGVOYW1lID0gUFJPQ0VEVVJFX0NBTExfUlVMRV9OQU1FLFxuICAgICAgICAgIHByb2NlZHVyZUNhbGxOb2RlID0gdGhpcy5nZXROb2RlQnlSdWxlTmFtZShydWxlTmFtZSk7XG5cbiAgICByZXR1cm4gcHJvY2VkdXJlQ2FsbE5vZGU7XG4gIH1cblxuICBzdGF0aWMgZnJvbVJ1bGVOYW1lQ2hpbGROb2Rlc09wYWNpdHlBbmRQcmVjZWRlbmNlKHJ1bGVOYW1lLCBjaGlsZE5vZGVzLCBvcGFjaXR5LCBwcmVjZWRlbmNlKSB7IHJldHVybiBOb25UZXJtaW5hbE5vZGUuZnJvbVJ1bGVOYW1lQ2hpbGROb2Rlc09wYWNpdHlBbmRQcmVjZWRlbmNlKEV4cHJlc3Npb25Ob2RlLCBydWxlTmFtZSwgY2hpbGROb2Rlcywgb3BhY2l0eSwgcHJlY2VkZW5jZSk7IH1cbn1cbiJdLCJuYW1lcyI6WyJFeHByZXNzaW9uTm9kZSIsIk5vblRlcm1pbmFsTm9kZSIsImdldFRlcm1Ob2RlIiwicnVsZU5hbWUiLCJURVJNX1JVTEVfTkFNRSIsInRlcm1Ob2RlIiwiZ2V0Tm9kZUJ5UnVsZU5hbWUiLCJnZXRTb21lTm9kZSIsIlNPTUVfUlVMRV9OQU1FIiwic29tZU5vZGUiLCJnZXRFdmVyeU5vZGUiLCJFVkVSWV9SVUxFX05BTUUiLCJldmVyeU5vZGUiLCJnZXRSZWR1Y2VOb2RlIiwiUkVEVUNFX1JVTEVfTkFNRSIsInJlZHVjZU5vZGUiLCJnZXRUZXJuYXJ5Tm9kZSIsIlRFUk5BUllfUlVMRV9OQU1FIiwidGVybmFyeU5vZGUiLCJnZXRMZW5ndGhPZk5vZGUiLCJMRU5HVEhfT0ZfUlVMRV9OQU1FIiwibGVuZ3RoT2ZOb2RlIiwiZ2V0Tm9kZVF1ZXJ5Tm9kZSIsIk5PREVfUVVFUllfUlVMRV9OQU1FIiwibm9kZVF1ZXJ5Tm9kZSIsImdldFRvSW50ZWdlck5vZGUiLCJUT19JTlRFR0VSX1JVTEVfTkFNRSIsInRvSW50ZWdlck5vZGUiLCJnZXROb2Rlc1F1ZXJ5Tm9kZSIsIk5PREVTX1FVRVJZX1JVTEVfTkFNRSIsIm5vZGVTUXVlcnlOb2RlIiwiZ2V0VHJ5SW50ZWdlck5vZGUiLCJUUllfSU5URUdFUl9SVUxFX05BTUUiLCJ0cnlJbnRlZ2VyTm9kZSIsImdldFJldHVybkJsb2NrTm9kZSIsIlJFVFVSTl9CTE9DS19SVUxFX05BTUUiLCJyZXR1cm5CbG9ja05vZGUiLCJnZXRQcm9jZWR1cmVDYWxsTm9kZSIsIlBST0NFRFVSRV9DQUxMX1JVTEVfTkFNRSIsInByb2NlZHVyZUNhbGxOb2RlIiwiZnJvbVJ1bGVOYW1lQ2hpbGROb2Rlc09wYWNpdHlBbmRQcmVjZWRlbmNlIiwiY2hpbGROb2RlcyIsIm9wYWNpdHkiLCJwcmVjZWRlbmNlIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFpQkE7OztlQUFxQkE7OztnQ0FmVzsyQkFhUztBQUUxQixNQUFNQSx1QkFBdUJDLCtCQUFlO0lBQ3pEQyxjQUFjO1FBQ1osTUFBTUMsV0FBV0MseUJBQWMsRUFDekJDLFdBQVcsSUFBSSxDQUFDQyxpQkFBaUIsQ0FBQ0g7UUFFeEMsT0FBT0U7SUFDVDtJQUVBRSxjQUFjO1FBQ1osTUFBTUosV0FBV0sseUJBQWMsRUFDekJDLFdBQVcsSUFBSSxDQUFDSCxpQkFBaUIsQ0FBQ0g7UUFFeEMsT0FBT007SUFDVDtJQUVBQyxlQUFlO1FBQ2IsTUFBTVAsV0FBV1EsMEJBQWUsRUFDMUJDLFlBQVksSUFBSSxDQUFDTixpQkFBaUIsQ0FBQ0g7UUFFekMsT0FBT1M7SUFDVDtJQUVBQyxnQkFBZ0I7UUFDZCxNQUFNVixXQUFXVywyQkFBZ0IsRUFDM0JDLGFBQWEsSUFBSSxDQUFDVCxpQkFBaUIsQ0FBQ0g7UUFFMUMsT0FBT1k7SUFDVDtJQUVBQyxpQkFBaUI7UUFDZixNQUFNYixXQUFXYyw0QkFBaUIsRUFDNUJDLGNBQWMsSUFBSSxDQUFDWixpQkFBaUIsQ0FBQ0g7UUFFM0MsT0FBT2U7SUFDVDtJQUVBQyxrQkFBa0I7UUFDaEIsTUFBTWhCLFdBQVdpQiw4QkFBbUIsRUFDOUJDLGVBQWUsSUFBSSxDQUFDZixpQkFBaUIsQ0FBQ0g7UUFFNUMsT0FBT2tCO0lBQ1Q7SUFFQUMsbUJBQW1CO1FBQ2pCLE1BQU1uQixXQUFXb0IsK0JBQW9CLEVBQy9CQyxnQkFBZ0IsSUFBSSxDQUFDbEIsaUJBQWlCLENBQUNIO1FBRTdDLE9BQU9xQjtJQUNUO0lBRUFDLG1CQUFtQjtRQUNqQixNQUFNdEIsV0FBV3VCLCtCQUFvQixFQUNuQ0MsZ0JBQWdCLElBQUksQ0FBQ3JCLGlCQUFpQixDQUFDSDtRQUV6QyxPQUFPd0I7SUFDVDtJQUVBQyxvQkFBb0I7UUFDbEIsTUFBTXpCLFdBQVcwQixnQ0FBcUIsRUFDaENDLGlCQUFpQixJQUFJLENBQUN4QixpQkFBaUIsQ0FBQ0g7UUFFOUMsT0FBTzJCO0lBQ1Q7SUFFQUMsb0JBQW9CO1FBQ2xCLE1BQU01QixXQUFXNkIsZ0NBQXFCLEVBQ2hDQyxpQkFBaUIsSUFBSSxDQUFDM0IsaUJBQWlCLENBQUNIO1FBRTlDLE9BQU84QjtJQUNUO0lBRUFDLHFCQUFxQjtRQUNuQixNQUFNL0IsV0FBV2dDLGlDQUFzQixFQUNqQ0Msa0JBQWtCLElBQUksQ0FBQzlCLGlCQUFpQixDQUFDSDtRQUUvQyxPQUFPaUM7SUFDVDtJQUVBQyx1QkFBdUI7UUFDckIsTUFBTWxDLFdBQVdtQyxtQ0FBd0IsRUFDbkNDLG9CQUFvQixJQUFJLENBQUNqQyxpQkFBaUIsQ0FBQ0g7UUFFakQsT0FBT29DO0lBQ1Q7SUFFQSxPQUFPQywyQ0FBMkNyQyxRQUFRLEVBQUVzQyxVQUFVLEVBQUVDLE9BQU8sRUFBRUMsVUFBVSxFQUFFO1FBQUUsT0FBTzFDLCtCQUFlLENBQUN1QywwQ0FBMEMsQ0FBQ3hDLGdCQUFnQkcsVUFBVXNDLFlBQVlDLFNBQVNDO0lBQWE7QUFDL04ifQ==
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "default", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return LengthOfNode;
9
+ }
10
+ });
11
+ const _occamlanguages = require("occam-languages");
12
+ const _ruleNames = require("../ruleNames");
13
+ class LengthOfNode extends _occamlanguages.NonTerminalNode {
14
+ getVariableNode() {
15
+ const ruleName = _ruleNames.VARIABLE_RULE_NAME, variableNode = this.getNodeByRuleName(ruleName);
16
+ return variableNode;
17
+ }
18
+ static fromRuleNameChildNodesOpacityAndPrecedence(ruleName, childNodes, opacity, precedence) {
19
+ return _occamlanguages.NonTerminalNode.fromRuleNameChildNodesOpacityAndPrecedence(LengthOfNode, ruleName, childNodes, opacity, precedence);
20
+ }
21
+ }
22
+
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ub2RlL2xlbmd0aE9mLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBOb25UZXJtaW5hbE5vZGUgfSBmcm9tIFwib2NjYW0tbGFuZ3VhZ2VzXCI7XG5cbmltcG9ydCB7IFZBUklBQkxFX1JVTEVfTkFNRSB9IGZyb20gXCIuLi9ydWxlTmFtZXNcIjtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTGVuZ3RoT2ZOb2RlIGV4dGVuZHMgTm9uVGVybWluYWxOb2RlIHtcbiAgZ2V0VmFyaWFibGVOb2RlKCkge1xuICAgIGNvbnN0IHJ1bGVOYW1lID0gVkFSSUFCTEVfUlVMRV9OQU1FLFxuICAgICAgICAgIHZhcmlhYmxlTm9kZSA9IHRoaXMuZ2V0Tm9kZUJ5UnVsZU5hbWUocnVsZU5hbWUpO1xuXG4gICAgcmV0dXJuIHZhcmlhYmxlTm9kZTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tUnVsZU5hbWVDaGlsZE5vZGVzT3BhY2l0eUFuZFByZWNlZGVuY2UocnVsZU5hbWUsIGNoaWxkTm9kZXMsIG9wYWNpdHksIHByZWNlZGVuY2UpIHsgcmV0dXJuIE5vblRlcm1pbmFsTm9kZS5mcm9tUnVsZU5hbWVDaGlsZE5vZGVzT3BhY2l0eUFuZFByZWNlZGVuY2UoTGVuZ3RoT2ZOb2RlLCBydWxlTmFtZSwgY2hpbGROb2Rlcywgb3BhY2l0eSwgcHJlY2VkZW5jZSk7IH1cbn1cbiJdLCJuYW1lcyI6WyJMZW5ndGhPZk5vZGUiLCJOb25UZXJtaW5hbE5vZGUiLCJnZXRWYXJpYWJsZU5vZGUiLCJydWxlTmFtZSIsIlZBUklBQkxFX1JVTEVfTkFNRSIsInZhcmlhYmxlTm9kZSIsImdldE5vZGVCeVJ1bGVOYW1lIiwiZnJvbVJ1bGVOYW1lQ2hpbGROb2Rlc09wYWNpdHlBbmRQcmVjZWRlbmNlIiwiY2hpbGROb2RlcyIsIm9wYWNpdHkiLCJwcmVjZWRlbmNlIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFNQTs7O2VBQXFCQTs7O2dDQUpXOzJCQUVHO0FBRXBCLE1BQU1BLHFCQUFxQkMsK0JBQWU7SUFDdkRDLGtCQUFrQjtRQUNoQixNQUFNQyxXQUFXQyw2QkFBa0IsRUFDN0JDLGVBQWUsSUFBSSxDQUFDQyxpQkFBaUIsQ0FBQ0g7UUFFNUMsT0FBT0U7SUFDVDtJQUVBLE9BQU9FLDJDQUEyQ0osUUFBUSxFQUFFSyxVQUFVLEVBQUVDLE9BQU8sRUFBRUMsVUFBVSxFQUFFO1FBQUUsT0FBT1QsK0JBQWUsQ0FBQ00sMENBQTBDLENBQUNQLGNBQWNHLFVBQVVLLFlBQVlDLFNBQVNDO0lBQWE7QUFDN04ifQ==
@@ -8,7 +8,9 @@ Object.defineProperty(exports, "default", {
8
8
  return NominalValue;
9
9
  }
10
10
  });
11
+ const _occamlexers = require("occam-lexers");
11
12
  const _constants = require("./constants");
13
+ const { endOfLine, noWhitespace } = _occamlexers.specialSymbols;
12
14
  class NominalValue {
13
15
  constructor(context, string, node){
14
16
  this.context = context;
@@ -29,7 +31,7 @@ class NominalValue {
29
31
  return matches;
30
32
  }
31
33
  static fromNode(node, context) {
32
- const string = context.nodeAsString(node), nominalValue = new NominalValue(context, string, node);
34
+ const string = stringFromNode(node, context), nominalValue = new NominalValue(context, string, node);
33
35
  return nominalValue;
34
36
  }
35
37
  static fromNothing() {
@@ -51,5 +53,44 @@ function matchNodes(nodeA, nodeB) {
51
53
  }
52
54
  return nodesMatch;
53
55
  }
56
+ function stringFromNode(node, context) {
57
+ let string;
58
+ const nodeEndOfLineNode = isNodeEndOfLineNode(node), nodeNoWhitespaceNode = isNodeNoWhitespaceNode(node);
59
+ if (false) {
60
+ ///
61
+ } else if (nodeEndOfLineNode) {
62
+ string = endOfLine; ///
63
+ } else if (nodeNoWhitespaceNode) {
64
+ string = noWhitespace; ///
65
+ } else {
66
+ string = context.nodeAsString(node);
67
+ }
68
+ return string;
69
+ }
70
+ function isNodeEndOfLineNode(node) {
71
+ let nodeEndOfLineNode = false;
72
+ const nodeTerminalNode = node.isTerminalNode();
73
+ if (nodeTerminalNode) {
74
+ const terminalNode = node, significantToken = terminalNode.getSignificantToken();
75
+ if (significantToken !== null) {
76
+ const significantTokenEndOfLineToken = significantToken.isEndOfLineToken();
77
+ if (significantTokenEndOfLineToken) {
78
+ nodeEndOfLineNode = true;
79
+ }
80
+ }
81
+ }
82
+ return nodeEndOfLineNode;
83
+ }
84
+ function isNodeNoWhitespaceNode(node) {
85
+ let nodeNoWhitespaceNode = false;
86
+ const nodeTerminalNode = node.isTerminalNode();
87
+ if (nodeTerminalNode) {
88
+ const terminalNode = node, terminLNodeNoWhitespaceNode = terminalNode.isNoWhitespaceNode();
89
+ if (terminLNodeNoWhitespaceNode) {
90
+ nodeNoWhitespaceNode = true;
91
+ }
92
+ }
93
+ return nodeNoWhitespaceNode;
94
+ }
54
95
 
55
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9ub21pbmFsVmFsdWUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IE5VTEwgfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTm9taW5hbFZhbHVlIHtcbiAgY29uc3RydWN0b3IoY29udGV4dCwgc3RyaW5nLCBub2RlKSB7XG4gICAgdGhpcy5jb250ZXh0ID0gY29udGV4dDtcbiAgICB0aGlzLnN0cmluZyA9IHN0cmluZztcbiAgICB0aGlzLm5vZGUgPSBub2RlO1xuICB9XG5cbiAgZ2V0Q29udGV4dCgpIHtcbiAgICByZXR1cm4gdGhpcy5jb250ZXh0O1xuICB9XG5cbiAgZ2V0U3RyaW5nKCkge1xuICAgIHJldHVybiB0aGlzLnN0cmluZztcbiAgfVxuXG4gIGdldE5vZGUoKSB7XG4gICAgcmV0dXJuIHRoaXMubm9kZTtcbiAgfVxuXG4gIG1hdGNoKG5vbWluYWxWYWx1ZSkge1xuICAgIGNvbnN0IG5vZGUgPSBub21pbmFsVmFsdWUuZ2V0Tm9kZSgpLFxuICAgICAgICAgIG5vZGVBID0gbm9kZSwgLy8vXG4gICAgICAgICAgbm9kZUIgPSB0aGlzLm5vZGUsICAvLy9cbiAgICAgICAgICBub2Rlc01hdGNoID0gbWF0Y2hOb2Rlcyhub2RlQSwgbm9kZUIpLFxuICAgICAgICAgIG1hdGNoZXMgPSBub2Rlc01hdGNoOyAvLy9cblxuICAgIHJldHVybiBtYXRjaGVzO1xuICB9XG5cbiAgc3RhdGljIGZyb21Ob2RlKG5vZGUsIGNvbnRleHQpIHtcbiAgICBjb25zdCBzdHJpbmcgPSBjb250ZXh0Lm5vZGVBc1N0cmluZyhub2RlKSxcbiAgICAgICAgICBub21pbmFsVmFsdWUgPSBuZXcgTm9taW5hbFZhbHVlKGNvbnRleHQsIHN0cmluZywgbm9kZSk7XG5cbiAgICByZXR1cm4gbm9taW5hbFZhbHVlO1xuICB9XG5cbiAgc3RhdGljIGZyb21Ob3RoaW5nKCkge1xuICAgIGNvbnN0IGNvbnRleHQgPSBudWxsLFxuICAgICAgICAgIHN0cmluZyA9IE5VTEwsXG4gICAgICAgICAgbm9kZSA9IG51bGwsXG4gICAgICAgICAgbm9taW5hbFZhbHVlID0gbmV3IE5vbWluYWxWYWx1ZShjb250ZXh0LCBzdHJpbmcsIG5vZGUpO1xuXG4gICAgcmV0dXJuIG5vbWluYWxWYWx1ZTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tU3Vic3RpdHV0aW9uKHN1YnN0aXR1dGlvbikge1xuICAgIGNvbnN0IHJlcGxhY2VtZW50Tm9kZSA9IHN1YnN0aXR1dGlvbi5nZXRSZXBsYWNlbWVudE5vZGUoKSxcbiAgICAgICAgICBzcGVjaWZpY0NvbnRleHQgPSBzdWJzdGl0dXRpb24uZ2V0U3BlY2lmaWNDb250ZXh0KCksXG4gICAgICAgICAgbm9kZSA9IHJlcGxhY2VtZW50Tm9kZSwgLy8vXG4gICAgICAgICAgY29udGV4dCA9IHNwZWNpZmljQ29udGV4dCwgIC8vL1xuICAgICAgICAgIHN0cmluZyA9IGNvbnRleHQubm9kZUFzU3RyaW5nKG5vZGUpLFxuICAgICAgICAgIG5vbWluYWxWYWx1ZSA9IG5ldyBOb21pbmFsVmFsdWUoY29udGV4dCwgc3RyaW5nLCBub2RlKTtcblxuICAgIHJldHVybiBub21pbmFsVmFsdWU7XG4gIH1cbn1cblxuZnVuY3Rpb24gbWF0Y2hOb2Rlcyhub2RlQSwgbm9kZUIpIHtcbiAgbGV0IG5vZGVzTWF0Y2g7XG5cbiAgaWYgKChub2RlQSA9PT0gbnVsbCkgfHwgKG5vZGVCID09PSBudWxsKSkge1xuICAgIG5vZGVzTWF0Y2ggPSAobm9kZUEgPT09IG5vZGVCKTtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCBub2RlQU1hdGNoZXNOb2RlQiA9IG5vZGVBLm1hdGNoKG5vZGVCKTtcblxuICAgIG5vZGVzTWF0Y2ggPSBub2RlQU1hdGNoZXNOb2RlQjsgIC8vL1xuICB9XG5cbiAgcmV0dXJuIG5vZGVzTWF0Y2g7XG59XG4iXSwibmFtZXMiOlsiTm9taW5hbFZhbHVlIiwiY29udGV4dCIsInN0cmluZyIsIm5vZGUiLCJnZXRDb250ZXh0IiwiZ2V0U3RyaW5nIiwiZ2V0Tm9kZSIsIm1hdGNoIiwibm9taW5hbFZhbHVlIiwibm9kZUEiLCJub2RlQiIsIm5vZGVzTWF0Y2giLCJtYXRjaE5vZGVzIiwibWF0Y2hlcyIsImZyb21Ob2RlIiwibm9kZUFzU3RyaW5nIiwiZnJvbU5vdGhpbmciLCJOVUxMIiwiZnJvbVN1YnN0aXR1dGlvbiIsInN1YnN0aXR1dGlvbiIsInJlcGxhY2VtZW50Tm9kZSIsImdldFJlcGxhY2VtZW50Tm9kZSIsInNwZWNpZmljQ29udGV4dCIsImdldFNwZWNpZmljQ29udGV4dCIsIm5vZGVBTWF0Y2hlc05vZGVCIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFJQTs7O2VBQXFCQTs7OzJCQUZBO0FBRU4sTUFBTUE7SUFDbkIsWUFBWUMsT0FBTyxFQUFFQyxNQUFNLEVBQUVDLElBQUksQ0FBRTtRQUNqQyxJQUFJLENBQUNGLE9BQU8sR0FBR0E7UUFDZixJQUFJLENBQUNDLE1BQU0sR0FBR0E7UUFDZCxJQUFJLENBQUNDLElBQUksR0FBR0E7SUFDZDtJQUVBQyxhQUFhO1FBQ1gsT0FBTyxJQUFJLENBQUNILE9BQU87SUFDckI7SUFFQUksWUFBWTtRQUNWLE9BQU8sSUFBSSxDQUFDSCxNQUFNO0lBQ3BCO0lBRUFJLFVBQVU7UUFDUixPQUFPLElBQUksQ0FBQ0gsSUFBSTtJQUNsQjtJQUVBSSxNQUFNQyxZQUFZLEVBQUU7UUFDbEIsTUFBTUwsT0FBT0ssYUFBYUYsT0FBTyxJQUMzQkcsUUFBUU4sTUFDUk8sUUFBUSxJQUFJLENBQUNQLElBQUksRUFDakJRLGFBQWFDLFdBQVdILE9BQU9DLFFBQy9CRyxVQUFVRixZQUFZLEdBQUc7UUFFL0IsT0FBT0U7SUFDVDtJQUVBLE9BQU9DLFNBQVNYLElBQUksRUFBRUYsT0FBTyxFQUFFO1FBQzdCLE1BQU1DLFNBQVNELFFBQVFjLFlBQVksQ0FBQ1osT0FDOUJLLGVBQWUsSUFBSVIsYUFBYUMsU0FBU0MsUUFBUUM7UUFFdkQsT0FBT0s7SUFDVDtJQUVBLE9BQU9RLGNBQWM7UUFDbkIsTUFBTWYsVUFBVSxNQUNWQyxTQUFTZSxlQUFJLEVBQ2JkLE9BQU8sTUFDUEssZUFBZSxJQUFJUixhQUFhQyxTQUFTQyxRQUFRQztRQUV2RCxPQUFPSztJQUNUO0lBRUEsT0FBT1UsaUJBQWlCQyxZQUFZLEVBQUU7UUFDcEMsTUFBTUMsa0JBQWtCRCxhQUFhRSxrQkFBa0IsSUFDakRDLGtCQUFrQkgsYUFBYUksa0JBQWtCLElBQ2pEcEIsT0FBT2lCLGlCQUNQbkIsVUFBVXFCLGlCQUNWcEIsU0FBU0QsUUFBUWMsWUFBWSxDQUFDWixPQUM5QkssZUFBZSxJQUFJUixhQUFhQyxTQUFTQyxRQUFRQztRQUV2RCxPQUFPSztJQUNUO0FBQ0Y7QUFFQSxTQUFTSSxXQUFXSCxLQUFLLEVBQUVDLEtBQUs7SUFDOUIsSUFBSUM7SUFFSixJQUFJLEFBQUNGLFVBQVUsUUFBVUMsVUFBVSxNQUFPO1FBQ3hDQyxhQUFjRixVQUFVQztJQUMxQixPQUFPO1FBQ0wsTUFBTWMsb0JBQW9CZixNQUFNRixLQUFLLENBQUNHO1FBRXRDQyxhQUFhYSxtQkFBb0IsR0FBRztJQUN0QztJQUVBLE9BQU9iO0FBQ1QifQ==
96
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9ub21pbmFsVmFsdWUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IHNwZWNpYWxTeW1ib2xzIH0gZnJvbSBcIm9jY2FtLWxleGVyc1wiO1xuXG5pbXBvcnQgeyBOVUxMIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5cbmNvbnN0IHsgZW5kT2ZMaW5lLCBub1doaXRlc3BhY2UgfSA9IHNwZWNpYWxTeW1ib2xzO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBOb21pbmFsVmFsdWUge1xuICBjb25zdHJ1Y3Rvcihjb250ZXh0LCBzdHJpbmcsIG5vZGUpIHtcbiAgICB0aGlzLmNvbnRleHQgPSBjb250ZXh0O1xuICAgIHRoaXMuc3RyaW5nID0gc3RyaW5nO1xuICAgIHRoaXMubm9kZSA9IG5vZGU7XG4gIH1cblxuICBnZXRDb250ZXh0KCkge1xuICAgIHJldHVybiB0aGlzLmNvbnRleHQ7XG4gIH1cblxuICBnZXRTdHJpbmcoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RyaW5nO1xuICB9XG5cbiAgZ2V0Tm9kZSgpIHtcbiAgICByZXR1cm4gdGhpcy5ub2RlO1xuICB9XG5cbiAgbWF0Y2gobm9taW5hbFZhbHVlKSB7XG4gICAgY29uc3Qgbm9kZSA9IG5vbWluYWxWYWx1ZS5nZXROb2RlKCksXG4gICAgICAgICAgbm9kZUEgPSBub2RlLCAvLy9cbiAgICAgICAgICBub2RlQiA9IHRoaXMubm9kZSwgIC8vL1xuICAgICAgICAgIG5vZGVzTWF0Y2ggPSBtYXRjaE5vZGVzKG5vZGVBLCBub2RlQiksXG4gICAgICAgICAgbWF0Y2hlcyA9IG5vZGVzTWF0Y2g7IC8vL1xuXG4gICAgcmV0dXJuIG1hdGNoZXM7XG4gIH1cblxuICBzdGF0aWMgZnJvbU5vZGUobm9kZSwgY29udGV4dCkge1xuICAgIGNvbnN0IHN0cmluZyA9IHN0cmluZ0Zyb21Ob2RlKG5vZGUsIGNvbnRleHQpLFxuICAgICAgICAgIG5vbWluYWxWYWx1ZSA9IG5ldyBOb21pbmFsVmFsdWUoY29udGV4dCwgc3RyaW5nLCBub2RlKTtcblxuICAgIHJldHVybiBub21pbmFsVmFsdWU7XG4gIH1cblxuICBzdGF0aWMgZnJvbU5vdGhpbmcoKSB7XG4gICAgY29uc3QgY29udGV4dCA9IG51bGwsXG4gICAgICAgICAgc3RyaW5nID0gTlVMTCxcbiAgICAgICAgICBub2RlID0gbnVsbCxcbiAgICAgICAgICBub21pbmFsVmFsdWUgPSBuZXcgTm9taW5hbFZhbHVlKGNvbnRleHQsIHN0cmluZywgbm9kZSk7XG5cbiAgICByZXR1cm4gbm9taW5hbFZhbHVlO1xuICB9XG5cbiAgc3RhdGljIGZyb21TdWJzdGl0dXRpb24oc3Vic3RpdHV0aW9uKSB7XG4gICAgY29uc3QgcmVwbGFjZW1lbnROb2RlID0gc3Vic3RpdHV0aW9uLmdldFJlcGxhY2VtZW50Tm9kZSgpLFxuICAgICAgICAgIHNwZWNpZmljQ29udGV4dCA9IHN1YnN0aXR1dGlvbi5nZXRTcGVjaWZpY0NvbnRleHQoKSxcbiAgICAgICAgICBub2RlID0gcmVwbGFjZW1lbnROb2RlLCAvLy9cbiAgICAgICAgICBjb250ZXh0ID0gc3BlY2lmaWNDb250ZXh0LCAgLy8vXG4gICAgICAgICAgc3RyaW5nID0gY29udGV4dC5ub2RlQXNTdHJpbmcobm9kZSksXG4gICAgICAgICAgbm9taW5hbFZhbHVlID0gbmV3IE5vbWluYWxWYWx1ZShjb250ZXh0LCBzdHJpbmcsIG5vZGUpO1xuXG4gICAgcmV0dXJuIG5vbWluYWxWYWx1ZTtcbiAgfVxufVxuXG5mdW5jdGlvbiBtYXRjaE5vZGVzKG5vZGVBLCBub2RlQikge1xuICBsZXQgbm9kZXNNYXRjaDtcblxuICBpZiAoKG5vZGVBID09PSBudWxsKSB8fCAobm9kZUIgPT09IG51bGwpKSB7XG4gICAgbm9kZXNNYXRjaCA9IChub2RlQSA9PT0gbm9kZUIpO1xuICB9IGVsc2Uge1xuICAgIGNvbnN0IG5vZGVBTWF0Y2hlc05vZGVCID0gbm9kZUEubWF0Y2gobm9kZUIpO1xuXG4gICAgbm9kZXNNYXRjaCA9IG5vZGVBTWF0Y2hlc05vZGVCOyAgLy8vXG4gIH1cblxuICByZXR1cm4gbm9kZXNNYXRjaDtcbn1cblxuZnVuY3Rpb24gc3RyaW5nRnJvbU5vZGUobm9kZSwgY29udGV4dCkge1xuICBsZXQgc3RyaW5nO1xuXG4gIGNvbnN0IG5vZGVFbmRPZkxpbmVOb2RlID0gaXNOb2RlRW5kT2ZMaW5lTm9kZShub2RlKSxcbiAgICAgICAgbm9kZU5vV2hpdGVzcGFjZU5vZGUgPSBpc05vZGVOb1doaXRlc3BhY2VOb2RlKG5vZGUpO1xuXG4gIGlmIChmYWxzZSkge1xuICAgICAgLy8vXG4gIH1cbiAgZWxzZSBpZiAobm9kZUVuZE9mTGluZU5vZGUpIHtcbiAgICBzdHJpbmcgPSBlbmRPZkxpbmU7ICAvLy9cbiAgfVxuICBlbHNlIGlmIChub2RlTm9XaGl0ZXNwYWNlTm9kZSkge1xuICAgIHN0cmluZyA9IG5vV2hpdGVzcGFjZTsgIC8vL1xuICB9IGVsc2Uge1xuICAgIHN0cmluZyA9IGNvbnRleHQubm9kZUFzU3RyaW5nKG5vZGUpO1xuICB9XG5cbiAgcmV0dXJuIHN0cmluZztcbn1cblxuZnVuY3Rpb24gaXNOb2RlRW5kT2ZMaW5lTm9kZShub2RlKSB7XG4gIGxldCBub2RlRW5kT2ZMaW5lTm9kZSA9IGZhbHNlO1xuXG4gIGNvbnN0IG5vZGVUZXJtaW5hbE5vZGUgPSBub2RlLmlzVGVybWluYWxOb2RlKCk7XG5cbiAgaWYgKG5vZGVUZXJtaW5hbE5vZGUpIHtcbiAgICBjb25zdCB0ZXJtaW5hbE5vZGUgPSBub2RlLCAgLy8vXG4gICAgICAgICAgc2lnbmlmaWNhbnRUb2tlbiA9IHRlcm1pbmFsTm9kZS5nZXRTaWduaWZpY2FudFRva2VuKCk7XG5cbiAgICBpZiAoc2lnbmlmaWNhbnRUb2tlbiAhPT0gbnVsbCkge1xuICAgICAgY29uc3Qgc2lnbmlmaWNhbnRUb2tlbkVuZE9mTGluZVRva2VuID0gc2lnbmlmaWNhbnRUb2tlbi5pc0VuZE9mTGluZVRva2VuKCk7XG5cbiAgICAgIGlmIChzaWduaWZpY2FudFRva2VuRW5kT2ZMaW5lVG9rZW4pIHtcbiAgICAgICAgbm9kZUVuZE9mTGluZU5vZGUgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBub2RlRW5kT2ZMaW5lTm9kZTtcbn1cblxuZnVuY3Rpb24gaXNOb2RlTm9XaGl0ZXNwYWNlTm9kZShub2RlKSB7XG4gIGxldCBub2RlTm9XaGl0ZXNwYWNlTm9kZSA9IGZhbHNlO1xuXG4gIGNvbnN0IG5vZGVUZXJtaW5hbE5vZGUgPSBub2RlLmlzVGVybWluYWxOb2RlKCk7XG5cbiAgaWYgKG5vZGVUZXJtaW5hbE5vZGUpIHtcbiAgICBjb25zdCB0ZXJtaW5hbE5vZGUgPSBub2RlLCAgLy8vXG4gICAgICAgICAgdGVybWluTE5vZGVOb1doaXRlc3BhY2VOb2RlID0gdGVybWluYWxOb2RlLmlzTm9XaGl0ZXNwYWNlTm9kZSgpO1xuXG4gICAgaWYgKHRlcm1pbkxOb2RlTm9XaGl0ZXNwYWNlTm9kZSkge1xuICAgICAgbm9kZU5vV2hpdGVzcGFjZU5vZGUgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBub2RlTm9XaGl0ZXNwYWNlTm9kZTtcbn1cbiJdLCJuYW1lcyI6WyJOb21pbmFsVmFsdWUiLCJlbmRPZkxpbmUiLCJub1doaXRlc3BhY2UiLCJzcGVjaWFsU3ltYm9scyIsImNvbnRleHQiLCJzdHJpbmciLCJub2RlIiwiZ2V0Q29udGV4dCIsImdldFN0cmluZyIsImdldE5vZGUiLCJtYXRjaCIsIm5vbWluYWxWYWx1ZSIsIm5vZGVBIiwibm9kZUIiLCJub2Rlc01hdGNoIiwibWF0Y2hOb2RlcyIsIm1hdGNoZXMiLCJmcm9tTm9kZSIsInN0cmluZ0Zyb21Ob2RlIiwiZnJvbU5vdGhpbmciLCJOVUxMIiwiZnJvbVN1YnN0aXR1dGlvbiIsInN1YnN0aXR1dGlvbiIsInJlcGxhY2VtZW50Tm9kZSIsImdldFJlcGxhY2VtZW50Tm9kZSIsInNwZWNpZmljQ29udGV4dCIsImdldFNwZWNpZmljQ29udGV4dCIsIm5vZGVBc1N0cmluZyIsIm5vZGVBTWF0Y2hlc05vZGVCIiwibm9kZUVuZE9mTGluZU5vZGUiLCJpc05vZGVFbmRPZkxpbmVOb2RlIiwibm9kZU5vV2hpdGVzcGFjZU5vZGUiLCJpc05vZGVOb1doaXRlc3BhY2VOb2RlIiwibm9kZVRlcm1pbmFsTm9kZSIsImlzVGVybWluYWxOb2RlIiwidGVybWluYWxOb2RlIiwic2lnbmlmaWNhbnRUb2tlbiIsImdldFNpZ25pZmljYW50VG9rZW4iLCJzaWduaWZpY2FudFRva2VuRW5kT2ZMaW5lVG9rZW4iLCJpc0VuZE9mTGluZVRva2VuIiwidGVybWluTE5vZGVOb1doaXRlc3BhY2VOb2RlIiwiaXNOb1doaXRlc3BhY2VOb2RlIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFRQTs7O2VBQXFCQTs7OzZCQU5VOzJCQUVWO0FBRXJCLE1BQU0sRUFBRUMsU0FBUyxFQUFFQyxZQUFZLEVBQUUsR0FBR0MsMkJBQWM7QUFFbkMsTUFBTUg7SUFDbkIsWUFBWUksT0FBTyxFQUFFQyxNQUFNLEVBQUVDLElBQUksQ0FBRTtRQUNqQyxJQUFJLENBQUNGLE9BQU8sR0FBR0E7UUFDZixJQUFJLENBQUNDLE1BQU0sR0FBR0E7UUFDZCxJQUFJLENBQUNDLElBQUksR0FBR0E7SUFDZDtJQUVBQyxhQUFhO1FBQ1gsT0FBTyxJQUFJLENBQUNILE9BQU87SUFDckI7SUFFQUksWUFBWTtRQUNWLE9BQU8sSUFBSSxDQUFDSCxNQUFNO0lBQ3BCO0lBRUFJLFVBQVU7UUFDUixPQUFPLElBQUksQ0FBQ0gsSUFBSTtJQUNsQjtJQUVBSSxNQUFNQyxZQUFZLEVBQUU7UUFDbEIsTUFBTUwsT0FBT0ssYUFBYUYsT0FBTyxJQUMzQkcsUUFBUU4sTUFDUk8sUUFBUSxJQUFJLENBQUNQLElBQUksRUFDakJRLGFBQWFDLFdBQVdILE9BQU9DLFFBQy9CRyxVQUFVRixZQUFZLEdBQUc7UUFFL0IsT0FBT0U7SUFDVDtJQUVBLE9BQU9DLFNBQVNYLElBQUksRUFBRUYsT0FBTyxFQUFFO1FBQzdCLE1BQU1DLFNBQVNhLGVBQWVaLE1BQU1GLFVBQzlCTyxlQUFlLElBQUlYLGFBQWFJLFNBQVNDLFFBQVFDO1FBRXZELE9BQU9LO0lBQ1Q7SUFFQSxPQUFPUSxjQUFjO1FBQ25CLE1BQU1mLFVBQVUsTUFDVkMsU0FBU2UsZUFBSSxFQUNiZCxPQUFPLE1BQ1BLLGVBQWUsSUFBSVgsYUFBYUksU0FBU0MsUUFBUUM7UUFFdkQsT0FBT0s7SUFDVDtJQUVBLE9BQU9VLGlCQUFpQkMsWUFBWSxFQUFFO1FBQ3BDLE1BQU1DLGtCQUFrQkQsYUFBYUUsa0JBQWtCLElBQ2pEQyxrQkFBa0JILGFBQWFJLGtCQUFrQixJQUNqRHBCLE9BQU9pQixpQkFDUG5CLFVBQVVxQixpQkFDVnBCLFNBQVNELFFBQVF1QixZQUFZLENBQUNyQixPQUM5QkssZUFBZSxJQUFJWCxhQUFhSSxTQUFTQyxRQUFRQztRQUV2RCxPQUFPSztJQUNUO0FBQ0Y7QUFFQSxTQUFTSSxXQUFXSCxLQUFLLEVBQUVDLEtBQUs7SUFDOUIsSUFBSUM7SUFFSixJQUFJLEFBQUNGLFVBQVUsUUFBVUMsVUFBVSxNQUFPO1FBQ3hDQyxhQUFjRixVQUFVQztJQUMxQixPQUFPO1FBQ0wsTUFBTWUsb0JBQW9CaEIsTUFBTUYsS0FBSyxDQUFDRztRQUV0Q0MsYUFBYWMsbUJBQW9CLEdBQUc7SUFDdEM7SUFFQSxPQUFPZDtBQUNUO0FBRUEsU0FBU0ksZUFBZVosSUFBSSxFQUFFRixPQUFPO0lBQ25DLElBQUlDO0lBRUosTUFBTXdCLG9CQUFvQkMsb0JBQW9CeEIsT0FDeEN5Qix1QkFBdUJDLHVCQUF1QjFCO0lBRXBELElBQUksT0FBTztJQUNQLEdBQUc7SUFDUCxPQUNLLElBQUl1QixtQkFBbUI7UUFDMUJ4QixTQUFTSixXQUFZLEdBQUc7SUFDMUIsT0FDSyxJQUFJOEIsc0JBQXNCO1FBQzdCMUIsU0FBU0gsY0FBZSxHQUFHO0lBQzdCLE9BQU87UUFDTEcsU0FBU0QsUUFBUXVCLFlBQVksQ0FBQ3JCO0lBQ2hDO0lBRUEsT0FBT0Q7QUFDVDtBQUVBLFNBQVN5QixvQkFBb0J4QixJQUFJO0lBQy9CLElBQUl1QixvQkFBb0I7SUFFeEIsTUFBTUksbUJBQW1CM0IsS0FBSzRCLGNBQWM7SUFFNUMsSUFBSUQsa0JBQWtCO1FBQ3BCLE1BQU1FLGVBQWU3QixNQUNmOEIsbUJBQW1CRCxhQUFhRSxtQkFBbUI7UUFFekQsSUFBSUQscUJBQXFCLE1BQU07WUFDN0IsTUFBTUUsaUNBQWlDRixpQkFBaUJHLGdCQUFnQjtZQUV4RSxJQUFJRCxnQ0FBZ0M7Z0JBQ2xDVCxvQkFBb0I7WUFDdEI7UUFDRjtJQUNGO0lBRUEsT0FBT0E7QUFDVDtBQUVBLFNBQVNHLHVCQUF1QjFCLElBQUk7SUFDbEMsSUFBSXlCLHVCQUF1QjtJQUUzQixNQUFNRSxtQkFBbUIzQixLQUFLNEIsY0FBYztJQUU1QyxJQUFJRCxrQkFBa0I7UUFDcEIsTUFBTUUsZUFBZTdCLE1BQ2ZrQyw4QkFBOEJMLGFBQWFNLGtCQUFrQjtRQUVuRSxJQUFJRCw2QkFBNkI7WUFDL0JULHVCQUF1QjtRQUN6QjtJQUNGO0lBRUEsT0FBT0E7QUFDVCJ9