occam-nominal 1.0.286 → 1.0.287

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.
@@ -120,7 +120,7 @@ _export(exports, {
120
120
  });
121
121
  const _occamlanguages = require("occam-languages");
122
122
  const _ruleNames = require("../ruleNames");
123
- const { ruleFromRuleName } = _occamlanguages.bnfUtilities;
123
+ const { instantiate, ruleFromRuleName } = _occamlanguages.bnfUtilities;
124
124
  const termPlaceholderRule = ruleFromRuleName(_ruleNames.TERM_RULE_NAME), typePlaceholderRule = ruleFromRuleName(_ruleNames.TYPE_RULE_NAME), framePlaceholderRule = ruleFromRuleName(_ruleNames.FRAME_RULE_NAME), labelPlaceholderRule = ruleFromRuleName(_ruleNames.LABEL_RULE_NAME), premisePlaceholderRule = ruleFromRuleName(_ruleNames.PREMISE_RULE_NAME), variablePlaceholderRule = ruleFromRuleName(_ruleNames.VARIABLE_RULE_NAME), equalityPlaceholderRule = ruleFromRuleName(_ruleNames.EQUALITY_RULE_NAME), propertyPlaceholderRule = ruleFromRuleName(_ruleNames.PROPERTY_RULE_NAME), judgementPlaceholderRule = ruleFromRuleName(_ruleNames.JUDGEMENT_RULE_NAME), generatorPlaceholderRule = ruleFromRuleName(_ruleNames.GENERATOR_RULE_NAME), deductionPlaceholderRule = ruleFromRuleName(_ruleNames.DEDUCTION_RULE_NAME), parameterPlaceholderRule = ruleFromRuleName(_ruleNames.PARAMETER_RULE_NAME), statementPlaceholderRule = ruleFromRuleName(_ruleNames.STATEMENT_RULE_NAME), referencePlaceholderRule = ruleFromRuleName(_ruleNames.REFERENCE_RULE_NAME), signaturePlaceholderRule = ruleFromRuleName(_ruleNames.SIGNATURE_RULE_NAME), constraintPlaceholderRule = ruleFromRuleName(_ruleNames.CONSTRAINT_RULE_NAME), combinatorPlaceholderRule = ruleFromRuleName(_ruleNames.COMBINATOR_RULE_NAME), conclusionPlaceholderRule = ruleFromRuleName(_ruleNames.CONCLUSION_RULE_NAME), hypothesisPlaceholderRule = ruleFromRuleName(_ruleNames.HYPOTHESIS_RULE_NAME), typePrefixPlaceholderRule = ruleFromRuleName(_ruleNames.TYPE_PREFIX_RULE_NAME), suppositionPlaceholderRule = ruleFromRuleName(_ruleNames.SUPPOSITION_RULE_NAME), constructorPlaceholderRule = ruleFromRuleName(_ruleNames.CONSTRUCTOR_RULE_NAME), equivalencePlaceholderRule = ruleFromRuleName(_ruleNames.EQUIVALENCE_RULE_NAME), metavariablePlaceholderRule = ruleFromRuleName(_ruleNames.METAVARIABLE_RULE_NAME), typeAssertionPlaceholderRule = ruleFromRuleName(_ruleNames.TYPE_ASSERTION_RULE_NAME), definedAssertionPlaceholderRule = ruleFromRuleName(_ruleNames.DEFINED_ASSERTION_RULE_NAME), termSubstitutionPlaceholderRule = ruleFromRuleName(_ruleNames.TERM_SUBSTITUTION_RULE_NAME), subproofAssertionlaceholderRule = ruleFromRuleName(_ruleNames.SUBPROOF_ASSERTION_RULE_NAME), propertyAssertionPlaceholderRule = ruleFromRuleName(_ruleNames.PROPERTY_ASSERTION_RULE_NAME), frameSubstitutionPlaceholderRule = ruleFromRuleName(_ruleNames.FRAME_SUBSTITUTION_RULE_NAME), procedureReferencelaceholderRule = ruleFromRuleName(_ruleNames.PROCEDURE_REFERENCE_RULE_NAME), containedAssertionPlaceholderRule = ruleFromRuleName(_ruleNames.CONTAINED_ASSERTION_RULE_NAME), signatureAssertionPlaceholderRule = ruleFromRuleName(_ruleNames.SIGNATURE_ASSERTION_RULE_NAME), implicitAssumptionPlaceholderRule = ruleFromRuleName(_ruleNames.IMPLICIT_ASSUMPTION_RULE_NAME), statementSubstitutionPlaceholderRule = ruleFromRuleName(_ruleNames.STATEMENT_SUBSTITUTION_RULE_NAME), referenceSubstitutionPlaceholderRule = ruleFromRuleName(_ruleNames.REFERENCE_SUBSTITUTION_RULE_NAME);
125
125
  function instantiatePremise(string, context) {
126
126
  string = `${string}
@@ -238,19 +238,5 @@ function instantiateStatementSubstitution(string, context) {
238
238
  function instantiateReferenceSubstitution(string, context) {
239
239
  return instantiate(referenceSubstitutionPlaceholderRule, string, context);
240
240
  }
241
- function instantiate(placeholderRule, string, context) {
242
- let node;
243
- const lexer = context.getLexer(), parser = context.getParser(), content = `${string}
244
- `, tokens = lexer.tokenise(content);
245
- context.setTokens(tokens);
246
- const startRule = placeholderRule; ///
247
- node = parser.parse(tokens, startRule);
248
- const nonTerminalNode = node; ///
249
- nonTerminalNode.someChildNode((childNode)=>{
250
- node = childNode; ///
251
- return true;
252
- });
253
- return node;
254
- }
255
241
 
256
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm9jZXNzL2luc3RhbnRpYXRlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBibmZVdGlsaXRpZXMgfSBmcm9tIFwib2NjYW0tbGFuZ3VhZ2VzXCI7XG5cbmltcG9ydCB7IFRFUk1fUlVMRV9OQU1FLFxuICAgICAgICAgVFlQRV9SVUxFX05BTUUsXG4gICAgICAgICBGUkFNRV9SVUxFX05BTUUsXG4gICAgICAgICBMQUJFTF9SVUxFX05BTUUsXG4gICAgICAgICBQUkVNSVNFX1JVTEVfTkFNRSxcbiAgICAgICAgIFZBUklBQkxFX1JVTEVfTkFNRSxcbiAgICAgICAgIEVRVUFMSVRZX1JVTEVfTkFNRSxcbiAgICAgICAgIFBST1BFUlRZX1JVTEVfTkFNRSxcbiAgICAgICAgIEpVREdFTUVOVF9SVUxFX05BTUUsXG4gICAgICAgICBERURVQ1RJT05fUlVMRV9OQU1FLFxuICAgICAgICAgUEFSQU1FVEVSX1JVTEVfTkFNRSxcbiAgICAgICAgIFNUQVRFTUVOVF9SVUxFX05BTUUsXG4gICAgICAgICBSRUZFUkVOQ0VfUlVMRV9OQU1FLFxuICAgICAgICAgU0lHTkFUVVJFX1JVTEVfTkFNRSxcbiAgICAgICAgIEdFTkVSQVRPUl9SVUxFX05BTUUsXG4gICAgICAgICBDT01CSU5BVE9SX1JVTEVfTkFNRSxcbiAgICAgICAgIENPTkNMVVNJT05fUlVMRV9OQU1FLFxuICAgICAgICAgSFlQT1RIRVNJU19SVUxFX05BTUUsXG4gICAgICAgICBDT05TVFJBSU5UX1JVTEVfTkFNRSxcbiAgICAgICAgIFRZUEVfUFJFRklYX1JVTEVfTkFNRSxcbiAgICAgICAgIFNVUFBPU0lUSU9OX1JVTEVfTkFNRSxcbiAgICAgICAgIENPTlNUUlVDVE9SX1JVTEVfTkFNRSxcbiAgICAgICAgIEVRVUlWQUxFTkNFX1JVTEVfTkFNRSxcbiAgICAgICAgIE1FVEFWQVJJQUJMRV9SVUxFX05BTUUsXG4gICAgICAgICBUWVBFX0FTU0VSVElPTl9SVUxFX05BTUUsXG4gICAgICAgICBERUZJTkVEX0FTU0VSVElPTl9SVUxFX05BTUUsXG4gICAgICAgICBURVJNX1NVQlNUSVRVVElPTl9SVUxFX05BTUUsXG4gICAgICAgICBQUk9QRVJUWV9BU1NFUlRJT05fUlVMRV9OQU1FLFxuICAgICAgICAgU1VCUFJPT0ZfQVNTRVJUSU9OX1JVTEVfTkFNRSxcbiAgICAgICAgIEZSQU1FX1NVQlNUSVRVVElPTl9SVUxFX05BTUUsXG4gICAgICAgICBQUk9DRURVUkVfUkVGRVJFTkNFX1JVTEVfTkFNRSxcbiAgICAgICAgIENPTlRBSU5FRF9BU1NFUlRJT05fUlVMRV9OQU1FLFxuICAgICAgICAgU0lHTkFUVVJFX0FTU0VSVElPTl9SVUxFX05BTUUsXG4gICAgICAgICBJTVBMSUNJVF9BU1NVTVBUSU9OX1JVTEVfTkFNRSxcbiAgICAgICAgIFNUQVRFTUVOVF9TVUJTVElUVVRJT05fUlVMRV9OQU1FLFxuICAgICAgICAgUkVGRVJFTkNFX1NVQlNUSVRVVElPTl9SVUxFX05BTUUgfSBmcm9tIFwiLi4vcnVsZU5hbWVzXCI7XG5cbmNvbnN0IHsgcnVsZUZyb21SdWxlTmFtZSB9ID0gYm5mVXRpbGl0aWVzO1xuXG5jb25zdCB0ZXJtUGxhY2Vob2xkZXJSdWxlID0gcnVsZUZyb21SdWxlTmFtZShURVJNX1JVTEVfTkFNRSksXG4gICAgICB0eXBlUGxhY2Vob2xkZXJSdWxlID0gcnVsZUZyb21SdWxlTmFtZShUWVBFX1JVTEVfTkFNRSksXG4gICAgICBmcmFtZVBsYWNlaG9sZGVyUnVsZSA9IHJ1bGVGcm9tUnVsZU5hbWUoRlJBTUVfUlVMRV9OQU1FKSxcbiAgICAgIGxhYmVsUGxhY2Vob2xkZXJSdWxlID0gcnVsZUZyb21SdWxlTmFtZShMQUJFTF9SVUxFX05BTUUpLFxuICAgICAgcHJlbWlzZVBsYWNlaG9sZGVyUnVsZSA9IHJ1bGVGcm9tUnVsZU5hbWUoUFJFTUlTRV9SVUxFX05BTUUpLFxuICAgICAgdmFyaWFibGVQbGFjZWhvbGRlclJ1bGUgPSBydWxlRnJvbVJ1bGVOYW1lKFZBUklBQkxFX1JVTEVfTkFNRSksXG4gICAgICBlcXVhbGl0eVBsYWNlaG9sZGVyUnVsZSA9IHJ1bGVGcm9tUnVsZU5hbWUoRVFVQUxJVFlfUlVMRV9OQU1FKSxcbiAgICAgIHByb3BlcnR5UGxhY2Vob2xkZXJSdWxlID0gcnVsZUZyb21SdWxlTmFtZShQUk9QRVJUWV9SVUxFX05BTUUpLFxuICAgICAganVkZ2VtZW50UGxhY2Vob2xkZXJSdWxlID0gcnVsZUZyb21SdWxlTmFtZShKVURHRU1FTlRfUlVMRV9OQU1FKSxcbiAgICAgIGdlbmVyYXRvclBsYWNlaG9sZGVyUnVsZSA9IHJ1bGVGcm9tUnVsZU5hbWUoR0VORVJBVE9SX1JVTEVfTkFNRSksXG4gICAgICBkZWR1Y3Rpb25QbGFjZWhvbGRlclJ1bGUgPSBydWxlRnJvbVJ1bGVOYW1lKERFRFVDVElPTl9SVUxFX05BTUUpLFxuICAgICAgcGFyYW1ldGVyUGxhY2Vob2xkZXJSdWxlID0gcnVsZUZyb21SdWxlTmFtZShQQVJBTUVURVJfUlVMRV9OQU1FKSxcbiAgICAgIHN0YXRlbWVudFBsYWNlaG9sZGVyUnVsZSA9IHJ1bGVGcm9tUnVsZU5hbWUoU1RBVEVNRU5UX1JVTEVfTkFNRSksXG4gICAgICByZWZlcmVuY2VQbGFjZWhvbGRlclJ1bGUgPSBydWxlRnJvbVJ1bGVOYW1lKFJFRkVSRU5DRV9SVUxFX05BTUUpLFxuICAgICAgc2lnbmF0dXJlUGxhY2Vob2xkZXJSdWxlID0gcnVsZUZyb21SdWxlTmFtZShTSUdOQVRVUkVfUlVMRV9OQU1FKSxcbiAgICAgIGNvbnN0cmFpbnRQbGFjZWhvbGRlclJ1bGUgPSBydWxlRnJvbVJ1bGVOYW1lKENPTlNUUkFJTlRfUlVMRV9OQU1FKSxcbiAgICAgIGNvbWJpbmF0b3JQbGFjZWhvbGRlclJ1bGUgPSBydWxlRnJvbVJ1bGVOYW1lKENPTUJJTkFUT1JfUlVMRV9OQU1FKSxcbiAgICAgIGNvbmNsdXNpb25QbGFjZWhvbGRlclJ1bGUgPSBydWxlRnJvbVJ1bGVOYW1lKENPTkNMVVNJT05fUlVMRV9OQU1FKSxcbiAgICAgIGh5cG90aGVzaXNQbGFjZWhvbGRlclJ1bGUgPSBydWxlRnJvbVJ1bGVOYW1lKEhZUE9USEVTSVNfUlVMRV9OQU1FKSxcbiAgICAgIHR5cGVQcmVmaXhQbGFjZWhvbGRlclJ1bGUgPSBydWxlRnJvbVJ1bGVOYW1lKFRZUEVfUFJFRklYX1JVTEVfTkFNRSksXG4gICAgICBzdXBwb3NpdGlvblBsYWNlaG9sZGVyUnVsZSA9IHJ1bGVGcm9tUnVsZU5hbWUoU1VQUE9TSVRJT05fUlVMRV9OQU1FKSxcbiAgICAgIGNvbnN0cnVjdG9yUGxhY2Vob2xkZXJSdWxlID0gcnVsZUZyb21SdWxlTmFtZShDT05TVFJVQ1RPUl9SVUxFX05BTUUpLFxuICAgICAgZXF1aXZhbGVuY2VQbGFjZWhvbGRlclJ1bGUgPSBydWxlRnJvbVJ1bGVOYW1lKEVRVUlWQUxFTkNFX1JVTEVfTkFNRSksXG4gICAgICBtZXRhdmFyaWFibGVQbGFjZWhvbGRlclJ1bGUgPSBydWxlRnJvbVJ1bGVOYW1lKE1FVEFWQVJJQUJMRV9SVUxFX05BTUUpLFxuICAgICAgdHlwZUFzc2VydGlvblBsYWNlaG9sZGVyUnVsZSA9IHJ1bGVGcm9tUnVsZU5hbWUoVFlQRV9BU1NFUlRJT05fUlVMRV9OQU1FKSxcbiAgICAgIGRlZmluZWRBc3NlcnRpb25QbGFjZWhvbGRlclJ1bGUgPSBydWxlRnJvbVJ1bGVOYW1lKERFRklORURfQVNTRVJUSU9OX1JVTEVfTkFNRSksXG4gICAgICB0ZXJtU3Vic3RpdHV0aW9uUGxhY2Vob2xkZXJSdWxlID0gcnVsZUZyb21SdWxlTmFtZShURVJNX1NVQlNUSVRVVElPTl9SVUxFX05BTUUpLFxuICAgICAgc3VicHJvb2ZBc3NlcnRpb25sYWNlaG9sZGVyUnVsZSA9IHJ1bGVGcm9tUnVsZU5hbWUoU1VCUFJPT0ZfQVNTRVJUSU9OX1JVTEVfTkFNRSksXG4gICAgICBwcm9wZXJ0eUFzc2VydGlvblBsYWNlaG9sZGVyUnVsZSA9IHJ1bGVGcm9tUnVsZU5hbWUoUFJPUEVSVFlfQVNTRVJUSU9OX1JVTEVfTkFNRSksXG4gICAgICBmcmFtZVN1YnN0aXR1dGlvblBsYWNlaG9sZGVyUnVsZSA9IHJ1bGVGcm9tUnVsZU5hbWUoRlJBTUVfU1VCU1RJVFVUSU9OX1JVTEVfTkFNRSksXG4gICAgICBwcm9jZWR1cmVSZWZlcmVuY2VsYWNlaG9sZGVyUnVsZSA9IHJ1bGVGcm9tUnVsZU5hbWUoUFJPQ0VEVVJFX1JFRkVSRU5DRV9SVUxFX05BTUUpLFxuICAgICAgY29udGFpbmVkQXNzZXJ0aW9uUGxhY2Vob2xkZXJSdWxlID0gcnVsZUZyb21SdWxlTmFtZShDT05UQUlORURfQVNTRVJUSU9OX1JVTEVfTkFNRSksXG4gICAgICBzaWduYXR1cmVBc3NlcnRpb25QbGFjZWhvbGRlclJ1bGUgPSBydWxlRnJvbVJ1bGVOYW1lKFNJR05BVFVSRV9BU1NFUlRJT05fUlVMRV9OQU1FKSxcbiAgICAgIGltcGxpY2l0QXNzdW1wdGlvblBsYWNlaG9sZGVyUnVsZSA9IHJ1bGVGcm9tUnVsZU5hbWUoSU1QTElDSVRfQVNTVU1QVElPTl9SVUxFX05BTUUpLFxuICAgICAgc3RhdGVtZW50U3Vic3RpdHV0aW9uUGxhY2Vob2xkZXJSdWxlID0gcnVsZUZyb21SdWxlTmFtZShTVEFURU1FTlRfU1VCU1RJVFVUSU9OX1JVTEVfTkFNRSksXG4gICAgICByZWZlcmVuY2VTdWJzdGl0dXRpb25QbGFjZWhvbGRlclJ1bGUgPSBydWxlRnJvbVJ1bGVOYW1lKFJFRkVSRU5DRV9TVUJTVElUVVRJT05fUlVMRV9OQU1FKTtcblxuZXhwb3J0IGZ1bmN0aW9uIGluc3RhbnRpYXRlUHJlbWlzZShzdHJpbmcsIGNvbnRleHQpIHtcbiAgc3RyaW5nID0gYCR7c3RyaW5nfVxuYDsgIC8vL1xuXG4gIHJldHVybiBpbnN0YW50aWF0ZShwcmVtaXNlUGxhY2Vob2xkZXJSdWxlLCBzdHJpbmcsIGNvbnRleHQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5zdGFudGlhdGVEZWR1Y3Rpb24oc3RyaW5nLCBjb250ZXh0KSB7XG4gIHN0cmluZyA9IGAke3N0cmluZ31cbmA7ICAvLy9cblxuICByZXR1cm4gaW5zdGFudGlhdGUoZGVkdWN0aW9uUGxhY2Vob2xkZXJSdWxlLCBzdHJpbmcsIGNvbnRleHQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5zdGFudGlhdGVDb25jbHVzaW9uKHN0cmluZywgY29udGV4dCkge1xuICBzdHJpbmcgPSBgJHtzdHJpbmd9XG5gOyAgLy8vXG5cbiAgcmV0dXJuIGluc3RhbnRpYXRlKGNvbmNsdXNpb25QbGFjZWhvbGRlclJ1bGUsIHN0cmluZywgY29udGV4dCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnN0YW50aWF0ZVN1cHBvc2l0aW9uKHN0cmluZywgY29udGV4dCkge1xuICBzdHJpbmcgPSBgJHtzdHJpbmd9XG5gOyAgLy8vXG5cbiAgcmV0dXJuIGluc3RhbnRpYXRlKHN1cHBvc2l0aW9uUGxhY2Vob2xkZXJSdWxlLCBzdHJpbmcsIGNvbnRleHQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5zdGFudGlhdGVUZXJtKHN0cmluZywgY29udGV4dCkgeyByZXR1cm4gaW5zdGFudGlhdGUodGVybVBsYWNlaG9sZGVyUnVsZSwgc3RyaW5nLCBjb250ZXh0KTsgfVxuXG5leHBvcnQgZnVuY3Rpb24gaW5zdGFudGlhdGVUeXBlKHN0cmluZywgY29udGV4dCkgeyByZXR1cm4gaW5zdGFudGlhdGUodHlwZVBsYWNlaG9sZGVyUnVsZSwgc3RyaW5nLCBjb250ZXh0KTsgfVxuXG5leHBvcnQgZnVuY3Rpb24gaW5zdGFudGlhdGVGcmFtZShzdHJpbmcsIGNvbnRleHQpIHsgcmV0dXJuIGluc3RhbnRpYXRlKGZyYW1lUGxhY2Vob2xkZXJSdWxlLCBzdHJpbmcsIGNvbnRleHQpOyB9XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnN0YW50aWF0ZUxhYmVsKHN0cmluZywgY29udGV4dCkgeyByZXR1cm4gaW5zdGFudGlhdGUobGFiZWxQbGFjZWhvbGRlclJ1bGUsIHN0cmluZywgY29udGV4dCk7IH1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc3RhbnRpYXRlVmFyaWFibGUoc3RyaW5nLCBjb250ZXh0KSB7IHJldHVybiBpbnN0YW50aWF0ZSh2YXJpYWJsZVBsYWNlaG9sZGVyUnVsZSwgc3RyaW5nLCBjb250ZXh0KTsgfVxuXG5leHBvcnQgZnVuY3Rpb24gaW5zdGFudGlhdGVFcXVhbGl0eShzdHJpbmcsIGNvbnRleHQpIHsgcmV0dXJuIGluc3RhbnRpYXRlKGVxdWFsaXR5UGxhY2Vob2xkZXJSdWxlLCBzdHJpbmcsIGNvbnRleHQpOyB9XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnN0YW50aWF0ZVByb3BlcnR5KHN0cmluZywgY29udGV4dCkgeyByZXR1cm4gaW5zdGFudGlhdGUocHJvcGVydHlQbGFjZWhvbGRlclJ1bGUsIHN0cmluZywgY29udGV4dCk7IH1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc3RhbnRpYXRlR2VuZXJhdG9yKHN0cmluZywgY29udGV4dCkgeyByZXR1cm4gaW5zdGFudGlhdGUoZ2VuZXJhdG9yUGxhY2Vob2xkZXJSdWxlLCBzdHJpbmcsIGNvbnRleHQpOyB9XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnN0YW50aWF0ZUp1ZGdlbWVudChzdHJpbmcsIGNvbnRleHQpIHsgcmV0dXJuIGluc3RhbnRpYXRlKGp1ZGdlbWVudFBsYWNlaG9sZGVyUnVsZSwgc3RyaW5nLCBjb250ZXh0KTsgfVxuXG5leHBvcnQgZnVuY3Rpb24gaW5zdGFudGlhdGVQYXJhbWV0ZXIoc3RyaW5nLCBjb250ZXh0KSB7IHJldHVybiBpbnN0YW50aWF0ZShwYXJhbWV0ZXJQbGFjZWhvbGRlclJ1bGUsIHN0cmluZywgY29udGV4dCk7IH1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc3RhbnRpYXRlU3RhdGVtZW50KHN0cmluZywgY29udGV4dCkgeyByZXR1cm4gaW5zdGFudGlhdGUoc3RhdGVtZW50UGxhY2Vob2xkZXJSdWxlLCBzdHJpbmcsIGNvbnRleHQpOyB9XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnN0YW50aWF0ZVJlZmVyZW5jZShzdHJpbmcsIGNvbnRleHQpIHsgcmV0dXJuIGluc3RhbnRpYXRlKHJlZmVyZW5jZVBsYWNlaG9sZGVyUnVsZSwgc3RyaW5nLCBjb250ZXh0KTsgfVxuXG5leHBvcnQgZnVuY3Rpb24gaW5zdGFudGlhdGVTaWduYXR1cmUoc3RyaW5nLCBjb250ZXh0KSB7IHJldHVybiBpbnN0YW50aWF0ZShzaWduYXR1cmVQbGFjZWhvbGRlclJ1bGUsIHN0cmluZywgY29udGV4dCk7IH1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc3RhbnRpYXRlQ29tYmluYXRvcihzdHJpbmcsIGNvbnRleHQpIHsgcmV0dXJuIGluc3RhbnRpYXRlKGNvbWJpbmF0b3JQbGFjZWhvbGRlclJ1bGUsIHN0cmluZywgY29udGV4dCk7IH1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc3RhbnRpYXRlSHlwb3RoZXNpcyhzdHJpbmcsIGNvbnRleHQpIHsgcmV0dXJuIGluc3RhbnRpYXRlKGh5cG90aGVzaXNQbGFjZWhvbGRlclJ1bGUsIHN0cmluZywgY29udGV4dCk7IH1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc3RhbnRpYXRlQ29uc3RyYWludChzdHJpbmcsIGNvbnRleHQpIHsgcmV0dXJuIGluc3RhbnRpYXRlKGNvbnN0cmFpbnRQbGFjZWhvbGRlclJ1bGUsIHN0cmluZywgY29udGV4dCk7IH1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc3RhbnRpYXRlVHlwZVByZWZpeChzdHJpbmcsIGNvbnRleHQpIHsgcmV0dXJuIGluc3RhbnRpYXRlKHR5cGVQcmVmaXhQbGFjZWhvbGRlclJ1bGUsIHN0cmluZywgY29udGV4dCk7IH1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc3RhbnRpYXRlQ29uc3RydWN0b3Ioc3RyaW5nLCBjb250ZXh0KSB7IHJldHVybiBpbnN0YW50aWF0ZShjb25zdHJ1Y3RvclBsYWNlaG9sZGVyUnVsZSwgc3RyaW5nLCBjb250ZXh0KTsgfVxuXG5leHBvcnQgZnVuY3Rpb24gaW5zdGFudGlhdGVFcXVpdmFsZW5jZShzdHJpbmcsIGNvbnRleHQpIHsgcmV0dXJuIGluc3RhbnRpYXRlKGVxdWl2YWxlbmNlUGxhY2Vob2xkZXJSdWxlLCBzdHJpbmcsIGNvbnRleHQpOyB9XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnN0YW50aWF0ZU1ldGF2YXJpYWJsZShzdHJpbmcsIGNvbnRleHQpIHsgcmV0dXJuIGluc3RhbnRpYXRlKG1ldGF2YXJpYWJsZVBsYWNlaG9sZGVyUnVsZSwgc3RyaW5nLCBjb250ZXh0KTsgfVxuXG5leHBvcnQgZnVuY3Rpb24gaW5zdGFudGlhdGVUeXBlQXNzZXJ0aW9uKHN0cmluZywgY29udGV4dCkgeyByZXR1cm4gaW5zdGFudGlhdGUodHlwZUFzc2VydGlvblBsYWNlaG9sZGVyUnVsZSwgc3RyaW5nLCBjb250ZXh0KTsgfVxuXG5leHBvcnQgZnVuY3Rpb24gaW5zdGFudGlhdGVEZWZpbmVkQXNzZXJ0aW9uKHN0cmluZywgY29udGV4dCkgeyByZXR1cm4gaW5zdGFudGlhdGUoZGVmaW5lZEFzc2VydGlvblBsYWNlaG9sZGVyUnVsZSwgc3RyaW5nLCBjb250ZXh0KTsgfVxuXG5leHBvcnQgZnVuY3Rpb24gaW5zdGFudGlhdGVUZXJtU3Vic3RpdHV0aW9uKHN0cmluZywgY29udGV4dCkgeyByZXR1cm4gaW5zdGFudGlhdGUodGVybVN1YnN0aXR1dGlvblBsYWNlaG9sZGVyUnVsZSwgc3RyaW5nLCBjb250ZXh0KTsgfVxuXG5leHBvcnQgZnVuY3Rpb24gaW5zdGFudGlhdGVTdWJwcm9vZkFzc2VydGlvbihzdHJpbmcsIGNvbnRleHQpIHsgcmV0dXJuIGluc3RhbnRpYXRlKHN1YnByb29mQXNzZXJ0aW9ubGFjZWhvbGRlclJ1bGUsIHN0cmluZywgY29udGV4dCk7IH1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc3RhbnRpYXRlUHJvcGVydHlBc3NlcnRpb24oc3RyaW5nLCBjb250ZXh0KSB7IHJldHVybiBpbnN0YW50aWF0ZShwcm9wZXJ0eUFzc2VydGlvblBsYWNlaG9sZGVyUnVsZSwgc3RyaW5nLCBjb250ZXh0KTsgfVxuXG5leHBvcnQgZnVuY3Rpb24gaW5zdGFudGlhdGVGcmFtZVN1YnN0aXR1dGlvbihzdHJpbmcsIGNvbnRleHQpIHsgcmV0dXJuIGluc3RhbnRpYXRlKGZyYW1lU3Vic3RpdHV0aW9uUGxhY2Vob2xkZXJSdWxlLCBzdHJpbmcsIGNvbnRleHQpOyB9XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnN0YW50aWF0ZVByb2NlZHVyZVJlZmVyZW5jZShzdHJpbmcsIGNvbnRleHQpIHsgcmV0dXJuIGluc3RhbnRpYXRlKHByb2NlZHVyZVJlZmVyZW5jZWxhY2Vob2xkZXJSdWxlLCBzdHJpbmcsIGNvbnRleHQpOyB9XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnN0YW50aWF0ZUNvbnRhaW5lZEFzc2VydGlvbihzdHJpbmcsIGNvbnRleHQpIHsgcmV0dXJuIGluc3RhbnRpYXRlKGNvbnRhaW5lZEFzc2VydGlvblBsYWNlaG9sZGVyUnVsZSwgc3RyaW5nLCBjb250ZXh0KTsgfVxuXG5leHBvcnQgZnVuY3Rpb24gaW5zdGFudGlhdGVTaWduYXR1cmVBc3NlcnRpb24oc3RyaW5nLCBjb250ZXh0KSB7IHJldHVybiBpbnN0YW50aWF0ZShzaWduYXR1cmVBc3NlcnRpb25QbGFjZWhvbGRlclJ1bGUsIHN0cmluZywgY29udGV4dCk7IH1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc3RhbnRpYXRlSW1wbGljaXRBc3N1bXB0aW9uKHN0cmluZywgY29udGV4dCkgeyByZXR1cm4gaW5zdGFudGlhdGUoaW1wbGljaXRBc3N1bXB0aW9uUGxhY2Vob2xkZXJSdWxlLCBzdHJpbmcsIGNvbnRleHQpOyB9XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnN0YW50aWF0ZVN0YXRlbWVudFN1YnN0aXR1dGlvbihzdHJpbmcsIGNvbnRleHQpIHsgcmV0dXJuIGluc3RhbnRpYXRlKHN0YXRlbWVudFN1YnN0aXR1dGlvblBsYWNlaG9sZGVyUnVsZSwgc3RyaW5nLCBjb250ZXh0KTsgfVxuXG5leHBvcnQgZnVuY3Rpb24gaW5zdGFudGlhdGVSZWZlcmVuY2VTdWJzdGl0dXRpb24oc3RyaW5nLCBjb250ZXh0KSB7IHJldHVybiBpbnN0YW50aWF0ZShyZWZlcmVuY2VTdWJzdGl0dXRpb25QbGFjZWhvbGRlclJ1bGUsIHN0cmluZywgY29udGV4dCk7IH1cblxuZnVuY3Rpb24gaW5zdGFudGlhdGUocGxhY2Vob2xkZXJSdWxlLCBzdHJpbmcsIGNvbnRleHQpIHtcbiAgbGV0IG5vZGU7XG5cbiAgY29uc3QgbGV4ZXIgPSBjb250ZXh0LmdldExleGVyKCksXG4gICAgICAgIHBhcnNlciA9IGNvbnRleHQuZ2V0UGFyc2VyKCksXG4gICAgICAgIGNvbnRlbnQgPSBgJHtzdHJpbmd9XG5gLFxuICAgICAgICB0b2tlbnMgPSBsZXhlci50b2tlbmlzZShjb250ZW50KTtcblxuICBjb250ZXh0LnNldFRva2Vucyh0b2tlbnMpO1xuXG4gIGNvbnN0IHN0YXJ0UnVsZSA9IHBsYWNlaG9sZGVyUnVsZTsgIC8vL1xuXG4gIG5vZGUgPSBwYXJzZXIucGFyc2UodG9rZW5zLCBzdGFydFJ1bGUpO1xuXG4gIGNvbnN0IG5vblRlcm1pbmFsTm9kZSA9IG5vZGU7IC8vL1xuXG4gIG5vblRlcm1pbmFsTm9kZS5zb21lQ2hpbGROb2RlKChjaGlsZE5vZGUpID0+IHtcbiAgICBub2RlID0gY2hpbGROb2RlOyAvLy9cblxuICAgIHJldHVybiB0cnVlO1xuICB9KTtcblxuICByZXR1cm4gbm9kZTtcbn1cbiJdLCJuYW1lcyI6WyJpbnN0YW50aWF0ZUNvbWJpbmF0b3IiLCJpbnN0YW50aWF0ZUNvbmNsdXNpb24iLCJpbnN0YW50aWF0ZUNvbnN0cmFpbnQiLCJpbnN0YW50aWF0ZUNvbnN0cnVjdG9yIiwiaW5zdGFudGlhdGVDb250YWluZWRBc3NlcnRpb24iLCJpbnN0YW50aWF0ZURlZHVjdGlvbiIsImluc3RhbnRpYXRlRGVmaW5lZEFzc2VydGlvbiIsImluc3RhbnRpYXRlRXF1YWxpdHkiLCJpbnN0YW50aWF0ZUVxdWl2YWxlbmNlIiwiaW5zdGFudGlhdGVGcmFtZSIsImluc3RhbnRpYXRlRnJhbWVTdWJzdGl0dXRpb24iLCJpbnN0YW50aWF0ZUdlbmVyYXRvciIsImluc3RhbnRpYXRlSHlwb3RoZXNpcyIsImluc3RhbnRpYXRlSW1wbGljaXRBc3N1bXB0aW9uIiwiaW5zdGFudGlhdGVKdWRnZW1lbnQiLCJpbnN0YW50aWF0ZUxhYmVsIiwiaW5zdGFudGlhdGVNZXRhdmFyaWFibGUiLCJpbnN0YW50aWF0ZVBhcmFtZXRlciIsImluc3RhbnRpYXRlUHJlbWlzZSIsImluc3RhbnRpYXRlUHJvY2VkdXJlUmVmZXJlbmNlIiwiaW5zdGFudGlhdGVQcm9wZXJ0eSIsImluc3RhbnRpYXRlUHJvcGVydHlBc3NlcnRpb24iLCJpbnN0YW50aWF0ZVJlZmVyZW5jZSIsImluc3RhbnRpYXRlUmVmZXJlbmNlU3Vic3RpdHV0aW9uIiwiaW5zdGFudGlhdGVTaWduYXR1cmUiLCJpbnN0YW50aWF0ZVNpZ25hdHVyZUFzc2VydGlvbiIsImluc3RhbnRpYXRlU3RhdGVtZW50IiwiaW5zdGFudGlhdGVTdGF0ZW1lbnRTdWJzdGl0dXRpb24iLCJpbnN0YW50aWF0ZVN1YnByb29mQXNzZXJ0aW9uIiwiaW5zdGFudGlhdGVTdXBwb3NpdGlvbiIsImluc3RhbnRpYXRlVGVybSIsImluc3RhbnRpYXRlVGVybVN1YnN0aXR1dGlvbiIsImluc3RhbnRpYXRlVHlwZSIsImluc3RhbnRpYXRlVHlwZUFzc2VydGlvbiIsImluc3RhbnRpYXRlVHlwZVByZWZpeCIsImluc3RhbnRpYXRlVmFyaWFibGUiLCJydWxlRnJvbVJ1bGVOYW1lIiwiYm5mVXRpbGl0aWVzIiwidGVybVBsYWNlaG9sZGVyUnVsZSIsIlRFUk1fUlVMRV9OQU1FIiwidHlwZVBsYWNlaG9sZGVyUnVsZSIsIlRZUEVfUlVMRV9OQU1FIiwiZnJhbWVQbGFjZWhvbGRlclJ1bGUiLCJGUkFNRV9SVUxFX05BTUUiLCJsYWJlbFBsYWNlaG9sZGVyUnVsZSIsIkxBQkVMX1JVTEVfTkFNRSIsInByZW1pc2VQbGFjZWhvbGRlclJ1bGUiLCJQUkVNSVNFX1JVTEVfTkFNRSIsInZhcmlhYmxlUGxhY2Vob2xkZXJSdWxlIiwiVkFSSUFCTEVfUlVMRV9OQU1FIiwiZXF1YWxpdHlQbGFjZWhvbGRlclJ1bGUiLCJFUVVBTElUWV9SVUxFX05BTUUiLCJwcm9wZXJ0eVBsYWNlaG9sZGVyUnVsZSIsIlBST1BFUlRZX1JVTEVfTkFNRSIsImp1ZGdlbWVudFBsYWNlaG9sZGVyUnVsZSIsIkpVREdFTUVOVF9SVUxFX05BTUUiLCJnZW5lcmF0b3JQbGFjZWhvbGRlclJ1bGUiLCJHRU5FUkFUT1JfUlVMRV9OQU1FIiwiZGVkdWN0aW9uUGxhY2Vob2xkZXJSdWxlIiwiREVEVUNUSU9OX1JVTEVfTkFNRSIsInBhcmFtZXRlclBsYWNlaG9sZGVyUnVsZSIsIlBBUkFNRVRFUl9SVUxFX05BTUUiLCJzdGF0ZW1lbnRQbGFjZWhvbGRlclJ1bGUiLCJTVEFURU1FTlRfUlVMRV9OQU1FIiwicmVmZXJlbmNlUGxhY2Vob2xkZXJSdWxlIiwiUkVGRVJFTkNFX1JVTEVfTkFNRSIsInNpZ25hdHVyZVBsYWNlaG9sZGVyUnVsZSIsIlNJR05BVFVSRV9SVUxFX05BTUUiLCJjb25zdHJhaW50UGxhY2Vob2xkZXJSdWxlIiwiQ09OU1RSQUlOVF9SVUxFX05BTUUiLCJjb21iaW5hdG9yUGxhY2Vob2xkZXJSdWxlIiwiQ09NQklOQVRPUl9SVUxFX05BTUUiLCJjb25jbHVzaW9uUGxhY2Vob2xkZXJSdWxlIiwiQ09OQ0xVU0lPTl9SVUxFX05BTUUiLCJoeXBvdGhlc2lzUGxhY2Vob2xkZXJSdWxlIiwiSFlQT1RIRVNJU19SVUxFX05BTUUiLCJ0eXBlUHJlZml4UGxhY2Vob2xkZXJSdWxlIiwiVFlQRV9QUkVGSVhfUlVMRV9OQU1FIiwic3VwcG9zaXRpb25QbGFjZWhvbGRlclJ1bGUiLCJTVVBQT1NJVElPTl9SVUxFX05BTUUiLCJjb25zdHJ1Y3RvclBsYWNlaG9sZGVyUnVsZSIsIkNPTlNUUlVDVE9SX1JVTEVfTkFNRSIsImVxdWl2YWxlbmNlUGxhY2Vob2xkZXJSdWxlIiwiRVFVSVZBTEVOQ0VfUlVMRV9OQU1FIiwibWV0YXZhcmlhYmxlUGxhY2Vob2xkZXJSdWxlIiwiTUVUQVZBUklBQkxFX1JVTEVfTkFNRSIsInR5cGVBc3NlcnRpb25QbGFjZWhvbGRlclJ1bGUiLCJUWVBFX0FTU0VSVElPTl9SVUxFX05BTUUiLCJkZWZpbmVkQXNzZXJ0aW9uUGxhY2Vob2xkZXJSdWxlIiwiREVGSU5FRF9BU1NFUlRJT05fUlVMRV9OQU1FIiwidGVybVN1YnN0aXR1dGlvblBsYWNlaG9sZGVyUnVsZSIsIlRFUk1fU1VCU1RJVFVUSU9OX1JVTEVfTkFNRSIsInN1YnByb29mQXNzZXJ0aW9ubGFjZWhvbGRlclJ1bGUiLCJTVUJQUk9PRl9BU1NFUlRJT05fUlVMRV9OQU1FIiwicHJvcGVydHlBc3NlcnRpb25QbGFjZWhvbGRlclJ1bGUiLCJQUk9QRVJUWV9BU1NFUlRJT05fUlVMRV9OQU1FIiwiZnJhbWVTdWJzdGl0dXRpb25QbGFjZWhvbGRlclJ1bGUiLCJGUkFNRV9TVUJTVElUVVRJT05fUlVMRV9OQU1FIiwicHJvY2VkdXJlUmVmZXJlbmNlbGFjZWhvbGRlclJ1bGUiLCJQUk9DRURVUkVfUkVGRVJFTkNFX1JVTEVfTkFNRSIsImNvbnRhaW5lZEFzc2VydGlvblBsYWNlaG9sZGVyUnVsZSIsIkNPTlRBSU5FRF9BU1NFUlRJT05fUlVMRV9OQU1FIiwic2lnbmF0dXJlQXNzZXJ0aW9uUGxhY2Vob2xkZXJSdWxlIiwiU0lHTkFUVVJFX0FTU0VSVElPTl9SVUxFX05BTUUiLCJpbXBsaWNpdEFzc3VtcHRpb25QbGFjZWhvbGRlclJ1bGUiLCJJTVBMSUNJVF9BU1NVTVBUSU9OX1JVTEVfTkFNRSIsInN0YXRlbWVudFN1YnN0aXR1dGlvblBsYWNlaG9sZGVyUnVsZSIsIlNUQVRFTUVOVF9TVUJTVElUVVRJT05fUlVMRV9OQU1FIiwicmVmZXJlbmNlU3Vic3RpdHV0aW9uUGxhY2Vob2xkZXJSdWxlIiwiUkVGRVJFTkNFX1NVQlNUSVRVVElPTl9SVUxFX05BTUUiLCJzdHJpbmciLCJjb250ZXh0IiwiaW5zdGFudGlhdGUiLCJwbGFjZWhvbGRlclJ1bGUiLCJub2RlIiwibGV4ZXIiLCJnZXRMZXhlciIsInBhcnNlciIsImdldFBhcnNlciIsImNvbnRlbnQiLCJ0b2tlbnMiLCJ0b2tlbmlzZSIsInNldFRva2VucyIsInN0YXJ0UnVsZSIsInBhcnNlIiwibm9uVGVybWluYWxOb2RlIiwic29tZUNoaWxkTm9kZSIsImNoaWxkTm9kZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O1FBc0lnQkE7ZUFBQUE7O1FBeENBQztlQUFBQTs7UUE0Q0FDO2VBQUFBOztRQUlBQztlQUFBQTs7UUFvQkFDO2VBQUFBOztRQTNFQUM7ZUFBQUE7O1FBK0RBQztlQUFBQTs7UUFoQ0FDO2VBQUFBOztRQTBCQUM7ZUFBQUE7O1FBaENBQztlQUFBQTs7UUE4Q0FDO2VBQUFBOztRQXBDQUM7ZUFBQUE7O1FBY0FDO2VBQUFBOztRQThCQUM7ZUFBQUE7O1FBMUNBQztlQUFBQTs7UUFWQUM7ZUFBQUE7O1FBZ0NBQztlQUFBQTs7UUFwQkFDO2VBQUFBOztRQTlDQUM7ZUFBQUE7O1FBZ0ZBQztlQUFBQTs7UUF4Q0FDO2VBQUFBOztRQW9DQUM7ZUFBQUE7O1FBMUJBQztlQUFBQTs7UUF3Q0FDO2VBQUFBOztRQXRDQUM7ZUFBQUE7O1FBZ0NBQztlQUFBQTs7UUFwQ0FDO2VBQUFBOztRQXdDQUM7ZUFBQUE7O1FBZEFDO2VBQUFBOztRQXJEQUM7ZUFBQUE7O1FBT0FDO2VBQUFBOztRQTRDQUM7ZUFBQUE7O1FBMUNBQztlQUFBQTs7UUFzQ0FDO2VBQUFBOztRQVJBQztlQUFBQTs7UUF4QkFDO2VBQUFBOzs7Z0NBbEhhOzJCQXFDb0I7QUFFakQsTUFBTSxFQUFFQyxnQkFBZ0IsRUFBRSxHQUFHQyw0QkFBWTtBQUV6QyxNQUFNQyxzQkFBc0JGLGlCQUFpQkcseUJBQWMsR0FDckRDLHNCQUFzQkosaUJBQWlCSyx5QkFBYyxHQUNyREMsdUJBQXVCTixpQkFBaUJPLDBCQUFlLEdBQ3ZEQyx1QkFBdUJSLGlCQUFpQlMsMEJBQWUsR0FDdkRDLHlCQUF5QlYsaUJBQWlCVyw0QkFBaUIsR0FDM0RDLDBCQUEwQlosaUJBQWlCYSw2QkFBa0IsR0FDN0RDLDBCQUEwQmQs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
242
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm9jZXNzL2luc3RhbnRpYXRlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBibmZVdGlsaXRpZXMgfSBmcm9tIFwib2NjYW0tbGFuZ3VhZ2VzXCI7XG5cbmltcG9ydCB7IFRFUk1fUlVMRV9OQU1FLFxuICAgICAgICAgVFlQRV9SVUxFX05BTUUsXG4gICAgICAgICBGUkFNRV9SVUxFX05BTUUsXG4gICAgICAgICBMQUJFTF9SVUxFX05BTUUsXG4gICAgICAgICBQUkVNSVNFX1JVTEVfTkFNRSxcbiAgICAgICAgIFZBUklBQkxFX1JVTEVfTkFNRSxcbiAgICAgICAgIEVRVUFMSVRZX1JVTEVfTkFNRSxcbiAgICAgICAgIFBST1BFUlRZX1JVTEVfTkFNRSxcbiAgICAgICAgIEpVREdFTUVOVF9SVUxFX05BTUUsXG4gICAgICAgICBERURVQ1RJT05fUlVMRV9OQU1FLFxuICAgICAgICAgUEFSQU1FVEVSX1JVTEVfTkFNRSxcbiAgICAgICAgIFNUQVRFTUVOVF9SVUxFX05BTUUsXG4gICAgICAgICBSRUZFUkVOQ0VfUlVMRV9OQU1FLFxuICAgICAgICAgU0lHTkFUVVJFX1JVTEVfTkFNRSxcbiAgICAgICAgIEdFTkVSQVRPUl9SVUxFX05BTUUsXG4gICAgICAgICBDT01CSU5BVE9SX1JVTEVfTkFNRSxcbiAgICAgICAgIENPTkNMVVNJT05fUlVMRV9OQU1FLFxuICAgICAgICAgSFlQT1RIRVNJU19SVUxFX05BTUUsXG4gICAgICAgICBDT05TVFJBSU5UX1JVTEVfTkFNRSxcbiAgICAgICAgIFRZUEVfUFJFRklYX1JVTEVfTkFNRSxcbiAgICAgICAgIFNVUFBPU0lUSU9OX1JVTEVfTkFNRSxcbiAgICAgICAgIENPTlNUUlVDVE9SX1JVTEVfTkFNRSxcbiAgICAgICAgIEVRVUlWQUxFTkNFX1JVTEVfTkFNRSxcbiAgICAgICAgIE1FVEFWQVJJQUJMRV9SVUxFX05BTUUsXG4gICAgICAgICBUWVBFX0FTU0VSVElPTl9SVUxFX05BTUUsXG4gICAgICAgICBERUZJTkVEX0FTU0VSVElPTl9SVUxFX05BTUUsXG4gICAgICAgICBURVJNX1NVQlNUSVRVVElPTl9SVUxFX05BTUUsXG4gICAgICAgICBQUk9QRVJUWV9BU1NFUlRJT05fUlVMRV9OQU1FLFxuICAgICAgICAgU1VCUFJPT0ZfQVNTRVJUSU9OX1JVTEVfTkFNRSxcbiAgICAgICAgIEZSQU1FX1NVQlNUSVRVVElPTl9SVUxFX05BTUUsXG4gICAgICAgICBQUk9DRURVUkVfUkVGRVJFTkNFX1JVTEVfTkFNRSxcbiAgICAgICAgIENPTlRBSU5FRF9BU1NFUlRJT05fUlVMRV9OQU1FLFxuICAgICAgICAgU0lHTkFUVVJFX0FTU0VSVElPTl9SVUxFX05BTUUsXG4gICAgICAgICBJTVBMSUNJVF9BU1NVTVBUSU9OX1JVTEVfTkFNRSxcbiAgICAgICAgIFNUQVRFTUVOVF9TVUJTVElUVVRJT05fUlVMRV9OQU1FLFxuICAgICAgICAgUkVGRVJFTkNFX1NVQlNUSVRVVElPTl9SVUxFX05BTUUgfSBmcm9tIFwiLi4vcnVsZU5hbWVzXCI7XG5cbmNvbnN0IHsgaW5zdGFudGlhdGUsIHJ1bGVGcm9tUnVsZU5hbWUgfSA9IGJuZlV0aWxpdGllcztcblxuY29uc3QgdGVybVBsYWNlaG9sZGVyUnVsZSA9IHJ1bGVGcm9tUnVsZU5hbWUoVEVSTV9SVUxFX05BTUUpLFxuICAgICAgdHlwZVBsYWNlaG9sZGVyUnVsZSA9IHJ1bGVGcm9tUnVsZU5hbWUoVFlQRV9SVUxFX05BTUUpLFxuICAgICAgZnJhbWVQbGFjZWhvbGRlclJ1bGUgPSBydWxlRnJvbVJ1bGVOYW1lKEZSQU1FX1JVTEVfTkFNRSksXG4gICAgICBsYWJlbFBsYWNlaG9sZGVyUnVsZSA9IHJ1bGVGcm9tUnVsZU5hbWUoTEFCRUxfUlVMRV9OQU1FKSxcbiAgICAgIHByZW1pc2VQbGFjZWhvbGRlclJ1bGUgPSBydWxlRnJvbVJ1bGVOYW1lKFBSRU1JU0VfUlVMRV9OQU1FKSxcbiAgICAgIHZhcmlhYmxlUGxhY2Vob2xkZXJSdWxlID0gcnVsZUZyb21SdWxlTmFtZShWQVJJQUJMRV9SVUxFX05BTUUpLFxuICAgICAgZXF1YWxpdHlQbGFjZWhvbGRlclJ1bGUgPSBydWxlRnJvbVJ1bGVOYW1lKEVRVUFMSVRZX1JVTEVfTkFNRSksXG4gICAgICBwcm9wZXJ0eVBsYWNlaG9sZGVyUnVsZSA9IHJ1bGVGcm9tUnVsZU5hbWUoUFJPUEVSVFlfUlVMRV9OQU1FKSxcbiAgICAgIGp1ZGdlbWVudFBsYWNlaG9sZGVyUnVsZSA9IHJ1bGVGcm9tUnVsZU5hbWUoSlVER0VNRU5UX1JVTEVfTkFNRSksXG4gICAgICBnZW5lcmF0b3JQbGFjZWhvbGRlclJ1bGUgPSBydWxlRnJvbVJ1bGVOYW1lKEdFTkVSQVRPUl9SVUxFX05BTUUpLFxuICAgICAgZGVkdWN0aW9uUGxhY2Vob2xkZXJSdWxlID0gcnVsZUZyb21SdWxlTmFtZShERURVQ1RJT05fUlVMRV9OQU1FKSxcbiAgICAgIHBhcmFtZXRlclBsYWNlaG9sZGVyUnVsZSA9IHJ1bGVGcm9tUnVsZU5hbWUoUEFSQU1FVEVSX1JVTEVfTkFNRSksXG4gICAgICBzdGF0ZW1lbnRQbGFjZWhvbGRlclJ1bGUgPSBydWxlRnJvbVJ1bGVOYW1lKFNUQVRFTUVOVF9SVUxFX05BTUUpLFxuICAgICAgcmVmZXJlbmNlUGxhY2Vob2xkZXJSdWxlID0gcnVsZUZyb21SdWxlTmFtZShSRUZFUkVOQ0VfUlVMRV9OQU1FKSxcbiAgICAgIHNpZ25hdHVyZVBsYWNlaG9sZGVyUnVsZSA9IHJ1bGVGcm9tUnVsZU5hbWUoU0lHTkFUVVJFX1JVTEVfTkFNRSksXG4gICAgICBjb25zdHJhaW50UGxhY2Vob2xkZXJSdWxlID0gcnVsZUZyb21SdWxlTmFtZShDT05TVFJBSU5UX1JVTEVfTkFNRSksXG4gICAgICBjb21iaW5hdG9yUGxhY2Vob2xkZXJSdWxlID0gcnVsZUZyb21SdWxlTmFtZShDT01CSU5BVE9SX1JVTEVfTkFNRSksXG4gICAgICBjb25jbHVzaW9uUGxhY2Vob2xkZXJSdWxlID0gcnVsZUZyb21SdWxlTmFtZShDT05DTFVTSU9OX1JVTEVfTkFNRSksXG4gICAgICBoeXBvdGhlc2lzUGxhY2Vob2xkZXJSdWxlID0gcnVsZUZyb21SdWxlTmFtZShIWVBPVEhFU0lTX1JVTEVfTkFNRSksXG4gICAgICB0eXBlUHJlZml4UGxhY2Vob2xkZXJSdWxlID0gcnVsZUZyb21SdWxlTmFtZShUWVBFX1BSRUZJWF9SVUxFX05BTUUpLFxuICAgICAgc3VwcG9zaXRpb25QbGFjZWhvbGRlclJ1bGUgPSBydWxlRnJvbVJ1bGVOYW1lKFNVUFBPU0lUSU9OX1JVTEVfTkFNRSksXG4gICAgICBjb25zdHJ1Y3RvclBsYWNlaG9sZGVyUnVsZSA9IHJ1bGVGcm9tUnVsZU5hbWUoQ09OU1RSVUNUT1JfUlVMRV9OQU1FKSxcbiAgICAgIGVxdWl2YWxlbmNlUGxhY2Vob2xkZXJSdWxlID0gcnVsZUZyb21SdWxlTmFtZShFUVVJVkFMRU5DRV9SVUxFX05BTUUpLFxuICAgICAgbWV0YXZhcmlhYmxlUGxhY2Vob2xkZXJSdWxlID0gcnVsZUZyb21SdWxlTmFtZShNRVRBVkFSSUFCTEVfUlVMRV9OQU1FKSxcbiAgICAgIHR5cGVBc3NlcnRpb25QbGFjZWhvbGRlclJ1bGUgPSBydWxlRnJvbVJ1bGVOYW1lKFRZUEVfQVNTRVJUSU9OX1JVTEVfTkFNRSksXG4gICAgICBkZWZpbmVkQXNzZXJ0aW9uUGxhY2Vob2xkZXJSdWxlID0gcnVsZUZyb21SdWxlTmFtZShERUZJTkVEX0FTU0VSVElPTl9SVUxFX05BTUUpLFxuICAgICAgdGVybVN1YnN0aXR1dGlvblBsYWNlaG9sZGVyUnVsZSA9IHJ1bGVGcm9tUnVsZU5hbWUoVEVSTV9TVUJTVElUVVRJT05fUlVMRV9OQU1FKSxcbiAgICAgIHN1YnByb29mQXNzZXJ0aW9ubGFjZWhvbGRlclJ1bGUgPSBydWxlRnJvbVJ1bGVOYW1lKFNVQlBST09GX0FTU0VSVElPTl9SVUxFX05BTUUpLFxuICAgICAgcHJvcGVydHlBc3NlcnRpb25QbGFjZWhvbGRlclJ1bGUgPSBydWxlRnJvbVJ1bGVOYW1lKFBST1BFUlRZX0FTU0VSVElPTl9SVUxFX05BTUUpLFxuICAgICAgZnJhbWVTdWJzdGl0dXRpb25QbGFjZWhvbGRlclJ1bGUgPSBydWxlRnJvbVJ1bGVOYW1lKEZSQU1FX1NVQlNUSVRVVElPTl9SVUxFX05BTUUpLFxuICAgICAgcHJvY2VkdXJlUmVmZXJlbmNlbGFjZWhvbGRlclJ1bGUgPSBydWxlRnJvbVJ1bGVOYW1lKFBST0NFRFVSRV9SRUZFUkVOQ0VfUlVMRV9OQU1FKSxcbiAgICAgIGNvbnRhaW5lZEFzc2VydGlvblBsYWNlaG9sZGVyUnVsZSA9IHJ1bGVGcm9tUnVsZU5hbWUoQ09OVEFJTkVEX0FTU0VSVElPTl9SVUxFX05BTUUpLFxuICAgICAgc2lnbmF0dXJlQXNzZXJ0aW9uUGxhY2Vob2xkZXJSdWxlID0gcnVsZUZyb21SdWxlTmFtZShTSUdOQVRVUkVfQVNTRVJUSU9OX1JVTEVfTkFNRSksXG4gICAgICBpbXBsaWNpdEFzc3VtcHRpb25QbGFjZWhvbGRlclJ1bGUgPSBydWxlRnJvbVJ1bGVOYW1lKElNUExJQ0lUX0FTU1VNUFRJT05fUlVMRV9OQU1FKSxcbiAgICAgIHN0YXRlbWVudFN1YnN0aXR1dGlvblBsYWNlaG9sZGVyUnVsZSA9IHJ1bGVGcm9tUnVsZU5hbWUoU1RBVEVNRU5UX1NVQlNUSVRVVElPTl9SVUxFX05BTUUpLFxuICAgICAgcmVmZXJlbmNlU3Vic3RpdHV0aW9uUGxhY2Vob2xkZXJSdWxlID0gcnVsZUZyb21SdWxlTmFtZShSRUZFUkVOQ0VfU1VCU1RJVFVUSU9OX1JVTEVfTkFNRSk7XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnN0YW50aWF0ZVByZW1pc2Uoc3RyaW5nLCBjb250ZXh0KSB7XG4gIHN0cmluZyA9IGAke3N0cmluZ31cbmA7ICAvLy9cblxuICByZXR1cm4gaW5zdGFudGlhdGUocHJlbWlzZVBsYWNlaG9sZGVyUnVsZSwgc3RyaW5nLCBjb250ZXh0KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc3RhbnRpYXRlRGVkdWN0aW9uKHN0cmluZywgY29udGV4dCkge1xuICBzdHJpbmcgPSBgJHtzdHJpbmd9XG5gOyAgLy8vXG5cbiAgcmV0dXJuIGluc3RhbnRpYXRlKGRlZHVjdGlvblBsYWNlaG9sZGVyUnVsZSwgc3RyaW5nLCBjb250ZXh0KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc3RhbnRpYXRlQ29uY2x1c2lvbihzdHJpbmcsIGNvbnRleHQpIHtcbiAgc3RyaW5nID0gYCR7c3RyaW5nfVxuYDsgIC8vL1xuXG4gIHJldHVybiBpbnN0YW50aWF0ZShjb25jbHVzaW9uUGxhY2Vob2xkZXJSdWxlLCBzdHJpbmcsIGNvbnRleHQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5zdGFudGlhdGVTdXBwb3NpdGlvbihzdHJpbmcsIGNvbnRleHQpIHtcbiAgc3RyaW5nID0gYCR7c3RyaW5nfVxuYDsgIC8vL1xuXG4gIHJldHVybiBpbnN0YW50aWF0ZShzdXBwb3NpdGlvblBsYWNlaG9sZGVyUnVsZSwgc3RyaW5nLCBjb250ZXh0KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc3RhbnRpYXRlVGVybShzdHJpbmcsIGNvbnRleHQpIHsgcmV0dXJuIGluc3RhbnRpYXRlKHRlcm1QbGFjZWhvbGRlclJ1bGUsIHN0cmluZywgY29udGV4dCk7IH1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc3RhbnRpYXRlVHlwZShzdHJpbmcsIGNvbnRleHQpIHsgcmV0dXJuIGluc3RhbnRpYXRlKHR5cGVQbGFjZWhvbGRlclJ1bGUsIHN0cmluZywgY29udGV4dCk7IH1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc3RhbnRpYXRlRnJhbWUoc3RyaW5nLCBjb250ZXh0KSB7IHJldHVybiBpbnN0YW50aWF0ZShmcmFtZVBsYWNlaG9sZGVyUnVsZSwgc3RyaW5nLCBjb250ZXh0KTsgfVxuXG5leHBvcnQgZnVuY3Rpb24gaW5zdGFudGlhdGVMYWJlbChzdHJpbmcsIGNvbnRleHQpIHsgcmV0dXJuIGluc3RhbnRpYXRlKGxhYmVsUGxhY2Vob2xkZXJSdWxlLCBzdHJpbmcsIGNvbnRleHQpOyB9XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnN0YW50aWF0ZVZhcmlhYmxlKHN0cmluZywgY29udGV4dCkgeyByZXR1cm4gaW5zdGFudGlhdGUodmFyaWFibGVQbGFjZWhvbGRlclJ1bGUsIHN0cmluZywgY29udGV4dCk7IH1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc3RhbnRpYXRlRXF1YWxpdHkoc3RyaW5nLCBjb250ZXh0KSB7IHJldHVybiBpbnN0YW50aWF0ZShlcXVhbGl0eVBsYWNlaG9sZGVyUnVsZSwgc3RyaW5nLCBjb250ZXh0KTsgfVxuXG5leHBvcnQgZnVuY3Rpb24gaW5zdGFudGlhdGVQcm9wZXJ0eShzdHJpbmcsIGNvbnRleHQpIHsgcmV0dXJuIGluc3RhbnRpYXRlKHByb3BlcnR5UGxhY2Vob2xkZXJSdWxlLCBzdHJpbmcsIGNvbnRleHQpOyB9XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnN0YW50aWF0ZUdlbmVyYXRvcihzdHJpbmcsIGNvbnRleHQpIHsgcmV0dXJuIGluc3RhbnRpYXRlKGdlbmVyYXRvclBsYWNlaG9sZGVyUnVsZSwgc3RyaW5nLCBjb250ZXh0KTsgfVxuXG5leHBvcnQgZnVuY3Rpb24gaW5zdGFudGlhdGVKdWRnZW1lbnQoc3RyaW5nLCBjb250ZXh0KSB7IHJldHVybiBpbnN0YW50aWF0ZShqdWRnZW1lbnRQbGFjZWhvbGRlclJ1bGUsIHN0cmluZywgY29udGV4dCk7IH1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc3RhbnRpYXRlUGFyYW1ldGVyKHN0cmluZywgY29udGV4dCkgeyByZXR1cm4gaW5zdGFudGlhdGUocGFyYW1ldGVyUGxhY2Vob2xkZXJSdWxlLCBzdHJpbmcsIGNvbnRleHQpOyB9XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnN0YW50aWF0ZVN0YXRlbWVudChzdHJpbmcsIGNvbnRleHQpIHsgcmV0dXJuIGluc3RhbnRpYXRlKHN0YXRlbWVudFBsYWNlaG9sZGVyUnVsZSwgc3RyaW5nLCBjb250ZXh0KTsgfVxuXG5leHBvcnQgZnVuY3Rpb24gaW5zdGFudGlhdGVSZWZlcmVuY2Uoc3RyaW5nLCBjb250ZXh0KSB7IHJldHVybiBpbnN0YW50aWF0ZShyZWZlcmVuY2VQbGFjZWhvbGRlclJ1bGUsIHN0cmluZywgY29udGV4dCk7IH1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc3RhbnRpYXRlU2lnbmF0dXJlKHN0cmluZywgY29udGV4dCkgeyByZXR1cm4gaW5zdGFudGlhdGUoc2lnbmF0dXJlUGxhY2Vob2xkZXJSdWxlLCBzdHJpbmcsIGNvbnRleHQpOyB9XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnN0YW50aWF0ZUNvbWJpbmF0b3Ioc3RyaW5nLCBjb250ZXh0KSB7IHJldHVybiBpbnN0YW50aWF0ZShjb21iaW5hdG9yUGxhY2Vob2xkZXJSdWxlLCBzdHJpbmcsIGNvbnRleHQpOyB9XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnN0YW50aWF0ZUh5cG90aGVzaXMoc3RyaW5nLCBjb250ZXh0KSB7IHJldHVybiBpbnN0YW50aWF0ZShoeXBvdGhlc2lzUGxhY2Vob2xkZXJSdWxlLCBzdHJpbmcsIGNvbnRleHQpOyB9XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnN0YW50aWF0ZUNvbnN0cmFpbnQoc3RyaW5nLCBjb250ZXh0KSB7IHJldHVybiBpbnN0YW50aWF0ZShjb25zdHJhaW50UGxhY2Vob2xkZXJSdWxlLCBzdHJpbmcsIGNvbnRleHQpOyB9XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnN0YW50aWF0ZVR5cGVQcmVmaXgoc3RyaW5nLCBjb250ZXh0KSB7IHJldHVybiBpbnN0YW50aWF0ZSh0eXBlUHJlZml4UGxhY2Vob2xkZXJSdWxlLCBzdHJpbmcsIGNvbnRleHQpOyB9XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnN0YW50aWF0ZUNvbnN0cnVjdG9yKHN0cmluZywgY29udGV4dCkgeyByZXR1cm4gaW5zdGFudGlhdGUoY29uc3RydWN0b3JQbGFjZWhvbGRlclJ1bGUsIHN0cmluZywgY29udGV4dCk7IH1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc3RhbnRpYXRlRXF1aXZhbGVuY2Uoc3RyaW5nLCBjb250ZXh0KSB7IHJldHVybiBpbnN0YW50aWF0ZShlcXVpdmFsZW5jZVBsYWNlaG9sZGVyUnVsZSwgc3RyaW5nLCBjb250ZXh0KTsgfVxuXG5leHBvcnQgZnVuY3Rpb24gaW5zdGFudGlhdGVNZXRhdmFyaWFibGUoc3RyaW5nLCBjb250ZXh0KSB7IHJldHVybiBpbnN0YW50aWF0ZShtZXRhdmFyaWFibGVQbGFjZWhvbGRlclJ1bGUsIHN0cmluZywgY29udGV4dCk7IH1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc3RhbnRpYXRlVHlwZUFzc2VydGlvbihzdHJpbmcsIGNvbnRleHQpIHsgcmV0dXJuIGluc3RhbnRpYXRlKHR5cGVBc3NlcnRpb25QbGFjZWhvbGRlclJ1bGUsIHN0cmluZywgY29udGV4dCk7IH1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc3RhbnRpYXRlRGVmaW5lZEFzc2VydGlvbihzdHJpbmcsIGNvbnRleHQpIHsgcmV0dXJuIGluc3RhbnRpYXRlKGRlZmluZWRBc3NlcnRpb25QbGFjZWhvbGRlclJ1bGUsIHN0cmluZywgY29udGV4dCk7IH1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc3RhbnRpYXRlVGVybVN1YnN0aXR1dGlvbihzdHJpbmcsIGNvbnRleHQpIHsgcmV0dXJuIGluc3RhbnRpYXRlKHRlcm1TdWJzdGl0dXRpb25QbGFjZWhvbGRlclJ1bGUsIHN0cmluZywgY29udGV4dCk7IH1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc3RhbnRpYXRlU3VicHJvb2ZBc3NlcnRpb24oc3RyaW5nLCBjb250ZXh0KSB7IHJldHVybiBpbnN0YW50aWF0ZShzdWJwcm9vZkFzc2VydGlvbmxhY2Vob2xkZXJSdWxlLCBzdHJpbmcsIGNvbnRleHQpOyB9XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnN0YW50aWF0ZVByb3BlcnR5QXNzZXJ0aW9uKHN0cmluZywgY29udGV4dCkgeyByZXR1cm4gaW5zdGFudGlhdGUocHJvcGVydHlBc3NlcnRpb25QbGFjZWhvbGRlclJ1bGUsIHN0cmluZywgY29udGV4dCk7IH1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc3RhbnRpYXRlRnJhbWVTdWJzdGl0dXRpb24oc3RyaW5nLCBjb250ZXh0KSB7IHJldHVybiBpbnN0YW50aWF0ZShmcmFtZVN1YnN0aXR1dGlvblBsYWNlaG9sZGVyUnVsZSwgc3RyaW5nLCBjb250ZXh0KTsgfVxuXG5leHBvcnQgZnVuY3Rpb24gaW5zdGFudGlhdGVQcm9jZWR1cmVSZWZlcmVuY2Uoc3RyaW5nLCBjb250ZXh0KSB7IHJldHVybiBpbnN0YW50aWF0ZShwcm9jZWR1cmVSZWZlcmVuY2VsYWNlaG9sZGVyUnVsZSwgc3RyaW5nLCBjb250ZXh0KTsgfVxuXG5leHBvcnQgZnVuY3Rpb24gaW5zdGFudGlhdGVDb250YWluZWRBc3NlcnRpb24oc3RyaW5nLCBjb250ZXh0KSB7IHJldHVybiBpbnN0YW50aWF0ZShjb250YWluZWRBc3NlcnRpb25QbGFjZWhvbGRlclJ1bGUsIHN0cmluZywgY29udGV4dCk7IH1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc3RhbnRpYXRlU2lnbmF0dXJlQXNzZXJ0aW9uKHN0cmluZywgY29udGV4dCkgeyByZXR1cm4gaW5zdGFudGlhdGUoc2lnbmF0dXJlQXNzZXJ0aW9uUGxhY2Vob2xkZXJSdWxlLCBzdHJpbmcsIGNvbnRleHQpOyB9XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnN0YW50aWF0ZUltcGxpY2l0QXNzdW1wdGlvbihzdHJpbmcsIGNvbnRleHQpIHsgcmV0dXJuIGluc3RhbnRpYXRlKGltcGxpY2l0QXNzdW1wdGlvblBsYWNlaG9sZGVyUnVsZSwgc3RyaW5nLCBjb250ZXh0KTsgfVxuXG5leHBvcnQgZnVuY3Rpb24gaW5zdGFudGlhdGVTdGF0ZW1lbnRTdWJzdGl0dXRpb24oc3RyaW5nLCBjb250ZXh0KSB7IHJldHVybiBpbnN0YW50aWF0ZShzdGF0ZW1lbnRTdWJzdGl0dXRpb25QbGFjZWhvbGRlclJ1bGUsIHN0cmluZywgY29udGV4dCk7IH1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc3RhbnRpYXRlUmVmZXJlbmNlU3Vic3RpdHV0aW9uKHN0cmluZywgY29udGV4dCkgeyByZXR1cm4gaW5zdGFudGlhdGUocmVmZXJlbmNlU3Vic3RpdHV0aW9uUGxhY2Vob2xkZXJSdWxlLCBzdHJpbmcsIGNvbnRleHQpOyB9XG4iXSwibmFtZXMiOlsiaW5zdGFudGlhdGVDb21iaW5hdG9yIiwiaW5zdGFudGlhdGVDb25jbHVzaW9uIiwiaW5zdGFudGlhdGVDb25zdHJhaW50IiwiaW5zdGFudGlhdGVDb25zdHJ1Y3RvciIsImluc3RhbnRpYXRlQ29udGFpbmVkQXNzZXJ0aW9uIiwiaW5zdGFudGlhdGVEZWR1Y3Rpb24iLCJpbnN0YW50aWF0ZURlZmluZWRBc3NlcnRpb24iLCJpbnN0YW50aWF0ZUVxdWFsaXR5IiwiaW5zdGFudGlhdGVFcXVpdmFsZW5jZSIsImluc3RhbnRpYXRlRnJhbWUiLCJpbnN0YW50aWF0ZUZyYW1lU3Vic3RpdHV0aW9uIiwiaW5zdGFudGlhdGVHZW5lcmF0b3IiLCJpbnN0YW50aWF0ZUh5cG90aGVzaXMiLCJpbnN0YW50aWF0ZUltcGxpY2l0QXNzdW1wdGlvbiIsImluc3RhbnRpYXRlSnVkZ2VtZW50IiwiaW5zdGFudGlhdGVMYWJlbCIsImluc3RhbnRpYXRlTWV0YXZhcmlhYmxlIiwiaW5zdGFudGlhdGVQYXJhbWV0ZXIiLCJpbnN0YW50aWF0ZVByZW1pc2UiLCJpbnN0YW50aWF0ZVByb2NlZHVyZVJlZmVyZW5jZSIsImluc3RhbnRpYXRlUHJvcGVydHkiLCJpbnN0YW50aWF0ZVByb3BlcnR5QXNzZXJ0aW9uIiwiaW5zdGFudGlhdGVSZWZlcmVuY2UiLCJpbnN0YW50aWF0ZVJlZmVyZW5jZVN1YnN0aXR1dGlvbiIsImluc3RhbnRpYXRlU2lnbmF0dXJlIiwiaW5zdGFudGlhdGVTaWduYXR1cmVBc3NlcnRpb24iLCJpbnN0YW50aWF0ZVN0YXRlbWVudCIsImluc3RhbnRpYXRlU3RhdGVtZW50U3Vic3RpdHV0aW9uIiwiaW5zdGFudGlhdGVTdWJwcm9vZkFzc2VydGlvbiIsImluc3RhbnRpYXRlU3VwcG9zaXRpb24iLCJpbnN0YW50aWF0ZVRlcm0iLCJpbnN0YW50aWF0ZVRlcm1TdWJzdGl0dXRpb24iLCJpbnN0YW50aWF0ZVR5cGUiLCJpbnN0YW50aWF0ZVR5cGVBc3NlcnRpb24iLCJpbnN0YW50aWF0ZVR5cGVQcmVmaXgiLCJpbnN0YW50aWF0ZVZhcmlhYmxlIiwiaW5zdGFudGlhdGUiLCJydWxlRnJvbVJ1bGVOYW1lIiwiYm5mVXRpbGl0aWVzIiwidGVybVBsYWNlaG9sZGVyUnVsZSIsIlRFUk1fUlVMRV9OQU1FIiwidHlwZVBsYWNlaG9sZGVyUnVsZSIsIlRZUEVfUlVMRV9OQU1FIiwiZnJhbWVQbGFjZWhvbGRlclJ1bGUiLCJGUkFNRV9SVUxFX05BTUUiLCJsYWJlbFBsYWNlaG9sZGVyUnVsZSIsIkxBQkVMX1JVTEVfTkFNRSIsInByZW1pc2VQbGFjZWhvbGRlclJ1bGUiLCJQUkVNSVNFX1JVTEVfTkFNRSIsInZhcmlhYmxlUGxhY2Vob2xkZXJSdWxlIiwiVkFSSUFCTEVfUlVMRV9OQU1FIiwiZXF1YWxpdHlQbGFjZWhvbGRlclJ1bGUiLCJFUVVBTElUWV9SVUxFX05BTUUiLCJwcm9wZXJ0eVBsYWNlaG9sZGVyUnVsZSIsIlBST1BFUlRZX1JVTEVfTkFNRSIsImp1ZGdlbWVudFBsYWNlaG9sZGVyUnVsZSIsIkpVREdFTUVOVF9SVUxFX05BTUUiLCJnZW5lcmF0b3JQbGFjZWhvbGRlclJ1bGUiLCJHRU5FUkFUT1JfUlVMRV9OQU1FIiwiZGVkdWN0aW9uUGxhY2Vob2xkZXJSdWxlIiwiREVEVUNUSU9OX1JVTEVfTkFNRSIsInBhcmFtZXRlclBsYWNlaG9sZGVyUnVsZSIsIlBBUkFNRVRFUl9SVUxFX05BTUUiLCJzdGF0ZW1lbnRQbGFjZWhvbGRlclJ1bGUiLCJTVEFURU1FTlRfUlVMRV9OQU1FIiwicmVmZXJlbmNlUGxhY2Vob2xkZXJSdWxlIiwiUkVGRVJFTkNFX1JVTEVfTkFNRSIsInNpZ25hdHVyZVBsYWNlaG9sZGVyUnVsZSIsIlNJR05BVFVSRV9SVUxFX05BTUUiLCJjb25zdHJhaW50UGxhY2Vob2xkZXJSdWxlIiwiQ09OU1RSQUlOVF9SVUxFX05BTUUiLCJjb21iaW5hdG9yUGxhY2Vob2xkZXJSdWxlIiwiQ09NQklOQVRPUl9SVUxFX05BTUUiLCJjb25jbHVzaW9uUGxhY2Vob2xkZXJSdWxlIiwiQ09OQ0xVU0lPTl9SVUxFX05BTUUiLCJoeXBvdGhlc2lzUGxhY2Vob2xkZXJSdWxlIiwiSFlQT1RIRVNJU19SVUxFX05BTUUiLCJ0eXBlUHJlZml4UGxhY2Vob2xkZXJSdWxlIiwiVFlQRV9QUkVGSVhfUlVMRV9OQU1FIiwic3VwcG9zaXRpb25QbGFjZWhvbGRlclJ1bGUiLCJTVVBQT1NJVElPTl9SVUxFX05BTUUiLCJjb25zdHJ1Y3RvclBsYWNlaG9sZGVyUnVsZSIsIkNPTlNUUlVDVE9SX1JVTEVfTkFNRSIsImVxdWl2YWxlbmNlUGxhY2Vob2xkZXJSdWxlIiwiRVFVSVZBTEVOQ0VfUlVMRV9OQU1FIiwibWV0YXZhcmlhYmxlUGxhY2Vob2xkZXJSdWxlIiwiTUVUQVZBUklBQkxFX1JVTEVfTkFNRSIsInR5cGVBc3NlcnRpb25QbGFjZWhvbGRlclJ1bGUiLCJUWVBFX0FTU0VSVElPTl9SVUxFX05BTUUiLCJkZWZpbmVkQXNzZXJ0aW9uUGxhY2Vob2xkZXJSdWxlIiwiREVGSU5FRF9BU1NFUlRJT05fUlVMRV9OQU1FIiwidGVybVN1YnN0aXR1dGlvblBsYWNlaG9sZGVyUnVsZSIsIlRFUk1fU1VCU1RJVFVUSU9OX1JVTEVfTkFNRSIsInN1YnByb29mQXNzZXJ0aW9ubGFjZWhvbGRlclJ1bGUiLCJTVUJQUk9PRl9BU1NFUlRJT05fUlVMRV9OQU1FIiwicHJvcGVydHlBc3NlcnRpb25QbGFjZWhvbGRlclJ1bGUiLCJQUk9QRVJUWV9BU1NFUlRJT05fUlVMRV9OQU1FIiwiZnJhbWVTdWJzdGl0dXRpb25QbGFjZWhvbGRlclJ1bGUiLCJGUkFNRV9TVUJTVElUVVRJT05fUlVMRV9OQU1FIiwicHJvY2VkdXJlUmVmZXJlbmNlbGFjZWhvbGRlclJ1bGUiLCJQUk9DRURVUkVfUkVGRVJFTkNFX1JVTEVfTkFNRSIsImNvbnRhaW5lZEFzc2VydGlvblBsYWNlaG9sZGVyUnVsZSIsIkNPTlRBSU5FRF9BU1NFUlRJT05fUlVMRV9OQU1FIiwic2lnbmF0dXJlQXNzZXJ0aW9uUGxhY2Vob2xkZXJSdWxlIiwiU0lHTkFUVVJFX0FTU0VSVElPTl9SVUxFX05BTUUiLCJpbXBsaWNpdEFzc3VtcHRpb25QbGFjZWhvbGRlclJ1bGUiLCJJTVBMSUNJVF9BU1NVTVBUSU9OX1JVTEVfTkFNRSIsInN0YXRlbWVudFN1YnN0aXR1dGlvblBsYWNlaG9sZGVyUnVsZSIsIlNUQVRFTUVOVF9TVUJTVElUVVRJT05fUlVMRV9OQU1FIiwicmVmZXJlbmNlU3Vic3RpdHV0aW9uUGxhY2Vob2xkZXJSdWxlIiwiUkVGRVJFTkNFX1NVQlNUSVRVVElPTl9SVUxFX05BTUUiLCJzdHJpbmciLCJjb250ZXh0Il0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7UUFzSWdCQTtlQUFBQTs7UUF4Q0FDO2VBQUFBOztRQTRDQUM7ZUFBQUE7O1FBSUFDO2VBQUFBOztRQW9CQUM7ZUFBQUE7O1FBM0VBQztlQUFBQTs7UUErREFDO2VBQUFBOztRQWhDQUM7ZUFBQUE7O1FBMEJBQztlQUFBQTs7UUFoQ0FDO2VBQUFBOztRQThDQUM7ZUFBQUE7O1FBcENBQztlQUFBQTs7UUFjQUM7ZUFBQUE7O1FBOEJBQztlQUFBQTs7UUExQ0FDO2VBQUFBOztRQVZBQztlQUFBQTs7UUFnQ0FDO2VBQUFBOztRQXBCQUM7ZUFBQUE7O1FBOUNBQztlQUFBQTs7UUFnRkFDO2VBQUFBOztRQXhDQUM7ZUFBQUE7O1FBb0NBQztlQUFBQTs7UUExQkFDO2VBQUFBOztRQXdDQUM7ZUFBQUE7O1FBdENBQztlQUFBQTs7UUFnQ0FDO2VBQUFBOztRQXBDQUM7ZUFBQUE7O1FBd0NBQztlQUFBQTs7UUFkQUM7ZUFBQUE7O1FBckRBQztlQUFBQTs7UUFPQUM7ZUFBQUE7O1FBNENBQztlQUFBQTs7UUExQ0FDO2VBQUFBOztRQXNDQUM7ZUFBQUE7O1FBUkFDO2VBQUFBOztRQXhCQUM7ZUFBQUE7OztnQ0FsSGE7MkJBcUNvQjtBQUVqRCxNQUFNLEVB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
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "occam-nominal",
3
3
  "author": "James Smith",
4
- "version": "1.0.286",
4
+ "version": "1.0.287",
5
5
  "license": "MIT, Anti-996",
6
6
  "homepage": "https://github.com/djalbat/occam-nominal",
7
7
  "description": "Occam's Nominal language.",
@@ -11,9 +11,9 @@
11
11
  },
12
12
  "dependencies": {
13
13
  "necessary": "^17.5.2",
14
- "occam-furtle": "^3.0.370",
14
+ "occam-furtle": "^3.0.371",
15
15
  "occam-grammar-utilities": "^8.1.17",
16
- "occam-languages": "^1.0.28",
16
+ "occam-languages": "^1.0.30",
17
17
  "occam-query": "^4.1.198"
18
18
  },
19
19
  "devDependencies": {
@@ -39,7 +39,7 @@ import { TERM_RULE_NAME,
39
39
  STATEMENT_SUBSTITUTION_RULE_NAME,
40
40
  REFERENCE_SUBSTITUTION_RULE_NAME } from "../ruleNames";
41
41
 
42
- const { ruleFromRuleName } = bnfUtilities;
42
+ const { instantiate, ruleFromRuleName } = bnfUtilities;
43
43
 
44
44
  const termPlaceholderRule = ruleFromRuleName(TERM_RULE_NAME),
45
45
  typePlaceholderRule = ruleFromRuleName(TYPE_RULE_NAME),
@@ -169,29 +169,3 @@ export function instantiateImplicitAssumption(string, context) { return instanti
169
169
  export function instantiateStatementSubstitution(string, context) { return instantiate(statementSubstitutionPlaceholderRule, string, context); }
170
170
 
171
171
  export function instantiateReferenceSubstitution(string, context) { return instantiate(referenceSubstitutionPlaceholderRule, string, context); }
172
-
173
- function instantiate(placeholderRule, string, context) {
174
- let node;
175
-
176
- const lexer = context.getLexer(),
177
- parser = context.getParser(),
178
- content = `${string}
179
- `,
180
- tokens = lexer.tokenise(content);
181
-
182
- context.setTokens(tokens);
183
-
184
- const startRule = placeholderRule; ///
185
-
186
- node = parser.parse(tokens, startRule);
187
-
188
- const nonTerminalNode = node; ///
189
-
190
- nonTerminalNode.someChildNode((childNode) => {
191
- node = childNode; ///
192
-
193
- return true;
194
- });
195
-
196
- return node;
197
- }