occam-nominal 1.0.309 → 1.0.310

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 (37) hide show
  1. package/lib/context/file/nominal.js +2 -2
  2. package/lib/element/assertion/subproof.js +4 -4
  3. package/lib/element/derivation.js +3 -3
  4. package/lib/element/frame.js +3 -3
  5. package/lib/element/procedureCall.js +25 -25
  6. package/lib/element/proofAssertion/premise.js +26 -19
  7. package/lib/element/proofAssertion/step.js +4 -4
  8. package/lib/element/proofAssertion/supposition.js +4 -5
  9. package/lib/element/rule.js +12 -12
  10. package/lib/element/subDerivation.js +3 -3
  11. package/lib/element/subproof.js +5 -5
  12. package/lib/element/topLevelAssertion.js +5 -5
  13. package/lib/pass/continuationZip.js +2 -2
  14. package/lib/process/unify.js +9 -9
  15. package/lib/process/validate.js +9 -9
  16. package/lib/process/validation.js +4 -4
  17. package/lib/process/verify.js +18 -18
  18. package/lib/utilities/continuation.js +5 -5
  19. package/package.json +3 -3
  20. package/src/context/file/nominal.js +1 -1
  21. package/src/element/assertion/subproof.js +3 -3
  22. package/src/element/derivation.js +2 -2
  23. package/src/element/frame.js +2 -2
  24. package/src/element/procedureCall.js +28 -29
  25. package/src/element/proofAssertion/premise.js +32 -23
  26. package/src/element/proofAssertion/step.js +3 -3
  27. package/src/element/proofAssertion/supposition.js +5 -5
  28. package/src/element/rule.js +11 -11
  29. package/src/element/subDerivation.js +2 -2
  30. package/src/element/subproof.js +4 -4
  31. package/src/element/topLevelAssertion.js +4 -4
  32. package/src/pass/continuationZip.js +1 -1
  33. package/src/process/unify.js +8 -8
  34. package/src/process/validate.js +8 -8
  35. package/src/process/validation.js +3 -3
  36. package/src/process/verify.js +17 -17
  37. package/src/utilities/continuation.js +4 -4
@@ -19,112 +19,112 @@ class TopLevelPass extends _occamlanguages.ContinuationPass {
19
19
  nodeQuery: errorNodeQuery,
20
20
  run: (errorNode, context, continuation)=>{
21
21
  const error = (0, _element.errorFromErrorNode)(errorNode, context);
22
- error.verify(context, continuation);
22
+ return error.verify(context, continuation);
23
23
  }
24
24
  },
25
25
  {
26
26
  nodeQuery: ruleNodeQuery,
27
27
  run: (ruleNode, context, continuation)=>{
28
28
  const rule = (0, _element.ruleFromRuleNode)(ruleNode, context);
29
- rule.verify(context, continuation);
29
+ return rule.verify(context, continuation);
30
30
  }
31
31
  },
32
32
  {
33
33
  nodeQuery: axiomNodeQuery,
34
34
  run: (axiomNode, context, continuation)=>{
35
35
  const axiom = (0, _element.axiomFromAxiomNode)(axiomNode, context);
36
- axiom.verify(context, continuation);
36
+ return axiom.verify(context, continuation);
37
37
  }
38
38
  },
39
39
  {
40
40
  nodeQuery: lemmaNodeQuery,
41
41
  run: (lemmaNode, context, continuation)=>{
42
42
  const lemma = (0, _element.lemmaFromLemmaNode)(lemmaNode, context);
43
- lemma.verify(context, continuation);
43
+ return lemma.verify(context, continuation);
44
44
  }
45
45
  },
46
46
  {
47
47
  nodeQuery: schemaNodeQuery,
48
48
  run: (schemaNode, context, continuation)=>{
49
49
  const schema = (0, _element.schemaFromSchemaNode)(schemaNode, context);
50
- schema.verify(context, continuation);
50
+ return schema.verify(context, continuation);
51
51
  }
52
52
  },
53
53
  {
54
54
  nodeQuery: sectionNodeQuery,
55
55
  run: (sectionNode, context, continuation)=>{
56
56
  const section = (0, _element.sectionFromSectionNode)(sectionNode, context);
57
- section.verify(context, continuation);
57
+ return section.verify(context, continuation);
58
58
  }
59
59
  },
60
60
  {
61
61
  nodeQuery: theoremNodeQuery,
62
62
  run: (theoremNode, context, continuation)=>{
63
63
  const theorem = (0, _element.theoremFromTheoremNode)(theoremNode, context);
64
- theorem.verify(context, continuation);
64
+ return theorem.verify(context, continuation);
65
65
  }
66
66
  },
67
67
  {
68
68
  nodeQuery: conjectureNodeQuery,
69
69
  run: (conjectureNode, context, continuation)=>{
70
70
  const conjecture = (0, _element.conjectureFromConjectureNode)(conjectureNode, context);
71
- conjecture.verify(context, continuation);
71
+ return conjecture.verify(context, continuation);
72
72
  }
73
73
  },
74
74
  {
75
75
  nodeQuery: typeDeclarationNodeQuery,
76
76
  run: (typeDeclarationNode, context, continuation)=>{
77
77
  const typeDeclaration = (0, _element.typeDeclarationFromTypeDeclarationNode)(typeDeclarationNode, context);
78
- typeDeclaration.verify(context, continuation);
78
+ return typeDeclaration.verify(context, continuation);
79
79
  }
80
80
  },
81
81
  {
82
82
  nodeQuery: cotypeDeclarationNodeQuery,
83
83
  run: (cotypeDeclarationNode, context, continuation)=>{
84
84
  const cotypeDeclaration = (0, _element.cotypeDeclarationFromCotypeDeclarationNode)(cotypeDeclarationNode, context);
85
- cotypeDeclaration.verify(context, continuation);
85
+ return cotypeDeclaration.verify(context, continuation);
86
86
  }
87
87
  },
88
88
  {
89
89
  nodeQuery: variableDeclarationNodeQuery,
90
90
  run: (variableDeclarationNode, context, continuation)=>{
91
91
  const variableDeclaration = (0, _element.variableDeclarationFromVariableDeclarationNode)(variableDeclarationNode, context);
92
- variableDeclaration.verify(context, continuation);
92
+ return variableDeclaration.verify(context, continuation);
93
93
  }
94
94
  },
95
95
  {
96
96
  nodeQuery: generatorDeclarationNodeQuery,
97
97
  run: (generatorDeclarationNode, context, continuation)=>{
98
98
  const generatorDeclaration = (0, _element.generatorDeclarationFromGeneratorDeclarationNode)(generatorDeclarationNode, context);
99
- generatorDeclaration.verify(context, continuation);
99
+ return generatorDeclaration.verify(context, continuation);
100
100
  }
101
101
  },
102
102
  {
103
103
  nodeQuery: typePrefixDeclarationNodeQuery,
104
104
  run: (typePrefixDeclarationNode, context, continuation)=>{
105
105
  const typePrefixDeclaration = (0, _element.typePrefixDeclarationFromTypePrefixDeclarationNode)(typePrefixDeclarationNode, context);
106
- typePrefixDeclaration.verify(context, continuation);
106
+ return typePrefixDeclaration.verify(context, continuation);
107
107
  }
108
108
  },
109
109
  {
110
110
  nodeQuery: combinatorDeclarationNodeQuery,
111
111
  run: (combinatorDeclarationNode, context, continuation)=>{
112
112
  const combinatorDeclaration = (0, _element.combinatorDeclarationFromCombinatorDeclarationNode)(combinatorDeclarationNode, context);
113
- combinatorDeclaration.verify(context, continuation);
113
+ return combinatorDeclaration.verify(context, continuation);
114
114
  }
115
115
  },
116
116
  {
117
117
  nodeQuery: constructorDeclarationNodeQuery,
118
118
  run: (constructorDeclarationNode, context, continuation)=>{
119
119
  const constructorDeclaration = (0, _element.constructorDeclarationFromConstructorDeclarationNode)(constructorDeclarationNode, context);
120
- constructorDeclaration.verify(context, continuation);
120
+ return constructorDeclaration.verify(context, continuation);
121
121
  }
122
122
  },
123
123
  {
124
124
  nodeQuery: metavariableDeclarationNodeQuery,
125
125
  run: (metavariableDeclarationNode, context, continuation)=>{
126
126
  const metavariableDeclaration = (0, _element.metavariableDeclarationFromMetavariableDeclarationNode)(metavariableDeclarationNode, context);
127
- metavariableDeclaration.verify(context, continuation);
127
+ return metavariableDeclaration.verify(context, continuation);
128
128
  }
129
129
  }
130
130
  ];
@@ -132,7 +132,7 @@ class TopLevelPass extends _occamlanguages.ContinuationPass {
132
132
  const topLevelPass = new TopLevelPass();
133
133
  function verifyFile(fileNode, context, continuation) {
134
134
  const node = fileNode; ///
135
- topLevelPass.run(node, context, continuation);
135
+ return topLevelPass.run(node, context, continuation);
136
136
  }
137
137
 
138
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm9jZXNzL3ZlcmlmeS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgcXVlcnlVdGlsaXRpZXMgfSBmcm9tIFwib2NjYW0tcXVlcnlcIlxuaW1wb3J0IHsgQ29udGludWF0aW9uUGFzcyB9IGZyb20gXCJvY2NhbS1sYW5ndWFnZXNcIjtcblxuaW1wb3J0IHsgcnVsZUZyb21SdWxlTm9kZSxcbiAgICAgICAgIGVycm9yRnJvbUVycm9yTm9kZSxcbiAgICAgICAgIGF4aW9tRnJvbUF4aW9tTm9kZSxcbiAgICAgICAgIGxlbW1hRnJvbUxlbW1hTm9kZSxcbiAgICAgICAgIHNjaGVtYUZyb21TY2hlbWFOb2RlLFxuICAgICAgICAgc2VjdGlvbkZyb21TZWN0aW9uTm9kZSxcbiAgICAgICAgIHRoZW9yZW1Gcm9tVGhlb3JlbU5vZGUsXG4gICAgICAgICBjb25qZWN0dXJlRnJvbUNvbmplY3R1cmVOb2RlLFxuICAgICAgICAgdHlwZURlY2xhcmF0aW9uRnJvbVR5cGVEZWNsYXJhdGlvbk5vZGUsXG4gICAgICAgICBjb3R5cGVEZWNsYXJhdGlvbkZyb21Db3R5cGVEZWNsYXJhdGlvbk5vZGUsXG4gICAgICAgICB2YXJpYWJsZURlY2xhcmF0aW9uRnJvbVZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlLFxuICAgICAgICAgZ2VuZXJhdG9yRGVjbGFyYXRpb25Gcm9tR2VuZXJhdG9yRGVjbGFyYXRpb25Ob2RlLFxuICAgICAgICAgdHlwZVByZWZpeERlY2xhcmF0aW9uRnJvbVR5cGVQcmVmaXhEZWNsYXJhdGlvbk5vZGUsXG4gICAgICAgICBjb21iaW5hdG9yRGVjbGFyYXRpb25Gcm9tQ29tYmluYXRvckRlY2xhcmF0aW9uTm9kZSxcbiAgICAgICAgIGNvbnN0cnVjdG9yRGVjbGFyYXRpb25Gcm9tQ29uc3RydWN0b3JEZWNsYXJhdGlvbk5vZGUsXG4gICAgICAgICBtZXRhdmFyaWFibGVEZWNsYXJhdGlvbkZyb21NZXRhdmFyaWFibGVEZWNsYXJhdGlvbk5vZGUgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2VsZW1lbnRcIjtcblxuY29uc3QgeyBub2RlUXVlcnkgfSA9IHF1ZXJ5VXRpbGl0aWVzO1xuXG5jb25zdCBydWxlTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3J1bGVcIiksXG4gICAgICBlcnJvck5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9lcnJvclwiKSxcbiAgICAgIGF4aW9tTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL2F4aW9tXCIpLFxuICAgICAgbGVtbWFOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvbGVtbWFcIiksXG4gICAgICBzY2hlbWFOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvc2NoZW1hXCIpLFxuICAgICAgc2VjdGlvbk5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9zZWN0aW9uXCIpLFxuICAgICAgdGhlb3JlbU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi90aGVvcmVtXCIpLFxuICAgICAgY29uamVjdHVyZU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9jb25qZWN0dXJlXCIpLFxuICAgICAgdHlwZURlY2xhcmF0aW9uTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3R5cGVEZWNsYXJhdGlvblwiKSxcbiAgICAgIGNvdHlwZURlY2xhcmF0aW9uTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL2NvdHlwZURlY2xhcmF0aW9uXCIpLFxuICAgICAgdmFyaWFibGVEZWNsYXJhdGlvbk5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi92YXJpYWJsZURlY2xhcmF0aW9uXCIpLFxuICAgICAgZ2VuZXJhdG9yRGVjbGFyYXRpb25Ob2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvZ2VuZXJhdG9yRGVjbGFyYXRpb25cIiksXG4gICAgICBjb21iaW5hdG9yRGVjbGFyYXRpb25Ob2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvY29tYmluYXRvckRlY2xhcmF0aW9uXCIpLFxuICAgICAgdHlwZVByZWZpeERlY2xhcmF0aW9uTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3R5cGVQcmVmaXhEZWNsYXJhdGlvblwiKSxcbiAgICAgIGNvbnN0cnVjdG9yRGVjbGFyYXRpb25Ob2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvY29uc3RydWN0b3JEZWNsYXJhdGlvblwiKSxcbiAgICAgIG1ldGF2YXJpYWJsZURlY2xhcmF0aW9uTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL21ldGF2YXJpYWJsZURlY2xhcmF0aW9uXCIpO1xuXG5jbGFzcyBUb3BMZXZlbFBhc3MgZXh0ZW5kcyBDb250aW51YXRpb25QYXNzIHtcbiAgc3RhdGljIG1hcHMgPSBbXG4gICAge1xuICAgICAgbm9kZVF1ZXJ5OiBlcnJvck5vZGVRdWVyeSxcbiAgICAgIHJ1bjogKGVycm9yTm9kZSwgY29udGV4dCwgY29udGludWF0aW9uKSA9PiB7XG4gICAgICAgIGNvbnN0IGVycm9yID0gZXJyb3JGcm9tRXJyb3JOb2RlKGVycm9yTm9kZSwgY29udGV4dCk7XG5cbiAgICAgICAgZXJyb3IudmVyaWZ5KGNvbnRleHQsIGNvbnRpbnVhdGlvbik7XG4gICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICBub2RlUXVlcnk6IHJ1bGVOb2RlUXVlcnksXG4gICAgICBydW46IChydWxlTm9kZSwgY29udGV4dCwgY29udGludWF0aW9uKSA9PiB7XG4gICAgICAgIGNvbnN0IHJ1bGUgPSBydWxlRnJvbVJ1bGVOb2RlKHJ1bGVOb2RlLCBjb250ZXh0KTtcblxuICAgICAgICBydWxlLnZlcmlmeShjb250ZXh0LCBjb250aW51YXRpb24pO1xuICAgICAgfVxuICAgIH0sXG4gICAge1xuICAgICAgbm9kZVF1ZXJ5OiBheGlvbU5vZGVRdWVyeSxcbiAgICAgIHJ1bjogKGF4aW9tTm9kZSwgY29udGV4dCwgY29udGludWF0aW9uKSA9PiB7XG4gICAgICAgIGNvbnN0IGF4aW9tID0gYXhpb21Gcm9tQXhpb21Ob2RlKGF4aW9tTm9kZSwgY29udGV4dCk7XG5cbiAgICAgICAgYXhpb20udmVyaWZ5KGNvbnRleHQsIGNvbnRpbnVhdGlvbik7XG4gICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICBub2RlUXVlcnk6IGxlbW1hTm9kZVF1ZXJ5LFxuICAgICAgcnVuOiAobGVtbWFOb2RlLCBjb250ZXh0LCBjb250aW51YXRpb24pID0+IHtcbiAgICAgICAgY29uc3QgbGVtbWEgPSBsZW1tYUZyb21MZW1tYU5vZGUobGVtbWFOb2RlLCBjb250ZXh0KTtcblxuICAgICAgICBsZW1tYS52ZXJpZnkoY29udGV4dCwgY29udGludWF0aW9uKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIHtcbiAgICAgIG5vZGVRdWVyeTogc2NoZW1hTm9kZVF1ZXJ5LFxuICAgICAgcnVuOiAoc2NoZW1hTm9kZSwgY29udGV4dCwgY29udGludWF0aW9uKSA9PiB7XG4gICAgICAgIGNvbnN0IHNjaGVtYSA9IHNjaGVtYUZyb21TY2hlbWFOb2RlKHNjaGVtYU5vZGUsIGNvbnRleHQpO1xuXG4gICAgICAgIHNjaGVtYS52ZXJpZnkoY29udGV4dCwgY29udGludWF0aW9uKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIHtcbiAgICAgIG5vZGVRdWVyeTogc2VjdGlvbk5vZGVRdWVyeSxcbiAgICAgIHJ1bjogKHNlY3Rpb25Ob2RlLCBjb250ZXh0LCBjb250aW51YXRpb24pID0+IHtcbiAgICAgICAgY29uc3Qgc2VjdGlvbiA9IHNlY3Rpb25Gcm9tU2VjdGlvbk5vZGUoc2VjdGlvbk5vZGUsIGNvbnRleHQpO1xuXG4gICAgICAgIHNlY3Rpb24udmVyaWZ5KGNvbnRleHQsIGNvbnRpbnVhdGlvbik7XG4gICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICBub2RlUXVlcnk6IHRoZW9yZW1Ob2RlUXVlcnksXG4gICAgICBydW46ICh0aGVvcmVtTm9kZSwgY29udGV4dCwgY29udGludWF0aW9uKSA9PiB7XG4gICAgICAgIGNvbnN0IHRoZW9yZW0gPSB0aGVvcmVtRnJvbVRoZW9yZW1Ob2RlKHRoZW9yZW1Ob2RlLCBjb250ZXh0KTtcblxuICAgICAgICB0aGVvcmVtLnZlcmlmeShjb250ZXh0LCBjb250aW51YXRpb24pO1xuICAgICAgfVxuICAgIH0sXG4gICAge1xuICAgICAgbm9kZVF1ZXJ5OiBjb25qZWN0dXJlTm9kZVF1ZXJ5LFxuICAgICAgcnVuOiAoY29uamVjdHVyZU5vZGUsIGNvbnRleHQsIGNvbnRpbnVhdGlvbikgPT4ge1xuICAgICAgICBjb25zdCBjb25qZWN0dXJlID0gY29uamVjdHVyZUZyb21Db25qZWN0dXJlTm9kZShjb25qZWN0dXJlTm9kZSwgY29udGV4dCk7XG5cbiAgICAgICAgY29uamVjdHVyZS52ZXJpZnkoY29udGV4dCwgY29udGludWF0aW9uKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIHtcbiAgICAgIG5vZGVRdWVyeTogdHlwZURlY2xhcmF0aW9uTm9kZVF1ZXJ5LFxuICAgICAgcnVuOiAodHlwZURlY2xhcmF0aW9uTm9kZSwgY29udGV4dCwgY29udGludWF0aW9uKSA9PiB7XG4gICAgICAgIGNvbnN0IHR5cGVEZWNsYXJhdGlvbiA9IHR5cGVEZWNsYXJhdGlvbkZyb21UeXBlRGVjbGFyYXRpb25Ob2RlKHR5cGVEZWNsYXJhdGlvbk5vZGUsIGNvbnRleHQpO1xuXG4gICAgICAgIHR5cGVEZWNsYXJhdGlvbi52ZXJpZnkoY29udGV4dCwgY29udGludWF0aW9uKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIHtcbiAgICAgIG5vZGVRdWVyeTogY290eXBlRGVjbGFyYXRpb25Ob2RlUXVlcnksXG4gICAgICBydW46IChjb3R5cGVEZWNsYXJhdGlvbk5vZGUsIGNvbnRleHQsIGNvbnRpbnVhdGlvbikgPT4ge1xuICAgICAgICBjb25zdCBjb3R5cGVEZWNsYXJhdGlvbiA9IGNvdHlwZURlY2xhcmF0aW9uRnJvbUNvdHlwZURlY2xhcmF0aW9uTm9kZShjb3R5cGVEZWNsYXJhdGlvbk5vZGUsIGNvbnRleHQpO1xuXG4gICAgICAgIGNvdHlwZURlY2xhcmF0aW9uLnZlcmlmeShjb250ZXh0LCBjb250aW51YXRpb24pO1xuICAgICAgfVxuICAgIH0sXG4gICAge1xuICAgICAgbm9kZVF1ZXJ5OiB2YXJpYWJsZURlY2xhcmF0aW9uTm9kZVF1ZXJ5LFxuICAgICAgcnVuOiAodmFyaWFibGVEZWNsYXJhdGlvbk5vZGUsIGNvbnRleHQsIGNvbnRpbnVhdGlvbikgPT4ge1xuICAgICAgICBjb25zdCB2YXJpYWJsZURlY2xhcmF0aW9uID0gdmFyaWFibGVEZWNsYXJhdGlvbkZyb21WYXJpYWJsZURlY2xhcmF0aW9uTm9kZSh2YXJpYWJsZURlY2xhcmF0aW9uTm9kZSwgY29udGV4dCk7XG5cbiAgICAgICAgdmFyaWFibGVEZWNsYXJhdGlvbi52ZXJpZnkoY29udGV4dCwgY29udGludWF0aW9uKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIHtcbiAgICAgIG5vZGVRdWVyeTogZ2VuZXJhdG9yRGVjbGFyYXRpb25Ob2RlUXVlcnksXG4gICAgICBydW46IChnZW5lcmF0b3JEZWNsYXJhdGlvbk5vZGUsIGNvbnRleHQsIGNvbnRpbnVhdGlvbikgPT4ge1xuICAgICAgICBjb25zdCBnZW5lcmF0b3JEZWNsYXJhdGlvbiA9IGdlbmVyYXRvckRlY2xhcmF0aW9uRnJvbUdlbmVyYXRvckRlY2xhcmF0aW9uTm9kZShnZW5lcmF0b3JEZWNsYXJhdGlvbk5vZGUsIGNvbnRleHQpO1xuXG4gICAgICAgIGdlbmVyYXRvckRlY2xhcmF0aW9uLnZlcmlmeShjb250ZXh0LCBjb250aW51YXRpb24pO1xuICAgICAgfVxuICAgIH0sXG4gICAge1xuICAgICAgbm9kZVF1ZXJ5OiB0eXBlUHJlZml4RGVjbGFyYXRpb25Ob2RlUXVlcnksXG4gICAgICBydW46ICh0eXBlUHJlZml4RGVjbGFyYXRpb25Ob2RlLCBjb250ZXh0LCBjb250aW51YXRpb24pID0+IHtcbiAgICAgICAgY29uc3QgdHlwZVByZWZpeERlY2xhcmF0aW9uID0gdHlwZVByZWZpeERlY2xhcmF0aW9uRnJvbVR5cGVQcmVmaXhEZWNsYXJhdGlvbk5vZGUodHlwZVByZWZpeERlY2xhcmF0aW9uTm9kZSwgY29udGV4dCk7XG5cbiAgICAgICAgdHlwZVByZWZpeERlY2xhcmF0aW9uLnZlcmlmeShjb250ZXh0LCBjb250aW51YXRpb24pO1xuICAgICAgfVxuICAgIH0sXG4gICAge1xuICAgICAgbm9kZVF1ZXJ5OiBjb21iaW5hdG9yRGVjbGFyYXRpb25Ob2RlUXVlcnksXG4gICAgICBydW46IChjb21iaW5hdG9yRGVjbGFyYXRpb25Ob2RlLCBjb250ZXh0LCBjb250aW51YXRpb24pID0+IHtcbiAgICAgICAgY29uc3QgY29tYmluYXRvckRlY2xhcmF0aW9uID0gY29tYmluYXRvckRlY2xhcmF0aW9uRnJvbUNvbWJpbmF0b3JEZWNsYXJhdGlvbk5vZGUoY29tYmluYXRvckRlY2xhcmF0aW9uTm9kZSwgY29udGV4dCk7XG5cbiAgICAgICAgY29tYmluYXRvckRlY2xhcmF0aW9uLnZlcmlmeShjb250ZXh0LCBjb250aW51YXRpb24pO1xuICAgICAgfVxuICAgIH0sXG4gICAge1xuICAgICAgbm9kZVF1ZXJ5OiBjb25zdHJ1Y3RvckRlY2xhcmF0aW9uTm9kZVF1ZXJ5LFxuICAgICAgcnVuOiAoY29uc3RydWN0b3JEZWNsYXJhdGlvbk5vZGUsIGNvbnRleHQsIGNvbnRpbnVhdGlvbikgPT4ge1xuICAgICAgICBjb25zdCBjb25zdHJ1Y3RvckRlY2xhcmF0aW9uID0gY29uc3RydWN0b3JEZWNsYXJhdGlvbkZyb21Db25zdHJ1Y3RvckRlY2xhcmF0aW9uTm9kZShjb25zdHJ1Y3RvckRlY2xhcmF0aW9uTm9kZSwgY29udGV4dCk7XG5cbiAgICAgICAgY29uc3RydWN0b3JEZWNsYXJhdGlvbi52ZXJpZnkoY29udGV4dCwgY29udGludWF0aW9uKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIHtcbiAgICAgIG5vZGVRdWVyeTogbWV0YXZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlUXVlcnksXG4gICAgICBydW46IChtZXRhdmFyaWFibGVEZWNsYXJhdGlvbk5vZGUsIGNvbnRleHQsIGNvbnRpbnVhdGlvbikgPT4ge1xuICAgICAgICBjb25zdCBtZXRhdmFyaWFibGVEZWNsYXJhdGlvbiA9IG1ldGF2YXJpYWJsZURlY2xhcmF0aW9uRnJvbU1ldGF2YXJpYWJsZURlY2xhcmF0aW9uTm9kZShtZXRhdmFyaWFibGVEZWNsYXJhdGlvbk5vZGUsIGNvbnRleHQpO1xuXG4gICAgICAgIG1ldGF2YXJpYWJsZURlY2xhcmF0aW9uLnZlcmlmeShjb250ZXh0LCBjb250aW51YXRpb24pO1xuICAgICAgfVxuICAgIH1cbiAgXTtcbn1cblxuY29uc3QgdG9wTGV2ZWxQYXNzID0gbmV3IFRvcExldmVsUGFzcygpO1xuXG5leHBvcnQgZnVuY3Rpb24gdmVyaWZ5RmlsZShmaWxlTm9kZSwgY29udGV4dCwgY29udGludWF0aW9uKSB7XG4gIGNvbnN0IG5vZGUgPSBmaWxlTm9kZTsgLy8vXG5cbiAgdG9wTGV2ZWxQYXNzLnJ1bihub2RlLCBjb250ZXh0LCBjb250aW51YXRpb24pO1xufVxuIl0sIm5hbWVzIjpbInZlcmlmeUZpbGUiLCJub2RlUXVlcnkiLCJxdWVyeVV0aWxpdGllcyIsInJ1bGVOb2RlUXVlcnkiLCJlcnJvck5vZGVRdWVyeSIsImF4aW9tTm9kZVF1ZXJ5IiwibGVtbWFOb2RlUXVlcnkiLCJzY2hlbWFOb2RlUXVlcnkiLCJzZWN0aW9uTm9kZVF1ZXJ5IiwidGhlb3JlbU5vZGVRdWVyeSIsImNvbmplY3R1cmVOb2RlUXVlcnkiLCJ0eXBlRGVjbGFyYXRpb25Ob2RlUXVlcnkiLCJjb3R5cGVEZWNsYXJhdGlvbk5vZGVRdWVyeSIsInZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlUXVlcnkiLCJnZW5lcmF0b3JEZWNsYXJhdGlvbk5vZGVRdWVyeSIsImNvbWJpbmF0b3JEZWNsYXJhdGlvbk5vZGVRdWVyeSIsInR5cGVQcmVmaXhEZWNsYXJhdGlvbk5vZGVRdWVyeSIsImNvbnN0cnVjdG9yRGVjbGFyYXRpb25Ob2RlUXVlcnkiLCJtZXRhdmFyaWFibGVEZWNsYXJhdGlvbk5vZGVRdWVyeSIsIlRvcExldmVsUGFzcyIsIkNvbnRpbnVhdGlvblBhc3MiLCJtYXBzIiwicnVuIiwiZXJyb3JOb2RlIiwiY29udGV4dCIsImNvbnRpbnVhdGlvbiIsImVycm9yIiwiZXJyb3JGcm9tRXJyb3JOb2RlIiwidmVyaWZ5IiwicnVsZU5vZGUiLCJydWxlIiwicnVsZUZyb21SdWxlTm9kZSIsImF4aW9tTm9kZSIsImF4aW9tIiwiYXhpb21Gcm9tQXhpb21Ob2RlIiwibGVtbWFOb2RlIiwibGVtbWEiLCJsZW1tYUZyb21MZW1tYU5vZGUiLCJzY2hlbWFOb2RlIiwic2NoZW1hIiwic2NoZW1hRnJvbVNjaGVtYU5vZGUiLCJzZWN0aW9uTm9kZSIsInNlY3Rpb24iLCJzZWN0aW9uRnJvbVNlY3Rpb25Ob2RlIiwidGhlb3JlbU5vZGUiLCJ0aGVvcmVtIiwidGhlb3JlbUZyb21UaGVvcmVtTm9kZSIsImNvbmplY3R1cmVOb2RlIiwiY29uamVjdHVyZSIsImNvbmplY3R1cmVGcm9tQ29uamVjdHVyZU5vZGUiLCJ0eXBlRGVjbGFyYXRpb25Ob2RlIiwidHlwZURlY2xhcmF0aW9uIiwidHlwZURlY2xhcmF0aW9uRnJvbVR5cGVEZWNsYXJhdGlvbk5vZGUiLCJjb3R5cGVEZWNsYXJhdGlvbk5vZGUiLCJjb3R5cGVEZWNsYXJhdGlvbiIsImNvdHlwZURlY2xhcmF0aW9uRnJvbUNvdHlwZURlY2xhcmF0aW9uTm9kZSIsInZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlIiwidmFyaWFibGVEZWNsYXJhdGlvbiIsInZhcmlhYmxlRGVjbGFyYXRpb25Gcm9tVmFyaWFibGVEZWNsYXJhdGlvbk5vZGUiLCJnZW5lcmF0b3JEZWNsYXJhdGlvbk5vZGUiLCJnZW5lcmF0b3JEZWNsYXJhdGlvbiIsImdlbmVyYXRvckRlY2xhcmF0aW9uRnJvbUdlbmVyYXRvckRlY2xhcmF0aW9uTm9kZSIsInR5cGVQcmVmaXhEZWNsYXJhdGlvbk5vZGUiLCJ0eXBlUHJlZml4RGVjbGFyYXRpb24iLCJ0eXBlUHJlZml4RGVjbGFyYXRpb25Gcm9tVHlwZVByZWZpeERlY2xhcmF0aW9uTm9kZSIsImNvbWJpbmF0b3JEZWNsYXJhdGlvbk5vZGUiLCJjb21iaW5hdG9yRGVjbGFyYXRpb24iLCJjb21iaW5hdG9yRGVjbGFyYXRpb25Gcm9tQ29tYmluYXRvckRlY2xhcmF0aW9uTm9kZSIsImNvbnN0cnVjdG9yRGVjbGFyYXRpb25Ob2RlIiwiY29uc3RydWN0b3JEZWNsYXJhdGlvbiIsImNvbnN0cnVjdG9yRGVjbGFyYXRpb25Gcm9tQ29uc3RydWN0b3JEZWNsYXJhdGlvbk5vZGUiLCJtZXRhdmFyaWFibGVEZWNsYXJhdGlvbk5vZGUiLCJtZXRhdmFyaWFibGVEZWNsYXJhdGlvbiIsIm1ldGF2YXJpYWJsZURlY2xhcmF0aW9uRnJvbU1ldGF2YXJpYWJsZURlY2xhcmF0aW9uTm9kZSIsInRvcExldmVsUGFzcyIsImZpbGVOb2RlIiwibm9kZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBZ0xnQkE7OztlQUFBQTs7OzRCQTlLZTtnQ0FDRTt5QkFpQnNDO0FBRXZFLE1BQU0sRUFBRUMsU0FBUyxFQUFFLEdBQUdDLDBCQUFjO0FBRXBDLE1BQU1DLGdCQUFnQkYsVUFBVSxVQUMxQkcsaUJBQWlCSCxVQUFVLFdBQzNCSSxpQkFBaUJKLFVBQVUsV0FDM0JLLGlCQUFpQkwsVUFBVSxXQUMzQk0sa0JBQWtCTixVQUFVLFlBQzVCTyxtQkFBbUJQLFVBQVUsYUFDN0JRLG1CQUFtQlIsVUFBVSxhQUM3QlMsc0JBQXNCVCxVQUFVLGdCQUNoQ1UsMkJBQTJCVixVQUFVLHFCQUNyQ1csNkJBQTZCWCxVQUFVLHVCQUN2Q1ksK0JBQStCWixVQUFVLHlCQUN6Q2EsZ0NBQWdDYixVQUFVLDBCQUMxQ2MsaUNBQWlDZCxVQUFVLDJCQUMzQ2UsaUNBQWlDZixVQUFVLDJCQUMzQ2dCLGtDQUFrQ2hCLFVBQVUsNEJBQzVDaUIsbUNBQW1DakIsVUFBVTtBQUVuRCxNQUFNa0IscUJBQXFCQyxnQ0FBZ0I7SUFDekMsT0FBT0MsT0FBTztRQUNaO1lBQ0VwQixXQUFXRztZQUNYa0IsS0FBSyxDQUFDQyxXQUFXQyxTQUFTQztnQkFDeEIsTUFBTUMsUUFBUUMsSUFBQUEsMkJBQWtC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
138
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm9jZXNzL3ZlcmlmeS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgcXVlcnlVdGlsaXRpZXMgfSBmcm9tIFwib2NjYW0tcXVlcnlcIlxuaW1wb3J0IHsgQ29udGludWF0aW9uUGFzcyB9IGZyb20gXCJvY2NhbS1sYW5ndWFnZXNcIjtcblxuaW1wb3J0IHsgcnVsZUZyb21SdWxlTm9kZSxcbiAgICAgICAgIGVycm9yRnJvbUVycm9yTm9kZSxcbiAgICAgICAgIGF4aW9tRnJvbUF4aW9tTm9kZSxcbiAgICAgICAgIGxlbW1hRnJvbUxlbW1hTm9kZSxcbiAgICAgICAgIHNjaGVtYUZyb21TY2hlbWFOb2RlLFxuICAgICAgICAgc2VjdGlvbkZyb21TZWN0aW9uTm9kZSxcbiAgICAgICAgIHRoZW9yZW1Gcm9tVGhlb3JlbU5vZGUsXG4gICAgICAgICBjb25qZWN0dXJlRnJvbUNvbmplY3R1cmVOb2RlLFxuICAgICAgICAgdHlwZURlY2xhcmF0aW9uRnJvbVR5cGVEZWNsYXJhdGlvbk5vZGUsXG4gICAgICAgICBjb3R5cGVEZWNsYXJhdGlvbkZyb21Db3R5cGVEZWNsYXJhdGlvbk5vZGUsXG4gICAgICAgICB2YXJpYWJsZURlY2xhcmF0aW9uRnJvbVZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlLFxuICAgICAgICAgZ2VuZXJhdG9yRGVjbGFyYXRpb25Gcm9tR2VuZXJhdG9yRGVjbGFyYXRpb25Ob2RlLFxuICAgICAgICAgdHlwZVByZWZpeERlY2xhcmF0aW9uRnJvbVR5cGVQcmVmaXhEZWNsYXJhdGlvbk5vZGUsXG4gICAgICAgICBjb21iaW5hdG9yRGVjbGFyYXRpb25Gcm9tQ29tYmluYXRvckRlY2xhcmF0aW9uTm9kZSxcbiAgICAgICAgIGNvbnN0cnVjdG9yRGVjbGFyYXRpb25Gcm9tQ29uc3RydWN0b3JEZWNsYXJhdGlvbk5vZGUsXG4gICAgICAgICBtZXRhdmFyaWFibGVEZWNsYXJhdGlvbkZyb21NZXRhdmFyaWFibGVEZWNsYXJhdGlvbk5vZGUgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2VsZW1lbnRcIjtcblxuY29uc3QgeyBub2RlUXVlcnkgfSA9IHF1ZXJ5VXRpbGl0aWVzO1xuXG5jb25zdCBydWxlTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3J1bGVcIiksXG4gICAgICBlcnJvck5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9lcnJvclwiKSxcbiAgICAgIGF4aW9tTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL2F4aW9tXCIpLFxuICAgICAgbGVtbWFOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvbGVtbWFcIiksXG4gICAgICBzY2hlbWFOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvc2NoZW1hXCIpLFxuICAgICAgc2VjdGlvbk5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9zZWN0aW9uXCIpLFxuICAgICAgdGhlb3JlbU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi90aGVvcmVtXCIpLFxuICAgICAgY29uamVjdHVyZU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9jb25qZWN0dXJlXCIpLFxuICAgICAgdHlwZURlY2xhcmF0aW9uTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3R5cGVEZWNsYXJhdGlvblwiKSxcbiAgICAgIGNvdHlwZURlY2xhcmF0aW9uTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL2NvdHlwZURlY2xhcmF0aW9uXCIpLFxuICAgICAgdmFyaWFibGVEZWNsYXJhdGlvbk5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi92YXJpYWJsZURlY2xhcmF0aW9uXCIpLFxuICAgICAgZ2VuZXJhdG9yRGVjbGFyYXRpb25Ob2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvZ2VuZXJhdG9yRGVjbGFyYXRpb25cIiksXG4gICAgICBjb21iaW5hdG9yRGVjbGFyYXRpb25Ob2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvY29tYmluYXRvckRlY2xhcmF0aW9uXCIpLFxuICAgICAgdHlwZVByZWZpeERlY2xhcmF0aW9uTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3R5cGVQcmVmaXhEZWNsYXJhdGlvblwiKSxcbiAgICAgIGNvbnN0cnVjdG9yRGVjbGFyYXRpb25Ob2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvY29uc3RydWN0b3JEZWNsYXJhdGlvblwiKSxcbiAgICAgIG1ldGF2YXJpYWJsZURlY2xhcmF0aW9uTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL21ldGF2YXJpYWJsZURlY2xhcmF0aW9uXCIpO1xuXG5jbGFzcyBUb3BMZXZlbFBhc3MgZXh0ZW5kcyBDb250aW51YXRpb25QYXNzIHtcbiAgc3RhdGljIG1hcHMgPSBbXG4gICAge1xuICAgICAgbm9kZVF1ZXJ5OiBlcnJvck5vZGVRdWVyeSxcbiAgICAgIHJ1bjogKGVycm9yTm9kZSwgY29udGV4dCwgY29udGludWF0aW9uKSA9PiB7XG4gICAgICAgIGNvbnN0IGVycm9yID0gZXJyb3JGcm9tRXJyb3JOb2RlKGVycm9yTm9kZSwgY29udGV4dCk7XG5cbiAgICAgICAgcmV0dXJuIGVycm9yLnZlcmlmeShjb250ZXh0LCBjb250aW51YXRpb24pO1xuICAgICAgfVxuICAgIH0sXG4gICAge1xuICAgICAgbm9kZVF1ZXJ5OiBydWxlTm9kZVF1ZXJ5LFxuICAgICAgcnVuOiAocnVsZU5vZGUsIGNvbnRleHQsIGNvbnRpbnVhdGlvbikgPT4ge1xuICAgICAgICBjb25zdCBydWxlID0gcnVsZUZyb21SdWxlTm9kZShydWxlTm9kZSwgY29udGV4dCk7XG5cbiAgICAgICAgcmV0dXJuIHJ1bGUudmVyaWZ5KGNvbnRleHQsIGNvbnRpbnVhdGlvbik7XG4gICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICBub2RlUXVlcnk6IGF4aW9tTm9kZVF1ZXJ5LFxuICAgICAgcnVuOiAoYXhpb21Ob2RlLCBjb250ZXh0LCBjb250aW51YXRpb24pID0+IHtcbiAgICAgICAgY29uc3QgYXhpb20gPSBheGlvbUZyb21BeGlvbU5vZGUoYXhpb21Ob2RlLCBjb250ZXh0KTtcblxuICAgICAgICByZXR1cm4gYXhpb20udmVyaWZ5KGNvbnRleHQsIGNvbnRpbnVhdGlvbik7XG4gICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICBub2RlUXVlcnk6IGxlbW1hTm9kZVF1ZXJ5LFxuICAgICAgcnVuOiAobGVtbWFOb2RlLCBjb250ZXh0LCBjb250aW51YXRpb24pID0+IHtcbiAgICAgICAgY29uc3QgbGVtbWEgPSBsZW1tYUZyb21MZW1tYU5vZGUobGVtbWFOb2RlLCBjb250ZXh0KTtcblxuICAgICAgICByZXR1cm4gbGVtbWEudmVyaWZ5KGNvbnRleHQsIGNvbnRpbnVhdGlvbik7XG4gICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICBub2RlUXVlcnk6IHNjaGVtYU5vZGVRdWVyeSxcbiAgICAgIHJ1bjogKHNjaGVtYU5vZGUsIGNvbnRleHQsIGNvbnRpbnVhdGlvbikgPT4ge1xuICAgICAgICBjb25zdCBzY2hlbWEgPSBzY2hlbWFGcm9tU2NoZW1hTm9kZShzY2hlbWFOb2RlLCBjb250ZXh0KTtcblxuICAgICAgICByZXR1cm4gc2NoZW1hLnZlcmlmeShjb250ZXh0LCBjb250aW51YXRpb24pO1xuICAgICAgfVxuICAgIH0sXG4gICAge1xuICAgICAgbm9kZVF1ZXJ5OiBzZWN0aW9uTm9kZVF1ZXJ5LFxuICAgICAgcnVuOiAoc2VjdGlvbk5vZGUsIGNvbnRleHQsIGNvbnRpbnVhdGlvbikgPT4ge1xuICAgICAgICBjb25zdCBzZWN0aW9uID0gc2VjdGlvbkZyb21TZWN0aW9uTm9kZShzZWN0aW9uTm9kZSwgY29udGV4dCk7XG5cbiAgICAgICAgcmV0dXJuIHNlY3Rpb24udmVyaWZ5KGNvbnRleHQsIGNvbnRpbnVhdGlvbik7XG4gICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICBub2RlUXVlcnk6IHRoZW9yZW1Ob2RlUXVlcnksXG4gICAgICBydW46ICh0aGVvcmVtTm9kZSwgY29udGV4dCwgY29udGludWF0aW9uKSA9PiB7XG4gICAgICAgIGNvbnN0IHRoZW9yZW0gPSB0aGVvcmVtRnJvbVRoZW9yZW1Ob2RlKHRoZW9yZW1Ob2RlLCBjb250ZXh0KTtcblxuICAgICAgICByZXR1cm4gdGhlb3JlbS52ZXJpZnkoY29udGV4dCwgY29udGludWF0aW9uKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIHtcbiAgICAgIG5vZGVRdWVyeTogY29uamVjdHVyZU5vZGVRdWVyeSxcbiAgICAgIHJ1bjogKGNvbmplY3R1cmVOb2RlLCBjb250ZXh0LCBjb250aW51YXRpb24pID0+IHtcbiAgICAgICAgY29uc3QgY29uamVjdHVyZSA9IGNvbmplY3R1cmVGcm9tQ29uamVjdHVyZU5vZGUoY29uamVjdHVyZU5vZGUsIGNvbnRleHQpO1xuXG4gICAgICAgIHJldHVybiBjb25qZWN0dXJlLnZlcmlmeShjb250ZXh0LCBjb250aW51YXRpb24pO1xuICAgICAgfVxuICAgIH0sXG4gICAge1xuICAgICAgbm9kZVF1ZXJ5OiB0eXBlRGVjbGFyYXRpb25Ob2RlUXVlcnksXG4gICAgICBydW46ICh0eXBlRGVjbGFyYXRpb25Ob2RlLCBjb250ZXh0LCBjb250aW51YXRpb24pID0+IHtcbiAgICAgICAgY29uc3QgdHlwZURlY2xhcmF0aW9uID0gdHlwZURlY2xhcmF0aW9uRnJvbVR5cGVEZWNsYXJhdGlvbk5vZGUodHlwZURlY2xhcmF0aW9uTm9kZSwgY29udGV4dCk7XG5cbiAgICAgICAgcmV0dXJuIHR5cGVEZWNsYXJhdGlvbi52ZXJpZnkoY29udGV4dCwgY29udGludWF0aW9uKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIHtcbiAgICAgIG5vZGVRdWVyeTogY290eXBlRGVjbGFyYXRpb25Ob2RlUXVlcnksXG4gICAgICBydW46IChjb3R5cGVEZWNsYXJhdGlvbk5vZGUsIGNvbnRleHQsIGNvbnRpbnVhdGlvbikgPT4ge1xuICAgICAgICBjb25zdCBjb3R5cGVEZWNsYXJhdGlvbiA9IGNvdHlwZURlY2xhcmF0aW9uRnJvbUNvdHlwZURlY2xhcmF0aW9uTm9kZShjb3R5cGVEZWNsYXJhdGlvbk5vZGUsIGNvbnRleHQpO1xuXG4gICAgICAgIHJldHVybiBjb3R5cGVEZWNsYXJhdGlvbi52ZXJpZnkoY29udGV4dCwgY29udGludWF0aW9uKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIHtcbiAgICAgIG5vZGVRdWVyeTogdmFyaWFibGVEZWNsYXJhdGlvbk5vZGVRdWVyeSxcbiAgICAgIHJ1bjogKHZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlLCBjb250ZXh0LCBjb250aW51YXRpb24pID0+IHtcbiAgICAgICAgY29uc3QgdmFyaWFibGVEZWNsYXJhdGlvbiA9IHZhcmlhYmxlRGVjbGFyYXRpb25Gcm9tVmFyaWFibGVEZWNsYXJhdGlvbk5vZGUodmFyaWFibGVEZWNsYXJhdGlvbk5vZGUsIGNvbnRleHQpO1xuXG4gICAgICAgIHJldHVybiB2YXJpYWJsZURlY2xhcmF0aW9uLnZlcmlmeShjb250ZXh0LCBjb250aW51YXRpb24pO1xuICAgICAgfVxuICAgIH0sXG4gICAge1xuICAgICAgbm9kZVF1ZXJ5OiBnZW5lcmF0b3JEZWNsYXJhdGlvbk5vZGVRdWVyeSxcbiAgICAgIHJ1bjogKGdlbmVyYXRvckRlY2xhcmF0aW9uTm9kZSwgY29udGV4dCwgY29udGludWF0aW9uKSA9PiB7XG4gICAgICAgIGNvbnN0IGdlbmVyYXRvckRlY2xhcmF0aW9uID0gZ2VuZXJhdG9yRGVjbGFyYXRpb25Gcm9tR2VuZXJhdG9yRGVjbGFyYXRpb25Ob2RlKGdlbmVyYXRvckRlY2xhcmF0aW9uTm9kZSwgY29udGV4dCk7XG5cbiAgICAgICAgcmV0dXJuIGdlbmVyYXRvckRlY2xhcmF0aW9uLnZlcmlmeShjb250ZXh0LCBjb250aW51YXRpb24pO1xuICAgICAgfVxuICAgIH0sXG4gICAge1xuICAgICAgbm9kZVF1ZXJ5OiB0eXBlUHJlZml4RGVjbGFyYXRpb25Ob2RlUXVlcnksXG4gICAgICBydW46ICh0eXBlUHJlZml4RGVjbGFyYXRpb25Ob2RlLCBjb250ZXh0LCBjb250aW51YXRpb24pID0+IHtcbiAgICAgICAgY29uc3QgdHlwZVByZWZpeERlY2xhcmF0aW9uID0gdHlwZVByZWZpeERlY2xhcmF0aW9uRnJvbVR5cGVQcmVmaXhEZWNsYXJhdGlvbk5vZGUodHlwZVByZWZpeERlY2xhcmF0aW9uTm9kZSwgY29udGV4dCk7XG5cbiAgICAgICAgcmV0dXJuIHR5cGVQcmVmaXhEZWNsYXJhdGlvbi52ZXJpZnkoY29udGV4dCwgY29udGludWF0aW9uKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIHtcbiAgICAgIG5vZGVRdWVyeTogY29tYmluYXRvckRlY2xhcmF0aW9uTm9kZVF1ZXJ5LFxuICAgICAgcnVuOiAoY29tYmluYXRvckRlY2xhcmF0aW9uTm9kZSwgY29udGV4dCwgY29udGludWF0aW9uKSA9PiB7XG4gICAgICAgIGNvbnN0IGNvbWJpbmF0b3JEZWNsYXJhdGlvbiA9IGNvbWJpbmF0b3JEZWNsYXJhdGlvbkZyb21Db21iaW5hdG9yRGVjbGFyYXRpb25Ob2RlKGNvbWJpbmF0b3JEZWNsYXJhdGlvbk5vZGUsIGNvbnRleHQpO1xuXG4gICAgICAgIHJldHVybiBjb21iaW5hdG9yRGVjbGFyYXRpb24udmVyaWZ5KGNvbnRleHQsIGNvbnRpbnVhdGlvbik7XG4gICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICBub2RlUXVlcnk6IGNvbnN0cnVjdG9yRGVjbGFyYXRpb25Ob2RlUXVlcnksXG4gICAgICBydW46IChjb25zdHJ1Y3RvckRlY2xhcmF0aW9uTm9kZSwgY29udGV4dCwgY29udGludWF0aW9uKSA9PiB7XG4gICAgICAgIGNvbnN0IGNvbnN0cnVjdG9yRGVjbGFyYXRpb24gPSBjb25zdHJ1Y3RvckRlY2xhcmF0aW9uRnJvbUNvbnN0cnVjdG9yRGVjbGFyYXRpb25Ob2RlKGNvbnN0cnVjdG9yRGVjbGFyYXRpb25Ob2RlLCBjb250ZXh0KTtcblxuICAgICAgICByZXR1cm4gY29uc3RydWN0b3JEZWNsYXJhdGlvbi52ZXJpZnkoY29udGV4dCwgY29udGludWF0aW9uKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIHtcbiAgICAgIG5vZGVRdWVyeTogbWV0YXZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlUXVlcnksXG4gICAgICBydW46IChtZXRhdmFyaWFibGVEZWNsYXJhdGlvbk5vZGUsIGNvbnRleHQsIGNvbnRpbnVhdGlvbikgPT4ge1xuICAgICAgICBjb25zdCBtZXRhdmFyaWFibGVEZWNsYXJhdGlvbiA9IG1ldGF2YXJpYWJsZURlY2xhcmF0aW9uRnJvbU1ldGF2YXJpYWJsZURlY2xhcmF0aW9uTm9kZShtZXRhdmFyaWFibGVEZWNsYXJhdGlvbk5vZGUsIGNvbnRleHQpO1xuXG4gICAgICAgIHJldHVybiBtZXRhdmFyaWFibGVEZWNsYXJhdGlvbi52ZXJpZnkoY29udGV4dCwgY29udGludWF0aW9uKTtcbiAgICAgIH1cbiAgICB9XG4gIF07XG59XG5cbmNvbnN0IHRvcExldmVsUGFzcyA9IG5ldyBUb3BMZXZlbFBhc3MoKTtcblxuZXhwb3J0IGZ1bmN0aW9uIHZlcmlmeUZpbGUoZmlsZU5vZGUsIGNvbnRleHQsIGNvbnRpbnVhdGlvbikge1xuICBjb25zdCBub2RlID0gZmlsZU5vZGU7IC8vL1xuXG4gIHJldHVybiB0b3BMZXZlbFBhc3MucnVuKG5vZGUsIGNvbnRleHQsIGNvbnRpbnVhdGlvbik7XG59XG4iXSwibmFtZXMiOlsidmVyaWZ5RmlsZSIsIm5vZGVRdWVyeSIsInF1ZXJ5VXRpbGl0aWVzIiwicnVsZU5vZGVRdWVyeSIsImVycm9yTm9kZVF1ZXJ5IiwiYXhpb21Ob2RlUXVlcnkiLCJsZW1tYU5vZGVRdWVyeSIsInNjaGVtYU5vZGVRdWVyeSIsInNlY3Rpb25Ob2RlUXVlcnkiLCJ0aGVvcmVtTm9kZVF1ZXJ5IiwiY29uamVjdHVyZU5vZGVRdWVyeSIsInR5cGVEZWNsYXJhdGlvbk5vZGVRdWVyeSIsImNvdHlwZURlY2xhcmF0aW9uTm9kZVF1ZXJ5IiwidmFyaWFibGVEZWNsYXJhdGlvbk5vZGVRdWVyeSIsImdlbmVyYXRvckRlY2xhcmF0aW9uTm9kZVF1ZXJ5IiwiY29tYmluYXRvckRlY2xhcmF0aW9uTm9kZVF1ZXJ5IiwidHlwZVByZWZpeERlY2xhcmF0aW9uTm9kZVF1ZXJ5IiwiY29uc3RydWN0b3JEZWNsYXJhdGlvbk5vZGVRdWVyeSIsIm1ldGF2YXJpYWJsZURlY2xhcmF0aW9uTm9kZVF1ZXJ5IiwiVG9wTGV2ZWxQYXNzIiwiQ29udGludWF0aW9uUGFzcyIsIm1hcHMiLCJydW4iLCJlcnJvck5vZGUiLCJjb250ZXh0IiwiY29udGludWF0aW9uIiwiZXJyb3IiLCJlcnJvckZyb21FcnJvck5vZGUiLCJ2ZXJpZnkiLCJydWxlTm9kZSIsInJ1bGUiLCJydWxlRnJvbVJ1bGVOb2RlIiwiYXhpb21Ob2RlIiwiYXhpb20iLCJheGlvbUZyb21BeGlvbU5vZGUiLCJsZW1tYU5vZGUiLCJsZW1tYSIsImxlbW1hRnJvbUxlbW1hTm9kZSIsInNjaGVtYU5vZGUiLCJzY2hlbWEiLCJzY2hlbWFGcm9tU2NoZW1hTm9kZSIsInNlY3Rpb25Ob2RlIiwic2VjdGlvbiIsInNlY3Rpb25Gcm9tU2VjdGlvbk5vZGUiLCJ0aGVvcmVtTm9kZSIsInRoZW9yZW0iLCJ0aGVvcmVtRnJvbVRoZW9yZW1Ob2RlIiwiY29uamVjdHVyZU5vZGUiLCJjb25qZWN0dXJlIiwiY29uamVjdHVyZUZyb21Db25qZWN0dXJlTm9kZSIsInR5cGVEZWNsYXJhdGlvbk5vZGUiLCJ0eXBlRGVjbGFyYXRpb24iLCJ0eXBlRGVjbGFyYXRpb25Gcm9tVHlwZURlY2xhcmF0aW9uTm9kZSIsImNvdHlwZURlY2xhcmF0aW9uTm9kZSIsImNvdHlwZURlY2xhcmF0aW9uIiwiY290eXBlRGVjbGFyYXRpb25Gcm9tQ290eXBlRGVjbGFyYXRpb25Ob2RlIiwidmFyaWFibGVEZWNsYXJhdGlvbk5vZGUiLCJ2YXJpYWJsZURlY2xhcmF0aW9uIiwidmFyaWFibGVEZWNsYXJhdGlvbkZyb21WYXJpYWJsZURlY2xhcmF0aW9uTm9kZSIsImdlbmVyYXRvckRlY2xhcmF0aW9uTm9kZSIsImdlbmVyYXRvckRlY2xhcmF0aW9uIiwiZ2VuZXJhdG9yRGVjbGFyYXRpb25Gcm9tR2VuZXJhdG9yRGVjbGFyYXRpb25Ob2RlIiwidHlwZVByZWZpeERlY2xhcmF0aW9uTm9kZSIsInR5cGVQcmVmaXhEZWNsYXJhdGlvbiIsInR5cGVQcmVmaXhEZWNsYXJhdGlvbkZyb21UeXBlUHJlZml4RGVjbGFyYXRpb25Ob2RlIiwiY29tYmluYXRvckRlY2xhcmF0aW9uTm9kZSIsImNvbWJpbmF0b3JEZWNsYXJhdGlvbiIsImNvbWJpbmF0b3JEZWNsYXJhdGlvbkZyb21Db21iaW5hdG9yRGVjbGFyYXRpb25Ob2RlIiwiY29uc3RydWN0b3JEZWNsYXJhdGlvbk5vZGUiLCJjb25zdHJ1Y3RvckRlY2xhcmF0aW9uIiwiY29uc3RydWN0b3JEZWNsYXJhdGlvbkZyb21Db25zdHJ1Y3RvckRlY2xhcmF0aW9uTm9kZSIsIm1ldGF2YXJpYWJsZURlY2xhcmF0aW9uTm9kZSIsIm1ldGF2YXJpYWJsZURlY2xhcmF0aW9uIiwibWV0YXZhcmlhYmxlRGVjbGFyYXRpb25Gcm9tTWV0YXZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlIiwidG9wTGV2ZWxQYXNzIiwiZmlsZU5vZGUiLCJub2RlIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFnTGdCQTs7O2VBQUFBOzs7NEJBOUtlO2dDQUNFO3lCQWlCc0M7QUFFdkUsTUFBTSxFQUFFQyxTQUFTLEVBQUUsR0FBR0MsMEJBQWM7QUFFcEMsTUFBTUMsZ0JBQWdCRixVQUFVLFVBQzFCRyxpQkFBaUJILFVBQVUsV0FDM0JJLGlCQUFpQkosVUFBVSxXQUMzQkssaUJBQWlCTCxVQUFVLFdBQzNCTSxrQkFBa0JOLFVBQVUsWUFDNUJPLG1CQUFtQlAsVUFBVSxhQUM3QlEsbUJBQW1CUixVQUFVLGFBQzdCUyxzQkFBc0JULFVBQVUsZ0JBQ2hDVSwyQkFBMkJWLFVBQVUscUJBQ3JDVyw2QkFBNkJYLFVBQVUsdUJBQ3ZDWSwrQkFBK0JaLFVBQVUseUJBQ3pDYSxnQ0FBZ0NiLFVBQVUsMEJBQzFDYyxpQ0FBaUNkLFVBQVUsMkJBQzNDZSxpQ0FBaUNmLFVBQVUsMkJBQzNDZ0Isa0NBQWtDaEIsVUFBVSw0QkFDNUNpQixtQ0FBbUNqQixVQUFVO0FBRW5E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
@@ -47,15 +47,15 @@ const _occamlanguages = require("occam-languages");
47
47
  const { some, every, match, reduce, forEach, extract, resolve, forwardsEvery, backwardsEvery } = _occamlanguages.continuationUtilities;
48
48
  function all(callbacks, ...remainingArguments) {
49
49
  const continuation = remainingArguments.pop();
50
- every(callbacks, (callback, continuation)=>{
51
- callback(...remainingArguments, continuation);
50
+ return every(callbacks, (callback, continuation)=>{
51
+ return callback(...remainingArguments, continuation);
52
52
  }, continuation);
53
53
  }
54
54
  function exists(callbacks, ...remainingArguments) {
55
55
  const continuation = remainingArguments.pop();
56
- some(callbacks, (callback, continuation)=>{
57
- callback(...remainingArguments, continuation);
56
+ return some(callbacks, (callback, continuation)=>{
57
+ return callback(...remainingArguments, continuation);
58
58
  }, continuation);
59
59
  }
60
60
 
61
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvY29udGludWF0aW9uLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBjb250aW51YXRpb25VdGlsaXRpZXMgfSBmcm9tIFwib2NjYW0tbGFuZ3VhZ2VzXCI7XG5cbmV4cG9ydCBjb25zdCB7IHNvbWUsIGV2ZXJ5LCBtYXRjaCwgcmVkdWNlLCBmb3JFYWNoLCBleHRyYWN0LCByZXNvbHZlLCBmb3J3YXJkc0V2ZXJ5LCBiYWNrd2FyZHNFdmVyeSB9ID0gY29udGludWF0aW9uVXRpbGl0aWVzO1xuXG5leHBvcnQgZnVuY3Rpb24gYWxsKGNhbGxiYWNrcywgLi4ucmVtYWluaW5nQXJndW1lbnRzKSB7XG4gIGNvbnN0IGNvbnRpbnVhdGlvbiA9IHJlbWFpbmluZ0FyZ3VtZW50cy5wb3AoKTtcblxuICBldmVyeShjYWxsYmFja3MsIChjYWxsYmFjaywgY29udGludWF0aW9uKSA9PiB7XG4gICAgY2FsbGJhY2soLi4ucmVtYWluaW5nQXJndW1lbnRzLCBjb250aW51YXRpb24pO1xuICB9LCBjb250aW51YXRpb24pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZXhpc3RzKGNhbGxiYWNrcywgLi4ucmVtYWluaW5nQXJndW1lbnRzKSB7XG4gIGNvbnN0IGNvbnRpbnVhdGlvbiA9IHJlbWFpbmluZ0FyZ3VtZW50cy5wb3AoKTtcblxuICBzb21lKGNhbGxiYWNrcywgKGNhbGxiYWNrLCBjb250aW51YXRpb24pID0+IHtcbiAgICBjYWxsYmFjayguLi5yZW1haW5pbmdBcmd1bWVudHMsIGNvbnRpbnVhdGlvbik7XG4gIH0sIGNvbnRpbnVhdGlvbik7XG59XG4iXSwibmFtZXMiOlsiYWxsIiwiYmFja3dhcmRzRXZlcnkiLCJldmVyeSIsImV4aXN0cyIsImV4dHJhY3QiLCJmb3JFYWNoIiwiZm9yd2FyZHNFdmVyeSIsIm1hdGNoIiwicmVkdWNlIiwicmVzb2x2ZSIsInNvbWUiLCJjb250aW51YXRpb25VdGlsaXRpZXMiLCJjYWxsYmFja3MiLCJyZW1haW5pbmdBcmd1bWVudHMiLCJjb250aW51YXRpb24iLCJwb3AiLCJjYWxsYmFjayJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O1FBTWdCQTtlQUFBQTs7UUFGcUVDO2VBQUFBOztRQUFoRUM7ZUFBQUE7O1FBVUxDO2VBQUFBOztRQVZvQ0M7ZUFBQUE7O1FBQVRDO2VBQUFBOztRQUEyQkM7ZUFBQUE7O1FBQTFDQztlQUFBQTs7UUFBT0M7ZUFBQUE7O1FBQTBCQztlQUFBQTs7UUFBOUNDO2VBQUFBOzs7Z0NBRnVCO0FBRS9CLE1BQU0sRUFBRUEsSUFBSSxFQUFFUixLQUFLLEVBQUVLLEtBQUssRUFBRUMsTUFBTSxFQUFFSCxPQUFPLEVBQUVELE9BQU8sRUFBRUssT0FBTyxFQUFFSCxhQUFhLEVBQUVMLGNBQWMsRUFBRSxHQUFHVSxxQ0FBcUI7QUFFdEgsU0FBU1gsSUFBSVksU0FBUyxFQUFFLEdBQUdDLGtCQUFrQjtJQUNsRCxNQUFNQyxlQUFlRCxtQkFBbUJFLEdBQUc7SUFFM0NiLE1BQU1VLFdBQVcsQ0FBQ0ksVUFBVUY7UUFDMUJFLFlBQVlILG9CQUFvQkM7SUFDbEMsR0FBR0E7QUFDTDtBQUVPLFNBQVNYLE9BQU9TLFNBQVMsRUFBRSxHQUFHQyxrQkFBa0I7SUFDckQsTUFBTUMsZUFBZUQsbUJBQW1CRSxHQUFHO0lBRTNDTCxLQUFLRSxXQUFXLENBQUNJLFVBQVVGO1FBQ3pCRSxZQUFZSCxvQkFBb0JDO0lBQ2xDLEdBQUdBO0FBQ0wifQ==
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvY29udGludWF0aW9uLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBjb250aW51YXRpb25VdGlsaXRpZXMgfSBmcm9tIFwib2NjYW0tbGFuZ3VhZ2VzXCI7XG5cbmV4cG9ydCBjb25zdCB7IHNvbWUsIGV2ZXJ5LCBtYXRjaCwgcmVkdWNlLCBmb3JFYWNoLCBleHRyYWN0LCByZXNvbHZlLCBmb3J3YXJkc0V2ZXJ5LCBiYWNrd2FyZHNFdmVyeSB9ID0gY29udGludWF0aW9uVXRpbGl0aWVzO1xuXG5leHBvcnQgZnVuY3Rpb24gYWxsKGNhbGxiYWNrcywgLi4ucmVtYWluaW5nQXJndW1lbnRzKSB7XG4gIGNvbnN0IGNvbnRpbnVhdGlvbiA9IHJlbWFpbmluZ0FyZ3VtZW50cy5wb3AoKTtcblxuICByZXR1cm4gZXZlcnkoY2FsbGJhY2tzLCAoY2FsbGJhY2ssIGNvbnRpbnVhdGlvbikgPT4ge1xuICAgIHJldHVybiBjYWxsYmFjayguLi5yZW1haW5pbmdBcmd1bWVudHMsIGNvbnRpbnVhdGlvbik7XG4gIH0sIGNvbnRpbnVhdGlvbik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBleGlzdHMoY2FsbGJhY2tzLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcbiAgY29uc3QgY29udGludWF0aW9uID0gcmVtYWluaW5nQXJndW1lbnRzLnBvcCgpO1xuXG4gIHJldHVybiBzb21lKGNhbGxiYWNrcywgKGNhbGxiYWNrLCBjb250aW51YXRpb24pID0+IHtcbiAgICByZXR1cm4gY2FsbGJhY2soLi4ucmVtYWluaW5nQXJndW1lbnRzLCBjb250aW51YXRpb24pO1xuICB9LCBjb250aW51YXRpb24pO1xufVxuIl0sIm5hbWVzIjpbImFsbCIsImJhY2t3YXJkc0V2ZXJ5IiwiZXZlcnkiLCJleGlzdHMiLCJleHRyYWN0IiwiZm9yRWFjaCIsImZvcndhcmRzRXZlcnkiLCJtYXRjaCIsInJlZHVjZSIsInJlc29sdmUiLCJzb21lIiwiY29udGludWF0aW9uVXRpbGl0aWVzIiwiY2FsbGJhY2tzIiwicmVtYWluaW5nQXJndW1lbnRzIiwiY29udGludWF0aW9uIiwicG9wIiwiY2FsbGJhY2siXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztRQU1nQkE7ZUFBQUE7O1FBRnFFQztlQUFBQTs7UUFBaEVDO2VBQUFBOztRQVVMQztlQUFBQTs7UUFWb0NDO2VBQUFBOztRQUFUQztlQUFBQTs7UUFBMkJDO2VBQUFBOztRQUExQ0M7ZUFBQUE7O1FBQU9DO2VBQUFBOztRQUEwQkM7ZUFBQUE7O1FBQTlDQztlQUFBQTs7O2dDQUZ1QjtBQUUvQixNQUFNLEVBQUVBLElBQUksRUFBRVIsS0FBSyxFQUFFSyxLQUFLLEVBQUVDLE1BQU0sRUFBRUgsT0FBTyxFQUFFRCxPQUFPLEVBQUVLLE9BQU8sRUFBRUgsYUFBYSxFQUFFTCxjQUFjLEVBQUUsR0FBR1UscUNBQXFCO0FBRXRILFNBQVNYLElBQUlZLFNBQVMsRUFBRSxHQUFHQyxrQkFBa0I7SUFDbEQsTUFBTUMsZUFBZUQsbUJBQW1CRSxHQUFHO0lBRTNDLE9BQU9iLE1BQU1VLFdBQVcsQ0FBQ0ksVUFBVUY7UUFDakMsT0FBT0UsWUFBWUgsb0JBQW9CQztJQUN6QyxHQUFHQTtBQUNMO0FBRU8sU0FBU1gsT0FBT1MsU0FBUyxFQUFFLEdBQUdDLGtCQUFrQjtJQUNyRCxNQUFNQyxlQUFlRCxtQkFBbUJFLEdBQUc7SUFFM0MsT0FBT0wsS0FBS0UsV0FBVyxDQUFDSSxVQUFVRjtRQUNoQyxPQUFPRSxZQUFZSCxvQkFBb0JDO0lBQ3pDLEdBQUdBO0FBQ0wifQ==
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "occam-nominal",
3
3
  "author": "James Smith",
4
- "version": "1.0.309",
4
+ "version": "1.0.310",
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.401",
14
+ "occam-furtle": "^3.0.403",
15
15
  "occam-grammar-utilities": "^8.1.17",
16
- "occam-languages": "^2.1.31",
16
+ "occam-languages": "^2.1.33",
17
17
  "occam-query": "^4.1.198"
18
18
  },
19
19
  "devDependencies": {
@@ -731,7 +731,7 @@ export default class NominalFileContext extends FileContext {
731
731
  context = this, ///
732
732
  fileNode = node; ///
733
733
 
734
- verifyFile(fileNode, context, continuation);
734
+ return verifyFile(fileNode, context, continuation);
735
735
  }
736
736
 
737
737
  initialise() {
@@ -94,7 +94,7 @@ export default define(class SubproofAssertion extends Assertion {
94
94
  }
95
95
 
96
96
  validateStatements(context, continuation) {
97
- every(this.statements, (statement, continuation) => {
97
+ return every(this.statements, (statement, continuation) => {
98
98
  descend((context) => {
99
99
  statement.validate(context, (statement) => {
100
100
  let statementValidates = false;
@@ -280,10 +280,10 @@ export default define(class SubproofAssertion extends Assertion {
280
280
 
281
281
  let index = -1;
282
282
 
283
- backwardsEvery(suppositions, (supposition, continuation) => {
283
+ return backwardsEvery(suppositions, (supposition, continuation) => {
284
284
  index++;
285
285
 
286
- this.unifySupposition(supposition, index, generalContext, specificContext, continuation);
286
+ return this.unifySupposition(supposition, index, generalContext, specificContext, continuation);
287
287
  }, continuation);
288
288
  }
289
289
 
@@ -35,7 +35,7 @@ export default define(class Derivation extends Element {
35
35
  }
36
36
 
37
37
  verify(context, continuation) {
38
- every(this.subproofOrProofAssertions, (subproofOrProofAssertion, continuation) => {
38
+ return every(this.subproofOrProofAssertions, (subproofOrProofAssertion, continuation) => {
39
39
  subproofOrProofAssertion.verify(context, (subproofOrProofAssertionVerifies) => {
40
40
  if (subproofOrProofAssertionVerifies) {
41
41
  context.assignAssignments();
@@ -43,7 +43,7 @@ export default define(class Derivation extends Element {
43
43
  context.addSubproofOrProofAssertion(subproofOrProofAssertion);
44
44
  }
45
45
 
46
- continuation(subproofOrProofAssertionVerifies);
46
+ return continuation(subproofOrProofAssertionVerifies);
47
47
  });
48
48
  }, continuation);
49
49
  }
@@ -221,8 +221,8 @@ export default define(class Frame extends Element {
221
221
 
222
222
  const assumptions = [];
223
223
 
224
- every(this.assumptions, (assumption) => {
225
- this.validateAssumption(assumption, assumptions, context, continuation);
224
+ return every(this.assumptions, (assumption) => {
225
+ return this.validateAssumption(assumption, assumptions, context, continuation);
226
226
  }, (assumptionsValidate) => {
227
227
  if (assumptionsValidate) {
228
228
  this.assumptions = assumptions;
@@ -9,7 +9,7 @@ import { instantiate } from "../utilities/context";
9
9
  import { instantiateProcedureCall } from "../process/instantiate";
10
10
  import { parametersFromProcedureCallNode, procedureReferenceFromProcedureCallNode } from "../utilities/element";
11
11
 
12
- const { breakPointFromJSON, breakPointToBreakPointJSON } = breakPointUtilities;
12
+ const { breakable, breakPointFromJSON, breakPointToBreakPointJSON } = breakPointUtilities;
13
13
 
14
14
  export default define(class ProcedureCall extends Element {
15
15
  constructor(context, string, node, breakPoint, parameters, procedureReference) {
@@ -44,7 +44,8 @@ export default define(class ProcedureCall extends Element {
44
44
  }
45
45
 
46
46
  findValues(context) {
47
- const substitutions = context.getSubstitutions(),
47
+ const derivedSubstitutions = context.getDerivedSubstitutions(),
48
+ substitutions = derivedSubstitutions, ///
48
49
  values = this.parameters.map((parameter) => {
49
50
  const value = parameter.findValue(substitutions);
50
51
 
@@ -83,9 +84,7 @@ export default define(class ProcedureCall extends Element {
83
84
  continuation(validates);
84
85
  }
85
86
 
86
- async unifyIndependently(context) {
87
- let unifiesIndependently = false;
88
-
87
+ unifyIndependently = breakable(function (context, continuation) {
89
88
  const procedureCallString = this.getString(); ///
90
89
 
91
90
  context.trace(`Unifying the '${procedureCallString}' procedure call independently...`);
@@ -94,38 +93,38 @@ export default define(class ProcedureCall extends Element {
94
93
  procedure = context.findProcedureByProcedureName(procedureName),
95
94
  values = this.findValues(context);
96
95
 
97
- let term = null;
98
-
99
96
  try {
100
- term = await procedure.callNominally(values);
101
- } catch (exception) {
102
- const message = exception.getMessage();
97
+ return procedure.callNominally(values, (term) => {
98
+ let unifiesIndependently = false;
103
99
 
104
- context.info(message);
105
- }
100
+ if (term !== null) {
101
+ const boolean = term.isBoolean();
106
102
 
107
- if (term !== null) {
108
- const boolean = term.isBoolean();
103
+ if (!boolean) {
104
+ context.info(`The '${procedureCallString}' procedure call did not return a boolean.`);
105
+ } else {
106
+ const primitiveValue = term.getPrimitiveValue();
109
107
 
110
- if (!boolean) {
111
- context.info(`The '${procedureCallString}' procedure call did not return a boolean.`);
112
- } else {
113
- const primitiveValue = term.getPrimitiveValue();
108
+ if (primitiveValue) {
109
+ unifiesIndependently = true;
110
+ }
111
+ }
112
+ }
114
113
 
115
- if (primitiveValue) {
116
- unifiesIndependently = true;
114
+ if (unifiesIndependently) {
115
+ context.debug(`...unified the '${procedureCallString}' procedure call independently.`);
117
116
  }
118
- }
119
- }
120
117
 
121
- if (unifiesIndependently) {
122
- context.debug(`...unified the '${procedureCallString}' procedure call independently.`);
123
- }
118
+ return continuation(unifiesIndependently);
119
+ });
120
+ } catch (exception) {
121
+ const message = exception.getMessage();
124
122
 
125
- return unifiesIndependently;
126
- }
123
+ context.info(message);
124
+ }
125
+ });
127
126
 
128
- async dischargeGivenTerm(term, context) {
127
+ dischargeGivenTerm(term, context) {
129
128
  let dischargedGivenTerm = false;
130
129
 
131
130
  const termString = term.getString(),
@@ -146,7 +145,7 @@ export default define(class ProcedureCall extends Element {
146
145
  term = null;
147
146
 
148
147
  try {
149
- term = await procedure.callNominally(values);
148
+ term = procedure.callNominally(values);
150
149
  } catch (exception) {
151
150
  const message = exception.getMessage();
152
151
 
@@ -177,9 +177,7 @@ export default define(class Premise extends ProofAssertion {
177
177
  });
178
178
  }
179
179
 
180
- unifyIndependently(context) {
181
- let unifiesIndependently = false;
182
-
180
+ unifyIndependently(context, continuation) {
183
181
  const premiseString = this.getString(); ///
184
182
 
185
183
  context.trace(`Unifying the '${premiseString}' premise independently...`);
@@ -191,28 +189,39 @@ export default define(class Premise extends ProofAssertion {
191
189
  if (statement !== null) {
192
190
  const premiseContext = this.getContext(), ///
193
191
  generalContext = premiseContext, ///
194
- specificContext = context, ///
195
- statementUnifiesIndependently = statement.unifyIndependently(generalContext, specificContext);
192
+ specificContext = context; ///
196
193
 
197
- if (statementUnifiesIndependently) {
198
- unifiesIndependently = true;
199
- }
194
+ return statement.unifyIndependently(generalContext, specificContext, (statementUnifiesIndependently) => {
195
+ let unifiesIndependently = false;
196
+
197
+ if (statementUnifiesIndependently) {
198
+ unifiesIndependently = true;
199
+ }
200
+
201
+ if (unifiesIndependently) {
202
+ context.debug(`...unified the '${premiseString}' premise independently.`);
203
+ }
204
+
205
+ return continuation(unifiesIndependently);
206
+ });
200
207
  }
201
208
 
202
209
  if (procedureCall !== null) {
203
- const procedureCallResolvedIndependently = procedureCall.unifyIndependently(context);
210
+ return procedureCall.unifyIndependently(context, (procedureCallResolvedIndependently) => {
211
+ let unifiesIndependently = false;
204
212
 
205
- if (procedureCallResolvedIndependently) {
206
- unifiesIndependently = true;
207
- }
208
- }
209
- }, context);
213
+ if (procedureCallResolvedIndependently) {
214
+ unifiesIndependently = true;
215
+ }
210
216
 
211
- if (unifiesIndependently) {
212
- context.debug(`...unified the '${premiseString}' premise independently.`);
213
- }
217
+ if (unifiesIndependently) {
218
+ context.debug(`...unified the '${premiseString}' premise independently.`);
219
+ }
214
220
 
215
- return unifiesIndependently;
221
+ return continuation(unifiesIndependently);
222
+ });
223
+ }
224
+ }, context);
216
225
  }
217
226
 
218
227
  unifySubproof(subproof, context, continuation) {
@@ -288,12 +297,12 @@ export default define(class Premise extends ProofAssertion {
288
297
  if (subproofOrProofAssertionProofAssertion) {
289
298
  const proofAssertion = subproofOrProofAssertion; ///
290
299
 
291
- this.unifyProofAssertion(proofAssertion, context, continuation);
292
- } else {
293
- const subproof = subproofOrProofAssertion; ///
294
-
295
- this.unifySubproof(subproof, context, continuation);
300
+ return this.unifyProofAssertion(proofAssertion, context, continuation);
296
301
  }
302
+
303
+ const subproof = subproofOrProofAssertion; ///
304
+
305
+ return this.unifySubproof(subproof, context, continuation);
297
306
  }
298
307
 
299
308
  toJSON() {
@@ -275,16 +275,16 @@ export default define(class Step extends ProofAssertion {
275
275
 
276
276
  const step = this; ///
277
277
 
278
- some(unifySteps, (unifyStep, continuation) => {
278
+ return some(unifySteps, (unifyStep, continuation) => {
279
279
  reconcile((context) => {
280
- unifyStep(step, context, continuation);
280
+ return unifyStep(step, context, continuation);
281
281
  }, context);
282
282
  }, (unifies) => {
283
283
  if (unifies) {
284
284
  context.debug(`...unified the '${stepString}' step.`);
285
285
  }
286
286
 
287
- continuation(unifies);
287
+ return continuation(unifies);
288
288
  });
289
289
  }
290
290
 
@@ -288,12 +288,12 @@ export default define(class Supposition extends ProofAssertion {
288
288
  if (subproofOrProofAssertionProofAssertion) {
289
289
  const proofAssertion = subproofOrProofAssertion; ///
290
290
 
291
- this.unifyProofAssertion(proofAssertion, context, continuation);
292
- } else {
293
- const subproof = subproofOrProofAssertion; ///
294
-
295
- this.unifySubproof(subproof, context, continuation);
291
+ return this.unifyProofAssertion(proofAssertion, context, continuation);
296
292
  }
293
+
294
+ const subproof = subproofOrProofAssertion; ///
295
+
296
+ return this.unifySubproof(subproof, context, continuation);
297
297
  }
298
298
 
299
299
  toJSON() {
@@ -129,14 +129,14 @@ export default define(class Rule extends Element {
129
129
 
130
130
  context.trace(`Verifying the '${ruleString}' rule's labels...`);
131
131
 
132
- every(this.labels, (label, continuation) => {
133
- this.verifyLabel(label, context, continuation);
132
+ return every(this.labels, (label, continuation) => {
133
+ return this.verifyLabel(label, context, continuation);
134
134
  }, (labelsVerify) => {
135
135
  if (labelsVerify) {
136
136
  context.debug(`...verified the '${ruleString}' rule's labels.`);
137
137
  }
138
138
 
139
- conntinuation(labelsVerify);
139
+ return conntinuation(labelsVerify);
140
140
  });
141
141
  }
142
142
 
@@ -168,8 +168,8 @@ export default define(class Rule extends Element {
168
168
 
169
169
  context.trace(`Verifying the '${ruleString}' rule's premises...`);
170
170
 
171
- forwardsEvery(this.premises, (premise, continuation) => {
172
- this.verifyPremise(premise, context, continuation);
171
+ return forwardsEvery(this.premises, (premise, continuation) => {
172
+ return this.verifyPremise(premise, context, continuation);
173
173
  }, (premisesVerify) => {
174
174
  if (premisesVerify) {
175
175
  context.debug(`...verified the '${ruleString}' rule's premises.`);
@@ -194,7 +194,7 @@ export default define(class Rule extends Element {
194
194
  });
195
195
  }
196
196
 
197
- unifyStepWithConclusion = breakable(function (step, context, continuation) {
197
+ unifyStepWithConclusion(step, context, continuation) {
198
198
  const ruleString = this.getString(),
199
199
  stepString = step.getString(),
200
200
  conclusionString = this.conclusion.getString();
@@ -214,7 +214,7 @@ export default define(class Rule extends Element {
214
214
 
215
215
  return continuation(stepUnifiesWithConclusion);
216
216
  });
217
- });
217
+ }
218
218
 
219
219
  unifyStepAndSubproofOrProofAssertions(step, subproofOrProofAssertions, context, continuation) {
220
220
  this.unifyStepWithConclusion(step, context, (statementUnifiesWithConclusion) => {
@@ -241,7 +241,7 @@ export default define(class Rule extends Element {
241
241
  }
242
242
 
243
243
  unifySubproofOrProofAssertionsWithPremise(subproofOrProofAssertions, premise, context, continuation) {
244
- extract(subproofOrProofAssertions, (subproofOrProofAssertion, continuation) => {
244
+ return extract(subproofOrProofAssertions, (subproofOrProofAssertion, continuation) => {
245
245
  premise.unifySubproofOrProofAssertion(subproofOrProofAssertion, context, continuation);
246
246
  }, (subproofOrProofAssertion = null) => {
247
247
  if (subproofOrProofAssertion !== null) {
@@ -250,15 +250,15 @@ export default define(class Rule extends Element {
250
250
  return continuation(subproofOrProofAssertionsUnifiesWithPremise);
251
251
  }
252
252
 
253
- premise.unifyIndependently(context, continuation);
253
+ return premise.unifyIndependently(context, continuation);
254
254
  });
255
255
  }
256
256
 
257
257
  unifySubproofOrProofAssertionsWithPremises(subproofOrProofAssertions, context, continuation) {
258
258
  subproofOrProofAssertions = reverse(subproofOrProofAssertions); ///
259
259
 
260
- backwardsEvery(this.premises, (premise, continuation) => {
261
- this.unifySubproofOrProofAssertionsWithPremise(subproofOrProofAssertions, premise, context, continuation);
260
+ return backwardsEvery(this.premises, (premise, continuation) => {
261
+ return this.unifySubproofOrProofAssertionsWithPremise(subproofOrProofAssertions, premise, context, continuation);
262
262
  }, continuation);
263
263
  }
264
264
 
@@ -35,7 +35,7 @@ export default define(class SubDerivation extends Element {
35
35
  }
36
36
 
37
37
  verify(context, continuation) {
38
- every(this.subproofOrProofAssertions, (subproofOrProofAssertion, continuation) => {
38
+ return every(this.subproofOrProofAssertions, (subproofOrProofAssertion, continuation) => {
39
39
  subproofOrProofAssertion.verify(context, (subproofOrProofAssertionVerifies) => {
40
40
  if (subproofOrProofAssertionVerifies) {
41
41
  context.assignAssignments();
@@ -43,7 +43,7 @@ export default define(class SubDerivation extends Element {
43
43
  context.addSubproofOrProofAssertion(subproofOrProofAssertion);
44
44
  }
45
45
 
46
- continuation(subproofOrProofAssertionVerifies);
46
+ return continuation(subproofOrProofAssertionVerifies);
47
47
  });
48
48
  }, continuation);
49
49
  }