occam-verify-cli 0.0.939 → 0.0.941

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.
@@ -8,24 +8,90 @@ Object.defineProperty(exports, "default", {
8
8
  return verifyMetavariableDeclaration;
9
9
  }
10
10
  });
11
- var _metavariable = /*#__PURE__*/ _interop_require_default(require("../../verify/metavariable"));
11
+ var _metavariable = /*#__PURE__*/ _interop_require_default(require("../../metavariable"));
12
+ var _metavariable1 = /*#__PURE__*/ _interop_require_default(require("../../assignment/metavariable"));
13
+ var _array = require("../../utilities/array");
12
14
  var _query = require("../../utilities/query");
15
+ var _name = require("../../utilities/name");
13
16
  function _interop_require_default(obj) {
14
17
  return obj && obj.__esModule ? obj : {
15
18
  default: obj
16
19
  };
17
20
  }
18
- var metaTypeNodeQuery = (0, _query.nodeQuery)("/metavariableDeclaration/metaType"), metavariableNodeQuery = (0, _query.nodeQuery)("/metavariableDeclaration/metavariable");
21
+ var termNodeQuery = (0, _query.nodeQuery)("/argument/term"), typeNodeQuery = (0, _query.nodeQuery)("/argument/type"), argumentNodeQuery = (0, _query.nodeQuery)("/metavariable/argument!"), metaTypeNodeQuery = (0, _query.nodeQuery)("/metavariableDeclaration/metaType"), metavariableNodeQuery = (0, _query.nodeQuery)("/metavariableDeclaration/metavariable");
19
22
  function verifyMetavariableDeclaration(metavariableDeclarationNode, fileContext) {
20
23
  var metavariableDeclarationVerified;
21
24
  var metaTypeNode = metaTypeNodeQuery(metavariableDeclarationNode), metavariableNode = metavariableNodeQuery(metavariableDeclarationNode), metaTypeString = fileContext.nodeAsString(metaTypeNode), metavariableString = fileContext.nodeAsString(metavariableNode);
22
25
  fileContext.trace("Verifying the '".concat(metavariableString, ":").concat(metaTypeString, "' metavariable declaration..."), metavariableDeclarationNode);
23
- var metavariableVVerified = (0, _metavariable.default)(metavariableNode, metaTypeNode, fileContext);
26
+ var metavariableVVerified = verifyMetavariable(metavariableNode, metaTypeNode, fileContext);
24
27
  metavariableDeclarationVerified = metavariableVVerified; ///
25
28
  if (metavariableDeclarationVerified) {
26
29
  fileContext.debug("...verified the '".concat(metavariableString, ":").concat(metaTypeString, "' metavariable declaration."), metavariableDeclarationNode);
27
30
  }
28
31
  return metavariableDeclarationVerified;
29
32
  }
33
+ function verifyMetavariable(metavariableNode, metaTypeNode, fileContext) {
34
+ var metavariableVerified = false;
35
+ var metavariableString = fileContext.nodeAsString(metavariableNode);
36
+ fileContext.trace("Verifying the '".concat(metavariableString, "' metavariable..."), metavariableNode);
37
+ var metavariablePresent = fileContext.isMetavariablePresentByMetavariableNode(metavariableNode);
38
+ if (metavariablePresent) {
39
+ fileContext.debug("The metavariable '".concat(metavariableString, "' is already present."), metavariableNode);
40
+ } else {
41
+ var termTypes = [], metaTypes = [], argumentNode = argumentNodeQuery(metavariableNode), argumentVerified = verifyArgument(argumentNode, termTypes, fileContext), metaTypeVerified = verifyMetaType(metaTypeNode, metaTypes, fileContext);
42
+ if (argumentVerified && metaTypeVerified) {
43
+ var termType, metaType;
44
+ var firstMetaType = (0, _array.first)(metaTypes);
45
+ metaType = firstMetaType; ///
46
+ var termTypesLength = termTypes.length;
47
+ if (termTypesLength === 0) {
48
+ termType = null;
49
+ } else {
50
+ var firstTermType = (0, _array.first)(termTypes);
51
+ termType = firstTermType; ///
52
+ }
53
+ var node = metavariableNode, name = (0, _name.nameFromMetavariableNode)(metavariableNode), metavariable = _metavariable.default.fromNodeNameTermTypeAndMetaType(node, name, termType, metaType), metavariableAssignment = _metavariable1.default.fromMetavariable(metavariable), metavariableAssigned = metavariableAssignment.assign(fileContext);
54
+ if (metavariableAssigned) {
55
+ metavariableVerified = true;
56
+ }
57
+ }
58
+ }
59
+ if (metavariableVerified) {
60
+ fileContext.debug("...verified the '".concat(metavariableString, "' metavariable."), metavariableNode);
61
+ }
62
+ return metavariableVerified;
63
+ }
64
+ function verifyArgument(argumentNode, termTypes, fileContext) {
65
+ var argumentVerified = false;
66
+ if (argumentNode === null) {
67
+ argumentVerified = true;
68
+ } else {
69
+ var termNode = termNodeQuery(argumentNode);
70
+ if (termNode === null) {} else {
71
+ var termString = fileContext.nodeAsString(termNode);
72
+ fileContext.debug("The '".concat(termString, "' term was found when a type should have been present."), termNode);
73
+ }
74
+ var typeNode = typeNodeQuery(argumentNode);
75
+ if (typeNode !== null) {
76
+ var type = fileContext.findTypeByTypeNode(typeNode);
77
+ if (type !== null) {
78
+ var termType = type; ///
79
+ termTypes.push(termType);
80
+ argumentVerified = true;
81
+ } else {
82
+ var typeString = fileContext.nodeAsString(typeNode);
83
+ fileContext.debug("The '".concat(typeString, "' type is not present."), typeNode);
84
+ }
85
+ }
86
+ }
87
+ return argumentVerified;
88
+ }
89
+ function verifyMetaType(metaTypeNode, metaTypes, fileContext) {
90
+ var metaTypeVerified;
91
+ var metaType = fileContext.findMetaTypeByMetaTypeNode(metaTypeNode);
92
+ metaTypes.push(metaType);
93
+ metaTypeVerified = true;
94
+ return metaTypeVerified;
95
+ }
30
96
 
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy92ZXJpZnkvZGVjbGFyYXRpb24vbWV0YXZhcmlhYmxlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgdmVyaWZ5TWV0YXZhcmlhYmxlIGZyb20gXCIuLi8uLi92ZXJpZnkvbWV0YXZhcmlhYmxlXCI7XG5cbmltcG9ydCB7IG5vZGVRdWVyeSB9IGZyb20gXCIuLi8uLi91dGlsaXRpZXMvcXVlcnlcIjtcblxuY29uc3QgbWV0YVR5cGVOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvbWV0YXZhcmlhYmxlRGVjbGFyYXRpb24vbWV0YVR5cGVcIiksXG4gICAgICBtZXRhdmFyaWFibGVOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvbWV0YXZhcmlhYmxlRGVjbGFyYXRpb24vbWV0YXZhcmlhYmxlXCIpO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB2ZXJpZnlNZXRhdmFyaWFibGVEZWNsYXJhdGlvbihtZXRhdmFyaWFibGVEZWNsYXJhdGlvbk5vZGUsIGZpbGVDb250ZXh0KSB7XG4gIGxldCBtZXRhdmFyaWFibGVEZWNsYXJhdGlvblZlcmlmaWVkO1xuXG4gIGNvbnN0IG1ldGFUeXBlTm9kZSA9IG1ldGFUeXBlTm9kZVF1ZXJ5KG1ldGF2YXJpYWJsZURlY2xhcmF0aW9uTm9kZSksXG4gICAgICAgIG1ldGF2YXJpYWJsZU5vZGUgPSBtZXRhdmFyaWFibGVOb2RlUXVlcnkobWV0YXZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlKSxcbiAgICAgICAgbWV0YVR5cGVTdHJpbmcgPSBmaWxlQ29udGV4dC5ub2RlQXNTdHJpbmcobWV0YVR5cGVOb2RlKSxcbiAgICAgICAgbWV0YXZhcmlhYmxlU3RyaW5nID0gZmlsZUNvbnRleHQubm9kZUFzU3RyaW5nKG1ldGF2YXJpYWJsZU5vZGUpO1xuXG4gIGZpbGVDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke21ldGF2YXJpYWJsZVN0cmluZ306JHttZXRhVHlwZVN0cmluZ30nIG1ldGF2YXJpYWJsZSBkZWNsYXJhdGlvbi4uLmAsIG1ldGF2YXJpYWJsZURlY2xhcmF0aW9uTm9kZSk7XG5cbiAgY29uc3QgbWV0YXZhcmlhYmxlVlZlcmlmaWVkID0gdmVyaWZ5TWV0YXZhcmlhYmxlKG1ldGF2YXJpYWJsZU5vZGUsIG1ldGFUeXBlTm9kZSwgZmlsZUNvbnRleHQpO1xuXG4gIG1ldGF2YXJpYWJsZURlY2xhcmF0aW9uVmVyaWZpZWQgPSBtZXRhdmFyaWFibGVWVmVyaWZpZWQ7ICAvLy9cblxuICBpZiAobWV0YXZhcmlhYmxlRGVjbGFyYXRpb25WZXJpZmllZCkge1xuICAgIGZpbGVDb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7bWV0YXZhcmlhYmxlU3RyaW5nfToke21ldGFUeXBlU3RyaW5nfScgbWV0YXZhcmlhYmxlIGRlY2xhcmF0aW9uLmAsIG1ldGF2YXJpYWJsZURlY2xhcmF0aW9uTm9kZSk7XG4gIH1cblxuICByZXR1cm4gbWV0YXZhcmlhYmxlRGVjbGFyYXRpb25WZXJpZmllZDtcbn1cbiJdLCJuYW1lcyI6WyJ2ZXJpZnlNZXRhdmFyaWFibGVEZWNsYXJhdGlvbiIsIm1ldGFUeXBlTm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5IiwibWV0YXZhcmlhYmxlTm9kZVF1ZXJ5IiwibWV0YXZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlIiwiZmlsZUNvbnRleHQiLCJtZXRhdmFyaWFibGVEZWNsYXJhdGlvblZlcmlmaWVkIiwibWV0YVR5cGVOb2RlIiwibWV0YXZhcmlhYmxlTm9kZSIsIm1ldGFUeXBlU3RyaW5nIiwibm9kZUFzU3RyaW5nIiwibWV0YXZhcmlhYmxlU3RyaW5nIiwidHJhY2UiLCJtZXRhdmFyaWFibGVWVmVyaWZpZWQiLCJ2ZXJpZnlNZXRhdmFyaWFibGUiLCJkZWJ1ZyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBU0E7OztlQUF3QkE7OzttRUFQTztxQkFFTDs7Ozs7O0FBRTFCLElBQU1DLG9CQUFvQkMsSUFBQUEsZ0JBQVMsRUFBQyxzQ0FDOUJDLHdCQUF3QkQsSUFBQUEsZ0JBQVMsRUFBQztBQUV6QixTQUFTRiw4QkFBOEJJLDJCQUEyQixFQUFFQyxXQUFXO0lBQzVGLElBQUlDO0lBRUosSUFBTUMsZUFBZU4sa0JBQWtCRyw4QkFDakNJLG1CQUFtQkwsc0JBQXNCQyw4QkFDekNLLGlCQUFpQkosWUFBWUssWUFBWSxDQUFDSCxlQUMxQ0kscUJBQXFCTixZQUFZSyxZQUFZLENBQUNGO0lBRXBESCxZQUFZTyxLQUFLLENBQUMsQUFBQyxrQkFBdUNILE9BQXRCRSxvQkFBbUIsS0FBa0IsT0FBZkYsZ0JBQWUsa0NBQWdDTDtJQUV6RyxJQUFNUyx3QkFBd0JDLElBQUFBLHFCQUFrQixFQUFDTixrQkFBa0JELGNBQWNGO0lBRWpGQyxrQ0FBa0NPLHVCQUF3QixHQUFHO0lBRTdELElBQUlQLGlDQUFpQztRQUNuQ0QsWUFBWVUsS0FBSyxDQUFDLEFBQUMsb0JBQXlDTixPQUF0QkUsb0JBQW1CLEtBQWtCLE9BQWZGLGdCQUFlLGdDQUE4Qkw7SUFDM0c7SUFFQSxPQUFPRTtBQUNUIn0=
97
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy92ZXJpZnkvZGVjbGFyYXRpb24vbWV0YXZhcmlhYmxlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgTWV0YXZhcmlhYmxlIGZyb20gXCIuLi8uLi9tZXRhdmFyaWFibGVcIjtcbmltcG9ydCBNZXRhdmFyaWFibGVBc3NpZ25tZW50IGZyb20gXCIuLi8uLi9hc3NpZ25tZW50L21ldGF2YXJpYWJsZVwiO1xuXG5pbXBvcnQgeyBmaXJzdCB9IGZyb20gXCIuLi8uLi91dGlsaXRpZXMvYXJyYXlcIjtcbmltcG9ydCB7IG5vZGVRdWVyeSB9IGZyb20gXCIuLi8uLi91dGlsaXRpZXMvcXVlcnlcIjtcbmltcG9ydCB7IG5hbWVGcm9tTWV0YXZhcmlhYmxlTm9kZSB9IGZyb20gXCIuLi8uLi91dGlsaXRpZXMvbmFtZVwiO1xuXG5jb25zdCB0ZXJtTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL2FyZ3VtZW50L3Rlcm1cIiksXG4gICAgICB0eXBlTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL2FyZ3VtZW50L3R5cGVcIiksXG4gICAgICBhcmd1bWVudE5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9tZXRhdmFyaWFibGUvYXJndW1lbnQhXCIpLFxuICAgICAgbWV0YVR5cGVOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvbWV0YXZhcmlhYmxlRGVjbGFyYXRpb24vbWV0YVR5cGVcIiksXG4gICAgICBtZXRhdmFyaWFibGVOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvbWV0YXZhcmlhYmxlRGVjbGFyYXRpb24vbWV0YXZhcmlhYmxlXCIpO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB2ZXJpZnlNZXRhdmFyaWFibGVEZWNsYXJhdGlvbihtZXRhdmFyaWFibGVEZWNsYXJhdGlvbk5vZGUsIGZpbGVDb250ZXh0KSB7XG4gIGxldCBtZXRhdmFyaWFibGVEZWNsYXJhdGlvblZlcmlmaWVkO1xuXG4gIGNvbnN0IG1ldGFUeXBlTm9kZSA9IG1ldGFUeXBlTm9kZVF1ZXJ5KG1ldGF2YXJpYWJsZURlY2xhcmF0aW9uTm9kZSksXG4gICAgICAgIG1ldGF2YXJpYWJsZU5vZGUgPSBtZXRhdmFyaWFibGVOb2RlUXVlcnkobWV0YXZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlKSxcbiAgICAgICAgbWV0YVR5cGVTdHJpbmcgPSBmaWxlQ29udGV4dC5ub2RlQXNTdHJpbmcobWV0YVR5cGVOb2RlKSxcbiAgICAgICAgbWV0YXZhcmlhYmxlU3RyaW5nID0gZmlsZUNvbnRleHQubm9kZUFzU3RyaW5nKG1ldGF2YXJpYWJsZU5vZGUpO1xuXG4gIGZpbGVDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke21ldGF2YXJpYWJsZVN0cmluZ306JHttZXRhVHlwZVN0cmluZ30nIG1ldGF2YXJpYWJsZSBkZWNsYXJhdGlvbi4uLmAsIG1ldGF2YXJpYWJsZURlY2xhcmF0aW9uTm9kZSk7XG5cbiAgY29uc3QgbWV0YXZhcmlhYmxlVlZlcmlmaWVkID0gdmVyaWZ5TWV0YXZhcmlhYmxlKG1ldGF2YXJpYWJsZU5vZGUsIG1ldGFUeXBlTm9kZSwgZmlsZUNvbnRleHQpO1xuXG4gIG1ldGF2YXJpYWJsZURlY2xhcmF0aW9uVmVyaWZpZWQgPSBtZXRhdmFyaWFibGVWVmVyaWZpZWQ7ICAvLy9cblxuICBpZiAobWV0YXZhcmlhYmxlRGVjbGFyYXRpb25WZXJpZmllZCkge1xuICAgIGZpbGVDb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7bWV0YXZhcmlhYmxlU3RyaW5nfToke21ldGFUeXBlU3RyaW5nfScgbWV0YXZhcmlhYmxlIGRlY2xhcmF0aW9uLmAsIG1ldGF2YXJpYWJsZURlY2xhcmF0aW9uTm9kZSk7XG4gIH1cblxuICByZXR1cm4gbWV0YXZhcmlhYmxlRGVjbGFyYXRpb25WZXJpZmllZDtcbn1cblxuZnVuY3Rpb24gdmVyaWZ5TWV0YXZhcmlhYmxlKG1ldGF2YXJpYWJsZU5vZGUsIG1ldGFUeXBlTm9kZSwgZmlsZUNvbnRleHQpIHtcbiAgbGV0IG1ldGF2YXJpYWJsZVZlcmlmaWVkID0gZmFsc2U7XG5cbiAgY29uc3QgbWV0YXZhcmlhYmxlU3RyaW5nID0gZmlsZUNvbnRleHQubm9kZUFzU3RyaW5nKG1ldGF2YXJpYWJsZU5vZGUpO1xuXG4gIGZpbGVDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke21ldGF2YXJpYWJsZVN0cmluZ30nIG1ldGF2YXJpYWJsZS4uLmAsIG1ldGF2YXJpYWJsZU5vZGUpO1xuXG4gIGNvbnN0IG1ldGF2YXJpYWJsZVByZXNlbnQgPSBmaWxlQ29udGV4dC5pc01ldGF2YXJpYWJsZVByZXNlbnRCeU1ldGF2YXJpYWJsZU5vZGUobWV0YXZhcmlhYmxlTm9kZSk7XG5cbiAgaWYgKG1ldGF2YXJpYWJsZVByZXNlbnQpIHtcbiAgICBmaWxlQ29udGV4dC5kZWJ1ZyhgVGhlIG1ldGF2YXJpYWJsZSAnJHttZXRhdmFyaWFibGVTdHJpbmd9JyBpcyBhbHJlYWR5IHByZXNlbnQuYCwgbWV0YXZhcmlhYmxlTm9kZSk7XG4gIH0gZWxzZSB7XG4gICAgY29uc3QgdGVybVR5cGVzID0gW10sXG4gICAgICBtZXRhVHlwZXMgPSBbXSxcbiAgICAgIGFyZ3VtZW50Tm9kZSA9IGFyZ3VtZW50Tm9kZVF1ZXJ5KG1ldGF2YXJpYWJsZU5vZGUpLFxuICAgICAgYXJndW1lbnRWZXJpZmllZCA9IHZlcmlmeUFyZ3VtZW50KGFyZ3VtZW50Tm9kZSwgdGVybVR5cGVzLCBmaWxlQ29udGV4dCksXG4gICAgICBtZXRhVHlwZVZlcmlmaWVkID0gdmVyaWZ5TWV0YVR5cGUobWV0YVR5cGVOb2RlLCBtZXRhVHlwZXMsIGZpbGVDb250ZXh0KTtcblxuICAgIGlmIChhcmd1bWVudFZlcmlmaWVkICYmIG1ldGFUeXBlVmVyaWZpZWQpIHtcbiAgICAgIGxldCB0ZXJtVHlwZSxcbiAgICAgICAgbWV0YVR5cGU7XG5cbiAgICAgIGNvbnN0IGZpcnN0TWV0YVR5cGUgPSBmaXJzdChtZXRhVHlwZXMpO1xuXG4gICAgICBtZXRhVHlwZSA9IGZpcnN0TWV0YVR5cGU7IC8vL1xuXG4gICAgICBjb25zdCB0ZXJtVHlwZXNMZW5ndGggPSB0ZXJtVHlwZXMubGVuZ3RoO1xuXG4gICAgICBpZiAodGVybVR5cGVzTGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHRlcm1UeXBlID0gbnVsbDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGZpcnN0VGVybVR5cGUgPSBmaXJzdCh0ZXJtVHlwZXMpO1xuXG4gICAgICAgIHRlcm1UeXBlID0gZmlyc3RUZXJtVHlwZTsgLy8vXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IG5vZGUgPSBtZXRhdmFyaWFibGVOb2RlLCAgLy8vXG4gICAgICAgIG5hbWUgPSBuYW1lRnJvbU1ldGF2YXJpYWJsZU5vZGUobWV0YXZhcmlhYmxlTm9kZSksXG4gICAgICAgIG1ldGF2YXJpYWJsZSA9IE1ldGF2YXJpYWJsZS5mcm9tTm9kZU5hbWVUZXJtVHlwZUFuZE1ldGFUeXBlKG5vZGUsIG5hbWUsIHRlcm1UeXBlLCBtZXRhVHlwZSksXG4gICAgICAgIG1ldGF2YXJpYWJsZUFzc2lnbm1lbnQgPSBNZXRhdmFyaWFibGVBc3NpZ25tZW50LmZyb21NZXRhdmFyaWFibGUobWV0YXZhcmlhYmxlKSxcbiAgICAgICAgbWV0YXZhcmlhYmxlQXNzaWduZWQgPSBtZXRhdmFyaWFibGVBc3NpZ25tZW50LmFzc2lnbihmaWxlQ29udGV4dCk7XG5cbiAgICAgIGlmIChtZXRhdmFyaWFibGVBc3NpZ25lZCkge1xuICAgICAgICBtZXRhdmFyaWFibGVWZXJpZmllZCA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgaWYgKG1ldGF2YXJpYWJsZVZlcmlmaWVkKSB7XG4gICAgZmlsZUNvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHttZXRhdmFyaWFibGVTdHJpbmd9JyBtZXRhdmFyaWFibGUuYCwgbWV0YXZhcmlhYmxlTm9kZSk7XG4gIH1cblxuICByZXR1cm4gbWV0YXZhcmlhYmxlVmVyaWZpZWQ7XG59XG5cbmZ1bmN0aW9uIHZlcmlmeUFyZ3VtZW50KGFyZ3VtZW50Tm9kZSwgdGVybVR5cGVzLCBmaWxlQ29udGV4dCkge1xuICBsZXQgYXJndW1lbnRWZXJpZmllZCA9IGZhbHNlO1xuXG4gIGlmIChhcmd1bWVudE5vZGUgPT09IG51bGwpIHtcbiAgICBhcmd1bWVudFZlcmlmaWVkID0gdHJ1ZTtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCB0ZXJtTm9kZSA9IHRlcm1Ob2RlUXVlcnkoYXJndW1lbnROb2RlKTtcblxuICAgIGlmICh0ZXJtTm9kZSA9PT0gbnVsbCkge1xuXG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHRlcm1TdHJpbmcgPSBmaWxlQ29udGV4dC5ub2RlQXNTdHJpbmcodGVybU5vZGUpO1xuXG4gICAgICBmaWxlQ29udGV4dC5kZWJ1ZyhgVGhlICcke3Rlcm1TdHJpbmd9JyB0ZXJtIHdhcyBmb3VuZCB3aGVuIGEgdHlwZSBzaG91bGQgaGF2ZSBiZWVuIHByZXNlbnQuYCwgdGVybU5vZGUpO1xuICAgIH1cbiAgICBjb25zdCB0eXBlTm9kZSA9IHR5cGVOb2RlUXVlcnkoYXJndW1lbnROb2RlKTtcblxuICAgIGlmICh0eXBlTm9kZSAhPT0gbnVsbCkge1xuICAgICAgY29uc3QgdHlwZSA9IGZpbGVDb250ZXh0LmZpbmRUeXBlQnlUeXBlTm9kZSh0eXBlTm9kZSk7XG5cbiAgICAgIGlmICh0eXBlICE9PSBudWxsKSB7XG4gICAgICAgIGNvbnN0IHRlcm1UeXBlID0gdHlwZTsgIC8vL1xuXG4gICAgICAgIHRlcm1UeXBlcy5wdXNoKHRlcm1UeXBlKTtcblxuICAgICAgICBhcmd1bWVudFZlcmlmaWVkID0gdHJ1ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IHR5cGVTdHJpbmcgPSBmaWxlQ29udGV4dC5ub2RlQXNTdHJpbmcodHlwZU5vZGUpO1xuXG4gICAgICAgIGZpbGVDb250ZXh0LmRlYnVnKGBUaGUgJyR7dHlwZVN0cmluZ30nIHR5cGUgaXMgbm90IHByZXNlbnQuYCwgdHlwZU5vZGUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBhcmd1bWVudFZlcmlmaWVkO1xufVxuXG5mdW5jdGlvbiB2ZXJpZnlNZXRhVHlwZShtZXRhVHlwZU5vZGUsIG1ldGFUeXBlcywgZmlsZUNvbnRleHQpIHtcbiAgbGV0IG1ldGFUeXBlVmVyaWZpZWQ7XG5cbiAgY29uc3QgbWV0YVR5cGUgPSBmaWxlQ29udGV4dC5maW5kTWV0YVR5cGVCeU1ldGFUeXBlTm9kZShtZXRhVHlwZU5vZGUpO1xuXG4gIG1ldGFUeXBlcy5wdXNoKG1ldGFUeXBlKTtcblxuICBtZXRhVHlwZVZlcmlmaWVkID0gdHJ1ZTtcblxuICByZXR1cm4gbWV0YVR5cGVWZXJpZmllZDtcbn0iXSwibmFtZXMiOlsidmVyaWZ5TWV0YXZhcmlhYmxlRGVjbGFyYXRpb24iLCJ0ZXJtTm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5IiwidHlwZU5vZGVRdWVyeSIsImFyZ3VtZW50Tm9kZVF1ZXJ5IiwibWV0YVR5cGVOb2RlUXVlcnkiLCJtZXRhdmFyaWFibGVOb2RlUXVlcnkiLCJtZXRhdmFyaWFibGVEZWNsYXJhdGlvbk5vZGUiLCJmaWxlQ29udGV4dCIsIm1ldGF2YXJpYWJsZURlY2xhcmF0aW9uVmVyaWZpZWQiLCJtZXRhVHlwZU5vZGUiLCJtZXRhdmFyaWFibGVOb2RlIiwibWV0YVR5cGVTdHJpbmciLCJub2RlQXNTdHJpbmciLCJtZXRhdmFyaWFibGVTdHJpbmciLCJ0cmFjZSIsIm1ldGF2YXJpYWJsZVZWZXJpZmllZCIsInZlcmlmeU1ldGF2YXJpYWJsZSIsImRlYnVnIiwibWV0YXZhcmlhYmxlVmVyaWZpZWQiLCJtZXRhdmFyaWFibGVQcmVzZW50IiwiaXNNZXRhdmFyaWFibGVQcmVzZW50QnlNZXRhdmFyaWFibGVOb2RlIiwidGVybVR5cGVzIiwibWV0YVR5cGVzIiwiYXJndW1lbnROb2RlIiwiYXJndW1lbnRWZXJpZmllZCIsInZlcmlmeUFyZ3VtZW50IiwibWV0YVR5cGVWZXJpZmllZCIsInZlcmlmeU1ldGFUeXBlIiwidGVybVR5cGUiLCJtZXRhVHlwZSIsImZpcnN0TWV0YVR5cGUiLCJmaXJzdCIsInRlcm1UeXBlc0xlbmd0aCIsImxlbmd0aCIsImZpcnN0VGVybVR5cGUiLCJub2RlIiwibmFtZSIsIm5hbWVGcm9tTWV0YXZhcmlhYmxlTm9kZSIsIm1ldGF2YXJpYWJsZSIsIk1ldGF2YXJpYWJsZSIsImZyb21Ob2RlTmFtZVRlcm1UeXBlQW5kTWV0YVR5cGUiLCJtZXRhdmFyaWFibGVBc3NpZ25tZW50IiwiTWV0YXZhcmlhYmxlQXNzaWdubWVudCIsImZyb21NZXRhdmFyaWFibGUiLCJtZXRhdmFyaWFibGVBc3NpZ25lZCIsImFzc2lnbiIsInRlcm1Ob2RlIiwidGVybVN0cmluZyIsInR5cGVOb2RlIiwidHlwZSIsImZpbmRUeXBlQnlUeXBlTm9kZSIsInB1c2giLCJ0eXBlU3RyaW5nIiwiZmluZE1ldGFUeXBlQnlNZXRhVHlwZU5vZGUiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQWVBOzs7ZUFBd0JBOzs7bUVBYkM7b0VBQ1U7cUJBRWI7cUJBQ0k7b0JBQ2U7Ozs7OztBQUV6QyxJQUFNQyxnQkFBZ0JDLElBQUFBLGdCQUFTLEVBQUMsbUJBQzFCQyxnQkFBZ0JELElBQUFBLGdCQUFTLEVBQUMsbUJBQzFCRSxvQkFBb0JGLElBQUFBLGdCQUFTLEVBQUMsNEJBQzlCRyxvQkFBb0JILElBQUFBLGdCQUFTLEVBQUMsc0NBQzlCSSx3QkFBd0JKLElBQUFBLGdCQUFTLEVBQUM7QUFFekIsU0FBU0YsOEJBQThCTywyQkFBMkIsRUFBRUMsV0FBVztJQUM1RixJQUFJQztJQUVKLElBQU1DLGVBQWVMLGtCQUFrQkUsOEJBQ2pDSSxtQkFBbUJMLHNCQUFzQkMsOEJBQ3pDSyxpQkFBaUJKLFlBQVlLLFlBQVksQ0FBQ0gsZUFDMUNJLHFCQUFxQk4sWUFBWUssWUFBWSxDQUFDRjtJQUVwREgsWUFBWU8sS0FBSyxDQUFDLEFBQUMsa0JBQXVDSCxPQUF0QkUsb0JBQW1CLEtBQWtCLE9BQWZGLGdCQUFlLGtDQUFnQ0w7SUFFekcsSUFBTVMsd0JBQXdCQyxtQkFB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
@@ -8,9 +8,10 @@ Object.defineProperty(exports, "default", {
8
8
  return verifyTypeDeclaration;
9
9
  }
10
10
  });
11
- var _type = /*#__PURE__*/ _interop_require_default(require("../../verify/type"));
11
+ var _type = /*#__PURE__*/ _interop_require_default(require("../../type"));
12
12
  var _query = require("../../utilities/query");
13
13
  var _constants = require("../../constants");
14
+ var _name = require("../../utilities/name");
14
15
  function _interop_require_default(obj) {
15
16
  return obj && obj.__esModule ? obj : {
16
17
  default: obj
@@ -21,12 +22,44 @@ function verifyTypeDeclaration(typeDeclarationNode, fileContext) {
21
22
  var typeDeclarationVerified;
22
23
  var firstTypeNode = firstTypeNodeQuery(typeDeclarationNode), secondTypeNode = secondTypeNodeQuery(typeDeclarationNode), typeNode = firstTypeNode, superTypeNode = secondTypeNode, typeString = fileContext.nodeAsString(typeNode), superTypeString = fileContext.nodeAsString(superTypeNode);
23
24
  superTypeString === _constants.EMPTY_STRING ? fileContext.trace("Verifying the '".concat(typeString, "' type declaration..."), typeDeclarationNode) : fileContext.trace("Verifying the '".concat(typeString, ":").concat(superTypeString, "' type declaration..."), typeDeclarationNode);
24
- var typeVerified = (0, _type.default)(typeNode, superTypeNode, fileContext);
25
+ var typeVerified = verifyType(typeNode, superTypeNode, fileContext);
25
26
  typeDeclarationVerified = typeVerified; ///
26
27
  if (typeDeclarationVerified) {
27
28
  superTypeString === _constants.EMPTY_STRING ? fileContext.trace("...verified the '".concat(typeString, "' type declaration."), typeDeclarationNode) : fileContext.trace("...verified the '".concat(typeString, ":").concat(superTypeString, "' type declaration."), typeDeclarationNode);
28
29
  }
29
30
  return typeDeclarationVerified;
30
31
  }
32
+ function verifyType(typeNode, superTypeNode, fileContext) {
33
+ var typeVerified = false;
34
+ var typeString = fileContext.nodeAsString(typeNode);
35
+ fileContext.trace("Verifying the '".concat(typeString, "' type..."), typeNode);
36
+ var typePresent = fileContext.isTypePresentByTypeNode(typeNode);
37
+ if (typePresent) {
38
+ var typeString1 = fileContext.nodeAsString(typeNode);
39
+ fileContext.debug("The type '".concat(typeString1, "' is already present."), typeNode);
40
+ } else {
41
+ var type;
42
+ var typeName = (0, _name.typeNameFromTypeNode)(typeNode);
43
+ if (superTypeNode === null) {
44
+ type = _type.default.fromTypeName(typeName);
45
+ } else {
46
+ var superType = fileContext.findTypeByTypeNode(superTypeNode);
47
+ if (superType === null) {
48
+ var superTypeString = fileContext.nodeAsString(superTypeNode);
49
+ fileContext.debug("The super-type '".concat(superTypeString, "' is not present."), typeNode);
50
+ } else {
51
+ type = _type.default.fromTypeNameAndSuperType(typeName, superType);
52
+ }
53
+ }
54
+ if (type !== null) {
55
+ fileContext.addType(type);
56
+ typeVerified = true;
57
+ }
58
+ }
59
+ if (typeVerified) {
60
+ fileContext.debug("...verified the '".concat(typeString, "' type."), typeNode);
61
+ }
62
+ return typeVerified;
63
+ }
31
64
 
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy92ZXJpZnkvZGVjbGFyYXRpb24vdHlwZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHZlcmlmeVR5cGUgZnJvbSBcIi4uLy4uL3ZlcmlmeS90eXBlXCI7XG5cbmltcG9ydCB7IG5vZGVRdWVyeSB9IGZyb20gXCIuLi8uLi91dGlsaXRpZXMvcXVlcnlcIjtcbmltcG9ydCB7IEVNUFRZX1NUUklORyB9IGZyb20gXCIuLi8uLi9jb25zdGFudHNcIjtcblxuY29uc3QgZmlyc3RUeXBlTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3R5cGVEZWNsYXJhdGlvbi90eXBlWzBdXCIpLFxuICAgICAgc2Vjb25kVHlwZU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi90eXBlRGVjbGFyYXRpb24vdHlwZVsxXVwiKTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdmVyaWZ5VHlwZURlY2xhcmF0aW9uKHR5cGVEZWNsYXJhdGlvbk5vZGUsIGZpbGVDb250ZXh0KSB7XG4gIGxldCB0eXBlRGVjbGFyYXRpb25WZXJpZmllZDtcblxuICBjb25zdCBmaXJzdFR5cGVOb2RlID0gZmlyc3RUeXBlTm9kZVF1ZXJ5KHR5cGVEZWNsYXJhdGlvbk5vZGUpLFxuICAgICAgICBzZWNvbmRUeXBlTm9kZSA9IHNlY29uZFR5cGVOb2RlUXVlcnkodHlwZURlY2xhcmF0aW9uTm9kZSksXG4gICAgICAgIHR5cGVOb2RlID0gZmlyc3RUeXBlTm9kZSwgLy8vXG4gICAgICAgIHN1cGVyVHlwZU5vZGUgPSBzZWNvbmRUeXBlTm9kZSwgLy8vXG4gICAgICAgIHR5cGVTdHJpbmcgPSBmaWxlQ29udGV4dC5ub2RlQXNTdHJpbmcodHlwZU5vZGUpLFxuICAgICAgICBzdXBlclR5cGVTdHJpbmcgPSBmaWxlQ29udGV4dC5ub2RlQXNTdHJpbmcoc3VwZXJUeXBlTm9kZSk7XG5cbiAgKHN1cGVyVHlwZVN0cmluZyA9PT0gRU1QVFlfU1RSSU5HKSA/XG4gICAgZmlsZUNvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7dHlwZVN0cmluZ30nIHR5cGUgZGVjbGFyYXRpb24uLi5gLCB0eXBlRGVjbGFyYXRpb25Ob2RlKSA6XG4gICAgICBmaWxlQ29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHt0eXBlU3RyaW5nfToke3N1cGVyVHlwZVN0cmluZ30nIHR5cGUgZGVjbGFyYXRpb24uLi5gLCB0eXBlRGVjbGFyYXRpb25Ob2RlKTtcblxuICBjb25zdCB0eXBlVmVyaWZpZWQgPSB2ZXJpZnlUeXBlKHR5cGVOb2RlLCBzdXBlclR5cGVOb2RlLCBmaWxlQ29udGV4dCk7XG5cbiAgdHlwZURlY2xhcmF0aW9uVmVyaWZpZWQgPSB0eXBlVmVyaWZpZWQ7IC8vL1xuXG4gIGlmICh0eXBlRGVjbGFyYXRpb25WZXJpZmllZCkge1xuICAgIChzdXBlclR5cGVTdHJpbmcgPT09IEVNUFRZX1NUUklORykgP1xuICAgICAgZmlsZUNvbnRleHQudHJhY2UoYC4uLnZlcmlmaWVkIHRoZSAnJHt0eXBlU3RyaW5nfScgdHlwZSBkZWNsYXJhdGlvbi5gLCB0eXBlRGVjbGFyYXRpb25Ob2RlKSA6XG4gICAgICAgIGZpbGVDb250ZXh0LnRyYWNlKGAuLi52ZXJpZmllZCB0aGUgJyR7dHlwZVN0cmluZ306JHtzdXBlclR5cGVTdHJpbmd9JyB0eXBlIGRlY2xhcmF0aW9uLmAsIHR5cGVEZWNsYXJhdGlvbk5vZGUpO1xuICB9XG5cbiAgcmV0dXJuIHR5cGVEZWNsYXJhdGlvblZlcmlmaWVkO1xufVxuIl0sIm5hbWVzIjpbInZlcmlmeVR5cGVEZWNsYXJhdGlvbiIsImZpcnN0VHlwZU5vZGVRdWVyeSIsIm5vZGVRdWVyeSIsInNlY29uZFR5cGVOb2RlUXVlcnkiLCJ0eXBlRGVjbGFyYXRpb25Ob2RlIiwiZmlsZUNvbnRleHQiLCJ0eXBlRGVjbGFyYXRpb25WZXJpZmllZCIsImZpcnN0VHlwZU5vZGUiLCJzZWNvbmRUeXBlTm9kZSIsInR5cGVOb2RlIiwic3VwZXJUeXBlTm9kZSIsInR5cGVTdHJpbmciLCJub2RlQXNTdHJpbmciLCJzdXBlclR5cGVTdHJpbmciLCJFTVBUWV9TVFJJTkciLCJ0cmFjZSIsInR5cGVWZXJpZmllZCIsInZlcmlmeVR5cGUiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQVVBOzs7ZUFBd0JBOzs7MkRBUkQ7cUJBRUc7eUJBQ0c7Ozs7OztBQUU3QixJQUFNQyxxQkFBcUJDLElBQUFBLGdCQUFTLEVBQUMsNkJBQy9CQyxzQkFBc0JELElBQUFBLGdCQUFTLEVBQUM7QUFFdkIsU0FBU0Ysc0JBQXNCSSxtQkFBbUIsRUFBRUMsV0FBVztJQUM1RSxJQUFJQztJQUVKLElBQU1DLGdCQUFnQk4sbUJBQW1CRyxzQkFDbkNJLGlCQUFpQkwsb0JBQW9CQyxzQkFDckNLLFdBQVdGLGVBQ1hHLGdCQUFnQkYsZ0JBQ2hCRyxhQUFhTixZQUFZTyxZQUFZLENBQUNILFdBQ3RDSSxrQkFBa0JSLFlBQVlPLFlBQVksQ0FBQ0Y7SUFFaERHLG9CQUFvQkMsdUJBQVksR0FDL0JULFlBQVlVLEtBQUssQ0FBQyxBQUFDLGtCQUE0QixPQUFYSixZQUFXLDBCQUF3QlAsdUJBQ3JFQyxZQUFZVSxLQUFLLENBQUMsQUFBQyxrQkFBK0JGLE9BQWRGLFlBQVcsS0FBbUIsT0FBaEJFLGlCQUFnQiwwQkFBd0JUO0lBRTlGLElBQU1ZLGVBQWVDLElBQUFBLGFBQVUsRUFBQ1IsVUFBVUMsZUFBZUw7SUFFekRDLDBCQUEwQlUsY0FBYyxHQUFHO0lBRTNDLElBQUlWLHlCQUF5QjtRQUMxQk8sb0JBQW9CQyx1QkFBWSxHQUMvQlQsWUFBWVUsS0FBSyxDQUFDLEFBQUMsb0JBQThCLE9BQVhKLFlBQVcsd0JBQXNCUCx1QkFDckVDLFlBQVlVLEtBQUssQ0FBQyxBQUFDLG9CQUFpQ0YsT0FBZEYsWUFBVyxLQUFtQixPQUFoQkUsaUJBQWdCLHdCQUFzQlQ7SUFDaEc7SUFFQSxPQUFPRTtBQUNUIn0=
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy92ZXJpZnkvZGVjbGFyYXRpb24vdHlwZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IFR5cGUgZnJvbSBcIi4uLy4uL3R5cGVcIjtcblxuaW1wb3J0IHsgbm9kZVF1ZXJ5IH0gZnJvbSBcIi4uLy4uL3V0aWxpdGllcy9xdWVyeVwiO1xuaW1wb3J0IHsgRU1QVFlfU1RSSU5HIH0gZnJvbSBcIi4uLy4uL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgdHlwZU5hbWVGcm9tVHlwZU5vZGUgfSBmcm9tIFwiLi4vLi4vdXRpbGl0aWVzL25hbWVcIjtcblxuY29uc3QgZmlyc3RUeXBlTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3R5cGVEZWNsYXJhdGlvbi90eXBlWzBdXCIpLFxuICAgICAgc2Vjb25kVHlwZU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi90eXBlRGVjbGFyYXRpb24vdHlwZVsxXVwiKTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdmVyaWZ5VHlwZURlY2xhcmF0aW9uKHR5cGVEZWNsYXJhdGlvbk5vZGUsIGZpbGVDb250ZXh0KSB7XG4gIGxldCB0eXBlRGVjbGFyYXRpb25WZXJpZmllZDtcblxuICBjb25zdCBmaXJzdFR5cGVOb2RlID0gZmlyc3RUeXBlTm9kZVF1ZXJ5KHR5cGVEZWNsYXJhdGlvbk5vZGUpLFxuICAgICAgICBzZWNvbmRUeXBlTm9kZSA9IHNlY29uZFR5cGVOb2RlUXVlcnkodHlwZURlY2xhcmF0aW9uTm9kZSksXG4gICAgICAgIHR5cGVOb2RlID0gZmlyc3RUeXBlTm9kZSwgLy8vXG4gICAgICAgIHN1cGVyVHlwZU5vZGUgPSBzZWNvbmRUeXBlTm9kZSwgLy8vXG4gICAgICAgIHR5cGVTdHJpbmcgPSBmaWxlQ29udGV4dC5ub2RlQXNTdHJpbmcodHlwZU5vZGUpLFxuICAgICAgICBzdXBlclR5cGVTdHJpbmcgPSBmaWxlQ29udGV4dC5ub2RlQXNTdHJpbmcoc3VwZXJUeXBlTm9kZSk7XG5cbiAgKHN1cGVyVHlwZVN0cmluZyA9PT0gRU1QVFlfU1RSSU5HKSA/XG4gICAgZmlsZUNvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7dHlwZVN0cmluZ30nIHR5cGUgZGVjbGFyYXRpb24uLi5gLCB0eXBlRGVjbGFyYXRpb25Ob2RlKSA6XG4gICAgICBmaWxlQ29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHt0eXBlU3RyaW5nfToke3N1cGVyVHlwZVN0cmluZ30nIHR5cGUgZGVjbGFyYXRpb24uLi5gLCB0eXBlRGVjbGFyYXRpb25Ob2RlKTtcblxuICBjb25zdCB0eXBlVmVyaWZpZWQgPSB2ZXJpZnlUeXBlKHR5cGVOb2RlLCBzdXBlclR5cGVOb2RlLCBmaWxlQ29udGV4dCk7XG5cbiAgdHlwZURlY2xhcmF0aW9uVmVyaWZpZWQgPSB0eXBlVmVyaWZpZWQ7IC8vL1xuXG4gIGlmICh0eXBlRGVjbGFyYXRpb25WZXJpZmllZCkge1xuICAgIChzdXBlclR5cGVTdHJpbmcgPT09IEVNUFRZX1NUUklORykgP1xuICAgICAgZmlsZUNvbnRleHQudHJhY2UoYC4uLnZlcmlmaWVkIHRoZSAnJHt0eXBlU3RyaW5nfScgdHlwZSBkZWNsYXJhdGlvbi5gLCB0eXBlRGVjbGFyYXRpb25Ob2RlKSA6XG4gICAgICAgIGZpbGVDb250ZXh0LnRyYWNlKGAuLi52ZXJpZmllZCB0aGUgJyR7dHlwZVN0cmluZ306JHtzdXBlclR5cGVTdHJpbmd9JyB0eXBlIGRlY2xhcmF0aW9uLmAsIHR5cGVEZWNsYXJhdGlvbk5vZGUpO1xuICB9XG5cbiAgcmV0dXJuIHR5cGVEZWNsYXJhdGlvblZlcmlmaWVkO1xufVxuXG5mdW5jdGlvbiB2ZXJpZnlUeXBlKHR5cGVOb2RlLCBzdXBlclR5cGVOb2RlLCBmaWxlQ29udGV4dCkge1xuICBsZXQgdHlwZVZlcmlmaWVkID0gZmFsc2U7XG5cbiAgY29uc3QgdHlwZVN0cmluZyA9IGZpbGVDb250ZXh0Lm5vZGVBc1N0cmluZyh0eXBlTm9kZSk7XG5cbiAgZmlsZUNvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7dHlwZVN0cmluZ30nIHR5cGUuLi5gLCB0eXBlTm9kZSk7XG5cbiAgY29uc3QgdHlwZVByZXNlbnQgPSBmaWxlQ29udGV4dC5pc1R5cGVQcmVzZW50QnlUeXBlTm9kZSh0eXBlTm9kZSk7XG5cbiAgaWYgKHR5cGVQcmVzZW50KSB7XG4gICAgY29uc3QgdHlwZVN0cmluZyA9IGZpbGVDb250ZXh0Lm5vZGVBc1N0cmluZyh0eXBlTm9kZSk7XG5cbiAgICBmaWxlQ29udGV4dC5kZWJ1ZyhgVGhlIHR5cGUgJyR7dHlwZVN0cmluZ30nIGlzIGFscmVhZHkgcHJlc2VudC5gLCB0eXBlTm9kZSk7XG4gIH0gZWxzZSB7XG4gICAgbGV0IHR5cGU7XG5cbiAgICBjb25zdCB0eXBlTmFtZSA9IHR5cGVOYW1lRnJvbVR5cGVOb2RlKHR5cGVOb2RlKTtcblxuICAgIGlmIChzdXBlclR5cGVOb2RlID09PSBudWxsKSB7XG4gICAgICB0eXBlID0gVHlwZS5mcm9tVHlwZU5hbWUodHlwZU5hbWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBzdXBlclR5cGUgPSBmaWxlQ29udGV4dC5maW5kVHlwZUJ5VHlwZU5vZGUoc3VwZXJUeXBlTm9kZSk7XG5cbiAgICAgIGlmIChzdXBlclR5cGUgPT09IG51bGwpIHtcbiAgICAgICAgY29uc3Qgc3VwZXJUeXBlU3RyaW5nID0gZmlsZUNvbnRleHQubm9kZUFzU3RyaW5nKHN1cGVyVHlwZU5vZGUpO1xuXG4gICAgICAgIGZpbGVDb250ZXh0LmRlYnVnKGBUaGUgc3VwZXItdHlwZSAnJHtzdXBlclR5cGVTdHJpbmd9JyBpcyBub3QgcHJlc2VudC5gLCB0eXBlTm9kZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0eXBlID0gVHlwZS5mcm9tVHlwZU5hbWVBbmRTdXBlclR5cGUodHlwZU5hbWUsIHN1cGVyVHlwZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHR5cGUgIT09IG51bGwpIHtcbiAgICAgIGZpbGVDb250ZXh0LmFkZFR5cGUodHlwZSk7XG5cbiAgICAgIHR5cGVWZXJpZmllZCA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgaWYgKHR5cGVWZXJpZmllZCkge1xuICAgIGZpbGVDb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7dHlwZVN0cmluZ30nIHR5cGUuYCwgdHlwZU5vZGUpO1xuICB9XG5cbiAgcmV0dXJuIHR5cGVWZXJpZmllZDtcbn1cbiJdLCJuYW1lcyI6WyJ2ZXJpZnlUeXBlRGVjbGFyYXRpb24iLCJmaXJzdFR5cGVOb2RlUXVlcnkiLCJub2RlUXVlcnkiLCJzZWNvbmRUeXBlTm9kZVF1ZXJ5IiwidHlwZURlY2xhcmF0aW9uTm9kZSIsImZpbGVDb250ZXh0IiwidHlwZURlY2xhcmF0aW9uVmVyaWZpZWQiLCJmaXJzdFR5cGVOb2RlIiwic2Vjb25kVHlwZU5vZGUiLCJ0eXBlTm9kZSIsInN1cGVyVHlwZU5vZGUiLCJ0eXBlU3RyaW5nIiwibm9kZUFzU3RyaW5nIiwic3VwZXJUeXBlU3RyaW5nIiwiRU1QVFlfU1RSSU5HIiwidHJhY2UiLCJ0eXBlVmVyaWZpZWQiLCJ2ZXJpZnlUeXBlIiwidHlwZVByZXNlbnQiLCJpc1R5cGVQcmVzZW50QnlUeXBlTm9kZSIsImRlYnVnIiwidHlwZSIsInR5cGVOYW1lIiwidHlwZU5hbWVGcm9tVHlwZU5vZGUiLCJUeXBlIiwiZnJvbVR5cGVOYW1lIiwic3VwZXJUeXBlIiwiZmluZFR5cGVCeVR5cGVOb2RlIiwiZnJvbVR5cGVOYW1lQW5kU3VwZXJUeXBlIiwiYWRkVHlwZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBV0E7OztlQUF3QkE7OzsyREFUUDtxQkFFUzt5QkFDRztvQkFDUTs7Ozs7O0FBRXJDLElBQU1DLHFCQUFxQkMsSUFBQUEsZ0JBQVMsRUFBQyw2QkFDL0JDLHNCQUFzQkQsSUFBQUEsZ0JBQVMsRUFBQztBQUV2QixTQUFTRixzQkFBc0JJLG1CQUFtQixFQUFFQyxXQUFXO0lBQzVFLElBQUlDO0lBRUosSUFBTUMsZ0JBQWdCTixtQkFBbUJHLHNCQUNuQ0ksaUJBQWlCTCxvQkFBb0JDLHNCQUNyQ0ssV0FBV0YsZUFDWEcsZ0JBQWdCRixnQkFDaEJHLGFBQWFOLFlBQVlPLFlBQVksQ0FBQ0gsV0FDdENJLGtCQUFrQlIsWUFBWU8sWUFBWSxDQUFDRjtJQUVoREcsb0JBQW9CQyx1QkFBWSxHQUMvQlQsWUFBWVUsS0FBSyxDQUFDLEFBQUMsa0JBQTRCLE9BQVhKLFlBQVcsMEJBQXdCUCx1QkFDckVDLFlBQVlVLEtBQUssQ0FBQyxBQUFDLGtCQUErQkYsT0FBZEYsWUFBVyxLQUFtQixPQUFoQkUsaUJBQWdCLDBCQUF3QlQ7SUFFOUYsSUFBTVksZUFBZUMsV0FBV1IsVUFBVUMsZUFBZUw7SUFFekRDLDBCQUEwQlUsY0FBYyxHQUFHO0lBRTNDLElBQUlWLHlCQUF5QjtRQUMxQk8sb0JBQW9CQyx1QkFBWSxHQUMvQlQsWUFBWVUsS0FBSyxDQUFDLEFBQUMsb0JBQThCLE9BQVhKLFlBQVcsd0JBQXNCUCx1QkFDckVDLFlBQVlVLEtBQUssQ0FBQyxBQUFDLG9CQUFpQ0YsT0FBZEYsWUFBVyxLQUFtQixPQUFoQkUsaUJBQWdCLHdCQUFzQlQ7SUFDaEc7SUFFQSxPQUFPRTtBQUNUO0FBRUEsU0FBU1csV0FBV1IsUUFBUSxFQUFFQyxhQUFhLEVBQUVMLFdBQVc7SUFDdEQsSUFBSVcsZUFBZTtJQUVuQixJQUFNTCxhQUFhTixZQUFZTyxZQUFZLENBQUNIO0lBRTVDSixZQUFZVSxLQUFLLENBQUMsQUFBQyxrQkFBNEIsT0FBWEosWUFBVyxjQUFZRjtJQUUzRCxJQUFNUyxjQUFjYixZQUFZYyx1QkFBdUIsQ0FBQ1Y7SUFFeEQsSUFBSVMsYUFBYTtRQUNmLElBQU1QLGNBQWFOLFlBQVlPLFlBQVksQ0FBQ0g7UUFFNUNKLFlBQVllLEtBQUssQ0FBQyxBQUFDLGFBQXVCLE9BQVhULGFBQVcsMEJBQXdCRjtJQUNwRSxPQUFPO1FBQ0wsSUFBSVk7UUFFSixJQUFNQyxXQUFXQyxJQUFBQSwwQkFBb0IsRUFBQ2Q7UUFFdEMsSUFBSUMsa0JBQWtCLE1BQU07WUFDMUJXLE9BQU9HLGFBQUksQ0FBQ0MsWUFBWSxDQUFDSDtRQUMzQixPQUFPO1lBQ0wsSUFBTUksWUFBWXJCLFlBQVlzQixrQkFBa0IsQ0FBQ2pCO1lBRWpELElBQUlnQixjQUFjLE1BQU07Z0JBQ3RCLElBQU1iLGtCQUFrQlIsWUFBWU8sWUFBWSxDQUFDRjtnQkFFakRMLFlBQVllLEtBQUssQ0FBQyxBQUFDLG1CQUFrQyxPQUFoQlAsaUJBQWdCLHNCQUFvQko7WUFDM0UsT0FBTztnQkFDTFksT0FBT0csYUFBSSxDQUFDSSx3QkFBd0IsQ0FBQ04sVUFBVUk7WUFDakQ7UUFDRjtRQUVBLElBQUlMLFNBQVMsTUFBTTtZQUNqQmhCLFlBQVl3QixPQUFPLENBQUNSO1lBRXBCTCxlQUFlO1FBQ2pCO0lBQ0Y7SUFFQSxJQUFJQSxjQUFjO1FBQ2hCWCxZQUFZZSxLQUFLLENBQUMsQUFBQyxvQkFBOEIsT0FBWFQsWUFBVyxZQUFVRjtJQUM3RDtJQUVBLE9BQU9PO0FBQ1QifQ==
@@ -8,8 +8,10 @@ Object.defineProperty(exports, "default", {
8
8
  return verifyVariableDeclaration;
9
9
  }
10
10
  });
11
- var _variable = /*#__PURE__*/ _interop_require_default(require("../../verify/variable"));
11
+ var _variable = /*#__PURE__*/ _interop_require_default(require("../../variable"));
12
+ var _variable1 = /*#__PURE__*/ _interop_require_default(require("../../assignment/variable"));
12
13
  var _query = require("../../utilities/query");
14
+ var _type = require("../../type");
13
15
  var _constants = require("../../constants");
14
16
  function _interop_require_default(obj) {
15
17
  return obj && obj.__esModule ? obj : {
@@ -21,12 +23,45 @@ function verifyVariableDeclaration(variableDeclarationNode, fileContext) {
21
23
  var variableDeclarationVerified;
22
24
  var typeNode = typeNodeQuery(variableDeclarationNode), variableNode = variableNodeQuery(variableDeclarationNode), typeString = fileContext.nodeAsString(typeNode), variableString = fileContext.nodeAsString(variableNode);
23
25
  typeString === _constants.EMPTY_STRING ? fileContext.trace("Verifying the '".concat(variableString, "' variable declaration..."), variableDeclarationNode) : fileContext.trace("Verifying the '".concat(variableString, ":").concat(typeString, "' variable declaration..."), variableDeclarationNode);
24
- var variableVVerified = (0, _variable.default)(variableNode, typeNode, fileContext);
26
+ var variableVVerified = verifyVariable(variableNode, typeNode, fileContext);
25
27
  variableDeclarationVerified = variableVVerified; ///
26
28
  if (variableDeclarationVerified) {
27
29
  typeString === _constants.EMPTY_STRING ? fileContext.debug("...verified the '".concat(variableString, "' variable declaration."), variableDeclarationNode) : fileContext.debug("...verified the '".concat(variableString, ":").concat(typeString, "' variable declaration."), variableDeclarationNode);
28
30
  }
29
31
  return variableDeclarationVerified;
30
32
  }
33
+ function verifyVariable(variableNode, typeNode, fileContext) {
34
+ var variableVerified = false;
35
+ var variableString = fileContext.nodeAsString(variableNode);
36
+ fileContext.trace("Verifying the '".concat(variableString, "' variable..."), variableNode);
37
+ var variablePresent = fileContext.isVariablePresentByVariableNode(variableNode);
38
+ if (variablePresent) {
39
+ fileContext.debug("The variable '".concat(variableString, "' is already present."), variableNode);
40
+ } else {
41
+ var variable;
42
+ if (typeNode === null) {
43
+ var type = _type.objectType;
44
+ variable = _variable.default.fromVariableNodeAndType(variableNode, type);
45
+ } else {
46
+ var type1 = fileContext.findTypeByTypeNode(typeNode);
47
+ if (type1 === null) {
48
+ var typeString = fileContext.nodeAsString(typeNode);
49
+ fileContext.debug("The '".concat(variableString, "' variable's '").concat(typeString, "' type is not present."), variableNode);
50
+ } else {
51
+ variable = _variable.default.fromVariableNodeAndType(variableNode, type1);
52
+ }
53
+ }
54
+ if (variable !== null) {
55
+ var variableAssignment = _variable1.default.fromVariable(variable), variableAssigned = variableAssignment.assign(fileContext);
56
+ if (variableAssigned) {
57
+ variableVerified = true;
58
+ }
59
+ }
60
+ }
61
+ if (variableVerified) {
62
+ fileContext.debug("...verified the '".concat(variableString, "' variable."), variableNode);
63
+ }
64
+ return variableVerified;
65
+ }
31
66
 
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy92ZXJpZnkvZGVjbGFyYXRpb24vdmFyaWFibGUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB2ZXJpZnlWYXJpYWJsZSBmcm9tIFwiLi4vLi4vdmVyaWZ5L3ZhcmlhYmxlXCI7XG5cbmltcG9ydCB7IG5vZGVRdWVyeSB9IGZyb20gXCIuLi8uLi91dGlsaXRpZXMvcXVlcnlcIjtcbmltcG9ydCB7IEVNUFRZX1NUUklORyB9IGZyb20gXCIuLi8uLi9jb25zdGFudHNcIjtcblxuY29uc3QgdHlwZU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi92YXJpYWJsZURlY2xhcmF0aW9uL3R5cGVcIiksXG4gICAgICB2YXJpYWJsZU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi92YXJpYWJsZURlY2xhcmF0aW9uL3ZhcmlhYmxlXCIpO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB2ZXJpZnlWYXJpYWJsZURlY2xhcmF0aW9uKHZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlLCBmaWxlQ29udGV4dCkge1xuICBsZXQgdmFyaWFibGVEZWNsYXJhdGlvblZlcmlmaWVkO1xuXG4gIGNvbnN0IHR5cGVOb2RlID0gdHlwZU5vZGVRdWVyeSh2YXJpYWJsZURlY2xhcmF0aW9uTm9kZSksXG4gICAgICAgIHZhcmlhYmxlTm9kZSA9IHZhcmlhYmxlTm9kZVF1ZXJ5KHZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlKSxcbiAgICAgICAgdHlwZVN0cmluZyA9IGZpbGVDb250ZXh0Lm5vZGVBc1N0cmluZyh0eXBlTm9kZSksXG4gICAgICAgIHZhcmlhYmxlU3RyaW5nID0gZmlsZUNvbnRleHQubm9kZUFzU3RyaW5nKHZhcmlhYmxlTm9kZSk7XG5cbiAgKHR5cGVTdHJpbmcgPT09IEVNUFRZX1NUUklORykgP1xuICAgIGZpbGVDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3ZhcmlhYmxlU3RyaW5nfScgdmFyaWFibGUgZGVjbGFyYXRpb24uLi5gLCB2YXJpYWJsZURlY2xhcmF0aW9uTm9kZSkgOlxuICAgICAgZmlsZUNvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7dmFyaWFibGVTdHJpbmd9OiR7dHlwZVN0cmluZ30nIHZhcmlhYmxlIGRlY2xhcmF0aW9uLi4uYCwgdmFyaWFibGVEZWNsYXJhdGlvbk5vZGUpO1xuXG4gIGNvbnN0IHZhcmlhYmxlVlZlcmlmaWVkID0gdmVyaWZ5VmFyaWFibGUodmFyaWFibGVOb2RlLCB0eXBlTm9kZSwgZmlsZUNvbnRleHQpO1xuXG4gIHZhcmlhYmxlRGVjbGFyYXRpb25WZXJpZmllZCA9IHZhcmlhYmxlVlZlcmlmaWVkOyAgLy8vXG5cbiAgaWYgKHZhcmlhYmxlRGVjbGFyYXRpb25WZXJpZmllZCkge1xuICAgICh0eXBlU3RyaW5nID09PSBFTVBUWV9TVFJJTkcpID9cbiAgICAgIGZpbGVDb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7dmFyaWFibGVTdHJpbmd9JyB2YXJpYWJsZSBkZWNsYXJhdGlvbi5gLCB2YXJpYWJsZURlY2xhcmF0aW9uTm9kZSkgOlxuICAgICAgICBmaWxlQ29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke3ZhcmlhYmxlU3RyaW5nfToke3R5cGVTdHJpbmd9JyB2YXJpYWJsZSBkZWNsYXJhdGlvbi5gLCB2YXJpYWJsZURlY2xhcmF0aW9uTm9kZSk7XG4gIH1cblxuICByZXR1cm4gdmFyaWFibGVEZWNsYXJhdGlvblZlcmlmaWVkO1xufVxuIl0sIm5hbWVzIjpbInZlcmlmeVZhcmlhYmxlRGVjbGFyYXRpb24iLCJ0eXBlTm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5IiwidmFyaWFibGVOb2RlUXVlcnkiLCJ2YXJpYWJsZURlY2xhcmF0aW9uTm9kZSIsImZpbGVDb250ZXh0IiwidmFyaWFibGVEZWNsYXJhdGlvblZlcmlmaWVkIiwidHlwZU5vZGUiLCJ2YXJpYWJsZU5vZGUiLCJ0eXBlU3RyaW5nIiwibm9kZUFzU3RyaW5nIiwidmFyaWFibGVTdHJpbmciLCJFTVBUWV9TVFJJTkciLCJ0cmFjZSIsInZhcmlhYmxlVlZlcmlmaWVkIiwidmVyaWZ5VmFyaWFibGUiLCJkZWJ1ZyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBVUE7OztlQUF3QkE7OzsrREFSRztxQkFFRDt5QkFDRzs7Ozs7O0FBRTdCLElBQU1DLGdCQUFnQkMsSUFBQUEsZ0JBQVMsRUFBQyw4QkFDMUJDLG9CQUFvQkQsSUFBQUEsZ0JBQVMsRUFBQztBQUVyQixTQUFTRiwwQkFBMEJJLHVCQUF1QixFQUFFQyxXQUFXO0lBQ3BGLElBQUlDO0lBRUosSUFBTUMsV0FBV04sY0FBY0csMEJBQ3pCSSxlQUFlTCxrQkFBa0JDLDBCQUNqQ0ssYUFBYUosWUFBWUssWUFBWSxDQUFDSCxXQUN0Q0ksaUJBQWlCTixZQUFZSyxZQUFZLENBQUNGO0lBRS9DQyxlQUFlRyx1QkFBWSxHQUMxQlAsWUFBWVEsS0FBSyxDQUFDLEFBQUMsa0JBQWdDLE9BQWZGLGdCQUFlLDhCQUE0QlAsMkJBQzdFQyxZQUFZUSxLQUFLLENBQUMsQUFBQyxrQkFBbUNKLE9BQWxCRSxnQkFBZSxLQUFjLE9BQVhGLFlBQVcsOEJBQTRCTDtJQUVqRyxJQUFNVSxvQkFBb0JDLElBQUFBLGlCQUFjLEVBQUNQLGNBQWNELFVBQVVGO0lBRWpFQyw4QkFBOEJRLG1CQUFvQixHQUFHO0lBRXJELElBQUlSLDZCQUE2QjtRQUM5QkcsZUFBZUcsdUJBQVksR0FDMUJQLFlBQVlXLEtBQUssQ0FBQyxBQUFDLG9CQUFrQyxPQUFmTCxnQkFBZSw0QkFBMEJQLDJCQUM3RUMsWUFBWVcsS0FBSyxDQUFDLEFBQUMsb0JBQXFDUCxPQUFsQkUsZ0JBQWUsS0FBYyxPQUFYRixZQUFXLDRCQUEwQkw7SUFDbkc7SUFFQSxPQUFPRTtBQUNUIn0=
67
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy92ZXJpZnkvZGVjbGFyYXRpb24vdmFyaWFibGUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBWYXJpYWJsZSBmcm9tIFwiLi4vLi4vdmFyaWFibGVcIjtcbmltcG9ydCBWYXJpYWJsZUFzc2lnbm1lbnQgZnJvbSBcIi4uLy4uL2Fzc2lnbm1lbnQvdmFyaWFibGVcIjtcblxuaW1wb3J0IHsgbm9kZVF1ZXJ5IH0gZnJvbSBcIi4uLy4uL3V0aWxpdGllcy9xdWVyeVwiO1xuaW1wb3J0IHsgb2JqZWN0VHlwZSB9IGZyb20gXCIuLi8uLi90eXBlXCI7XG5pbXBvcnQgeyBFTVBUWV9TVFJJTkcgfSBmcm9tIFwiLi4vLi4vY29uc3RhbnRzXCI7XG5cbmNvbnN0IHR5cGVOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvdmFyaWFibGVEZWNsYXJhdGlvbi90eXBlXCIpLFxuICAgICAgdmFyaWFibGVOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvdmFyaWFibGVEZWNsYXJhdGlvbi92YXJpYWJsZVwiKTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdmVyaWZ5VmFyaWFibGVEZWNsYXJhdGlvbih2YXJpYWJsZURlY2xhcmF0aW9uTm9kZSwgZmlsZUNvbnRleHQpIHtcbiAgbGV0IHZhcmlhYmxlRGVjbGFyYXRpb25WZXJpZmllZDtcblxuICBjb25zdCB0eXBlTm9kZSA9IHR5cGVOb2RlUXVlcnkodmFyaWFibGVEZWNsYXJhdGlvbk5vZGUpLFxuICAgICAgICB2YXJpYWJsZU5vZGUgPSB2YXJpYWJsZU5vZGVRdWVyeSh2YXJpYWJsZURlY2xhcmF0aW9uTm9kZSksXG4gICAgICAgIHR5cGVTdHJpbmcgPSBmaWxlQ29udGV4dC5ub2RlQXNTdHJpbmcodHlwZU5vZGUpLFxuICAgICAgICB2YXJpYWJsZVN0cmluZyA9IGZpbGVDb250ZXh0Lm5vZGVBc1N0cmluZyh2YXJpYWJsZU5vZGUpO1xuXG4gICh0eXBlU3RyaW5nID09PSBFTVBUWV9TVFJJTkcpID9cbiAgICBmaWxlQ29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHt2YXJpYWJsZVN0cmluZ30nIHZhcmlhYmxlIGRlY2xhcmF0aW9uLi4uYCwgdmFyaWFibGVEZWNsYXJhdGlvbk5vZGUpIDpcbiAgICAgIGZpbGVDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3ZhcmlhYmxlU3RyaW5nfToke3R5cGVTdHJpbmd9JyB2YXJpYWJsZSBkZWNsYXJhdGlvbi4uLmAsIHZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlKTtcblxuICBjb25zdCB2YXJpYWJsZVZWZXJpZmllZCA9IHZlcmlmeVZhcmlhYmxlKHZhcmlhYmxlTm9kZSwgdHlwZU5vZGUsIGZpbGVDb250ZXh0KTtcblxuICB2YXJpYWJsZURlY2xhcmF0aW9uVmVyaWZpZWQgPSB2YXJpYWJsZVZWZXJpZmllZDsgIC8vL1xuXG4gIGlmICh2YXJpYWJsZURlY2xhcmF0aW9uVmVyaWZpZWQpIHtcbiAgICAodHlwZVN0cmluZyA9PT0gRU1QVFlfU1RSSU5HKSA/XG4gICAgICBmaWxlQ29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke3ZhcmlhYmxlU3RyaW5nfScgdmFyaWFibGUgZGVjbGFyYXRpb24uYCwgdmFyaWFibGVEZWNsYXJhdGlvbk5vZGUpIDpcbiAgICAgICAgZmlsZUNvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHt2YXJpYWJsZVN0cmluZ306JHt0eXBlU3RyaW5nfScgdmFyaWFibGUgZGVjbGFyYXRpb24uYCwgdmFyaWFibGVEZWNsYXJhdGlvbk5vZGUpO1xuICB9XG5cbiAgcmV0dXJuIHZhcmlhYmxlRGVjbGFyYXRpb25WZXJpZmllZDtcbn1cblxuZnVuY3Rpb24gdmVyaWZ5VmFyaWFibGUodmFyaWFibGVOb2RlLCB0eXBlTm9kZSwgZmlsZUNvbnRleHQpIHtcbiAgbGV0IHZhcmlhYmxlVmVyaWZpZWQgPSBmYWxzZTtcblxuICBjb25zdCB2YXJpYWJsZVN0cmluZyA9IGZpbGVDb250ZXh0Lm5vZGVBc1N0cmluZyh2YXJpYWJsZU5vZGUpO1xuXG4gIGZpbGVDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3ZhcmlhYmxlU3RyaW5nfScgdmFyaWFibGUuLi5gLCB2YXJpYWJsZU5vZGUpO1xuXG4gIGNvbnN0IHZhcmlhYmxlUHJlc2VudCA9IGZpbGVDb250ZXh0LmlzVmFyaWFibGVQcmVzZW50QnlWYXJpYWJsZU5vZGUodmFyaWFibGVOb2RlKTtcblxuICBpZiAodmFyaWFibGVQcmVzZW50KSB7XG4gICAgZmlsZUNvbnRleHQuZGVidWcoYFRoZSB2YXJpYWJsZSAnJHt2YXJpYWJsZVN0cmluZ30nIGlzIGFscmVhZHkgcHJlc2VudC5gLCB2YXJpYWJsZU5vZGUpO1xuICB9IGVsc2Uge1xuICAgIGxldCB2YXJpYWJsZTtcblxuICAgIGlmICh0eXBlTm9kZSA9PT0gbnVsbCkge1xuICAgICAgY29uc3QgdHlwZSA9IG9iamVjdFR5cGU7XG5cbiAgICAgIHZhcmlhYmxlID0gVmFyaWFibGUuZnJvbVZhcmlhYmxlTm9kZUFuZFR5cGUodmFyaWFibGVOb2RlLCB0eXBlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgdHlwZSA9IGZpbGVDb250ZXh0LmZpbmRUeXBlQnlUeXBlTm9kZSh0eXBlTm9kZSk7XG5cbiAgICAgIGlmICh0eXBlID09PSBudWxsKSB7XG4gICAgICAgIGNvbnN0IHR5cGVTdHJpbmcgPSBmaWxlQ29udGV4dC5ub2RlQXNTdHJpbmcodHlwZU5vZGUpO1xuXG4gICAgICAgIGZpbGVDb250ZXh0LmRlYnVnKGBUaGUgJyR7dmFyaWFibGVTdHJpbmd9JyB2YXJpYWJsZSdzICcke3R5cGVTdHJpbmd9JyB0eXBlIGlzIG5vdCBwcmVzZW50LmAsIHZhcmlhYmxlTm9kZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB2YXJpYWJsZSA9IFZhcmlhYmxlLmZyb21WYXJpYWJsZU5vZGVBbmRUeXBlKHZhcmlhYmxlTm9kZSwgdHlwZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHZhcmlhYmxlICE9PSBudWxsKSB7XG4gICAgICBjb25zdCB2YXJpYWJsZUFzc2lnbm1lbnQgPSBWYXJpYWJsZUFzc2lnbm1lbnQuZnJvbVZhcmlhYmxlKHZhcmlhYmxlKSxcbiAgICAgICAgICAgIHZhcmlhYmxlQXNzaWduZWQgPSB2YXJpYWJsZUFzc2lnbm1lbnQuYXNzaWduKGZpbGVDb250ZXh0KTtcblxuICAgICAgaWYgKHZhcmlhYmxlQXNzaWduZWQpIHtcbiAgICAgICAgdmFyaWFibGVWZXJpZmllZCA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgaWYgKHZhcmlhYmxlVmVyaWZpZWQpIHtcbiAgICBmaWxlQ29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke3ZhcmlhYmxlU3RyaW5nfScgdmFyaWFibGUuYCwgdmFyaWFibGVOb2RlKTtcbiAgfVxuXG4gIHJldHVybiB2YXJpYWJsZVZlcmlmaWVkO1xufVxuIl0sIm5hbWVzIjpbInZlcmlmeVZhcmlhYmxlRGVjbGFyYXRpb24iLCJ0eXBlTm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5IiwidmFyaWFibGVOb2RlUXVlcnkiLCJ2YXJpYWJsZURlY2xhcmF0aW9uTm9kZSIsImZpbGVDb250ZXh0IiwidmFyaWFibGVEZWNsYXJhdGlvblZlcmlmaWVkIiwidHlwZU5vZGUiLCJ2YXJpYWJsZU5vZGUiLCJ0eXBlU3RyaW5nIiwibm9kZUFzU3RyaW5nIiwidmFyaWFibGVTdHJpbmciLCJFTVBUWV9TVFJJTkciLCJ0cmFjZSIsInZhcmlhYmxlVlZlcmlmaWVkIiwidmVyaWZ5VmFyaWFibGUiLCJkZWJ1ZyIsInZhcmlhYmxlVmVyaWZpZWQiLCJ2YXJpYWJsZVByZXNlbnQiLCJpc1ZhcmlhYmxlUHJlc2VudEJ5VmFyaWFibGVOb2RlIiwidmFyaWFibGUiLCJ0eXBlIiwib2JqZWN0VHlwZSIsIlZhcmlhYmxlIiwiZnJvbVZhcmlhYmxlTm9kZUFuZFR5cGUiLCJmaW5kVHlwZUJ5VHlwZU5vZGUiLCJ2YXJpYWJsZUFzc2lnbm1lbnQiLCJWYXJpYWJsZUFzc2lnbm1lbnQiLCJmcm9tVmFyaWFibGUiLCJ2YXJpYWJsZUFzc2lnbmVkIiwiYXNzaWduIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFZQTs7O2VBQXdCQTs7OytEQVZIO2dFQUNVO3FCQUVMO29CQUNDO3lCQUNFOzs7Ozs7QUFFN0IsSUFBTUMsZ0JBQWdCQyxJQUFBQSxnQkFBUyxFQUFDLDhCQUMxQkMsb0JBQW9CRCxJQUFBQSxnQkFBUyxFQUFDO0FBRXJCLFNBQVNGLDBCQUEwQkksdUJBQXVCLEVBQUVDLFdBQVc7SUFDcEYsSUFBSUM7SUFFSixJQUFNQyxXQUFXTixjQUFjRywwQkFDekJJLGVBQWVMLGtCQUFrQkMsMEJBQ2pDSyxhQUFhSixZQUFZSyxZQUFZLENBQUNILFdBQ3RDSSxpQkFBaUJOLFlBQVlLLFlBQVksQ0FBQ0Y7SUFFL0NDLGVBQWVHLHVCQUFZLEdBQzFCUCxZQUFZUSxLQUFLLENBQUMsQUFBQyxrQkFBZ0MsT0FBZkYsZ0JBQWUsOEJBQTRCUCwyQkFDN0VDLFlBQVlRLEtBQUssQ0FBQyxBQUFDLGtCQUFtQ0osT0FBbEJFLGdCQUFlLEtBQWMsT0FBWEYsWUFBVyw4QkFBNEJMO0lBRWpHLElBQU1VLG9CQUFvQkMsZUFBZVAsY0FBY0QsVUFBVUY7SUFFakVDLDhCQUE4QlEsbUJBQW9CLEdBQUc7SUFFckQsSUFBSVIsNkJBQTZCO1FBQzlCRyxlQUFlRyx1QkFBWSxHQUMxQlAsWUFBWVcsS0FBSyxDQUFDLEFBQUMsb0JBQWtDLE9BQWZMLGdCQUFlLDRCQUEwQlAsMkJBQzdFQyxZQUFZVyxLQUFLLENBQUMsQUFBQyxvQkFBcUNQLE9BQWxCRSxnQkFBZSxLQUFjLE9BQVhGLFlBQVcsNEJBQTBCTDtJQUNuRztJQUVBLE9BQU9FO0FBQ1Q7QUFFQSxTQUFTUyxlQUFlUCxZQUFZLEVBQUVELFFBQVEsRUFBRUYsV0FBVztJQUN6RCxJQUFJWSxtQkFBbUI7SUFFdkIsSUFBTU4saUJBQWlCTixZQUFZSyxZQUFZLENBQUNGO0lBRWhESCxZQUFZUSxLQUFLLENBQUMsQUFBQyxrQkFBZ0MsT0FBZkYsZ0JBQWUsa0JBQWdCSDtJQUVuRSxJQUFNVSxrQkFBa0JiLFlBQVljLCtCQUErQixDQUFDWDtJQUVwRSxJQUFJVSxpQkFBaUI7UUFDbkJiLFlBQVlXLEtBQUssQ0FBQyxBQUFDLGlCQUErQixPQUFmTCxnQkFBZSwwQkFBd0JIO0lBQzVFLE9BQU87UUFDTCxJQUFJWTtRQUVKLElBQUliLGFBQWEsTUFBTTtZQUNyQixJQUFNYyxPQUFPQyxnQkFBVTtZQUV2QkYsV0FBV0csaUJBQVEsQ0FBQ0MsdUJBQXVCLENBQUNoQixjQUFjYTtRQUM1RCxPQUFPO1lBQ0wsSUFBTUEsUUFBT2hCLFlBQVlvQixrQkFBa0IsQ0FBQ2xCO1lBRTVDLElBQUljLFVBQVMsTUFBTTtnQkFDakIsSUFBTVosYUFBYUosWUFBWUssWUFBWSxDQUFDSDtnQkFFNUNGLFlBQVlXLEtBQUssQ0FBQyxBQUFDLFFBQXNDUCxPQUEvQkUsZ0JBQWUsa0JBQTJCLE9BQVhGLFlBQVcsMkJBQXlCRDtZQUMvRixPQUFPO2dCQUNMWSxXQUFXRyxpQkFBUSxDQUFDQyx1QkFBdUIsQ0FBQ2hCLGNBQWNhO1lBQzVEO1FBQ0Y7UUFFQSxJQUFJRCxhQUFhLE1BQU07WUFDckIsSUFBTU0scUJBQXFCQyxrQkFBa0IsQ0FBQ0MsWUFBWSxDQUFDUixXQUNyRFMsbUJBQW1CSCxtQkFBbUJJLE1BQU0sQ0FBQ3pCO1lBRW5ELElBQUl3QixrQkFBa0I7Z0JBQ3BCWixtQkFBbUI7WUFDckI7UUFDRjtJQUNGO0lBRUEsSUFBSUEsa0JBQWtCO1FBQ3BCWixZQUFZVyxLQUFLLENBQUMsQUFBQyxvQkFBa0MsT0FBZkwsZ0JBQWUsZ0JBQWNIO0lBQ3JFO0lBRUEsT0FBT1M7QUFDVCJ9
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "default", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return verifyError;
9
+ }
10
+ });
11
+ function verifyError(errorNode, fileContext) {
12
+ var errorVerified = false;
13
+ var errorString = fileContext.nodeAsString(errorNode);
14
+ fileContext.debug("The '".concat(errorString, "' cannot be verified."), errorNode);
15
+ return errorVerified;
16
+ }
17
+
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvZXJyb3IuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHZlcmlmeUVycm9yKGVycm9yTm9kZSwgZmlsZUNvbnRleHQpIHtcbiAgbGV0IGVycm9yVmVyaWZpZWQgPSBmYWxzZTtcblxuICBjb25zdCBlcnJvclN0cmluZyA9IGZpbGVDb250ZXh0Lm5vZGVBc1N0cmluZyhlcnJvck5vZGUpXG5cbiAgZmlsZUNvbnRleHQuZGVidWcoYFRoZSAnJHtlcnJvclN0cmluZ30nIGNhbm5vdCBiZSB2ZXJpZmllZC5gLCBlcnJvck5vZGUpO1xuXG4gIHJldHVybiBlcnJvclZlcmlmaWVkO1xufVxuIl0sIm5hbWVzIjpbInZlcmlmeUVycm9yIiwiZXJyb3JOb2RlIiwiZmlsZUNvbnRleHQiLCJlcnJvclZlcmlmaWVkIiwiZXJyb3JTdHJpbmciLCJub2RlQXNTdHJpbmciLCJkZWJ1ZyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBRUE7OztlQUF3QkE7OztBQUFULFNBQVNBLFlBQVlDLFNBQVMsRUFBRUMsV0FBVztJQUN4RCxJQUFJQyxnQkFBZ0I7SUFFcEIsSUFBTUMsY0FBY0YsWUFBWUcsWUFBWSxDQUFDSjtJQUU3Q0MsWUFBWUksS0FBSyxDQUFDLEFBQUMsUUFBbUIsT0FBWkYsYUFBWSwwQkFBd0JIO0lBRTlELE9BQU9FO0FBQ1QifQ==
@@ -9,35 +9,21 @@ Object.defineProperty(exports, "default", {
9
9
  }
10
10
  });
11
11
  var _file = /*#__PURE__*/ _interop_require_default(require("../context/file"));
12
- var _topLevel = /*#__PURE__*/ _interop_require_default(require("../verify/declaration/topLevel"));
13
- var _query = require("../utilities/query");
12
+ var _topLevel = /*#__PURE__*/ _interop_require_default(require("../verifier/topLevel"));
14
13
  function _interop_require_default(obj) {
15
14
  return obj && obj.__esModule ? obj : {
16
15
  default: obj
17
16
  };
18
17
  }
19
- var errorNodesQuery = (0, _query.nodesQuery)("/document/error"), topLevelDeclarationNodesQuery = (0, _query.nodesQuery)("/document/topLevelDeclaration");
20
18
  function verifyFile(filePath, releaseContext) {
21
19
  var fileVerified = false;
22
20
  releaseContext.debug("Verifying the '".concat(filePath, "' file..."));
23
21
  var fileContext = _file.default.fromFilePathAndReleaseContext(filePath, releaseContext), node = fileContext.getNode();
24
- if (node === null) {
25
- fileVerified = true;
26
- } else {
27
- var errorNodes = errorNodesQuery(node), errorNodesLength = errorNodes.length;
28
- if (errorNodesLength > 0) {
29
- releaseContext.warning("The '".concat(filePath, "' file cannot be verified because it contains errors."));
30
- } else {
31
- var topLevelDeclarationNodes = topLevelDeclarationNodesQuery(node), topLevelDeclarationsVerified = topLevelDeclarationNodes.every(function(topLevelDeclarationNode) {
32
- var topLevelDeclarationVerified = (0, _topLevel.default)(topLevelDeclarationNode, fileContext);
33
- if (topLevelDeclarationVerified) {
34
- return true;
35
- }
36
- });
37
- if (topLevelDeclarationsVerified) {
38
- releaseContext.addFileContext(fileContext);
39
- fileVerified = true;
40
- }
22
+ if (node !== null) {
23
+ var verified = _topLevel.default.verify(node, fileContext);
24
+ if (verified) {
25
+ releaseContext.addFileContext(fileContext);
26
+ fileVerified = true;
41
27
  }
42
28
  }
43
29
  if (fileVerified) {
@@ -46,4 +32,4 @@ function verifyFile(filePath, releaseContext) {
46
32
  return fileVerified;
47
33
  }
48
34
 
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvZmlsZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IEZpbGVDb250ZXh0IGZyb20gXCIuLi9jb250ZXh0L2ZpbGVcIjtcbmltcG9ydCB2ZXJpZnlUb3BMZXZlbERlY2xhcmF0aW9uIGZyb20gXCIuLi92ZXJpZnkvZGVjbGFyYXRpb24vdG9wTGV2ZWxcIjtcblxuaW1wb3J0IHsgbm9kZXNRdWVyeSB9IGZyb20gXCIuLi91dGlsaXRpZXMvcXVlcnlcIjtcblxuY29uc3QgZXJyb3JOb2Rlc1F1ZXJ5ID0gbm9kZXNRdWVyeShcIi9kb2N1bWVudC9lcnJvclwiKSxcbiAgICAgIHRvcExldmVsRGVjbGFyYXRpb25Ob2Rlc1F1ZXJ5ID0gbm9kZXNRdWVyeShcIi9kb2N1bWVudC90b3BMZXZlbERlY2xhcmF0aW9uXCIpO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB2ZXJpZnlGaWxlKGZpbGVQYXRoLCByZWxlYXNlQ29udGV4dCkge1xuICBsZXQgZmlsZVZlcmlmaWVkID0gZmFsc2U7XG5cbiAgcmVsZWFzZUNvbnRleHQuZGVidWcoYFZlcmlmeWluZyB0aGUgJyR7ZmlsZVBhdGh9JyBmaWxlLi4uYCk7XG5cbiAgY29uc3QgZmlsZUNvbnRleHQgPSBGaWxlQ29udGV4dC5mcm9tRmlsZVBhdGhBbmRSZWxlYXNlQ29udGV4dChmaWxlUGF0aCwgcmVsZWFzZUNvbnRleHQpLFxuICAgICAgICBub2RlID0gZmlsZUNvbnRleHQuZ2V0Tm9kZSgpO1xuXG4gIGlmIChub2RlID09PSBudWxsKSB7XG4gICAgZmlsZVZlcmlmaWVkID0gdHJ1ZTtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCBlcnJvck5vZGVzID0gZXJyb3JOb2Rlc1F1ZXJ5KG5vZGUpLFxuICAgICAgICAgIGVycm9yTm9kZXNMZW5ndGggPSBlcnJvck5vZGVzLmxlbmd0aDtcblxuICAgIGlmIChlcnJvck5vZGVzTGVuZ3RoID4gMCkge1xuICAgICAgcmVsZWFzZUNvbnRleHQud2FybmluZyhgVGhlICcke2ZpbGVQYXRofScgZmlsZSBjYW5ub3QgYmUgdmVyaWZpZWQgYmVjYXVzZSBpdCBjb250YWlucyBlcnJvcnMuYCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHRvcExldmVsRGVjbGFyYXRpb25Ob2RlcyA9IHRvcExldmVsRGVjbGFyYXRpb25Ob2Rlc1F1ZXJ5KG5vZGUpLFxuICAgICAgICAgICAgdG9wTGV2ZWxEZWNsYXJhdGlvbnNWZXJpZmllZCA9IHRvcExldmVsRGVjbGFyYXRpb25Ob2Rlcy5ldmVyeSgodG9wTGV2ZWxEZWNsYXJhdGlvbk5vZGUpID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgdG9wTGV2ZWxEZWNsYXJhdGlvblZlcmlmaWVkID0gdmVyaWZ5VG9wTGV2ZWxEZWNsYXJhdGlvbih0b3BMZXZlbERlY2xhcmF0aW9uTm9kZSwgZmlsZUNvbnRleHQpO1xuXG4gICAgICAgICAgICAgIGlmICh0b3BMZXZlbERlY2xhcmF0aW9uVmVyaWZpZWQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG5cbiAgICAgIGlmICh0b3BMZXZlbERlY2xhcmF0aW9uc1ZlcmlmaWVkKSB7XG4gICAgICAgIHJlbGVhc2VDb250ZXh0LmFkZEZpbGVDb250ZXh0KGZpbGVDb250ZXh0KTtcblxuICAgICAgICBmaWxlVmVyaWZpZWQgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGlmIChmaWxlVmVyaWZpZWQpIHtcbiAgICByZWxlYXNlQ29udGV4dC5pbmZvKGAuLi52ZXJpZmllZCB0aGUgJyR7ZmlsZVBhdGh9JyBmaWxlLmApO1xuICB9XG5cbiAgcmV0dXJuIGZpbGVWZXJpZmllZDtcbn1cbiJdLCJuYW1lcyI6WyJ2ZXJpZnlGaWxlIiwiZXJyb3JOb2Rlc1F1ZXJ5Iiwibm9kZXNRdWVyeSIsInRvcExldmVsRGVjbGFyYXRpb25Ob2Rlc1F1ZXJ5IiwiZmlsZVBhdGgiLCJyZWxlYXNlQ29udGV4dCIsImZpbGVWZXJpZmllZCIsImRlYnVnIiwiZmlsZUNvbnRleHQiLCJGaWxlQ29udGV4dCIsImZyb21GaWxlUGF0aEFuZFJlbGVhc2VDb250ZXh0Iiwibm9kZSIsImdldE5vZGUiLCJlcnJvck5vZGVzIiwiZXJyb3JOb2Rlc0xlbmd0aCIsImxlbmd0aCIsIndhcm5pbmciLCJ0b3BMZXZlbERlY2xhcmF0aW9uTm9kZXMiLCJ0b3BMZXZlbERlY2xhcmF0aW9uc1ZlcmlmaWVkIiwiZXZlcnkiLCJ0b3BMZXZlbERlY2xhcmF0aW9uTm9kZSIsInRvcExldmVsRGVjbGFyYXRpb25WZXJpZmllZCIsInZlcmlmeVRvcExldmVsRGVjbGFyYXRpb24iLCJhZGRGaWxlQ29udGV4dCIsImluZm8iXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQVVBOzs7ZUFBd0JBOzs7MkRBUkE7K0RBQ2M7cUJBRVg7Ozs7OztBQUUzQixJQUFNQyxrQkFBa0JDLElBQUFBLGlCQUFVLEVBQUMsb0JBQzdCQyxnQ0FBZ0NELElBQUFBLGlCQUFVLEVBQUM7QUFFbEMsU0FBU0YsV0FBV0ksUUFBUSxFQUFFQyxjQUFjO0lBQ3pELElBQUlDLGVBQWU7SUFFbkJELGVBQWVFLEtBQUssQ0FBQyxBQUFDLGtCQUEwQixPQUFUSCxVQUFTO0lBRWhELElBQU1JLGNBQWNDLGFBQVcsQ0FBQ0MsNkJBQTZCLENBQUNOLFVBQVVDLGlCQUNsRU0sT0FBT0gsWUFBWUksT0FBTztJQUVoQyxJQUFJRCxTQUFTLE1BQU07UUFDakJMLGVBQWU7SUFDakIsT0FBTztRQUNMLElBQU1PLGFBQWFaLGdCQUFnQlUsT0FDN0JHLG1CQUFtQkQsV0FBV0UsTUFBTTtRQUUxQyxJQUFJRCxtQkFBbUIsR0FBRztZQUN4QlQsZUFBZVcsT0FBTyxDQUFDLEFBQUMsUUFBZ0IsT0FBVFosVUFBUztRQUMxQyxPQUFPO1lBQ0wsSUFBTWEsMkJBQTJCZCw4QkFBOEJRLE9BQ3pETywrQkFBK0JELHlCQUF5QkUsS0FBSyxDQUFDLFNBQUNDO2dCQUM3RCxJQUFNQyw4QkFBOEJDLElBQUFBLGlCQUF5QixFQUFDRix5QkFBeUJaO2dCQUV2RixJQUFJYSw2QkFBNkI7b0JBQy9CLE9BQU87Z0JBQ1Q7WUFDRjtZQUVOLElBQUlILDhCQUE4QjtnQkFDaENiLGVBQWVrQixjQUFjLENBQUNmO2dCQUU5QkYsZUFBZTtZQUNqQjtRQUNGO0lBQ0Y7SUFFQSxJQUFJQSxjQUFjO1FBQ2hCRCxlQUFlbUIsSUFBSSxDQUFDLEFBQUMsb0JBQTRCLE9BQVRwQixVQUFTO0lBQ25EO0lBRUEsT0FBT0U7QUFDVCJ9
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvZmlsZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IEZpbGVDb250ZXh0IGZyb20gXCIuLi9jb250ZXh0L2ZpbGVcIjtcbmltcG9ydCB0b3BMZXZlbFZlcmlmaWVyIGZyb20gXCIuLi92ZXJpZmllci90b3BMZXZlbFwiO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB2ZXJpZnlGaWxlKGZpbGVQYXRoLCByZWxlYXNlQ29udGV4dCkge1xuICBsZXQgZmlsZVZlcmlmaWVkID0gZmFsc2U7XG5cbiAgcmVsZWFzZUNvbnRleHQuZGVidWcoYFZlcmlmeWluZyB0aGUgJyR7ZmlsZVBhdGh9JyBmaWxlLi4uYCk7XG5cbiAgY29uc3QgZmlsZUNvbnRleHQgPSBGaWxlQ29udGV4dC5mcm9tRmlsZVBhdGhBbmRSZWxlYXNlQ29udGV4dChmaWxlUGF0aCwgcmVsZWFzZUNvbnRleHQpLFxuICAgICAgICBub2RlID0gZmlsZUNvbnRleHQuZ2V0Tm9kZSgpO1xuXG4gIGlmIChub2RlICE9PSBudWxsKSB7XG4gICAgY29uc3QgdmVyaWZpZWQgPSB0b3BMZXZlbFZlcmlmaWVyLnZlcmlmeShub2RlLCBmaWxlQ29udGV4dCk7XG5cbiAgICBpZiAodmVyaWZpZWQpIHtcbiAgICAgIHJlbGVhc2VDb250ZXh0LmFkZEZpbGVDb250ZXh0KGZpbGVDb250ZXh0KTtcblxuICAgICAgZmlsZVZlcmlmaWVkID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBpZiAoZmlsZVZlcmlmaWVkKSB7XG4gICAgcmVsZWFzZUNvbnRleHQuaW5mbyhgLi4udmVyaWZpZWQgdGhlICcke2ZpbGVQYXRofScgZmlsZS5gKTtcbiAgfVxuXG4gIHJldHVybiBmaWxlVmVyaWZpZWQ7XG59XG4iXSwibmFtZXMiOlsidmVyaWZ5RmlsZSIsImZpbGVQYXRoIiwicmVsZWFzZUNvbnRleHQiLCJmaWxlVmVyaWZpZWQiLCJkZWJ1ZyIsImZpbGVDb250ZXh0IiwiRmlsZUNvbnRleHQiLCJmcm9tRmlsZVBhdGhBbmRSZWxlYXNlQ29udGV4dCIsIm5vZGUiLCJnZXROb2RlIiwidmVyaWZpZWQiLCJ0b3BMZXZlbFZlcmlmaWVyIiwidmVyaWZ5IiwiYWRkRmlsZUNvbnRleHQiLCJpbmZvIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFLQTs7O2VBQXdCQTs7OzJEQUhBOytEQUNLOzs7Ozs7QUFFZCxTQUFTQSxXQUFXQyxRQUFRLEVBQUVDLGNBQWM7SUFDekQsSUFBSUMsZUFBZTtJQUVuQkQsZUFBZUUsS0FBSyxDQUFDLEFBQUMsa0JBQTBCLE9BQVRILFVBQVM7SUFFaEQsSUFBTUksY0FBY0MsYUFBVyxDQUFDQyw2QkFBNkIsQ0FBQ04sVUFBVUMsaUJBQ2xFTSxPQUFPSCxZQUFZSSxPQUFPO0lBRWhDLElBQUlELFNBQVMsTUFBTTtRQUNqQixJQUFNRSxXQUFXQyxpQkFBZ0IsQ0FBQ0MsTUFBTSxDQUFDSixNQUFNSDtRQUUvQyxJQUFJSyxVQUFVO1lBQ1pSLGVBQWVXLGNBQWMsQ0FBQ1I7WUFFOUJGLGVBQWU7UUFDakI7SUFDRjtJQUVBLElBQUlBLGNBQWM7UUFDaEJELGVBQWVZLElBQUksQ0FBQyxBQUFDLG9CQUE0QixPQUFUYixVQUFTO0lBQ25EO0lBRUEsT0FBT0U7QUFDVCJ9
@@ -2,18 +2,10 @@
2
2
  Object.defineProperty(exports, "__esModule", {
3
3
  value: true
4
4
  });
5
- function _export(target, all) {
6
- for(var name in all)Object.defineProperty(target, name, {
7
- enumerable: true,
8
- get: all[name]
9
- });
10
- }
11
- _export(exports, {
12
- default: function() {
5
+ Object.defineProperty(exports, "default", {
6
+ enumerable: true,
7
+ get: function() {
13
8
  return verifyMetavariable;
14
- },
15
- verifyStandaloneMetavariable: function() {
16
- return verifyStandaloneMetavariable;
17
9
  }
18
10
  });
19
11
  var _metavariable = /*#__PURE__*/ _interop_require_default(require("../metavariable"));
@@ -58,20 +50,6 @@ function verifyMetavariable(metavariableNode, metaTypeNode, fileContext) {
58
50
  }
59
51
  return metavariableVerified;
60
52
  }
61
- function verifyStandaloneMetavariable(metavariableNode, localContext, verifyAhead) {
62
- var standaloneMetavariableVerified = false;
63
- var metavariableString = localContext.nodeAsString(metavariableNode);
64
- localContext.trace("Verifying the '".concat(metavariableString, "' standalone metavariable..."), metavariableNode);
65
- var metavariablePresent = localContext.isMetavariablePresentByMetavariableNode(metavariableNode);
66
- if (metavariablePresent) {
67
- var verifiedAhead = verifyAhead();
68
- standaloneMetavariableVerified = verifiedAhead; ///
69
- }
70
- if (standaloneMetavariableVerified) {
71
- localContext.debug("...verified the '".concat(metavariableString, "' standalone metavariable."), metavariableNode);
72
- }
73
- return standaloneMetavariableVerified;
74
- }
75
53
  function verifyArgument(argumentNode, termTypes, fileContext) {
76
54
  var argumentVerified = false;
77
55
  if (argumentNode === null) {
@@ -105,4 +83,4 @@ function verifyMetaType(metaTypeNode, metaTypes, fileContext) {
105
83
  return metaTypeVerified;
106
84
  }
107
85
 
108
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvbWV0YXZhcmlhYmxlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgTWV0YXZhcmlhYmxlIGZyb20gXCIuLi9tZXRhdmFyaWFibGVcIjtcbmltcG9ydCBNZXRhdmFyaWFibGVBc3NpZ25tZW50IGZyb20gXCIuLi9hc3NpZ25tZW50L21ldGF2YXJpYWJsZVwiO1xuXG5pbXBvcnQgeyBmaXJzdCB9IGZyb20gXCIuLi91dGlsaXRpZXMvYXJyYXlcIjtcbmltcG9ydCB7IG5vZGVRdWVyeSB9IGZyb20gXCIuLi91dGlsaXRpZXMvcXVlcnlcIjtcbmltcG9ydCB7IG5hbWVGcm9tTWV0YXZhcmlhYmxlTm9kZSB9IGZyb20gXCIuLi91dGlsaXRpZXMvbmFtZVwiO1xuXG5jb25zdCB0ZXJtTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL2FyZ3VtZW50L3Rlcm1cIiksXG4gICAgICB0eXBlTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL2FyZ3VtZW50L3R5cGVcIiksXG4gICAgICBhcmd1bWVudE5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9tZXRhdmFyaWFibGUvYXJndW1lbnQhXCIpO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB2ZXJpZnlNZXRhdmFyaWFibGUobWV0YXZhcmlhYmxlTm9kZSwgbWV0YVR5cGVOb2RlLCBmaWxlQ29udGV4dCkge1xuICBsZXQgbWV0YXZhcmlhYmxlVmVyaWZpZWQgPSBmYWxzZTtcblxuICBjb25zdCBtZXRhdmFyaWFibGVTdHJpbmcgPSBmaWxlQ29udGV4dC5ub2RlQXNTdHJpbmcobWV0YXZhcmlhYmxlTm9kZSk7XG5cbiAgZmlsZUNvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7bWV0YXZhcmlhYmxlU3RyaW5nfScgbWV0YXZhcmlhYmxlLi4uYCwgbWV0YXZhcmlhYmxlTm9kZSk7XG5cbiAgY29uc3QgbWV0YXZhcmlhYmxlUHJlc2VudCA9IGZpbGVDb250ZXh0LmlzTWV0YXZhcmlhYmxlUHJlc2VudEJ5TWV0YXZhcmlhYmxlTm9kZShtZXRhdmFyaWFibGVOb2RlKTtcblxuICBpZiAobWV0YXZhcmlhYmxlUHJlc2VudCkge1xuICAgIGZpbGVDb250ZXh0LmRlYnVnKGBUaGUgbWV0YXZhcmlhYmxlICcke21ldGF2YXJpYWJsZVN0cmluZ30nIGlzIGFscmVhZHkgcHJlc2VudC5gLCBtZXRhdmFyaWFibGVOb2RlKTtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCB0ZXJtVHlwZXMgPSBbXSxcbiAgICAgICAgICBtZXRhVHlwZXMgPSBbXSxcbiAgICAgICAgICBhcmd1bWVudE5vZGUgPSBhcmd1bWVudE5vZGVRdWVyeShtZXRhdmFyaWFibGVOb2RlKSxcbiAgICAgICAgICBhcmd1bWVudFZlcmlmaWVkID0gdmVyaWZ5QXJndW1lbnQoYXJndW1lbnROb2RlLCB0ZXJtVHlwZXMsIGZpbGVDb250ZXh0KSxcbiAgICAgICAgICBtZXRhVHlwZVZlcmlmaWVkID0gdmVyaWZ5TWV0YVR5cGUobWV0YVR5cGVOb2RlLCBtZXRhVHlwZXMsIGZpbGVDb250ZXh0KTtcblxuICAgIGlmIChhcmd1bWVudFZlcmlmaWVkICYmIG1ldGFUeXBlVmVyaWZpZWQpIHtcbiAgICAgIGxldCB0ZXJtVHlwZSxcbiAgICAgICAgICBtZXRhVHlwZTtcblxuICAgICAgY29uc3QgZmlyc3RNZXRhVHlwZSA9IGZpcnN0KG1ldGFUeXBlcyk7XG5cbiAgICAgIG1ldGFUeXBlID0gZmlyc3RNZXRhVHlwZTsgLy8vXG5cbiAgICAgIGNvbnN0IHRlcm1UeXBlc0xlbmd0aCA9IHRlcm1UeXBlcy5sZW5ndGg7XG5cbiAgICAgIGlmICh0ZXJtVHlwZXNMZW5ndGggPT09IDApIHtcbiAgICAgICAgdGVybVR5cGUgPSBudWxsO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgZmlyc3RUZXJtVHlwZSA9IGZpcnN0KHRlcm1UeXBlcyk7XG5cbiAgICAgICAgdGVybVR5cGUgPSBmaXJzdFRlcm1UeXBlOyAvLy9cbiAgICAgIH1cblxuICAgICAgY29uc3Qgbm9kZSA9IG1ldGF2YXJpYWJsZU5vZGUsICAvLy9cbiAgICAgICAgICAgIG5hbWUgPSBuYW1lRnJvbU1ldGF2YXJpYWJsZU5vZGUobWV0YXZhcmlhYmxlTm9kZSksXG4gICAgICAgICAgICBtZXRhdmFyaWFibGUgPSBNZXRhdmFyaWFibGUuZnJvbU5vZGVOYW1lVGVybVR5cGVBbmRNZXRhVHlwZShub2RlLCBuYW1lLCB0ZXJtVHlwZSwgbWV0YVR5cGUpLFxuICAgICAgICAgICAgbWV0YXZhcmlhYmxlQXNzaWdubWVudCA9IE1ldGF2YXJpYWJsZUFzc2lnbm1lbnQuZnJvbU1ldGF2YXJpYWJsZShtZXRhdmFyaWFibGUpLFxuICAgICAgICAgICAgbWV0YXZhcmlhYmxlQXNzaWduZWQgPSBtZXRhdmFyaWFibGVBc3NpZ25tZW50LmFzc2lnbihmaWxlQ29udGV4dCk7XG5cbiAgICAgIGlmIChtZXRhdmFyaWFibGVBc3NpZ25lZCkge1xuICAgICAgICBtZXRhdmFyaWFibGVWZXJpZmllZCA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgaWYgKG1ldGF2YXJpYWJsZVZlcmlmaWVkKSB7XG4gICAgZmlsZUNvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHttZXRhdmFyaWFibGVTdHJpbmd9JyBtZXRhdmFyaWFibGUuYCwgbWV0YXZhcmlhYmxlTm9kZSk7XG4gIH1cblxuICByZXR1cm4gbWV0YXZhcmlhYmxlVmVyaWZpZWQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB2ZXJpZnlTdGFuZGFsb25lTWV0YXZhcmlhYmxlKG1ldGF2YXJpYWJsZU5vZGUsIGxvY2FsQ29udGV4dCwgdmVyaWZ5QWhlYWQpIHtcbiAgbGV0IHN0YW5kYWxvbmVNZXRhdmFyaWFibGVWZXJpZmllZCA9IGZhbHNlO1xuXG4gIGNvbnN0IG1ldGF2YXJpYWJsZVN0cmluZyA9IGxvY2FsQ29udGV4dC5ub2RlQXNTdHJpbmcobWV0YXZhcmlhYmxlTm9kZSk7XG5cbiAgbG9jYWxDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke21ldGF2YXJpYWJsZVN0cmluZ30nIHN0YW5kYWxvbmUgbWV0YXZhcmlhYmxlLi4uYCwgbWV0YXZhcmlhYmxlTm9kZSk7XG5cbiAgY29uc3QgbWV0YXZhcmlhYmxlUHJlc2VudCA9IGxvY2FsQ29udGV4dC5pc01ldGF2YXJpYWJsZVByZXNlbnRCeU1ldGF2YXJpYWJsZU5vZGUobWV0YXZhcmlhYmxlTm9kZSk7XG5cbiAgaWYgKG1ldGF2YXJpYWJsZVByZXNlbnQpIHtcbiAgICBjb25zdCB2ZXJpZmllZEFoZWFkID0gdmVyaWZ5QWhlYWQoKTtcblxuICAgIHN0YW5kYWxvbmVNZXRhdmFyaWFibGVWZXJpZmllZCA9IHZlcmlmaWVkQWhlYWQ7IC8vL1xuICB9XG5cbiAgaWYgKHN0YW5kYWxvbmVNZXRhdmFyaWFibGVWZXJpZmllZCkge1xuICAgIGxvY2FsQ29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke21ldGF2YXJpYWJsZVN0cmluZ30nIHN0YW5kYWxvbmUgbWV0YXZhcmlhYmxlLmAsIG1ldGF2YXJpYWJsZU5vZGUpO1xuICB9XG5cbiAgcmV0dXJuIHN0YW5kYWxvbmVNZXRhdmFyaWFibGVWZXJpZmllZDtcbn1cblxuZnVuY3Rpb24gdmVyaWZ5QXJndW1lbnQoYXJndW1lbnROb2RlLCB0ZXJtVHlwZXMsIGZpbGVDb250ZXh0KSB7XG4gIGxldCBhcmd1bWVudFZlcmlmaWVkID0gZmFsc2U7XG5cbiAgaWYgKGFyZ3VtZW50Tm9kZSA9PT0gbnVsbCkge1xuICAgIGFyZ3VtZW50VmVyaWZpZWQgPSB0cnVlO1xuICB9IGVsc2Uge1xuICAgIGNvbnN0IHRlcm1Ob2RlID0gdGVybU5vZGVRdWVyeShhcmd1bWVudE5vZGUpO1xuXG4gICAgaWYgKHRlcm1Ob2RlID09PSBudWxsKSB7XG5cbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgdGVybVN0cmluZyA9IGZpbGVDb250ZXh0Lm5vZGVBc1N0cmluZyh0ZXJtTm9kZSk7XG5cbiAgICAgIGZpbGVDb250ZXh0LmRlYnVnKGBUaGUgJyR7dGVybVN0cmluZ30nIHRlcm0gd2FzIGZvdW5kIHdoZW4gYSB0eXBlIHNob3VsZCBoYXZlIGJlZW4gcHJlc2VudC5gLCB0ZXJtTm9kZSk7XG4gICAgfVxuICAgIGNvbnN0IHR5cGVOb2RlID0gdHlwZU5vZGVRdWVyeShhcmd1bWVudE5vZGUpO1xuXG4gICAgaWYgKHR5cGVOb2RlICE9PSBudWxsKSB7XG4gICAgICBjb25zdCB0eXBlID0gZmlsZUNvbnRleHQuZmluZFR5cGVCeVR5cGVOb2RlKHR5cGVOb2RlKTtcblxuICAgICAgaWYgKHR5cGUgIT09IG51bGwpIHtcbiAgICAgICAgY29uc3QgdGVybVR5cGUgPSB0eXBlOyAgLy8vXG5cbiAgICAgICAgdGVybVR5cGVzLnB1c2godGVybVR5cGUpO1xuXG4gICAgICAgIGFyZ3VtZW50VmVyaWZpZWQgPSB0cnVlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgdHlwZVN0cmluZyA9IGZpbGVDb250ZXh0Lm5vZGVBc1N0cmluZyh0eXBlTm9kZSk7XG5cbiAgICAgICAgZmlsZUNvbnRleHQuZGVidWcoYFRoZSAnJHt0eXBlU3RyaW5nfScgdHlwZSBpcyBub3QgcHJlc2VudC5gLCB0eXBlTm9kZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGFyZ3VtZW50VmVyaWZpZWQ7XG59XG5cbmZ1bmN0aW9uIHZlcmlmeU1ldGFUeXBlKG1ldGFUeXBlTm9kZSwgbWV0YVR5cGVzLCBmaWxlQ29udGV4dCkge1xuICBsZXQgbWV0YVR5cGVWZXJpZmllZDtcblxuICBjb25zdCBtZXRhVHlwZSA9IGZpbGVDb250ZXh0LmZpbmRNZXRhVHlwZUJ5TWV0YVR5cGVOb2RlKG1ldGFUeXBlTm9kZSk7XG5cbiAgbWV0YVR5cGVzLnB1c2gobWV0YVR5cGUpO1xuXG4gIG1ldGFUeXBlVmVyaWZpZWQgPSB0cnVlO1xuXG4gIHJldHVybiBtZXRhVHlwZVZlcmlmaWVkO1xufSJdLCJuYW1lcyI6WyJ2ZXJpZnlNZXRhdmFyaWFibGUiLCJ2ZXJpZnlTdGFuZGFsb25lTWV0YXZhcmlhYmxlIiwidGVybU5vZGVRdWVyeSIsIm5vZGVRdWVyeSIsInR5cGVOb2RlUXVlcnkiLCJhcmd1bWVudE5vZGVRdWVyeSIsIm1ldGF2YXJpYWJsZU5vZGUiLCJtZXRhVHlwZU5vZGUiLCJmaWxlQ29udGV4dCIsIm1ldGF2YXJpYWJsZVZlcmlmaWVkIiwibWV0YXZhcmlhYmxlU3RyaW5nIiwibm9kZUFzU3RyaW5nIiwidHJhY2UiLCJtZXRhdmFyaWFibGVQcmVzZW50IiwiaXNNZXRhdmFyaWFibGVQcmVzZW50QnlNZXRhdmFyaWFibGVOb2RlIiwiZGVidWciLCJ0ZXJtVHlwZXMiLCJtZXRhVHlwZXMiLCJhcmd1bWVudE5vZGUiLCJhcmd1bWVudFZlcmlmaWVkIiwidmVyaWZ5QXJndW1lbnQiLCJtZXRhVHlwZVZlcmlmaWVkIiwidmVyaWZ5TWV0YVR5cGUiLCJ0ZXJtVHlwZSIsIm1ldGFUeXBlIiwiZmlyc3RNZXRhVHlwZSIsImZpcnN0IiwidGVybVR5cGVzTGVuZ3RoIiwibGVuZ3RoIiwiZmlyc3RUZXJtVHlwZSIsIm5vZGUiLCJuYW1lIiwibmFtZUZyb21NZXRhdmFyaWFibGVOb2RlIiwibWV0YXZhcmlhYmxlIiwiTWV0YXZhcmlhYmxlIiwiZnJvbU5vZGVOYW1lVGVybVR5cGVBbmRNZXRhVHlwZSIsIm1ldGF2YXJpYWJsZUFzc2lnbm1lbnQiLCJNZXRhdmFyaWFibGVBc3NpZ25tZW50IiwiZnJvbU1ldGF2YXJpYWJsZSIsIm1ldGF2YXJpYWJsZUFzc2lnbmVkIiwiYXNzaWduIiwibG9jYWxDb250ZXh0IiwidmVyaWZ5QWhlYWQiLCJzdGFuZGFsb25lTWV0YXZhcmlhYmxlVmVyaWZpZWQiLCJ2ZXJpZmllZEFoZWFkIiwidGVybU5vZGUiLCJ0ZXJtU3RyaW5nIiwidHlwZU5vZGUiLCJ0eXBlIiwiZmluZFR5cGVCeVR5cGVOb2RlIiwicHVzaCIsInR5cGVTdHJpbmciLCJmaW5kTWV0YVR5cGVCeU1ldGFUeXBlTm9kZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O0lBYUEsT0FxREM7ZUFyRHVCQTs7SUF1RFJDLDRCQUE0QjtlQUE1QkE7OzttRUFsRVM7b0VBQ1U7cUJBRWI7cUJBQ0k7b0JBQ2U7Ozs7OztBQUV6QyxJQUFNQyxnQkFBZ0JDLElBQUFBLGdCQUFTLEVBQUMsbUJBQzFCQyxnQkFBZ0JELElBQUFBLGdCQUFTLEVBQUMsbUJBQzFCRSxvQkFBb0JGLElBQUFBLGdCQUFTLEVBQUM7QUFFckIsU0FBU0gsbUJBQW1CTSxnQkFBZ0IsRUFBRUMsWUFBWSxFQUFFQyxXQUFXO0lBQ3BGLElBQUlDLHVCQUF1QjtJQUUzQixJQUFNQyxxQkFBcUJGLFlBQVlHLFlBQVksQ0FBQ0w7SUFFcERFLFlBQVlJLEtBQUssQ0FBQyxBQUFDLGtCQUFvQyxPQUFuQkYsb0JBQW1CLHNCQUFvQko7SUFFM0UsSUFBTU8sc0JBQXNCTCxZQUFZTSx1Q0FBdUMsQ0FBQ1I7SUFFaEYsSUFBSU8scUJBQXFCO1FBQ3ZCTCxZQUFZTyxLQUFLLENBQUMsQUFBQyxxQkFBdUMsT0FBbkJMLG9CQUFtQiwwQkFBd0JKO0lBQ3BGLE9BQU87UUFDTCxJQUFNVSxZQUFZLEVBQUUsRUFDZEMsWUFBWSxFQUFFLEVBQ2RDLGVBQWViLGtCQUFrQkMsbUJBQ2pDYSxtQkFBbUJDLGVBQWVGLGNBQWNGLFdBQVdSLGNBQzNEYSxtQkFBbUJDLGVBQWVmLGNBQWNVLFdBQVdUO1FBRWpFLElBQUlXLG9CQUFvQkUsa0JBQWtCO1lBQ3hDLElBQUlFLFVBQ0FDO1lBRUosSUFBTUMsZ0JBQWdCQyxJQUFBQSxZQUFLLEVBQUNUO1lBRTVCTyxXQUFXQyxlQUFlLEdBQUc7WUFFN0IsSUFBTUUsa0JBQWtCWCxVQUFVWSxNQUFNO1lBRXhDLElBQUlELG9CQUFvQixHQUFHO2dCQUN6QkosV0FBVztZQUNiLE9BQU87Z0JBQ0wsSUFBTU0sZ0JBQWdCSCxJQUFBQSxZQUFLLEVBQUNWO2dCQUU1Qk8sV0FBV00sZUFBZSxHQUFHO1lBQy9CO1lBRUEsSUFBTUMsT0FBT3hCLGtCQUNQeUIsT0FBT0MsSUFBQUEsOEJBQXdCLEVBQUMxQixtQkFDaEMyQixlQUFlQyxxQkFBWSxDQUFDQywrQkFBK0IsQ0FBQ0wsTUFBTUMsTUFBTVIsVUFBVUMsV0FDbEZZLHlCQUF5QkMsc0JBQXNCLENBQUNDLGdCQUFnQixDQUFDTCxlQUNqRU0sdUJBQXVCSCx1QkFBdUJJLE1BQU0sQ0FBQ2hDO1lBRTNELElBQUkrQixzQkFBc0I7Z0JBQ3hCOUIsdUJBQXVCO1lBQ3pCO1FBQ0Y7SUFDRjtJQUVBLElBQUlBLHNCQUFzQjtRQUN4QkQsWUFBWU8sS0FBSyxDQUFDLEFBQUMsb0JBQXNDLE9BQW5CTCxvQkFBbUIsb0JBQWtCSjtJQUM3RTtJQUVBLE9BQU9HO0FBQ1Q7QUFFTyxTQUFTUiw2QkFBNkJLLGdCQUFnQixFQUFFbUMsWUFBWSxFQUFFQyxXQUFXO0lBQ3RGLElBQUlDLGlDQUFpQztJQUVyQyxJQUFNakMscUJBQXFCK0IsYUFBYTlCLFlBQVksQ0FBQ0w7SUFFckRtQyxhQUFhN0IsS0FBSyxDQUFDLEFBQUMsa0JBQW9DLE9BQW5CRixvQkFBbUIsaUNBQStCSjtJQUV2RixJQUFNTyxzQkFBc0I0QixhQUFhM0IsdUNBQXVDLENBQUNSO0lBRWpGLElBQUlPLHFCQUFxQjtRQUN2QixJQUFNK0IsZ0JBQWdCRjtRQUV0QkMsaUNBQWlDQyxlQUFlLEdBQUc7SUFDckQ7SUFFQSxJQUFJRCxnQ0FBZ0M7UUFDbENGLGFBQWExQixLQUFLLENBQUMsQUFBQyxvQkFBc0MsT0FBbkJMLG9CQUFtQiwrQkFBNkJKO0lBQ3pGO0lBRUEsT0FBT3FDO0FBQ1Q7QUFFQSxTQUFTdkIsZUFBZUYsWUFBWSxFQUFFRixTQUFTLEVBQUVSLFdBQVc7SUFDMUQsSUFBSVcsbUJBQW1CO0lBRXZCLElBQUlELGlCQUFpQixNQUFNO1FBQ3pCQyxtQkFBbUI7SUFDckIsT0FBTztRQUNMLElBQU0wQixXQUFXM0MsY0FBY2dCO1FBRS9CLElBQUkyQixhQUFhLE1BQU0sQ0FFdkIsT0FBTztZQUNMLElBQU1DLGFBQWF0QyxZQUFZRyxZQUFZLENBQUNrQztZQUU1Q3JDLFlBQVlPLEtBQUssQ0FBQyxBQUFDLFFBQWtCLE9BQVgrQixZQUFXLDJEQUF5REQ7UUFDaEc7UUFDQSxJQUFNRSxXQUFXM0MsY0FBY2M7UUFFL0IsSUFBSTZCLGFBQWEsTUFBTTtZQUNyQixJQUFNQyxPQUFPeEMsWUFBWXlDLGtCQUFrQixDQUFDRjtZQUU1QyxJQUFJQyxTQUFTLE1BQU07Z0JBQ2pCLElBQU16QixXQUFXeUIsTUFBTyxHQUFHO2dCQUUzQmhDLFVBQVVrQyxJQUFJLENBQUMzQjtnQkFFZkosbUJBQW1CO1lBQ3JCLE9BQU87Z0JBQ0wsSUFBTWdDLGFBQWEzQyxZQUFZRyxZQUFZLENBQUNvQztnQkFFNUN2QyxZQUFZTyxLQUFLLENBQUMsQUFBQyxRQUFrQixPQUFYb0MsWUFBVywyQkFBeUJKO1lBQ2hFO1FBQ0Y7SUFDRjtJQUVBLE9BQU81QjtBQUNUO0FBRUEsU0FBU0csZUFBZWYsWUFBWSxFQUFFVSxTQUFTLEVBQUVULFdBQVc7SUFDMUQsSUFBSWE7SUFFSixJQUFNRyxXQUFXaEIsWUFBWTRDLDBCQUEwQixDQUFDN0M7SUFFeERVLFVBQVVpQyxJQUFJLENBQUMxQjtJQUVmSCxtQkFBbUI7SUFFbkIsT0FBT0E7QUFDVCJ9
86
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvbWV0YXZhcmlhYmxlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgTWV0YXZhcmlhYmxlIGZyb20gXCIuLi9tZXRhdmFyaWFibGVcIjtcbmltcG9ydCBNZXRhdmFyaWFibGVBc3NpZ25tZW50IGZyb20gXCIuLi9hc3NpZ25tZW50L21ldGF2YXJpYWJsZVwiO1xuXG5pbXBvcnQgeyBmaXJzdCB9IGZyb20gXCIuLi91dGlsaXRpZXMvYXJyYXlcIjtcbmltcG9ydCB7IG5vZGVRdWVyeSB9IGZyb20gXCIuLi91dGlsaXRpZXMvcXVlcnlcIjtcbmltcG9ydCB7IG5hbWVGcm9tTWV0YXZhcmlhYmxlTm9kZSB9IGZyb20gXCIuLi91dGlsaXRpZXMvbmFtZVwiO1xuXG5jb25zdCB0ZXJtTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL2FyZ3VtZW50L3Rlcm1cIiksXG4gICAgICB0eXBlTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL2FyZ3VtZW50L3R5cGVcIiksXG4gICAgICBhcmd1bWVudE5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9tZXRhdmFyaWFibGUvYXJndW1lbnQhXCIpO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB2ZXJpZnlNZXRhdmFyaWFibGUobWV0YXZhcmlhYmxlTm9kZSwgbWV0YVR5cGVOb2RlLCBmaWxlQ29udGV4dCkge1xuICBsZXQgbWV0YXZhcmlhYmxlVmVyaWZpZWQgPSBmYWxzZTtcblxuICBjb25zdCBtZXRhdmFyaWFibGVTdHJpbmcgPSBmaWxlQ29udGV4dC5ub2RlQXNTdHJpbmcobWV0YXZhcmlhYmxlTm9kZSk7XG5cbiAgZmlsZUNvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7bWV0YXZhcmlhYmxlU3RyaW5nfScgbWV0YXZhcmlhYmxlLi4uYCwgbWV0YXZhcmlhYmxlTm9kZSk7XG5cbiAgY29uc3QgbWV0YXZhcmlhYmxlUHJlc2VudCA9IGZpbGVDb250ZXh0LmlzTWV0YXZhcmlhYmxlUHJlc2VudEJ5TWV0YXZhcmlhYmxlTm9kZShtZXRhdmFyaWFibGVOb2RlKTtcblxuICBpZiAobWV0YXZhcmlhYmxlUHJlc2VudCkge1xuICAgIGZpbGVDb250ZXh0LmRlYnVnKGBUaGUgbWV0YXZhcmlhYmxlICcke21ldGF2YXJpYWJsZVN0cmluZ30nIGlzIGFscmVhZHkgcHJlc2VudC5gLCBtZXRhdmFyaWFibGVOb2RlKTtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCB0ZXJtVHlwZXMgPSBbXSxcbiAgICAgICAgICBtZXRhVHlwZXMgPSBbXSxcbiAgICAgICAgICBhcmd1bWVudE5vZGUgPSBhcmd1bWVudE5vZGVRdWVyeShtZXRhdmFyaWFibGVOb2RlKSxcbiAgICAgICAgICBhcmd1bWVudFZlcmlmaWVkID0gdmVyaWZ5QXJndW1lbnQoYXJndW1lbnROb2RlLCB0ZXJtVHlwZXMsIGZpbGVDb250ZXh0KSxcbiAgICAgICAgICBtZXRhVHlwZVZlcmlmaWVkID0gdmVyaWZ5TWV0YVR5cGUobWV0YVR5cGVOb2RlLCBtZXRhVHlwZXMsIGZpbGVDb250ZXh0KTtcblxuICAgIGlmIChhcmd1bWVudFZlcmlmaWVkICYmIG1ldGFUeXBlVmVyaWZpZWQpIHtcbiAgICAgIGxldCB0ZXJtVHlwZSxcbiAgICAgICAgICBtZXRhVHlwZTtcblxuICAgICAgY29uc3QgZmlyc3RNZXRhVHlwZSA9IGZpcnN0KG1ldGFUeXBlcyk7XG5cbiAgICAgIG1ldGFUeXBlID0gZmlyc3RNZXRhVHlwZTsgLy8vXG5cbiAgICAgIGNvbnN0IHRlcm1UeXBlc0xlbmd0aCA9IHRlcm1UeXBlcy5sZW5ndGg7XG5cbiAgICAgIGlmICh0ZXJtVHlwZXNMZW5ndGggPT09IDApIHtcbiAgICAgICAgdGVybVR5cGUgPSBudWxsO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgZmlyc3RUZXJtVHlwZSA9IGZpcnN0KHRlcm1UeXBlcyk7XG5cbiAgICAgICAgdGVybVR5cGUgPSBmaXJzdFRlcm1UeXBlOyAvLy9cbiAgICAgIH1cblxuICAgICAgY29uc3Qgbm9kZSA9IG1ldGF2YXJpYWJsZU5vZGUsICAvLy9cbiAgICAgICAgICAgIG5hbWUgPSBuYW1lRnJvbU1ldGF2YXJpYWJsZU5vZGUobWV0YXZhcmlhYmxlTm9kZSksXG4gICAgICAgICAgICBtZXRhdmFyaWFibGUgPSBNZXRhdmFyaWFibGUuZnJvbU5vZGVOYW1lVGVybVR5cGVBbmRNZXRhVHlwZShub2RlLCBuYW1lLCB0ZXJtVHlwZSwgbWV0YVR5cGUpLFxuICAgICAgICAgICAgbWV0YXZhcmlhYmxlQXNzaWdubWVudCA9IE1ldGF2YXJpYWJsZUFzc2lnbm1lbnQuZnJvbU1ldGF2YXJpYWJsZShtZXRhdmFyaWFibGUpLFxuICAgICAgICAgICAgbWV0YXZhcmlhYmxlQXNzaWduZWQgPSBtZXRhdmFyaWFibGVBc3NpZ25tZW50LmFzc2lnbihmaWxlQ29udGV4dCk7XG5cbiAgICAgIGlmIChtZXRhdmFyaWFibGVBc3NpZ25lZCkge1xuICAgICAgICBtZXRhdmFyaWFibGVWZXJpZmllZCA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgaWYgKG1ldGF2YXJpYWJsZVZlcmlmaWVkKSB7XG4gICAgZmlsZUNvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHttZXRhdmFyaWFibGVTdHJpbmd9JyBtZXRhdmFyaWFibGUuYCwgbWV0YXZhcmlhYmxlTm9kZSk7XG4gIH1cblxuICByZXR1cm4gbWV0YXZhcmlhYmxlVmVyaWZpZWQ7XG59XG5cbmZ1bmN0aW9uIHZlcmlmeUFyZ3VtZW50KGFyZ3VtZW50Tm9kZSwgdGVybVR5cGVzLCBmaWxlQ29udGV4dCkge1xuICBsZXQgYXJndW1lbnRWZXJpZmllZCA9IGZhbHNlO1xuXG4gIGlmIChhcmd1bWVudE5vZGUgPT09IG51bGwpIHtcbiAgICBhcmd1bWVudFZlcmlmaWVkID0gdHJ1ZTtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCB0ZXJtTm9kZSA9IHRlcm1Ob2RlUXVlcnkoYXJndW1lbnROb2RlKTtcblxuICAgIGlmICh0ZXJtTm9kZSA9PT0gbnVsbCkge1xuXG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHRlcm1TdHJpbmcgPSBmaWxlQ29udGV4dC5ub2RlQXNTdHJpbmcodGVybU5vZGUpO1xuXG4gICAgICBmaWxlQ29udGV4dC5kZWJ1ZyhgVGhlICcke3Rlcm1TdHJpbmd9JyB0ZXJtIHdhcyBmb3VuZCB3aGVuIGEgdHlwZSBzaG91bGQgaGF2ZSBiZWVuIHByZXNlbnQuYCwgdGVybU5vZGUpO1xuICAgIH1cbiAgICBjb25zdCB0eXBlTm9kZSA9IHR5cGVOb2RlUXVlcnkoYXJndW1lbnROb2RlKTtcblxuICAgIGlmICh0eXBlTm9kZSAhPT0gbnVsbCkge1xuICAgICAgY29uc3QgdHlwZSA9IGZpbGVDb250ZXh0LmZpbmRUeXBlQnlUeXBlTm9kZSh0eXBlTm9kZSk7XG5cbiAgICAgIGlmICh0eXBlICE9PSBudWxsKSB7XG4gICAgICAgIGNvbnN0IHRlcm1UeXBlID0gdHlwZTsgIC8vL1xuXG4gICAgICAgIHRlcm1UeXBlcy5wdXNoKHRlcm1UeXBlKTtcblxuICAgICAgICBhcmd1bWVudFZlcmlmaWVkID0gdHJ1ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IHR5cGVTdHJpbmcgPSBmaWxlQ29udGV4dC5ub2RlQXNTdHJpbmcodHlwZU5vZGUpO1xuXG4gICAgICAgIGZpbGVDb250ZXh0LmRlYnVnKGBUaGUgJyR7dHlwZVN0cmluZ30nIHR5cGUgaXMgbm90IHByZXNlbnQuYCwgdHlwZU5vZGUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBhcmd1bWVudFZlcmlmaWVkO1xufVxuXG5mdW5jdGlvbiB2ZXJpZnlNZXRhVHlwZShtZXRhVHlwZU5vZGUsIG1ldGFUeXBlcywgZmlsZUNvbnRleHQpIHtcbiAgbGV0IG1ldGFUeXBlVmVyaWZpZWQ7XG5cbiAgY29uc3QgbWV0YVR5cGUgPSBmaWxlQ29udGV4dC5maW5kTWV0YVR5cGVCeU1ldGFUeXBlTm9kZShtZXRhVHlwZU5vZGUpO1xuXG4gIG1ldGFUeXBlcy5wdXNoKG1ldGFUeXBlKTtcblxuICBtZXRhVHlwZVZlcmlmaWVkID0gdHJ1ZTtcblxuICByZXR1cm4gbWV0YVR5cGVWZXJpZmllZDtcbn0iXSwibmFtZXMiOlsidmVyaWZ5TWV0YXZhcmlhYmxlIiwidGVybU5vZGVRdWVyeSIsIm5vZGVRdWVyeSIsInR5cGVOb2RlUXVlcnkiLCJhcmd1bWVudE5vZGVRdWVyeSIsIm1ldGF2YXJpYWJsZU5vZGUiLCJtZXRhVHlwZU5vZGUiLCJmaWxlQ29udGV4dCIsIm1ldGF2YXJpYWJsZVZlcmlmaWVkIiwibWV0YXZhcmlhYmxlU3RyaW5nIiwibm9kZUFzU3RyaW5nIiwidHJhY2UiLCJtZXRhdmFyaWFibGVQcmVzZW50IiwiaXNNZXRhdmFyaWFibGVQcmVzZW50QnlNZXRhdmFyaWFibGVOb2RlIiwiZGVidWciLCJ0ZXJtVHlwZXMiLCJtZXRhVHlwZXMiLCJhcmd1bWVudE5vZGUiLCJhcmd1bWVudFZlcmlmaWVkIiwidmVyaWZ5QXJndW1lbnQiLCJtZXRhVHlwZVZlcmlmaWVkIiwidmVyaWZ5TWV0YVR5cGUiLCJ0ZXJtVHlwZSIsIm1ldGFUeXBlIiwiZmlyc3RNZXRhVHlwZSIsImZpcnN0IiwidGVybVR5cGVzTGVuZ3RoIiwibGVuZ3RoIiwiZmlyc3RUZXJtVHlwZSIsIm5vZGUiLCJuYW1lIiwibmFtZUZyb21NZXRhdmFyaWFibGVOb2RlIiwibWV0YXZhcmlhYmxlIiwiTWV0YXZhcmlhYmxlIiwiZnJvbU5vZGVOYW1lVGVybVR5cGVBbmRNZXRhVHlwZSIsIm1ldGF2YXJpYWJsZUFzc2lnbm1lbnQiLCJNZXRhdmFyaWFibGVBc3NpZ25tZW50IiwiZnJvbU1ldGF2YXJpYWJsZSIsIm1ldGF2YXJpYWJsZUFzc2lnbmVkIiwiYXNzaWduIiwidGVybU5vZGUiLCJ0ZXJtU3RyaW5nIiwidHlwZU5vZGUiLCJ0eXBlIiwiZmluZFR5cGVCeVR5cGVOb2RlIiwicHVzaCIsInR5cGVTdHJpbmciLCJmaW5kTWV0YVR5cGVCeU1ldGFUeXBlTm9kZSJdLCJtYXBwaW5n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
@@ -2,18 +2,10 @@
2
2
  Object.defineProperty(exports, "__esModule", {
3
3
  value: true
4
4
  });
5
- function _export(target, all) {
6
- for(var name in all)Object.defineProperty(target, name, {
7
- enumerable: true,
8
- get: all[name]
9
- });
10
- }
11
- _export(exports, {
12
- default: function() {
5
+ Object.defineProperty(exports, "default", {
6
+ enumerable: true,
7
+ get: function() {
13
8
  return _default;
14
- },
15
- verifyStandaloneStatement: function() {
16
- return verifyStandaloneStatement;
17
9
  }
18
10
  });
19
11
  var _shim = /*#__PURE__*/ _interop_require_default(require("../shim"));
@@ -83,20 +75,6 @@ function verifyStatement(statementNode, assignments, derived, localContext) {
83
75
  }
84
76
  return statementVerified;
85
77
  }
86
- function verifyStandaloneStatement(statementNode, localContext, verifyAhead) {
87
- var standaloneStatementVerified = false;
88
- var statementString = localContext.nodeAsString(statementNode);
89
- localContext.trace("Verifying the '".concat(statementString, "' standalone statement..."), statementNode);
90
- var derived = false, assignments = [], statementVerified = verifyStatement(statementNode, assignments, derived, localContext);
91
- if (statementVerified) {
92
- var verifiedAhead = verifyAhead();
93
- standaloneStatementVerified = verifiedAhead; ///
94
- }
95
- if (standaloneStatementVerified) {
96
- localContext.debug("...verified the '".concat(statementString, "' standalone statement."), statementNode);
97
- }
98
- return standaloneStatementVerified;
99
- }
100
78
  Object.assign(_shim.default, {
101
79
  verifyStatement: verifyStatement
102
80
  });
@@ -231,4 +209,4 @@ function verifyStatementAgainstCombinator(statementNode, combinator, localContex
231
209
  return statementVerifiedAgainstCombinator;
232
210
  }
233
211
 
234
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvc3RhdGVtZW50LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgc2hpbSBmcm9tIFwiLi4vc2hpbVwiO1xuaW1wb3J0IHZlcmlmeUVxdWFsaXR5IGZyb20gXCIuLi92ZXJpZnkvZXF1YWxpdHlcIjtcbmltcG9ydCB2ZXJpZnlKdWRnZW1lbnQgZnJvbSBcIi4uL3ZlcmlmeS9qdWRnZW1lbnRcIjtcbmltcG9ydCBtZXRhTGV2ZWxWZXJpZmllciBmcm9tIFwiLi4vdmVyaWZpZXIvbWV0YUxldmVsXCI7XG5pbXBvcnQgYnJhY2tldGVkQ29tYmluYXRvciBmcm9tIFwiLi4vb2NtYmluYXRvci9icmFja2V0ZWRcIjtcbmltcG9ydCB2ZXJpZnlUeXBlQXNzZXJ0aW9uIGZyb20gXCIuLi92ZXJpZnkvYXNzZXJ0aW9uL3R5cGVcIjtcbmltcG9ydCB2ZXJpZnlEZWZpbmVkQXNzZXJ0aW9uIGZyb20gXCIuLi92ZXJpZnkvYXNzZXJ0aW9uL2RlZmluZWRcIjtcbmltcG9ydCB2ZXJpZnlTdWJwcm9vZkFzc2VydGlvbiBmcm9tIFwiLi4vdmVyaWZ5L2Fzc2VydGlvbi9zdWJwcm9vZlwiO1xuaW1wb3J0IHZlcmlmeUNvbnRhaW5lZEFzc2VydGlvbiBmcm9tIFwiLi4vdmVyaWZ5L2Fzc2VydGlvbi9jb250YWluZWRcIjtcbmltcG9ydCBzdGF0ZW1lbnRBZ2FpbnN0Q29tYmluYXRvclVuaWZpZXIgZnJvbSBcIi4uL3VuaWZpZXIvc3RhdGVtZW50QWdhaW5zdENvbWJpbmF0b3JcIjtcblxuaW1wb3J0IHsgbm9kZVF1ZXJ5IH0gZnJvbSBcIi4uL3V0aWxpdGllcy9xdWVyeVwiO1xuXG5jb25zdCBlcXVhbGl0eU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9zdGF0ZW1lbnQvZXF1YWxpdHkhXCIpLFxuICAgICAganVkZ2VtZW50Tm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3N0YXRlbWVudC9qdWRnZW1lbnQhXCIpLFxuICAgICAgbWV0YXZhcmlhYmxlTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiLyovbWV0YXZhcmlhYmxlIVwiKSxcbiAgICAgIHR5cGVBc3NlcnRpb25Ob2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvc3RhdGVtZW50L3R5cGVBc3NlcnRpb24hXCIpLFxuICAgICAgZGVmaW5lZEFzc2VydGlvbk5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9zdGF0ZW1lbnQvZGVmaW5lZEFzc2VydGlvbiFcIiksXG4gICAgICBzdWJwcm9vZkFzc2VydGlvbk5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9zdGF0ZW1lbnQvc3VicHJvb2ZBc3NlcnRpb24hXCIpLFxuICAgICAgY29udGFpbmVkQXNzZXJ0aW9uTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3N0YXRlbWVudC9jb250YWluZWRBc3NlcnRpb24hXCIpO1xuXG5mdW5jdGlvbiB2ZXJpZnlTdGF0ZW1lbnQoc3RhdGVtZW50Tm9kZSwgYXNzaWdubWVudHMsIGRlcml2ZWQsIGxvY2FsQ29udGV4dCkge1xuICBsZXQgc3RhdGVtZW50VmVyaWZpZWQ7XG5cbiAgY29uc3Qgc3RhdGVtZW50U3RyaW5nID0gbG9jYWxDb250ZXh0Lm5vZGVBc1N0cmluZyhzdGF0ZW1lbnROb2RlKTtcblxuICBsb2NhbENvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50Li4uYCwgc3RhdGVtZW50Tm9kZSk7XG5cbiAgY29uc3QgdmVyaWZ5U3RhdGVtZW50RnVuY3Rpb25zID0gW1xuICAgIHZlcmlmeVN0YXRlbWVudEFzTWV0YXZhcmlhYmxlLFxuICAgIHZlcmlmeVN0YXRlbWVudEFzRXF1YWxpdHksXG4gICAgdmVyaWZ5U3RhdGVtZW50QXNKdWRnZW1lbnQsXG4gICAgdmVyaWZ5U3RhdGVtZW50QXNUeXBlQXNzZXJ0aW9uLFxuICAgIHZlcmlmeVN0YXRlbWVudEFzRGVmaW5lZEFzc2VydGlvbixcbiAgICB2ZXJpZnlTdGF0ZW1lbnRBc1N1YnByb29mQXNzZXJ0aW9uLFxuICAgIHZlcmlmeVN0YXRlbWVudEFzQ29udGFpbmVkQXNzZXJ0aW9uLFxuICAgIHZlcmlmeVN0YXRlbWVudEFnYWluc3RDb21iaW5hdG9yc1xuICBdO1xuXG4gIHN0YXRlbWVudFZlcmlmaWVkID0gdmVyaWZ5U3RhdGVtZW50RnVuY3Rpb25zLnNvbWUoKHZlcmlmeVN0YXRlbWVudEZ1bmN0aW9uKSA9PiB7XG4gICAgY29uc3Qgc3RhdGVtZW50VmVyaWZpZWQgPSB2ZXJpZnlTdGF0ZW1lbnRGdW5jdGlvbihzdGF0ZW1lbnROb2RlLCBhc3NpZ25tZW50cywgZGVyaXZlZCwgbG9jYWxDb250ZXh0KTtcblxuICAgIGlmIChzdGF0ZW1lbnRWZXJpZmllZCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9KTtcblxuICBpZiAoc3RhdGVtZW50VmVyaWZpZWQpIHtcbiAgICBsb2NhbENvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQuYCwgc3RhdGVtZW50Tm9kZSk7XG4gIH1cblxuICByZXR1cm4gc3RhdGVtZW50VmVyaWZpZWQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB2ZXJpZnlTdGFuZGFsb25lU3RhdGVtZW50KHN0YXRlbWVudE5vZGUsIGxvY2FsQ29udGV4dCwgdmVyaWZ5QWhlYWQpIHtcbiAgbGV0IHN0YW5kYWxvbmVTdGF0ZW1lbnRWZXJpZmllZCA9IGZhbHNlO1xuXG4gIGNvbnN0IHN0YXRlbWVudFN0cmluZyA9IGxvY2FsQ29udGV4dC5ub2RlQXNTdHJpbmcoc3RhdGVtZW50Tm9kZSk7XG5cbiAgbG9jYWxDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YW5kYWxvbmUgc3RhdGVtZW50Li4uYCwgc3RhdGVtZW50Tm9kZSk7XG5cbiAgY29uc3QgZGVyaXZlZCA9IGZhbHNlLFxuICAgICAgICBhc3NpZ25tZW50cyA9IFtdLFxuICAgICAgICBzdGF0ZW1lbnRWZXJpZmllZCA9IHZlcmlmeVN0YXRlbWVudChzdGF0ZW1lbnROb2RlLCBhc3NpZ25tZW50cywgZGVyaXZlZCwgbG9jYWxDb250ZXh0KTtcblxuICBpZiAoc3RhdGVtZW50VmVyaWZpZWQpIHtcbiAgICBjb25zdCB2ZXJpZmllZEFoZWFkID0gdmVyaWZ5QWhlYWQoKTtcblxuICAgIHN0YW5kYWxvbmVTdGF0ZW1lbnRWZXJpZmllZCA9IHZlcmlmaWVkQWhlYWQ7IC8vL1xuICB9XG5cbiAgaWYgKHN0YW5kYWxvbmVTdGF0ZW1lbnRWZXJpZmllZCkge1xuICAgIGxvY2FsQ29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YW5kYWxvbmUgc3RhdGVtZW50LmAsIHN0YXRlbWVudE5vZGUpO1xuICB9XG5cbiAgcmV0dXJuIHN0YW5kYWxvbmVTdGF0ZW1lbnRWZXJpZmllZDtcbn1cblxuT2JqZWN0LmFzc2lnbihzaGltLCB7XG4gIHZlcmlmeVN0YXRlbWVudFxufSk7XG5cblxuZXhwb3J0IGRlZmF1bHQgdmVyaWZ5U3RhdGVtZW50O1xuXG5mdW5jdGlvbiB2ZXJpZnlTdGF0ZW1lbnRBc01ldGF2YXJpYWJsZShzdGF0ZW1lbnROb2RlLCBhc3NpZ25tZW50cywgZGVyaXZlZCwgbG9jYWxDb250ZXh0KSB7XG4gIGxldCBzdGF0ZW1lbnRWZXJpZmllZEFzTWV0YXZhcmlhYmxlID0gZmFsc2U7XG5cbiAgY29uc3QgbWV0YXZhcmlhYmxlTm9kZSA9IG1ldGF2YXJpYWJsZU5vZGVRdWVyeShzdGF0ZW1lbnROb2RlKTtcblxuICBpZiAobWV0YXZhcmlhYmxlTm9kZSAhPT0gbnVsbCkge1xuICAgIGNvbnN0IHN0YXRlbWVudFN0cmluZyA9IGxvY2FsQ29udGV4dC5ub2RlQXNTdHJpbmcoc3RhdGVtZW50Tm9kZSk7XG5cbiAgICBsb2NhbENvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IGFzIGEgbWV0YXZhcmlhYmxlLi4uYCwgc3RhdGVtZW50Tm9kZSk7XG5cbiAgICBjb25zdCB2ZXJpZmllZCA9IG1ldGFMZXZlbFZlcmlmaWVyLnZlcmlmeShzdGF0ZW1lbnROb2RlLCBsb2NhbENvbnRleHQpO1xuXG4gICAgc3RhdGVtZW50VmVyaWZpZWRBc01ldGF2YXJpYWJsZSA9IHZlcmlmaWVkOyAvLy9cblxuICAgIGlmIChzdGF0ZW1lbnRWZXJpZmllZEFzTWV0YXZhcmlhYmxlKSB7XG4gICAgICBsb2NhbENvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgYXMgYSBtZXRhdmFyaWFibGUuYCwgc3RhdGVtZW50Tm9kZSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHN0YXRlbWVudFZlcmlmaWVkQXNNZXRhdmFyaWFibGU7XG59XG5cbmZ1bmN0aW9uIHZlcmlmeVN0YXRlbWVudEFzRXF1YWxpdHkoc3RhdGVtZW50Tm9kZSwgYXNzaWdubWVudHMsIGRlcml2ZWQsIGxvY2FsQ29udGV4dCkge1xuICBsZXQgc3RhdGVtZW50VmVyaWZpZWRBc0VxdWFsaXR5ID0gZmFsc2U7XG5cbiAgY29uc3QgZXF1YWxpdHlOb2RlID0gZXF1YWxpdHlOb2RlUXVlcnkoc3RhdGVtZW50Tm9kZSk7XG5cbiAgaWYgKGVxdWFsaXR5Tm9kZSAhPT0gbnVsbCkge1xuICAgIGNvbnN0IHN0YXRlbWVudFN0cmluZyA9IGxvY2FsQ29udGV4dC5ub2RlQXNTdHJpbmcoc3RhdGVtZW50Tm9kZSk7XG5cbiAgICBsb2NhbENvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IGFzIGFuIGVxdWFsaXR5Li4uYCwgc3RhdGVtZW50Tm9kZSk7XG5cbiAgICBjb25zdCBlcXVhbGl0eVZlcmlmaWVkID0gdmVyaWZ5RXF1YWxpdHkoZXF1YWxpdHlOb2RlLCBhc3NpZ25tZW50cywgZGVyaXZlZCwgbG9jYWxDb250ZXh0LCAoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB2ZXJpZmllZEFoZWFkID0gdHJ1ZTtcblxuICAgICAgICAgICAgcmV0dXJuIHZlcmlmaWVkQWhlYWQ7XG4gICAgICAgICAgfSk7XG5cbiAgICBzdGF0ZW1lbnRWZXJpZmllZEFzRXF1YWxpdHkgPSBlcXVhbGl0eVZlcmlmaWVkOyAvLy9cblxuICAgIGlmIChzdGF0ZW1lbnRWZXJpZmllZEFzRXF1YWxpdHkpIHtcbiAgICAgIGxvY2FsQ29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudCBhcyBhbiBlcXVhbGl0eS5gLCBzdGF0ZW1lbnROb2RlKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gc3RhdGVtZW50VmVyaWZpZWRBc0VxdWFsaXR5O1xufVxuXG5mdW5jdGlvbiB2ZXJpZnlTdGF0ZW1lbnRBc0p1ZGdlbWVudChzdGF0ZW1lbnROb2RlLCBhc3NpZ25tZW50cywgZGVyaXZlZCwgbG9jYWxDb250ZXh0KSB7XG4gIGxldCBzdGF0ZW1lbnRWZXJpZmllZEFzSnVkZ2VtZW50ID0gZmFsc2U7XG5cbiAgY29uc3QganVkZ2VtZW50Tm9kZSA9IGp1ZGdlbWVudE5vZGVRdWVyeShzdGF0ZW1lbnROb2RlKTtcblxuICBpZiAoanVkZ2VtZW50Tm9kZSAhPT0gbnVsbCkge1xuICAgIGNvbnN0IHN0YXRlbWVudFN0cmluZyA9IGxvY2FsQ29udGV4dC5ub2RlQXNTdHJpbmcoc3RhdGVtZW50Tm9kZSk7XG5cbiAgICBsb2NhbENvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IGFzIGEganVkZ2VtZW50Li4uYCwgc3RhdGVtZW50Tm9kZSk7XG5cbiAgICBjb25zdCBqdWRnZW1lbnRWZXJpZmllZCA9IHZlcmlmeUp1ZGdlbWVudChqdWRnZW1lbnROb2RlLCBhc3NpZ25tZW50cywgZGVyaXZlZCwgbG9jYWxDb250ZXh0KTtcblxuICAgIHN0YXRlbWVudFZlcmlmaWVkQXNKdWRnZW1lbnQgPSBqdWRnZW1lbnRWZXJpZmllZDsgIC8vL1xuXG4gICAgaWYgKHN0YXRlbWVudFZlcmlmaWVkQXNKdWRnZW1lbnQpIHtcbiAgICAgIGxvY2FsQ29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudCBhcyBhIGp1ZGdlbWVudC5gLCBzdGF0ZW1lbnROb2RlKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gc3RhdGVtZW50VmVyaWZpZWRBc0p1ZGdlbWVudDtcbn1cblxuZnVuY3Rpb24gdmVyaWZ5U3RhdGVtZW50QXNUeXBlQXNzZXJ0aW9uKHN0YXRlbWVudE5vZGUsIGFzc2lnbm1lbnRzLCBkZXJpdmVkLCBsb2NhbENvbnRleHQpIHtcbiAgbGV0IHN0YXRlbWVudFZlcmlmaWVkQXNUeXBlQXNzZXJ0aW9uID0gZmFsc2U7XG5cbiAgY29uc3QgdHlwZUFzc2VydGlvbk5vZGUgPSB0eXBlQXNzZXJ0aW9uTm9kZVF1ZXJ5KHN0YXRlbWVudE5vZGUpO1xuXG4gIGlmICh0eXBlQXNzZXJ0aW9uTm9kZSAhPT0gbnVsbCkge1xuICAgIGNvbnN0IHN0YXRlbWVudFN0cmluZyA9IGxvY2FsQ29udGV4dC5ub2RlQXNTdHJpbmcoc3RhdGVtZW50Tm9kZSk7XG5cbiAgICBsb2NhbENvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IGFzIGEgdHlwZSBhc3NlcnRpb24uLi5gLCBzdGF0ZW1lbnROb2RlKTtcblxuICAgIGNvbnN0IHR5cGVBc3NlcnRpb25WZXJpZmllZCA9IHZlcmlmeVR5cGVBc3NlcnRpb24odHlwZUFzc2VydGlvbk5vZGUsIGFzc2lnbm1lbnRzLCBkZXJpdmVkLCBsb2NhbENvbnRleHQpO1xuXG4gICAgc3RhdGVtZW50VmVyaWZpZWRBc1R5cGVBc3NlcnRpb24gPSB0eXBlQXNzZXJ0aW9uVmVyaWZpZWQ7IC8vL1xuXG4gICAgaWYgKHN0YXRlbWVudFZlcmlmaWVkQXNUeXBlQXNzZXJ0aW9uKSB7XG4gICAgICBsb2NhbENvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgYXMgYSB0eXBlIGFzc2VydGlvbi5gLCBzdGF0ZW1lbnROb2RlKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gc3RhdGVtZW50VmVyaWZpZWRBc1R5cGVBc3NlcnRpb247XG59XG5cbmZ1bmN0aW9uIHZlcmlmeVN0YXRlbWVudEFzRGVmaW5lZEFzc2VydGlvbihzdGF0ZW1lbnROb2RlLCBhc3NpZ25tZW50cywgZGVyaXZlZCwgbG9jYWxDb250ZXh0KSB7XG4gIGxldCBzdGF0ZW1lbnRWZXJpZmllZEFzRGVmaW5lZEFzc2VydGlvbiA9IGZhbHNlO1xuXG4gIGNvbnN0IGRlZmluZWRBc3NlcnRpb25Ob2RlID0gZGVmaW5lZEFzc2VydGlvbk5vZGVRdWVyeShzdGF0ZW1lbnROb2RlKTtcblxuICBpZiAoZGVmaW5lZEFzc2VydGlvbk5vZGUgIT09IG51bGwpIHtcbiAgICBjb25zdCBzdGF0ZW1lbnRTdHJpbmcgPSBsb2NhbENvbnRleHQubm9kZUFzU3RyaW5nKHN0YXRlbWVudE5vZGUpO1xuXG4gICAgbG9jYWxDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudCBhcyBhIGRlZmluZWQgYXNzZXJ0aW9uLi4uYCwgc3RhdGVtZW50Tm9kZSk7XG5cbiAgICBjb25zdCBkZWZpbmVkQXNzZXJ0aW9uVmVyaWZpZWQgPSB2ZXJpZnlEZWZpbmVkQXNzZXJ0aW9uKGRlZmluZWRBc3NlcnRpb25Ob2RlLCBhc3NpZ25tZW50cywgZGVyaXZlZCwgbG9jYWxDb250ZXh0KTtcblxuICAgIHN0YXRlbWVudFZlcmlmaWVkQXNEZWZpbmVkQXNzZXJ0aW9uID0gZGVmaW5lZEFzc2VydGlvblZlcmlmaWVkOyAvLy9cblxuICAgIGlmIChzdGF0ZW1lbnRWZXJpZmllZEFzRGVmaW5lZEFzc2VydGlvbikge1xuICAgICAgbG9jYWxDb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IGFzIGEgZGVmaW5lZCBhc3NlcnRpb24uYCwgc3RhdGVtZW50Tm9kZSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHN0YXRlbWVudFZlcmlmaWVkQXNEZWZpbmVkQXNzZXJ0aW9uO1xufVxuXG5mdW5jdGlvbiB2ZXJpZnlTdGF0ZW1lbnRBc1N1YnByb29mQXNzZXJ0aW9uKHN0YXRlbWVudE5vZGUsIGFzc2lnbm1lbnRzLCBkZXJpdmVkLCBsb2NhbENvbnRleHQpIHtcbiAgbGV0IHN0YXRlbWVudFZlcmlmaWVkQXNTdWJwcm9vZkFzc2VydGlvbiA9IGZhbHNlO1xuXG4gIGNvbnN0IHN1YnByb29mQXNzZXJ0aW9uTm9kZSA9IHN1YnByb29mQXNzZXJ0aW9uTm9kZVF1ZXJ5KHN0YXRlbWVudE5vZGUpO1xuXG4gIGlmIChzdWJwcm9vZkFzc2VydGlvbk5vZGUgIT09IG51bGwpIHtcbiAgICBjb25zdCBzdGF0ZW1lbnRTdHJpbmcgPSBsb2NhbENvbnRleHQubm9kZUFzU3RyaW5nKHN0YXRlbWVudE5vZGUpO1xuXG4gICAgbG9jYWxDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudCBhcyBhIHN1YnByb29mIGFzc2VydGlvbi4uLmAsIHN0YXRlbWVudE5vZGUpO1xuXG4gICAgY29uc3Qgc3VicHJvb2ZBc3NlcnRpb25WZXJpZmllZCA9IHZlcmlmeVN1YnByb29mQXNzZXJ0aW9uKHN1YnByb29mQXNzZXJ0aW9uTm9kZSwgYXNzaWdubWVudHMsIGRlcml2ZWQsIGxvY2FsQ29udGV4dCk7XG5cbiAgICBzdGF0ZW1lbnRWZXJpZmllZEFzU3VicHJvb2ZBc3NlcnRpb24gPSBzdWJwcm9vZkFzc2VydGlvblZlcmlmaWVkOyAvLy9cblxuICAgIGlmIChzdGF0ZW1lbnRWZXJpZmllZEFzU3VicHJvb2ZBc3NlcnRpb24pIHtcbiAgICAgIGxvY2FsQ29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudCBhcyBhIGRlZmluZWQgYXNzZXJ0aW9uLmAsIHN0YXRlbWVudE5vZGUpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBzdGF0ZW1lbnRWZXJpZmllZEFzU3VicHJvb2ZBc3NlcnRpb247XG59XG5cbmZ1bmN0aW9uIHZlcmlmeVN0YXRlbWVudEFzQ29udGFpbmVkQXNzZXJ0aW9uKHN0YXRlbWVudE5vZGUsIGFzc2lnbm1lbnRzLCBkZXJpdmVkLCBsb2NhbENvbnRleHQpIHtcbiAgbGV0IHN0YXRlbWVudFZlcmlmaWVkQXNDb250YWluZWRBc3NlcnRpb24gPSBmYWxzZTtcblxuICBjb25zdCBjb250YWluZWRBc3NlcnRpb25Ob2RlID0gY29udGFpbmVkQXNzZXJ0aW9uTm9kZVF1ZXJ5KHN0YXRlbWVudE5vZGUpO1xuXG4gIGlmIChjb250YWluZWRBc3NlcnRpb25Ob2RlICE9PSBudWxsKSB7XG4gICAgY29uc3Qgc3RhdGVtZW50U3RyaW5nID0gbG9jYWxDb250ZXh0Lm5vZGVBc1N0cmluZyhzdGF0ZW1lbnROb2RlKTtcblxuICAgIGxvY2FsQ29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgYXMgYSBkZWZpbmVkIGFzc2VydGlvbi4uLmAsIHN0YXRlbWVudE5vZGUpO1xuXG4gICAgY29uc3QgY29udGFpbmVkQXNzZXJ0aW9uVmVyaWZpZWQgPSB2ZXJpZnlDb250YWluZWRBc3NlcnRpb24oY29udGFpbmVkQXNzZXJ0aW9uTm9kZSwgYXNzaWdubWVudHMsIGRlcml2ZWQsIGxvY2FsQ29udGV4dCk7XG5cbiAgICBzdGF0ZW1lbnRWZXJpZmllZEFzQ29udGFpbmVkQXNzZXJ0aW9uID0gY29udGFpbmVkQXNzZXJ0aW9uVmVyaWZpZWQ7IC8vL1xuXG4gICAgaWYgKHN0YXRlbWVudFZlcmlmaWVkQXNDb250YWluZWRBc3NlcnRpb24pIHtcbiAgICAgIGxvY2FsQ29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudCBhcyBhIGRlZmluZWQgYXNzZXJ0aW9uLmAsIHN0YXRlbWVudE5vZGUpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBzdGF0ZW1lbnRWZXJpZmllZEFzQ29udGFpbmVkQXNzZXJ0aW9uO1xufVxuXG5mdW5jdGlvbiB2ZXJpZnlTdGF0ZW1lbnRBZ2FpbnN0Q29tYmluYXRvcnMoc3RhdGVtZW50Tm9kZSwgYXNzaWdubWVudHMsIGRlcml2ZWQsIGxvY2FsQ29udGV4dCkge1xuICBsZXQgc3RhdGVtZW50VmVyaWZpZWRBZ2FpbnN0Q29tYmluYXRvcnMgPSBmYWxzZTtcblxuICBjb25zdCBlcXVhbGl0eU5vZGUgPSBlcXVhbGl0eU5vZGVRdWVyeShzdGF0ZW1lbnROb2RlKSxcbiAgICAgICAganVkZ2VtZW50Tm9kZSA9IGp1ZGdlbWVudE5vZGVRdWVyeShzdGF0ZW1lbnROb2RlKSxcbiAgICAgICAgbWV0YXZhcmlhYmxlTm9kZSA9IG1ldGF2YXJpYWJsZU5vZGVRdWVyeShzdGF0ZW1lbnROb2RlKSxcbiAgICAgICAgdHlwZUFzc2VydGlvbk5vZGUgPSB0eXBlQXNzZXJ0aW9uTm9kZVF1ZXJ5KHN0YXRlbWVudE5vZGUpLFxuICAgICAgICBkZWZpbmVkQXNzZXJ0aW9uTm9kZSA9IGRlZmluZWRBc3NlcnRpb25Ob2RlUXVlcnkoc3RhdGVtZW50Tm9kZSksXG4gICAgICAgIHN1YnByb29mQXNzZXJ0aW9uTm9kZSA9IHN1YnByb29mQXNzZXJ0aW9uTm9kZVF1ZXJ5KHN0YXRlbWVudE5vZGUpLFxuICAgICAgICBjb250YWluZWRBc3NlcnRpb25Ob2RlID0gY29udGFpbmVkQXNzZXJ0aW9uTm9kZVF1ZXJ5KHN0YXRlbWVudE5vZGUpO1xuXG4gIGlmICggIChlcXVhbGl0eU5vZGUgPT09IG51bGwpICYmXG4gICAgICAgIChqdWRnZW1lbnROb2RlID09PSBudWxsKSAmJlxuICAgICAgICAobWV0YXZhcmlhYmxlTm9kZSA9PT0gbnVsbCkgJiZcbiAgICAgICAgKHR5cGVBc3NlcnRpb25Ob2RlID09PSBudWxsKSAmJlxuICAgICAgICAoZGVmaW5lZEFzc2VydGlvbk5vZGUgPT09IG51bGwpICYmXG4gICAgICAgIChzdWJwcm9vZkFzc2VydGlvbk5vZGUgPT09IG51bGwpICYmXG4gICAgICAgIChjb250YWluZWRBc3NlcnRpb25Ob2RlID09PSBudWxsKSApIHtcblxuICAgIGxldCBjb21iaW5hdG9ycyA9IGxvY2FsQ29udGV4dC5nZXRDb21iaW5hdG9ycygpO1xuXG4gICAgY29tYmluYXRvcnMgPSBbIC8vL1xuICAgICAgYnJhY2tldGVkQ29tYmluYXRvcixcbiAgICAgIC4uLmNvbWJpbmF0b3JzXG4gICAgXTtcblxuICAgIHN0YXRlbWVudFZlcmlmaWVkQWdhaW5zdENvbWJpbmF0b3JzID0gY29tYmluYXRvcnMuc29tZSgoY29tYmluYXRvcikgPT4ge1xuICAgICAgY29uc3Qgc3RhdGVtZW50VmVyaWZpZWRBZ2FpbnN0Q29tYmluYXRvciA9IHZlcmlmeVN0YXRlbWVudEFnYWluc3RDb21iaW5hdG9yKHN0YXRlbWVudE5vZGUsIGNvbWJpbmF0b3IsIGxvY2FsQ29udGV4dCk7XG5cbiAgICAgIGlmIChzdGF0ZW1lbnRWZXJpZmllZEFnYWluc3RDb21iaW5hdG9yKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIHN0YXRlbWVudFZlcmlmaWVkQWdhaW5zdENvbWJpbmF0b3JzO1xufVxuXG5mdW5jdGlvbiB2ZXJpZnlTdGF0ZW1lbnRBZ2FpbnN0Q29tYmluYXRvcihzdGF0ZW1lbnROb2RlLCBjb21iaW5hdG9yLCBsb2NhbENvbnRleHQpIHtcbiAgbGV0IHN0YXRlbWVudFZlcmlmaWVkQWdhaW5zdENvbWJpbmF0b3I7XG5cbiAgY29uc3Qgc3RhdGVtZW50U3RyaW5nID0gbG9jYWxDb250ZXh0Lm5vZGVBc1N0cmluZyhzdGF0ZW1lbnROb2RlKSxcbiAgICAgICAgY29tYmluYXRvclN0cmluZyA9IGNvbWJpbmF0b3IuZ2V0U3RyaW5nKCk7XG5cbiAgbG9jYWxDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudCBhZ2FpbnN0IHRoZSAnJHtjb21iaW5hdG9yU3RyaW5nfScgY29tYmluYXRvci4uLmAsIHN0YXRlbWVudE5vZGUpO1xuXG4gIGNvbnN0IGNvbWJpbmF0b3JTdGF0ZW1lbnROb2RlID0gY29tYmluYXRvci5nZXRTdGF0ZW1lbnROb2RlKCk7XG5cbiAgc3RhdGVtZW50VmVyaWZpZWRBZ2FpbnN0Q29tYmluYXRvciA9IHN0YXRlbWVudEFnYWluc3RDb21iaW5hdG9yVW5pZmllci51bmlmeShzdGF0ZW1lbnROb2RlLCBjb21iaW5hdG9yU3RhdGVtZW50Tm9kZSwgbG9jYWxDb250ZXh0KTtcblxuICBpZiAoc3RhdGVtZW50VmVyaWZpZWRBZ2FpbnN0Q29tYmluYXRvcikge1xuICAgIGxvY2FsQ29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudCBhZ2FpbnN0IHRoZSAnJHtjb21iaW5hdG9yU3RyaW5nfScgY29tYmluYXRvci5gLCBzdGF0ZW1lbnROb2RlKTtcbiAgfVxuXG4gIHJldHVybiBzdGF0ZW1lbnRWZXJpZmllZEFnYWluc3RDb21iaW5hdG9yO1xufVxuIl0sIm5hbWVzIjpbInZlcmlmeVN0YW5kYWxvbmVTdGF0ZW1lbnQiLCJlcXVhbGl0eU5vZGVRdWVyeSIsIm5vZGVRdWVyeSIsImp1ZGdlbWVudE5vZGVRdWVyeSIsIm1ldGF2YXJpYWJsZU5vZGVRdWVyeSIsInR5cGVBc3NlcnRpb25Ob2RlUXVlcnkiLCJkZWZpbmVkQXNzZXJ0aW9uTm9kZVF1ZXJ5Iiwic3VicHJvb2ZBc3NlcnRpb25Ob2RlUXVlcnkiLCJjb250YWluZWRBc3NlcnRpb25Ob2RlUXVlcnkiLCJ2ZXJpZnlTdGF0ZW1lbnQiLCJzdGF0ZW1lbnROb2RlIiwiYXNzaWdubWVudHMiLCJkZXJpdmVkIiwibG9jYWxDb250ZXh0Iiwic3RhdGVtZW50VmVyaWZpZWQiLCJzdGF0ZW1lbnRTdHJpbmciLCJub2RlQXNTdHJpbmciLCJ0cmFjZSIsInZlcmlmeVN0YXRlbWVudEZ1bmN0aW9ucyIsInZlcmlmeVN0YXRlbWVudEFzTWV0YXZhcmlhYmxlIiwidmVyaWZ5U3RhdGVtZW50QXNFcXVhbGl0eSIsInZlcmlmeVN0YXRlbWVudEFzSnVkZ2VtZW50IiwidmVyaWZ5U3RhdGVtZW50QXNUeXBlQXNzZXJ0aW9uIiwidmVyaWZ5U3RhdGVtZW50QXNEZWZpbmVkQXNzZXJ0aW9uIiwidmVyaWZ5U3RhdGVtZW50QXNTdWJwcm9vZkFzc2VydGlvbiIsInZlcmlmeVN0YXRlbWVudEFzQ29udGFpbmVkQXNzZXJ0aW9uIiwidmVyaWZ5U3RhdGVtZW50QWdhaW5zdENvbWJpbmF0b3JzIiwic29tZSIsInZlcmlmeVN0YXRlbWVudEZ1bmN0aW9uIiwiZGVidWciLCJ2ZXJpZnlBaGVhZCIsInN0YW5kYWxvbmVTdGF0ZW1lbnRWZXJpZmllZCIsInZlcmlmaWVkQWhlYWQiLCJPYmplY3QiLCJhc3NpZ24iLCJzaGltIiwic3RhdGVtZW50VmVyaWZpZWRBc01ldGF2YXJpYWJsZSIsIm1ldGF2YXJpYWJsZU5vZGUiLCJ2ZXJpZmllZCIsIm1ldGFMZXZlbFZlcmlmaWVyIiwidmVyaWZ5Iiwic3RhdGVtZW50VmVyaWZpZWRBc0VxdWFsaXR5IiwiZXF1YWxpdHlOb2RlIiwiZXF1YWxpdHlWZXJpZmllZCIsInZlcmlmeUVxdWFsaXR5Iiwic3RhdGVtZW50VmVyaWZpZWRBc0p1ZGdlbWVudCIsImp1ZGdlbWVudE5vZGUiLCJqdWRnZW1lbnRWZXJpZmllZCIsInZlcmlmeUp1ZGdlbWVudCIsInN0YXRlbWVudFZlcmlmaWVkQXNUeXBlQXNzZXJ0aW9uIiwidHlwZUFzc2VydGlvbk5vZGUiLCJ0eXBlQXNzZXJ0aW9uVmVyaWZpZWQiLCJ2ZXJpZnlUeXBlQXNzZXJ0aW9uIiwic3RhdGVtZW50VmVyaWZpZWRBc0RlZmluZWRBc3NlcnRpb24iLCJkZWZpbmVkQXNzZXJ0aW9uTm9kZSIsImRlZmluZWRBc3NlcnRpb25WZXJpZmllZCIsInZlcmlmeURlZmluZWRBc3NlcnRpb24iLCJzdGF0ZW1lbnRWZXJpZmllZEFzU3VicHJvb2ZBc3NlcnRpb24iLCJzdWJwcm9vZkFzc2VydGlvbk5vZGUiLCJzdWJwcm9vZkFzc2VydGlvblZlcmlmaWVkIiwidmVyaWZ5U3VicHJvb2ZBc3NlcnRpb24iLCJzdGF0ZW1lbnRWZXJpZmllZEFzQ29udGFpbmVkQXNzZXJ0aW9uIiwiY29udGFpbmVkQXNzZXJ0aW9uTm9kZSIsImNvbnRhaW5lZEFzc2VydGlvblZlcmlmaWVkIiwidmVyaWZ5Q29udGFpbmVkQXNzZXJ0aW9uIiwic3RhdGVtZW50VmVyaWZpZWRBZ2FpbnN0Q29tYmluYXRvcnMiLCJjb21iaW5hdG9ycyIsImdldENvbWJpbmF0b3JzIiwiYnJhY2tldGVkQ29tYmluYXRvciIsImNvbWJpbmF0b3IiLCJzdGF0ZW1lbnRWZXJpZmllZEFnYWluc3RDb21iaW5hdG9yIiwidmVyaWZ5U3RhdGVtZW50QWdhaW5zdENvbWJpbmF0b3IiLCJjb21iaW5hdG9yU3RyaW5nIiwiZ2V0U3RyaW5nIiwiY29tYmluYXRvclN0YXRlbWVudE5vZGUiLCJnZXRTdGF0ZW1lbnROb2RlIiwic3RhdGVtZW50QWdhaW5zdENvbWJpbmF0b3JVbmlmaWVyIiwidW5pZnkiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztJQXFGQSxPQUErQjtlQUEvQjs7SUE3QmdCQSx5QkFBeUI7ZUFBekJBOzs7MkRBdERDOytEQUNVO2dFQUNDO2dFQUNFO2dFQUNFOzJEQUNBOzhEQUNHOytEQUNDO2dFQUNDO2lGQUNTO3FCQUVwQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUUxQixJQUFNQyxvQkFBb0JDLElBQUFBLGdCQUFTLEVBQUMseUJBQzlCQyxxQkFBcUJELElBQUFBLGdCQUFTLEVBQUMsMEJBQy9CRSx3QkFBd0JGLElBQUFBLGdCQUFTLEVBQUMscUJBQ2xDRyx5QkFBeUJILElBQUFBLGdCQUFTLEVB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
212
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvc3RhdGVtZW50LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgc2hpbSBmcm9tIFwiLi4vc2hpbVwiO1xuaW1wb3J0IHZlcmlmeUVxdWFsaXR5IGZyb20gXCIuLi92ZXJpZnkvZXF1YWxpdHlcIjtcbmltcG9ydCB2ZXJpZnlKdWRnZW1lbnQgZnJvbSBcIi4uL3ZlcmlmeS9qdWRnZW1lbnRcIjtcbmltcG9ydCBtZXRhTGV2ZWxWZXJpZmllciBmcm9tIFwiLi4vdmVyaWZpZXIvbWV0YUxldmVsXCI7XG5pbXBvcnQgYnJhY2tldGVkQ29tYmluYXRvciBmcm9tIFwiLi4vb2NtYmluYXRvci9icmFja2V0ZWRcIjtcbmltcG9ydCB2ZXJpZnlUeXBlQXNzZXJ0aW9uIGZyb20gXCIuLi92ZXJpZnkvYXNzZXJ0aW9uL3R5cGVcIjtcbmltcG9ydCB2ZXJpZnlEZWZpbmVkQXNzZXJ0aW9uIGZyb20gXCIuLi92ZXJpZnkvYXNzZXJ0aW9uL2RlZmluZWRcIjtcbmltcG9ydCB2ZXJpZnlTdWJwcm9vZkFzc2VydGlvbiBmcm9tIFwiLi4vdmVyaWZ5L2Fzc2VydGlvbi9zdWJwcm9vZlwiO1xuaW1wb3J0IHZlcmlmeUNvbnRhaW5lZEFzc2VydGlvbiBmcm9tIFwiLi4vdmVyaWZ5L2Fzc2VydGlvbi9jb250YWluZWRcIjtcbmltcG9ydCBzdGF0ZW1lbnRBZ2FpbnN0Q29tYmluYXRvclVuaWZpZXIgZnJvbSBcIi4uL3VuaWZpZXIvc3RhdGVtZW50QWdhaW5zdENvbWJpbmF0b3JcIjtcblxuaW1wb3J0IHsgbm9kZVF1ZXJ5IH0gZnJvbSBcIi4uL3V0aWxpdGllcy9xdWVyeVwiO1xuXG5jb25zdCBlcXVhbGl0eU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9zdGF0ZW1lbnQvZXF1YWxpdHkhXCIpLFxuICAgICAganVkZ2VtZW50Tm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3N0YXRlbWVudC9qdWRnZW1lbnQhXCIpLFxuICAgICAgbWV0YXZhcmlhYmxlTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiLyovbWV0YXZhcmlhYmxlIVwiKSxcbiAgICAgIHR5cGVBc3NlcnRpb25Ob2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvc3RhdGVtZW50L3R5cGVBc3NlcnRpb24hXCIpLFxuICAgICAgZGVmaW5lZEFzc2VydGlvbk5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9zdGF0ZW1lbnQvZGVmaW5lZEFzc2VydGlvbiFcIiksXG4gICAgICBzdWJwcm9vZkFzc2VydGlvbk5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9zdGF0ZW1lbnQvc3VicHJvb2ZBc3NlcnRpb24hXCIpLFxuICAgICAgY29udGFpbmVkQXNzZXJ0aW9uTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3N0YXRlbWVudC9jb250YWluZWRBc3NlcnRpb24hXCIpO1xuXG5mdW5jdGlvbiB2ZXJpZnlTdGF0ZW1lbnQoc3RhdGVtZW50Tm9kZSwgYXNzaWdubWVudHMsIGRlcml2ZWQsIGxvY2FsQ29udGV4dCkge1xuICBsZXQgc3RhdGVtZW50VmVyaWZpZWQ7XG5cbiAgY29uc3Qgc3RhdGVtZW50U3RyaW5nID0gbG9jYWxDb250ZXh0Lm5vZGVBc1N0cmluZyhzdGF0ZW1lbnROb2RlKTtcblxuICBsb2NhbENvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50Li4uYCwgc3RhdGVtZW50Tm9kZSk7XG5cbiAgY29uc3QgdmVyaWZ5U3RhdGVtZW50RnVuY3Rpb25zID0gW1xuICAgIHZlcmlmeVN0YXRlbWVudEFzTWV0YXZhcmlhYmxlLFxuICAgIHZlcmlmeVN0YXRlbWVudEFzRXF1YWxpdHksXG4gICAgdmVyaWZ5U3RhdGVtZW50QXNKdWRnZW1lbnQsXG4gICAgdmVyaWZ5U3RhdGVtZW50QXNUeXBlQXNzZXJ0aW9uLFxuICAgIHZlcmlmeVN0YXRlbWVudEFzRGVmaW5lZEFzc2VydGlvbixcbiAgICB2ZXJpZnlTdGF0ZW1lbnRBc1N1YnByb29mQXNzZXJ0aW9uLFxuICAgIHZlcmlmeVN0YXRlbWVudEFzQ29udGFpbmVkQXNzZXJ0aW9uLFxuICAgIHZlcmlmeVN0YXRlbWVudEFnYWluc3RDb21iaW5hdG9yc1xuICBdO1xuXG4gIHN0YXRlbWVudFZlcmlmaWVkID0gdmVyaWZ5U3RhdGVtZW50RnVuY3Rpb25zLnNvbWUoKHZlcmlmeVN0YXRlbWVudEZ1bmN0aW9uKSA9PiB7XG4gICAgY29uc3Qgc3RhdGVtZW50VmVyaWZpZWQgPSB2ZXJpZnlTdGF0ZW1lbnRGdW5jdGlvbihzdGF0ZW1lbnROb2RlLCBhc3NpZ25tZW50cywgZGVyaXZlZCwgbG9jYWxDb250ZXh0KTtcblxuICAgIGlmIChzdGF0ZW1lbnRWZXJpZmllZCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9KTtcblxuICBpZiAoc3RhdGVtZW50VmVyaWZpZWQpIHtcbiAgICBsb2NhbENvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQuYCwgc3RhdGVtZW50Tm9kZSk7XG4gIH1cblxuICByZXR1cm4gc3RhdGVtZW50VmVyaWZpZWQ7XG59XG5cbk9iamVjdC5hc3NpZ24oc2hpbSwge1xuICB2ZXJpZnlTdGF0ZW1lbnRcbn0pO1xuXG5leHBvcnQgZGVmYXVsdCB2ZXJpZnlTdGF0ZW1lbnQ7XG5cbmZ1bmN0aW9uIHZlcmlmeVN0YXRlbWVudEFzTWV0YXZhcmlhYmxlKHN0YXRlbWVudE5vZGUsIGFzc2lnbm1lbnRzLCBkZXJpdmVkLCBsb2NhbENvbnRleHQpIHtcbiAgbGV0IHN0YXRlbWVudFZlcmlmaWVkQXNNZXRhdmFyaWFibGUgPSBmYWxzZTtcblxuICBjb25zdCBtZXRhdmFyaWFibGVOb2RlID0gbWV0YXZhcmlhYmxlTm9kZVF1ZXJ5KHN0YXRlbWVudE5vZGUpO1xuXG4gIGlmIChtZXRhdmFyaWFibGVOb2RlICE9PSBudWxsKSB7XG4gICAgY29uc3Qgc3RhdGVtZW50U3RyaW5nID0gbG9jYWxDb250ZXh0Lm5vZGVBc1N0cmluZyhzdGF0ZW1lbnROb2RlKTtcblxuICAgIGxvY2FsQ29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgYXMgYSBtZXRhdmFyaWFibGUuLi5gLCBzdGF0ZW1lbnROb2RlKTtcblxuICAgIGNvbnN0IHZlcmlmaWVkID0gbWV0YUxldmVsVmVyaWZpZXIudmVyaWZ5KHN0YXRlbWVudE5vZGUsIGxvY2FsQ29udGV4dCk7XG5cbiAgICBzdGF0ZW1lbnRWZXJpZmllZEFzTWV0YXZhcmlhYmxlID0gdmVyaWZpZWQ7IC8vL1xuXG4gICAgaWYgKHN0YXRlbWVudFZlcmlmaWVkQXNNZXRhdmFyaWFibGUpIHtcbiAgICAgIGxvY2FsQ29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudCBhcyBhIG1ldGF2YXJpYWJsZS5gLCBzdGF0ZW1lbnROb2RlKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gc3RhdGVtZW50VmVyaWZpZWRBc01ldGF2YXJpYWJsZTtcbn1cblxuZnVuY3Rpb24gdmVyaWZ5U3RhdGVtZW50QXNFcXVhbGl0eShzdGF0ZW1lbnROb2RlLCBhc3NpZ25tZW50cywgZGVyaXZlZCwgbG9jYWxDb250ZXh0KSB7XG4gIGxldCBzdGF0ZW1lbnRWZXJpZmllZEFzRXF1YWxpdHkgPSBmYWxzZTtcblxuICBjb25zdCBlcXVhbGl0eU5vZGUgPSBlcXVhbGl0eU5vZGVRdWVyeShzdGF0ZW1lbnROb2RlKTtcblxuICBpZiAoZXF1YWxpdHlOb2RlICE9PSBudWxsKSB7XG4gICAgY29uc3Qgc3RhdGVtZW50U3RyaW5nID0gbG9jYWxDb250ZXh0Lm5vZGVBc1N0cmluZyhzdGF0ZW1lbnROb2RlKTtcblxuICAgIGxvY2FsQ29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgYXMgYW4gZXF1YWxpdHkuLi5gLCBzdGF0ZW1lbnROb2RlKTtcblxuICAgIGNvbnN0IGVxdWFsaXR5VmVyaWZpZWQgPSB2ZXJpZnlFcXVhbGl0eShlcXVhbGl0eU5vZGUsIGFzc2lnbm1lbnRzLCBkZXJpdmVkLCBsb2NhbENvbnRleHQsICgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHZlcmlmaWVkQWhlYWQgPSB0cnVlO1xuXG4gICAgICAgICAgICByZXR1cm4gdmVyaWZpZWRBaGVhZDtcbiAgICAgICAgICB9KTtcblxuICAgIHN0YXRlbWVudFZlcmlmaWVkQXNFcXVhbGl0eSA9IGVxdWFsaXR5VmVyaWZpZWQ7IC8vL1xuXG4gICAgaWYgKHN0YXRlbWVudFZlcmlmaWVkQXNFcXVhbGl0eSkge1xuICAgICAgbG9jYWxDb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IGFzIGFuIGVxdWFsaXR5LmAsIHN0YXRlbWVudE5vZGUpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBzdGF0ZW1lbnRWZXJpZmllZEFzRXF1YWxpdHk7XG59XG5cbmZ1bmN0aW9uIHZlcmlmeVN0YXRlbWVudEFzSnVkZ2VtZW50KHN0YXRlbWVudE5vZGUsIGFzc2lnbm1lbnRzLCBkZXJpdmVkLCBsb2NhbENvbnRleHQpIHtcbiAgbGV0IHN0YXRlbWVudFZlcmlmaWVkQXNKdWRnZW1lbnQgPSBmYWxzZTtcblxuICBjb25zdCBqdWRnZW1lbnROb2RlID0ganVkZ2VtZW50Tm9kZVF1ZXJ5KHN0YXRlbWVudE5vZGUpO1xuXG4gIGlmIChqdWRnZW1lbnROb2RlICE9PSBudWxsKSB7XG4gICAgY29uc3Qgc3RhdGVtZW50U3RyaW5nID0gbG9jYWxDb250ZXh0Lm5vZGVBc1N0cmluZyhzdGF0ZW1lbnROb2RlKTtcblxuICAgIGxvY2FsQ29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgYXMgYSBqdWRnZW1lbnQuLi5gLCBzdGF0ZW1lbnROb2RlKTtcblxuICAgIGNvbnN0IGp1ZGdlbWVudFZlcmlmaWVkID0gdmVyaWZ5SnVkZ2VtZW50KGp1ZGdlbWVudE5vZGUsIGFzc2lnbm1lbnRzLCBkZXJpdmVkLCBsb2NhbENvbnRleHQpO1xuXG4gICAgc3RhdGVtZW50VmVyaWZpZWRBc0p1ZGdlbWVudCA9IGp1ZGdlbWVudFZlcmlmaWVkOyAgLy8vXG5cbiAgICBpZiAoc3RhdGVtZW50VmVyaWZpZWRBc0p1ZGdlbWVudCkge1xuICAgICAgbG9jYWxDb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IGFzIGEganVkZ2VtZW50LmAsIHN0YXRlbWVudE5vZGUpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBzdGF0ZW1lbnRWZXJpZmllZEFzSnVkZ2VtZW50O1xufVxuXG5mdW5jdGlvbiB2ZXJpZnlTdGF0ZW1lbnRBc1R5cGVBc3NlcnRpb24oc3RhdGVtZW50Tm9kZSwgYXNzaWdubWVudHMsIGRlcml2ZWQsIGxvY2FsQ29udGV4dCkge1xuICBsZXQgc3RhdGVtZW50VmVyaWZpZWRBc1R5cGVBc3NlcnRpb24gPSBmYWxzZTtcblxuICBjb25zdCB0eXBlQXNzZXJ0aW9uTm9kZSA9IHR5cGVBc3NlcnRpb25Ob2RlUXVlcnkoc3RhdGVtZW50Tm9kZSk7XG5cbiAgaWYgKHR5cGVBc3NlcnRpb25Ob2RlICE9PSBudWxsKSB7XG4gICAgY29uc3Qgc3RhdGVtZW50U3RyaW5nID0gbG9jYWxDb250ZXh0Lm5vZGVBc1N0cmluZyhzdGF0ZW1lbnROb2RlKTtcblxuICAgIGxvY2FsQ29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgYXMgYSB0eXBlIGFzc2VydGlvbi4uLmAsIHN0YXRlbWVudE5vZGUpO1xuXG4gICAgY29uc3QgdHlwZUFzc2VydGlvblZlcmlmaWVkID0gdmVyaWZ5VHlwZUFzc2VydGlvbih0eXBlQXNzZXJ0aW9uTm9kZSwgYXNzaWdubWVudHMsIGRlcml2ZWQsIGxvY2FsQ29udGV4dCk7XG5cbiAgICBzdGF0ZW1lbnRWZXJpZmllZEFzVHlwZUFzc2VydGlvbiA9IHR5cGVBc3NlcnRpb25WZXJpZmllZDsgLy8vXG5cbiAgICBpZiAoc3RhdGVtZW50VmVyaWZpZWRBc1R5cGVBc3NlcnRpb24pIHtcbiAgICAgIGxvY2FsQ29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudCBhcyBhIHR5cGUgYXNzZXJ0aW9uLmAsIHN0YXRlbWVudE5vZGUpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBzdGF0ZW1lbnRWZXJpZmllZEFzVHlwZUFzc2VydGlvbjtcbn1cblxuZnVuY3Rpb24gdmVyaWZ5U3RhdGVtZW50QXNEZWZpbmVkQXNzZXJ0aW9uKHN0YXRlbWVudE5vZGUsIGFzc2lnbm1lbnRzLCBkZXJpdmVkLCBsb2NhbENvbnRleHQpIHtcbiAgbGV0IHN0YXRlbWVudFZlcmlmaWVkQXNEZWZpbmVkQXNzZXJ0aW9uID0gZmFsc2U7XG5cbiAgY29uc3QgZGVmaW5lZEFzc2VydGlvbk5vZGUgPSBkZWZpbmVkQXNzZXJ0aW9uTm9kZVF1ZXJ5KHN0YXRlbWVudE5vZGUpO1xuXG4gIGlmIChkZWZpbmVkQXNzZXJ0aW9uTm9kZSAhPT0gbnVsbCkge1xuICAgIGNvbnN0IHN0YXRlbWVudFN0cmluZyA9IGxvY2FsQ29udGV4dC5ub2RlQXNTdHJpbmcoc3RhdGVtZW50Tm9kZSk7XG5cbiAgICBsb2NhbENvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IGFzIGEgZGVmaW5lZCBhc3NlcnRpb24uLi5gLCBzdGF0ZW1lbnROb2RlKTtcblxuICAgIGNvbnN0IGRlZmluZWRBc3NlcnRpb25WZXJpZmllZCA9IHZlcmlmeURlZmluZWRBc3NlcnRpb24oZGVmaW5lZEFzc2VydGlvbk5vZGUsIGFzc2lnbm1lbnRzLCBkZXJpdmVkLCBsb2NhbENvbnRleHQpO1xuXG4gICAgc3RhdGVtZW50VmVyaWZpZWRBc0RlZmluZWRBc3NlcnRpb24gPSBkZWZpbmVkQXNzZXJ0aW9uVmVyaWZpZWQ7IC8vL1xuXG4gICAgaWYgKHN0YXRlbWVudFZlcmlmaWVkQXNEZWZpbmVkQXNzZXJ0aW9uKSB7XG4gICAgICBsb2NhbENvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgYXMgYSBkZWZpbmVkIGFzc2VydGlvbi5gLCBzdGF0ZW1lbnROb2RlKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gc3RhdGVtZW50VmVyaWZpZWRBc0RlZmluZWRBc3NlcnRpb247XG59XG5cbmZ1bmN0aW9uIHZlcmlmeVN0YXRlbWVudEFzU3VicHJvb2ZBc3NlcnRpb24oc3RhdGVtZW50Tm9kZSwgYXNzaWdubWVudHMsIGRlcml2ZWQsIGxvY2FsQ29udGV4dCkge1xuICBsZXQgc3RhdGVtZW50VmVyaWZpZWRBc1N1YnByb29mQXNzZXJ0aW9uID0gZmFsc2U7XG5cbiAgY29uc3Qgc3VicHJvb2ZBc3NlcnRpb25Ob2RlID0gc3VicHJvb2ZBc3NlcnRpb25Ob2RlUXVlcnkoc3RhdGVtZW50Tm9kZSk7XG5cbiAgaWYgKHN1YnByb29mQXNzZXJ0aW9uTm9kZSAhPT0gbnVsbCkge1xuICAgIGNvbnN0IHN0YXRlbWVudFN0cmluZyA9IGxvY2FsQ29udGV4dC5ub2RlQXNTdHJpbmcoc3RhdGVtZW50Tm9kZSk7XG5cbiAgICBsb2NhbENvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IGFzIGEgc3VicHJvb2YgYXNzZXJ0aW9uLi4uYCwgc3RhdGVtZW50Tm9kZSk7XG5cbiAgICBjb25zdCBzdWJwcm9vZkFzc2VydGlvblZlcmlmaWVkID0gdmVyaWZ5U3VicHJvb2ZBc3NlcnRpb24oc3VicHJvb2ZBc3NlcnRpb25Ob2RlLCBhc3NpZ25tZW50cywgZGVyaXZlZCwgbG9jYWxDb250ZXh0KTtcblxuICAgIHN0YXRlbWVudFZlcmlmaWVkQXNTdWJwcm9vZkFzc2VydGlvbiA9IHN1YnByb29mQXNzZXJ0aW9uVmVyaWZpZWQ7IC8vL1xuXG4gICAgaWYgKHN0YXRlbWVudFZlcmlmaWVkQXNTdWJwcm9vZkFzc2VydGlvbikge1xuICAgICAgbG9jYWxDb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IGFzIGEgZGVmaW5lZCBhc3NlcnRpb24uYCwgc3RhdGVtZW50Tm9kZSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHN0YXRlbWVudFZlcmlmaWVkQXNTdWJwcm9vZkFzc2VydGlvbjtcbn1cblxuZnVuY3Rpb24gdmVyaWZ5U3RhdGVtZW50QXNDb250YWluZWRBc3NlcnRpb24oc3RhdGVtZW50Tm9kZSwgYXNzaWdubWVudHMsIGRlcml2ZWQsIGxvY2FsQ29udGV4dCkge1xuICBsZXQgc3RhdGVtZW50VmVyaWZpZWRBc0NvbnRhaW5lZEFzc2VydGlvbiA9IGZhbHNlO1xuXG4gIGNvbnN0IGNvbnRhaW5lZEFzc2VydGlvbk5vZGUgPSBjb250YWluZWRBc3NlcnRpb25Ob2RlUXVlcnkoc3RhdGVtZW50Tm9kZSk7XG5cbiAgaWYgKGNvbnRhaW5lZEFzc2VydGlvbk5vZGUgIT09IG51bGwpIHtcbiAgICBjb25zdCBzdGF0ZW1lbnRTdHJpbmcgPSBsb2NhbENvbnRleHQubm9kZUFzU3RyaW5nKHN0YXRlbWVudE5vZGUpO1xuXG4gICAgbG9jYWxDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudCBhcyBhIGRlZmluZWQgYXNzZXJ0aW9uLi4uYCwgc3RhdGVtZW50Tm9kZSk7XG5cbiAgICBjb25zdCBjb250YWluZWRBc3NlcnRpb25WZXJpZmllZCA9IHZlcmlmeUNvbnRhaW5lZEFzc2VydGlvbihjb250YWluZWRBc3NlcnRpb25Ob2RlLCBhc3NpZ25tZW50cywgZGVyaXZlZCwgbG9jYWxDb250ZXh0KTtcblxuICAgIHN0YXRlbWVudFZlcmlmaWVkQXNDb250YWluZWRBc3NlcnRpb24gPSBjb250YWluZWRBc3NlcnRpb25WZXJpZmllZDsgLy8vXG5cbiAgICBpZiAoc3RhdGVtZW50VmVyaWZpZWRBc0NvbnRhaW5lZEFzc2VydGlvbikge1xuICAgICAgbG9jYWxDb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IGFzIGEgZGVmaW5lZCBhc3NlcnRpb24uYCwgc3RhdGVtZW50Tm9kZSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHN0YXRlbWVudFZlcmlmaWVkQXNDb250YWluZWRBc3NlcnRpb247XG59XG5cbmZ1bmN0aW9uIHZlcmlmeVN0YXRlbWVudEFnYWluc3RDb21iaW5hdG9ycyhzdGF0ZW1lbnROb2RlLCBhc3NpZ25tZW50cywgZGVyaXZlZCwgbG9jYWxDb250ZXh0KSB7XG4gIGxldCBzdGF0ZW1lbnRWZXJpZmllZEFnYWluc3RDb21iaW5hdG9ycyA9IGZhbHNlO1xuXG4gIGNvbnN0IGVxdWFsaXR5Tm9kZSA9IGVxdWFsaXR5Tm9kZVF1ZXJ5KHN0YXRlbWVudE5vZGUpLFxuICAgICAgICBqdWRnZW1lbnROb2RlID0ganVkZ2VtZW50Tm9kZVF1ZXJ5KHN0YXRlbWVudE5vZGUpLFxuICAgICAgICBtZXRhdmFyaWFibGVOb2RlID0gbWV0YXZhcmlhYmxlTm9kZVF1ZXJ5KHN0YXRlbWVudE5vZGUpLFxuICAgICAgICB0eXBlQXNzZXJ0aW9uTm9kZSA9IHR5cGVBc3NlcnRpb25Ob2RlUXVlcnkoc3RhdGVtZW50Tm9kZSksXG4gICAgICAgIGRlZmluZWRBc3NlcnRpb25Ob2RlID0gZGVmaW5lZEFzc2VydGlvbk5vZGVRdWVyeShzdGF0ZW1lbnROb2RlKSxcbiAgICAgICAgc3VicHJvb2ZBc3NlcnRpb25Ob2RlID0gc3VicHJvb2ZBc3NlcnRpb25Ob2RlUXVlcnkoc3RhdGVtZW50Tm9kZSksXG4gICAgICAgIGNvbnRhaW5lZEFzc2VydGlvbk5vZGUgPSBjb250YWluZWRBc3NlcnRpb25Ob2RlUXVlcnkoc3RhdGVtZW50Tm9kZSk7XG5cbiAgaWYgKCAgKGVxdWFsaXR5Tm9kZSA9PT0gbnVsbCkgJiZcbiAgICAgICAgKGp1ZGdlbWVudE5vZGUgPT09IG51bGwpICYmXG4gICAgICAgIChtZXRhdmFyaWFibGVOb2RlID09PSBudWxsKSAmJlxuICAgICAgICAodHlwZUFzc2VydGlvbk5vZGUgPT09IG51bGwpICYmXG4gICAgICAgIChkZWZpbmVkQXNzZXJ0aW9uTm9kZSA9PT0gbnVsbCkgJiZcbiAgICAgICAgKHN1YnByb29mQXNzZXJ0aW9uTm9kZSA9PT0gbnVsbCkgJiZcbiAgICAgICAgKGNvbnRhaW5lZEFzc2VydGlvbk5vZGUgPT09IG51bGwpICkge1xuXG4gICAgbGV0IGNvbWJpbmF0b3JzID0gbG9jYWxDb250ZXh0LmdldENvbWJpbmF0b3JzKCk7XG5cbiAgICBjb21iaW5hdG9ycyA9IFsgLy8vXG4gICAgICBicmFja2V0ZWRDb21iaW5hdG9yLFxuICAgICAgLi4uY29tYmluYXRvcnNcbiAgICBdO1xuXG4gICAgc3RhdGVtZW50VmVyaWZpZWRBZ2FpbnN0Q29tYmluYXRvcnMgPSBjb21iaW5hdG9ycy5zb21lKChjb21iaW5hdG9yKSA9PiB7XG4gICAgICBjb25zdCBzdGF0ZW1lbnRWZXJpZmllZEFnYWluc3RDb21iaW5hdG9yID0gdmVyaWZ5U3RhdGVtZW50QWdhaW5zdENvbWJpbmF0b3Ioc3RhdGVtZW50Tm9kZSwgY29tYmluYXRvciwgbG9jYWxDb250ZXh0KTtcblxuICAgICAgaWYgKHN0YXRlbWVudFZlcmlmaWVkQWdhaW5zdENvbWJpbmF0b3IpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gc3RhdGVtZW50VmVyaWZpZWRBZ2FpbnN0Q29tYmluYXRvcnM7XG59XG5cbmZ1bmN0aW9uIHZlcmlmeVN0YXRlbWVudEFnYWluc3RDb21iaW5hdG9yKHN0YXRlbWVudE5vZGUsIGNvbWJpbmF0b3IsIGxvY2FsQ29udGV4dCkge1xuICBsZXQgc3RhdGVtZW50VmVyaWZpZWRBZ2FpbnN0Q29tYmluYXRvcjtcblxuICBjb25zdCBzdGF0ZW1lbnRTdHJpbmcgPSBsb2NhbENvbnRleHQubm9kZUFzU3RyaW5nKHN0YXRlbWVudE5vZGUpLFxuICAgICAgICBjb21iaW5hdG9yU3RyaW5nID0gY29tYmluYXRvci5nZXRTdHJpbmcoKTtcblxuICBsb2NhbENvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IGFnYWluc3QgdGhlICcke2NvbWJpbmF0b3JTdHJpbmd9JyBjb21iaW5hdG9yLi4uYCwgc3RhdGVtZW50Tm9kZSk7XG5cbiAgY29uc3QgY29tYmluYXRvclN0YXRlbWVudE5vZGUgPSBjb21iaW5hdG9yLmdldFN0YXRlbWVudE5vZGUoKTtcblxuICBzdGF0ZW1lbnRWZXJpZmllZEFnYWluc3RDb21iaW5hdG9yID0gc3RhdGVtZW50QWdhaW5zdENvbWJpbmF0b3JVbmlmaWVyLnVuaWZ5KHN0YXRlbWVudE5vZGUsIGNvbWJpbmF0b3JTdGF0ZW1lbnROb2RlLCBsb2NhbENvbnRleHQpO1xuXG4gIGlmIChzdGF0ZW1lbnRWZXJpZmllZEFnYWluc3RDb21iaW5hdG9yKSB7XG4gICAgbG9jYWxDb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IGFnYWluc3QgdGhlICcke2NvbWJpbmF0b3JTdHJpbmd9JyBjb21iaW5hdG9yLmAsIHN0YXRlbWVudE5vZGUpO1xuICB9XG5cbiAgcmV0dXJuIHN0YXRlbWVudFZlcmlmaWVkQWdhaW5zdENvbWJpbmF0b3I7XG59XG4iXSwibmFtZXMiOlsiZXF1YWxpdHlOb2RlUXVlcnkiLCJub2RlUXVlcnkiLCJqdWRnZW1lbnROb2RlUXVlcnkiLCJtZXRhdmFyaWFibGVOb2RlUXVlcnkiLCJ0eXBlQXNzZXJ0aW9uTm9kZVF1ZXJ5IiwiZGVmaW5lZEFzc2VydGlvbk5vZGVRdWVyeSIsInN1YnByb29mQXNzZXJ0aW9uTm9kZVF1ZXJ5IiwiY29udGFpbmVkQXNzZXJ0aW9uTm9kZVF1ZXJ5IiwidmVyaWZ5U3RhdGVtZW50Iiwic3RhdGVtZW50Tm9kZSIsImFzc2lnbm1lbnRzIiwiZGVyaXZlZCIsImxvY2FsQ29udGV4dCIsInN0YXRlbWVudFZlcmlmaWVkIiwic3RhdGVtZW50U3RyaW5nIiwibm9kZUFzU3RyaW5nIiwidHJhY2UiLCJ2ZXJpZnlTdGF0ZW1lbnRGdW5jdGlvbnMiLCJ2ZXJpZnlTdGF0ZW1lbnRBc01ldGF2YXJpYWJsZSIsInZlcmlmeVN0YXRlbWVudEFzRXF1YWxpdHkiLCJ2ZXJpZnlTdGF0ZW1lbnRBc0p1ZGdlbWVudCIsInZlcmlmeVN0YXRlbWVudEFzVHlwZUFzc2VydGlvbiIsInZlcmlmeVN0YXRlbWVudEFzRGVmaW5lZEFzc2VydGlvbiIsInZlcmlmeVN0YXRlbWVudEFzU3VicHJvb2ZBc3NlcnRpb24iLCJ2ZXJpZnlTdGF0ZW1lbnRBc0NvbnRhaW5lZEFzc2VydGlvbiIsInZlcmlmeVN0YXRlbWVudEFnYWluc3RDb21iaW5hdG9ycyIsInNvbWUiLCJ2ZXJpZnlTdGF0ZW1lbnRGdW5jdGlvbiIsImRlYnVnIiwiT2JqZWN0IiwiYXNzaWduIiwic2hpbSIsInN0YXRlbWVudFZlcmlmaWVkQXNNZXRhdmFyaWFibGUiLCJtZXRhdmFyaWFibGVOb2RlIiwidmVyaWZpZWQiLCJtZXRhTGV2ZWxWZXJpZmllciIsInZlcmlmeSIsInN0YXRlbWVudFZlcmlmaWVkQXNFcXVhbGl0eSIsImVxdWFsaXR5Tm9kZSIsImVxdWFsaXR5VmVyaWZpZWQiLCJ2ZXJpZnlFcXVhbGl0eSIsInZlcmlmaWVkQWhlYWQiLCJzdGF0ZW1lbnRWZXJpZmllZEFzSnVkZ2VtZW50IiwianVkZ2VtZW50Tm9kZSIsImp1ZGdlbWVudFZlcmlmaWVkIiwidmVyaWZ5SnVkZ2VtZW50Iiwic3RhdGVtZW50VmVyaWZpZWRBc1R5cGVBc3NlcnRpb24iLCJ0eXBlQXNzZXJ0aW9uTm9kZSIsInR5cGVBc3NlcnRpb25WZXJpZmllZCIsInZlcmlmeVR5cGVBc3NlcnRpb24iLCJzdGF0ZW1lbnRWZXJpZmllZEFzRGVmaW5lZEFzc2VydGlvbiIsImRlZmluZWRBc3NlcnRpb25Ob2RlIiwiZGVmaW5lZEFzc2VydGlvblZlcmlmaWVkIiwidmVyaWZ5RGVmaW5lZEFzc2VydGlvbiIsInN0YXRlbWVudFZlcmlmaWVkQXNTdWJwcm9vZkFzc2VydGlvbiIsInN1YnByb29mQXNzZXJ0aW9uTm9kZSIsInN1YnByb29mQXNzZXJ0aW9uVmVyaWZpZWQiLCJ2ZXJpZnlTdWJwcm9vZkFzc2VydGlvbiIsInN0YXRlbWVudFZlcmlmaWVkQXNDb250YWluZWRBc3NlcnRpb24iLCJjb250YWluZWRBc3NlcnRpb25Ob2RlIiwiY29udGFpbmVkQXNzZXJ0aW9uVmVyaWZpZWQiLCJ2ZXJpZnlDb250YWluZWRBc3NlcnRpb24iLCJzdGF0ZW1lbnRWZXJpZmllZEFnYWluc3RDb21iaW5hdG9ycyIsImNvbWJpbmF0b3JzIiwiZ2V0Q29tYmluYXRvcnMiLCJicmFja2V0ZWRDb21iaW5hdG9yIiwiY29tYmluYXRvciIsInN0YXRlbWVudFZlcmlmaWVkQWdhaW5zdENvbWJpbmF0b3IiLCJ2ZXJpZnlTdGF0ZW1lbnRBZ2FpbnN0Q29tYmluYXRvciIsImNvbWJpbmF0b3JTdHJpbmciLCJnZXRTdHJpbmciLCJjb21iaW5hdG9yU3RhdGVtZW50Tm9kZSIsImdldFN0YXRlbWVudE5vZGUiLCJzdGF0ZW1lbnRBZ2FpbnN0Q29tYmluYXRvclVuaWZpZXIiLCJ1bmlmeSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBNERBOzs7ZUFBQTs7OzJEQTFEaUI7K0RBQ1U7Z0VBQ0M7Z0VBQ0U7Z0VBQ0U7MkRBQ0E7OERBQ0c7K0RBQ0M7Z0VBQ0M7aUZBQ1M7cUJBRXBCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRTFCLElBQU1BLG9CQUFvQkMsSUFBQUEsZ0JBQVMsRUFBQyx5QkFDOUJDLHFCQUFxQkQsSUFBQUEsZ0JBQVMsRUFBQywwQkFDL0JFLHdCQUF3QkYsSUFBQUEsZ0JBQVMsRUFBQyxxQkFDbENHLHlCQUF5QkgsSUFB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