occam-verify-cli 1.0.781 → 1.0.785

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 (45) hide show
  1. package/lib/context/branching.js +1 -1
  2. package/lib/context/ephemeral.js +22 -11
  3. package/lib/context/file/nominal.js +4 -4
  4. package/lib/context/proof.js +45 -40
  5. package/lib/context.js +16 -20
  6. package/lib/element/assumption.js +47 -17
  7. package/lib/element/frame.js +1 -39
  8. package/lib/element/judgement.js +33 -5
  9. package/lib/element/metavariable.js +7 -7
  10. package/lib/element/topLevelMetaAssertion.js +9 -9
  11. package/lib/nonTerminalNodeMap.js +1 -3
  12. package/lib/preamble.js +1 -2
  13. package/lib/process/instantiate.js +2 -8
  14. package/lib/process/unify.js +72 -5
  15. package/lib/ruleNames.js +1 -5
  16. package/lib/utilities/context.js +30 -10
  17. package/lib/utilities/element.js +18 -41
  18. package/lib/utilities/json.js +1 -23
  19. package/lib/utilities/string.js +8 -19
  20. package/lib/utilities/unification.js +8 -6
  21. package/package.json +4 -4
  22. package/src/context/branching.js +1 -1
  23. package/src/context/ephemeral.js +26 -10
  24. package/src/context/file/nominal.js +3 -3
  25. package/src/context/proof.js +52 -46
  26. package/src/context.js +21 -27
  27. package/src/element/assumption.js +72 -23
  28. package/src/element/frame.js +1 -61
  29. package/src/element/judgement.js +45 -5
  30. package/src/element/metavariable.js +6 -9
  31. package/src/element/topLevelMetaAssertion.js +13 -13
  32. package/src/nonTerminalNodeMap.js +0 -3
  33. package/src/preamble.js +0 -1
  34. package/src/process/instantiate.js +2 -6
  35. package/src/process/unify.js +117 -7
  36. package/src/ruleNames.js +0 -1
  37. package/src/utilities/context.js +43 -11
  38. package/src/utilities/element.js +26 -56
  39. package/src/utilities/json.js +0 -26
  40. package/src/utilities/string.js +8 -22
  41. package/src/utilities/unification.js +8 -8
  42. package/lib/element/substitution/metaLevel.js +0 -148
  43. package/lib/node/substitution/metaLevel.js +0 -40
  44. package/src/element/substitution/metaLevel.js +0 -212
  45. package/src/node/substitution/metaLevel.js +0 -37
@@ -116,11 +116,7 @@ function nominally(innerFunction) {
116
116
  return innerFunction(context);
117
117
  }
118
118
  function simplify(innerFunction, context) {
119
- let contextExtraneousContext = isContextExtraneousContext(context);
120
- while(contextExtraneousContext){
121
- context = context.getContext();
122
- contextExtraneousContext = isContextExtraneousContext(context);
123
- }
119
+ context = removeExtraneousContexts(context);
124
120
  const ephemeralContext = _ephemeral.default.fromNothing(context);
125
121
  context = ephemeralContext; ///
126
122
  return innerFunction(context);
@@ -135,12 +131,12 @@ function unserialise(innerFunction, json, context) {
135
131
  context = ephemeralContext; ///
136
132
  return innerFunction(json, context);
137
133
  }
138
- async function asyncRestrict(innerFunction, metaLevelSubstitutions, context) {
134
+ async function asyncRestrict(innerFunction, assumptions, context) {
139
135
  if (context === undefined) {
140
- context = metaLevelSubstitutions; ///
141
- metaLevelSubstitutions = null;
136
+ context = assumptions; ///
137
+ assumptions = null;
142
138
  }
143
- const proofContext = _proof.default.fromMetaLevelSubstitutions(metaLevelSubstitutions, context);
139
+ const proofContext = _proof.default.fromAssumptions(assumptions, context);
144
140
  context = proofContext; ///
145
141
  return await innerFunction(context);
146
142
  }
@@ -153,5 +149,29 @@ function isContextExtraneousContext(context) {
153
149
  const contextLiminalContext = context instanceof _liminal.default, contextEphemeralContext = context instanceof _ephemeral.default, contextBranchingContext = context instanceof _branching.default, contextSyntheticContext = context instanceof _synthetic.default, contextExtraneousContext = contextLiminalContext || contextEphemeralContext || contextBranchingContext || contextSyntheticContext;
154
150
  return contextExtraneousContext;
155
151
  }
152
+ function removeExtraneousContexts(context) {
153
+ context = trimExtraneousContexts(context);
154
+ const firstContext = context; ///
155
+ let currentContext = context; ///
156
+ while(currentContext !== null){
157
+ context = currentContext.getContext();
158
+ context = trimExtraneousContexts(context);
159
+ currentContext.setContext(context);
160
+ currentContext = context; ///
161
+ }
162
+ context = firstContext; ///
163
+ return context;
164
+ }
165
+ function trimExtraneousContexts(context) {
166
+ let contextExtraneousContext = isContextExtraneousContext(context);
167
+ while(contextExtraneousContext){
168
+ context = context.getContext();
169
+ if (context === null) {
170
+ break;
171
+ }
172
+ contextExtraneousContext = isContextExtraneousContext(context);
173
+ }
174
+ return context;
175
+ }
156
176
 
157
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvY29udGV4dC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IFByb29mQ29udGV4dCBmcm9tIFwiLi4vY29udGV4dC9wcm9vZlwiO1xuaW1wb3J0IE5lc3RlZENvbnRleHQgZnJvbSBcIi4uL2NvbnRleHQvbmVzdGVkXCI7XG5pbXBvcnQgVGhldGljQ29udGV4dCBmcm9tIFwiLi4vY29udGV4dC90aGV0aWNcIjtcbmltcG9ydCBOb21pbmFsQ29udGV4dCBmcm9tIFwiLi4vY29udGV4dC9ub21pbmFsXCI7XG5pbXBvcnQgTGl0ZXJhbENvbnRleHQgZnJvbSBcIi4uL2NvbnRleHQvbGl0ZXJhbFwiO1xuaW1wb3J0IExpbWluYWxDb250ZXh0IGZyb20gXCIuLi9jb250ZXh0L2xpbWluYWxcIjtcbmltcG9ydCBJbGxhdGl2ZUNvbnRleHQgZnJvbSBcIi4uL2NvbnRleHQvaWxsYXRpdmVcIjtcbmltcG9ydCBFcGhlbWVyYWxDb250ZXh0IGZyb20gXCIuLi9jb250ZXh0L2VwaGVtZXJhbFwiO1xuaW1wb3J0IEJyYW5jaGluZ0NvbnRleHQgZnJvbSBcIi4uL2NvbnRleHQvYnJhbmNoaW5nXCI7XG5pbXBvcnQgU3ludGhldGljQ29udGV4dCBmcm9tIFwiLi4vY29udGV4dC9zeW50aGV0aWNcIjtcblxuaW1wb3J0IHsgZXBoZW1lcmFsQ29udGV4dEZyb21KU09OLCBlcGhlbWVyYWxDb250ZXh0VG9FcGhlbWVyYWxDb250ZXh0SlNPTiB9IGZyb20gXCIuLi91dGlsaXRpZXMvanNvblwiO1xuXG5leHBvcnQgZnVuY3Rpb24gam9pbihpbm5lckZ1bmN0aW9uLCAuLi5jb250ZXh0cykge1xuICBjb25zdCBzeW50aGV0aWNDb250ZXh0ID0gU3ludGhldGljQ29udGV4dC5mcm9tQ29udGV4dHMoLi4uY29udGV4dHMpLFxuICAgICAgICBjb250ZXh0ID0gc3ludGhldGljQ29udGV4dDsgIC8vL1xuXG4gIHJldHVybiBpbm5lckZ1bmN0aW9uKGNvbnRleHQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY2hvb3NlKGlubmVyRnVuY3Rpb24sIGNvbnRleHQpIHtcbiAgY29uc3QgYnJhbmNoaW5nQ29udGV4dCA9IEJyYW5jaGluZ0NvbnRleHQuZnJvbU5vdGhpbmcoY29udGV4dCk7XG5cbiAgY29udGV4dCA9IGJyYW5jaGluZ0NvbnRleHQ7ICAvLy9cblxuICByZXR1cm4gaW5uZXJGdW5jdGlvbihjb250ZXh0KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRlcml2ZShpbm5lckZ1bmN0aW9uLCBjb250ZXh0KSB7XG4gIGNvbnN0IGlsbGF0aXZlQ29udGV4dCA9IElsbGF0aXZlQ29udGV4dC5mcm9tTm90aGluZyhjb250ZXh0KTtcblxuICBjb250ZXh0ID0gaWxsYXRpdmVDb250ZXh0OyAgLy8vXG5cbiAgcmV0dXJuIGlubmVyRnVuY3Rpb24oY29udGV4dCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkZWNsYXJlKGlubmVyRnVuY3Rpb24sIGNvbnRleHQpIHtcbiAgY29uc3QgdGhldGljQ29udGV4dCA9IFRoZXRpY0NvbnRleHQuZnJvbU5vdGhpbmcoY29udGV4dCk7XG5cbiAgY29udGV4dCA9IHRoZXRpY0NvbnRleHQ7ICAvLy9cblxuICByZXR1cm4gaW5uZXJGdW5jdGlvbihjb250ZXh0KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRlc2NlbmQoaW5uZXJGdW5jdGlvbiwgY29udGV4dCkge1xuICBjb25zdCBuZXN0ZWRDb250ZXh0ID0gTmVzdGVkQ29udGV4dC5mcm9tTm90aGluZyhjb250ZXh0KTtcblxuICBjb250ZXh0ID0gbmVzdGVkQ29udGV4dDsgIC8vL1xuXG4gIHJldHVybiBpbm5lckZ1bmN0aW9uKGNvbnRleHQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYXR0ZW1wdChpbm5lckZ1bmN0aW9uLCBjb250ZXh0KSB7XG4gIGNvbnN0IGVwaGVtZXJhbENvbnRleHQgPSBFcGhlbWVyYWxDb250ZXh0LmZyb21Ob3RoaW5nKGNvbnRleHQpO1xuXG4gIGNvbnRleHQgPSBlcGhlbWVyYWxDb250ZXh0OyAgLy8vXG5cbiAgcmV0dXJuIGlubmVyRnVuY3Rpb24oY29udGV4dCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZWNvbmNpbGUoaW5uZXJGdW5jdGlvbiwgY29udGV4dCkge1xuICBjb25zdCBsaW1pbmFsQ29udGV4dCA9IExpbWluYWxDb250ZXh0LmZyb21Ob3RoaW5nKGNvbnRleHQpO1xuXG4gIGNvbnRleHQgPSBsaW1pbmFsQ29udGV4dDsgIC8vL1xuXG4gIHJldHVybiBpbm5lckZ1bmN0aW9uKGNvbnRleHQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5zdGFudGlhdGUoaW5uZXJGdW5jdGlvbiwgY29udGV4dCkge1xuICBjb25zdCBsaXRlcmFsQ29udGV4dCA9IExpdGVyYWxDb250ZXh0LmZyb21Ob3RoaW5nKGNvbnRleHQpO1xuXG4gIGNvbnRleHQgPSBsaXRlcmFsQ29udGV4dDsgIC8vL1xuXG4gIHJldHVybiBpbm5lckZ1bmN0aW9uKGNvbnRleHQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbm9taW5hbGx5KGlubmVyRnVuY3Rpb24pIHtcbiAgbGV0IGNvbnRleHQ7XG5cbiAgY29uc3Qgbm9taW5hbENvbnRleHQgPSBOb21pbmFsQ29udGV4dC5mcm9tTm90aGluZygpO1xuXG4gIGNvbnRleHQgPSBub21pbmFsQ29udGV4dDsgLy8vXG5cbiAgY29uc3QgbGl0ZXJhbENvbnRleHQgPSBMaXRlcmFsQ29udGV4dC5mcm9tTm90aGluZyhjb250ZXh0KTtcblxuICBjb250ZXh0ID0gbGl0ZXJhbENvbnRleHQ7ICAvLy9cblxuICByZXR1cm4gaW5uZXJGdW5jdGlvbihjb250ZXh0KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNpbXBsaWZ5KGlubmVyRnVuY3Rpb24sIGNvbnRleHQpIHtcbiAgbGV0IGNvbnRleHRFeHRyYW5lb3VzQ29udGV4dCA9IGlzQ29udGV4dEV4dHJhbmVvdXNDb250ZXh0KGNvbnRleHQpO1xuXG4gIHdoaWxlIChjb250ZXh0RXh0cmFuZW91c0NvbnRleHQpIHtcbiAgICBjb250ZXh0ID0gY29udGV4dC5nZXRDb250ZXh0KCk7XG5cbiAgICBjb250ZXh0RXh0cmFuZW91c0NvbnRleHQgPSBpc0NvbnRleHRFeHRyYW5lb3VzQ29udGV4dChjb250ZXh0KTtcbiAgfVxuXG4gIGNvbnN0IGVwaGVtZXJhbENvbnRleHQgPSBFcGhlbWVyYWxDb250ZXh0LmZyb21Ob3RoaW5nKGNvbnRleHQpO1xuXG4gIGNvbnRleHQgPSBlcGhlbWVyYWxDb250ZXh0OyAvLy9cblxuICByZXR1cm4gaW5uZXJGdW5jdGlvbihjb250ZXh0KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNlcmlhbGlzZShpbm5lckZ1bmN0aW9uLCBjb250ZXh0KSB7XG4gIGNvbnN0IGVwaGVtZXJhbENvbnRleHQgPSBjb250ZXh0LCAvLy9cbiAgICAgICAgZXBoZW1lcmFsQ29udGV4dEpTT04gPSBlcGhlbWVyYWxDb250ZXh0VG9FcGhlbWVyYWxDb250ZXh0SlNPTihlcGhlbWVyYWxDb250ZXh0KSxcbiAgICAgICAgY29udGV4dEpTT04gPSBlcGhlbWVyYWxDb250ZXh0SlNPTjsgLy8vXG5cbiAgY29udGV4dCA9IGNvbnRleHRKU09OOyAgLy8vXG5cbiAgcmV0dXJuIGlubmVyRnVuY3Rpb24oY29udGV4dCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1bnNlcmlhbGlzZShpbm5lckZ1bmN0aW9uLCBqc29uLCBjb250ZXh0KSB7XG4gIGNvbnN0IGVwaGVtZXJhbENvbnRleHQgPSBlcGhlbWVyYWxDb250ZXh0RnJvbUpTT04oanNvbiwgY29udGV4dCk7XG5cbiAgY29udGV4dCA9IGVwaGVtZXJhbENvbnRleHQ7IC8vL1xuXG4gIHJldHVybiBpbm5lckZ1bmN0aW9uKGpzb24sIGNvbnRleHQpO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYXN5bmNSZXN0cmljdChpbm5lckZ1bmN0aW9uLCBtZXRhTGV2ZWxTdWJzdGl0dXRpb25zLCBjb250ZXh0KSB7XG4gIGlmIChjb250ZXh0ID09PSB1bmRlZmluZWQpIHtcbiAgICBjb250ZXh0ID0gbWV0YUxldmVsU3Vic3RpdHV0aW9uczsgIC8vL1xuXG4gICAgbWV0YUxldmVsU3Vic3RpdHV0aW9ucyA9IG51bGw7XG4gIH1cblxuICBjb25zdCBwcm9vZkNvbnRleHQgPSBQcm9vZkNvbnRleHQuZnJvbU1ldGFMZXZlbFN1YnN0aXR1dGlvbnMobWV0YUxldmVsU3Vic3RpdHV0aW9ucywgY29udGV4dCk7XG5cbiAgY29udGV4dCA9IHByb29mQ29udGV4dDsgIC8vL1xuXG4gIHJldHVybiBhd2FpdCBpbm5lckZ1bmN0aW9uKGNvbnRleHQpO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYXN5bmNSZWNvbmNpbGUoaW5uZXJGdW5jdGlvbiwgY29udGV4dCkge1xuICBjb25zdCBsaW1pbmFsQ29udGV4dCA9IExpbWluYWxDb250ZXh0LmZyb21Ob3RoaW5nKGNvbnRleHQpO1xuXG4gIGNvbnRleHQgPSBsaW1pbmFsQ29udGV4dDsgIC8vL1xuXG4gIHJldHVybiBhd2FpdCBpbm5lckZ1bmN0aW9uKGNvbnRleHQpO1xufVxuXG5mdW5jdGlvbiBpc0NvbnRleHRFeHRyYW5lb3VzQ29udGV4dChjb250ZXh0KSB7XG4gIGNvbnN0IGNvbnRleHRMaW1pbmFsQ29udGV4dCA9IChjb250ZXh0IGluc3RhbmNlb2YgTGltaW5hbENvbnRleHQpLFxuICAgICAgICBjb250ZXh0RXBoZW1lcmFsQ29udGV4dCA9IChjb250ZXh0IGluc3RhbmNlb2YgRXBoZW1lcmFsQ29udGV4dCksXG4gICAgICAgIGNvbnRleHRCcmFuY2hpbmdDb250ZXh0ID0gKGNvbnRleHQgaW5zdGFuY2VvZiBCcmFuY2hpbmdDb250ZXh0KSxcbiAgICAgICAgY29udGV4dFN5bnRoZXRpY0NvbnRleHQgPSAoY29udGV4dCBpbnN0YW5jZW9mIFN5bnRoZXRpY0NvbnRleHQpLFxuICAgICAgICBjb250ZXh0RXh0cmFuZW91c0NvbnRleHQgPSAoIGNvbnRleHRMaW1pbmFsQ29udGV4dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHx8IGNvbnRleHRFcGhlbWVyYWxDb250ZXh0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfHwgY29udGV4dEJyYW5jaGluZ0NvbnRleHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8fCBjb250ZXh0U3ludGhldGljQ29udGV4dCApO1xuXG4gIHJldHVybiBjb250ZXh0RXh0cmFuZW91c0NvbnRleHQ7XG59XG4iXSwibmFtZXMiOlsiYXN5bmNSZWNvbmNpbGUiLCJhc3luY1Jlc3RyaWN0IiwiYXR0ZW1wdCIsImNob29zZSIsImRlY2xhcmUiLCJkZXJpdmUiLCJkZXNjZW5kIiwiaW5zdGFudGlhdGUiLCJqb2luIiwibm9taW5hbGx5IiwicmVjb25jaWxlIiwic2VyaWFsaXNlIiwic2ltcGxpZnkiLCJ1bnNlcmlhbGlzZSIsImlubmVyRnVuY3Rpb24iLCJjb250ZXh0cyIsInN5bnRoZXRpY0NvbnRleHQiLCJTeW50aGV0aWNDb250ZXh0IiwiZnJvbUNvbnRleHRzIiwiY29udGV4dCIsImJyYW5jaGluZ0NvbnRleHQiLCJCcmFuY2hpbmdDb250ZXh0IiwiZnJvbU5vdGhpbmciLCJpbGxhdGl2ZUNvbnRleHQiLCJJbGxhdGl2ZUNvbnRleHQiLCJ0aGV0aWNDb250ZXh0IiwiVGhldGljQ29udGV4dCIsIm5lc3RlZENvbnRleHQiLCJOZXN0ZWRDb250ZXh0IiwiZXBoZW1lcmFsQ29udGV4dCIsIkVwaGVtZXJhbENvbnRleHQiLCJsaW1pbmFsQ29udGV4dCIsIkxpbWluYWxDb250ZXh0IiwibGl0ZXJhbENvbnRleHQiLCJMaXRlcmFsQ29udGV4dCIsIm5vbWluYWxDb250ZXh0IiwiTm9taW5hbENvbnRleHQiLCJjb250ZXh0RXh0cmFuZW91c0NvbnRleHQiLCJpc0NvbnRleHRFeHRyYW5lb3VzQ29udGV4dCIsImdldENvbnRleHQiLCJlcGhlbWVyYWxDb250ZXh0SlNPTiIsImVwaGVtZXJhbENvbnRleHRUb0VwaGVtZXJhbENvbnRleHRKU09OIiwiY29udGV4dEpTT04iLCJqc29uIiwiZXBoZW1lcmFsQ29udGV4dEZyb21KU09OIiwibWV0YUxldmVsU3Vic3RpdHV0aW9ucyIsInVuZGVmaW5lZCIsInByb29mQ29udGV4dCIsIlByb29mQ29udGV4dCIsImZyb21NZXRhTGV2ZWxTdWJzdGl0dXRpb25zIiwiY29udGV4dExpbWluYWxDb250ZXh0IiwiY29udGV4dEVwaGVtZXJhbENvbnRleHQiLCJjb250ZXh0QnJhbmNoaW5nQ29udGV4dCIsImNvbnRleHRTeW50aGV0aWNDb250ZXh0Il0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7UUE0SXNCQTtlQUFBQTs7UUFkQUM7ZUFBQUE7O1FBeEVOQztlQUFBQTs7UUFoQ0FDO2VBQUFBOztRQWdCQUM7ZUFBQUE7O1FBUkFDO2VBQUFBOztRQWdCQUM7ZUFBQUE7O1FBd0JBQztlQUFBQTs7UUF2REFDO2VBQUFBOztRQStEQUM7ZUFBQUE7O1FBaEJBQztlQUFBQTs7UUE4Q0FDO2VBQUFBOztRQWhCQUM7ZUFBQUE7O1FBMEJBQztlQUFBQTs7OzhEQXBIUzsrREFDQzsrREFDQTtnRUFDQztnRUFDQTtnRUFDQTtpRUFDQztrRUFDQztrRUFDQTtrRUFDQTtzQkFFb0Q7Ozs7OztBQUUxRSxTQUFTTCxLQUFLTSxhQUFhLEVBQUUsR0FBR0MsUUFBUTtJQUM3QyxNQUFNQyxtQkFBbUJDLGtCQUFnQixDQUFDQyxZQUFZLElBQUlILFdBQ3BESSxVQUFVSCxrQkFBbUIsR0FBRztJQUV0QyxPQUFPRixjQUFjSztBQUN2QjtBQUVPLFNBQVNoQixPQUFPVyxhQUFhLEVBQUVLLE9BQU87SUFDM0MsTUFBTUMsbUJBQW1CQyxrQkFBZ0IsQ0FBQ0MsV0FBVyxDQUFDSDtJQUV0REEsVUFBVUMsa0JBQW1CLEdBQUc7SUFFaEMsT0FBT04sY0FBY0s7QUFDdkI7QUFFTyxTQUFTZCxPQUFPUyxhQUFhLEVBQUVLLE9BQU87SUFDM0MsTUFBTUksa0JBQWtCQyxp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
177
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvY29udGV4dC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IFByb29mQ29udGV4dCBmcm9tIFwiLi4vY29udGV4dC9wcm9vZlwiO1xuaW1wb3J0IE5lc3RlZENvbnRleHQgZnJvbSBcIi4uL2NvbnRleHQvbmVzdGVkXCI7XG5pbXBvcnQgVGhldGljQ29udGV4dCBmcm9tIFwiLi4vY29udGV4dC90aGV0aWNcIjtcbmltcG9ydCBOb21pbmFsQ29udGV4dCBmcm9tIFwiLi4vY29udGV4dC9ub21pbmFsXCI7XG5pbXBvcnQgTGl0ZXJhbENvbnRleHQgZnJvbSBcIi4uL2NvbnRleHQvbGl0ZXJhbFwiO1xuaW1wb3J0IExpbWluYWxDb250ZXh0IGZyb20gXCIuLi9jb250ZXh0L2xpbWluYWxcIjtcbmltcG9ydCBJbGxhdGl2ZUNvbnRleHQgZnJvbSBcIi4uL2NvbnRleHQvaWxsYXRpdmVcIjtcbmltcG9ydCBFcGhlbWVyYWxDb250ZXh0IGZyb20gXCIuLi9jb250ZXh0L2VwaGVtZXJhbFwiO1xuaW1wb3J0IEJyYW5jaGluZ0NvbnRleHQgZnJvbSBcIi4uL2NvbnRleHQvYnJhbmNoaW5nXCI7XG5pbXBvcnQgU3ludGhldGljQ29udGV4dCBmcm9tIFwiLi4vY29udGV4dC9zeW50aGV0aWNcIjtcblxuaW1wb3J0IHsgZXBoZW1lcmFsQ29udGV4dEZyb21KU09OLCBlcGhlbWVyYWxDb250ZXh0VG9FcGhlbWVyYWxDb250ZXh0SlNPTiB9IGZyb20gXCIuLi91dGlsaXRpZXMvanNvblwiO1xuXG5leHBvcnQgZnVuY3Rpb24gam9pbihpbm5lckZ1bmN0aW9uLCAuLi5jb250ZXh0cykge1xuICBjb25zdCBzeW50aGV0aWNDb250ZXh0ID0gU3ludGhldGljQ29udGV4dC5mcm9tQ29udGV4dHMoLi4uY29udGV4dHMpLFxuICAgICAgICBjb250ZXh0ID0gc3ludGhldGljQ29udGV4dDsgIC8vL1xuXG4gIHJldHVybiBpbm5lckZ1bmN0aW9uKGNvbnRleHQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY2hvb3NlKGlubmVyRnVuY3Rpb24sIGNvbnRleHQpIHtcbiAgY29uc3QgYnJhbmNoaW5nQ29udGV4dCA9IEJyYW5jaGluZ0NvbnRleHQuZnJvbU5vdGhpbmcoY29udGV4dCk7XG5cbiAgY29udGV4dCA9IGJyYW5jaGluZ0NvbnRleHQ7ICAvLy9cblxuICByZXR1cm4gaW5uZXJGdW5jdGlvbihjb250ZXh0KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRlcml2ZShpbm5lckZ1bmN0aW9uLCBjb250ZXh0KSB7XG4gIGNvbnN0IGlsbGF0aXZlQ29udGV4dCA9IElsbGF0aXZlQ29udGV4dC5mcm9tTm90aGluZyhjb250ZXh0KTtcblxuICBjb250ZXh0ID0gaWxsYXRpdmVDb250ZXh0OyAgLy8vXG5cbiAgcmV0dXJuIGlubmVyRnVuY3Rpb24oY29udGV4dCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkZWNsYXJlKGlubmVyRnVuY3Rpb24sIGNvbnRleHQpIHtcbiAgY29uc3QgdGhldGljQ29udGV4dCA9IFRoZXRpY0NvbnRleHQuZnJvbU5vdGhpbmcoY29udGV4dCk7XG5cbiAgY29udGV4dCA9IHRoZXRpY0NvbnRleHQ7ICAvLy9cblxuICByZXR1cm4gaW5uZXJGdW5jdGlvbihjb250ZXh0KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRlc2NlbmQoaW5uZXJGdW5jdGlvbiwgY29udGV4dCkge1xuICBjb25zdCBuZXN0ZWRDb250ZXh0ID0gTmVzdGVkQ29udGV4dC5mcm9tTm90aGluZyhjb250ZXh0KTtcblxuICBjb250ZXh0ID0gbmVzdGVkQ29udGV4dDsgIC8vL1xuXG4gIHJldHVybiBpbm5lckZ1bmN0aW9uKGNvbnRleHQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYXR0ZW1wdChpbm5lckZ1bmN0aW9uLCBjb250ZXh0KSB7XG4gIGNvbnN0IGVwaGVtZXJhbENvbnRleHQgPSBFcGhlbWVyYWxDb250ZXh0LmZyb21Ob3RoaW5nKGNvbnRleHQpO1xuXG4gIGNvbnRleHQgPSBlcGhlbWVyYWxDb250ZXh0OyAgLy8vXG5cbiAgcmV0dXJuIGlubmVyRnVuY3Rpb24oY29udGV4dCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZWNvbmNpbGUoaW5uZXJGdW5jdGlvbiwgY29udGV4dCkge1xuICBjb25zdCBsaW1pbmFsQ29udGV4dCA9IExpbWluYWxDb250ZXh0LmZyb21Ob3RoaW5nKGNvbnRleHQpO1xuXG4gIGNvbnRleHQgPSBsaW1pbmFsQ29udGV4dDsgIC8vL1xuXG4gIHJldHVybiBpbm5lckZ1bmN0aW9uKGNvbnRleHQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5zdGFudGlhdGUoaW5uZXJGdW5jdGlvbiwgY29udGV4dCkge1xuICBjb25zdCBsaXRlcmFsQ29udGV4dCA9IExpdGVyYWxDb250ZXh0LmZyb21Ob3RoaW5nKGNvbnRleHQpO1xuXG4gIGNvbnRleHQgPSBsaXRlcmFsQ29udGV4dDsgIC8vL1xuXG4gIHJldHVybiBpbm5lckZ1bmN0aW9uKGNvbnRleHQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbm9taW5hbGx5KGlubmVyRnVuY3Rpb24pIHtcbiAgbGV0IGNvbnRleHQ7XG5cbiAgY29uc3Qgbm9taW5hbENvbnRleHQgPSBOb21pbmFsQ29udGV4dC5mcm9tTm90aGluZygpO1xuXG4gIGNvbnRleHQgPSBub21pbmFsQ29udGV4dDsgLy8vXG5cbiAgY29uc3QgbGl0ZXJhbENvbnRleHQgPSBMaXRlcmFsQ29udGV4dC5mcm9tTm90aGluZyhjb250ZXh0KTtcblxuICBjb250ZXh0ID0gbGl0ZXJhbENvbnRleHQ7ICAvLy9cblxuICByZXR1cm4gaW5uZXJGdW5jdGlvbihjb250ZXh0KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNpbXBsaWZ5KGlubmVyRnVuY3Rpb24sIGNvbnRleHQpIHtcbiAgY29udGV4dCA9IHJlbW92ZUV4dHJhbmVvdXNDb250ZXh0cyhjb250ZXh0KTtcblxuICBjb25zdCBlcGhlbWVyYWxDb250ZXh0ID0gRXBoZW1lcmFsQ29udGV4dC5mcm9tTm90aGluZyhjb250ZXh0KTtcblxuICBjb250ZXh0ID0gZXBoZW1lcmFsQ29udGV4dDsgLy8vXG5cbiAgcmV0dXJuIGlubmVyRnVuY3Rpb24oY29udGV4dCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXJpYWxpc2UoaW5uZXJGdW5jdGlvbiwgY29udGV4dCkge1xuICBjb25zdCBlcGhlbWVyYWxDb250ZXh0ID0gY29udGV4dCwgLy8vXG4gICAgICAgIGVwaGVtZXJhbENvbnRleHRKU09OID0gZXBoZW1lcmFsQ29udGV4dFRvRXBoZW1lcmFsQ29udGV4dEpTT04oZXBoZW1lcmFsQ29udGV4dCksXG4gICAgICAgIGNvbnRleHRKU09OID0gZXBoZW1lcmFsQ29udGV4dEpTT047IC8vL1xuXG4gIGNvbnRleHQgPSBjb250ZXh0SlNPTjsgIC8vL1xuXG4gIHJldHVybiBpbm5lckZ1bmN0aW9uKGNvbnRleHQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdW5zZXJpYWxpc2UoaW5uZXJGdW5jdGlvbiwganNvbiwgY29udGV4dCkge1xuICBjb25zdCBlcGhlbWVyYWxDb250ZXh0ID0gZXBoZW1lcmFsQ29udGV4dEZyb21KU09OKGpzb24sIGNvbnRleHQpO1xuXG4gIGNvbnRleHQgPSBlcGhlbWVyYWxDb250ZXh0OyAvLy9cblxuICByZXR1cm4gaW5uZXJGdW5jdGlvbihqc29uLCBjb250ZXh0KTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGFzeW5jUmVzdHJpY3QoaW5uZXJGdW5jdGlvbiwgYXNzdW1wdGlvbnMsIGNvbnRleHQpIHtcbiAgaWYgKGNvbnRleHQgPT09IHVuZGVmaW5lZCkge1xuICAgIGNvbnRleHQgPSBhc3N1bXB0aW9uczsgIC8vL1xuXG4gICAgYXNzdW1wdGlvbnMgPSBudWxsO1xuICB9XG5cbiAgY29uc3QgcHJvb2ZDb250ZXh0ID0gUHJvb2ZDb250ZXh0LmZyb21Bc3N1bXB0aW9ucyhhc3N1bXB0aW9ucywgY29udGV4dCk7XG5cbiAgY29udGV4dCA9IHByb29mQ29udGV4dDsgIC8vL1xuXG4gIHJldHVybiBhd2FpdCBpbm5lckZ1bmN0aW9uKGNvbnRleHQpO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYXN5bmNSZWNvbmNpbGUoaW5uZXJGdW5jdGlvbiwgY29udGV4dCkge1xuICBjb25zdCBsaW1pbmFsQ29udGV4dCA9IExpbWluYWxDb250ZXh0LmZyb21Ob3RoaW5nKGNvbnRleHQpO1xuXG4gIGNvbnRleHQgPSBsaW1pbmFsQ29udGV4dDsgIC8vL1xuXG4gIHJldHVybiBhd2FpdCBpbm5lckZ1bmN0aW9uKGNvbnRleHQpO1xufVxuXG5mdW5jdGlvbiBpc0NvbnRleHRFeHRyYW5lb3VzQ29udGV4dChjb250ZXh0KSB7XG4gIGNvbnN0IGNvbnRleHRMaW1pbmFsQ29udGV4dCA9IChjb250ZXh0IGluc3RhbmNlb2YgTGltaW5hbENvbnRleHQpLFxuICAgICAgICBjb250ZXh0RXBoZW1lcmFsQ29udGV4dCA9IChjb250ZXh0IGluc3RhbmNlb2YgRXBoZW1lcmFsQ29udGV4dCksXG4gICAgICAgIGNvbnRleHRCcmFuY2hpbmdDb250ZXh0ID0gKGNvbnRleHQgaW5zdGFuY2VvZiBCcmFuY2hpbmdDb250ZXh0KSxcbiAgICAgICAgY29udGV4dFN5bnRoZXRpY0NvbnRleHQgPSAoY29udGV4dCBpbnN0YW5jZW9mIFN5bnRoZXRpY0NvbnRleHQpLFxuICAgICAgICBjb250ZXh0RXh0cmFuZW91c0NvbnRleHQgPSAoIGNvbnRleHRMaW1pbmFsQ29udGV4dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHx8IGNvbnRleHRFcGhlbWVyYWxDb250ZXh0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfHwgY29udGV4dEJyYW5jaGluZ0NvbnRleHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8fCBjb250ZXh0U3ludGhldGljQ29udGV4dCApO1xuXG4gIHJldHVybiBjb250ZXh0RXh0cmFuZW91c0NvbnRleHQ7XG59XG5cbmZ1bmN0aW9uIHJlbW92ZUV4dHJhbmVvdXNDb250ZXh0cyhjb250ZXh0KSB7XG4gIGNvbnRleHQgPSB0cmltRXh0cmFuZW91c0NvbnRleHRzKGNvbnRleHQpO1xuXG4gIGNvbnN0IGZpcnN0Q29udGV4dCA9IGNvbnRleHQ7IC8vL1xuXG4gIGxldCBjdXJyZW50Q29udGV4dCA9IGNvbnRleHQ7IC8vL1xuXG4gIHdoaWxlIChjdXJyZW50Q29udGV4dCAhPT0gbnVsbCkge1xuICAgIGNvbnRleHQgPSBjdXJyZW50Q29udGV4dC5nZXRDb250ZXh0KCk7XG5cbiAgICBjb250ZXh0ID0gdHJpbUV4dHJhbmVvdXNDb250ZXh0cyhjb250ZXh0KTtcblxuICAgIGN1cnJlbnRDb250ZXh0LnNldENvbnRleHQoY29udGV4dCk7XG5cbiAgICBjdXJyZW50Q29udGV4dCA9IGNvbnRleHQ7IC8vL1xuICB9XG5cbiAgY29udGV4dCA9IGZpcnN0Q29udGV4dDsgLy8vXG5cbiAgcmV0dXJuIGNvbnRleHQ7XG59XG5cbmZ1bmN0aW9uIHRyaW1FeHRyYW5lb3VzQ29udGV4dHMoY29udGV4dCkge1xuICBsZXQgY29udGV4dEV4dHJhbmVvdXNDb250ZXh0ID0gaXNDb250ZXh0RXh0cmFuZW91c0NvbnRleHQoY29udGV4dCk7XG5cbiAgd2hpbGUgKGNvbnRleHRFeHRyYW5lb3VzQ29udGV4dCkge1xuICAgIGNvbnRleHQgPSBjb250ZXh0LmdldENvbnRleHQoKTtcblxuICAgIGlmIChjb250ZXh0ID09PSBudWxsKSB7XG4gICAgICBicmVhaztcbiAgICB9XG5cbiAgICBjb250ZXh0RXh0cmFuZW91c0NvbnRleHQgPSBpc0NvbnRleHRFeHRyYW5lb3VzQ29udGV4dChjb250ZXh0KTtcbiAgfVxuXG4gIHJldHVybiBjb250ZXh0O1xufVxuIl0sIm5hbWVzIjpbImFzeW5jUmVjb25jaWxlIiwiYXN5bmNSZXN0cmljdCIsImF0dGVtcHQiLCJjaG9vc2UiLCJkZWNsYXJlIiwiZGVyaXZlIiwiZGVzY2VuZCIsImluc3RhbnRpYXRlIiwiam9pbiIsIm5vbWluYWxseSIsInJlY29uY2lsZSIsInNlcmlhbGlzZSIsInNpbXBsaWZ5IiwidW5zZXJpYWxpc2UiLCJpbm5lckZ1bmN0aW9uIiwiY29udGV4dHMiLCJzeW50aGV0aWNDb250ZXh0IiwiU3ludGhldGljQ29udGV4dCIsImZyb21Db250ZXh0cyIsImNvbnRleHQiLCJicmFuY2hpbmdDb250ZXh0IiwiQnJhbmNoaW5nQ29udGV4dCIsImZyb21Ob3RoaW5nIiwiaWxsYXRpdmVDb250ZXh0IiwiSWxsYXRpdmVDb250ZXh0IiwidGhldGljQ29udGV4dCIsIlRoZXRpY0NvbnRleHQiLCJuZXN0ZWRDb250ZXh0IiwiTmVzdGVkQ29udGV4dCIsImVwaGVtZXJhbENvbnRleHQiLCJFcGhlbWVyYWxDb250ZXh0IiwibGltaW5hbENvbnRleHQiLCJMaW1pbmFsQ29udGV4dCIsImxpdGVyYWxDb250ZXh0IiwiTGl0ZXJhbENvbnRleHQiLCJub21pbmFsQ29udGV4dCIsIk5vbWluYWxDb250ZXh0IiwicmVtb3ZlRXh0cmFuZW91c0NvbnRleHRzIiwiZXBoZW1lcmFsQ29udGV4dEpTT04iLCJlcGhlbWVyYWxDb250ZXh0VG9FcGhlbWVyYWxDb250ZXh0SlNPTiIsImNvbnRleHRKU09OIiwianNvbiIsImVwaGVtZXJhbENvbnRleHRGcm9tSlNPTiIsImFzc3VtcHRpb25zIiwidW5kZWZpbmVkIiwicHJvb2ZDb250ZXh0IiwiUHJvb2ZDb250ZXh0IiwiZnJvbUFzc3VtcHRpb25zIiwiaXNDb250ZXh0RXh0cmFuZW91c0NvbnRleHQiLCJjb250ZXh0TGltaW5hbENvbnRleHQiLCJjb250ZXh0RXBoZW1lcmFsQ29udGV4dCIsImNvbnRleHRCcmFuY2hpbmdDb250ZXh0IiwiY29udGV4dFN5bnRoZXRpY0NvbnRleHQiLCJjb250ZXh0RXh0cmFuZW91c0NvbnRleHQiLCJ0cmltRXh0cmFuZW91c0NvbnRleHRzIiwiZmlyc3RDb250ZXh0IiwiY3VycmVudENvbnRleHQi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