occam-verify-cli 1.0.172 → 1.0.175

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 (149) hide show
  1. package/lib/dom/constructor.js +11 -11
  2. package/lib/dom/declaration/combinator.js +3 -3
  3. package/lib/dom/declaration/complexType.js +41 -23
  4. package/lib/dom/declaration/constructor.js +35 -42
  5. package/lib/dom/declaration/type.js +26 -27
  6. package/lib/dom/declaration/variable.js +29 -44
  7. package/lib/dom/metaType.js +2 -3
  8. package/lib/dom/metavariable.js +4 -5
  9. package/lib/dom/property.js +3 -4
  10. package/lib/dom/statement.js +13 -62
  11. package/lib/dom/term.js +17 -14
  12. package/lib/dom/type.js +35 -102
  13. package/lib/dom/variable.js +8 -6
  14. package/lib/mixins/node.js +145 -0
  15. package/lib/node/assertion/contained.js +23 -1
  16. package/lib/node/assertion/defined.js +23 -1
  17. package/lib/node/assertion/property.js +23 -1
  18. package/lib/node/assertion/satisfies.js +23 -1
  19. package/lib/node/assertion/subproof.js +23 -1
  20. package/lib/node/assertion/type.js +23 -1
  21. package/lib/node/axiom.js +23 -1
  22. package/lib/node/combinator.js +23 -1
  23. package/lib/node/conclusion.js +23 -1
  24. package/lib/node/conjecture.js +23 -1
  25. package/lib/node/constructor.js +23 -1
  26. package/lib/node/declaration/combinator.js +34 -1
  27. package/lib/node/declaration/complexType.js +81 -1
  28. package/lib/node/declaration/constructor.js +62 -1
  29. package/lib/node/declaration/metavariable.js +23 -1
  30. package/lib/node/declaration/property.js +180 -0
  31. package/lib/node/declaration/type.js +67 -1
  32. package/lib/node/declaration/variable.js +78 -1
  33. package/lib/node/declaration.js +23 -1
  34. package/lib/node/deduction.js +23 -1
  35. package/lib/node/derivation.js +23 -1
  36. package/lib/node/equality.js +23 -1
  37. package/lib/node/error.js +23 -1
  38. package/lib/node/frame.js +23 -1
  39. package/lib/node/judgement.js +23 -1
  40. package/lib/node/label.js +23 -1
  41. package/lib/node/lemma.js +23 -1
  42. package/lib/node/metaLemma.js +23 -1
  43. package/lib/node/metaType.js +34 -1
  44. package/lib/node/metatheorem.js +23 -1
  45. package/lib/node/metavariable.js +34 -1
  46. package/lib/node/parameter.js +23 -1
  47. package/lib/node/premise.js +23 -1
  48. package/lib/node/procedureCall.js +23 -1
  49. package/lib/node/proof.js +23 -1
  50. package/lib/node/property.js +35 -1
  51. package/lib/node/propertyRelation.js +23 -1
  52. package/lib/node/reference.js +23 -1
  53. package/lib/node/rule.js +23 -1
  54. package/lib/node/statement.js +23 -1
  55. package/lib/node/step.js +23 -1
  56. package/lib/node/subDerivation.js +23 -1
  57. package/lib/node/subproof.js +23 -1
  58. package/lib/node/supposition.js +23 -1
  59. package/lib/node/term.js +23 -1
  60. package/lib/node/theorem.js +23 -1
  61. package/lib/node/topLevelAssertion.js +23 -1
  62. package/lib/node/topLevelMetaAssertion.js +23 -1
  63. package/lib/node/type.js +34 -1
  64. package/lib/node/variable.js +34 -1
  65. package/lib/node.js +73 -2
  66. package/lib/nodeMap.js +5 -3
  67. package/lib/ruleNames.js +9 -1
  68. package/lib/unifier/metavariable.js +2 -3
  69. package/lib/unifier/statementWithCombinator.js +2 -3
  70. package/lib/unifier/termWithConstructor.js +2 -3
  71. package/lib/utilities/node.js +84 -0
  72. package/lib/verifier/combinator.js +2 -3
  73. package/lib/verifier/constructor.js +2 -3
  74. package/package.json +2 -2
  75. package/src/dom/constructor.js +10 -12
  76. package/src/dom/declaration/combinator.js +2 -2
  77. package/src/dom/declaration/complexType.js +43 -52
  78. package/src/dom/declaration/constructor.js +49 -57
  79. package/src/dom/declaration/type.js +34 -37
  80. package/src/dom/declaration/variable.js +30 -54
  81. package/src/dom/metaType.js +1 -2
  82. package/src/dom/metavariable.js +3 -4
  83. package/src/dom/property.js +5 -7
  84. package/src/dom/statement.js +6 -24
  85. package/src/dom/term.js +8 -14
  86. package/src/dom/type.js +45 -165
  87. package/src/dom/variable.js +19 -11
  88. package/src/mixins/node.js +201 -0
  89. package/src/node/assertion/contained.js +3 -1
  90. package/src/node/assertion/defined.js +3 -1
  91. package/src/node/assertion/property.js +3 -1
  92. package/src/node/assertion/satisfies.js +3 -1
  93. package/src/node/assertion/subproof.js +3 -1
  94. package/src/node/assertion/type.js +3 -1
  95. package/src/node/axiom.js +3 -1
  96. package/src/node/combinator.js +3 -1
  97. package/src/node/conclusion.js +3 -1
  98. package/src/node/conjecture.js +3 -1
  99. package/src/node/constructor.js +3 -1
  100. package/src/node/declaration/combinator.js +13 -1
  101. package/src/node/declaration/complexType.js +73 -1
  102. package/src/node/declaration/constructor.js +47 -1
  103. package/src/node/declaration/metavariable.js +3 -1
  104. package/src/node/declaration/property.js +36 -0
  105. package/src/node/declaration/type.js +58 -1
  106. package/src/node/declaration/variable.js +67 -1
  107. package/src/node/declaration.js +3 -1
  108. package/src/node/deduction.js +3 -1
  109. package/src/node/derivation.js +3 -1
  110. package/src/node/equality.js +3 -1
  111. package/src/node/error.js +3 -1
  112. package/src/node/frame.js +3 -1
  113. package/src/node/judgement.js +3 -1
  114. package/src/node/label.js +3 -1
  115. package/src/node/lemma.js +3 -1
  116. package/src/node/metaLemma.js +3 -1
  117. package/src/node/metaType.js +15 -1
  118. package/src/node/metatheorem.js +3 -1
  119. package/src/node/metavariable.js +15 -1
  120. package/src/node/parameter.js +3 -1
  121. package/src/node/premise.js +3 -1
  122. package/src/node/procedureCall.js +3 -1
  123. package/src/node/proof.js +3 -1
  124. package/src/node/property.js +18 -1
  125. package/src/node/propertyRelation.js +3 -1
  126. package/src/node/reference.js +3 -1
  127. package/src/node/rule.js +3 -1
  128. package/src/node/statement.js +3 -1
  129. package/src/node/step.js +3 -1
  130. package/src/node/subDerivation.js +3 -1
  131. package/src/node/subproof.js +3 -1
  132. package/src/node/supposition.js +3 -1
  133. package/src/node/term.js +3 -1
  134. package/src/node/theorem.js +3 -1
  135. package/src/node/topLevelAssertion.js +3 -1
  136. package/src/node/topLevelMetaAssertion.js +3 -1
  137. package/src/node/type.js +15 -1
  138. package/src/node/variable.js +15 -1
  139. package/src/node.js +23 -1
  140. package/src/nodeMap.js +7 -1
  141. package/src/ruleNames.js +2 -0
  142. package/src/unifier/metavariable.js +1 -2
  143. package/src/unifier/statementWithCombinator.js +1 -2
  144. package/src/unifier/termWithConstructor.js +1 -2
  145. package/src/utilities/node.js +72 -0
  146. package/src/verifier/combinator.js +1 -2
  147. package/src/verifier/constructor.js +1 -2
  148. package/lib/utilities/name.js +0 -44
  149. package/src/utilities/name.js +0 -39
@@ -9,8 +9,7 @@ Object.defineProperty(exports, "default", {
9
9
  }
10
10
  });
11
11
  var _dom = /*#__PURE__*/ _interop_require_wildcard(require("../dom"));
12
- var _local = /*#__PURE__*/ _interop_require_default(require("../context/local"));
13
- var _type = require("./type");
12
+ var _type = require("../dom/type");
14
13
  var _unification = require("../utilities/unification");
15
14
  var _json = require("../utilities/json");
16
15
  function _class_call_check(instance, Constructor) {
@@ -32,11 +31,6 @@ function _create_class(Constructor, protoProps, staticProps) {
32
31
  if (staticProps) _defineProperties(Constructor, staticProps);
33
32
  return Constructor;
34
33
  }
35
- function _interop_require_default(obj) {
36
- return obj && obj.__esModule ? obj : {
37
- default: obj
38
- };
39
- }
40
34
  function _getRequireWildcardCache(nodeInterop) {
41
35
  if (typeof WeakMap !== "function") return null;
42
36
  var cacheBabelInterop = new WeakMap();
@@ -103,6 +97,12 @@ var _default = (0, _dom.domAssigned)(/*#__PURE__*/ function() {
103
97
  return this.term.getType();
104
98
  }
105
99
  },
100
+ {
101
+ key: "isProvisional",
102
+ value: function isProvisional() {
103
+ return this.term.isProvisional();
104
+ }
105
+ },
106
106
  {
107
107
  key: "setType",
108
108
  value: function setType(type) {
@@ -142,14 +142,14 @@ var _default = (0, _dom.domAssigned)(/*#__PURE__*/ function() {
142
142
  {
143
143
  key: "fromJSON",
144
144
  value: function fromJSON(json, fileContext) {
145
- var provisional = json.provisional, term = (0, _json.termFromJSON)(json, fileContext), string = stringFromTermAndProvisional(term, provisional), constructor = new Constructor(string, term, provisional);
145
+ var term = (0, _json.termFromJSON)(json, fileContext), string = stringFromTerm(term), constructor = new Constructor(string, term);
146
146
  return constructor;
147
147
  }
148
148
  },
149
149
  {
150
150
  key: "fromConstructorDeclarationNode",
151
151
  value: function fromConstructorDeclarationNode(constructorDeclarationNode, fileContext) {
152
- var Term = _dom.default.Term, localContext = _local.default.fromFileContext(fileContext), context = localContext, term = Term.fromConstructorDeclarationNode(constructorDeclarationNode, context), string = stringFromTerm(term), constructor = new Constructor(string, term);
152
+ var Term = _dom.default.Term, term = Term.fromConstructorDeclarationNode(constructorDeclarationNode, fileContext), string = stringFromTerm(term), constructor = new Constructor(string, term);
153
153
  return constructor;
154
154
  }
155
155
  }
@@ -158,7 +158,7 @@ var _default = (0, _dom.domAssigned)(/*#__PURE__*/ function() {
158
158
  }());
159
159
  function stringFromTerm(term) {
160
160
  var string;
161
- var type = term.getType(), termString = term.getString();
161
+ var termString = term.getString(), type = term.getType();
162
162
  if (type === _type.objectType) {
163
163
  string = termString; ///
164
164
  } else {
@@ -168,4 +168,4 @@ function stringFromTerm(term) {
168
168
  return string;
169
169
  }
170
170
 
171
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kb20vY29uc3RydWN0b3IuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBkb20gZnJvbSBcIi4uL2RvbVwiO1xuaW1wb3J0IExvY2FsQ29udGV4dCBmcm9tIFwiLi4vY29udGV4dC9sb2NhbFwiO1xuXG5pbXBvcnQgeyBvYmplY3RUeXBlIH0gZnJvbSBcIi4vdHlwZVwiO1xuaW1wb3J0IHsgZG9tQXNzaWduZWQgfSBmcm9tIFwiLi4vZG9tXCI7XG5pbXBvcnQgeyB1bmlmeVRlcm1XaXRoQ29uc3RydWN0b3IgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3VuaWZpY2F0aW9uXCI7XG5pbXBvcnQgeyB0ZXJtRnJvbUpTT04sIHRlcm1Ub1Rlcm1KU09OIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9qc29uXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGRvbUFzc2lnbmVkKGNsYXNzIENvbnN0cnVjdG9yIHtcbiAgY29uc3RydWN0b3Ioc3RyaW5nLCB0ZXJtKSB7XG4gICAgdGhpcy5zdHJpbmcgPSBzdHJpbmc7XG4gICAgdGhpcy50ZXJtID0gdGVybTtcbiAgfVxuXG4gIGdldFN0cmluZygpIHtcbiAgICByZXR1cm4gdGhpcy5zdHJpbmc7XG4gIH1cblxuICBnZXRUZXJtKCkge1xuICAgIHJldHVybiB0aGlzLnRlcm07XG4gIH1cblxuICBnZXRUeXBlKCkgeyByZXR1cm4gdGhpcy50ZXJtLmdldFR5cGUoKTsgfVxuXG4gIHNldFR5cGUodHlwZSkgeyB0aGlzLnRlcm0uc2V0VHlwZSh0eXBlKTsgfVxuXG4gIHVuaWZ5VGVybSh0ZXJtLCBjb250ZXh0LCB2ZXJpZnlBaGVhZCkge1xuICAgIGxldCB0ZXJtVW5pZmllZCA9IGZhbHNlO1xuXG4gICAgY29uc3QgY29uc3RydWN0b3IgPSB0aGlzLCAvLy9cbiAgICAgICAgICB0ZXJtU3RyaW5nID0gdGVybS5nZXRTdHJpbmcoKSxcbiAgICAgICAgICBjb25zdHJ1Y3RvclN0cmluZyA9IGNvbnN0cnVjdG9yLmdldFN0cmluZygpO1xuXG4gICAgY29udGV4dC50cmFjZShgVW5pZnlpbmcgdGhlICcke3Rlcm1TdHJpbmd9JyB0ZXJtIHdpdGggdGhlICcke2NvbnN0cnVjdG9yU3RyaW5nfScgY29uc3RydWN0b3IuLi5gLCB0ZXJtKTtcblxuICAgIGNvbnN0IHRlcm1VbmlmaWVkV2l0aENvbnN0cnVjdG9yID0gdW5pZnlUZXJtV2l0aENvbnN0cnVjdG9yKHRlcm0sIGNvbnN0cnVjdG9yLCBjb250ZXh0KTtcblxuICAgIGlmICh0ZXJtVW5pZmllZFdpdGhDb25zdHJ1Y3Rvcikge1xuICAgICAgbGV0IHZlcmlmaWVkQWhlYWQ7XG5cbiAgICAgIGNvbnN0IHR5cGUgPSBjb25zdHJ1Y3Rvci5nZXRUeXBlKCk7XG5cbiAgICAgIHRlcm0uc2V0VHlwZSh0eXBlKTtcblxuICAgICAgdmVyaWZpZWRBaGVhZCA9IHZlcmlmeUFoZWFkKCk7XG5cbiAgICAgIHRlcm1VbmlmaWVkID0gdmVyaWZpZWRBaGVhZDsgIC8vL1xuICAgIH1cblxuICAgIGlmICh0ZXJtVW5pZmllZCkge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udW5pZmllZCB0aGUgJyR7dGVybVN0cmluZ30nIHRlcm0gd2l0aCB0aGUgJyR7Y29uc3RydWN0b3JTdHJpbmd9JyBjb25zdHJ1Y3Rvci5gLCB0ZXJtKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGVybVVuaWZpZWQ7XG4gIH1cblxuICB0b0pTT04oKSB7XG4gICAgY29uc3QgdGVybUpTT04gPSB0ZXJtVG9UZXJtSlNPTih0aGlzLnRlcm0pLFxuICAgICAgICAgIHRlcm0gPSB0ZXJtSlNPTiwgIC8vL1xuICAgICAgICAgIGpzb24gPSB7XG4gICAgICAgICAgICB0ZXJtXG4gICAgICAgICAgfTtcblxuICAgIHJldHVybiBqc29uO1xuICB9XG5cbiAgc3RhdGljIGZyb21KU09OKGpzb24sIGZpbGVDb250ZXh0KSB7XG4gICAgY29uc3QgeyBwcm92aXNpb25hbCB9ID0ganNvbixcbiAgICAgICAgICB0ZXJtID0gdGVybUZyb21KU09OKGpzb24sIGZpbGVDb250ZXh0KSxcbiAgICAgICAgICBzdHJpbmcgPSBzdHJpbmdGcm9tVGVybUFuZFByb3Zpc2lvbmFsKHRlcm0sIHByb3Zpc2lvbmFsKSxcbiAgICAgICAgICBjb25zdHJ1Y3RvciA9IG5ldyBDb25zdHJ1Y3RvcihzdHJpbmcsIHRlcm0sIHByb3Zpc2lvbmFsKTtcblxuICAgIHJldHVybiBjb25zdHJ1Y3RvcjtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tQ29uc3RydWN0b3JEZWNsYXJhdGlvbk5vZGUoY29uc3RydWN0b3JEZWNsYXJhdGlvbk5vZGUsIGZpbGVDb250ZXh0KSB7XG4gICAgY29uc3QgeyBUZXJtIH0gPSBkb20sXG4gICAgICAgICAgbG9jYWxDb250ZXh0ID0gTG9jYWxDb250ZXh0LmZyb21GaWxlQ29udGV4dChmaWxlQ29udGV4dCksXG4gICAgICAgICAgY29udGV4dCA9IGxvY2FsQ29udGV4dCwgLy8vXG4gICAgICAgICAgdGVybSA9IFRlcm0uZnJvbUNvbnN0cnVjdG9yRGVjbGFyYXRpb25Ob2RlKGNvbnN0cnVjdG9yRGVjbGFyYXRpb25Ob2RlLCBjb250ZXh0KSxcbiAgICAgICAgICBzdHJpbmcgPSBzdHJpbmdGcm9tVGVybSh0ZXJtKSxcbiAgICAgICAgICBjb25zdHJ1Y3RvciA9IG5ldyBDb25zdHJ1Y3RvcihzdHJpbmcsIHRlcm0pO1xuXG4gICAgcmV0dXJuIGNvbnN0cnVjdG9yO1xuICB9XG59KTtcblxuZnVuY3Rpb24gc3RyaW5nRnJvbVRlcm0odGVybSkge1xuICBsZXQgc3RyaW5nO1xuXG4gIGNvbnN0IHR5cGUgPSB0ZXJtLmdldFR5cGUoKSxcbiAgICAgICAgdGVybVN0cmluZyA9IHRlcm0uZ2V0U3RyaW5nKCk7XG5cbiAgaWYgKHR5cGUgPT09IG9iamVjdFR5cGUpIHtcbiAgICBzdHJpbmcgPSB0ZXJtU3RyaW5nOyAgLy8vXG4gIH0gZWxzZSB7XG4gICAgY29uc3QgdHlwZVN0cmluZyA9IHR5cGUuZ2V0U3RyaW5nKCk7XG5cbiAgICBzdHJpbmcgPSBgJHt0ZXJtU3RyaW5nfToke3R5cGVTdHJpbmd9YDtcbiAgfVxuXG4gIHJldHVybiBzdHJpbmc7XG59XG4iXSwibmFtZXMiOlsiZG9tQXNzaWduZWQiLCJDb25zdHJ1Y3RvciIsInN0cmluZyIsInRlcm0iLCJnZXRTdHJpbmciLCJnZXRUZXJtIiwiZ2V0VHlwZSIsInNldFR5cGUiLCJ0eXBlIiwidW5pZnlUZXJtIiwiY29udGV4dCIsInZlcmlmeUFoZWFkIiwidGVybVVuaWZpZWQiLCJjb25zdHJ1Y3RvciIsInRlcm1TdHJpbmciLCJjb25zdHJ1Y3RvclN0cmluZyIsInRyYWNlIiwidGVybVVuaWZpZWRXaXRoQ29uc3RydWN0b3IiLCJ1bmlmeVRlcm1XaXRoQ29uc3RydWN0b3IiLCJ2ZXJpZmllZEFoZWFkIiwiZGVidWciLCJ0b0pTT04iLCJ0ZXJtSlNPTiIsInRlcm1Ub1Rlcm1KU09OIiwianNvbiIsImZyb21KU09OIiwiZmlsZUNvbnRleHQiLCJwcm92aXNpb25hbCIsInRlcm1Gcm9tSlNPTiIsInN0cmluZ0Zyb21UZXJtQW5kUHJvdmlzaW9uYWwiLCJmcm9tQ29uc3RydWN0b3JEZWNsYXJhdGlvbk5vZGUiLCJjb25zdHJ1Y3RvckRlY2xhcmF0aW9uTm9kZSIsIlRlcm0iLCJkb20iLCJsb2NhbENvbnRleHQiLCJMb2NhbENvbnRleHQiLCJmcm9tRmlsZUNvbnRleHQiLCJzdHJpbmdGcm9tVGVybSIsIm9iamVjdFR5cGUiLCJ0eXBlU3RyaW5nIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFVQTs7O2VBQUE7OzsyREFSZ0I7NERBQ1M7b0JBRUU7MkJBRWM7b0JBQ0k7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQUU3QyxXQUFlQSxJQUFBQSxnQkFBVyxnQkFBQzthQUFNQyxZQUNuQkMsTUFBTSxFQUFFQyxJQUFJO2dDQURPRjtRQUU3QixJQUFJLENBQUNDLE1BQU0sR0FBR0E7UUFDZCxJ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
171
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kb20vY29uc3RydWN0b3IuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBkb20gZnJvbSBcIi4uL2RvbVwiO1xuXG5pbXBvcnQgeyBvYmplY3RUeXBlIH0gZnJvbSBcIi4uL2RvbS90eXBlXCI7XG5pbXBvcnQgeyBkb21Bc3NpZ25lZCB9IGZyb20gXCIuLi9kb21cIjtcbmltcG9ydCB7IHVuaWZ5VGVybVdpdGhDb25zdHJ1Y3RvciB9IGZyb20gXCIuLi91dGlsaXRpZXMvdW5pZmljYXRpb25cIjtcbmltcG9ydCB7IHRlcm1Gcm9tSlNPTiwgdGVybVRvVGVybUpTT04gfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2pzb25cIjtcblxuZXhwb3J0IGRlZmF1bHQgZG9tQXNzaWduZWQoY2xhc3MgQ29uc3RydWN0b3Ige1xuICBjb25zdHJ1Y3RvcihzdHJpbmcsIHRlcm0pIHtcbiAgICB0aGlzLnN0cmluZyA9IHN0cmluZztcbiAgICB0aGlzLnRlcm0gPSB0ZXJtO1xuICB9XG5cbiAgZ2V0U3RyaW5nKCkge1xuICAgIHJldHVybiB0aGlzLnN0cmluZztcbiAgfVxuXG4gIGdldFRlcm0oKSB7XG4gICAgcmV0dXJuIHRoaXMudGVybTtcbiAgfVxuXG4gIGdldFR5cGUoKSB7IHJldHVybiB0aGlzLnRlcm0uZ2V0VHlwZSgpOyB9XG5cbiAgaXNQcm92aXNpb25hbCgpIHsgcmV0dXJuIHRoaXMudGVybS5pc1Byb3Zpc2lvbmFsKCk7IH1cblxuICBzZXRUeXBlKHR5cGUpIHsgdGhpcy50ZXJtLnNldFR5cGUodHlwZSk7IH1cblxuICB1bmlmeVRlcm0odGVybSwgY29udGV4dCwgdmVyaWZ5QWhlYWQpIHtcbiAgICBsZXQgdGVybVVuaWZpZWQgPSBmYWxzZTtcblxuICAgIGNvbnN0IGNvbnN0cnVjdG9yID0gdGhpcywgLy8vXG4gICAgICAgICAgdGVybVN0cmluZyA9IHRlcm0uZ2V0U3RyaW5nKCksXG4gICAgICAgICAgY29uc3RydWN0b3JTdHJpbmcgPSBjb25zdHJ1Y3Rvci5nZXRTdHJpbmcoKTtcblxuICAgIGNvbnRleHQudHJhY2UoYFVuaWZ5aW5nIHRoZSAnJHt0ZXJtU3RyaW5nfScgdGVybSB3aXRoIHRoZSAnJHtjb25zdHJ1Y3RvclN0cmluZ30nIGNvbnN0cnVjdG9yLi4uYCwgdGVybSk7XG5cbiAgICBjb25zdCB0ZXJtVW5pZmllZFdpdGhDb25zdHJ1Y3RvciA9IHVuaWZ5VGVybVdpdGhDb25zdHJ1Y3Rvcih0ZXJtLCBjb25zdHJ1Y3RvciwgY29udGV4dCk7XG5cbiAgICBpZiAodGVybVVuaWZpZWRXaXRoQ29uc3RydWN0b3IpIHtcbiAgICAgIGxldCB2ZXJpZmllZEFoZWFkO1xuXG4gICAgICBjb25zdCB0eXBlID0gY29uc3RydWN0b3IuZ2V0VHlwZSgpO1xuXG4gICAgICB0ZXJtLnNldFR5cGUodHlwZSk7XG5cbiAgICAgIHZlcmlmaWVkQWhlYWQgPSB2ZXJpZnlBaGVhZCgpO1xuXG4gICAgICB0ZXJtVW5pZmllZCA9IHZlcmlmaWVkQWhlYWQ7ICAvLy9cbiAgICB9XG5cbiAgICBpZiAodGVybVVuaWZpZWQpIHtcbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLnVuaWZpZWQgdGhlICcke3Rlcm1TdHJpbmd9JyB0ZXJtIHdpdGggdGhlICcke2NvbnN0cnVjdG9yU3RyaW5nfScgY29uc3RydWN0b3IuYCwgdGVybSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRlcm1VbmlmaWVkO1xuICB9XG5cbiAgdG9KU09OKCkge1xuICAgIGNvbnN0IHRlcm1KU09OID0gdGVybVRvVGVybUpTT04odGhpcy50ZXJtKSxcbiAgICAgICAgICB0ZXJtID0gdGVybUpTT04sICAvLy9cbiAgICAgICAgICBqc29uID0ge1xuICAgICAgICAgICAgdGVybVxuICAgICAgICAgIH07XG5cbiAgICByZXR1cm4ganNvbjtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tSlNPTihqc29uLCBmaWxlQ29udGV4dCkge1xuICAgIGNvbnN0IHRlcm0gPSB0ZXJtRnJvbUpTT04oanNvbiwgZmlsZUNvbnRleHQpLFxuICAgICAgICAgIHN0cmluZyA9IHN0cmluZ0Zyb21UZXJtKHRlcm0pLFxuICAgICAgICAgIGNvbnN0cnVjdG9yID0gbmV3IENvbnN0cnVjdG9yKHN0cmluZywgdGVybSk7XG5cbiAgICByZXR1cm4gY29uc3RydWN0b3I7XG4gIH1cblxuICBzdGF0aWMgZnJvbUNvbnN0cnVjdG9yRGVjbGFyYXRpb25Ob2RlKGNvbnN0cnVjdG9yRGVjbGFyYXRpb25Ob2RlLCBmaWxlQ29udGV4dCkge1xuICAgIGNvbnN0IHsgVGVybSB9ID0gZG9tLFxuICAgICAgICAgIHRlcm0gPSBUZXJtLmZyb21Db25zdHJ1Y3RvckRlY2xhcmF0aW9uTm9kZShjb25zdHJ1Y3RvckRlY2xhcmF0aW9uTm9kZSwgZmlsZUNvbnRleHQpLFxuICAgICAgICAgIHN0cmluZyA9IHN0cmluZ0Zyb21UZXJtKHRlcm0pLFxuICAgICAgICAgIGNvbnN0cnVjdG9yID0gbmV3IENvbnN0cnVjdG9yKHN0cmluZywgdGVybSk7XG5cbiAgICByZXR1cm4gY29uc3RydWN0b3I7XG4gIH1cbn0pO1xuXG5mdW5jdGlvbiBzdHJpbmdGcm9tVGVybSh0ZXJtKSB7XG4gIGxldCBzdHJpbmc7XG5cbiAgY29uc3QgdGVybVN0cmluZyA9IHRlcm0uZ2V0U3RyaW5nKCksXG4gICAgICAgIHR5cGUgPSB0ZXJtLmdldFR5cGUoKTtcblxuICBpZiAodHlwZSA9PT0gb2JqZWN0VHlwZSkge1xuICAgIHN0cmluZyA9IHRlcm1TdHJpbmc7ICAvLy9cbiAgfSBlbHNlIHtcbiAgICBjb25zdCB0eXBlU3RyaW5nID0gdHlwZS5nZXRTdHJpbmcoKTtcblxuICAgIHN0cmluZyA9IGAke3Rlcm1TdHJpbmd9OiR7dHlwZVN0cmluZ31gO1xuICB9XG5cbiAgcmV0dXJuIHN0cmluZztcbn0iXSwibmFtZXMiOlsiZG9tQXNzaWduZWQiLCJDb25zdHJ1Y3RvciIsInN0cmluZyIsInRlcm0iLCJnZXRTdHJpbmciLCJnZXRUZXJtIiwiZ2V0VHlwZSIsImlzUHJvdmlzaW9uYWwiLCJzZXRUeXBlIiwidHlwZSIsInVuaWZ5VGVybSIsImNvbnRleHQiLCJ2ZXJpZnlBaGVhZCIsInRlcm1VbmlmaWVkIiwiY29uc3RydWN0b3IiLCJ0ZXJtU3RyaW5nIiwiY29uc3RydWN0b3JTdHJpbmciLCJ0cmFjZSIsInRlcm1VbmlmaWVkV2l0aENvbnN0cnVjdG9yIiwidW5pZnlUZXJtV2l0aENvbnN0cnVjdG9yIiwidmVyaWZpZWRBaGVhZCIsImRlYnVnIiwidG9KU09OIiwidGVybUpTT04iLCJ0ZXJtVG9UZXJtSlNPTiIsImpzb24iLCJmcm9tSlNPTiIsImZpbGVDb250ZXh0IiwidGVybUZyb21KU09OIiwic3RyaW5nRnJvbVRlcm0iLCJmcm9tQ29uc3RydWN0b3JEZWNsYXJhdGlvbk5vZGUiLCJjb25zdHJ1Y3RvckRlY2xhcmF0aW9uTm9kZSIsIlRlcm0iLCJkb20iLCJvYmplY3RUeXBlIiwidHlwZVN0cmluZyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBU0E7OztlQUFBOzs7MkRBUGdCO29CQUVXOzJCQUVjO29CQUNJOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lBRTdDLFdBQWVBLElBQUFBLGdCQUFXLGdCQUFDO2FBQU1DLFlBQ25CQyxNQUFNLEVBQUVDLElBQUk7Z0NBRE9GO1FBRTdCLElBQUksQ0FBQ0MsTUFBTSxHQUFHQTtRQUNkLElBQUksQ0FBQ0MsSUFBSSxHQUFHQTs7OztZQUdkQyxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsT0FBTyxJQUFJLENBQUNGLE1BQU07WUFDcEI7OztZQUVBRyxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsT0FBTyxJQUFJLENBQUNGLElBQUk7WUFDbEI7OztZQUVBRyxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQVksT0FBTyxJQUFJLENBQUNILElBQUksQ0FBQ0csT0FBTztZQUFJOzs7WUFFeENDLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFBa0IsT0FBTyxJQUFJLENBQUNKLElBQUksQ0FBQ0ksYUFBYTtZQUFJOzs7WUFFcERDLEtBQUFBO21CQUFBQSxTQUFBQSxRQUFRQyxJQUFJO2dCQUFJLElBQUksQ0FBQ04sSUFBSSxDQUFDSyxPQUFPLENBQUNDO1lBQU87OztZQUV6Q0MsS0FBQUE7bUJBQUFBLFNBQUFBLFVBQVVQLElBQUksRUFBRVEsT0FBTyxFQUFFQyxXQUFXO2dCQUNsQyxJQUFJQyxjQUFjO2dCQUVsQixJQUFNQyxjQUFjLElBQUksRUFDbEJDLGFBQWFaLEtBQUtDLFNBQVMsSUFDM0JZLG9CQUFvQkYsWUFBWVYsU0FBUztnQkFFL0NPLFFBQVFNLEtBQUssQ0FBQyxBQUFDLGlCQUE4Q0QsT0FBOUJELFlBQVcscUJBQXFDLE9BQWxCQyxtQkFBa0IscUJBQW1CYjtnQkFFbEcsSUFBTWUsNkJBQTZCQyxJQUFBQSxxQ0FBd0IsRUFBQ2hCLE1BQU1XLGFBQWFIO2dCQUUvRSxJQUFJTyw0QkFBNEI7b0JBQzlCLElBQUlFO29CQUVKLElBQU1YLE9BQU9LLFlBQVlSLE9BQU87b0JBRWhDSCxLQUFLSyxPQUFPLENBQUNDO29CQUViVyxnQkFBZ0JSO29CQUVoQkMsY0FBY08sZUFBZ0IsR0FBRztnQkFDbkM7Z0JBRUEsSUFBSVAsYUFBYTtvQkFDZkYsUUFBUVUsS0FBSyxDQUFDLEFBQUMsbUJBQWdETCxPQUE5QkQsWUFBVyxxQkFBcUMsT0FBbEJDLG1CQUFrQixtQkFBaUJiO2dCQUNwRztnQkFFQSxPQUFPVTtZQUNUOzs7WUFFQVMsS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLElBQU1DLFdBQVdDLElBQUFBLG9CQUFjLEVBQUMsSUFBSSxDQUFDckIsSUFBSSxHQUNuQ0EsT0FBT29CLFVBQ1BFLE9BQU87b0JBQ0x0QixNQUFBQTtnQkFDRjtnQkFFTixPQUFPc0I7WUFDVDs7OztZQUVPQyxLQUFBQTttQkFBUCxTQUFPQSxTQUFTRCxJQUFJLEVBQUVFLFdBQVc7Z0JBQy9CLElBQU14QixPQUFPeUIsSUFBQUEsa0JBQVksRUFBQ0gsTUFBTUUsY0FDMUJ6QixTQUFTMkIsZUFBZTFCLE9BQ3hCVyxjQUFjLElBQUliLFlBQVlDLFFBQVFDO2dCQUU1QyxPQUFPVztZQUNUOzs7WUFFT2dCLEtBQUFBO21CQUFQLFNBQU9BLCtCQUErQkMsMEJBQTBCLEVBQUVKLFdBQVc7Z0JBQzNFLElBQU0sQUFBRUssT0FBU0MsWUFBRyxDQUFaRCxNQUNGN0IsT0FBTzZCLEtBQUtGLDhCQUE4QixDQUFDQyw0QkFBNEJKLGNBQ3ZFekIsU0FBUzJCLGVBQWUxQixPQUN4QlcsY0FBYyxJQUFJYixZQUFZQyxRQUFRQztnQkFFNUMsT0FBT1c7WUFDVDs7Ozs7QUFHRixTQUFTZSxlQUFlMUIsSUFBSTtJQUMxQixJQUFJRDtJQUVKLElBQU1hLGFBQWFaLEtBQUtDLFNBQVMsSUFDM0JLLE9BQU9OLEtBQUtHLE9BQU87SUFFekIsSUFBSUcsU0FBU3lCLGdCQUFVLEVBQUU7UUFDdkJoQyxTQUFTYSxZQUFhLEdBQUc7SUFDM0IsT0FBTztRQUNMLElBQU1vQixhQUFhMUIsS0FBS0wsU0FBUztRQUVqQ0YsU0FBUyxBQUFDLEdBQWdCaUMsT0FBZHBCLFlBQVcsS0FBYyxPQUFYb0I7SUFDNUI7SUFFQSxPQUFPakM7QUFDVCJ9
@@ -137,11 +137,11 @@ var _default = (0, _dom.domAssigned)((_CombinatorDeclaration = /*#__PURE__*/ fun
137
137
  value: function verifyCombinator() {
138
138
  var statementVerified;
139
139
  var combinatorString = this.combinator.getString();
140
- this.fileContext.trace("Verifying the '".concat(combinatorString, "' statement..."));
140
+ this.fileContext.trace("Verifying the '".concat(combinatorString, "' combinator..."));
141
141
  var statement = this.combinator.getStatement(), statementNode = statement.getNode();
142
142
  statementVerified = _combinator.default.verifyStatement(statementNode, this.fileContext);
143
143
  if (statementVerified) {
144
- this.fileContext.debug("...verified the '".concat(combinatorString, "' statement."));
144
+ this.fileContext.debug("...verified the '".concat(combinatorString, "' combinator."));
145
145
  }
146
146
  return statementVerified;
147
147
  }
@@ -158,4 +158,4 @@ var _default = (0, _dom.domAssigned)((_CombinatorDeclaration = /*#__PURE__*/ fun
158
158
  return CombinatorDeclaration;
159
159
  }(), _define_property(_CombinatorDeclaration, "name", "CombinatorDeclaration"), _CombinatorDeclaration));
160
160
 
161
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9kb20vZGVjbGFyYXRpb24vY29tYmluYXRvci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IGRvbSBmcm9tIFwiLi4vLi4vZG9tXCI7XG5cbmltcG9ydCB7IGRvbUFzc2lnbmVkIH0gZnJvbSBcIi4uLy4uL2RvbVwiO1xuXG5pbXBvcnQgY29tYmluYXRvclZlcmlmaWVyIGZyb20gXCIuLi8uLi92ZXJpZmllci9jb21iaW5hdG9yXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGRvbUFzc2lnbmVkKGNsYXNzIENvbWJpbmF0b3JEZWNsYXJhdGlvbiB7XG4gIGNvbnN0cnVjdG9yKGZpbGVDb250ZXh0LCBzdHJpbmcsIGNvbWJpbmF0b3IpIHtcbiAgICB0aGlzLmZpbGVDb250ZXh0ID0gZmlsZUNvbnRleHQ7XG4gICAgdGhpcy5zdHJpbmcgPSBzdHJpbmc7XG4gICAgdGhpcy5jb21iaW5hdG9yID0gY29tYmluYXRvcjtcbiAgfVxuXG4gIGdldEZpbGVDb250ZXh0KCkge1xuICAgIHJldHVybiB0aGlzLmZpbGVDb250ZXh0O1xuICB9XG5cbiAgZ2V0U3RyaW5nKCkge1xuICAgIHJldHVybiB0aGlzLnN0cmluZztcbiAgfVxuXG4gIGdldENvbWJpbmF0b3IoKSB7XG4gICAgcmV0dXJuIHRoaXMuY29tYmluYXRvcjtcbiAgfVxuXG4gIHZlcmlmeSgpIHtcbiAgICBsZXQgdmVyaWZpZWQgPSBmYWxzZTtcblxuICAgIGNvbnN0IGNvbWJpbmF0b3JEZWNsYXJhdGlvblN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7IC8vL1xuXG4gICAgdGhpcy5maWxlQ29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHtjb21iaW5hdG9yRGVjbGFyYXRpb25TdHJpbmd9JyBjb21iaW5hdG9yIGRlY2xhcmF0aW9uLi4uYCk7XG5cbiAgICBjb25zdCBjb21iaW5hdG9yVmVyaWZpZWQgPSB0aGlzLnZlcmlmeUNvbWJpbmF0b3IoKTtcblxuICAgIGlmIChjb21iaW5hdG9yVmVyaWZpZWQpIHtcbiAgICAgIHRoaXMuZmlsZUNvbnRleHQuYWRkQ29tYmluYXRvcih0aGlzLmNvbWJpbmF0b3IpO1xuXG4gICAgICB2ZXJpZmllZCA9IHRydWU7XG4gICAgfVxuXG4gICAgaWYgKHZlcmlmaWVkKSB7XG4gICAgICB0aGlzLmZpbGVDb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7Y29tYmluYXRvckRlY2xhcmF0aW9uU3RyaW5nfScgY29tYmluYXRvciBkZWNsYXJhdGlvbi5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmVyaWZpZWQ7XG4gIH1cblxuICB2ZXJpZnlDb21iaW5hdG9yKCkge1xuICAgIGxldCBzdGF0ZW1lbnRWZXJpZmllZDtcblxuICAgIGNvbnN0IGNvbWJpbmF0b3JTdHJpbmcgPSB0aGlzLmNvbWJpbmF0b3IuZ2V0U3RyaW5nKCk7XG5cbiAgICB0aGlzLmZpbGVDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke2NvbWJpbmF0b3JTdHJpbmd9JyBzdGF0ZW1lbnQuLi5gKTtcblxuICAgIGNvbnN0IHN0YXRlbWVudCA9IHRoaXMuY29tYmluYXRvci5nZXRTdGF0ZW1lbnQoKSxcbiAgICAgICAgICBzdGF0ZW1lbnROb2RlID0gc3RhdGVtZW50LmdldE5vZGUoKTtcblxuICAgIHN0YXRlbWVudFZlcmlmaWVkID0gY29tYmluYXRvclZlcmlmaWVyLnZlcmlmeVN0YXRlbWVudChzdGF0ZW1lbnROb2RlLCB0aGlzLmZpbGVDb250ZXh0KTtcblxuICAgIGlmIChzdGF0ZW1lbnRWZXJpZmllZCkge1xuICAgICAgdGhpcy5maWxlQ29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke2NvbWJpbmF0b3JTdHJpbmd9JyBzdGF0ZW1lbnQuYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHN0YXRlbWVudFZlcmlmaWVkO1xuICB9XG5cbiAgc3RhdGljIG5hbWUgPSBcIkNvbWJpbmF0b3JEZWNsYXJhdGlvblwiO1xuXG4gIHN0YXRpYyBmcm9tQ29tYmluYXRvckRlY2xhcmF0aW9uTm9kZShjb21iaW5hdG9yRGVjbGFyYXRpb25Ob2RlLCBmaWxlQ29udGV4dCkge1xuICAgIGNvbnN0IHsgQ29tYmluYXRvciB9ID0gZG9tLFxuICAgICAgICAgIG5vZGUgPSBjb21iaW5hdG9yRGVjbGFyYXRpb25Ob2RlLCAvLy9cbiAgICAgICAgICBzdHJpbmcgPSBmaWxlQ29udGV4dC5ub2RlQXNTdHJpbmcobm9kZSksXG4gICAgICAgICAgY29tYmluYXRvciA9IENvbWJpbmF0b3IuZnJvbUNvbWJpbmF0b3JEZWNsYXJhdGlvbk5vZGUoY29tYmluYXRvckRlY2xhcmF0aW9uTm9kZSwgZmlsZUNvbnRleHQpLFxuICAgICAgICAgIGNvbWJpbmF0b3JEZWNsYXJhdGlvbiA9IG5ldyBDb21iaW5hdG9yRGVjbGFyYXRpb24oZmlsZUNvbnRleHQsIHN0cmluZywgY29tYmluYXRvcik7XG5cbiAgICByZXR1cm4gY29tYmluYXRvckRlY2xhcmF0aW9uO1xuICB9XG59KTtcbiJdLCJuYW1lcyI6WyJkb21Bc3NpZ25lZCIsIkNvbWJpbmF0b3JEZWNsYXJhdGlvbiIsImZpbGVDb250ZXh0Iiwic3RyaW5nIiwiY29tYmluYXRvciIsImdldEZpbGVDb250ZXh0IiwiZ2V0U3RyaW5nIiwiZ2V0Q29tYmluYXRvciIsInZlcmlmeSIsInZlcmlmaWVkIiwiY29tYmluYXRvckRlY2xhcmF0aW9uU3RyaW5nIiwidHJhY2UiLCJjb21iaW5hdG9yVmVyaWZpZWQiLCJ2ZXJpZnlDb21iaW5hdG9yIiwiYWRkQ29tYmluYXRvciIsImRlYnVnIiwic3RhdGVtZW50VmVyaWZpZWQiLCJjb21iaW5hdG9yU3RyaW5nIiwic3RhdGVtZW50IiwiZ2V0U3RhdGVtZW50Iiwic3RhdGVtZW50Tm9kZSIsImdldE5vZGUiLCJjb21iaW5hdG9yVmVyaWZpZXIiLCJ2ZXJpZnlTdGF0ZW1lbnQiLCJmcm9tQ29tYmluYXRvckRlY2xhcmF0aW9uTm9kZSIsImNvbWJpbmF0b3JEZWNsYXJhdGlvbk5vZGUiLCJDb21iaW5hdG9yIiwiZG9tIiwibm9kZSIsIm5vZGVBc1N0cmluZyIsImNvbWJpbmF0b3JEZWNsYXJhdGlvbiIsIm5hbWUiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQVFBOzs7ZUFBQTs7OzJEQU5nQjtpRUFJZTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUFFL0IsV0FBZUEsSUFBQUEsZ0JBQVcsMENBQUM7YUFBTUMsc0JBQ25CQyxXQUFXLEVBQUVDLE1BQU0sRUFBRUMsVUFBVTtnQ0FEWkg7UUFFN0IsSUFBSSxDQUFDQyxXQUFXLEdBQUdBO1FBQ25CLElBQUksQ0FBQ0MsTUFBTSxHQUFHQTtRQUNkLElBQUksQ0FBQ0MsVUFBVSxHQUFHQTs7OztZQUdwQkMsS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLE9BQU8sSUFBSSxDQUFDSCxXQUFXO1lBQ3pCOzs7WUFFQUksS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLE9BQU8sSUFBSSxDQUFDSCxNQUFNO1lBQ3BCOzs7WUFFQUksS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLE9BQU8sSUFBSSxDQUFDSCxVQUFVO1lBQ3hCOzs7WUFFQUksS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLElBQUlDLFdBQVc7Z0JBRWYsSUFBTUMsOEJBQThCLElBQUksQ0FBQ0osU0FBUyxJQUFJLEdBQUc7Z0JBRXpELElBQUksQ0FBQ0osV0FBVyxDQUFDUyxLQUFLLENBQUMsQUFBQyxrQkFBNkMsT0FBNUJELDZCQUE0QjtnQkFFckUsSUFBTUUscUJBQXFCLElBQUksQ0FBQ0MsZ0JBQWdCO2dCQUVoRCxJQUFJRCxvQkFBb0I7b0JBQ3RCLElBQUksQ0FBQ1YsV0FBVyxDQUFDWSxhQUFhLENBQUMsSUFBSSxDQUFDVixVQUFVO29CQUU5Q0ssV0FBVztnQkFDYjtnQkFFQSxJQUFJQSxVQUFVO29CQUNaLElBQUksQ0FBQ1AsV0FBVyxDQUFDYSxLQUFLLENBQUMsQUFBQyxvQkFBK0MsT0FBNUJMLDZCQUE0QjtnQkFDekU7Z0JBRUEsT0FBT0Q7WUFDVDs7O1lBRUFJLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxJQUFJRztnQkFFSixJQUFNQyxtQkFBbUIsSUFBSSxDQUFDYixVQUFVLENBQUNFLFNBQVM7Z0JBRWxELElBQUksQ0FBQ0osV0FBVyxDQUFDUyxLQUFLLENBQUMsQUFBQyxrQkFBa0MsT0FBakJNLGtCQUFpQjtnQkFFMUQsSUFBTUMsWUFBWSxJQUFJLENBQUNkLFVBQVUsQ0FBQ2UsWUFBWSxJQUN4Q0MsZ0JBQWdCRixVQUFVRyxPQUFPO2dCQUV2Q0wsb0JBQW9CTSxtQkFBa0IsQ0FBQ0MsZUFBZSxDQUFDSCxlQUFlLElBQUksQ0FBQ2xCLFdBQVc7Z0JBRXRGLElBQUljLG1CQUFtQjtvQkFDckIsSUFBSSxDQUFDZCxXQUFXLENBQUNhLEtBQUssQ0FBQyxBQUFDLG9CQUFvQyxPQUFqQkUsa0JBQWlCO2dCQUM5RDtnQkFFQSxPQUFPRDtZQUNUOzs7O1lBSU9RLEtBQUFBO21CQUFQLFNBQU9BLDhCQUE4QkMseUJBQXlCLEVBQUV2QixXQUFXO2dCQUN6RSxJQUFNLEFBQUV3QixhQUFlQyxZQUFHLENBQWxCRCxZQUNGRSxPQUFPSCwyQkFDUHRCLFNBQVNELFlBQVkyQixZQUFZLENBQUNELE9BQ2xDeEIsYUFBYXNCLFdBQVdGLDZCQUE2QixDQUFDQywyQkFBMkJ2QixjQUNqRjRCLHdCQUF3QixJQUFJN0Isc0JBQXNCQyxhQUFhQyxRQUFRQztnQkFFN0UsT0FBTzBCO1lBQ1Q7Ozs7S0FWQSx5Q0FBT0MsUUFBTyJ9
161
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9kb20vZGVjbGFyYXRpb24vY29tYmluYXRvci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IGRvbSBmcm9tIFwiLi4vLi4vZG9tXCI7XG5cbmltcG9ydCB7IGRvbUFzc2lnbmVkIH0gZnJvbSBcIi4uLy4uL2RvbVwiO1xuXG5pbXBvcnQgY29tYmluYXRvclZlcmlmaWVyIGZyb20gXCIuLi8uLi92ZXJpZmllci9jb21iaW5hdG9yXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGRvbUFzc2lnbmVkKGNsYXNzIENvbWJpbmF0b3JEZWNsYXJhdGlvbiB7XG4gIGNvbnN0cnVjdG9yKGZpbGVDb250ZXh0LCBzdHJpbmcsIGNvbWJpbmF0b3IpIHtcbiAgICB0aGlzLmZpbGVDb250ZXh0ID0gZmlsZUNvbnRleHQ7XG4gICAgdGhpcy5zdHJpbmcgPSBzdHJpbmc7XG4gICAgdGhpcy5jb21iaW5hdG9yID0gY29tYmluYXRvcjtcbiAgfVxuXG4gIGdldEZpbGVDb250ZXh0KCkge1xuICAgIHJldHVybiB0aGlzLmZpbGVDb250ZXh0O1xuICB9XG5cbiAgZ2V0U3RyaW5nKCkge1xuICAgIHJldHVybiB0aGlzLnN0cmluZztcbiAgfVxuXG4gIGdldENvbWJpbmF0b3IoKSB7XG4gICAgcmV0dXJuIHRoaXMuY29tYmluYXRvcjtcbiAgfVxuXG4gIHZlcmlmeSgpIHtcbiAgICBsZXQgdmVyaWZpZWQgPSBmYWxzZTtcblxuICAgIGNvbnN0IGNvbWJpbmF0b3JEZWNsYXJhdGlvblN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7IC8vL1xuXG4gICAgdGhpcy5maWxlQ29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHtjb21iaW5hdG9yRGVjbGFyYXRpb25TdHJpbmd9JyBjb21iaW5hdG9yIGRlY2xhcmF0aW9uLi4uYCk7XG5cbiAgICBjb25zdCBjb21iaW5hdG9yVmVyaWZpZWQgPSB0aGlzLnZlcmlmeUNvbWJpbmF0b3IoKTtcblxuICAgIGlmIChjb21iaW5hdG9yVmVyaWZpZWQpIHtcbiAgICAgIHRoaXMuZmlsZUNvbnRleHQuYWRkQ29tYmluYXRvcih0aGlzLmNvbWJpbmF0b3IpO1xuXG4gICAgICB2ZXJpZmllZCA9IHRydWU7XG4gICAgfVxuXG4gICAgaWYgKHZlcmlmaWVkKSB7XG4gICAgICB0aGlzLmZpbGVDb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7Y29tYmluYXRvckRlY2xhcmF0aW9uU3RyaW5nfScgY29tYmluYXRvciBkZWNsYXJhdGlvbi5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmVyaWZpZWQ7XG4gIH1cblxuICB2ZXJpZnlDb21iaW5hdG9yKCkge1xuICAgIGxldCBzdGF0ZW1lbnRWZXJpZmllZDtcblxuICAgIGNvbnN0IGNvbWJpbmF0b3JTdHJpbmcgPSB0aGlzLmNvbWJpbmF0b3IuZ2V0U3RyaW5nKCk7XG5cbiAgICB0aGlzLmZpbGVDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke2NvbWJpbmF0b3JTdHJpbmd9JyBjb21iaW5hdG9yLi4uYCk7XG5cbiAgICBjb25zdCBzdGF0ZW1lbnQgPSB0aGlzLmNvbWJpbmF0b3IuZ2V0U3RhdGVtZW50KCksXG4gICAgICAgICAgc3RhdGVtZW50Tm9kZSA9IHN0YXRlbWVudC5nZXROb2RlKCk7XG5cbiAgICBzdGF0ZW1lbnRWZXJpZmllZCA9IGNvbWJpbmF0b3JWZXJpZmllci52ZXJpZnlTdGF0ZW1lbnQoc3RhdGVtZW50Tm9kZSwgdGhpcy5maWxlQ29udGV4dCk7XG5cbiAgICBpZiAoc3RhdGVtZW50VmVyaWZpZWQpIHtcbiAgICAgIHRoaXMuZmlsZUNvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHtjb21iaW5hdG9yU3RyaW5nfScgY29tYmluYXRvci5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gc3RhdGVtZW50VmVyaWZpZWQ7XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiQ29tYmluYXRvckRlY2xhcmF0aW9uXCI7XG5cbiAgc3RhdGljIGZyb21Db21iaW5hdG9yRGVjbGFyYXRpb25Ob2RlKGNvbWJpbmF0b3JEZWNsYXJhdGlvbk5vZGUsIGZpbGVDb250ZXh0KSB7XG4gICAgY29uc3QgeyBDb21iaW5hdG9yIH0gPSBkb20sXG4gICAgICAgICAgbm9kZSA9IGNvbWJpbmF0b3JEZWNsYXJhdGlvbk5vZGUsIC8vL1xuICAgICAgICAgIHN0cmluZyA9IGZpbGVDb250ZXh0Lm5vZGVBc1N0cmluZyhub2RlKSxcbiAgICAgICAgICBjb21iaW5hdG9yID0gQ29tYmluYXRvci5mcm9tQ29tYmluYXRvckRlY2xhcmF0aW9uTm9kZShjb21iaW5hdG9yRGVjbGFyYXRpb25Ob2RlLCBmaWxlQ29udGV4dCksXG4gICAgICAgICAgY29tYmluYXRvckRlY2xhcmF0aW9uID0gbmV3IENvbWJpbmF0b3JEZWNsYXJhdGlvbihmaWxlQ29udGV4dCwgc3RyaW5nLCBjb21iaW5hdG9yKTtcblxuICAgIHJldHVybiBjb21iaW5hdG9yRGVjbGFyYXRpb247XG4gIH1cbn0pO1xuIl0sIm5hbWVzIjpbImRvbUFzc2lnbmVkIiwiQ29tYmluYXRvckRlY2xhcmF0aW9uIiwiZmlsZUNvbnRleHQiLCJzdHJpbmciLCJjb21iaW5hdG9yIiwiZ2V0RmlsZUNvbnRleHQiLCJnZXRTdHJpbmciLCJnZXRDb21iaW5hdG9yIiwidmVyaWZ5IiwidmVyaWZpZWQiLCJjb21iaW5hdG9yRGVjbGFyYXRpb25TdHJpbmciLCJ0cmFjZSIsImNvbWJpbmF0b3JWZXJpZmllZCIsInZlcmlmeUNvbWJpbmF0b3IiLCJhZGRDb21iaW5hdG9yIiwiZGVidWciLCJzdGF0ZW1lbnRWZXJpZmllZCIsImNvbWJpbmF0b3JTdHJpbmciLCJzdGF0ZW1lbnQiLCJnZXRTdGF0ZW1lbnQiLCJzdGF0ZW1lbnROb2RlIiwiZ2V0Tm9kZSIsImNvbWJpbmF0b3JWZXJpZmllciIsInZlcmlmeVN0YXRlbWVudCIsImZyb21Db21iaW5hdG9yRGVjbGFyYXRpb25Ob2RlIiwiY29tYmluYXRvckRlY2xhcmF0aW9uTm9kZSIsIkNvbWJpbmF0b3IiLCJkb20iLCJub2RlIiwibm9kZUFzU3RyaW5nIiwiY29tYmluYXRvckRlY2xhcmF0aW9uIiwibmFtZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBUUE7OztlQUFBOzs7MkRBTmdCO2lFQUllOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQUUvQixXQUFlQSxJQUFBQSxnQkFBVywwQ0FBQzthQUFNQyxzQkFDbkJDLFdBQVcsRUFBRUMsTUFBTSxFQUFFQyxVQUFVO2dDQURaSDtRQUU3QixJQUFJLENBQUNDLFdBQVcsR0FBR0E7UUFDbkIsSUFBSSxDQUFDQyxNQUFNLEdBQUdBO1FBQ2QsSUFBSSxDQUFDQyxVQUFVLEdBQUdBOzs7O1lBR3BCQyxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsT0FBTyxJQUFJLENBQUNILFdBQVc7WUFDekI7OztZQUVBSSxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsT0FBTyxJQUFJLENBQUNILE1BQU07WUFDcEI7OztZQUVBSSxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsT0FBTyxJQUFJLENBQUNILFVBQVU7WUFDeEI7OztZQUVBSSxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsSUFBSUMsV0FBVztnQkFFZixJQUFNQyw4QkFBOEIsSUFBSSxDQUFDSixTQUFTLElBQUksR0FBRztnQkFFekQsSUFBSSxDQUFDSixXQUFXLENBQUNTLEtBQUssQ0FBQyxBQUFDLGtCQUE2QyxPQUE1QkQsNkJBQTRCO2dCQUVyRSxJQUFNRSxxQkFBcUIsSUFBSSxDQUFDQyxnQkFBZ0I7Z0JBRWhELElBQUlELG9CQUFvQjtvQkFDdEIsSUFBSSxDQUFDVixXQUFXLENBQUNZLGFBQWEsQ0FBQyxJQUFJLENBQUNWLFVBQVU7b0JBRTlDSyxXQUFXO2dCQUNiO2dCQUVBLElBQUlBLFVBQVU7b0JBQ1osSUFBSSxDQUFDUCxXQUFXLENBQUNhLEtBQUssQ0FBQyxBQUFDLG9CQUErQyxPQUE1QkwsNkJBQTRCO2dCQUN6RTtnQkFFQSxPQUFPRDtZQUNUOzs7WUFFQUksS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLElBQUlHO2dCQUVKLElBQU1DLG1CQUFtQixJQUFJLENBQUNiLFVBQVUsQ0FBQ0UsU0FBUztnQkFFbEQsSUFBSSxDQUFDSixXQUFXLENBQUNTLEtBQUssQ0FBQyxBQUFDLGtCQUFrQyxPQUFqQk0sa0JBQWlCO2dCQUUxRCxJQUFNQyxZQUFZLElBQUksQ0FBQ2QsVUFBVSxDQUFDZSxZQUFZLElBQ3hDQyxnQkFBZ0JGLFVBQVVHLE9BQU87Z0JBRXZDTCxvQkFBb0JNLG1CQUFrQixDQUFDQyxlQUFlLENBQUNILGVBQWUsSUFBSSxDQUFDbEIsV0FBVztnQkFFdEYsSUFBSWMsbUJBQW1CO29CQUNyQixJQUFJLENBQUNkLFdBQVcsQ0FBQ2EsS0FBSyxDQUFDLEFBQUMsb0JBQW9DLE9BQWpCRSxrQkFBaUI7Z0JBQzlEO2dCQUVBLE9BQU9EO1lBQ1Q7Ozs7WUFJT1EsS0FBQUE7bUJBQVAsU0FBT0EsOEJBQThCQyx5QkFBeUIsRUFBRXZCLFdBQVc7Z0JBQ3pFLElBQU0sQUFBRXdCLGFBQWVDLFlBQUcsQ0FBbEJELFlBQ0ZFLE9BQU9ILDJCQUNQdEIsU0FBU0QsWUFBWTJCLFlBQVksQ0FBQ0QsT0FDbEN4QixhQUFhc0IsV0FBV0YsNkJBQTZCLENBQUNDLDJCQUEyQnZCLGNBQ2pGNEIsd0JBQXdCLElBQUk3QixzQkFBc0JDLGFBQWFDLFFBQVFDO2dCQUU3RSxPQUFPMEI7WUFDVDs7OztLQVZBLHlDQUFPQyxRQUFPIn0=
@@ -113,7 +113,6 @@ var _default = (0, _dom.domAssigned)((_ComplexTypeDeclaration = /*#__PURE__*/ fu
113
113
  {
114
114
  key: "verify",
115
115
  value: function verify() {
116
- var _this = this;
117
116
  var verified = false;
118
117
  var complexTypeDeclarationString = this.getString();
119
118
  this.fileContext.trace("Verifying the '".concat(complexTypeDeclarationString, "' complex type declaration..."));
@@ -121,15 +120,7 @@ var _default = (0, _dom.domAssigned)((_ComplexTypeDeclaration = /*#__PURE__*/ fu
121
120
  if (typeVerified) {
122
121
  var superTypesVerified = this.verifySuperTypes();
123
122
  if (superTypesVerified) {
124
- var superTypes;
125
- superTypes = this.type.getSuperTypes();
126
- superTypes = superTypes.map(function(superType) {
127
- var superTypeName = superType.getName();
128
- superType = _this.fileContext.findTypeByTypeName(superTypeName);
129
- return superType;
130
- });
131
- this.type.setSuperTypes(superTypes);
132
- var includeSuperTypes = false, properties = this.type.getProperties(includeSuperTypes), propertiesVerified = this.verifyProperties(properties);
123
+ var propertiesVerified = this.verifyProperties();
133
124
  if (propertiesVerified) {
134
125
  this.fileContext.addType(this.type);
135
126
  verified = true;
@@ -146,34 +137,61 @@ var _default = (0, _dom.domAssigned)((_ComplexTypeDeclaration = /*#__PURE__*/ fu
146
137
  key: "verifyType",
147
138
  value: function verifyType() {
148
139
  var typeVerified = false;
149
- var typeName = this.type.getName(), typeString = this.type.getString();
150
- this.fileContext.trace("Verifying the '".concat(typeString, "' type..."));
140
+ var typeName = this.type.getName(), complexTypeString = this.type.getString();
141
+ this.fileContext.trace("Verifying the '".concat(complexTypeString, "' complex type..."));
151
142
  var typePresent = this.fileContext.isTypePresentByTypeName(typeName);
152
143
  if (typePresent) {
153
- this.fileContext.debug("The type '".concat(typeString, "' is already present."));
144
+ this.fileContext.debug("The type '".concat(complexTypeString, "' is already present."));
154
145
  } else {
155
146
  typeVerified = true;
156
147
  }
157
148
  if (typeVerified) {
158
- this.fileContext.debug("...verified the '".concat(typeString, "' type."));
149
+ this.fileContext.debug("...verified the '".concat(complexTypeString, "' complex type."));
159
150
  }
160
151
  return typeVerified;
161
152
  }
162
153
  },
154
+ {
155
+ key: "verifySuperType",
156
+ value: function verifySuperType(superType) {
157
+ var superTypeVerified;
158
+ var superTypeString = superType.getString();
159
+ this.fileContext.trace("Verifying the '".concat(superTypeString, "' super-type..."));
160
+ var superTypeName = superType.getName(), superTypePresent = this.fileContext.isTypePresentByTypeName(superTypeName);
161
+ superTypeVerified = superTypePresent; ///
162
+ if (superTypeVerified) {
163
+ this.fileContext.debug("...verified the '".concat(superTypeString, "' super-type."));
164
+ }
165
+ return superTypeVerified;
166
+ }
167
+ },
163
168
  {
164
169
  key: "verifySuperTypes",
165
- value: function verifySuperTypes(superType) {
170
+ value: function verifySuperTypes() {
171
+ var _this = this;
166
172
  var superTypesVerified;
167
173
  var typeBasic = this.type.isBasic();
168
174
  if (typeBasic) {
169
175
  superTypesVerified = true;
170
176
  } else {
171
- var typeString = this.type.getString(), superTypeString = superType.getString();
172
- this.fileContext.trace("Verifying the '".concat(typeString, "' type's '").concat(superTypeString, "' super-type..."));
173
- var superTypeName = superType.getName(), superTypePresent = this.fileContext.isTypePresentByTypeName(superTypeName);
174
- superTypesVerified = superTypePresent; ///
177
+ var superTypes;
178
+ superTypes = this.type.getSuperTypes();
179
+ var superTypesString = (0, _type.superTypesStringFromSuperTypes)(superTypes);
180
+ this.fileContext.trace("Verifying the '".concat(superTypesString, " super-types..."));
181
+ superTypesVerified = superTypes.every(function(superType) {
182
+ var superTypeVerified = _this.verifySuperType(superType);
183
+ if (superTypeVerified) {
184
+ return true;
185
+ }
186
+ });
175
187
  if (superTypesVerified) {
176
- this.fileContext.debug("...verified the '".concat(typeString, "' type's '").concat(superTypeString, "' super-type."));
188
+ superTypes = superTypes.map(function(superType) {
189
+ var superTypeName = superType.getName();
190
+ superType = _this.fileContext.findTypeByTypeName(superTypeName);
191
+ return superType;
192
+ });
193
+ this.type.setSuperTypes(superTypes);
194
+ this.fileContext.debug("...verified the' '".concat(superTypesString, " super-types."));
177
195
  }
178
196
  }
179
197
  return superTypesVerified;
@@ -225,10 +243,10 @@ var _default = (0, _dom.domAssigned)((_ComplexTypeDeclaration = /*#__PURE__*/ fu
225
243
  },
226
244
  {
227
245
  key: "verifyProperties",
228
- value: function verifyProperties(properties) {
246
+ value: function verifyProperties() {
229
247
  var _this = this;
230
248
  var propertiesVerified;
231
- var superTypes = this.type.getSuperTypes();
249
+ var includeSuperTypes = false, properties = this.type.getProperties(includeSuperTypes), superTypes = this.type.getSuperTypes();
232
250
  propertiesVerified = superTypes.every(function(superType) {
233
251
  var superTypeProperties = superType.getProperties(), propertiesVerified = properties.every(function(property) {
234
252
  var propertyVerified = _this.verifyProperty(property, properties, superTypeProperties);
@@ -279,4 +297,4 @@ var _default = (0, _dom.domAssigned)((_ComplexTypeDeclaration = /*#__PURE__*/ fu
279
297
  return ComplexTypeDeclaration;
280
298
  }(), _define_property(_ComplexTypeDeclaration, "name", "ComplexTypeDeclaration"), _ComplexTypeDeclaration));
281
299
 
282
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9kb20vZGVjbGFyYXRpb24vY29tcGxleFR5cGUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBkb20gZnJvbSBcIi4uLy4uL2RvbVwiO1xuXG5pbXBvcnQgeyBkb21Bc3NpZ25lZCB9IGZyb20gXCIuLi8uLi9kb21cIjtcbmltcG9ydCB7IHN1cGVyVHlwZXNTdHJpbmdGcm9tU3VwZXJUeXBlcyB9IGZyb20gXCIuLi8uLi91dGlsaXRpZXMvdHlwZVwiO1xuXG5leHBvcnQgZGVmYXVsdCBkb21Bc3NpZ25lZChjbGFzcyBDb21wbGV4VHlwZURlY2xhcmF0aW9uIHtcbiAgY29uc3RydWN0b3IoZmlsZUNvbnRleHQsIHN0cmluZywgdHlwZSkge1xuICAgIHRoaXMuZmlsZUNvbnRleHQgPSBmaWxlQ29udGV4dDtcbiAgICB0aGlzLnN0cmluZyA9IHN0cmluZztcbiAgICB0aGlzLnR5cGUgPSB0eXBlO1xuICB9XG5cbiAgZ2V0RmlsZUNvbnRleHQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZmlsZUNvbnRleHQ7XG4gIH1cblxuICBnZXRTdHJpbmcoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RyaW5nO1xuICB9XG5cbiAgZ2V0VHlwZSgpIHtcbiAgICByZXR1cm4gdGhpcy50eXBlO1xuICB9XG5cbiAgdmVyaWZ5KCkge1xuICAgIGxldCB2ZXJpZmllZCA9IGZhbHNlO1xuXG4gICAgY29uc3QgY29tcGxleFR5cGVEZWNsYXJhdGlvblN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7XG5cbiAgICB0aGlzLmZpbGVDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke2NvbXBsZXhUeXBlRGVjbGFyYXRpb25TdHJpbmd9JyBjb21wbGV4IHR5cGUgZGVjbGFyYXRpb24uLi5gKTtcblxuICAgIGNvbnN0IHR5cGVWZXJpZmllZCA9IHRoaXMudmVyaWZ5VHlwZSgpO1xuXG4gICAgaWYgKHR5cGVWZXJpZmllZCkge1xuICAgICAgY29uc3Qgc3VwZXJUeXBlc1ZlcmlmaWVkID0gdGhpcy52ZXJpZnlTdXBlclR5cGVzKCk7XG5cbiAgICAgIGlmIChzdXBlclR5cGVzVmVyaWZpZWQpIHtcbiAgICAgICAgbGV0IHN1cGVyVHlwZXM7XG5cbiAgICAgICAgc3VwZXJUeXBlcyA9IHRoaXMudHlwZS5nZXRTdXBlclR5cGVzKCk7XG5cbiAgICAgICAgc3VwZXJUeXBlcyA9IHN1cGVyVHlwZXMubWFwKChzdXBlclR5cGUpID0+IHtcbiAgICAgICAgICBjb25zdCBzdXBlclR5cGVOYW1lID0gc3VwZXJUeXBlLmdldE5hbWUoKTtcblxuICAgICAgICAgIHN1cGVyVHlwZSA9IHRoaXMuZmlsZUNvbnRleHQuZmluZFR5cGVCeVR5cGVOYW1lKHN1cGVyVHlwZU5hbWUpO1xuXG4gICAgICAgICAgcmV0dXJuIHN1cGVyVHlwZTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy50eXBlLnNldFN1cGVyVHlwZXMoc3VwZXJUeXBlcyk7XG5cbiAgICAgICAgY29uc3QgaW5jbHVkZVN1cGVyVHlwZXMgPSBmYWxzZSxcbiAgICAgICAgICAgICAgcHJvcGVydGllcyA9IHRoaXMudHlwZS5nZXRQcm9wZXJ0aWVzKGluY2x1ZGVTdXBlclR5cGVzKSxcbiAgICAgICAgICAgICAgcHJvcGVydGllc1ZlcmlmaWVkID0gdGhpcy52ZXJpZnlQcm9wZXJ0aWVzKHByb3BlcnRpZXMpO1xuXG4gICAgICAgIGlmIChwcm9wZXJ0aWVzVmVyaWZpZWQpIHtcbiAgICAgICAgICB0aGlzLmZpbGVDb250ZXh0LmFkZFR5cGUodGhpcy50eXBlKTtcblxuICAgICAgICAgIHZlcmlmaWVkID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh2ZXJpZmllZCkge1xuICAgICAgdGhpcy5maWxlQ29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke2NvbXBsZXhUeXBlRGVjbGFyYXRpb25TdHJpbmd9JyBjb21wbGV4IHR5cGUgZGVjbGFyYXRpb24uYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZlcmlmaWVkO1xuICB9XG5cbiAgdmVyaWZ5VHlwZSgpIHtcbiAgICBsZXQgdHlwZVZlcmlmaWVkID0gZmFsc2U7XG5cbiAgICBjb25zdCB0eXBlTmFtZSA9IHRoaXMudHlwZS5nZXROYW1lKCksXG4gICAgICAgICAgdHlwZVN0cmluZyA9IHRoaXMudHlwZS5nZXRTdHJpbmcoKTtcblxuICAgIHRoaXMuZmlsZUNvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7dHlwZVN0cmluZ30nIHR5cGUuLi5gKTtcblxuICAgIGNvbnN0IHR5cGVQcmVzZW50ID0gdGhpcy5maWxlQ29udGV4dC5pc1R5cGVQcmVzZW50QnlUeXBlTmFtZSh0eXBlTmFtZSk7XG5cbiAgICBpZiAodHlwZVByZXNlbnQpIHtcbiAgICAgIHRoaXMuZmlsZUNvbnRleHQuZGVidWcoYFRoZSB0eXBlICcke3R5cGVTdHJpbmd9JyBpcyBhbHJlYWR5IHByZXNlbnQuYCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHR5cGVWZXJpZmllZCA9IHRydWU7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVWZXJpZmllZCkge1xuICAgICAgdGhpcy5maWxlQ29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke3R5cGVTdHJpbmd9JyB0eXBlLmApO1xuICAgIH1cblxuICAgIHJldHVybiB0eXBlVmVyaWZpZWQ7XG4gIH1cblxuICB2ZXJpZnlTdXBlclR5cGVzKCkge1xuICAgIGxldCBzdXBlclR5cGVzVmVyaWZpZWQ7XG5cbiAgICBjb25zdCB0eXBlQmFzaWMgPSB0aGlzLnR5cGUuaXNCYXNpYygpO1xuXG4gICAgaWYgKHR5cGVCYXNpYykge1xuICAgICAgc3VwZXJUeXBlc1ZlcmlmaWVkID0gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgdHlwZVN0cmluZyA9IHRoaXMudHlwZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgICAgIHN1cGVyVHlwZXMgPSB0aGlzLnR5cGUuZ2V0U3VwZXJUeXBlcygpLFxuICAgICAgICAgICAgc3VwZXJUeXBlc1N0cmluZyA9IHN1cGVyVHlwZXNTdHJpbmdGcm9tU3VwZXJUeXBlcyhzdXBlclR5cGVzKTtcblxuICAgICAgdGhpcy5maWxlQ29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHt0eXBlU3RyaW5nfScgdHlwZSdzICR7c3VwZXJUeXBlc1N0cmluZ30gc3VwZXItdHlwZXMuLi5gKTtcblxuICAgICAgc3VwZXJUeXBlc1ZlcmlmaWVkID0gc3VwZXJUeXBlcy5ldmVyeSgoc3VwZXJUeXBlKSA9PiB7XG4gICAgICAgIGNvbnN0IHN1cGVyVHlwZXNWZXJpZmllZCA9IHRoaXMudmVyaWZ5U3VwZXJUeXBlcyhzdXBlclR5cGUpO1xuXG4gICAgICAgIGlmIChzdXBlclR5cGVzVmVyaWZpZWQpIHtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIGlmIChzdXBlclR5cGVzVmVyaWZpZWQpIHtcbiAgICAgICAgdGhpcy5maWxlQ29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke3R5cGVTdHJpbmd9JyB0eXBlJ3MgJHtzdXBlclR5cGVzU3RyaW5nfSBzdXBlci10eXBlcy5gKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gc3VwZXJUeXBlc1ZlcmlmaWVkO1xuICB9XG5cbiAgdmVyaWZ5U3VwZXJUeXBlcyhzdXBlclR5cGUpIHtcbiAgICBsZXQgc3VwZXJUeXBlc1ZlcmlmaWVkO1xuXG4gICAgY29uc3QgdHlwZUJhc2ljID0gdGhpcy50eXBlLmlzQmFzaWMoKTtcblxuICAgIGlmICh0eXBlQmFzaWMpIHtcbiAgICAgIHN1cGVyVHlwZXNWZXJpZmllZCA9IHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHR5cGVTdHJpbmcgPSB0aGlzLnR5cGUuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgICBzdXBlclR5cGVTdHJpbmcgPSBzdXBlclR5cGUuZ2V0U3RyaW5nKCk7XG5cbiAgICAgIHRoaXMuZmlsZUNvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7dHlwZVN0cmluZ30nIHR5cGUncyAnJHtzdXBlclR5cGVTdHJpbmd9JyBzdXBlci10eXBlLi4uYCk7XG5cbiAgICAgIGNvbnN0IHN1cGVyVHlwZU5hbWUgPSBzdXBlclR5cGUuZ2V0TmFtZSgpLFxuICAgICAgICAgICAgc3VwZXJUeXBlUHJlc2VudCA9IHRoaXMuZmlsZUNvbnRleHQuaXNUeXBlUHJlc2VudEJ5VHlwZU5hbWUoc3VwZXJUeXBlTmFtZSk7XG5cbiAgICAgIHN1cGVyVHlwZXNWZXJpZmllZCA9IHN1cGVyVHlwZVByZXNlbnQ7IC8vL1xuXG4gICAgICBpZiAoc3VwZXJUeXBlc1ZlcmlmaWVkKSB7XG4gICAgICAgIHRoaXMuZmlsZUNvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHt0eXBlU3RyaW5nfScgdHlwZSdzICcke3N1cGVyVHlwZVN0cmluZ30nIHN1cGVyLXR5cGUuYCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHN1cGVyVHlwZXNWZXJpZmllZDtcbiAgfVxuXG4gIHZlcmlmeVByb3BlcnR5KHByb3BlcnR5LCBwcm9wZXJ0aWVzLCBzdXBlclR5cGVQcm9wZXJ0aWVzKSB7XG4gICAgbGV0IHByb3BlcnR5VmVyaWZpZWQgPSBmYWxzZTtcblxuICAgIGNvbnN0IHByb3BlcnR5U3RyaW5nID0gcHJvcGVydHkuZ2V0U3RyaW5nKCk7XG5cbiAgICB0aGlzLmZpbGVDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3Byb3BlcnR5U3RyaW5nfScgcHJvcGVydHkuLi5gKTtcblxuICAgIGNvbnN0IHByb3BlcnR5TmFtZXMgPSBwcm9wZXJ0eS5nZXROYW1lcygpLFxuICAgICAgICAgIGNvdW50ID0gcHJvcGVydGllcy5yZWR1Y2UoKGNvdW50LCBwcm9wZXJ0eSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgcHJvcGVydHlOYW1lc01hdGNoID0gcHJvcGVydHkubWF0Y2hQcm9wZXJ0eU5hbWVzKHByb3BlcnR5TmFtZXMpO1xuXG4gICAgICAgICAgICBpZiAocHJvcGVydHlOYW1lc01hdGNoKSB7XG4gICAgICAgICAgICAgIGNvdW50Kys7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBjb3VudDtcbiAgICAgICAgICB9LCAwKTtcblxuICAgIGlmIChjb3VudCA+IDEpIHtcbiAgICAgIHRoaXMuZmlsZUNvbnRleHQuZGVidWcoYFRoZSAnJHtwcm9wZXJ0eVN0cmluZ30nIHByb3BlcnR5IGFwcGVhcnMgbW9yZSB0aGFuIG9uY2UuYCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHN1cGVyVHlwZVByb3BlcnR5ID0gc3VwZXJUeXBlUHJvcGVydGllcy5maW5kKChzdXBlclR5cGVQcm9wZXJ0eSkgPT4ge1xuICAgICAgICBjb25zdCBwcm9wZXJ0eU5hbWVNYXRjaGVzID0gc3VwZXJUeXBlUHJvcGVydHkubWF0Y2hQcm9wZXJ0eU5hbWVzKHByb3BlcnR5TmFtZXMpO1xuXG4gICAgICAgIGlmIChwcm9wZXJ0eU5hbWVNYXRjaGVzKSB7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgIH0pIHx8IG51bGw7XG5cbiAgICAgIGlmIChzdXBlclR5cGVQcm9wZXJ0eSAhPT0gbnVsbCkge1xuICAgICAgICBjb25zdCBzdXBlclR5cGVQcm9wZXJ0eVN0cmluZyA9IHN1cGVyVHlwZVByb3BlcnR5LmdldFN0cmluZygpO1xuXG4gICAgICAgIHRoaXMuZmlsZUNvbnRleHQuZGVidWcoYFRoZSAnJHtwcm9wZXJ0eVN0cmluZ30nIHByb3BlcnR5IG1hdGNoZXMgdGhlIHN1cGVyLXR5cGUncyAnJHtzdXBlclR5cGVQcm9wZXJ0eVN0cmluZ30nIHByb3BlcnR5LmApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbGV0IHByb3BlcnR5VHlwZTtcblxuICAgICAgICBwcm9wZXJ0eVR5cGUgPSBwcm9wZXJ0eS5nZXRUeXBlKCk7XG5cbiAgICAgICAgY29uc3QgcHJvcGVydHlUeXBlVmVyaWZpZWQgPSB0aGlzLnZlcmlmeVByb3BlcnR5VHlwZShwcm9wZXJ0eVR5cGUpO1xuXG4gICAgICAgIGlmIChwcm9wZXJ0eVR5cGVWZXJpZmllZCkge1xuICAgICAgICAgIGNvbnN0IHByb3BlcnR5VHlwZU5hbWUgPSBwcm9wZXJ0eVR5cGUuZ2V0TmFtZSgpO1xuXG4gICAgICAgICAgcHJvcGVydHlUeXBlID0gdGhpcy5maWxlQ29udGV4dC5maW5kVHlwZUJ5VHlwZU5hbWUocHJvcGVydHlUeXBlTmFtZSk7XG5cbiAgICAgICAgICBjb25zdCB0eXBlID0gcHJvcGVydHlUeXBlOyAgLy8vXG5cbiAgICAgICAgICBwcm9wZXJ0eS5zZXRUeXBlKHR5cGUpO1xuXG4gICAgICAgICAgcHJvcGVydHlWZXJpZmllZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAocHJvcGVydHlWZXJpZmllZCkge1xuICAgICAgdGhpcy5maWxlQ29udGV4dC5kZWJ1ZyhgdmVyaWZpZWQgdGhlICcke3Byb3BlcnR5U3RyaW5nfScgcHJvcGVydHkuYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHByb3BlcnR5VmVyaWZpZWQ7XG4gIH1cblxuICB2ZXJpZnlQcm9wZXJ0aWVzKHByb3BlcnRpZXMpIHtcbiAgICBsZXQgcHJvcGVydGllc1ZlcmlmaWVkO1xuXG4gICAgY29uc3Qgc3VwZXJUeXBlcyA9IHRoaXMudHlwZS5nZXRTdXBlclR5cGVzKCk7XG5cbiAgICBwcm9wZXJ0aWVzVmVyaWZpZWQgPSBzdXBlclR5cGVzLmV2ZXJ5KChzdXBlclR5cGUpID0+IHtcbiAgICAgIGNvbnN0IHN1cGVyVHlwZVByb3BlcnRpZXMgPSBzdXBlclR5cGUuZ2V0UHJvcGVydGllcygpLFxuICAgICAgICAgICAgcHJvcGVydGllc1ZlcmlmaWVkID0gcHJvcGVydGllcy5ldmVyeSgocHJvcGVydHkpID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgcHJvcGVydHlWZXJpZmllZCA9IHRoaXMudmVyaWZ5UHJvcGVydHkocHJvcGVydHksIHByb3BlcnRpZXMsIHN1cGVyVHlwZVByb3BlcnRpZXMpO1xuXG4gICAgICAgICAgICAgIGlmIChwcm9wZXJ0eVZlcmlmaWVkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuXG4gICAgICBpZiAocHJvcGVydGllc1ZlcmlmaWVkKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHByb3BlcnRpZXNWZXJpZmllZDtcbiAgfVxuXG4gIHZlcmlmeVByb3BlcnR5VHlwZShwcm9wZXJ0eVR5cGUpIHtcbiAgICBsZXQgcHJvcGVydHlUeXBlVmVyaWZpZWQgPSBmYWxzZTtcblxuICAgIGNvbnN0IHR5cGVFcXVhbFRvUHJvcGVydHlUeXBlID0gdGhpcy50eXBlLmlzRXF1YWxUbyhwcm9wZXJ0eVR5cGUpO1xuXG4gICAgaWYgKHR5cGVFcXVhbFRvUHJvcGVydHlUeXBlKSB7XG4gICAgICBwcm9wZXJ0eVR5cGVWZXJpZmllZCA9IHRydWU7XG4gICAgfSBlbHNlICB7XG4gICAgICBjb25zdCBwcm9wZXJ0eVR5cGVTdHJpbmcgPSBwcm9wZXJ0eVR5cGUuZ2V0U3RyaW5nKCk7IC8vL1xuXG4gICAgICB0aGlzLmZpbGVDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3Byb3BlcnR5VHlwZVN0cmluZ30nIHByb3BlcnR5IHR5cGUuLi5gKTtcblxuICAgICAgY29uc3QgcHJvcGVydHlUeXBlTmFtZSA9IHByb3BlcnR5VHlwZS5nZXROYW1lKCksXG4gICAgICAgICAgICBwcm9wZXJ0eVR5cGVQcmVzZW50ID0gdGhpcy5maWxlQ29udGV4dC5pc1R5cGVQcmVzZW50QnlUeXBlTmFtZShwcm9wZXJ0eVR5cGVOYW1lKTtcblxuICAgICAgaWYgKCFwcm9wZXJ0eVR5cGVQcmVzZW50KSB7XG4gICAgICAgIGNvbnN0IHByb3BlcnR5VHlwZVN0cmluZyA9IHByb3BlcnR5VHlwZS5nZXRTdHJpbmcoKTtcblxuICAgICAgICB0aGlzLmZpbGVDb250ZXh0LmRlYnVnKGBUaGUgJyR7cHJvcGVydHlUeXBlU3RyaW5nfScgcHJvcGVydHkgdHlwZSBpcyBub3QgcHJlc2VudC5gKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHByb3BlcnR5VHlwZVZlcmlmaWVkID0gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgaWYgKHByb3BlcnR5VHlwZVZlcmlmaWVkKSB7XG4gICAgICAgIHRoaXMuZmlsZUNvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHtwcm9wZXJ0eVR5cGVTdHJpbmd9JyBwcm9wZXJ0eSB0eXBlLmApO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBwcm9wZXJ0eVR5cGVWZXJpZmllZDtcbiAgfVxuXG4gIHN0YXRpYyBuYW1lID0gXCJDb21wbGV4VHlwZURlY2xhcmF0aW9uXCI7XG5cbiAgc3RhdGljIGZyb21Db21wbGV4VHlwZURlY2xhcmF0aW9uTm9kZShjb21wbGV4VHlwZURlY2xhcmF0aW9uTm9kZSwgZmlsZUNvbnRleHQpIHtcbiAgICBjb25zdCB7IFR5cGUgfSA9IGRvbSxcbiAgICAgICAgICBub2RlID0gY29tcGxleFR5cGVEZWNsYXJhdGlvbk5vZGUsICAvLy9cbiAgICAgICAgICBzdHJpbmcgPSBmaWxlQ29udGV4dC5ub2RlQXNTdHJpbmcobm9kZSksXG4gICAgICAgICAgdHlwZSA9IFR5cGUuZnJvbUNvbXBsZXhUeXBlRGVjbGFyYXRpb25Ob2RlKGNvbXBsZXhUeXBlRGVjbGFyYXRpb25Ob2RlLCBmaWxlQ29udGV4dCksXG4gICAgICAgICAgY29tcGxleFR5cGVEZWNsYXJhdGlvbiA9IG5ldyBDb21wbGV4VHlwZURlY2xhcmF0aW9uKGZpbGVDb250ZXh0LCBzdHJpbmcsIHR5cGUpO1xuXG4gICAgcmV0dXJuIGNvbXBsZXhUeXBlRGVjbGFyYXRpb247XG4gIH1cbn0pO1xuIl0sIm5hbWVzIjpbImRvbUFzc2lnbmVkIiwiQ29tcGxleFR5cGVEZWNsYXJhdGlvbiIsImZpbGVDb250ZXh0Iiwic3RyaW5nIiwidHlwZSIsImdldEZpbGVDb250ZXh0IiwiZ2V0U3RyaW5nIiwiZ2V0VHlwZSIsInZlcmlmeSIsInZlcmlmaWVkIiwiY29tcGxleFR5cGVEZWNsYXJhdGlvblN0cmluZyIsInRyYWNlIiwidHlwZVZlcmlmaWVkIiwidmVyaWZ5VHlwZSIsInN1cGVyVHlwZXNWZXJpZmllZCIsInZlcmlmeVN1cGVyVHlwZXMiLCJzdXBlclR5cGVzIiwiZ2V0U3VwZXJUeXBlcyIsIm1hcCIsInN1cGVyVHlwZSIsInN1cGVyVHlwZU5hbWUiLCJnZXROYW1lIiwiZmluZFR5cGVCeVR5cGVOYW1lIiwic2V0U3VwZXJUeXBlcyIsImluY2x1ZGVTdXBlclR5cGVzIiwicHJvcGVydGllcyIsImdldFByb3BlcnRpZXMiLCJwcm9wZXJ0aWVzVmVyaWZpZWQiLCJ2ZXJpZnlQcm9wZXJ0aWVzIiwiYWRkVHlwZSIsImRlYnVnIiwidHlwZU5hbWUiLCJ0eXBlU3RyaW5nIiwidHlwZVByZXNlbnQiLCJpc1R5cGVQcmVzZW50QnlUeXBlTmFtZSIsInR5cGVCYXNpYyIsImlzQmFzaWMiLCJzdXBlclR5cGVTdHJpbmciLCJzdXBlclR5cGVQcmVzZW50IiwidmVyaWZ5UHJvcGVydHkiLCJwcm9wZXJ0eSIsInN1cGVyVHlwZVByb3BlcnRpZXMiLCJwcm9wZXJ0eVZlcmlmaWVkIiwicHJvcGVydHlTdHJpbmciLCJwcm9wZXJ0eU5hbWVzIiwiZ2V0TmFtZXMiLCJjb3VudCIsInJlZHVjZSIsInByb3BlcnR5TmFtZXNNYXRjaCIsIm1hdGNoUHJvcGVydHlOYW1lcyIsInN1cGVyVHlwZVByb3BlcnR5IiwiZmluZCIsInByb3BlcnR5TmFtZU1hdGNoZXMiLCJzdXBlclR5cGVQcm9wZXJ0eVN0cmluZyIsInByb3BlcnR5VHlwZSIsInByb3BlcnR5VHlwZVZlcmlmaWVkIiwidmVyaWZ5UHJvcGVydHlUeXBlIiwicHJvcGVydHlUeXBlTmFtZSIsInNldFR5cGUiLCJldmVyeSIsInR5cGVFcXVhbFRvUHJvcGVydHlUeXBlIiwiaXNFcXVhbFRvIiwicHJvcGVydHlUeXBlU3RyaW5nIiwicHJvcGVydHlUeXBlUHJlc2VudCIsImZyb21Db21wbGV4VHlwZURlY2xhcmF0aW9uTm9kZSIsImNvbXBsZXhUeXBlRGVjbGFyYXRpb25Ob2RlIiwiVHlwZSIsImRvbSIsIm5vZGUiLCJub2RlQXNTdHJpbmciLCJjb21wbGV4VHlwZURlY2xhcmF0aW9uIiwibmFtZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBT0E7OztlQUFBOzs7MkRBTGdCO29CQUcrQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lBRS9DLFdBQWVBLElBQUFBLGdCQUFXLDJDQUFDO2FBQU1DLHVCQUNuQkMsV0FBVyxFQUFFQyxNQUFNLEVBQUVDLElBQUk7Z0NBRE5IO1FBRTdCLElBQUksQ0FBQ0MsV0FBVyxHQUFHQTtRQUNuQixJQUFJLENBQUNDLE1BQU0sR0FBR0E7UUFDZCxJQUFJLENBQUNDLElBQUksR0FBR0E7Ozs7WUFHZEMsS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLE9BQU8sSUFBSSxDQUFDSCxXQUFXO1lBQ3pCOzs7WUFFQUksS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLE9BQU8sSUFBSSxDQUFDSCxNQUFNO1lBQ3BCOzs7WUFFQUksS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLE9BQU8sSUFBSSxDQUFDSCxJQUFJO1lBQ2xCOzs7WUFFQUksS0FBQUE7bUJBQUFBLFNBQUFBOztnQkFDRSxJQUFJQyxXQUFXO2dCQUVmLElBQU1DLCtCQUErQixJQUFJLENBQUNKLFNBQVM7Z0JBRW5ELElBQUksQ0FBQ0osV0FBVyxDQUFDUyxLQUFLLENBQUMsQUFBQyxrQkFBOEMsT0FBN0JELDhCQUE2QjtnQkFFdEUsSUFBTUUsZUFBZSxJQUFJLENBQUNDLFVBQVU7Z0JBRXBDLElBQUlELGNBQWM7b0JBQ2hCLElBQU1FLHFCQUFxQixJQUFJLENBQUNDLGdCQUFnQjtvQkFFaEQsSUFBSUQsb0JBQW9CO3dCQUN0QixJQUFJRTt3QkFFSkEsYUFBYSxJQUFJLENBQUNaLElBQUksQ0FBQ2EsYUFBYTt3QkFFcENELGFBQWFBLFdBQVdFLEdBQUcsQ0FBQyxTQUFDQzs0QkFDM0IsSUFBTUMsZ0JBQWdCRCxVQUFVRSxPQUFPOzRCQUV2Q0YsWUFBWSxNQUFLakIsV0FBVyxDQUFDb0Isa0JBQWtCLENBQUNGOzRCQUVoRCxPQUFPRDt3QkFDVDt3QkFFQSxJQUFJLENBQUNmLElBQUksQ0FBQ21CLGFBQWEsQ0FBQ1A7d0JBRXhCLElBQU1RLG9CQUFvQixPQUNwQkMsYUFBYSxJQUFJLENBQUNyQixJQUFJLENBQUNzQixhQUFhLENBQUNGLG9CQUNyQ0cscUJBQXFCLElBQUksQ0FBQ0MsZ0JBQWdCLENBQUNIO3dCQUVqRCxJQUFJRSxvQkFBb0I7NEJBQ3RCLElBQUksQ0FBQ3pCLFdBQVcsQ0FBQzJCLE9BQU8sQ0FBQyxJQUFJLENBQUN6QixJQUFJOzRCQUVsQ0ssV0FBVzt3QkFDYjtvQkFDRjtnQkFDRjtnQkFFQSxJQUFJQSxVQUFVO29CQUNaLElBQUksQ0FBQ1AsV0FBVyxDQUFDNEIsS0FBSyxDQUFDLEFBQUMsb0JBQWdELE9BQTdCcEIsOEJBQTZCO2dCQUMxRTtnQkFFQSxPQUFPRDtZQUNUOzs7WUFFQUksS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLElBQUlELGVBQWU7Z0JBRW5CLElBQU1tQixXQUFXLElBQUksQ0FBQzNCLElBQUksQ0FBQ2lCLE9BQU8sSUFDNUJXLGFBQWEsSUFBSSxDQUFDNUIsSUFBSSxDQUFDRSxTQUFTO2dCQUV0QyxJQUFJLENBQUNKLFdBQVcsQ0FBQ1MsS0FBSyxDQUFDLEFBQUMsa0JBQTRCLE9BQVhxQixZQUFXO2dCQUVwRCxJQUFNQyxjQUFjLElBQUksQ0FBQy9CLFdBQVcsQ0FBQ2dDLHVCQUF1QixDQUFDSDtnQkFFN0QsSUFBSUUsYUFBYTtvQkFDZixJQUFJLENBQUMvQixXQUFXLENBQUM0QixLQUFLLENBQUMsQUFBQyxhQUF1QixPQUFYRSxZQUFXO2dCQUNqRCxPQUFPO29CQUNMcEIsZUFBZTtnQkFDakI7Z0JBRUEsSUFBSUEsY0FBYztvQkFDaEIsSUFBSSxDQUFDVixXQUFXLENBQUM0QixLQUFLLENBQUMsQUFBQyxvQkFBOEIsT0FBWEUsWUFBVztnQkFDeEQ7Z0JBRUEsT0FBT3BCO1lBQ1Q7OztZQUVBRyxLQUFBQTttQkE4QkFBLFNBQUFBLGlCQUFpQkksU0FBUztnQkFDeEIsSUFBSUw7Z0JBRUosSUFBTXFCLFlBQVksSUFBSSxDQUFDL0IsSUFBSSxDQUFDZ0MsT0FBTztnQkFFbkMsSUFBSUQsV0FBVztvQkFDYnJCLHFCQUFxQjtnQkFDdkIsT0FBTztvQkFDTCxJQUFNa0IsYUFBYSxJQUFJLENBQUM1QixJQUFJLENBQUNFLFNBQVMsSUFDaEMrQixrQkFBa0JsQixVQUFVYixTQUFTO29CQUUzQyxJQUFJLENBQUNKLFdBQVcsQ0FBQ1MsS0FBSyxDQUFDLEFBQUMsa0JBQXdDMEIsT0FBdkJMLFlBQVcsY0FBNEIsT0FBaEJLLGlCQUFnQjtvQkFFaEYsSUFBTWpCLGdCQUFnQkQsVUFBVUUsT0FBTyxJQUNqQ2lCLG1CQUFtQixJQUFJLENBQUNwQyxXQUFXLENBQUNnQyx1QkFBdUIsQ0FBQ2Q7b0JBRWxFTixxQkFBcUJ3QixrQkFBa0IsR0FBRztvQkFFMUMsSUFBSXhCLG9CQUFvQjt3QkFDdEIsSUFBSSxDQUFDWixXQUFXLENBQUM0QixLQUFLLENBQUMsQUFBQyxvQkFBMENPLE9BQXZCTCxZQUFXLGNBQTRCLE9BQWhCSyxpQkFBZ0I7b0JBQ3BGO2dCQUNGO2dCQUVBLE9BQU92QjtZQUNUOzs7WUFFQXlCLEtBQUFBO21CQUFBQSxTQUFBQSxlQUFlQyxRQUFRLEVBQUVmLFVBQVUsRUFBRWdCLG1CQUFtQjtnQkFDdEQsSUFBSUMsbUJBQW1CO2dCQUV2QixJQUFNQyxpQkFBaUJILFNBQVNsQyxTQUFTO2dCQUV6QyxJQUFJLENBQUNKLFdBQVcsQ0FBQ1MsS0FBSyxDQUFDLEFBQUMsa0JBQWdDLE9BQWZnQyxnQkFBZTtnQkFFeEQsSUFBTUMsZ0JBQWdCSixTQUFTSyxRQUFRLElBQ2pDQyxRQUFRckIsV0FBV3NCLE1BQU0sQ0FBQyxTQUFDRCxPQUFPTjtvQkFDaEMsSUFBTVEscUJBQXFCUixTQUFTUyxrQkFBa0IsQ0FBQ0w7b0JBRXZELElBQUlJLG9CQUFvQjt3QkFDdEJGO29CQUNGO29CQUVBLE9BQU9BO2dCQUNULEdBQUc7Z0JBRVQsSUFBSUEsUUFBUSxHQUFHO29CQUNiLElBQUksQ0FBQzVDLFdBQVcsQ0FBQzRCLEtBQUssQ0FBQyxBQUFDLFFBQXNCLE9BQWZhLGdCQUFlO2dCQUNoRCxPQUFPO29CQUNMLElBQU1PLG9CQUFvQlQsb0JBQW9CVSxJQUFJLENBQUMsU0FBQ0Q7d0JBQ2xELElBQU1FLHNCQUFzQkYsa0JBQWtCRCxrQkFBa0IsQ0FBQ0w7d0JBRWpFLElBQUlRLHFCQUFxQjs0QkFDdkIsT0FBTzt3QkFDVDtvQkFDRixNQUFNO29CQUVOLElBQUlGLHNCQUFzQixNQUFNO3dCQUM5QixJQUFNRywwQkFBMEJILGtCQUFrQjVDLFNBQVM7d0JBRTNELElBQUksQ0FBQ0osV0FBVyxDQUFDNEIsS0FBSyxDQUFDLEFBQUMsUUFBNkR1QixPQUF0RFYsZ0JBQWUseUNBQStELE9BQXhCVSx5QkFBd0I7b0JBQy9HLE9BQU87d0JBQ0wsSUFBSUM7d0JBRUpBLGVBQWVkLFNBQVNqQyxPQUFPO3dCQUUvQixJQUFNZ0QsdUJBQXVCLElBQUksQ0FBQ0Msa0JBQWtCLENBQUNGO3dCQUVyRCxJQUFJQyxzQkFBc0I7NEJBQ3hCLElBQU1FLG1CQUFtQkgsYUFBYWpDLE9BQU87NEJBRTdDaUMsZUFBZSxJQUFJLENBQUNwRCxXQUFXLENBQUNvQixrQkFBa0IsQ0FBQ21DOzRCQUVuRCxJQUFNckQsT0FBT2tELGNBQWUsR0FBRzs0QkFFL0JkLFNBQVNrQixPQUFPLENBQUN0RDs0QkFFakJzQyxtQkFBbUI7d0JBQ3JCO29CQUNGO2dCQUNGO2dCQUVBLElBQUlBLGtCQUFrQjtvQkFDcEIsSUFBSSxDQUFDeEMsV0FBVyxDQUFDNEIsS0FBSyxDQUFDLEFBQUMsaUJBQStCLE9BQWZhLGdCQUFlO2dCQUN6RDtnQkFFQSxPQUFPRDtZQUNUOzs7WUFFQWQsS0FBQUE7bUJBQUFBLFNBQUFBLGlCQUFpQkgsVUFBVTs7Z0JBQ3pCLElBQUlFO2dCQUVKLElBQU1YLGFBQWEsSUFBSSxDQUFDWixJQUFJLENBQUNhLGFBQWE7Z0JBRTFDVSxxQkFBcUJYLFdBQVcyQyxLQUFLLENBQUMsU0FBQ3hDO29CQUNyQyxJQUFNc0Isc0JBQXNCdEIsVUFBVU8sYUFBYSxJQUM3Q0MscUJBQXFCRixXQUFXa0MsS0FBSyxDQUFDLFNBQUNuQjt3QkFDckMsSUFBTUUsbUJBQW1CLE1BQUtILGNBQWMsQ0FBQ0MsVUFBVWYsWUFBWWdCO3dCQUVuRSxJQUFJQyxrQkFBa0I7NEJBQ3BCLE9BQU87d0JBQ1Q7b0JBQ0Y7b0JBRU4sSUFBSWYsb0JBQW9CO3dCQUN0QixPQUFPO29CQUNUO2dCQUNGO2dCQUVBLE9BQU9BO1lBQ1Q7OztZQUVBNkIsS0FBQUE7bUJBQUFBLFNBQUFBLG1CQUFtQkYsWUFBWTtnQkFDN0IsSUFBSUMsdUJBQXVCO2dCQUUzQixJQUFNSywwQkFBMEIsSUFBSSxDQUFDeEQsSUFBSSxDQUFDeUQsU0FBUyxDQUFDUDtnQkFFcEQsSUFBSU0seUJBQXlCO29CQUMzQkwsdUJBQXVCO2dCQUN6QixPQUFRO29CQUNOLElBQU1PLHFCQUFxQlIsYUFBYWhELFNBQVMsSUFBSSxHQUFHO29CQUV4RCxJQUFJLENBQUNKLFdBQVcsQ0FBQ1MsS0FBSyxDQUFDLEFBQUMsa0JBQW9DLE9BQW5CbUQsb0JBQW1CO29CQUU1RCxJQUFNTCxtQkFBbUJILGFBQWFqQyxPQUFPLElBQ3ZDMEMsc0JBQXNCLElBQUksQ0FBQzdELFdBQVcsQ0FBQ2dDLHVCQUF1QixDQUFDdUI7b0JBRXJFLElBQUksQ0FBQ00scUJBQXFCO3dCQUN4QixJQUFNRCxzQkFBcUJSLGFBQWFoRCxTQUFTO3dCQUVqRCxJQUFJLENBQUNKLFdBQVcsQ0FBQzRCLEtBQUssQ0FBQyxBQUFDLFFBQTBCLE9BQW5CZ0MscUJBQW1CO29CQUNwRCxPQUFPO3dCQUNMUCx1QkFBdUI7b0JBQ3pCO29CQUVBLElBQUlBLHNCQUFzQjt3QkFDeEIsSUFBSSxDQUFDckQsV0FBVyxDQUFDNEIsS0FBSyxDQUFDLEFBQUMsb0JBQXNDLE9BQW5CZ0Msb0JBQW1CO29CQUNoRTtnQkFDRjtnQkFFQSxPQUFPUDtZQUNUOzs7O1lBSU9TLEtBQUFBO21CQUFQLFNBQU9BLCtCQUErQkMsMEJBQTBCLEVBQUUvRCxXQUFXO2dCQUMzRSxJQUFNLEFBQUVnRSxPQUFTQyxZQUFHLENBQVpELE1BQ0ZFLE9BQU9ILDRCQUNQOUQsU0FBU0QsWUFBWW1FLFlBQVksQ0FBQ0QsT0FDbENoRSxPQUFPOEQsS0FBS0YsOEJBQThCLENBQUNDLDRCQUE0Qi9ELGNBQ3ZFb0UseUJBQXlCLElBQUlyRSx1QkFBdUJDLGFBQWFDLFFBQVFDO2dCQUUvRSxPQUFPa0U7WUFDVDs7OztLQVZBLDBDQUFPQyxRQUFPIn0=
300
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9kb20vZGVjbGFyYXRpb24vY29tcGxleFR5cGUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBkb20gZnJvbSBcIi4uLy4uL2RvbVwiO1xuXG5pbXBvcnQgeyBkb21Bc3NpZ25lZCB9IGZyb20gXCIuLi8uLi9kb21cIjtcbmltcG9ydCB7IHN1cGVyVHlwZXNTdHJpbmdGcm9tU3VwZXJUeXBlcyB9IGZyb20gXCIuLi8uLi91dGlsaXRpZXMvdHlwZVwiO1xuXG5leHBvcnQgZGVmYXVsdCBkb21Bc3NpZ25lZChjbGFzcyBDb21wbGV4VHlwZURlY2xhcmF0aW9uIHtcbiAgY29uc3RydWN0b3IoZmlsZUNvbnRleHQsIHN0cmluZywgdHlwZSkge1xuICAgIHRoaXMuZmlsZUNvbnRleHQgPSBmaWxlQ29udGV4dDtcbiAgICB0aGlzLnN0cmluZyA9IHN0cmluZztcbiAgICB0aGlzLnR5cGUgPSB0eXBlO1xuICB9XG5cbiAgZ2V0RmlsZUNvbnRleHQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZmlsZUNvbnRleHQ7XG4gIH1cblxuICBnZXRTdHJpbmcoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RyaW5nO1xuICB9XG5cbiAgZ2V0VHlwZSgpIHtcbiAgICByZXR1cm4gdGhpcy50eXBlO1xuICB9XG5cbiAgdmVyaWZ5KCkge1xuICAgIGxldCB2ZXJpZmllZCA9IGZhbHNlO1xuXG4gICAgY29uc3QgY29tcGxleFR5cGVEZWNsYXJhdGlvblN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7XG5cbiAgICB0aGlzLmZpbGVDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke2NvbXBsZXhUeXBlRGVjbGFyYXRpb25TdHJpbmd9JyBjb21wbGV4IHR5cGUgZGVjbGFyYXRpb24uLi5gKTtcblxuICAgIGNvbnN0IHR5cGVWZXJpZmllZCA9IHRoaXMudmVyaWZ5VHlwZSgpO1xuXG4gICAgaWYgKHR5cGVWZXJpZmllZCkge1xuICAgICAgY29uc3Qgc3VwZXJUeXBlc1ZlcmlmaWVkID0gdGhpcy52ZXJpZnlTdXBlclR5cGVzKCk7XG5cbiAgICAgIGlmIChzdXBlclR5cGVzVmVyaWZpZWQpIHtcbiAgICAgICAgY29uc3QgcHJvcGVydGllc1ZlcmlmaWVkID0gdGhpcy52ZXJpZnlQcm9wZXJ0aWVzKCk7XG5cbiAgICAgICAgaWYgKHByb3BlcnRpZXNWZXJpZmllZCkge1xuICAgICAgICAgIHRoaXMuZmlsZUNvbnRleHQuYWRkVHlwZSh0aGlzLnR5cGUpO1xuXG4gICAgICAgICAgdmVyaWZpZWQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHZlcmlmaWVkKSB7XG4gICAgICB0aGlzLmZpbGVDb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7Y29tcGxleFR5cGVEZWNsYXJhdGlvblN0cmluZ30nIGNvbXBsZXggdHlwZSBkZWNsYXJhdGlvbi5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmVyaWZpZWQ7XG4gIH1cblxuICB2ZXJpZnlUeXBlKCkge1xuICAgIGxldCB0eXBlVmVyaWZpZWQgPSBmYWxzZTtcblxuICAgIGNvbnN0IHR5cGVOYW1lID0gdGhpcy50eXBlLmdldE5hbWUoKSxcbiAgICAgICAgICBjb21wbGV4VHlwZVN0cmluZyA9IHRoaXMudHlwZS5nZXRTdHJpbmcoKTtcblxuICAgIHRoaXMuZmlsZUNvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7Y29tcGxleFR5cGVTdHJpbmd9JyBjb21wbGV4IHR5cGUuLi5gKTtcblxuICAgIGNvbnN0IHR5cGVQcmVzZW50ID0gdGhpcy5maWxlQ29udGV4dC5pc1R5cGVQcmVzZW50QnlUeXBlTmFtZSh0eXBlTmFtZSk7XG5cbiAgICBpZiAodHlwZVByZXNlbnQpIHtcbiAgICAgIHRoaXMuZmlsZUNvbnRleHQuZGVidWcoYFRoZSB0eXBlICcke2NvbXBsZXhUeXBlU3RyaW5nfScgaXMgYWxyZWFkeSBwcmVzZW50LmApO1xuICAgIH0gZWxzZSB7XG4gICAgICB0eXBlVmVyaWZpZWQgPSB0cnVlO1xuICAgIH1cblxuICAgIGlmICh0eXBlVmVyaWZpZWQpIHtcbiAgICAgIHRoaXMuZmlsZUNvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHtjb21wbGV4VHlwZVN0cmluZ30nIGNvbXBsZXggdHlwZS5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHlwZVZlcmlmaWVkO1xuICB9XG5cbiAgdmVyaWZ5U3VwZXJUeXBlKHN1cGVyVHlwZSkge1xuICAgIGxldCBzdXBlclR5cGVWZXJpZmllZDtcblxuICAgIGNvbnN0IHN1cGVyVHlwZVN0cmluZyA9IHN1cGVyVHlwZS5nZXRTdHJpbmcoKTtcblxuICAgIHRoaXMuZmlsZUNvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7c3VwZXJUeXBlU3RyaW5nfScgc3VwZXItdHlwZS4uLmApO1xuXG4gICAgY29uc3Qgc3VwZXJUeXBlTmFtZSA9IHN1cGVyVHlwZS5nZXROYW1lKCksXG4gICAgICAgICAgc3VwZXJUeXBlUHJlc2VudCA9IHRoaXMuZmlsZUNvbnRleHQuaXNUeXBlUHJlc2VudEJ5VHlwZU5hbWUoc3VwZXJUeXBlTmFtZSk7XG5cbiAgICBzdXBlclR5cGVWZXJpZmllZCA9IHN1cGVyVHlwZVByZXNlbnQ7IC8vL1xuXG4gICAgaWYgKHN1cGVyVHlwZVZlcmlmaWVkKSB7XG4gICAgICB0aGlzLmZpbGVDb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7c3VwZXJUeXBlU3RyaW5nfScgc3VwZXItdHlwZS5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gc3VwZXJUeXBlVmVyaWZpZWQ7XG4gIH1cblxuICB2ZXJpZnlTdXBlclR5cGVzKCkge1xuICAgIGxldCBzdXBlclR5cGVzVmVyaWZpZWQ7XG5cbiAgICBjb25zdCB0eXBlQmFzaWMgPSB0aGlzLnR5cGUuaXNCYXNpYygpO1xuXG4gICAgaWYgKHR5cGVCYXNpYykge1xuICAgICAgc3VwZXJUeXBlc1ZlcmlmaWVkID0gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgbGV0IHN1cGVyVHlwZXM7XG5cbiAgICAgIHN1cGVyVHlwZXMgPSB0aGlzLnR5cGUuZ2V0U3VwZXJUeXBlcygpO1xuXG4gICAgICBjb25zdCBzdXBlclR5cGVzU3RyaW5nID0gc3VwZXJUeXBlc1N0cmluZ0Zyb21TdXBlclR5cGVzKHN1cGVyVHlwZXMpO1xuXG4gICAgICB0aGlzLmZpbGVDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3N1cGVyVHlwZXNTdHJpbmd9IHN1cGVyLXR5cGVzLi4uYCk7XG5cbiAgICAgIHN1cGVyVHlwZXNWZXJpZmllZCA9IHN1cGVyVHlwZXMuZXZlcnkoKHN1cGVyVHlwZSkgPT4ge1xuICAgICAgICBjb25zdCBzdXBlclR5cGVWZXJpZmllZCA9IHRoaXMudmVyaWZ5U3VwZXJUeXBlKHN1cGVyVHlwZSk7XG5cbiAgICAgICAgaWYgKHN1cGVyVHlwZVZlcmlmaWVkKSB7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICBpZiAoc3VwZXJUeXBlc1ZlcmlmaWVkKSB7XG4gICAgICAgIHN1cGVyVHlwZXMgPSBzdXBlclR5cGVzLm1hcCgoc3VwZXJUeXBlKSA9PiB7XG4gICAgICAgICAgY29uc3Qgc3VwZXJUeXBlTmFtZSA9IHN1cGVyVHlwZS5nZXROYW1lKCk7XG5cbiAgICAgICAgICBzdXBlclR5cGUgPSB0aGlzLmZpbGVDb250ZXh0LmZpbmRUeXBlQnlUeXBlTmFtZShzdXBlclR5cGVOYW1lKTtcblxuICAgICAgICAgIHJldHVybiBzdXBlclR5cGU7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMudHlwZS5zZXRTdXBlclR5cGVzKHN1cGVyVHlwZXMpO1xuXG4gICAgICAgIHRoaXMuZmlsZUNvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZScgJyR7c3VwZXJUeXBlc1N0cmluZ30gc3VwZXItdHlwZXMuYCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHN1cGVyVHlwZXNWZXJpZmllZDtcbiAgfVxuXG4gIHZlcmlmeVByb3BlcnR5KHByb3BlcnR5LCBwcm9wZXJ0aWVzLCBzdXBlclR5cGVQcm9wZXJ0aWVzKSB7XG4gICAgbGV0IHByb3BlcnR5VmVyaWZpZWQgPSBmYWxzZTtcblxuICAgIGNvbnN0IHByb3BlcnR5U3RyaW5nID0gcHJvcGVydHkuZ2V0U3RyaW5nKCk7XG5cbiAgICB0aGlzLmZpbGVDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3Byb3BlcnR5U3RyaW5nfScgcHJvcGVydHkuLi5gKTtcblxuICAgIGNvbnN0IHByb3BlcnR5TmFtZXMgPSBwcm9wZXJ0eS5nZXROYW1lcygpLFxuICAgICAgICAgIGNvdW50ID0gcHJvcGVydGllcy5yZWR1Y2UoKGNvdW50LCBwcm9wZXJ0eSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgcHJvcGVydHlOYW1lc01hdGNoID0gcHJvcGVydHkubWF0Y2hQcm9wZXJ0eU5hbWVzKHByb3BlcnR5TmFtZXMpO1xuXG4gICAgICAgICAgICBpZiAocHJvcGVydHlOYW1lc01hdGNoKSB7XG4gICAgICAgICAgICAgIGNvdW50Kys7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBjb3VudDtcbiAgICAgICAgICB9LCAwKTtcblxuICAgIGlmIChjb3VudCA+IDEpIHtcbiAgICAgIHRoaXMuZmlsZUNvbnRleHQuZGVidWcoYFRoZSAnJHtwcm9wZXJ0eVN0cmluZ30nIHByb3BlcnR5IGFwcGVhcnMgbW9yZSB0aGFuIG9uY2UuYCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHN1cGVyVHlwZVByb3BlcnR5ID0gc3VwZXJUeXBlUHJvcGVydGllcy5maW5kKChzdXBlclR5cGVQcm9wZXJ0eSkgPT4ge1xuICAgICAgICBjb25zdCBwcm9wZXJ0eU5hbWVNYXRjaGVzID0gc3VwZXJUeXBlUHJvcGVydHkubWF0Y2hQcm9wZXJ0eU5hbWVzKHByb3BlcnR5TmFtZXMpO1xuXG4gICAgICAgIGlmIChwcm9wZXJ0eU5hbWVNYXRjaGVzKSB7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgIH0pIHx8IG51bGw7XG5cbiAgICAgIGlmIChzdXBlclR5cGVQcm9wZXJ0eSAhPT0gbnVsbCkge1xuICAgICAgICBjb25zdCBzdXBlclR5cGVQcm9wZXJ0eVN0cmluZyA9IHN1cGVyVHlwZVByb3BlcnR5LmdldFN0cmluZygpO1xuXG4gICAgICAgIHRoaXMuZmlsZUNvbnRleHQuZGVidWcoYFRoZSAnJHtwcm9wZXJ0eVN0cmluZ30nIHByb3BlcnR5IG1hdGNoZXMgdGhlIHN1cGVyLXR5cGUncyAnJHtzdXBlclR5cGVQcm9wZXJ0eVN0cmluZ30nIHByb3BlcnR5LmApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbGV0IHByb3BlcnR5VHlwZTtcblxuICAgICAgICBwcm9wZXJ0eVR5cGUgPSBwcm9wZXJ0eS5nZXRUeXBlKCk7XG5cbiAgICAgICAgY29uc3QgcHJvcGVydHlUeXBlVmVyaWZpZWQgPSB0aGlzLnZlcmlmeVByb3BlcnR5VHlwZShwcm9wZXJ0eVR5cGUpO1xuXG4gICAgICAgIGlmIChwcm9wZXJ0eVR5cGVWZXJpZmllZCkge1xuICAgICAgICAgIGNvbnN0IHByb3BlcnR5VHlwZU5hbWUgPSBwcm9wZXJ0eVR5cGUuZ2V0TmFtZSgpO1xuXG4gICAgICAgICAgcHJvcGVydHlUeXBlID0gdGhpcy5maWxlQ29udGV4dC5maW5kVHlwZUJ5VHlwZU5hbWUocHJvcGVydHlUeXBlTmFtZSk7XG5cbiAgICAgICAgICBjb25zdCB0eXBlID0gcHJvcGVydHlUeXBlOyAgLy8vXG5cbiAgICAgICAgICBwcm9wZXJ0eS5zZXRUeXBlKHR5cGUpO1xuXG4gICAgICAgICAgcHJvcGVydHlWZXJpZmllZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAocHJvcGVydHlWZXJpZmllZCkge1xuICAgICAgdGhpcy5maWxlQ29udGV4dC5kZWJ1ZyhgdmVyaWZpZWQgdGhlICcke3Byb3BlcnR5U3RyaW5nfScgcHJvcGVydHkuYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHByb3BlcnR5VmVyaWZpZWQ7XG4gIH1cblxuICB2ZXJpZnlQcm9wZXJ0aWVzKCkge1xuICAgIGxldCBwcm9wZXJ0aWVzVmVyaWZpZWQ7XG5cbiAgICBjb25zdCBpbmNsdWRlU3VwZXJUeXBlcyA9IGZhbHNlLFxuICAgICAgICAgIHByb3BlcnRpZXMgPSB0aGlzLnR5cGUuZ2V0UHJvcGVydGllcyhpbmNsdWRlU3VwZXJUeXBlcyksXG4gICAgICAgICAgc3VwZXJUeXBlcyA9IHRoaXMudHlwZS5nZXRTdXBlclR5cGVzKClcblxuICAgIHByb3BlcnRpZXNWZXJpZmllZCA9IHN1cGVyVHlwZXMuZXZlcnkoKHN1cGVyVHlwZSkgPT4ge1xuICAgICAgY29uc3Qgc3VwZXJUeXBlUHJvcGVydGllcyA9IHN1cGVyVHlwZS5nZXRQcm9wZXJ0aWVzKCksXG4gICAgICAgICAgICBwcm9wZXJ0aWVzVmVyaWZpZWQgPSBwcm9wZXJ0aWVzLmV2ZXJ5KChwcm9wZXJ0eSkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCBwcm9wZXJ0eVZlcmlmaWVkID0gdGhpcy52ZXJpZnlQcm9wZXJ0eShwcm9wZXJ0eSwgcHJvcGVydGllcywgc3VwZXJUeXBlUHJvcGVydGllcyk7XG5cbiAgICAgICAgICAgICAgaWYgKHByb3BlcnR5VmVyaWZpZWQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG5cbiAgICAgIGlmIChwcm9wZXJ0aWVzVmVyaWZpZWQpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gcHJvcGVydGllc1ZlcmlmaWVkO1xuICB9XG5cbiAgdmVyaWZ5UHJvcGVydHlUeXBlKHByb3BlcnR5VHlwZSkge1xuICAgIGxldCBwcm9wZXJ0eVR5cGVWZXJpZmllZCA9IGZhbHNlO1xuXG4gICAgY29uc3QgdHlwZUVxdWFsVG9Qcm9wZXJ0eVR5cGUgPSB0aGlzLnR5cGUuaXNFcXVhbFRvKHByb3BlcnR5VHlwZSk7XG5cbiAgICBpZiAodHlwZUVxdWFsVG9Qcm9wZXJ0eVR5cGUpIHtcbiAgICAgIHByb3BlcnR5VHlwZVZlcmlmaWVkID0gdHJ1ZTtcbiAgICB9IGVsc2UgIHtcbiAgICAgIGNvbnN0IHByb3BlcnR5VHlwZVN0cmluZyA9IHByb3BlcnR5VHlwZS5nZXRTdHJpbmcoKTsgLy8vXG5cbiAgICAgIHRoaXMuZmlsZUNvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7cHJvcGVydHlUeXBlU3RyaW5nfScgcHJvcGVydHkgdHlwZS4uLmApO1xuXG4gICAgICBjb25zdCBwcm9wZXJ0eVR5cGVOYW1lID0gcHJvcGVydHlUeXBlLmdldE5hbWUoKSxcbiAgICAgICAgICAgIHByb3BlcnR5VHlwZVByZXNlbnQgPSB0aGlzLmZpbGVDb250ZXh0LmlzVHlwZVByZXNlbnRCeVR5cGVOYW1lKHByb3BlcnR5VHlwZU5hbWUpO1xuXG4gICAgICBpZiAoIXByb3BlcnR5VHlwZVByZXNlbnQpIHtcbiAgICAgICAgY29uc3QgcHJvcGVydHlUeXBlU3RyaW5nID0gcHJvcGVydHlUeXBlLmdldFN0cmluZygpO1xuXG4gICAgICAgIHRoaXMuZmlsZUNvbnRleHQuZGVidWcoYFRoZSAnJHtwcm9wZXJ0eVR5cGVTdHJpbmd9JyBwcm9wZXJ0eSB0eXBlIGlzIG5vdCBwcmVzZW50LmApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcHJvcGVydHlUeXBlVmVyaWZpZWQgPSB0cnVlO1xuICAgICAgfVxuXG4gICAgICBpZiAocHJvcGVydHlUeXBlVmVyaWZpZWQpIHtcbiAgICAgICAgdGhpcy5maWxlQ29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke3Byb3BlcnR5VHlwZVN0cmluZ30nIHByb3BlcnR5IHR5cGUuYCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHByb3BlcnR5VHlwZVZlcmlmaWVkO1xuICB9XG5cbiAgc3RhdGljIG5hbWUgPSBcIkNvbXBsZXhUeXBlRGVjbGFyYXRpb25cIjtcblxuICBzdGF0aWMgZnJvbUNvbXBsZXhUeXBlRGVjbGFyYXRpb25Ob2RlKGNvbXBsZXhUeXBlRGVjbGFyYXRpb25Ob2RlLCBmaWxlQ29udGV4dCkge1xuICAgIGNvbnN0IHsgVHlwZSB9ID0gZG9tLFxuICAgICAgICAgIG5vZGUgPSBjb21wbGV4VHlwZURlY2xhcmF0aW9uTm9kZSwgIC8vL1xuICAgICAgICAgIHN0cmluZyA9IGZpbGVDb250ZXh0Lm5vZGVBc1N0cmluZyhub2RlKSxcbiAgICAgICAgICB0eXBlID0gVHlwZS5mcm9tQ29tcGxleFR5cGVEZWNsYXJhdGlvbk5vZGUoY29tcGxleFR5cGVEZWNsYXJhdGlvbk5vZGUsIGZpbGVDb250ZXh0KSxcbiAgICAgICAgICBjb21wbGV4VHlwZURlY2xhcmF0aW9uID0gbmV3IENvbXBsZXhUeXBlRGVjbGFyYXRpb24oZmlsZUNvbnRleHQsIHN0cmluZywgdHlwZSk7XG5cbiAgICByZXR1cm4gY29tcGxleFR5cGVEZWNsYXJhdGlvbjtcbiAgfVxufSk7XG4iXSwibmFtZXMiOlsiZG9tQXNzaWduZWQiLCJDb21wbGV4VHlwZURlY2xhcmF0aW9uIiwiZmlsZUNvbnRleHQiLCJzdHJpbmciLCJ0eXBlIiwiZ2V0RmlsZUNvbnRleHQiLCJnZXRTdHJpbmciLCJnZXRUeXBlIiwidmVyaWZ5IiwidmVyaWZpZWQiLCJjb21wbGV4VHlwZURlY2xhcmF0aW9uU3RyaW5nIiwidHJhY2UiLCJ0eXBlVmVyaWZpZWQiLCJ2ZXJpZnlUeXBlIiwic3VwZXJUeXBlc1ZlcmlmaWVkIiwidmVyaWZ5U3VwZXJUeXBlcyIsInByb3BlcnRpZXNWZXJpZmllZCIsInZlcmlmeVByb3BlcnRpZXMiLCJhZGRUeXBlIiwiZGVidWciLCJ0eXBlTmFtZSIsImdldE5hbWUiLCJjb21wbGV4VHlwZVN0cmluZyIsInR5cGVQcmVzZW50IiwiaXNUeXBlUHJlc2VudEJ5VHlwZU5hbWUiLCJ2ZXJpZnlTdXBlclR5cGUiLCJzdXBlclR5cGUiLCJzdXBlclR5cGVWZXJpZmllZCIsInN1cGVyVHlwZVN0cmluZyIsInN1cGVyVHlwZU5hbWUiLCJzdXBlclR5cGVQcmVzZW50IiwidHlwZUJhc2ljIiwiaXNCYXNpYyIsInN1cGVyVHlwZXMiLCJnZXRTdXBlclR5cGVzIiwic3VwZXJUeXBlc1N0cmluZyIsInN1cGVyVHlwZXNTdHJpbmdGcm9tU3VwZXJUeXBlcyIsImV2ZXJ5IiwibWFwIiwiZmluZFR5cGVCeVR5cGVOYW1lIiwic2V0U3VwZXJUeXBlcyIsInZlcmlmeVByb3BlcnR5IiwicHJvcGVydHkiLCJwcm9wZXJ0aWVzIiwic3VwZXJUeXBlUHJvcGVydGllcyIsInByb3BlcnR5VmVyaWZpZWQiLCJwcm9wZXJ0eVN0cmluZyIsInByb3BlcnR5TmFtZXMiLCJnZXROYW1lcyIsImNvdW50IiwicmVkdWNlIiwicHJvcGVydHlOYW1lc01hdGNoIiwibWF0Y2hQcm9wZXJ0eU5hbWVzIiwic3VwZXJUeXBlUHJvcGVydHkiLCJmaW5kIiwicHJvcGVydHlOYW1lTWF0Y2hlcyIsInN1cGVyVHlwZVByb3BlcnR5U3RyaW5nIiwicHJvcGVydHlUeXBlIiwicHJvcGVydHlUeXBlVmVyaWZpZWQiLCJ2ZXJpZnlQcm9wZXJ0eVR5cGUiLCJwcm9wZXJ0eVR5cGVOYW1lIiwic2V0VHlwZSIsImluY2x1ZGVTdXBlclR5cGVzIiwiZ2V0UHJvcGVydGllcyIsInR5cGVFcXVhbFRvUHJvcGVydHlUeXBlIiwiaXNFcXVhbFRvIiwicHJvcGVydHlUeXBlU3RyaW5nIiwicHJvcGVydHlUeXBlUHJlc2VudCIsImZyb21Db21wbGV4VHlwZURlY2xhcmF0aW9uTm9kZSIsImNvbXBsZXhUeXBlRGVjbGFyYXRpb25Ob2RlIiwiVHlwZSIsImRvbSIsIm5vZGUiLCJub2RlQXNTdHJpbmciLCJjb21wbGV4VHlwZURlY2xhcmF0aW9uIiwibmFtZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBT0E7OztlQUFBOzs7MkRBTGdCO29CQUcrQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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
@@ -121,28 +121,12 @@ var _default = (0, _dom.domAssigned)((_ConstructorDeclaration = /*#__PURE__*/ fu
121
121
  var verified;
122
122
  var constructorDeclarationString = this.getString(); ///
123
123
  this.fileContext.trace("Verifying the '".concat(constructorDeclarationString, "' constructor declaration..."));
124
- var constructorVerified = this.verifyConstructor();
125
- if (constructorVerified) {
126
- var typeVerified = this.verifyType();
127
- if (typeVerified) {
128
- var type;
129
- type = this.constructor.getType();
130
- var typeName = type.getName();
131
- type = this.fileContext.findTypeByTypeName(typeName);
132
- var typeProvisional = type.isProvisional(), constructorProvisional = this.constructor.isProvisional();
133
- if (typeProvisional !== constructorProvisional) {
134
- var typeString = type.getString(), constructorString = this.constructor.getString();
135
- if (typeProvisional) {
136
- this.fileContext.debug("The '".concat(typeString, "' type is provisional whilst the '").concat(constructorString, "' constructor's type is not."));
137
- }
138
- if (constructorProvisional) {
139
- this.fileContext.debug("The '".concat(typeString, "' type is not provisional whilst the '").concat(constructorString, "' constructor's type is."));
140
- }
141
- } else {
142
- this.constructor.setType(type);
143
- this.fileContext.addConstructor(this.constructor);
144
- verified = true;
145
- }
124
+ var constructorTypeVerified = this.verifyConstructorType();
125
+ if (constructorTypeVerified) {
126
+ var constructorVerified = this.verifyConstructor();
127
+ if (constructorVerified) {
128
+ this.fileContext.addConstructor(this.constructor);
129
+ verified = true;
146
130
  }
147
131
  }
148
132
  if (verified) {
@@ -151,25 +135,6 @@ var _default = (0, _dom.domAssigned)((_ConstructorDeclaration = /*#__PURE__*/ fu
151
135
  return verified;
152
136
  }
153
137
  },
154
- {
155
- key: "verifyType",
156
- value: function verifyType() {
157
- var typeVerified;
158
- var type = this.constructor.getType();
159
- var typeName = type.getName(), typeString = type.getString();
160
- this.fileContext.trace("Verifying the '".concat(typeString, "' type..."));
161
- var typePresent = this.fileContext.isTypePresentByTypeName(typeName);
162
- if (!typePresent) {
163
- this.fileContext.debug("The '".concat(typeString, "' type is not present."));
164
- } else {
165
- typeVerified = true;
166
- }
167
- if (typeVerified) {
168
- this.fileContext.debug("...verified the '".concat(typeString, "' type."));
169
- }
170
- return typeVerified;
171
- }
172
- },
173
138
  {
174
139
  key: "verifyConstructor",
175
140
  value: function verifyConstructor() {
@@ -183,6 +148,34 @@ var _default = (0, _dom.domAssigned)((_ConstructorDeclaration = /*#__PURE__*/ fu
183
148
  }
184
149
  return constructorVerified;
185
150
  }
151
+ },
152
+ {
153
+ key: "verifyConstructorType",
154
+ value: function verifyConstructorType() {
155
+ var constructorTypeVerified = false;
156
+ var type;
157
+ type = this.constructor.getType();
158
+ var typeName = type.getName(), typeString = type.getString(), constructorString = this.constructor.getString();
159
+ this.fileContext.trace("Verifying the '".concat(constructorString, "' constructor's '").concat(typeString, "' type..."));
160
+ var includeSupertypes = false, provisional = type.isProvisional(includeSupertypes);
161
+ type = this.fileContext.findTypeByTypeName(typeName);
162
+ var typePresent = type !== null;
163
+ if (!typePresent) {
164
+ this.fileContext.debug("The '".concat(constructorString, "' constructor's '").concat(typeString, "' type is not present."));
165
+ } else {
166
+ var provisionalMatches = type.matchProvisional(provisional);
167
+ if (!provisionalMatches) {
168
+ provisional ? this.fileContext.debug("The '".concat(constructorString, "' constructor's '").concat(typeString, "' type is present but it should be provisional.")) : this.fileContext.debug("The '".concat(constructorString, "' constructor's '").concat(typeString, "' type is present but it should not be provisional."));
169
+ } else {
170
+ this.constructor.setType(type);
171
+ constructorTypeVerified = true;
172
+ }
173
+ }
174
+ if (constructorTypeVerified) {
175
+ this.fileContext.debug("...verified the '".concat(constructorString, "' constructor's '").concat(typeString, "' type."));
176
+ }
177
+ return constructorTypeVerified;
178
+ }
186
179
  }
187
180
  ], [
188
181
  {
@@ -196,4 +189,4 @@ var _default = (0, _dom.domAssigned)((_ConstructorDeclaration = /*#__PURE__*/ fu
196
189
  return ConstructorDeclaration;
197
190
  }(), _define_property(_ConstructorDeclaration, "name", "ConstructorDeclaration"), _ConstructorDeclaration));
198
191
 
199
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9kb20vZGVjbGFyYXRpb24vY29uc3RydWN0b3IuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBkb20gZnJvbSBcIi4uLy4uL2RvbVwiO1xuXG5pbXBvcnQgY29uc3RydWN0b3JWZXJpZmllciBmcm9tIFwiLi4vLi4vdmVyaWZpZXIvY29uc3RydWN0b3JcIjtcblxuaW1wb3J0IHsgZG9tQXNzaWduZWQgfSBmcm9tIFwiLi4vLi4vZG9tXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGRvbUFzc2lnbmVkKGNsYXNzIENvbnN0cnVjdG9yRGVjbGFyYXRpb24ge1xuICBjb25zdHJ1Y3RvcihmaWxlQ29udGV4dCwgc3RyaW5nLCBjb25zdHJ1Y3Rvcikge1xuICAgIHRoaXMuZmlsZUNvbnRleHQgPSBmaWxlQ29udGV4dDtcbiAgICB0aGlzLnN0cmluZyA9IHN0cmluZztcbiAgICB0aGlzLmNvbnN0cnVjdG9yID0gY29uc3RydWN0b3I7XG4gIH1cblxuICBnZXRGaWxlQ29udGV4dCgpIHtcbiAgICByZXR1cm4gdGhpcy5maWxlQ29udGV4dDtcbiAgfVxuXG4gIGdldFN0cmluZygpIHtcbiAgICByZXR1cm4gdGhpcy5zdHJpbmc7XG4gIH1cblxuICBnZXRDb25zdHJ1Y3RvcigpIHtcbiAgICByZXR1cm4gdGhpcy5jb25zdHJ1Y3RvcjtcbiAgfVxuXG4gIHZlcmlmeSgpIHtcbiAgICBsZXQgdmVyaWZpZWQ7XG5cbiAgICBjb25zdCBjb25zdHJ1Y3RvckRlY2xhcmF0aW9uU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgLy8vXG5cbiAgICB0aGlzLmZpbGVDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke2NvbnN0cnVjdG9yRGVjbGFyYXRpb25TdHJpbmd9JyBjb25zdHJ1Y3RvciBkZWNsYXJhdGlvbi4uLmApO1xuXG4gICAgY29uc3QgY29uc3RydWN0b3JWZXJpZmllZCA9IHRoaXMudmVyaWZ5Q29uc3RydWN0b3IoKTtcblxuICAgIGlmIChjb25zdHJ1Y3RvclZlcmlmaWVkKSB7XG4gICAgICBjb25zdCB0eXBlVmVyaWZpZWQgPSB0aGlzLnZlcmlmeVR5cGUoKTtcblxuICAgICAgaWYgKHR5cGVWZXJpZmllZCkge1xuICAgICAgICBsZXQgdHlwZTtcblxuICAgICAgICB0eXBlID0gdGhpcy5jb25zdHJ1Y3Rvci5nZXRUeXBlKCk7XG5cbiAgICAgICAgY29uc3QgdHlwZU5hbWUgPSB0eXBlLmdldE5hbWUoKTtcblxuICAgICAgICB0eXBlID0gdGhpcy5maWxlQ29udGV4dC5maW5kVHlwZUJ5VHlwZU5hbWUodHlwZU5hbWUpO1xuXG4gICAgICAgIGNvbnN0IHR5cGVQcm92aXNpb25hbCA9IHR5cGUuaXNQcm92aXNpb25hbCgpLFxuICAgICAgICAgICAgICBjb25zdHJ1Y3RvclByb3Zpc2lvbmFsID0gdGhpcy5jb25zdHJ1Y3Rvci5pc1Byb3Zpc2lvbmFsKCk7XG5cbiAgICAgICAgaWYgKHR5cGVQcm92aXNpb25hbCAhPT0gY29uc3RydWN0b3JQcm92aXNpb25hbCkge1xuICAgICAgICAgIGNvbnN0IHR5cGVTdHJpbmcgPSB0eXBlLmdldFN0cmluZygpLFxuICAgICAgICAgICAgICAgIGNvbnN0cnVjdG9yU3RyaW5nID0gdGhpcy5jb25zdHJ1Y3Rvci5nZXRTdHJpbmcoKTtcblxuICAgICAgICAgIGlmICh0eXBlUHJvdmlzaW9uYWwpIHtcbiAgICAgICAgICAgIHRoaXMuZmlsZUNvbnRleHQuZGVidWcoYFRoZSAnJHt0eXBlU3RyaW5nfScgdHlwZSBpcyBwcm92aXNpb25hbCB3aGlsc3QgdGhlICcke2NvbnN0cnVjdG9yU3RyaW5nfScgY29uc3RydWN0b3IncyB0eXBlIGlzIG5vdC5gKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoY29uc3RydWN0b3JQcm92aXNpb25hbCkge1xuICAgICAgICAgICAgdGhpcy5maWxlQ29udGV4dC5kZWJ1ZyhgVGhlICcke3R5cGVTdHJpbmd9JyB0eXBlIGlzIG5vdCBwcm92aXNpb25hbCB3aGlsc3QgdGhlICcke2NvbnN0cnVjdG9yU3RyaW5nfScgY29uc3RydWN0b3IncyB0eXBlIGlzLmApO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLmNvbnN0cnVjdG9yLnNldFR5cGUodHlwZSk7XG5cbiAgICAgICAgICB0aGlzLmZpbGVDb250ZXh0LmFkZENvbnN0cnVjdG9yKHRoaXMuY29uc3RydWN0b3IpO1xuXG4gICAgICAgICAgdmVyaWZpZWQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHZlcmlmaWVkKSB7XG4gICAgICB0aGlzLmZpbGVDb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7Y29uc3RydWN0b3JEZWNsYXJhdGlvblN0cmluZ30nIGNvbnN0cnVjdG9yIGRlY2xhcmF0aW9uLmApO1xuICAgIH1cblxuICAgIHJldHVybiB2ZXJpZmllZDtcbiAgfVxuXG4gIHZlcmlmeVR5cGUoKSB7XG4gICAgbGV0IHR5cGVWZXJpZmllZDtcblxuICAgIGNvbnN0IHR5cGUgPSB0aGlzLmNvbnN0cnVjdG9yLmdldFR5cGUoKTtcblxuICAgIGNvbnN0IHR5cGVOYW1lID0gdHlwZS5nZXROYW1lKCksXG4gICAgICAgICAgdHlwZVN0cmluZyA9IHR5cGUuZ2V0U3RyaW5nKCk7XG5cbiAgICB0aGlzLmZpbGVDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3R5cGVTdHJpbmd9JyB0eXBlLi4uYCk7XG5cbiAgICBjb25zdCB0eXBlUHJlc2VudCA9IHRoaXMuZmlsZUNvbnRleHQuaXNUeXBlUHJlc2VudEJ5VHlwZU5hbWUodHlwZU5hbWUpO1xuXG4gICAgaWYgKCF0eXBlUHJlc2VudCkge1xuICAgICAgdGhpcy5maWxlQ29udGV4dC5kZWJ1ZyhgVGhlICcke3R5cGVTdHJpbmd9JyB0eXBlIGlzIG5vdCBwcmVzZW50LmApO1xuICAgIH0gZWxzZSB7XG4gICAgICB0eXBlVmVyaWZpZWQgPSB0cnVlO1xuICAgIH1cblxuICAgIGlmICh0eXBlVmVyaWZpZWQpIHtcbiAgICAgIHRoaXMuZmlsZUNvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHt0eXBlU3RyaW5nfScgdHlwZS5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHlwZVZlcmlmaWVkO1xuICB9XG5cbiAgdmVyaWZ5Q29uc3RydWN0b3IoKSB7XG4gICAgbGV0IGNvbnN0cnVjdG9yVmVyaWZpZWQ7XG5cbiAgICBjb25zdCBjb25zdHJ1Y3RvclN0cmluZyA9IHRoaXMuY29uc3RydWN0b3IuZ2V0U3RyaW5nKCk7XG5cbiAgICB0aGlzLmZpbGVDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke2NvbnN0cnVjdG9yU3RyaW5nfScgY29uc3RydWN0b3IuLi5gKTtcblxuICAgIGNvbnN0IHRlcm0gPSB0aGlzLmNvbnN0cnVjdG9yLmdldFRlcm0oKSxcbiAgICAgICAgICB0ZXJtTm9kZSA9IHRlcm0uZ2V0Tm9kZSgpO1xuXG4gICAgY29uc3RydWN0b3JWZXJpZmllZCA9IGNvbnN0cnVjdG9yVmVyaWZpZXIudmVyaWZ5VGVybSh0ZXJtTm9kZSwgdGhpcy5maWxlQ29udGV4dCk7XG5cbiAgICBpZiAoY29uc3RydWN0b3JWZXJpZmllZCkge1xuICAgICAgdGhpcy5maWxlQ29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke2NvbnN0cnVjdG9yU3RyaW5nfScgY29uc3RydWN0b3IuYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbnN0cnVjdG9yVmVyaWZpZWQ7XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiQ29uc3RydWN0b3JEZWNsYXJhdGlvblwiO1xuXG4gIHN0YXRpYyBmcm9tQ29uc3RydWN0b3JEZWNsYXJhdGlvbk5vZGUoY29uc3RydWN0b3JEZWNsYXJhdGlvbk5vZGUsIGZpbGVDb250ZXh0KSB7XG4gICAgY29uc3QgeyBDb25zdHJ1Y3RvciB9ID0gZG9tLFxuICAgICAgICAgIG5vZGUgPSBjb25zdHJ1Y3RvckRlY2xhcmF0aW9uTm9kZSwgIC8vL1xuICAgICAgICAgIHN0cmluZyA9IGZpbGVDb250ZXh0Lm5vZGVBc1N0cmluZyhub2RlKSxcbiAgICAgICAgICBjb25zdHJ1Y3RvciA9IENvbnN0cnVjdG9yLmZyb21Db25zdHJ1Y3RvckRlY2xhcmF0aW9uTm9kZShjb25zdHJ1Y3RvckRlY2xhcmF0aW9uTm9kZSwgZmlsZUNvbnRleHQpLFxuICAgICAgICAgIGNvbnN0cnVjdG9yRGVjbGFyYXRpb24gPSBuZXcgQ29uc3RydWN0b3JEZWNsYXJhdGlvbihmaWxlQ29udGV4dCwgc3RyaW5nLCBjb25zdHJ1Y3Rvcik7XG5cbiAgICByZXR1cm4gY29uc3RydWN0b3JEZWNsYXJhdGlvbjtcbiAgfVxufSk7XG4iXSwibmFtZXMiOlsiZG9tQXNzaWduZWQiLCJDb25zdHJ1Y3RvckRlY2xhcmF0aW9uIiwiZmlsZUNvbnRleHQiLCJzdHJpbmciLCJjb25zdHJ1Y3RvciIsImdldEZpbGVDb250ZXh0IiwiZ2V0U3RyaW5nIiwiZ2V0Q29uc3RydWN0b3IiLCJ2ZXJpZnkiLCJ2ZXJpZmllZCIsImNvbnN0cnVjdG9yRGVjbGFyYXRpb25TdHJpbmciLCJ0cmFjZSIsImNvbnN0cnVjdG9yVmVyaWZpZWQiLCJ2ZXJpZnlDb25zdHJ1Y3RvciIsInR5cGVWZXJpZmllZCIsInZlcmlmeVR5cGUiLCJ0eXBlIiwiZ2V0VHlwZSIsInR5cGVOYW1lIiwiZ2V0TmFtZSIsImZpbmRUeXBlQnlUeXBlTmFtZSIsInR5cGVQcm92aXNpb25hbCIsImlzUHJvdmlzaW9uYWwiLCJjb25zdHJ1Y3RvclByb3Zpc2lvbmFsIiwidHlwZVN0cmluZyIsImNvbnN0cnVjdG9yU3RyaW5nIiwiZGVidWciLCJzZXRUeXBlIiwiYWRkQ29uc3RydWN0b3IiLCJ0eXBlUHJlc2VudCIsImlzVHlwZVByZXNlbnRCeVR5cGVOYW1lIiwidGVybSIsImdldFRlcm0iLCJ0ZXJtTm9kZSIsImdldE5vZGUiLCJjb25zdHJ1Y3RvclZlcmlmaWVyIiwidmVyaWZ5VGVybSIsImZyb21Db25zdHJ1Y3RvckRlY2xhcmF0aW9uTm9kZSIsImNvbnN0cnVjdG9yRGVjbGFyYXRpb25Ob2RlIiwiQ29uc3RydWN0b3IiLCJkb20iLCJub2RlIiwibm9kZUFzU3RyaW5nIiwiY29uc3RydWN0b3JEZWNsYXJhdGlvbiIsIm5hbWUiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQVFBOzs7ZUFBQTs7OzJEQU5nQjtrRUFFZ0I7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lBSWhDLFdBQWVBLElBQUFBLGdCQUFXLDJDQUFDO2FBQU1DLHVCQUNuQkMsV0FBVyxFQUFFQyxNQUFNLEVBQUVDLFdBQVc7Z0NBRGJIO1FBRTdCLElBQUksQ0FBQ0MsV0FBVyxHQUFHQTtRQUNuQixJQUFJLENBQUNDLE1BQU0sR0FBR0E7UUFDZCxJQUFJLENBQUMsV0FBVyxHQUFHQzs7OztZQUdyQkMsS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLE9BQU8sSUFBSSxDQUFDSCxXQUFXO1lBQ3pCOzs7WUFFQUksS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLE9BQU8sSUFBSSxDQUFDSCxNQUFNO1lBQ3BCOzs7WUFFQUksS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLE9BQU8sSUFBSSxDQUFDLFdBQVc7WUFDekI7OztZQUVBQyxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsSUFBSUM7Z0JBRUosSUFBTUMsK0JBQStCLElBQUksQ0FBQ0osU0FBUyxJQUFJLEdBQUc7Z0JBRTFELElBQUksQ0FBQ0osV0FBVyxDQUFDUyxLQUFLLENBQUMsQUFBQyxrQkFBOEMsT0FBN0JELDhCQUE2QjtnQkFFdEUsSUFBTUUsc0JBQXNCLElBQUksQ0FBQ0MsaUJBQWlCO2dCQUVsRCxJQUFJRCxxQkFBcUI7b0JBQ3ZCLElBQU1FLGVBQWUsSUFBSSxDQUFDQyxVQUFVO29CQUVwQyxJQUFJRCxjQUFjO3dCQUNoQixJQUFJRTt3QkFFSkEsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDQyxP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
192
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9kb20vZGVjbGFyYXRpb24vY29uc3RydWN0b3IuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBkb20gZnJvbSBcIi4uLy4uL2RvbVwiO1xuXG5pbXBvcnQgY29uc3RydWN0b3JWZXJpZmllciBmcm9tIFwiLi4vLi4vdmVyaWZpZXIvY29uc3RydWN0b3JcIjtcblxuaW1wb3J0IHsgZG9tQXNzaWduZWQgfSBmcm9tIFwiLi4vLi4vZG9tXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGRvbUFzc2lnbmVkKGNsYXNzIENvbnN0cnVjdG9yRGVjbGFyYXRpb24ge1xuICBjb25zdHJ1Y3RvcihmaWxlQ29udGV4dCwgc3RyaW5nLCBjb25zdHJ1Y3Rvcikge1xuICAgIHRoaXMuZmlsZUNvbnRleHQgPSBmaWxlQ29udGV4dDtcbiAgICB0aGlzLnN0cmluZyA9IHN0cmluZztcbiAgICB0aGlzLmNvbnN0cnVjdG9yID0gY29uc3RydWN0b3I7XG4gIH1cblxuICBnZXRGaWxlQ29udGV4dCgpIHtcbiAgICByZXR1cm4gdGhpcy5maWxlQ29udGV4dDtcbiAgfVxuXG4gIGdldFN0cmluZygpIHtcbiAgICByZXR1cm4gdGhpcy5zdHJpbmc7XG4gIH1cblxuICBnZXRDb25zdHJ1Y3RvcigpIHtcbiAgICByZXR1cm4gdGhpcy5jb25zdHJ1Y3RvcjtcbiAgfVxuXG4gIHZlcmlmeSgpIHtcbiAgICBsZXQgdmVyaWZpZWQ7XG5cbiAgICBjb25zdCBjb25zdHJ1Y3RvckRlY2xhcmF0aW9uU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgLy8vXG5cbiAgICB0aGlzLmZpbGVDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke2NvbnN0cnVjdG9yRGVjbGFyYXRpb25TdHJpbmd9JyBjb25zdHJ1Y3RvciBkZWNsYXJhdGlvbi4uLmApO1xuXG4gICAgY29uc3QgY29uc3RydWN0b3JUeXBlVmVyaWZpZWQgPSB0aGlzLnZlcmlmeUNvbnN0cnVjdG9yVHlwZSgpO1xuXG4gICAgaWYgKGNvbnN0cnVjdG9yVHlwZVZlcmlmaWVkKSB7XG4gICAgICBjb25zdCBjb25zdHJ1Y3RvclZlcmlmaWVkID0gdGhpcy52ZXJpZnlDb25zdHJ1Y3RvcigpO1xuXG4gICAgICBpZiAoY29uc3RydWN0b3JWZXJpZmllZCkge1xuICAgICAgICB0aGlzLmZpbGVDb250ZXh0LmFkZENvbnN0cnVjdG9yKHRoaXMuY29uc3RydWN0b3IpO1xuXG4gICAgICAgIHZlcmlmaWVkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodmVyaWZpZWQpIHtcbiAgICAgIHRoaXMuZmlsZUNvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHtjb25zdHJ1Y3RvckRlY2xhcmF0aW9uU3RyaW5nfScgY29uc3RydWN0b3IgZGVjbGFyYXRpb24uYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZlcmlmaWVkO1xuICB9XG5cbiAgdmVyaWZ5Q29uc3RydWN0b3IoKSB7XG4gICAgbGV0IGNvbnN0cnVjdG9yVmVyaWZpZWQ7XG5cbiAgICBjb25zdCBjb25zdHJ1Y3RvclN0cmluZyA9IHRoaXMuY29uc3RydWN0b3IuZ2V0U3RyaW5nKCk7XG5cbiAgICB0aGlzLmZpbGVDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke2NvbnN0cnVjdG9yU3RyaW5nfScgY29uc3RydWN0b3IuLi5gKTtcblxuICAgIGNvbnN0IHRlcm0gPSB0aGlzLmNvbnN0cnVjdG9yLmdldFRlcm0oKSxcbiAgICAgICAgICB0ZXJtTm9kZSA9IHRlcm0uZ2V0Tm9kZSgpO1xuXG4gICAgY29uc3RydWN0b3JWZXJpZmllZCA9IGNvbnN0cnVjdG9yVmVyaWZpZXIudmVyaWZ5VGVybSh0ZXJtTm9kZSwgdGhpcy5maWxlQ29udGV4dCk7XG5cbiAgICBpZiAoY29uc3RydWN0b3JWZXJpZmllZCkge1xuICAgICAgdGhpcy5maWxlQ29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke2NvbnN0cnVjdG9yU3RyaW5nfScgY29uc3RydWN0b3IuYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbnN0cnVjdG9yVmVyaWZpZWQ7XG4gIH1cblxuICB2ZXJpZnlDb25zdHJ1Y3RvclR5cGUoKSB7XG4gICAgbGV0IGNvbnN0cnVjdG9yVHlwZVZlcmlmaWVkID0gZmFsc2U7XG5cbiAgICBsZXQgdHlwZTtcblxuICAgIHR5cGUgPSB0aGlzLmNvbnN0cnVjdG9yLmdldFR5cGUoKTtcblxuICAgIGNvbnN0IHR5cGVOYW1lID0gdHlwZS5nZXROYW1lKCksXG4gICAgICAgICAgdHlwZVN0cmluZyA9IHR5cGUuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgY29uc3RydWN0b3JTdHJpbmcgPSB0aGlzLmNvbnN0cnVjdG9yLmdldFN0cmluZygpO1xuXG4gICAgdGhpcy5maWxlQ29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHtjb25zdHJ1Y3RvclN0cmluZ30nIGNvbnN0cnVjdG9yJ3MgJyR7dHlwZVN0cmluZ30nIHR5cGUuLi5gKTtcblxuICAgIGNvbnN0IGluY2x1ZGVTdXBlcnR5cGVzID0gZmFsc2UsXG4gICAgICAgICAgcHJvdmlzaW9uYWwgPSB0eXBlLmlzUHJvdmlzaW9uYWwoaW5jbHVkZVN1cGVydHlwZXMpO1xuXG4gICAgdHlwZSA9IHRoaXMuZmlsZUNvbnRleHQuZmluZFR5cGVCeVR5cGVOYW1lKHR5cGVOYW1lKTtcblxuICAgIGNvbnN0IHR5cGVQcmVzZW50ID0gKHR5cGUgIT09IG51bGwpXG5cbiAgICBpZiAoIXR5cGVQcmVzZW50KSB7XG4gICAgICB0aGlzLmZpbGVDb250ZXh0LmRlYnVnKGBUaGUgJyR7Y29uc3RydWN0b3JTdHJpbmd9JyBjb25zdHJ1Y3RvcidzICcke3R5cGVTdHJpbmd9JyB0eXBlIGlzIG5vdCBwcmVzZW50LmApO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBwcm92aXNpb25hbE1hdGNoZXMgPSB0eXBlLm1hdGNoUHJvdmlzaW9uYWwocHJvdmlzaW9uYWwpO1xuXG4gICAgICBpZiAoIXByb3Zpc2lvbmFsTWF0Y2hlcykge1xuICAgICAgICBwcm92aXNpb25hbCA/XG4gICAgICAgICAgdGhpcy5maWxlQ29udGV4dC5kZWJ1ZyhgVGhlICcke2NvbnN0cnVjdG9yU3RyaW5nfScgY29uc3RydWN0b3IncyAnJHt0eXBlU3RyaW5nfScgdHlwZSBpcyBwcmVzZW50IGJ1dCBpdCBzaG91bGQgYmUgcHJvdmlzaW9uYWwuYCkgOlxuICAgICAgICAgICAgdGhpcy5maWxlQ29udGV4dC5kZWJ1ZyhgVGhlICcke2NvbnN0cnVjdG9yU3RyaW5nfScgY29uc3RydWN0b3IncyAnJHt0eXBlU3RyaW5nfScgdHlwZSBpcyBwcmVzZW50IGJ1dCBpdCBzaG91bGQgbm90IGJlIHByb3Zpc2lvbmFsLmApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5jb25zdHJ1Y3Rvci5zZXRUeXBlKHR5cGUpO1xuXG4gICAgICAgIGNvbnN0cnVjdG9yVHlwZVZlcmlmaWVkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoY29uc3RydWN0b3JUeXBlVmVyaWZpZWQpIHtcbiAgICAgIHRoaXMuZmlsZUNvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHtjb25zdHJ1Y3RvclN0cmluZ30nIGNvbnN0cnVjdG9yJ3MgJyR7dHlwZVN0cmluZ30nIHR5cGUuYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbnN0cnVjdG9yVHlwZVZlcmlmaWVkO1xuICB9XG5cbiAgc3RhdGljIG5hbWUgPSBcIkNvbnN0cnVjdG9yRGVjbGFyYXRpb25cIjtcblxuICBzdGF0aWMgZnJvbUNvbnN0cnVjdG9yRGVjbGFyYXRpb25Ob2RlKGNvbnN0cnVjdG9yRGVjbGFyYXRpb25Ob2RlLCBmaWxlQ29udGV4dCkge1xuICAgIGNvbnN0IHsgQ29uc3RydWN0b3IgfSA9IGRvbSxcbiAgICAgICAgICBub2RlID0gY29uc3RydWN0b3JEZWNsYXJhdGlvbk5vZGUsICAvLy9cbiAgICAgICAgICBzdHJpbmcgPSBmaWxlQ29udGV4dC5ub2RlQXNTdHJpbmcobm9kZSksXG4gICAgICAgICAgY29uc3RydWN0b3IgPSBDb25zdHJ1Y3Rvci5mcm9tQ29uc3RydWN0b3JEZWNsYXJhdGlvbk5vZGUoY29uc3RydWN0b3JEZWNsYXJhdGlvbk5vZGUsIGZpbGVDb250ZXh0KSxcbiAgICAgICAgICBjb25zdHJ1Y3RvckRlY2xhcmF0aW9uID0gbmV3IENvbnN0cnVjdG9yRGVjbGFyYXRpb24oZmlsZUNvbnRleHQsIHN0cmluZywgY29uc3RydWN0b3IpO1xuXG4gICAgcmV0dXJuIGNvbnN0cnVjdG9yRGVjbGFyYXRpb247XG4gIH1cbn0pO1xuIl0sIm5hbWVzIjpbImRvbUFzc2lnbmVkIiwiQ29uc3RydWN0b3JEZWNsYXJhdGlvbiIsImZpbGVDb250ZXh0Iiwic3RyaW5nIiwiY29uc3RydWN0b3IiLCJnZXRGaWxlQ29udGV4dCIsImdldFN0cmluZyIsImdldENvbnN0cnVjdG9yIiwidmVyaWZ5IiwidmVyaWZpZWQiLCJjb25zdHJ1Y3RvckRlY2xhcmF0aW9uU3RyaW5nIiwidHJhY2UiLCJjb25zdHJ1Y3RvclR5cGVWZXJpZmllZCIsInZlcmlmeUNvbnN0cnVjdG9yVHlwZSIsImNvbnN0cnVjdG9yVmVyaWZpZWQiLCJ2ZXJpZnlDb25zdHJ1Y3RvciIsImFkZENvbnN0cnVjdG9yIiwiZGVidWciLCJjb25zdHJ1Y3RvclN0cmluZyIsInRlcm0iLCJnZXRUZXJtIiwidGVybU5vZGUiLCJnZXROb2RlIiwiY29uc3RydWN0b3JWZXJpZmllciIsInZlcmlmeVRlcm0iLCJ0eXBlIiwiZ2V0VHlwZSIsInR5cGVOYW1lIiwiZ2V0TmFtZSIsInR5cGVTdHJpbmciLCJpbmNsdWRlU3VwZXJ0eXBlcyIsInByb3Zpc2lvbmFsIiwiaXNQcm92aXNpb25hbCIsImZpbmRUeXBlQnlUeXBlTmFtZSIsInR5cGVQcmVzZW50IiwicHJvdmlzaW9uYWxNYXRjaGVzIiwibWF0Y2hQcm92aXNpb25hbCIsInNldFR5cGUiLCJmcm9tQ29uc3RydWN0b3JEZWNsYXJhdGlvbk5vZGUiLCJjb25zdHJ1Y3RvckRlY2xhcmF0aW9uTm9kZSIsIkNvbnN0cnVjdG9yIiwiZG9tIiwibm9kZSIsIm5vZGVBc1N0cmluZyIsImNvbnN0cnVjdG9yRGVjbGFyYXRpb24iLCJuYW1lIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFRQTs7O2VBQUE7OzsyREFOZ0I7a0VBRWdCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQUloQyxXQUFlQSxJQUFBQSxnQkFBVywyQ0FBQzthQUFNQyx1QkFDbkJDLFdBQVcsRUFBRUMsTUFBTSxFQUFFQyxXQUFXO2dDQURiSDtRQUU3QixJQUFJLENBQUNDLFdBQVcsR0FBR0E7UUFDbkIsSUFBSSxDQUFDQyxNQUFNLEdBQUdBO1FBQ2QsSUFBSSxDQUFDLFdBQVcsR0FBR0M7Ozs7WUFHckJDLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxPQUFPLElBQUksQ0FBQ0gsV0FBVztZQUN6Qjs7O1lBRUFJLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxPQUFPLElBQUksQ0FBQ0gsTUFBTTtZQUNwQjs7O1lBRUFJLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxPQUFPLElBQUksQ0FBQyxXQUFXO1lBQ3pCOzs7WUFFQUMsS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLElBQUlDO2dCQUVKLElBQU1DLCtCQUErQixJQUFJLENBQUNKLFNBQVMsSUFBSSxHQUFHO2dCQUUxRCxJQUFJLENBQUNKLFdBQVcsQ0FBQ1MsS0FBSyxDQUFDLEFBQUMsa0JBQThDLE9BQTdCRCw4QkFBNkI7Z0JBRXRFLElBQU1FLDBCQUEwQixJQUFJLENBQUNDLHFCQUFxQjtnQkFFMUQsSUFBSUQseUJBQXlCO29CQUMzQixJQUFNRSxzQkFBc0IsSUFBSSxDQUFDQyxpQkFBaUI7b0JBRWxELElBQUlELHFCQUFxQjt3QkFDdkIsSUFBSSxDQUFDWixXQUFXLENBQUNjLGNBQWMsQ0FBQyxJQUFJLENBQUMsV0FBVzt3QkFFaERQLFdB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