occam-furtle 2.0.120 → 2.0.121

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. package/lib/dom/assignment/array.js +12 -12
  2. package/lib/dom/assignment/object.js +30 -30
  3. package/lib/dom/assignment/variable.js +13 -13
  4. package/lib/dom/block/return.js +9 -9
  5. package/lib/dom/comparison.js +28 -28
  6. package/lib/dom/every.js +25 -25
  7. package/lib/dom/expression/bitwise.js +186 -0
  8. package/lib/dom/expression/bracketed.js +149 -0
  9. package/lib/dom/expression/negated.js +166 -0
  10. package/lib/dom/expression.js +578 -0
  11. package/lib/dom/expressions.js +210 -0
  12. package/lib/dom/parameter/named.js +9 -9
  13. package/lib/dom/parameter.js +9 -9
  14. package/lib/dom/parameters/named.js +11 -11
  15. package/lib/dom/parameters.js +11 -11
  16. package/lib/dom/procedure/anonymous.js +7 -7
  17. package/lib/dom/procedure.js +12 -12
  18. package/lib/dom/procedureCall.js +17 -17
  19. package/lib/dom/query/node.js +19 -19
  20. package/lib/dom/query/nodes.js +19 -19
  21. package/lib/dom/reduce.js +32 -32
  22. package/lib/dom/some.js +25 -25
  23. package/lib/dom/statement/return.js +12 -12
  24. package/lib/dom/ternary.js +27 -27
  25. package/lib/dom/variable.js +30 -30
  26. package/lib/example/utilities/expressions.js +29 -0
  27. package/lib/example.js +4 -4
  28. package/lib/index.js +9 -9
  29. package/package.json +1 -1
  30. package/src/dom/assignment/array.js +14 -14
  31. package/src/dom/assignment/object.js +33 -33
  32. package/src/dom/assignment/variable.js +15 -15
  33. package/src/dom/block/return.js +7 -7
  34. package/src/dom/comparison.js +39 -39
  35. package/src/dom/every.js +25 -25
  36. package/src/dom/expression/bitwise.js +135 -0
  37. package/src/dom/expression/bracketed.js +73 -0
  38. package/src/dom/expression/negated.js +97 -0
  39. package/src/dom/{value.js → expression.js} +128 -128
  40. package/src/dom/expressions.js +138 -0
  41. package/src/dom/parameter/named.js +7 -7
  42. package/src/dom/parameter.js +7 -7
  43. package/src/dom/parameters/named.js +9 -9
  44. package/src/dom/parameters.js +9 -9
  45. package/src/dom/procedure/anonymous.js +10 -10
  46. package/src/dom/procedure.js +12 -12
  47. package/src/dom/procedureCall.js +19 -19
  48. package/src/dom/query/node.js +19 -19
  49. package/src/dom/query/nodes.js +19 -19
  50. package/src/dom/reduce.js +36 -36
  51. package/src/dom/some.js +25 -25
  52. package/src/dom/statement/return.js +14 -14
  53. package/src/dom/ternary.js +39 -39
  54. package/src/dom/variable.js +31 -31
  55. package/src/example/utilities/{values.js → expressions.js} +4 -4
  56. package/src/example.js +4 -4
  57. package/src/index.js +6 -6
  58. package/lib/dom/value/bitwise.js +0 -186
  59. package/lib/dom/value/bracketed.js +0 -149
  60. package/lib/dom/value/negated.js +0 -166
  61. package/lib/dom/value.js +0 -578
  62. package/lib/dom/values.js +0 -210
  63. package/lib/example/utilities/values.js +0 -29
  64. package/src/dom/value/bitwise.js +0 -135
  65. package/src/dom/value/bracketed.js +0 -73
  66. package/src/dom/value/negated.js +0 -97
  67. package/src/dom/values.js +0 -138
@@ -91,14 +91,14 @@ function _interop_require_wildcard(obj, nodeInterop) {
91
91
  return newObj;
92
92
  }
93
93
  var _Comparison;
94
- var terminalNodeQuery = (0, _query.nodeQuery)("/comparison/@*"), leftValueNodeQuery = (0, _query.nodeQuery)("/comparison/value[0]"), rightValueNodeQuery = (0, _query.nodeQuery)("/comparison/value[1]"), valueComparisonNodeQuery = (0, _query.nodeQuery)("/value/comparison");
94
+ var terminalNodeQuery = (0, _query.nodeQuery)("/comparison/@*"), leftExpressionNodeQuery = (0, _query.nodeQuery)("/comparison/expression[0]"), rightExpressionNodeQuery = (0, _query.nodeQuery)("/comparison/expression[1]"), expressionComparisonNodeQuery = (0, _query.nodeQuery)("/expression/comparison");
95
95
  var _default = (0, _dom.domAssigned)((_Comparison = /*#__PURE__*/ function() {
96
- function Comparison(string, negated, leftValue, rightValue) {
96
+ function Comparison(string, negated, leftExpression, rightExpression) {
97
97
  _class_call_check(this, Comparison);
98
98
  this.string = string;
99
99
  this.negated = negated;
100
- this.leftValue = leftValue;
101
- this.rightValue = rightValue;
100
+ this.leftExpression = leftExpression;
101
+ this.rightExpression = rightExpression;
102
102
  }
103
103
  _create_class(Comparison, [
104
104
  {
@@ -114,47 +114,47 @@ var _default = (0, _dom.domAssigned)((_Comparison = /*#__PURE__*/ function() {
114
114
  }
115
115
  },
116
116
  {
117
- key: "getLeftValue",
118
- value: function getLeftValue() {
119
- return this.leftValue;
117
+ key: "getLeftExpression",
118
+ value: function getLeftExpression() {
119
+ return this.leftExpression;
120
120
  }
121
121
  },
122
122
  {
123
- key: "getRightValue",
124
- value: function getRightValue() {
125
- return this.rightValue;
123
+ key: "getRightExpression",
124
+ value: function getRightExpression() {
125
+ return this.rightExpression;
126
126
  }
127
127
  },
128
128
  {
129
129
  key: "evaluate",
130
130
  value: function evaluate(context) {
131
- var value;
131
+ var expression;
132
132
  var comparisonString = this.string; ///
133
133
  context.trace("Evaluating the '".concat(comparisonString, "' comparison..."));
134
- var leftValue = this.leftValue.evaluate(context), rightValue = this.rightValue.evaluate(context), leftValueType = leftValue.getType(), rightValueType = rightValue.getType();
135
- if (leftValueType !== rightValueType) {
136
- var leftValueString = leftValue.asString(context), rightValueString = rightValue.asString(context), message = "The ".concat(leftValueString, " left value's type is '").concat(leftValueType, "' whereas the ").concat(rightValueString, " right value's type is '").concat(rightValueType, "'."), exception = _exception.default.fromMessage(message);
134
+ var leftExpression = this.leftExpression.evaluate(context), rightExpression = this.rightExpression.evaluate(context), leftExpressionType = leftExpression.getType(), rightExpressionType = rightExpression.getType();
135
+ if (leftExpressionType !== rightExpressionType) {
136
+ var leftExpressionString = leftExpression.asString(context), rightExpressionString = rightExpression.asString(context), message = "The ".concat(leftExpressionString, " left expression's type is '").concat(leftExpressionType, "' whereas the ").concat(rightExpressionString, " right expression's type is '").concat(rightExpressionType, "'."), exception = _exception.default.fromMessage(message);
137
137
  throw exception;
138
138
  }
139
- var leftValueEqualToRightValue = leftValue.isEqualTo(rightValue);
140
- var boolean = leftValueEqualToRightValue; ///
139
+ var leftExpressionEqualToRightExpression = leftExpression.isEqualTo(rightExpression);
140
+ var boolean = leftExpressionEqualToRightExpression; ///
141
141
  if (this.negated) {
142
142
  boolean = !boolean; ///
143
143
  }
144
- var Value = _dom.default.Value;
145
- value = Value.fromBoolean(boolean, context);
144
+ var Expression = _dom.default.Expression;
145
+ expression = Expression.fromBoolean(boolean, context);
146
146
  context.debug("...evaluated the '".concat(comparisonString, "' comparison."));
147
- return value;
147
+ return expression;
148
148
  }
149
149
  }
150
150
  ], [
151
151
  {
152
- key: "fromValueNode",
153
- value: function fromValueNode(valudNode, context) {
152
+ key: "fromExpressionNode",
153
+ value: function fromExpressionNode(valudNode, context) {
154
154
  var comparison = null;
155
- var valueComparisonNode = valueComparisonNodeQuery(valudNode);
156
- if (valueComparisonNode !== null) {
157
- var comparisonNode = valueComparisonNode; ///
155
+ var expressionComparisonNode = expressionComparisonNodeQuery(valudNode);
156
+ if (expressionComparisonNode !== null) {
157
+ var comparisonNode = expressionComparisonNode; ///
158
158
  comparison = comparisonFromComparisonNode(comparisonNode, context);
159
159
  }
160
160
  return comparison;
@@ -168,12 +168,12 @@ function negatedFromComparisonNode(comparisonNode) {
168
168
  return negated;
169
169
  }
170
170
  function comparisonFromComparisonNode(comparisonNode, context) {
171
- var Value = _dom.default.Value, Comparison = _dom.default.Comparison, leftValueNode = leftValueNodeQuery(comparisonNode), rightValueNode = rightValueNodeQuery(comparisonNode), rightValue = Value.fromValueNode(rightValueNode, context), leftValue = Value.fromValueNode(leftValueNode, context), negated = negatedFromComparisonNode(comparisonNode, context), string = stringFromNegatedLeftValueAndRightValue(negated, leftValue, rightValue, context), comparison = new Comparison(string, negated, leftValue, rightValue);
171
+ var Expression = _dom.default.Expression, Comparison = _dom.default.Comparison, leftExpressionNode = leftExpressionNodeQuery(comparisonNode), rightExpressionNode = rightExpressionNodeQuery(comparisonNode), rightExpression = Expression.fromExpressionNode(rightExpressionNode, context), leftExpression = Expression.fromExpressionNode(leftExpressionNode, context), negated = negatedFromComparisonNode(comparisonNode, context), string = stringFromNegatedLeftExpressionAndRightExpression(negated, leftExpression, rightExpression, context), comparison = new Comparison(string, negated, leftExpression, rightExpression);
172
172
  return comparison;
173
173
  }
174
- function stringFromNegatedLeftValueAndRightValue(negated, leftValue, rightValue, context) {
175
- var operatorString = negated ? _constants.EQUAL_TO : _constants.NOT_EQUAL_TO, leftValueString = leftValue.asString(context), rightValueString = rightValue.asString(context), string = "".concat(leftValueString, " ").concat(operatorString, " ").concat(rightValueString);
174
+ function stringFromNegatedLeftExpressionAndRightExpression(negated, leftExpression, rightExpression, context) {
175
+ var operatorString = negated ? _constants.EQUAL_TO : _constants.NOT_EQUAL_TO, leftExpressionString = leftExpression.asString(context), rightExpressionString = rightExpression.asString(context), string = "".concat(leftExpressionString, " ").concat(operatorString, " ").concat(rightExpressionString);
176
176
  return string;
177
177
  }
178
178
 
179
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kb20vY29tcGFyaXNvbi5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IGRvbSBmcm9tIFwiLi4vZG9tXCI7XG5pbXBvcnQgRXhjZXB0aW9uIGZyb20gXCIuLi9leGNlcHRpb25cIjtcblxuaW1wb3J0IHsgbm9kZVF1ZXJ5IH0gZnJvbSBcIi4uL3V0aWxpdGllcy9xdWVyeVwiO1xuaW1wb3J0IHsgZG9tQXNzaWduZWQgfSBmcm9tIFwiLi4vZG9tXCI7XG5pbXBvcnQgeyBFUVVBTF9UTywgTk9UX0VRVUFMX1RPIH0gZnJvbSBcIi4uL2NvbnN0YW50c1wiO1xuXG5jb25zdCB0ZXJtaW5hbE5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9jb21wYXJpc29uL0AqXCIpLFxuICAgICAgbGVmdFZhbHVlTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL2NvbXBhcmlzb24vdmFsdWVbMF1cIiksXG4gICAgICByaWdodFZhbHVlTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL2NvbXBhcmlzb24vdmFsdWVbMV1cIiksXG4gICAgICB2YWx1ZUNvbXBhcmlzb25Ob2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvdmFsdWUvY29tcGFyaXNvblwiKTtcblxuZXhwb3J0IGRlZmF1bHQgZG9tQXNzaWduZWQoY2xhc3MgQ29tcGFyaXNvbiB7XG4gIGNvbnN0cnVjdG9yKHN0cmluZywgbmVnYXRlZCwgbGVmdFZhbHVlLCByaWdodFZhbHVlKSB7XG4gICAgdGhpcy5zdHJpbmcgPSBzdHJpbmc7XG4gICAgdGhpcy5uZWdhdGVkID0gbmVnYXRlZDtcbiAgICB0aGlzLmxlZnRWYWx1ZSA9IGxlZnRWYWx1ZTtcbiAgICB0aGlzLnJpZ2h0VmFsdWUgPSByaWdodFZhbHVlO1xuICB9XG5cbiAgZ2V0U3RyaW5nKCkge1xuICAgIHJldHVybiB0aGlzLnN0cmluZztcbiAgfVxuXG4gIGlzTmVnYXRlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5uZWdhdGVkO1xuICB9XG5cbiAgZ2V0TGVmdFZhbHVlKCkge1xuICAgIHJldHVybiB0aGlzLmxlZnRWYWx1ZTtcbiAgfVxuXG4gIGdldFJpZ2h0VmFsdWUoKSB7XG4gICAgcmV0dXJuIHRoaXMucmlnaHRWYWx1ZTtcbiAgfVxuXG4gIGV2YWx1YXRlKGNvbnRleHQpIHtcbiAgICBsZXQgdmFsdWU7XG5cbiAgICBjb25zdCBjb21wYXJpc29uU3RyaW5nID0gdGhpcy5zdHJpbmc7IC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgRXZhbHVhdGluZyB0aGUgJyR7Y29tcGFyaXNvblN0cmluZ30nIGNvbXBhcmlzb24uLi5gKTtcblxuICAgIGNvbnN0IGxlZnRWYWx1ZSA9IHRoaXMubGVmdFZhbHVlLmV2YWx1YXRlKGNvbnRleHQpLFxuICAgICAgICAgIHJpZ2h0VmFsdWUgPSB0aGlzLnJpZ2h0VmFsdWUuZXZhbHVhdGUoY29udGV4dCksXG4gICAgICAgICAgbGVmdFZhbHVlVHlwZSA9IGxlZnRWYWx1ZS5nZXRUeXBlKCksXG4gICAgICAgICAgcmlnaHRWYWx1ZVR5cGUgPSByaWdodFZhbHVlLmdldFR5cGUoKTtcblxuICAgIGlmIChsZWZ0VmFsdWVUeXBlICE9PSByaWdodFZhbHVlVHlwZSkge1xuICAgICAgY29uc3QgbGVmdFZhbHVlU3RyaW5nID0gbGVmdFZhbHVlLmFzU3RyaW5nKGNvbnRleHQpLFxuICAgICAgICAgICAgcmlnaHRWYWx1ZVN0cmluZyA9IHJpZ2h0VmFsdWUuYXNTdHJpbmcoY29udGV4dCksXG4gICAgICAgICAgICBtZXNzYWdlID0gYFRoZSAke2xlZnRWYWx1ZVN0cmluZ30gbGVmdCB2YWx1ZSdzIHR5cGUgaXMgJyR7bGVmdFZhbHVlVHlwZX0nIHdoZXJlYXMgdGhlICR7cmlnaHRWYWx1ZVN0cmluZ30gcmlnaHQgdmFsdWUncyB0eXBlIGlzICcke3JpZ2h0VmFsdWVUeXBlfScuYCxcbiAgICAgICAgICAgIGV4Y2VwdGlvbiA9IEV4Y2VwdGlvbi5mcm9tTWVzc2FnZShtZXNzYWdlKTtcblxuICAgICAgdGhyb3cgZXhjZXB0aW9uO1xuICAgIH1cblxuICAgIGNvbnN0IGxlZnRWYWx1ZUVxdWFsVG9SaWdodFZhbHVlID0gbGVmdFZhbHVlLmlzRXF1YWxUbyhyaWdodFZhbHVlKTtcblxuICAgIGxldCBib29sZWFuID0gbGVmdFZhbHVlRXF1YWxUb1JpZ2h0VmFsdWU7IC8vL1xuXG4gICAgaWYgKHRoaXMubmVnYXRlZCkge1xuICAgICAgYm9vbGVhbiA9ICFib29sZWFuOyAvLy9cbiAgICB9XG5cbiAgICBjb25zdCB7IFZhbHVlIH0gPSBkb207XG5cbiAgICB2YWx1ZSA9IFZhbHVlLmZyb21Cb29sZWFuKGJvb2xlYW4sIGNvbnRleHQpO1xuXG4gICAgY29udGV4dC5kZWJ1ZyhgLi4uZXZhbHVhdGVkIHRoZSAnJHtjb21wYXJpc29uU3RyaW5nfScgY29tcGFyaXNvbi5gKTtcblxuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuXG4gIHN0YXRpYyBuYW1lID0gXCJDb21wYXJpc29uXCI7XG5cbiAgc3RhdGljIGZyb21WYWx1ZU5vZGUodmFsdWROb2RlLCBjb250ZXh0KSB7XG4gICAgbGV0IGNvbXBhcmlzb24gPSBudWxsO1xuXG4gICAgY29uc3QgdmFsdWVDb21wYXJpc29uTm9kZSA9IHZhbHVlQ29tcGFyaXNvbk5vZGVRdWVyeSh2YWx1ZE5vZGUpO1xuXG4gICAgaWYgKHZhbHVlQ29tcGFyaXNvbk5vZGUgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IGNvbXBhcmlzb25Ob2RlID0gdmFsdWVDb21wYXJpc29uTm9kZTsgLy8vXG5cbiAgICAgIGNvbXBhcmlzb24gPSBjb21wYXJpc29uRnJvbUNvbXBhcmlzb25Ob2RlKGNvbXBhcmlzb25Ob2RlLCBjb250ZXh0KTtcbiAgICB9XG5cbiAgICByZXR1cm4gY29tcGFyaXNvbjtcbiAgfVxufSk7XG5cbmZ1bmN0aW9uIG5lZ2F0ZWRGcm9tQ29tcGFyaXNvbk5vZGUoY29tcGFyaXNvbk5vZGUpIHtcbiAgY29uc3QgdGVybWluYWxOb2RlID0gdGVybWluYWxOb2RlUXVlcnkoY29tcGFyaXNvbk5vZGUpLFxuICAgICAgICB0ZXJtaW5hbE5vZGVDb250ZW50ID0gdGVybWluYWxOb2RlLmdldENvbnRlbnQoKSxcbiAgICAgICAgbmVnYXRlZCA9ICh0ZXJtaW5hbE5vZGVDb250ZW50ICE9PSBFUVVBTF9UTyk7XG5cbiAgcmV0dXJuIG5lZ2F0ZWQ7XG59XG5cbmZ1bmN0aW9uIGNvbXBhcmlzb25Gcm9tQ29tcGFyaXNvbk5vZGUoY29tcGFyaXNvbk5vZGUsIGNvbnRleHQpIHtcbiAgY29uc3QgeyBWYWx1ZSwgQ29tcGFyaXNvbiB9ID0gZG9tLFxuICAgICAgICBsZWZ0VmFsdWVOb2RlID0gbGVmdFZhbHVlTm9kZVF1ZXJ5KGNvbXBhcmlzb25Ob2RlKSxcbiAgICAgICAgcmlnaHRWYWx1ZU5vZGUgPSByaWdodFZhbHVlTm9kZVF1ZXJ5KGNvbXBhcmlzb25Ob2RlKSxcbiAgICAgICAgcmlnaHRWYWx1ZSA9IFZhbHVlLmZyb21WYWx1ZU5vZGUocmlnaHRWYWx1ZU5vZGUsIGNvbnRleHQpLFxuICAgICAgICBsZWZ0VmFsdWUgPSBWYWx1ZS5mcm9tVmFsdWVOb2RlKGxlZnRWYWx1ZU5vZGUsIGNvbnRleHQpLFxuICAgICAgICBuZWdhdGVkID0gbmVnYXRlZEZyb21Db21wYXJpc29uTm9kZShjb21wYXJpc29uTm9kZSwgY29udGV4dCksXG4gICAgICAgIHN0cmluZyA9IHN0cmluZ0Zyb21OZWdhdGVkTGVmdFZhbHVlQW5kUmlnaHRWYWx1ZShuZWdhdGVkLCBsZWZ0VmFsdWUsIHJpZ2h0VmFsdWUsIGNvbnRleHQpLFxuICAgICAgICBjb21wYXJpc29uID0gbmV3IENvbXBhcmlzb24oc3RyaW5nLCBuZWdhdGVkLCBsZWZ0VmFsdWUsIHJpZ2h0VmFsdWUpO1xuXG4gIHJldHVybiBjb21wYXJpc29uO1xufVxuXG5mdW5jdGlvbiBzdHJpbmdGcm9tTmVnYXRlZExlZnRWYWx1ZUFuZFJpZ2h0VmFsdWUobmVnYXRlZCwgbGVmdFZhbHVlLCByaWdodFZhbHVlLCBjb250ZXh0KSB7XG4gIGNvbnN0IG9wZXJhdG9yU3RyaW5nID0gbmVnYXRlZCA/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBFUVVBTF9UTyA6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgTk9UX0VRVUFMX1RPLFxuICAgICAgICBsZWZ0VmFsdWVTdHJpbmcgPSBsZWZ0VmFsdWUuYXNTdHJpbmcoY29udGV4dCksXG4gICAgICAgIHJpZ2h0VmFsdWVTdHJpbmcgPSByaWdodFZhbHVlLmFzU3RyaW5nKGNvbnRleHQpLFxuICAgICAgICBzdHJpbmcgPSBgJHtsZWZ0VmFsdWVTdHJpbmd9ICR7b3BlcmF0b3JTdHJpbmd9ICR7cmlnaHRWYWx1ZVN0cmluZ31gO1xuXG4gIHJldHVybiBzdHJpbmc7XG59XG4iXSwibmFtZXMiOlsidGVybWluYWxOb2RlUXVlcnkiLCJub2RlUXVlcnkiLCJsZWZ0VmFsdWVOb2RlUXVlcnkiLCJyaWdodFZhbHVlTm9kZVF1ZXJ5IiwidmFsdWVDb21wYXJpc29uTm9kZVF1ZXJ5IiwiZG9tQXNzaWduZWQiLCJDb21wYXJpc29uIiwic3RyaW5nIiwibmVnYXRlZCIsImxlZnRWYWx1ZSIsInJpZ2h0VmFsdWUiLCJnZXRTdHJpbmciLCJpc05lZ2F0ZWQiLCJnZXRMZWZ0VmFsdWUiLCJnZXRSaWdodFZhbHVlIiwiZXZhbHVhdGUiLCJjb250ZXh0IiwidmFsdWUiLCJjb21wYXJpc29uU3RyaW5nIiwidHJhY2UiLCJsZWZ0VmFsdWVUeXBlIiwiZ2V0VHlwZSIsInJpZ2h0VmFsdWVUeXBlIiwibGVmdFZhbHVlU3RyaW5nIiwiYXNTdHJpbmciLCJyaWdodFZhbHVlU3RyaW5nIiwibWVzc2FnZSIsImV4Y2VwdGlvbiIsIkV4Y2VwdGlvbiIsImZyb21NZXNzYWdlIiwibGVmdFZhbHVlRXF1YWxUb1JpZ2h0VmFsdWUiLCJpc0VxdWFsVG8iLCJib29sZWFuIiwiVmFsdWUiLCJkb20iLCJmcm9tQm9vbGVhbiIsImRlYnVnIiwiZnJvbVZhbHVlTm9kZSIsInZhbHVkTm9kZSIsImNvbXBhcmlzb24iLCJ2YWx1ZUNvbXBhcmlzb25Ob2RlIiwiY29tcGFyaXNvbk5vZGUiLCJjb21wYXJpc29uRnJvbUNvbXBhcmlzb25Ob2RlIiwibmFtZSIsIm5lZ2F0ZWRGcm9tQ29tcGFyaXNvbk5vZGUiLCJ0ZXJtaW5hbE5vZGUiLCJ0ZXJtaW5hbE5vZGVDb250ZW50IiwiZ2V0Q29udGVudCIsIkVRVUFMX1RPIiwibGVmdFZhbHVlTm9kZSIsInJpZ2h0VmFsdWVOb2RlIiwic3RyaW5nRnJvbU5lZ2F0ZWRMZWZ0VmFsdWVBbmRSaWdodFZhbHVlIiwib3BlcmF0b3JTdHJpbmciLCJOT1RfRVFVQUxfVE8iXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQWNBOzs7ZUFBQTs7OzJEQVpnQjtnRUFDTTtxQkFFSTt5QkFFYTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFdkMsSUFBTUEsb0JBQW9CQyxJQUFBQSxnQkFBUyxFQUFDLG1CQUM5QkMscUJBQXFCRCxJQUFBQSxnQkFBUyxFQUFDLHlCQUMvQkUsc0JBQXNCRixJQUFBQSxnQkFBUyxFQUFDLHlCQUNoQ0csMkJBQTJCSCxJQUFBQSxnQkFBUyxFQUFDO0lBRTNDLFdBQWVJLElBQUFBLGdCQUFXLCtCQUFDO2FBQU1DLFdBQ25CQyxNQUFNLEVBQUVDLE9BQU8sRUFBRUMsU0FBUyxFQUFFQyxVQUFVO2dDQURuQko7UUFFN0IsSUFBSSxDQUFDQyxNQUFNLEdBQUdBO1FBQ2QsSUFBSSxDQUFDQyxPQUFPLEdBQUdBO1FBQ2YsSUFBSSxDQUFDQyxTQUFTLEdBQUdBO1FBQ2pCLElBQUksQ0FBQ0MsVUFBVSxHQUFHQTs7OztZQUdwQkMsS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLE9BQU8sSUFBSSxDQUFDSixNQUFNO1lBQ3BCOzs7WUFFQUssS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLE9BQU8sSUFBSSxDQUFDSixPQUFPO1lBQ3JCOzs7WUFFQUssS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLE9BQU8sSUFBSSxD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
179
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kb20vY29tcGFyaXNvbi5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IGRvbSBmcm9tIFwiLi4vZG9tXCI7XG5pbXBvcnQgRXhjZXB0aW9uIGZyb20gXCIuLi9leGNlcHRpb25cIjtcblxuaW1wb3J0IHsgbm9kZVF1ZXJ5IH0gZnJvbSBcIi4uL3V0aWxpdGllcy9xdWVyeVwiO1xuaW1wb3J0IHsgZG9tQXNzaWduZWQgfSBmcm9tIFwiLi4vZG9tXCI7XG5pbXBvcnQgeyBFUVVBTF9UTywgTk9UX0VRVUFMX1RPIH0gZnJvbSBcIi4uL2NvbnN0YW50c1wiO1xuXG5jb25zdCB0ZXJtaW5hbE5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9jb21wYXJpc29uL0AqXCIpLFxuICAgICAgbGVmdEV4cHJlc3Npb25Ob2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvY29tcGFyaXNvbi9leHByZXNzaW9uWzBdXCIpLFxuICAgICAgcmlnaHRFeHByZXNzaW9uTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL2NvbXBhcmlzb24vZXhwcmVzc2lvblsxXVwiKSxcbiAgICAgIGV4cHJlc3Npb25Db21wYXJpc29uTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL2V4cHJlc3Npb24vY29tcGFyaXNvblwiKTtcblxuZXhwb3J0IGRlZmF1bHQgZG9tQXNzaWduZWQoY2xhc3MgQ29tcGFyaXNvbiB7XG4gIGNvbnN0cnVjdG9yKHN0cmluZywgbmVnYXRlZCwgbGVmdEV4cHJlc3Npb24sIHJpZ2h0RXhwcmVzc2lvbikge1xuICAgIHRoaXMuc3RyaW5nID0gc3RyaW5nO1xuICAgIHRoaXMubmVnYXRlZCA9IG5lZ2F0ZWQ7XG4gICAgdGhpcy5sZWZ0RXhwcmVzc2lvbiA9IGxlZnRFeHByZXNzaW9uO1xuICAgIHRoaXMucmlnaHRFeHByZXNzaW9uID0gcmlnaHRFeHByZXNzaW9uO1xuICB9XG5cbiAgZ2V0U3RyaW5nKCkge1xuICAgIHJldHVybiB0aGlzLnN0cmluZztcbiAgfVxuXG4gIGlzTmVnYXRlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5uZWdhdGVkO1xuICB9XG5cbiAgZ2V0TGVmdEV4cHJlc3Npb24oKSB7XG4gICAgcmV0dXJuIHRoaXMubGVmdEV4cHJlc3Npb247XG4gIH1cblxuICBnZXRSaWdodEV4cHJlc3Npb24oKSB7XG4gICAgcmV0dXJuIHRoaXMucmlnaHRFeHByZXNzaW9uO1xuICB9XG5cbiAgZXZhbHVhdGUoY29udGV4dCkge1xuICAgIGxldCBleHByZXNzaW9uO1xuXG4gICAgY29uc3QgY29tcGFyaXNvblN0cmluZyA9IHRoaXMuc3RyaW5nOyAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYEV2YWx1YXRpbmcgdGhlICcke2NvbXBhcmlzb25TdHJpbmd9JyBjb21wYXJpc29uLi4uYCk7XG5cbiAgICBjb25zdCBsZWZ0RXhwcmVzc2lvbiA9IHRoaXMubGVmdEV4cHJlc3Npb24uZXZhbHVhdGUoY29udGV4dCksXG4gICAgICAgICAgcmlnaHRFeHByZXNzaW9uID0gdGhpcy5yaWdodEV4cHJlc3Npb24uZXZhbHVhdGUoY29udGV4dCksXG4gICAgICAgICAgbGVmdEV4cHJlc3Npb25UeXBlID0gbGVmdEV4cHJlc3Npb24uZ2V0VHlwZSgpLFxuICAgICAgICAgIHJpZ2h0RXhwcmVzc2lvblR5cGUgPSByaWdodEV4cHJlc3Npb24uZ2V0VHlwZSgpO1xuXG4gICAgaWYgKGxlZnRFeHByZXNzaW9uVHlwZSAhPT0gcmlnaHRFeHByZXNzaW9uVHlwZSkge1xuICAgICAgY29uc3QgbGVmdEV4cHJlc3Npb25TdHJpbmcgPSBsZWZ0RXhwcmVzc2lvbi5hc1N0cmluZyhjb250ZXh0KSxcbiAgICAgICAgICAgIHJpZ2h0RXhwcmVzc2lvblN0cmluZyA9IHJpZ2h0RXhwcmVzc2lvbi5hc1N0cmluZyhjb250ZXh0KSxcbiAgICAgICAgICAgIG1lc3NhZ2UgPSBgVGhlICR7bGVmdEV4cHJlc3Npb25TdHJpbmd9IGxlZnQgZXhwcmVzc2lvbidzIHR5cGUgaXMgJyR7bGVmdEV4cHJlc3Npb25UeXBlfScgd2hlcmVhcyB0aGUgJHtyaWdodEV4cHJlc3Npb25TdHJpbmd9IHJpZ2h0IGV4cHJlc3Npb24ncyB0eXBlIGlzICcke3JpZ2h0RXhwcmVzc2lvblR5cGV9Jy5gLFxuICAgICAgICAgICAgZXhjZXB0aW9uID0gRXhjZXB0aW9uLmZyb21NZXNzYWdlKG1lc3NhZ2UpO1xuXG4gICAgICB0aHJvdyBleGNlcHRpb247XG4gICAgfVxuXG4gICAgY29uc3QgbGVmdEV4cHJlc3Npb25FcXVhbFRvUmlnaHRFeHByZXNzaW9uID0gbGVmdEV4cHJlc3Npb24uaXNFcXVhbFRvKHJpZ2h0RXhwcmVzc2lvbik7XG5cbiAgICBsZXQgYm9vbGVhbiA9IGxlZnRFeHByZXNzaW9uRXF1YWxUb1JpZ2h0RXhwcmVzc2lvbjsgLy8vXG5cbiAgICBpZiAodGhpcy5uZWdhdGVkKSB7XG4gICAgICBib29sZWFuID0gIWJvb2xlYW47IC8vL1xuICAgIH1cblxuICAgIGNvbnN0IHsgRXhwcmVzc2lvbiB9ID0gZG9tO1xuXG4gICAgZXhwcmVzc2lvbiA9IEV4cHJlc3Npb24uZnJvbUJvb2xlYW4oYm9vbGVhbiwgY29udGV4dCk7XG5cbiAgICBjb250ZXh0LmRlYnVnKGAuLi5ldmFsdWF0ZWQgdGhlICcke2NvbXBhcmlzb25TdHJpbmd9JyBjb21wYXJpc29uLmApO1xuXG4gICAgcmV0dXJuIGV4cHJlc3Npb247XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiQ29tcGFyaXNvblwiO1xuXG4gIHN0YXRpYyBmcm9tRXhwcmVzc2lvbk5vZGUodmFsdWROb2RlLCBjb250ZXh0KSB7XG4gICAgbGV0IGNvbXBhcmlzb24gPSBudWxsO1xuXG4gICAgY29uc3QgZXhwcmVzc2lvbkNvbXBhcmlzb25Ob2RlID0gZXhwcmVzc2lvbkNvbXBhcmlzb25Ob2RlUXVlcnkodmFsdWROb2RlKTtcblxuICAgIGlmIChleHByZXNzaW9uQ29tcGFyaXNvbk5vZGUgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IGNvbXBhcmlzb25Ob2RlID0gZXhwcmVzc2lvbkNvbXBhcmlzb25Ob2RlOyAvLy9cblxuICAgICAgY29tcGFyaXNvbiA9IGNvbXBhcmlzb25Gcm9tQ29tcGFyaXNvbk5vZGUoY29tcGFyaXNvbk5vZGUsIGNvbnRleHQpO1xuICAgIH1cblxuICAgIHJldHVybiBjb21wYXJpc29uO1xuICB9XG59KTtcblxuZnVuY3Rpb24gbmVnYXRlZEZyb21Db21wYXJpc29uTm9kZShjb21wYXJpc29uTm9kZSkge1xuICBjb25zdCB0ZXJtaW5hbE5vZGUgPSB0ZXJtaW5hbE5vZGVRdWVyeShjb21wYXJpc29uTm9kZSksXG4gICAgICAgIHRlcm1pbmFsTm9kZUNvbnRlbnQgPSB0ZXJtaW5hbE5vZGUuZ2V0Q29udGVudCgpLFxuICAgICAgICBuZWdhdGVkID0gKHRlcm1pbmFsTm9kZUNvbnRlbnQgIT09IEVRVUFMX1RPKTtcblxuICByZXR1cm4gbmVnYXRlZDtcbn1cblxuZnVuY3Rpb24gY29tcGFyaXNvbkZyb21Db21wYXJpc29uTm9kZShjb21wYXJpc29uTm9kZSwgY29udGV4dCkge1xuICBjb25zdCB7IEV4cHJlc3Npb24sIENvbXBhcmlzb24gfSA9IGRvbSxcbiAgICAgICAgbGVmdEV4cHJlc3Npb25Ob2RlID0gbGVmdEV4cHJlc3Npb25Ob2RlUXVlcnkoY29tcGFyaXNvbk5vZGUpLFxuICAgICAgICByaWdodEV4cHJlc3Npb25Ob2RlID0gcmlnaHRFeHByZXNzaW9uTm9kZVF1ZXJ5KGNvbXBhcmlzb25Ob2RlKSxcbiAgICAgICAgcmlnaHRFeHByZXNzaW9uID0gRXhwcmVzc2lvbi5mcm9tRXhwcmVzc2lvbk5vZGUocmlnaHRFeHByZXNzaW9uTm9kZSwgY29udGV4dCksXG4gICAgICAgIGxlZnRFeHByZXNzaW9uID0gRXhwcmVzc2lvbi5mcm9tRXhwcmVzc2lvbk5vZGUobGVmdEV4cHJlc3Npb25Ob2RlLCBjb250ZXh0KSxcbiAgICAgICAgbmVnYXRlZCA9IG5lZ2F0ZWRGcm9tQ29tcGFyaXNvbk5vZGUoY29tcGFyaXNvbk5vZGUsIGNvbnRleHQpLFxuICAgICAgICBzdHJpbmcgPSBzdHJpbmdGcm9tTmVnYXRlZExlZnRFeHByZXNzaW9uQW5kUmlnaHRFeHByZXNzaW9uKG5lZ2F0ZWQsIGxlZnRFeHByZXNzaW9uLCByaWdodEV4cHJlc3Npb24sIGNvbnRleHQpLFxuICAgICAgICBjb21wYXJpc29uID0gbmV3IENvbXBhcmlzb24oc3RyaW5nLCBuZWdhdGVkLCBsZWZ0RXhwcmVzc2lvbiwgcmlnaHRFeHByZXNzaW9uKTtcblxuICByZXR1cm4gY29tcGFyaXNvbjtcbn1cblxuZnVuY3Rpb24gc3RyaW5nRnJvbU5lZ2F0ZWRMZWZ0RXhwcmVzc2lvbkFuZFJpZ2h0RXhwcmVzc2lvbihuZWdhdGVkLCBsZWZ0RXhwcmVzc2lvbiwgcmlnaHRFeHByZXNzaW9uLCBjb250ZXh0KSB7XG4gIGNvbnN0IG9wZXJhdG9yU3RyaW5nID0gbmVnYXRlZCA/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBFUVVBTF9UTyA6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgTk9UX0VRVUFMX1RPLFxuICAgICAgICBsZWZ0RXhwcmVzc2lvblN0cmluZyA9IGxlZnRFeHByZXNzaW9uLmFzU3RyaW5nKGNvbnRleHQpLFxuICAgICAgICByaWdodEV4cHJlc3Npb25TdHJpbmcgPSByaWdodEV4cHJlc3Npb24uYXNTdHJpbmcoY29udGV4dCksXG4gICAgICAgIHN0cmluZyA9IGAke2xlZnRFeHByZXNzaW9uU3RyaW5nfSAke29wZXJhdG9yU3RyaW5nfSAke3JpZ2h0RXhwcmVzc2lvblN0cmluZ31gO1xuXG4gIHJldHVybiBzdHJpbmc7XG59XG4iXSwibmFtZXMiOlsidGVybWluYWxOb2RlUXVlcnkiLCJub2RlUXVlcnkiLCJsZWZ0RXhwcmVzc2lvbk5vZGVRdWVyeSIsInJpZ2h0RXhwcmVzc2lvbk5vZGVRdWVyeSIsImV4cHJlc3Npb25Db21wYXJpc29uTm9kZVF1ZXJ5IiwiZG9tQXNzaWduZWQiLCJDb21wYXJpc29uIiwic3RyaW5nIiwibmVnYXRlZCIsImxlZnRFeHByZXNzaW9uIiwicmlnaHRFeHByZXNzaW9uIiwiZ2V0U3RyaW5nIiwiaXNOZWdhdGVkIiwiZ2V0TGVmdEV4cHJlc3Npb24iLCJnZXRSaWdodEV4cHJlc3Npb24iLCJldmFsdWF0ZSIsImNvbnRleHQiLCJleHByZXNzaW9uIiwiY29tcGFyaXNvblN0cmluZyIsInRyYWNlIiwibGVmdEV4cHJlc3Npb25UeXBlIiwiZ2V0VHlwZSIsInJpZ2h0RXhwcmVzc2lvblR5cGUiLCJsZWZ0RXhwcmVzc2lvblN0cmluZyIsImFzU3RyaW5nIiwicmlnaHRFeHByZXNzaW9uU3RyaW5nIiwibWVzc2FnZSIsImV4Y2VwdGlvbiIsIkV4Y2VwdGlvbiIsImZyb21NZXNzYWdlIiwibGVmdEV4cHJlc3Npb25FcXVhbFRvUmlnaHRFeHByZXNzaW9uIiwiaXNFcXVhbFRvIiwiYm9vbGVhbiIsIkV4cHJlc3Npb24iLCJkb20iLCJmcm9tQm9vbGVhbiIsImRlYnVnIiwiZnJvbUV4cHJlc3Npb25Ob2RlIiwidmFsdWROb2RlIiwiY29tcGFyaXNvbiIsImV4cHJlc3Npb25Db21wYXJpc29uTm9kZSIsImNvbXBhcmlzb25Ob2RlIiwiY29tcGFyaXNvbkZyb21Db21wYXJpc29uTm9kZSIsIm5hbWUiLCJuZWdhdGVkRnJvbUNvbXBhcmlzb25Ob2RlIiwidGVybWluYWxOb2RlIiwidGVybWluYWxOb2RlQ29udGVudCIsImdldENvbnRlbnQiLCJFUVVBTF9UTyIsImxlZnRFeHByZXNzaW9uTm9kZSIsInJpZ2h0RXhwcmVzc2lvbk5vZGUiLCJzdHJpbmdGcm9tTmVnYXRlZExlZnRFeHByZXNzaW9uQW5kUmlnaHRFeHByZXNzaW9uIiwib3BlcmF0b3JTdHJpbmciLCJOT1RfRVFVQUxfVE8iXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQWNBOzs7ZUFBQTs7OzJEQVpnQjtnRUFDTTtxQkFFSTt5QkFFYTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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
package/lib/dom/every.js CHANGED
@@ -91,7 +91,7 @@ function _interop_require_wildcard(obj, nodeInterop) {
91
91
  return newObj;
92
92
  }
93
93
  var _Every;
94
- var valueEveryNodeQuery = (0, _query.nodeQuery)("/value/every");
94
+ var expressionEveryNodeQuery = (0, _query.nodeQuery)("/expression/every");
95
95
  var _default = (0, _dom.domAssigned)((_Every = /*#__PURE__*/ function() {
96
96
  function Every(string, variable, anonymousProcedure) {
97
97
  _class_call_check(this, Every);
@@ -122,43 +122,43 @@ var _default = (0, _dom.domAssigned)((_Every = /*#__PURE__*/ function() {
122
122
  key: "evaluate",
123
123
  value: function evaluate(context) {
124
124
  var _this = this;
125
- var value;
125
+ var expression;
126
126
  var everyString = this.getString();
127
127
  context.trace("Evaluating the '".concat(everyString, "' every..."));
128
- value = this.variable.evaluate(context);
129
- var valueType = value.getType();
130
- if (valueType !== _types.NODES_TYPE) {
131
- var valueString = value.asString(context), message = "The ".concat(valueString, " value's '").concat(valueType, "' type should be '").concat(_types.NODES_TYPE, "'."), exception = _exception.default.fromMessage(message);
128
+ expression = this.variable.evaluate(context);
129
+ var expressionType = expression.getType();
130
+ if (expressionType !== _types.NODES_TYPE) {
131
+ var expressionString = expression.asString(context), message = "The ".concat(expressionString, " expression's '").concat(expressionType, "' type should be '").concat(_types.NODES_TYPE, "'."), exception = _exception.default.fromMessage(message);
132
132
  throw exception;
133
133
  }
134
- var nodes = value.getNodes(), boolean = nodes.every(function(node) {
135
- var value;
136
- var Value = _dom.default.Value, Values = _dom.default.Values;
137
- value = Value.fromNode(node, context);
138
- var values = Values.fromValue(value, context);
139
- value = _this.anonymousProcedure.call(values, context);
140
- var valueType = value.getType();
141
- if (valueType !== _types.BOOLEAN_TYPE) {
142
- var valueString = value.asString(context), message = "The ".concat(valueString, " value's type is '").concat(valueType, "' when it should be of type '").concat(_types.BOOLEAN_TYPE, "'."), exception = _exception.default.fromMessage(message);
134
+ var nodes = expression.getNodes(), boolean = nodes.every(function(node) {
135
+ var expression;
136
+ var Expression = _dom.default.Expression, Expressions = _dom.default.Expressions;
137
+ expression = Expression.fromNode(node, context);
138
+ var expressions = Expressions.fromExpression(expression, context);
139
+ expression = _this.anonymousProcedure.call(expressions, context);
140
+ var expressionType = expression.getType();
141
+ if (expressionType !== _types.BOOLEAN_TYPE) {
142
+ var expressionString = expression.asString(context), message = "The ".concat(expressionString, " expression's type is '").concat(expressionType, "' when it should be of type '").concat(_types.BOOLEAN_TYPE, "'."), exception = _exception.default.fromMessage(message);
143
143
  throw exception;
144
144
  }
145
- var boolean = value.getBoolean();
145
+ var boolean = expression.getBoolean();
146
146
  return boolean;
147
147
  });
148
- var Value = _dom.default.Value;
149
- value = Value.fromBoolean(boolean, context);
148
+ var Expression = _dom.default.Expression;
149
+ expression = Expression.fromBoolean(boolean, context);
150
150
  context.trace("...evaluated the '".concat(everyString, "' every."));
151
- return value;
151
+ return expression;
152
152
  }
153
153
  }
154
154
  ], [
155
155
  {
156
- key: "fromValueNode",
157
- value: function fromValueNode(valueNode, context) {
156
+ key: "fromExpressionNode",
157
+ value: function fromExpressionNode(expressionNode, context) {
158
158
  var every = null;
159
- var valueEveryNode = valueEveryNodeQuery(valueNode);
160
- if (valueEveryNode !== null) {
161
- var everyNode = valueEveryNode; ///
159
+ var expressionEveryNode = expressionEveryNodeQuery(expressionNode);
160
+ if (expressionEveryNode !== null) {
161
+ var everyNode = expressionEveryNode; ///
162
162
  every = everyFromEveryNode(everyNode, context);
163
163
  }
164
164
  return every;
@@ -176,4 +176,4 @@ function stringFromVariableAndAnonymousProcedure(variable, anonymousProcedure, c
176
176
  return string;
177
177
  }
178
178
 
179
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kb20vZXZlcnkuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBkb20gZnJvbSBcIi4uL2RvbVwiO1xuaW1wb3J0IEV4Y2VwdGlvbiBmcm9tIFwiLi4vZXhjZXB0aW9uXCI7XG5cbmltcG9ydCB7IG5vZGVRdWVyeSB9IGZyb20gXCIuLi91dGlsaXRpZXMvcXVlcnlcIjtcbmltcG9ydCB7IGRvbUFzc2lnbmVkIH0gZnJvbSBcIi4uL2RvbVwiO1xuaW1wb3J0IHsgTk9ERVNfVFlQRSwgQk9PTEVBTl9UWVBFIH0gZnJvbSBcIi4uL3R5cGVzXCI7XG5cbmNvbnN0IHZhbHVlRXZlcnlOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvdmFsdWUvZXZlcnlcIik7XG5cbmV4cG9ydCBkZWZhdWx0IGRvbUFzc2lnbmVkKGNsYXNzIEV2ZXJ5IHtcbiAgY29uc3RydWN0b3Ioc3RyaW5nLCB2YXJpYWJsZSwgYW5vbnltb3VzUHJvY2VkdXJlKSB7XG4gICAgdGhpcy5zdHJpbmcgPSBzdHJpbmc7XG4gICAgdGhpcy52YXJpYWJsZSA9IHZhcmlhYmxlO1xuICAgIHRoaXMuYW5vbnltb3VzUHJvY2VkdXJlID0gYW5vbnltb3VzUHJvY2VkdXJlO1xuICB9XG5cbiAgZ2V0U3RyaW5nKCkge1xuICAgIHJldHVybiB0aGlzLnN0cmluZztcbiAgfVxuXG4gIGdldFZhcmlhYmxlKCkge1xuICAgIHJldHVybiB0aGlzLnZhcmlhYmxlO1xuICB9XG5cbiAgZ2V0QW5vbnltb3VzUHJvY2VkdXJlKCkge1xuICAgIHJldHVybiB0aGlzLmFub255bW91c1Byb2NlZHVyZTtcbiAgfVxuXG4gIGV2YWx1YXRlKGNvbnRleHQpIHtcbiAgICBsZXQgdmFsdWU7XG5cbiAgICBjb25zdCBldmVyeVN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7XG5cbiAgICBjb250ZXh0LnRyYWNlKGBFdmFsdWF0aW5nIHRoZSAnJHtldmVyeVN0cmluZ30nIGV2ZXJ5Li4uYCk7XG5cbiAgICB2YWx1ZSA9IHRoaXMudmFyaWFibGUuZXZhbHVhdGUoY29udGV4dCk7XG5cbiAgICBjb25zdCB2YWx1ZVR5cGUgPSB2YWx1ZS5nZXRUeXBlKCk7XG5cbiAgICBpZiAodmFsdWVUeXBlICE9PSBOT0RFU19UWVBFKSB7XG4gICAgICBjb25zdCB2YWx1ZVN0cmluZyA9IHZhbHVlLmFzU3RyaW5nKGNvbnRleHQpLFxuICAgICAgICAgICAgbWVzc2FnZSA9IGBUaGUgJHt2YWx1ZVN0cmluZ30gdmFsdWUncyAnJHt2YWx1ZVR5cGV9JyB0eXBlIHNob3VsZCBiZSAnJHtOT0RFU19UWVBFfScuYCxcbiAgICAgICAgICAgIGV4Y2VwdGlvbiA9IEV4Y2VwdGlvbi5mcm9tTWVzc2FnZShtZXNzYWdlKTtcblxuICAgICAgdGhyb3cgZXhjZXB0aW9uO1xuICAgIH1cblxuICAgIGNvbnN0IG5vZGVzID0gdmFsdWUuZ2V0Tm9kZXMoKSxcbiAgICAgICAgICBib29sZWFuID0gbm9kZXMuZXZlcnkoKG5vZGUpID0+IHtcbiAgICAgICAgICAgIGxldCB2YWx1ZTtcblxuICAgICAgICAgICAgY29uc3QgeyBWYWx1ZSwgVmFsdWVzIH0gPSBkb207XG5cbiAgICAgICAgICAgIHZhbHVlID0gVmFsdWUuZnJvbU5vZGUobm9kZSwgY29udGV4dCk7XG5cbiAgICAgICAgICAgIGNvbnN0IHZhbHVlcyA9IFZhbHVlcy5mcm9tVmFsdWUodmFsdWUsIGNvbnRleHQpO1xuXG4gICAgICAgICAgICB2YWx1ZSA9IHRoaXMuYW5vbnltb3VzUHJvY2VkdXJlLmNhbGwodmFsdWVzLCBjb250ZXh0KTtcblxuICAgICAgICAgICAgY29uc3QgdmFsdWVUeXBlID0gdmFsdWUuZ2V0VHlwZSgpO1xuXG4gICAgICAgICAgICBpZiAodmFsdWVUeXBlICE9PSBCT09MRUFOX1RZUEUpIHtcbiAgICAgICAgICAgICAgY29uc3QgdmFsdWVTdHJpbmcgPSB2YWx1ZS5hc1N0cmluZyhjb250ZXh0KSxcbiAgICAgICAgICAgICAgICAgICAgbWVzc2FnZSA9IGBUaGUgJHt2YWx1ZVN0cmluZ30gdmFsdWUncyB0eXBlIGlzICcke3ZhbHVlVHlwZX0nIHdoZW4gaXQgc2hvdWxkIGJlIG9mIHR5cGUgJyR7Qk9PTEVBTl9UWVBFfScuYCxcbiAgICAgICAgICAgICAgICAgICAgZXhjZXB0aW9uID0gRXhjZXB0aW9uLmZyb21NZXNzYWdlKG1lc3NhZ2UpO1xuXG4gICAgICAgICAgICAgIHRocm93IGV4Y2VwdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgYm9vbGVhbiA9IHZhbHVlLmdldEJvb2xlYW4oKTtcblxuICAgICAgICAgICAgcmV0dXJuIGJvb2xlYW47XG4gICAgICAgICAgfSk7XG5cbiAgICBjb25zdCB7IFZhbHVlIH0gPSBkb207XG5cbiAgICB2YWx1ZSA9IFZhbHVlLmZyb21Cb29sZWFuKGJvb2xlYW4sIGNvbnRleHQpO1xuXG4gICAgY29udGV4dC50cmFjZShgLi4uZXZhbHVhdGVkIHRoZSAnJHtldmVyeVN0cmluZ30nIGV2ZXJ5LmApO1xuXG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgc3RhdGljIG5hbWUgPSBcIkV2ZXJ5XCI7XG5cbiAgc3RhdGljIGZyb21WYWx1ZU5vZGUodmFsdWVOb2RlLCBjb250ZXh0KSB7XG4gICAgbGV0IGV2ZXJ5ID0gbnVsbDtcblxuICAgIGNvbnN0IHZhbHVlRXZlcnlOb2RlID0gdmFsdWVFdmVyeU5vZGVRdWVyeSh2YWx1ZU5vZGUpO1xuXG4gICAgaWYgKHZhbHVlRXZlcnlOb2RlICE9PSBudWxsKSB7XG4gICAgICBjb25zdCBldmVyeU5vZGUgPSB2YWx1ZUV2ZXJ5Tm9kZTsgLy8vXG5cbiAgICAgIGV2ZXJ5ID0gZXZlcnlGcm9tRXZlcnlOb2RlKGV2ZXJ5Tm9kZSwgY29udGV4dCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGV2ZXJ5O1xuICB9XG59KTtcblxuZnVuY3Rpb24gZXZlcnlGcm9tRXZlcnlOb2RlKGV2ZXJ5Tm9kZSwgY29udGV4dCkge1xuICBjb25zdCB7IEV2ZXJ5LCBWYXJpYWJsZSwgQW5vbnltb3VzUHJvY2VkdXJlIH0gPSBkb20sXG4gICAgICAgIGFub255bW91c1Byb2NlZHVyZSA9IEFub255bW91c1Byb2NlZHVyZS5mcm9tRXZlcnlOb2RlKGV2ZXJ5Tm9kZSwgY29udGV4dCksXG4gICAgICAgIHZhcmlhYmxlID0gVmFyaWFibGUuZnJvbUV2ZXJ5Tm9kZShldmVyeU5vZGUsIGNvbnRleHQpLFxuICAgICAgICBzdHJpbmcgPSBzdHJpbmdGcm9tVmFyaWFibGVBbmRBbm9ueW1vdXNQcm9jZWR1cmUodmFyaWFibGUsIGFub255bW91c1Byb2NlZHVyZSwgY29udGV4dCksXG4gICAgICAgIGV2ZXJ5ID0gbmV3IEV2ZXJ5KHN0cmluZywgdmFyaWFibGUsIGFub255bW91c1Byb2NlZHVyZSk7XG5cbiAgcmV0dXJuIGV2ZXJ5O1xufVxuXG5mdW5jdGlvbiBzdHJpbmdGcm9tVmFyaWFibGVBbmRBbm9ueW1vdXNQcm9jZWR1cmUodmFyaWFibGUsIGFub255bW91c1Byb2NlZHVyZSwgY29udGV4dCkge1xuICBjb25zdCB2YXJpYWJsZVN0cmluZyA9IHZhcmlhYmxlLmdldFN0cmluZygpLFxuICAgICAgICBhbm9ueW1vdXNQcm9jZWR1cmVTdHJpbmcgPSBhbm9ueW1vdXNQcm9jZWR1cmUuZ2V0U3RyaW5nKCksXG4gICAgICAgIHN0cmluZyA9IGBFdmVyeSgke3ZhcmlhYmxlU3RyaW5nfSwgJHthbm9ueW1vdXNQcm9jZWR1cmVTdHJpbmd9KSBgO1xuXG4gIHJldHVybiBzdHJpbmc7XG59XG4iXSwibmFtZXMiOlsidmFsdWVFdmVyeU5vZGVRdWVyeSIsIm5vZGVRdWVyeSIsImRvbUFzc2lnbmVkIiwiRXZlcnkiLCJzdHJpbmciLCJ2YXJpYWJsZSIsImFub255bW91c1Byb2NlZHVyZSIsImdldFN0cmluZyIsImdldFZhcmlhYmxlIiwiZ2V0QW5vbnltb3VzUHJvY2VkdXJlIiwiZXZhbHVhdGUiLCJjb250ZXh0IiwidmFsdWUiLCJldmVyeVN0cmluZyIsInRyYWNlIiwidmFsdWVUeXBlIiwiZ2V0VHlwZSIsIk5PREVTX1RZUEUiLCJ2YWx1ZVN0cmluZyIsImFzU3RyaW5nIiwibWVzc2FnZSIsImV4Y2VwdGlvbiIsIkV4Y2VwdGlvbiIsImZyb21NZXNzYWdlIiwibm9kZXMiLCJnZXROb2RlcyIsImJvb2xlYW4iLCJldmVyeSIsIm5vZGUiLCJWYWx1ZSIsImRvbSIsIlZhbHVlcyIsImZyb21Ob2RlIiwidmFsdWVzIiwiZnJvbVZhbHVlIiwiY2FsbCIsIkJPT0xFQU5fVFlQRSIsImdldEJvb2xlYW4iLCJmcm9tQm9vbGVhbiIsImZyb21WYWx1ZU5vZGUiLCJ2YWx1ZU5vZGUiLCJ2YWx1ZUV2ZXJ5Tm9kZSIsImV2ZXJ5Tm9kZSIsImV2ZXJ5RnJvbUV2ZXJ5Tm9kZSIsIm5hbWUiLCJWYXJpYWJsZSIsIkFub255bW91c1Byb2NlZHVyZSIsImZyb21FdmVyeU5vZGUiLCJzdHJpbmdGcm9tVmFyaWFibGVBbmRBbm9ueW1vdXNQcm9jZWR1cmUiLCJ2YXJpYWJsZVN0cmluZyIsImFub255bW91c1Byb2NlZHVyZVN0cmluZyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBV0E7OztlQUFBOzs7MkRBVGdCO2dFQUNNO3FCQUVJO3FCQUVlOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUV6QyxJQUFNQSxzQkFBc0JDLElBQUFBLGdCQUFTLEVBQUM7SUFFdEMsV0FBZUMsSUFBQUEsZ0JBQVcsMEJBQUM7YUFBTUMsTUFDbkJDLE1BQU0sRUFBRUMsUUFBUSxFQUFFQyxrQkFBa0I7Z0NBRGpCSDtRQUU3QixJQUFJLENBQUNDLE1BQU0sR0FBR0E7UUFDZCxJQUFJLENBQUNDLFFBQVEsR0FBR0E7UUFDaEIsSUFBSSxDQUFDQyxrQkFBa0IsR0FBR0E7Ozs7WUFHNUJDLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxPQUFPLElBQUksQ0FBQ0gsTUFBTTtZQUNwQjs7O1lBRUFJLEtBQUFBO21CQUFBQSxTQUFB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
179
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kb20vZXZlcnkuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBkb20gZnJvbSBcIi4uL2RvbVwiO1xuaW1wb3J0IEV4Y2VwdGlvbiBmcm9tIFwiLi4vZXhjZXB0aW9uXCI7XG5cbmltcG9ydCB7IG5vZGVRdWVyeSB9IGZyb20gXCIuLi91dGlsaXRpZXMvcXVlcnlcIjtcbmltcG9ydCB7IGRvbUFzc2lnbmVkIH0gZnJvbSBcIi4uL2RvbVwiO1xuaW1wb3J0IHsgTk9ERVNfVFlQRSwgQk9PTEVBTl9UWVBFIH0gZnJvbSBcIi4uL3R5cGVzXCI7XG5cbmNvbnN0IGV4cHJlc3Npb25FdmVyeU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9leHByZXNzaW9uL2V2ZXJ5XCIpO1xuXG5leHBvcnQgZGVmYXVsdCBkb21Bc3NpZ25lZChjbGFzcyBFdmVyeSB7XG4gIGNvbnN0cnVjdG9yKHN0cmluZywgdmFyaWFibGUsIGFub255bW91c1Byb2NlZHVyZSkge1xuICAgIHRoaXMuc3RyaW5nID0gc3RyaW5nO1xuICAgIHRoaXMudmFyaWFibGUgPSB2YXJpYWJsZTtcbiAgICB0aGlzLmFub255bW91c1Byb2NlZHVyZSA9IGFub255bW91c1Byb2NlZHVyZTtcbiAgfVxuXG4gIGdldFN0cmluZygpIHtcbiAgICByZXR1cm4gdGhpcy5zdHJpbmc7XG4gIH1cblxuICBnZXRWYXJpYWJsZSgpIHtcbiAgICByZXR1cm4gdGhpcy52YXJpYWJsZTtcbiAgfVxuXG4gIGdldEFub255bW91c1Byb2NlZHVyZSgpIHtcbiAgICByZXR1cm4gdGhpcy5hbm9ueW1vdXNQcm9jZWR1cmU7XG4gIH1cblxuICBldmFsdWF0ZShjb250ZXh0KSB7XG4gICAgbGV0IGV4cHJlc3Npb247XG5cbiAgICBjb25zdCBldmVyeVN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7XG5cbiAgICBjb250ZXh0LnRyYWNlKGBFdmFsdWF0aW5nIHRoZSAnJHtldmVyeVN0cmluZ30nIGV2ZXJ5Li4uYCk7XG5cbiAgICBleHByZXNzaW9uID0gdGhpcy52YXJpYWJsZS5ldmFsdWF0ZShjb250ZXh0KTtcblxuICAgIGNvbnN0IGV4cHJlc3Npb25UeXBlID0gZXhwcmVzc2lvbi5nZXRUeXBlKCk7XG5cbiAgICBpZiAoZXhwcmVzc2lvblR5cGUgIT09IE5PREVTX1RZUEUpIHtcbiAgICAgIGNvbnN0IGV4cHJlc3Npb25TdHJpbmcgPSBleHByZXNzaW9uLmFzU3RyaW5nKGNvbnRleHQpLFxuICAgICAgICAgICAgbWVzc2FnZSA9IGBUaGUgJHtleHByZXNzaW9uU3RyaW5nfSBleHByZXNzaW9uJ3MgJyR7ZXhwcmVzc2lvblR5cGV9JyB0eXBlIHNob3VsZCBiZSAnJHtOT0RFU19UWVBFfScuYCxcbiAgICAgICAgICAgIGV4Y2VwdGlvbiA9IEV4Y2VwdGlvbi5mcm9tTWVzc2FnZShtZXNzYWdlKTtcblxuICAgICAgdGhyb3cgZXhjZXB0aW9uO1xuICAgIH1cblxuICAgIGNvbnN0IG5vZGVzID0gZXhwcmVzc2lvbi5nZXROb2RlcygpLFxuICAgICAgICAgIGJvb2xlYW4gPSBub2Rlcy5ldmVyeSgobm9kZSkgPT4ge1xuICAgICAgICAgICAgbGV0IGV4cHJlc3Npb247XG5cbiAgICAgICAgICAgIGNvbnN0IHsgRXhwcmVzc2lvbiwgRXhwcmVzc2lvbnMgfSA9IGRvbTtcblxuICAgICAgICAgICAgZXhwcmVzc2lvbiA9IEV4cHJlc3Npb24uZnJvbU5vZGUobm9kZSwgY29udGV4dCk7XG5cbiAgICAgICAgICAgIGNvbnN0IGV4cHJlc3Npb25zID0gRXhwcmVzc2lvbnMuZnJvbUV4cHJlc3Npb24oZXhwcmVzc2lvbiwgY29udGV4dCk7XG5cbiAgICAgICAgICAgIGV4cHJlc3Npb24gPSB0aGlzLmFub255bW91c1Byb2NlZHVyZS5jYWxsKGV4cHJlc3Npb25zLCBjb250ZXh0KTtcblxuICAgICAgICAgICAgY29uc3QgZXhwcmVzc2lvblR5cGUgPSBleHByZXNzaW9uLmdldFR5cGUoKTtcblxuICAgICAgICAgICAgaWYgKGV4cHJlc3Npb25UeXBlICE9PSBCT09MRUFOX1RZUEUpIHtcbiAgICAgICAgICAgICAgY29uc3QgZXhwcmVzc2lvblN0cmluZyA9IGV4cHJlc3Npb24uYXNTdHJpbmcoY29udGV4dCksXG4gICAgICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSBgVGhlICR7ZXhwcmVzc2lvblN0cmluZ30gZXhwcmVzc2lvbidzIHR5cGUgaXMgJyR7ZXhwcmVzc2lvblR5cGV9JyB3aGVuIGl0IHNob3VsZCBiZSBvZiB0eXBlICcke0JPT0xFQU5fVFlQRX0nLmAsXG4gICAgICAgICAgICAgICAgICAgIGV4Y2VwdGlvbiA9IEV4Y2VwdGlvbi5mcm9tTWVzc2FnZShtZXNzYWdlKTtcblxuICAgICAgICAgICAgICB0aHJvdyBleGNlcHRpb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IGJvb2xlYW4gPSBleHByZXNzaW9uLmdldEJvb2xlYW4oKTtcblxuICAgICAgICAgICAgcmV0dXJuIGJvb2xlYW47XG4gICAgICAgICAgfSk7XG5cbiAgICBjb25zdCB7IEV4cHJlc3Npb24gfSA9IGRvbTtcblxuICAgIGV4cHJlc3Npb24gPSBFeHByZXNzaW9uLmZyb21Cb29sZWFuKGJvb2xlYW4sIGNvbnRleHQpO1xuXG4gICAgY29udGV4dC50cmFjZShgLi4uZXZhbHVhdGVkIHRoZSAnJHtldmVyeVN0cmluZ30nIGV2ZXJ5LmApO1xuXG4gICAgcmV0dXJuIGV4cHJlc3Npb247XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiRXZlcnlcIjtcblxuICBzdGF0aWMgZnJvbUV4cHJlc3Npb25Ob2RlKGV4cHJlc3Npb25Ob2RlLCBjb250ZXh0KSB7XG4gICAgbGV0IGV2ZXJ5ID0gbnVsbDtcblxuICAgIGNvbnN0IGV4cHJlc3Npb25FdmVyeU5vZGUgPSBleHByZXNzaW9uRXZlcnlOb2RlUXVlcnkoZXhwcmVzc2lvbk5vZGUpO1xuXG4gICAgaWYgKGV4cHJlc3Npb25FdmVyeU5vZGUgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IGV2ZXJ5Tm9kZSA9IGV4cHJlc3Npb25FdmVyeU5vZGU7IC8vL1xuXG4gICAgICBldmVyeSA9IGV2ZXJ5RnJvbUV2ZXJ5Tm9kZShldmVyeU5vZGUsIGNvbnRleHQpO1xuICAgIH1cblxuICAgIHJldHVybiBldmVyeTtcbiAgfVxufSk7XG5cbmZ1bmN0aW9uIGV2ZXJ5RnJvbUV2ZXJ5Tm9kZShldmVyeU5vZGUsIGNvbnRleHQpIHtcbiAgY29uc3QgeyBFdmVyeSwgVmFyaWFibGUsIEFub255bW91c1Byb2NlZHVyZSB9ID0gZG9tLFxuICAgICAgICBhbm9ueW1vdXNQcm9jZWR1cmUgPSBBbm9ueW1vdXNQcm9jZWR1cmUuZnJvbUV2ZXJ5Tm9kZShldmVyeU5vZGUsIGNvbnRleHQpLFxuICAgICAgICB2YXJpYWJsZSA9IFZhcmlhYmxlLmZyb21FdmVyeU5vZGUoZXZlcnlOb2RlLCBjb250ZXh0KSxcbiAgICAgICAgc3RyaW5nID0gc3RyaW5nRnJvbVZhcmlhYmxlQW5kQW5vbnltb3VzUHJvY2VkdXJlKHZhcmlhYmxlLCBhbm9ueW1vdXNQcm9jZWR1cmUsIGNvbnRleHQpLFxuICAgICAgICBldmVyeSA9IG5ldyBFdmVyeShzdHJpbmcsIHZhcmlhYmxlLCBhbm9ueW1vdXNQcm9jZWR1cmUpO1xuXG4gIHJldHVybiBldmVyeTtcbn1cblxuZnVuY3Rpb24gc3RyaW5nRnJvbVZhcmlhYmxlQW5kQW5vbnltb3VzUHJvY2VkdXJlKHZhcmlhYmxlLCBhbm9ueW1vdXNQcm9jZWR1cmUsIGNvbnRleHQpIHtcbiAgY29uc3QgdmFyaWFibGVTdHJpbmcgPSB2YXJpYWJsZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgYW5vbnltb3VzUHJvY2VkdXJlU3RyaW5nID0gYW5vbnltb3VzUHJvY2VkdXJlLmdldFN0cmluZygpLFxuICAgICAgICBzdHJpbmcgPSBgRXZlcnkoJHt2YXJpYWJsZVN0cmluZ30sICR7YW5vbnltb3VzUHJvY2VkdXJlU3RyaW5nfSkgYDtcblxuICByZXR1cm4gc3RyaW5nO1xufVxuIl0sIm5hbWVzIjpbImV4cHJlc3Npb25FdmVyeU5vZGVRdWVyeSIsIm5vZGVRdWVyeSIsImRvbUFzc2lnbmVkIiwiRXZlcnkiLCJzdHJpbmciLCJ2YXJpYWJsZSIsImFub255bW91c1Byb2NlZHVyZSIsImdldFN0cmluZyIsImdldFZhcmlhYmxlIiwiZ2V0QW5vbnltb3VzUHJvY2VkdXJlIiwiZXZhbHVhdGUiLCJjb250ZXh0IiwiZXhwcmVzc2lvbiIsImV2ZXJ5U3RyaW5nIiwidHJhY2UiLCJleHByZXNzaW9uVHlwZSIsImdldFR5cGUiLCJOT0RFU19UWVBFIiwiZXhwcmVzc2lvblN0cmluZyIsImFzU3RyaW5nIiwibWVzc2FnZSIsImV4Y2VwdGlvbiIsIkV4Y2VwdGlvbiIsImZyb21NZXNzYWdlIiwibm9kZXMiLCJnZXROb2RlcyIsImJvb2xlYW4iLCJldmVyeSIsIm5vZGUiLCJFeHByZXNzaW9uIiwiZG9tIiwiRXhwcmVzc2lvbnMiLCJmcm9tTm9kZSIsImV4cHJlc3Npb25zIiwiZnJvbUV4cHJlc3Npb24iLCJjYWxsIiwiQk9PTEVBTl9UWVBFIiwiZ2V0Qm9vbGVhbiIsImZyb21Cb29sZWFuIiwiZnJvbUV4cHJlc3Npb25Ob2RlIiwiZXhwcmVzc2lvbk5vZGUiLCJleHByZXNzaW9uRXZlcnlOb2RlIiwiZXZlcnlOb2RlIiwiZXZlcnlGcm9tRXZlcnlOb2RlIiwibmFtZSIsIlZhcmlhYmxlIiwiQW5vbnltb3VzUHJvY2VkdXJlIiwiZnJvbUV2ZXJ5Tm9kZSIsInN0cmluZ0Zyb21WYXJpYWJsZUFuZEFub255bW91c1Byb2NlZHVyZSIsInZhcmlhYmxlU3RyaW5nIiwiYW5vbnltb3VzUHJvY2VkdXJlU3RyaW5nIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFXQTs7O2VBQUE7OzsyREFUZ0I7Z0VBQ007cUJBRUk7cUJBRWU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRXpDLElBQU1BLDJC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
@@ -0,0 +1,186 @@
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
+ var _dom = /*#__PURE__*/ _interop_require_wildcard(require("../../dom"));
12
+ var _exception = /*#__PURE__*/ _interop_require_default(require("../../exception"));
13
+ var _query = require("../../utilities/query");
14
+ var _types = require("../../types");
15
+ var _constants = require("../../constants");
16
+ function _class_call_check(instance, Constructor) {
17
+ if (!(instance instanceof Constructor)) {
18
+ throw new TypeError("Cannot call a class as a function");
19
+ }
20
+ }
21
+ function _defineProperties(target, props) {
22
+ for(var i = 0; i < props.length; i++){
23
+ var descriptor = props[i];
24
+ descriptor.enumerable = descriptor.enumerable || false;
25
+ descriptor.configurable = true;
26
+ if ("value" in descriptor) descriptor.writable = true;
27
+ Object.defineProperty(target, descriptor.key, descriptor);
28
+ }
29
+ }
30
+ function _create_class(Constructor, protoProps, staticProps) {
31
+ if (protoProps) _defineProperties(Constructor.prototype, protoProps);
32
+ if (staticProps) _defineProperties(Constructor, staticProps);
33
+ return Constructor;
34
+ }
35
+ function _define_property(obj, key, value) {
36
+ if (key in obj) {
37
+ Object.defineProperty(obj, key, {
38
+ value: value,
39
+ enumerable: true,
40
+ configurable: true,
41
+ writable: true
42
+ });
43
+ } else {
44
+ obj[key] = value;
45
+ }
46
+ return obj;
47
+ }
48
+ function _interop_require_default(obj) {
49
+ return obj && obj.__esModule ? obj : {
50
+ default: obj
51
+ };
52
+ }
53
+ function _getRequireWildcardCache(nodeInterop) {
54
+ if (typeof WeakMap !== "function") return null;
55
+ var cacheBabelInterop = new WeakMap();
56
+ var cacheNodeInterop = new WeakMap();
57
+ return (_getRequireWildcardCache = function(nodeInterop) {
58
+ return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
59
+ })(nodeInterop);
60
+ }
61
+ function _interop_require_wildcard(obj, nodeInterop) {
62
+ if (!nodeInterop && obj && obj.__esModule) {
63
+ return obj;
64
+ }
65
+ if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
66
+ return {
67
+ default: obj
68
+ };
69
+ }
70
+ var cache = _getRequireWildcardCache(nodeInterop);
71
+ if (cache && cache.has(obj)) {
72
+ return cache.get(obj);
73
+ }
74
+ var newObj = {
75
+ __proto__: null
76
+ };
77
+ var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
78
+ for(var key in obj){
79
+ if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
80
+ var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
81
+ if (desc && (desc.get || desc.set)) {
82
+ Object.defineProperty(newObj, key, desc);
83
+ } else {
84
+ newObj[key] = obj[key];
85
+ }
86
+ }
87
+ }
88
+ newObj.default = obj;
89
+ if (cache) {
90
+ cache.set(obj, newObj);
91
+ }
92
+ return newObj;
93
+ }
94
+ var _BitwiseExpression;
95
+ var terminalNodeQuery = (0, _query.nodeQuery)("/bitwiseExpression/@*"), leftExpressionNodeQuery = (0, _query.nodeQuery)("/bitwiseExpression/expression[0]"), rightExpressionNodeQuery = (0, _query.nodeQuery)("/bitwiseExpression/expression[1]"), expressionBitwiseExpressionNodeQuery = (0, _query.nodeQuery)("/expression/bitwiseExpression");
96
+ var _default = (0, _dom.domAssigned)((_BitwiseExpression = /*#__PURE__*/ function() {
97
+ function BitwiseExpression(string, type, disjoint, leftExpression, rightExpression) {
98
+ _class_call_check(this, BitwiseExpression);
99
+ this.string = string;
100
+ this.type = type;
101
+ this.disjoint = disjoint;
102
+ this.leftExpression = leftExpression;
103
+ this.rightExpression = rightExpression;
104
+ }
105
+ _create_class(BitwiseExpression, [
106
+ {
107
+ key: "getString",
108
+ value: function getString() {
109
+ return this.string;
110
+ }
111
+ },
112
+ {
113
+ key: "getType",
114
+ value: function getType() {
115
+ return this.type;
116
+ }
117
+ },
118
+ {
119
+ key: "isDisjoint",
120
+ value: function isDisjoint() {
121
+ return this.disjoint;
122
+ }
123
+ },
124
+ {
125
+ key: "getLeftExpression",
126
+ value: function getLeftExpression() {
127
+ return this.leftExpression;
128
+ }
129
+ },
130
+ {
131
+ key: "getRightExpression",
132
+ value: function getRightExpression() {
133
+ return this.rightExpression;
134
+ }
135
+ },
136
+ {
137
+ key: "evaluate",
138
+ value: function evaluate(context) {
139
+ var expression;
140
+ var bitwiseExpressionString = this.string; ///
141
+ context.trace("Evaluating the '".concat(bitwiseExpressionString, "' bitwise expression..."));
142
+ var Expression = _dom.default.Expression, leftExpression = this.leftExpression.evaluate(context), rightExpression = this.rightExpression.evaluate(context), leftExpressionType = leftExpression.getType(), rightExpressionType = rightExpression.getType();
143
+ if (leftExpressionType !== _types.BOOLEAN_TYPE) {
144
+ var leftExpressionString = leftExpression.asString(context), message = "The ".concat(leftExpressionString, " left expression's type is '").concat(leftExpressionType, "' when it should be of type '").concat(_types.BOOLEAN_TYPE, "'."), exception = _exception.default.fromMessage(message);
145
+ throw exception;
146
+ }
147
+ if (rightExpressionType !== _types.BOOLEAN_TYPE) {
148
+ var rightExpressionString = rightExpression.asString(context), message1 = "The ".concat(rightExpressionString, " right expression's type is '").concat(rightExpressionType, "' when it should be of type '").concat(_types.BOOLEAN_TYPE, "'."), exception1 = _exception.default.fromMessage(message1);
149
+ throw exception1;
150
+ }
151
+ var leftExpressionBoolean = leftExpression.getBoolean(), rightExpressionBoolean = rightExpression.getBoolean(), boolean = this.disjoint ? leftExpressionBoolean || rightExpressionBoolean : leftExpressionBoolean && rightExpressionBoolean;
152
+ expression = Expression.fromBoolean(boolean, context); ///
153
+ context.debug("...evaluated the '".concat(bitwiseExpressionString, "' bitwise expression."));
154
+ return expression;
155
+ }
156
+ }
157
+ ], [
158
+ {
159
+ key: "fromExpressionNode",
160
+ value: function fromExpressionNode(expressionNode, context) {
161
+ var bitwiseExpression = null;
162
+ var expressionBitwiseExpressionNode = expressionBitwiseExpressionNodeQuery(expressionNode);
163
+ if (expressionBitwiseExpressionNode !== null) {
164
+ var bitwiseExpressionNode = expressionBitwiseExpressionNode; ///
165
+ bitwiseExpression = bitwiseExpressionFromBitwiseExpressionNode(bitwiseExpressionNode, context);
166
+ }
167
+ return bitwiseExpression;
168
+ }
169
+ }
170
+ ]);
171
+ return BitwiseExpression;
172
+ }(), _define_property(_BitwiseExpression, "name", "BitwiseExpression"), _BitwiseExpression));
173
+ function bitwiseExpressionFromBitwiseExpressionNode(bitwiseExpressionNode, context) {
174
+ var Expression = _dom.default.Expression, BitwiseExpression = _dom.default.BitwiseExpression, leftExpressionNode = leftExpressionNodeQuery(bitwiseExpressionNode), rightExpressionNode = rightExpressionNodeQuery(bitwiseExpressionNode), type = _types.BOOLEAN_TYPE, disjoint = disjointFromBitwiseExpressionNode(bitwiseExpressionNode, context), leftExpression = Expression.fromExpressionNode(leftExpressionNode, context), rightExpression = Expression.fromExpressionNode(rightExpressionNode, context), string = stringFromTypeDisjointLeftExpressionAndRightExpression(disjoint, leftExpression, rightExpression, context), bitwiseExpression = new BitwiseExpression(string, type, disjoint, leftExpression, rightExpression);
175
+ return bitwiseExpression;
176
+ }
177
+ function disjointFromBitwiseExpressionNode(bitwiseExpressionNode, context) {
178
+ var terminalNode = terminalNodeQuery(bitwiseExpressionNode), terminalNodeContent = terminalNode.getContent(), disjoint = terminalNodeContent === _constants.DISJUNCTION;
179
+ return disjoint;
180
+ }
181
+ function stringFromTypeDisjointLeftExpressionAndRightExpression(disjoint, leftExpression, rightExpression, context) {
182
+ var operatorString = disjoint ? _constants.DISJUNCTION : _constants.CONJUNCTION, leftExpressionString = leftExpression.asString(context), rightExpressionString = rightExpression.asString(context), string = "".concat(leftExpressionString, " ").concat(operatorString, " ").concat(rightExpressionString);
183
+ return string;
184
+ }
185
+
186
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9kb20vZXhwcmVzc2lvbi9iaXR3aXNlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgZG9tIGZyb20gXCIuLi8uLi9kb21cIjtcbmltcG9ydCBFeGNlcHRpb24gZnJvbSBcIi4uLy4uL2V4Y2VwdGlvblwiO1xuXG5pbXBvcnQgeyBub2RlUXVlcnkgfSBmcm9tIFwiLi4vLi4vdXRpbGl0aWVzL3F1ZXJ5XCI7XG5pbXBvcnQgeyBkb21Bc3NpZ25lZCB9IGZyb20gXCIuLi8uLi9kb21cIjtcbmltcG9ydCB7IEJPT0xFQU5fVFlQRSB9IGZyb20gXCIuLi8uLi90eXBlc1wiO1xuaW1wb3J0IHsgQ09OSlVOQ1RJT04sIERJU0pVTkNUSU9OIH0gZnJvbSBcIi4uLy4uL2NvbnN0YW50c1wiO1xuXG5jb25zdCB0ZXJtaW5hbE5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9iaXR3aXNlRXhwcmVzc2lvbi9AKlwiKSxcbiAgICAgIGxlZnRFeHByZXNzaW9uTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL2JpdHdpc2VFeHByZXNzaW9uL2V4cHJlc3Npb25bMF1cIiksXG4gICAgICByaWdodEV4cHJlc3Npb25Ob2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvYml0d2lzZUV4cHJlc3Npb24vZXhwcmVzc2lvblsxXVwiKSxcbiAgICAgIGV4cHJlc3Npb25CaXR3aXNlRXhwcmVzc2lvbk5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9leHByZXNzaW9uL2JpdHdpc2VFeHByZXNzaW9uXCIpO1xuXG5leHBvcnQgZGVmYXVsdCBkb21Bc3NpZ25lZChjbGFzcyBCaXR3aXNlRXhwcmVzc2lvbiB7XG4gIGNvbnN0cnVjdG9yKHN0cmluZywgdHlwZSwgZGlzam9pbnQsIGxlZnRFeHByZXNzaW9uLCByaWdodEV4cHJlc3Npb24pIHtcbiAgICB0aGlzLnN0cmluZyA9IHN0cmluZztcbiAgICB0aGlzLnR5cGUgPSB0eXBlO1xuICAgIHRoaXMuZGlzam9pbnQgPSBkaXNqb2ludDtcbiAgICB0aGlzLmxlZnRFeHByZXNzaW9uID0gbGVmdEV4cHJlc3Npb247XG4gICAgdGhpcy5yaWdodEV4cHJlc3Npb24gPSByaWdodEV4cHJlc3Npb247XG4gIH1cblxuICBnZXRTdHJpbmcoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RyaW5nO1xuICB9XG5cbiAgZ2V0VHlwZSgpIHtcbiAgICByZXR1cm4gdGhpcy50eXBlO1xuICB9XG5cbiAgaXNEaXNqb2ludCgpIHtcbiAgICByZXR1cm4gdGhpcy5kaXNqb2ludDtcbiAgfVxuXG4gIGdldExlZnRFeHByZXNzaW9uKCkge1xuICAgIHJldHVybiB0aGlzLmxlZnRFeHByZXNzaW9uO1xuICB9XG5cbiAgZ2V0UmlnaHRFeHByZXNzaW9uKCkge1xuICAgIHJldHVybiB0aGlzLnJpZ2h0RXhwcmVzc2lvbjtcbiAgfVxuXG4gIGV2YWx1YXRlKGNvbnRleHQpIHtcbiAgICBsZXQgZXhwcmVzc2lvbjtcblxuICAgIGNvbnN0IGJpdHdpc2VFeHByZXNzaW9uU3RyaW5nID0gdGhpcy5zdHJpbmc7IC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgRXZhbHVhdGluZyB0aGUgJyR7Yml0d2lzZUV4cHJlc3Npb25TdHJpbmd9JyBiaXR3aXNlIGV4cHJlc3Npb24uLi5gKTtcblxuICAgIGNvbnN0IHsgRXhwcmVzc2lvbiB9ID0gZG9tLFxuICAgICAgICAgIGxlZnRFeHByZXNzaW9uID0gdGhpcy5sZWZ0RXhwcmVzc2lvbi5ldmFsdWF0ZShjb250ZXh0KSxcbiAgICAgICAgICByaWdodEV4cHJlc3Npb24gPSB0aGlzLnJpZ2h0RXhwcmVzc2lvbi5ldmFsdWF0ZShjb250ZXh0KSxcbiAgICAgICAgICBsZWZ0RXhwcmVzc2lvblR5cGUgPSBsZWZ0RXhwcmVzc2lvbi5nZXRUeXBlKCksXG4gICAgICAgICAgcmlnaHRFeHByZXNzaW9uVHlwZSA9IHJpZ2h0RXhwcmVzc2lvbi5nZXRUeXBlKCk7XG5cbiAgICBpZiAobGVmdEV4cHJlc3Npb25UeXBlICE9PSBCT09MRUFOX1RZUEUpIHtcbiAgICAgIGNvbnN0IGxlZnRFeHByZXNzaW9uU3RyaW5nID0gbGVmdEV4cHJlc3Npb24uYXNTdHJpbmcoY29udGV4dCksXG4gICAgICAgICAgICBtZXNzYWdlID0gYFRoZSAke2xlZnRFeHByZXNzaW9uU3RyaW5nfSBsZWZ0IGV4cHJlc3Npb24ncyB0eXBlIGlzICcke2xlZnRFeHByZXNzaW9uVHlwZX0nIHdoZW4gaXQgc2hvdWxkIGJlIG9mIHR5cGUgJyR7Qk9PTEVBTl9UWVBFfScuYCxcbiAgICAgICAgICAgIGV4Y2VwdGlvbiA9IEV4Y2VwdGlvbi5mcm9tTWVzc2FnZShtZXNzYWdlKTtcblxuICAgICAgdGhyb3cgZXhjZXB0aW9uO1xuICAgIH1cblxuICAgIGlmIChyaWdodEV4cHJlc3Npb25UeXBlICE9PSBCT09MRUFOX1RZUEUpIHtcbiAgICAgIGNvbnN0IHJpZ2h0RXhwcmVzc2lvblN0cmluZyA9IHJpZ2h0RXhwcmVzc2lvbi5hc1N0cmluZyhjb250ZXh0KSxcbiAgICAgICAgICAgIG1lc3NhZ2UgPSBgVGhlICR7cmlnaHRFeHByZXNzaW9uU3RyaW5nfSByaWdodCBleHByZXNzaW9uJ3MgdHlwZSBpcyAnJHtyaWdodEV4cHJlc3Npb25UeXBlfScgd2hlbiBpdCBzaG91bGQgYmUgb2YgdHlwZSAnJHtCT09MRUFOX1RZUEV9Jy5gLFxuICAgICAgICAgICAgZXhjZXB0aW9uID0gRXhjZXB0aW9uLmZyb21NZXNzYWdlKG1lc3NhZ2UpO1xuXG4gICAgICB0aHJvdyBleGNlcHRpb247XG4gICAgfVxuXG4gICAgY29uc3QgbGVmdEV4cHJlc3Npb25Cb29sZWFuID0gbGVmdEV4cHJlc3Npb24uZ2V0Qm9vbGVhbigpLFxuICAgICAgICAgIHJpZ2h0RXhwcmVzc2lvbkJvb2xlYW4gPSByaWdodEV4cHJlc3Npb24uZ2V0Qm9vbGVhbigpLFxuICAgICAgICAgIGJvb2xlYW4gPSB0aGlzLmRpc2pvaW50ID9cbiAgICAgICAgICAgICAgICAgICAgICAobGVmdEV4cHJlc3Npb25Cb29sZWFuIHx8IHJpZ2h0RXhwcmVzc2lvbkJvb2xlYW4pIDpcbiAgICAgICAgICAgICAgICAgICAgICAgIChsZWZ0RXhwcmVzc2lvbkJvb2xlYW4gJiYgcmlnaHRFeHByZXNzaW9uQm9vbGVhbik7XG5cbiAgICBleHByZXNzaW9uID0gRXhwcmVzc2lvbi5mcm9tQm9vbGVhbihib29sZWFuLCBjb250ZXh0KTsgIC8vL1xuXG4gICAgY29udGV4dC5kZWJ1ZyhgLi4uZXZhbHVhdGVkIHRoZSAnJHtiaXR3aXNlRXhwcmVzc2lvblN0cmluZ30nIGJpdHdpc2UgZXhwcmVzc2lvbi5gKTtcblxuICAgIHJldHVybiBleHByZXNzaW9uO1xuICB9XG5cbiAgc3RhdGljIG5hbWUgPSBcIkJpdHdpc2VFeHByZXNzaW9uXCI7XG5cbiAgc3RhdGljIGZyb21FeHByZXNzaW9uTm9kZShleHByZXNzaW9uTm9kZSwgY29udGV4dCkge1xuICAgIGxldCBiaXR3aXNlRXhwcmVzc2lvbiA9IG51bGw7XG5cbiAgICBjb25zdCBleHByZXNzaW9uQml0d2lzZUV4cHJlc3Npb25Ob2RlID0gZXhwcmVzc2lvbkJpdHdpc2VFeHByZXNzaW9uTm9kZVF1ZXJ5KGV4cHJlc3Npb25Ob2RlKTtcblxuICAgIGlmIChleHByZXNzaW9uQml0d2lzZUV4cHJlc3Npb25Ob2RlICE9PSBudWxsKSB7XG4gICAgICBjb25zdCBiaXR3aXNlRXhwcmVzc2lvbk5vZGUgPSBleHByZXNzaW9uQml0d2lzZUV4cHJlc3Npb25Ob2RlOyAvLy9cblxuICAgICAgYml0d2lzZUV4cHJlc3Npb24gPSBiaXR3aXNlRXhwcmVzc2lvbkZyb21CaXR3aXNlRXhwcmVzc2lvbk5vZGUoYml0d2lzZUV4cHJlc3Npb25Ob2RlLCBjb250ZXh0KTtcbiAgICB9XG5cbiAgICByZXR1cm4gYml0d2lzZUV4cHJlc3Npb247XG4gIH1cbn0pO1xuXG5mdW5jdGlvbiBiaXR3aXNlRXhwcmVzc2lvbkZyb21CaXR3aXNlRXhwcmVzc2lvbk5vZGUoYml0d2lzZUV4cHJlc3Npb25Ob2RlLCBjb250ZXh0KSB7XG4gIGNvbnN0IHsgRXhwcmVzc2lvbiwgQml0d2lzZUV4cHJlc3Npb24gfSA9IGRvbSxcbiAgICAgICAgbGVmdEV4cHJlc3Npb25Ob2RlID0gbGVmdEV4cHJlc3Npb25Ob2RlUXVlcnkoYml0d2lzZUV4cHJlc3Npb25Ob2RlKSxcbiAgICAgICAgcmlnaHRFeHByZXNzaW9uTm9kZSA9IHJpZ2h0RXhwcmVzc2lvbk5vZGVRdWVyeShiaXR3aXNlRXhwcmVzc2lvbk5vZGUpLFxuICAgICAgICB0eXBlID0gQk9PTEVBTl9UWVBFLFxuICAgICAgICBkaXNqb2ludCA9IGRpc2pvaW50RnJvbUJpdHdpc2VFeHByZXNzaW9uTm9kZShiaXR3aXNlRXhwcmVzc2lvbk5vZGUsIGNvbnRleHQpLFxuICAgICAgICBsZWZ0RXhwcmVzc2lvbiA9IEV4cHJlc3Npb24uZnJvbUV4cHJlc3Npb25Ob2RlKGxlZnRFeHByZXNzaW9uTm9kZSwgY29udGV4dCksXG4gICAgICAgIHJpZ2h0RXhwcmVzc2lvbiA9IEV4cHJlc3Npb24uZnJvbUV4cHJlc3Npb25Ob2RlKHJpZ2h0RXhwcmVzc2lvbk5vZGUsIGNvbnRleHQpLFxuICAgICAgICBzdHJpbmcgPSBzdHJpbmdGcm9tVHlwZURpc2pvaW50TGVmdEV4cHJlc3Npb25BbmRSaWdodEV4cHJlc3Npb24oZGlzam9pbnQsIGxlZnRFeHByZXNzaW9uLCByaWdodEV4cHJlc3Npb24sIGNvbnRleHQpLFxuICAgICAgICBiaXR3aXNlRXhwcmVzc2lvbiA9IG5ldyBCaXR3aXNlRXhwcmVzc2lvbihzdHJpbmcsIHR5cGUsIGRpc2pvaW50LCBsZWZ0RXhwcmVzc2lvbiwgcmlnaHRFeHByZXNzaW9uKTtcblxuICByZXR1cm4gYml0d2lzZUV4cHJlc3Npb247XG59XG5cbmZ1bmN0aW9uIGRpc2pvaW50RnJvbUJpdHdpc2VFeHByZXNzaW9uTm9kZShiaXR3aXNlRXhwcmVzc2lvbk5vZGUsIGNvbnRleHQpIHtcbiAgY29uc3QgdGVybWluYWxOb2RlID0gdGVybWluYWxOb2RlUXVlcnkoYml0d2lzZUV4cHJlc3Npb25Ob2RlKSxcbiAgICAgICAgdGVybWluYWxOb2RlQ29udGVudCA9IHRlcm1pbmFsTm9kZS5nZXRDb250ZW50KCksXG4gICAgICAgIGRpc2pvaW50ID0gKHRlcm1pbmFsTm9kZUNvbnRlbnQgPT09IERJU0pVTkNUSU9OKTtcblxuICByZXR1cm4gZGlzam9pbnQ7XG59XG5cbmZ1bmN0aW9uIHN0cmluZ0Zyb21UeXBlRGlzam9pbnRMZWZ0RXhwcmVzc2lvbkFuZFJpZ2h0RXhwcmVzc2lvbihkaXNqb2ludCwgbGVmdEV4cHJlc3Npb24sIHJpZ2h0RXhwcmVzc2lvbiwgY29udGV4dCkge1xuICBjb25zdCBvcGVyYXRvclN0cmluZyA9IGRpc2pvaW50ID9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgIERJU0pVTkNUSU9OIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ09OSlVOQ1RJT04sXG4gICAgICAgIGxlZnRFeHByZXNzaW9uU3RyaW5nID0gbGVmdEV4cHJlc3Npb24uYXNTdHJpbmcoY29udGV4dCksXG4gICAgICAgIHJpZ2h0RXhwcmVzc2lvblN0cmluZyA9IHJpZ2h0RXhwcmVzc2lvbi5hc1N0cmluZyhjb250ZXh0KSxcbiAgICAgICAgc3RyaW5nID0gYCR7bGVmdEV4cHJlc3Npb25TdHJpbmd9ICR7b3BlcmF0b3JTdHJpbmd9ICR7cmlnaHRFeHByZXNzaW9uU3RyaW5nfWA7XG5cbiAgcmV0dXJuIHN0cmluZztcbn1cbiJdLCJuYW1lcyI6WyJ0ZXJtaW5hbE5vZGVRdWVyeSIsIm5vZGVRdWVyeSIsImxlZnRFeHByZXNzaW9uTm9kZVF1ZXJ5IiwicmlnaHRFeHByZXNzaW9uTm9kZVF1ZXJ5IiwiZXhwcmVzc2lvbkJpdHdpc2VFeHByZXNzaW9uTm9kZVF1ZXJ5IiwiZG9tQXNzaWduZWQiLCJCaXR3aXNlRXhwcmVzc2lvbiIsInN0cmluZyIsInR5cGUiLCJkaXNqb2ludCIsImxlZnRFeHByZXNzaW9uIiwicmlnaHRFeHByZXNzaW9uIiwiZ2V0U3RyaW5nIiwiZ2V0VHlwZSIsImlzRGlzam9pbnQiLCJnZXRMZWZ0RXhwcmVzc2lvbiIsImdldFJpZ2h0RXhwcmVzc2lvbiIsImV2YWx1YXRlIiwiY29udGV4dCIsImV4cHJlc3Npb24iLCJiaXR3aXNlRXhwcmVzc2lvblN0cmluZyIsInRyYWNlIiwiRXhwcmVzc2lvbiIsImRvbSIsImxlZnRFeHByZXNzaW9uVHlwZSIsInJpZ2h0RXhwcmVzc2lvblR5cGUiLCJCT09MRUFOX1RZUEUiLCJsZWZ0RXhwcmVzc2lvblN0cmluZyIsImFzU3RyaW5nIiwibWVzc2FnZSIsImV4Y2VwdGlvbiIsIkV4Y2VwdGlvbiIsImZyb21NZXNzYWdlIiwicmlnaHRFeHByZXNzaW9uU3RyaW5nIiwibGVmdEV4cHJlc3Npb25Cb29sZWFuIiwiZ2V0Qm9vbGVhbiIsInJpZ2h0RXhwcmVzc2lvbkJvb2xlYW4iLCJib29sZWFuIiwiZnJvbUJvb2xlYW4iLCJkZWJ1ZyIsImZyb21FeHByZXNzaW9uTm9kZSIsImV4cHJlc3Npb25Ob2RlIiwiYml0d2lzZUV4cHJlc3Npb24iLCJleHByZXNzaW9uQml0d2lzZUV4cHJlc3Npb25Ob2RlIiwiYml0d2lzZUV4cHJlc3Npb25Ob2RlIiwiYml0d2lzZUV4cHJlc3Npb25Gcm9tQml0d2lzZUV4cHJlc3Npb25Ob2RlIiwibmFtZSIsImxlZnRFeHByZXNzaW9uTm9kZSIsInJpZ2h0RXhwcmVzc2lvbk5vZGUiLCJkaXNqb2ludEZyb21CaXR3aXNlRXhwcmVzc2lvbk5vZGUiLCJzdHJpbmdGcm9tVHlwZURpc2pvaW50TGVmdEV4cHJlc3Npb25BbmRSaWdodEV4cHJlc3Npb24iLCJ0ZXJtaW5hbE5vZGUiLCJ0ZXJtaW5hbE5vZGVDb250ZW50IiwiZ2V0Q29udGVudCIsIkRJU0pVTkNUSU9OIiwib3BlcmF0b3JTdHJpbmciLCJDT05KVU5DVElPTiJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBZUE7OztlQUFBOzs7MkRBYmdCO2dFQUNNO3FCQUVJO3FCQUVHO3lCQUNZOzs7Ozs7Ozs7Ozs7Ozs7Ozs7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