occam-verify-cli 0.0.936 → 0.0.938

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (72) hide show
  1. package/lib/conclusion.js +7 -10
  2. package/lib/consequent.js +7 -10
  3. package/lib/context/local.js +1 -1
  4. package/lib/equality.js +2 -5
  5. package/lib/premise.js +15 -21
  6. package/lib/proofStep.js +3 -6
  7. package/lib/rule.js +23 -23
  8. package/lib/substitution/statementForMetavariable.js +3 -6
  9. package/lib/supposition.js +15 -21
  10. package/lib/topLevelAssertion.js +27 -23
  11. package/lib/unifier/equality.js +37 -107
  12. package/lib/unifier/metaLevel.js +48 -121
  13. package/lib/unifier/statementAgainstCombinator.js +41 -123
  14. package/lib/unifier/termAgainstConstructor.js +29 -103
  15. package/lib/unifier.js +60 -41
  16. package/lib/unify/metavariableAgainstStatement.js +5 -5
  17. package/lib/unify/statementAgainstMetaType.js +10 -4
  18. package/lib/unify/statementAtainstStatement.js +3 -6
  19. package/lib/unify/termAgainstTerm.js +1 -1
  20. package/lib/unify/termAgainstType.js +10 -4
  21. package/lib/utilities/string.js +2 -2
  22. package/lib/utilities/unifier.js +51 -0
  23. package/lib/verifier/metaLevel.js +48 -128
  24. package/lib/verifier/statementAsCombinator.js +48 -128
  25. package/lib/verifier/termAsConstructor.js +42 -112
  26. package/lib/verifier.js +50 -33
  27. package/lib/verify/assertion/contained.js +3 -6
  28. package/lib/verify/assertion/defined.js +3 -6
  29. package/lib/verify/assertion/subproof.js +9 -14
  30. package/lib/verify/statement/qualified.js +7 -7
  31. package/lib/verify/statement.js +10 -54
  32. package/lib/verify/statementAsCombinator.js +4 -8
  33. package/lib/verify/term.js +5 -5
  34. package/lib/verify/termAsConstructor.js +30 -23
  35. package/package.json +2 -2
  36. package/src/conclusion.js +8 -12
  37. package/src/consequent.js +8 -12
  38. package/src/context/local.js +7 -7
  39. package/src/equality.js +2 -8
  40. package/src/premise.js +20 -28
  41. package/src/proofStep.js +5 -9
  42. package/src/rule.js +22 -22
  43. package/src/substitution/statementForMetavariable.js +4 -8
  44. package/src/supposition.js +20 -28
  45. package/src/topLevelAssertion.js +29 -22
  46. package/src/unifier/equality.js +31 -59
  47. package/src/unifier/metaLevel.js +50 -83
  48. package/src/unifier/statementAgainstCombinator.js +33 -83
  49. package/src/unifier/termAgainstConstructor.js +19 -57
  50. package/src/unifier.js +57 -31
  51. package/src/unify/metavariableAgainstStatement.js +5 -3
  52. package/src/unify/statementAgainstMetaType.js +8 -3
  53. package/src/unify/statementAtainstStatement.js +4 -8
  54. package/src/unify/termAgainstTerm.js +1 -1
  55. package/src/unify/termAgainstType.js +7 -3
  56. package/src/utilities/string.js +1 -1
  57. package/src/verifier/metaLevel.js +37 -81
  58. package/src/verifier/statementAsCombinator.js +39 -82
  59. package/src/verifier/termAsConstructor.js +33 -62
  60. package/src/verifier.js +47 -21
  61. package/src/verify/assertion/contained.js +2 -7
  62. package/src/verify/assertion/defined.js +2 -7
  63. package/src/verify/assertion/subproof.js +3 -16
  64. package/src/verify/statement/qualified.js +7 -7
  65. package/src/verify/statement.js +10 -78
  66. package/src/verify/statementAsCombinator.js +3 -11
  67. package/src/verify/term.js +8 -8
  68. package/src/verify/termAsConstructor.js +40 -27
  69. package/lib/unify/argumentAgainstArgument.js +0 -24
  70. package/lib/utilities/terminalNodes.js +0 -51
  71. package/src/unify/argumentAgainstArgument.js +0 -15
  72. /package/src/utilities/{terminalNodes.js → unifier.js} +0 -0
@@ -9,7 +9,7 @@ Object.defineProperty(exports, "default", {
9
9
  }
10
10
  });
11
11
  var _shim = /*#__PURE__*/ _interop_require_default(require("../shim"));
12
- var _unifier = /*#__PURE__*/ _interop_require_wildcard(require("../unifier"));
12
+ var _unifier = /*#__PURE__*/ _interop_require_default(require("../unifier"));
13
13
  var _variableAgainstTerm = /*#__PURE__*/ _interop_require_default(require("../unify/variableAgainstTerm"));
14
14
  var _metavariableAgainstStatement = /*#__PURE__*/ _interop_require_default(require("../unify/metavariableAgainstStatement"));
15
15
  var _query = require("../utilities/query");
@@ -42,21 +42,18 @@ function _create_class(Constructor, protoProps, staticProps) {
42
42
  if (staticProps) _defineProperties(Constructor, staticProps);
43
43
  return Constructor;
44
44
  }
45
- function _get(target, property, receiver) {
46
- if (typeof Reflect !== "undefined" && Reflect.get) {
47
- _get = Reflect.get;
45
+ function _define_property(obj, key, value) {
46
+ if (key in obj) {
47
+ Object.defineProperty(obj, key, {
48
+ value: value,
49
+ enumerable: true,
50
+ configurable: true,
51
+ writable: true
52
+ });
48
53
  } else {
49
- _get = function get(target, property, receiver) {
50
- var base = _super_prop_base(target, property);
51
- if (!base) return;
52
- var desc = Object.getOwnPropertyDescriptor(base, property);
53
- if (desc.get) {
54
- return desc.get.call(receiver || target);
55
- }
56
- return desc.value;
57
- };
54
+ obj[key] = value;
58
55
  }
59
- return _get(target, property, receiver || target);
56
+ return obj;
60
57
  }
61
58
  function _get_prototype_of(o) {
62
59
  _get_prototype_of = Object.setPrototypeOf ? Object.getPrototypeOf : function getPrototypeOf(o) {
@@ -82,47 +79,6 @@ function _interop_require_default(obj) {
82
79
  default: obj
83
80
  };
84
81
  }
85
- function _getRequireWildcardCache(nodeInterop) {
86
- if (typeof WeakMap !== "function") return null;
87
- var cacheBabelInterop = new WeakMap();
88
- var cacheNodeInterop = new WeakMap();
89
- return (_getRequireWildcardCache = function(nodeInterop) {
90
- return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
91
- })(nodeInterop);
92
- }
93
- function _interop_require_wildcard(obj, nodeInterop) {
94
- if (!nodeInterop && obj && obj.__esModule) {
95
- return obj;
96
- }
97
- if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
98
- return {
99
- default: obj
100
- };
101
- }
102
- var cache = _getRequireWildcardCache(nodeInterop);
103
- if (cache && cache.has(obj)) {
104
- return cache.get(obj);
105
- }
106
- var newObj = {
107
- __proto__: null
108
- };
109
- var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
110
- for(var key in obj){
111
- if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
112
- var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
113
- if (desc && (desc.get || desc.set)) {
114
- Object.defineProperty(newObj, key, desc);
115
- } else {
116
- newObj[key] = obj[key];
117
- }
118
- }
119
- }
120
- newObj.default = obj;
121
- if (cache) {
122
- cache.set(obj, newObj);
123
- }
124
- return newObj;
125
- }
126
82
  function _possible_constructor_return(self, call) {
127
83
  if (call && (_type_of(call) === "object" || typeof call === "function")) {
128
84
  return call;
@@ -136,13 +92,6 @@ function _set_prototype_of(o, p) {
136
92
  };
137
93
  return _set_prototype_of(o, p);
138
94
  }
139
- function _super_prop_base(object, property) {
140
- while(!Object.prototype.hasOwnProperty.call(object, property)){
141
- object = _get_prototype_of(object);
142
- if (object === null) break;
143
- }
144
- return object;
145
- }
146
95
  function _type_of(obj) {
147
96
  "@swc/helpers - typeof";
148
97
  return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
@@ -155,7 +104,7 @@ function _is_native_reflect_construct() {
155
104
  return !!result;
156
105
  })();
157
106
  }
158
- var termNodeQuery = (0, _query.nodeQuery)("/term!"), statementNodeQuery = (0, _query.nodeQuery)("/statement!"), nonTerminalNodeQuery = (0, _query.nodeQuery)("/*"), termVariableNodeQuery = (0, _query.nodeQuery)("/term/variable!"), statementSubstitutionNodeQuery = (0, _query.nodeQuery)("/statement/substitution!"), statementMetavariableNodeQuery = (0, _query.nodeQuery)("/statement/metavariable!");
107
+ var termNodeQuery = (0, _query.nodeQuery)("/term!"), statementNodeQuery = (0, _query.nodeQuery)("/statement!"), termVariableNodeQuery = (0, _query.nodeQuery)("/term/variable!"), substitutionNodeQuery = (0, _query.nodeQuery)("/statement/substitution!"), metavariableNodeQuery = (0, _query.nodeQuery)("/statement/metavariable!");
159
108
  var MetaLevelUnifier = /*#__PURE__*/ function(Unifier) {
160
109
  _inherits(MetaLevelUnifier, Unifier);
161
110
  function MetaLevelUnifier() {
@@ -164,72 +113,50 @@ var MetaLevelUnifier = /*#__PURE__*/ function(Unifier) {
164
113
  }
165
114
  _create_class(MetaLevelUnifier, [
166
115
  {
167
- key: "unifyNonTerminalNode",
168
- value: function unifyNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, substitutions, localContextA, localContextB, unifyAhead) {
169
- var _this = this;
170
- var nonTerminalNodeUnified;
171
- var nodeQueryMaps = [
172
- {
173
- nodeQueryA: statementMetavariableNodeQuery,
174
- nodeQueryB: statementNodeQuery,
175
- unify: function(nodeA, nodeB, substitutions, localContextA, localContextB, unifyAhead) {
176
- var nonTerminalNodeUnified;
177
- var statementNodeA = nonTerminalNodeA, statementNodeB = nodeB, statementMetavariableNodeA = nodeA, statementSubstitutionNodeA = statementSubstitutionNodeQuery(statementNodeA), metavariableNodeUnifiedAgainstStatementNode = _this.unifyStatementMetavariableNodeAgainstStatementNode(statementMetavariableNodeA, statementSubstitutionNodeA, statementNodeB, substitutions, localContextA, localContextB, unifyAhead);
178
- nonTerminalNodeUnified = metavariableNodeUnifiedAgainstStatementNode; ///
179
- return nonTerminalNodeUnified;
180
- }
181
- },
182
- {
183
- nodeQueryA: termVariableNodeQuery,
184
- nodeQueryB: termNodeQuery,
185
- unify: function(nodeA, nodeB, substitutions, localContextA, localContextB, unifyAhead) {
186
- var nonTerminalNodeUnified;
187
- var termNodeB = nodeB, termVariableNodeA = nodeA, termVariableNodeUnifiedAgainstTermNode = _this.unifyTermVariableNodeAgainstTermNode(termVariableNodeA, termNodeB, substitutions, localContextA, localContextB, unifyAhead);
188
- nonTerminalNodeUnified = termVariableNodeUnifiedAgainstTermNode; ///
189
- return nonTerminalNodeUnified;
190
- }
191
- },
192
- {
193
- nodeQueryA: nonTerminalNodeQuery,
194
- nodeQueryB: nonTerminalNodeQuery,
195
- unify: function(nodeA, nodeB, substitutions, localContextA, localContextB, unifyAhead) {
196
- var nonTerminalNodeUnified;
197
- var _$nonTerminalNodeA = nodeA, _$nonTerminalNodeB = nodeB; ///
198
- nonTerminalNodeUnified = _get(_get_prototype_of(MetaLevelUnifier.prototype), "unifyNonTerminalNode", _this).call(_this, _$nonTerminalNodeA, _$nonTerminalNodeB, substitutions, localContextA, localContextB, unifyAhead);
199
- return nonTerminalNodeUnified;
200
- }
201
- }
202
- ];
203
- var nodesUnified = (0, _unifier.unify)(nodeQueryMaps, nonTerminalNodeA, nonTerminalNodeB, substitutions, localContextA, localContextB, unifyAhead);
204
- nonTerminalNodeUnified = nodesUnified; ///
205
- return nonTerminalNodeUnified;
206
- }
207
- },
208
- {
209
- key: "unifyStatementMetavariableNodeAgainstStatementNode",
210
- value: function unifyStatementMetavariableNodeAgainstStatementNode(statementMetavariableNodeA, statementSubstitutionNodeA, statementNodeB, substitutions, localContextA, localContextB, unifyAhead) {
211
- var metavariableNodeUnifiedAgainstStatementNode;
212
- var substitutionNode = statementSubstitutionNodeA, metavariableNodeA = statementMetavariableNodeA, metavariableUnifiedAgainstStatement = (0, _metavariableAgainstStatement.default)(metavariableNodeA, statementNodeB, substitutionNode, substitutions, localContextA, localContextB, unifyAhead);
213
- metavariableNodeUnifiedAgainstStatementNode = metavariableUnifiedAgainstStatement; ///
214
- return metavariableNodeUnifiedAgainstStatementNode;
215
- }
216
- },
217
- {
218
- key: "unifyTermVariableNodeAgainstTermNode",
219
- value: function unifyTermVariableNodeAgainstTermNode(termVariableNodeA, termNodeB, substitutions, localContextA, localContextB, unifyAhead) {
220
- var termVariableNodeUnifiedAgainstTermNode;
221
- var variableNodeA = termVariableNodeA, termUnifiedAgainstVariable = (0, _variableAgainstTerm.default)(variableNodeA, termNodeB, substitutions, localContextA, localContextB, unifyAhead);
222
- termVariableNodeUnifiedAgainstTermNode = termUnifiedAgainstVariable; ///
223
- return termVariableNodeUnifiedAgainstTermNode;
116
+ key: "unify",
117
+ value: function unify(nodeA, nodeB, substitutions, localContextA, localContextB) {
118
+ var unified;
119
+ var nonTerminalNodeA = nodeA, nonTerminalNodeB = nodeB, nonTerminalNodeUnified = this.unifyNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, substitutions, localContextA, localContextB, function() {
120
+ var unifiedAhead = true;
121
+ return unifiedAhead;
122
+ });
123
+ unified = nonTerminalNodeUnified; ///
124
+ return unified;
224
125
  }
225
126
  }
226
127
  ]);
227
128
  return MetaLevelUnifier;
228
129
  }(_unifier.default);
130
+ _define_property(MetaLevelUnifier, "maps", [
131
+ {
132
+ nodeQueryA: statementNodeQuery,
133
+ nodeQueryB: statementNodeQuery,
134
+ unify: function(statementNodeA, statementNodeB, substitutions, localContextA, localContextB, unifyAhead) {
135
+ var statementVerifiedAgainstStatement;
136
+ var metavariableNodeA = metavariableNodeQuery(statementNodeA);
137
+ if (metavariableNodeA !== null) {
138
+ var substitutionNodeA = substitutionNodeQuery(statementNodeA), metavariableUnifiedAgainstStatement = (0, _metavariableAgainstStatement.default)(metavariableNodeA, statementNodeB, substitutionNodeA, substitutions, localContextA, localContextB, unifyAhead);
139
+ statementVerifiedAgainstStatement = metavariableUnifiedAgainstStatement; ///
140
+ } else {
141
+ var nonTerminalNodeA = statementNodeA, nonTerminalNodeB = statementNodeB, nonTerminalNodeAChildNodes = nonTerminalNodeA.getChildNodes(), nonTerminalNodeBChildNodes = nonTerminalNodeB.getChildNodes(), childNodesA = nonTerminalNodeAChildNodes, childNodesB = nonTerminalNodeBChildNodes, childNodesVerified = metaLevelUnifier.unifyChildNodes(childNodesA, childNodesB, substitutions, localContextA, localContextB, unifyAhead);
142
+ statementVerifiedAgainstStatement = childNodesVerified; ///
143
+ }
144
+ return statementVerifiedAgainstStatement;
145
+ }
146
+ },
147
+ {
148
+ nodeQueryA: termVariableNodeQuery,
149
+ nodeQueryB: termNodeQuery,
150
+ unify: function(termVariableNodeA, termNodeB, substitutions, localContextA, localContextB, unifyAhead) {
151
+ var variableNodeA = termVariableNodeA, variableUnifiedAgainstTerm = (0, _variableAgainstTerm.default)(variableNodeA, termNodeB, substitutions, localContextA, localContextB, unifyAhead);
152
+ return variableUnifiedAgainstTerm;
153
+ }
154
+ }
155
+ ]);
229
156
  var metaLevelUnifier = new MetaLevelUnifier();
230
157
  Object.assign(_shim.default, {
231
158
  metaLevelUnifier: metaLevelUnifier
232
159
  });
233
160
  var _default = metaLevelUnifier;
234
161
 
235
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91bmlmaWVyL21ldGFMZXZlbC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHNoaW0gZnJvbSBcIi4uL3NoaW1cIjtcbmltcG9ydCBVbmlmaWVyIGZyb20gXCIuLi91bmlmaWVyXCI7XG5pbXBvcnQgdW5pZnlWYXJpYWJsZUFnYWluc3RUZXJtIGZyb20gXCIuLi91bmlmeS92YXJpYWJsZUFnYWluc3RUZXJtXCI7XG5pbXBvcnQgdW5pZnlNZXRhdmFyaWFibGVBZ2FpbnN0U3RhdGVtZW50IGZyb20gXCIuLi91bmlmeS9tZXRhdmFyaWFibGVBZ2FpbnN0U3RhdGVtZW50XCI7XG5cbmltcG9ydCB7IHVuaWZ5IH0gZnJvbSBcIi4uL3VuaWZpZXJcIjtcbmltcG9ydCB7IG5vZGVRdWVyeSB9IGZyb20gXCIuLi91dGlsaXRpZXMvcXVlcnlcIjtcblxuY29uc3QgdGVybU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi90ZXJtIVwiKSxcbiAgICAgIHN0YXRlbWVudE5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9zdGF0ZW1lbnQhXCIpLFxuICAgICAgbm9uVGVybWluYWxOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvKlwiKSxcbiAgICAgIHRlcm1WYXJpYWJsZU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi90ZXJtL3ZhcmlhYmxlIVwiKSxcbiAgICAgIHN0YXRlbWVudFN1YnN0aXR1dGlvbk5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9zdGF0ZW1lbnQvc3Vic3RpdHV0aW9uIVwiKSxcbiAgICAgIHN0YXRlbWVudE1ldGF2YXJpYWJsZU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9zdGF0ZW1lbnQvbWV0YXZhcmlhYmxlIVwiKTtcblxuY2xhc3MgTWV0YUxldmVsVW5pZmllciBleHRlbmRzIFVuaWZpZXIge1xuICB1bmlmeU5vblRlcm1pbmFsTm9kZShub25UZXJtaW5hbE5vZGVBLCBub25UZXJtaW5hbE5vZGVCLCBzdWJzdGl0dXRpb25zLCBsb2NhbENvbnRleHRBLCBsb2NhbENvbnRleHRCLCB1bmlmeUFoZWFkKSB7XG4gICAgbGV0IG5vblRlcm1pbmFsTm9kZVVuaWZpZWQ7XG5cbiAgICBjb25zdCBub2RlUXVlcnlNYXBzID0gW1xuICAgICAge1xuICAgICAgICBub2RlUXVlcnlBOiBzdGF0ZW1lbnRNZXRhdmFyaWFibGVOb2RlUXVlcnksXG4gICAgICAgIG5vZGVRdWVyeUI6IHN0YXRlbWVudE5vZGVRdWVyeSxcbiAgICAgICAgdW5pZnk6IChub2RlQSwgbm9kZUIsIHN1YnN0aXR1dGlvbnMsIGxvY2FsQ29udGV4dEEsIGxvY2FsQ29udGV4dEIsIHVuaWZ5QWhlYWQpID0+IHtcbiAgICAgICAgICBsZXQgbm9uVGVybWluYWxOb2RlVW5pZmllZDtcblxuICAgICAgICAgIGNvbnN0IHN0YXRlbWVudE5vZGVBID0gbm9uVGVybWluYWxOb2RlQSwgIC8vL1xuICAgICAgICAgICAgICAgIHN0YXRlbWVudE5vZGVCID0gbm9kZUIsIC8vL1xuICAgICAgICAgICAgICAgIHN0YXRlbWVudE1ldGF2YXJpYWJsZU5vZGVBID0gbm9kZUEsIC8vL1xuICAgICAgICAgICAgICAgIHN0YXRlbWVudFN1YnN0aXR1dGlvbk5vZGVBID0gc3RhdGVtZW50U3Vic3RpdHV0aW9uTm9kZVF1ZXJ5KHN0YXRlbWVudE5vZGVBKSxcbiAgICAgICAgICAgICAgICBtZXRhdmFyaWFibGVOb2RlVW5pZmllZEFnYWluc3RTdGF0ZW1lbnROb2RlID1cblxuICAgICAgICAgICAgICAgICAgdGhpcy51bmlmeVN0YXRlbWVudE1ldGF2YXJpYWJsZU5vZGVBZ2FpbnN0U3RhdGVtZW50Tm9kZShzdGF0ZW1lbnRNZXRhdmFyaWFibGVOb2RlQSwgc3RhdGVtZW50U3Vic3RpdHV0aW9uTm9kZUEsIHN0YXRlbWVudE5vZGVCLCBzdWJzdGl0dXRpb25zLCBsb2NhbENvbnRleHRBLCBsb2NhbENvbnRleHRCLCB1bmlmeUFoZWFkKTtcblxuICAgICAgICAgIG5vblRlcm1pbmFsTm9kZVVuaWZpZWQgPSBtZXRhdmFyaWFibGVOb2RlVW5pZmllZEFnYWluc3RTdGF0ZW1lbnROb2RlOyAgLy8vXG5cbiAgICAgICAgICByZXR1cm4gbm9uVGVybWluYWxOb2RlVW5pZmllZDtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbm9kZVF1ZXJ5QTogdGVybVZhcmlhYmxlTm9kZVF1ZXJ5LFxuICAgICAgICBub2RlUXVlcnlCOiB0ZXJtTm9kZVF1ZXJ5LFxuICAgICAgICB1bmlmeTogKG5vZGVBLCBub2RlQiwgc3Vic3RpdHV0aW9ucywgbG9jYWxDb250ZXh0QSwgbG9jYWxDb250ZXh0QiwgdW5pZnlBaGVhZCkgPT4ge1xuICAgICAgICAgIGxldCBub25UZXJtaW5hbE5vZGVVbmlmaWVkO1xuXG4gICAgICAgICAgY29uc3QgdGVybU5vZGVCID0gbm9kZUIsICAvLy9cbiAgICAgICAgICAgICAgICB0ZXJtVmFyaWFibGVOb2RlQSA9IG5vZGVBLCAgLy8vXG4gICAgICAgICAgICAgICAgdGVybVZhcmlhYmxlTm9kZVVuaWZpZWRBZ2FpbnN0VGVybU5vZGUgPVxuXG4gICAgICAgICAgICAgICAgICB0aGlzLnVuaWZ5VGVybVZhcmlhYmxlTm9kZUFnYWluc3RUZXJtTm9kZSh0ZXJtVmFyaWFibGVOb2RlQSwgdGVybU5vZGVCLCBzdWJzdGl0dXRpb25zLCBsb2NhbENvbnRleHRBLCBsb2NhbENvbnRleHRCLCB1bmlmeUFoZWFkKTtcblxuICAgICAgICAgIG5vblRlcm1pbmFsTm9kZVVuaWZpZWQgPSB0ZXJtVmFyaWFibGVOb2RlVW5pZmllZEFnYWluc3RUZXJtTm9kZTsgIC8vL1xuXG4gICAgICAgICAgcmV0dXJuIG5vblRlcm1pbmFsTm9kZVVuaWZpZWQ7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5vZGVRdWVyeUE6IG5vblRlcm1pbmFsTm9kZVF1ZXJ5LFxuICAgICAgICBub2RlUXVlcnlCOiBub25UZXJtaW5hbE5vZGVRdWVyeSxcbiAgICAgICAgdW5pZnk6IChub2RlQSwgbm9kZUIsIHN1YnN0aXR1dGlvbnMsIGxvY2FsQ29udGV4dEEsIGxvY2FsQ29udGV4dEIsIHVuaWZ5QWhlYWQpID0+IHtcbiAgICAgICAgICBsZXQgbm9uVGVybWluYWxOb2RlVW5pZmllZDtcblxuICAgICAgICAgIGNvbnN0IG5vblRlcm1pbmFsTm9kZUEgPSBub2RlQSwgLy8vXG4gICAgICAgICAgICAgICAgbm9uVGVybWluYWxOb2RlQiA9IG5vZGVCOyAvLy9cblxuICAgICAgICAgIG5vblRlcm1pbmFsTm9kZVVuaWZpZWQgPVxuXG4gICAgICAgICAgICBzdXBlci51bmlmeU5vblRlcm1pbmFsTm9kZShub25UZXJtaW5hbE5vZGVBLCBub25UZXJtaW5hbE5vZGVCLCBzdWJzdGl0dXRpb25zLCBsb2NhbENvbnRleHRBLCBsb2NhbENvbnRleHRCLCB1bmlmeUFoZWFkKTtcblxuICAgICAgICAgIHJldHVybiBub25UZXJtaW5hbE5vZGVVbmlmaWVkO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgXTtcblxuICAgIGNvbnN0IG5vZGVzVW5pZmllZCA9IHVuaWZ5KG5vZGVRdWVyeU1hcHMsIG5vblRlcm1pbmFsTm9kZUEsIG5vblRlcm1pbmFsTm9kZUIsIHN1YnN0aXR1dGlvbnMsIGxvY2FsQ29udGV4dEEsIGxvY2FsQ29udGV4dEIsIHVuaWZ5QWhlYWQpO1xuXG4gICAgbm9uVGVybWluYWxOb2RlVW5pZmllZCA9IG5vZGVzVW5pZmllZDsgIC8vL1xuXG4gICAgcmV0dXJuIG5vblRlcm1pbmFsTm9kZVVuaWZpZWQ7XG4gIH1cblxuICB1bmlmeVN0YXRlbWVudE1ldGF2YXJpYWJsZU5vZGVBZ2FpbnN0U3RhdGVtZW50Tm9kZShzdGF0ZW1lbnRNZXRhdmFyaWFibGVOb2RlQSwgc3RhdGVtZW50U3Vic3RpdHV0aW9uTm9kZUEsIHN0YXRlbWVudE5vZGVCLCBzdWJzdGl0dXRpb25zLCBsb2NhbENvbnRleHRBLCBsb2NhbENvbnRleHRCLCB1bmlmeUFoZWFkKSB7XG4gICAgbGV0IG1ldGF2YXJpYWJsZU5vZGVVbmlmaWVkQWdhaW5zdFN0YXRlbWVudE5vZGU7XG5cbiAgICBjb25zdCBzdWJzdGl0dXRpb25Ob2RlID0gc3RhdGVtZW50U3Vic3RpdHV0aW9uTm9kZUEsICAvLy9cbiAgICAgICAgICBtZXRhdmFyaWFibGVOb2RlQSA9IHN0YXRlbWVudE1ldGF2YXJpYWJsZU5vZGVBLCAvLy9cbiAgICAgICAgICBtZXRhdmFyaWFibGVVbmlmaWVkQWdhaW5zdFN0YXRlbWVudCA9IHVuaWZ5TWV0YXZhcmlhYmxlQWdhaW5zdFN0YXRlbWVudChtZXRhdmFyaWFibGVOb2RlQSwgc3RhdGVtZW50Tm9kZUIsIHN1YnN0aXR1dGlvbk5vZGUsIHN1YnN0aXR1dGlvbnMsIGxvY2FsQ29udGV4dEEsIGxvY2FsQ29udGV4dEIsIHVuaWZ5QWhlYWQpO1xuXG4gICAgbWV0YXZhcmlhYmxlTm9kZVVuaWZpZWRBZ2FpbnN0U3RhdGVtZW50Tm9kZSA9IG1ldGF2YXJpYWJsZVVuaWZpZWRBZ2FpbnN0U3RhdGVtZW50OyAgLy8vXG5cbiAgICByZXR1cm4gbWV0YXZhcmlhYmxlTm9kZVVuaWZpZWRBZ2FpbnN0U3RhdGVtZW50Tm9kZTtcbiAgfVxuXG4gIHVuaWZ5VGVybVZhcmlhYmxlTm9kZUFnYWluc3RUZXJtTm9kZSh0ZXJtVmFyaWFibGVOb2RlQSwgdGVybU5vZGVCLCBzdWJzdGl0dXRpb25zLCBsb2NhbENvbnRleHRBLCBsb2NhbENvbnRleHRCLCB1bmlmeUFoZWFkKSB7XG4gICAgbGV0IHRlcm1WYXJpYWJsZU5vZGVVbmlmaWVkQWdhaW5zdFRlcm1Ob2RlO1xuXG4gICAgY29uc3QgdmFyaWFibGVOb2RlQSA9IHRlcm1WYXJpYWJsZU5vZGVBLCAvLy9cbiAgICAgICAgICB0ZXJtVW5pZmllZEFnYWluc3RWYXJpYWJsZSA9IHVuaWZ5VmFyaWFibGVBZ2FpbnN0VGVybSh2YXJpYWJsZU5vZGVBLCB0ZXJtTm9kZUIsIHN1YnN0aXR1dGlvbnMsIGxvY2FsQ29udGV4dEEsIGxvY2FsQ29udGV4dEIsIHVuaWZ5QWhlYWQpO1xuXG4gICAgdGVybVZhcmlhYmxlTm9kZVVuaWZpZWRBZ2FpbnN0VGVybU5vZGUgPSB0ZXJtVW5pZmllZEFnYWluc3RWYXJpYWJsZTsgIC8vL1xuXG4gICAgcmV0dXJuIHRlcm1WYXJpYWJsZU5vZGVVbmlmaWVkQWdhaW5zdFRlcm1Ob2RlO1xuICB9XG59XG5cbmNvbnN0IG1ldGFMZXZlbFVuaWZpZXIgPSBuZXcgTWV0YUxldmVsVW5pZmllcigpO1xuXG5PYmplY3QuYXNzaWduKHNoaW0sIHtcbiAgbWV0YUxldmVsVW5pZmllclxufSk7XG5cbmV4cG9ydCBkZWZhdWx0IG1ldGFMZXZlbFVuaWZpZXI7XG4iXSwibmFtZXMiOlsidGVybU5vZGVRdWVyeSIsIm5vZGVRdWVyeSIsInN0YXRlbWVudE5vZGVRdWVyeSIsIm5vblRlcm1pbmFsTm9kZVF1ZXJ5IiwidGVybVZhcmlhYmxlTm9kZVF1ZXJ5Iiwic3RhdGVtZW50U3Vic3RpdHV0aW9uTm9kZVF1ZXJ5Iiwic3RhdGVtZW50TWV0YXZhcmlhYmxlTm9kZVF1ZXJ5IiwiTWV0YUxldmVsVW5pZmllciIsInVuaWZ5Tm9uVGVybWluYWxOb2RlIiwibm9uVGVybWluYWxOb2RlQSIsIm5vblRlcm1pbmFsTm9kZUIiLCJzdWJzdGl0dXRpb25zIiwibG9jYWxDb250ZXh0QSIsImxvY2FsQ29udGV4dEIiLCJ1bmlmeUFoZWFkIiwibm9uVGVybWluYWxOb2RlVW5pZmllZCIsIm5vZGVRdWVyeU1hcHMiLCJub2RlUXVlcnlBIiwibm9kZVF1ZXJ5QiIsInVuaWZ5Iiwibm9kZUEiLCJub2RlQiIsInN0YXRlbWVudE5vZGVBIiwic3RhdGVtZW50Tm9kZUIiLCJzdGF0ZW1lbnRNZXRhdmFyaWFibGVOb2RlQSIsInN0YXRlbWVudFN1YnN0aXR1dGlvbk5vZGVBIiwibWV0YXZhcmlhYmxlTm9kZVVuaWZpZWRBZ2FpbnN0U3RhdGVtZW50Tm9kZSIsInVuaWZ5U3RhdGVtZW50TWV0YXZhcmlhYmxlTm9kZUFnYWluc3RTdGF0ZW1lbnROb2RlIiwidGVybU5vZGVCIiwidGVybVZhcmlhYmxlTm9kZUEiLCJ0ZXJtVmFyaWFibGVOb2RlVW5pZmllZEFnYWluc3RUZXJtTm9kZSIsInVuaWZ5VGVybVZhcmlhYmxlTm9kZUFnYWluc3RUZXJtTm9kZSIsIm5vZGVzVW5pZmllZCIsInN1YnN0aXR1dGlvbk5vZGUiLCJtZXRhdmFyaWFibGVOb2RlQSIsIm1ldGF2YXJpYWJsZVVuaWZpZWRBZ2FpbnN0U3RhdGVtZW50IiwidW5pZnlNZXRhdmFyaWFibGVBZ2FpbnN0U3RhdGVtZW50IiwidmFyaWFibGVOb2RlQSIsInRlcm1VbmlmaWVkQWdhaW5zdFZhcmlhYmxlIiwidW5pZnlWYXJpYWJsZUFnYWluc3RUZXJtIiwiVW5pZmllciIsIm1ldGFMZXZlbFVuaWZpZXIiLCJPYmplY3QiLCJhc3NpZ24iLCJzaGltIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFpSEE7OztlQUFBOzs7MkRBL0dpQjsrREFDRzswRUFDaUI7bUZBQ1M7cUJBR3BCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUUxQixJQUFNQSxnQkFBZ0JDLElBQUFBLGdCQUFTLEVBQUMsV0FDMUJDLHFCQUFxQkQsSUFBQUEsZ0JBQVMsRUFBQyxnQkFDL0JFLHVCQUF1QkYsSUFBQUEsZ0JBQVMsRUFBQyxPQUNqQ0csd0JBQXdCSCxJQUFBQSxnQkFBUyxFQUFDLG9CQUNsQ0ksaUNBQWlDSixJQUFBQSxnQkFBUyxFQUFDLDZCQUMzQ0ssaUNBQWlDTCxJQUFBQSxnQkFBUyxFQUFDO0FBRWpELElBQUEsQUFBTU0saUNBQUQsQUFBTDtjQUFNQTthQUFBQTtnQ0FBQUE7aUNBQUFBOztrQkFBQUE7O1lBQ0pDLEtBQUFBO21CQUFBQSxTQUFBQSxxQkFBcUJDLGdCQUFnQixFQUFFQyxnQkFBZ0IsRUFBRUMsYUFBYSxFQUFFQyxhQUFhLEVBQUVDLGFBQWEsRUFBRUMsVUFBVTs7Z0JBQzlHLElBQUlDO2dCQUVKLElBQU1DLGdCQUFnQjtvQkFDcEI7d0JBQ0VDLFlBQVlYO3dCQUNaWSxZQUFZaEI7d0JBQ1ppQixPQUFPLFNBQUNDLE9BQU9DLE9BQU9WLGVBQWVDLGVBQWVDLGVBQWVDOzRCQUNqRSxJQUFJQzs0QkFFSixJQUFNTyxpQkFBaUJiLGtCQUNqQmMsaUJBQWlCRixPQUNqQkcsNkJBQTZCSixPQUM3QkssNkJBQTZCcEIsK0JBQStCaUIsaUJBQzVESSw4Q0FFRSxNQUFLQyxrREFBa0QsQ0FBQ0gsNEJBQTRCQyw0QkFBNEJGLGdCQUFnQlosZUFBZUMsZUFBZUMsZUFBZUM7NEJBRXJMQyx5QkFBeUJXLDZDQUE4QyxHQUFHOzRCQUUxRSxPQUFPWDt3QkFDVDtvQkFDRjtvQkFDQTt3QkFDRUUsWUFBWWI7d0JBQ1pjLFlBQVlsQjt3QkFDWm1CLE9BQU8sU0FBQ0MsT0FBT0MsT0FBT1YsZUFBZUMsZUFBZUMsZUFBZUM7NEJBQ2pFLElBQUlDOzRCQUVKLElBQU1hLFlBQVlQLE9BQ1pRLG9CQUFvQlQsT0FDcEJVLHlDQUVFLE1BQUtDLG9DQUFvQyxDQUFDRixtQkFBbUJELFdBQVdqQixlQUFlQyxlQUFlQyxlQUFlQzs0QkFFN0hDLHlCQUF5QmUsd0NBQXlDLEdBQUc7NEJBRXJFLE9BQU9mO3dCQUNUO29CQUNGO29CQUNBO3dCQUNFRSxZQUFZZDt3QkFDWmUsWUFBWWY7d0JBQ1pnQixPQUFPLFNBQUNDLE9BQU9DLE9BQU9WLGVBQWVDLGVBQWVDLGVBQWVDOzRCQUNqRSxJQUFJQzs0QkFFSixJQUFNTixxQkFBbUJXLE9BQ25CVixxQkFBbUJXLE9BQU8sR0FBRzs0QkFFbkNOLHlCQUVFLHVCQXBETlIsNkJBb0RZQywyQ0FBcUJDLG9CQUFrQkMsb0JBQWtCQyxlQUFlQyxlQUFlQyxlQUFlQzs0QkFFOUcsT0FBT0M7d0JBQ1Q7b0JBQ0Y7aUJBQ0Q7Z0JBRUQsSUFBTWlCLGVBQWViLElBQUFBLGNBQUssRUFBQ0gsZUFBZVAsa0JBQWtCQyxrQkFBa0JDLGVBQWVDLGVBQWVDLGVBQWVDO2dCQUUzSEMseUJBQXlCaUIsY0FBZSxHQUFHO2dCQUUzQyxPQUFPakI7WUFDVDs7O1lBRUFZLEtBQUFBO21CQUFBQSxTQUFBQSxtREFBbURILDBCQUEwQixFQUFFQywwQkFBMEIsRUFBRUYsY0FBYyxFQUFFWixhQUFhLEVBQUVDLGFBQWEsRUFBRUMsYUFBYSxFQUFFQyxVQUFVO2dCQUNoTCxJQUFJWTtnQkFFSixJQUFNTyxtQkFBbUJSLDRCQUNuQlMsb0JBQW9CViw0QkFDcEJXLHNDQUFzQ0MsSUFBQUEscUNBQWlDLEVBQUNGLG1CQUFtQlgsZ0JBQWdCVSxrQkFBa0J0QixlQUFlQyxlQUFlQyxlQUFlQztnQkFFaExZLDhDQUE4Q1MscUNBQXNDLEdBQUc7Z0JBRXZGLE9BQU9UO1lBQ1Q7OztZQUVBSyxLQUFBQTttQkFBQUEsU0FBQUEscUNBQXFDRixpQkFBaUIsRUFBRUQsU0FBUyxFQUFFakIsYUFBYSxFQUFFQyxhQUFhLEVBQUVDLGFBQWEsRUFBRUMsVUFBVTtnQkFDeEgsSUFBSWdCO2dCQUVKLElBQU1PLGdCQUFnQlIsbUJBQ2hCUyw2QkFBNkJDLElBQUFBLDRCQUF3QixFQUFDRixlQUFlVCxXQUFXakIsZUFBZUMsZUFBZUMsZUFBZUM7Z0JBRW5JZ0IseUNBQXlDUSw0QkFBNkIsR0FBRztnQkFFekUsT0FBT1I7WUFDVDs7O1dBdkZJdkI7RUFBeUJpQyxnQkFBTztBQTBGdEMsSUFBTUMsbUJBQW1CLElBQUlsQztBQUU3Qm1DLE9BQU9DLE1BQU0sQ0FBQ0MsYUFBSSxFQUFFO0lBQ2xCSCxrQkFBQUE7QUFDRjtJQUVBLFdBQWVBIn0=
162
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91bmlmaWVyL21ldGFMZXZlbC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHNoaW0gZnJvbSBcIi4uL3NoaW1cIjtcbmltcG9ydCBVbmlmaWVyIGZyb20gXCIuLi91bmlmaWVyXCI7XG5pbXBvcnQgdW5pZnlWYXJpYWJsZUFnYWluc3RUZXJtIGZyb20gXCIuLi91bmlmeS92YXJpYWJsZUFnYWluc3RUZXJtXCI7XG5pbXBvcnQgdW5pZnlNZXRhdmFyaWFibGVBZ2FpbnN0U3RhdGVtZW50IGZyb20gXCIuLi91bmlmeS9tZXRhdmFyaWFibGVBZ2FpbnN0U3RhdGVtZW50XCI7XG5cbmltcG9ydCB7IG5vZGVRdWVyeSB9IGZyb20gXCIuLi91dGlsaXRpZXMvcXVlcnlcIjtcblxuY29uc3QgdGVybU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi90ZXJtIVwiKSxcbiAgICAgIHN0YXRlbWVudE5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9zdGF0ZW1lbnQhXCIpLFxuICAgICAgdGVybVZhcmlhYmxlTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3Rlcm0vdmFyaWFibGUhXCIpLFxuICAgICAgc3Vic3RpdHV0aW9uTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3N0YXRlbWVudC9zdWJzdGl0dXRpb24hXCIpLFxuICAgICAgbWV0YXZhcmlhYmxlTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3N0YXRlbWVudC9tZXRhdmFyaWFibGUhXCIpO1xuXG5jbGFzcyBNZXRhTGV2ZWxVbmlmaWVyIGV4dGVuZHMgVW5pZmllciB7XG4gIHVuaWZ5KG5vZGVBLCBub2RlQiwgc3Vic3RpdHV0aW9ucywgbG9jYWxDb250ZXh0QSwgbG9jYWxDb250ZXh0Qikge1xuICAgIGxldCB1bmlmaWVkO1xuXG4gICAgY29uc3Qgbm9uVGVybWluYWxOb2RlQSA9IG5vZGVBLCAvLy9cbiAgICAgICAgICBub25UZXJtaW5hbE5vZGVCID0gbm9kZUIsIC8vL1xuICAgICAgICAgIG5vblRlcm1pbmFsTm9kZVVuaWZpZWQgPSB0aGlzLnVuaWZ5Tm9uVGVybWluYWxOb2RlKG5vblRlcm1pbmFsTm9kZUEsIG5vblRlcm1pbmFsTm9kZUIsIHN1YnN0aXR1dGlvbnMsIGxvY2FsQ29udGV4dEEsIGxvY2FsQ29udGV4dEIsICgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHVuaWZpZWRBaGVhZCA9IHRydWU7XG5cbiAgICAgICAgICAgIHJldHVybiB1bmlmaWVkQWhlYWQ7XG4gICAgICAgICAgfSk7XG5cbiAgICB1bmlmaWVkID0gbm9uVGVybWluYWxOb2RlVW5pZmllZDsgLy8vXG5cbiAgICByZXR1cm4gdW5pZmllZDtcbiAgfVxuXG4gIHN0YXRpYyBtYXBzID0gW1xuICAgIHtcbiAgICAgIG5vZGVRdWVyeUE6IHN0YXRlbWVudE5vZGVRdWVyeSxcbiAgICAgIG5vZGVRdWVyeUI6IHN0YXRlbWVudE5vZGVRdWVyeSxcbiAgICAgIHVuaWZ5OiAoc3RhdGVtZW50Tm9kZUEsIHN0YXRlbWVudE5vZGVCLCBzdWJzdGl0dXRpb25zLCBsb2NhbENvbnRleHRBLCBsb2NhbENvbnRleHRCLCB1bmlmeUFoZWFkKSA9PiB7XG4gICAgICAgIGxldCBzdGF0ZW1lbnRWZXJpZmllZEFnYWluc3RTdGF0ZW1lbnQ7XG5cbiAgICAgICAgY29uc3QgbWV0YXZhcmlhYmxlTm9kZUEgPSBtZXRhdmFyaWFibGVOb2RlUXVlcnkoc3RhdGVtZW50Tm9kZUEpO1xuXG4gICAgICAgIGlmIChtZXRhdmFyaWFibGVOb2RlQSAhPT0gbnVsbCkge1xuICAgICAgICAgIGNvbnN0IHN1YnN0aXR1dGlvbk5vZGVBID0gc3Vic3RpdHV0aW9uTm9kZVF1ZXJ5KHN0YXRlbWVudE5vZGVBKSxcbiAgICAgICAgICAgICAgICBtZXRhdmFyaWFibGVVbmlmaWVkQWdhaW5zdFN0YXRlbWVudCA9IHVuaWZ5TWV0YXZhcmlhYmxlQWdhaW5zdFN0YXRlbWVudChtZXRhdmFyaWFibGVOb2RlQSwgc3RhdGVtZW50Tm9kZUIsIHN1YnN0aXR1dGlvbk5vZGVBLCBzdWJzdGl0dXRpb25zLCBsb2NhbENvbnRleHRBLCBsb2NhbENvbnRleHRCLCB1bmlmeUFoZWFkKTtcblxuICAgICAgICAgIHN0YXRlbWVudFZlcmlmaWVkQWdhaW5zdFN0YXRlbWVudCA9IG1ldGF2YXJpYWJsZVVuaWZpZWRBZ2FpbnN0U3RhdGVtZW50OyAgLy8vXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc3Qgbm9uVGVybWluYWxOb2RlQSA9IHN0YXRlbWVudE5vZGVBLCAvLy9cbiAgICAgICAgICAgICAgICBub25UZXJtaW5hbE5vZGVCID0gc3RhdGVtZW50Tm9kZUIsIC8vL1xuICAgICAgICAgICAgICAgIG5vblRlcm1pbmFsTm9kZUFDaGlsZE5vZGVzID0gbm9uVGVybWluYWxOb2RlQS5nZXRDaGlsZE5vZGVzKCksXG4gICAgICAgICAgICAgICAgbm9uVGVybWluYWxOb2RlQkNoaWxkTm9kZXMgPSBub25UZXJtaW5hbE5vZGVCLmdldENoaWxkTm9kZXMoKSxcbiAgICAgICAgICAgICAgICBjaGlsZE5vZGVzQSA9IG5vblRlcm1pbmFsTm9kZUFDaGlsZE5vZGVzLCAvLy9cbiAgICAgICAgICAgICAgICBjaGlsZE5vZGVzQiA9IG5vblRlcm1pbmFsTm9kZUJDaGlsZE5vZGVzLCAvLy9cbiAgICAgICAgICAgICAgICBjaGlsZE5vZGVzVmVyaWZpZWQgPSBtZXRhTGV2ZWxVbmlmaWVyLnVuaWZ5Q2hpbGROb2RlcyhjaGlsZE5vZGVzQSwgY2hpbGROb2Rlc0IsIHN1YnN0aXR1dGlvbnMsIGxvY2FsQ29udGV4dEEsIGxvY2FsQ29udGV4dEIsIHVuaWZ5QWhlYWQpO1xuXG4gICAgICAgICAgc3RhdGVtZW50VmVyaWZpZWRBZ2FpbnN0U3RhdGVtZW50ID0gY2hpbGROb2Rlc1ZlcmlmaWVkOyAvLy9cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBzdGF0ZW1lbnRWZXJpZmllZEFnYWluc3RTdGF0ZW1lbnQ7XG4gICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICBub2RlUXVlcnlBOiB0ZXJtVmFyaWFibGVOb2RlUXVlcnksXG4gICAgICBub2RlUXVlcnlCOiB0ZXJtTm9kZVF1ZXJ5LFxuICAgICAgdW5pZnk6ICh0ZXJtVmFyaWFibGVOb2RlQSwgdGVybU5vZGVCLCBzdWJzdGl0dXRpb25zLCBsb2NhbENvbnRleHRBLCBsb2NhbENvbnRleHRCLCB1bmlmeUFoZWFkKSA9PiB7XG4gICAgICAgIGNvbnN0IHZhcmlhYmxlTm9kZUEgPSB0ZXJtVmFyaWFibGVOb2RlQSwgLy8vXG4gICAgICAgICAgICAgIHZhcmlhYmxlVW5pZmllZEFnYWluc3RUZXJtID0gdW5pZnlWYXJpYWJsZUFnYWluc3RUZXJtKHZhcmlhYmxlTm9kZUEsIHRlcm1Ob2RlQiwgc3Vic3RpdHV0aW9ucywgbG9jYWxDb250ZXh0QSwgbG9jYWxDb250ZXh0QiwgdW5pZnlBaGVhZCk7XG5cbiAgICAgICAgcmV0dXJuIHZhcmlhYmxlVW5pZmllZEFnYWluc3RUZXJtO1xuICAgICAgfVxuICAgIH1cbiAgXTtcbn1cblxuY29uc3QgbWV0YUxldmVsVW5pZmllciA9IG5ldyBNZXRhTGV2ZWxVbmlmaWVyKCk7XG5cbk9iamVjdC5hc3NpZ24oc2hpbSwge1xuICBtZXRhTGV2ZWxVbmlmaWVyXG59KTtcblxuZXhwb3J0IGRlZmF1bHQgbWV0YUxldmVsVW5pZmllcjtcbiJdLCJuYW1lcyI6WyJ0ZXJtTm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5Iiwic3RhdGVtZW50Tm9kZVF1ZXJ5IiwidGVybVZhcmlhYmxlTm9kZVF1ZXJ5Iiwic3Vic3RpdHV0aW9uTm9kZVF1ZXJ5IiwibWV0YXZhcmlhYmxlTm9kZVF1ZXJ5IiwiTWV0YUxldmVsVW5pZmllciIsInVuaWZ5Iiwibm9kZUEiLCJub2RlQiIsInN1YnN0aXR1dGlvbnMiLCJsb2NhbENvbnRleHRBIiwibG9jYWxDb250ZXh0QiIsInVuaWZpZWQiLCJub25UZXJtaW5hbE5vZGVBIiwibm9uVGVybWluYWxOb2RlQiIsIm5vblRlcm1pbmFsTm9kZVVuaWZpZWQiLCJ1bmlmeU5vblRlcm1pbmFsTm9kZSIsInVuaWZpZWRBaGVhZCIsIlVuaWZpZXIiLCJtYXBzIiwibm9kZVF1ZXJ5QSIsIm5vZGVRdWVyeUIiLCJzdGF0ZW1lbnROb2RlQSIsInN0YXRlbWVudE5vZGVCIiwidW5pZnlBaGVhZCIsInN0YXRlbWVudFZlcmlmaWVkQWdhaW5zdFN0YXRlbWVudCIsIm1ldGF2YXJpYWJsZU5vZGVBIiwic3Vic3RpdHV0aW9uTm9kZUEiLCJtZXRhdmFyaWFibGVVbmlmaWVkQWdhaW5zdFN0YXRlbWVudCIsInVuaWZ5TWV0YXZhcmlhYmxlQWdhaW5zdFN0YXRlbWVudCIsIm5vblRlcm1pbmFsTm9kZUFDaGlsZE5vZGVzIiwiZ2V0Q2hpbGROb2RlcyIsIm5vblRlcm1pbmFsTm9kZUJDaGlsZE5vZGVzIiwiY2hpbGROb2Rlc0EiLCJjaGlsZE5vZGVzQiIsImNoaWxkTm9kZXNWZXJpZmllZCIsIm1ldGFMZXZlbFVuaWZpZXIiLCJ1bmlmeUNoaWxkTm9kZXMiLCJ0ZXJtVmFyaWFibGVOb2RlQSIsInRlcm1Ob2RlQiIsInZhcmlhYmxlTm9kZUEiLCJ2YXJpYWJsZVVuaWZpZWRBZ2FpbnN0VGVybSIsInVuaWZ5VmFyaWFibGVBZ2FpbnN0VGVybSIsIk9iamVjdCIsImFzc2lnbiIsInNoaW0iXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQWdGQTs7O2VBQUE7OzsyREE5RWlCOzhEQUNHOzBFQUNpQjttRkFDUztxQkFFcEI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRTFCLElBQU1BLGdCQUFnQkMsSUFBQUEsZ0JBQVMsRUFBQyxXQUMxQkMscUJBQXFCRCxJQUFBQSxnQkFBUyxFQUFDLGdCQUMvQkUsd0JBQXdCRixJQUFBQSxnQkFBUyxFQUFDLG9CQUNsQ0csd0JBQXdCSCxJQUFBQSxnQkFBUyxFQUFDLDZCQUNsQ0ksd0JBQXdCSixJQUFBQSxnQkFBUyxFQUFDO0FBRXhDLElBQUEsQUFBTUssaUNBQUQsQUFBTDtjQUFNQTthQUFBQTtnQ0FBQUE7aUNBQUFBOztrQkFBQUE7O1lBQ0pDLEtBQUFBO21CQUFBQSxTQUFBQSxNQUFNQyxLQUFLLEVBQUVDLEtBQUssRUFBRUMsYUFBYSxFQUFFQyxhQUFhLEVBQUVDLGFBQWE7Z0JBQzdELElBQUlDO2dCQUVKLElBQU1DLG1CQUFtQk4sT0FDbkJPLG1CQUFtQk4sT0FDbkJPLHlCQUF5QixJQUFJLENBQUNDLG9CQUFvQixDQUFDSCxrQkFBa0JDLGtCQUFrQkwsZUFBZUMsZUFBZUMsZUFBZTtvQkFDbEksSUFBTU0sZUFBZTtvQkFFckIsT0FBT0E7Z0JBQ1Q7Z0JBRU5MLFVBQVVHLHdCQUF3QixHQUFHO2dCQUVyQyxPQUFPSDtZQUNUOzs7V0FmSVA7RUFBeUJhLGdCQUFPO0FBaUJwQyxpQkFqQkliLGtCQWlCR2MsUUFBTztJQUNaO1FBQ0VDLFlBQVluQjtRQUNab0IsWUFBWXBCO1FBQ1pLLE9BQU8sU0FBQ2dCLGdCQUFnQkMsZ0JBQWdCZCxlQUFlQyxlQUFlQyxlQUFlYTtZQUNuRixJQUFJQztZQUVKLElBQU1DLG9CQUFvQnRCLHNCQUFzQmtCO1lBRWhELElBQUlJLHNCQUFzQixNQUFNO2dCQUM5QixJQUFNQyxvQkFBb0J4QixzQkFBc0JtQixpQkFDMUNNLHNDQUFzQ0MsSUFBQUEscUNBQWlDLEVBQUNILG1CQUFtQkgsZ0JBQWdCSSxtQkFBbUJsQixlQUFlQyxlQUFlQyxlQUFlYTtnQkFFakxDLG9DQUFvQ0cscUNBQXNDLEdBQUc7WUFDL0UsT0FBTztnQkFDTCxJQUFNZixtQkFBbUJTLGdCQUNuQlIsbUJBQW1CUyxnQkFDbkJPLDZCQUE2QmpCLGlCQUFpQmtCLGFBQWEsSUFDM0RDLDZCQUE2QmxCLGlCQUFpQmlCLGFBQWEsSUFDM0RFLGNBQWNILDRCQUNkSSxjQUFjRiw0QkFDZEcscUJBQXFCQyxpQkFBaUJDLGVBQWUsQ0FBQ0osYUFBYUMsYUFBYXpCLGVBQWVDLGVBQWVDLGVBQWVhO2dCQUVuSUMsb0NBQW9DVSxvQkFBb0IsR0FBRztZQUM3RDtZQUVBLE9BQU9WO1FBQ1Q7SUFDRjtJQUNBO1FBQ0VMLFlBQVlsQjtRQUNabUIsWUFBWXRCO1FBQ1pPLE9BQU8sU0FBQ2dDLG1CQUFtQkMsV0FBVzlCLGVBQWVDLGVBQWVDLGVBQWVhO1lBQ2pGLElBQU1nQixnQkFBZ0JGLG1CQUNoQkcsNkJBQTZCQyxJQUFBQSw0QkFBd0IsRUFBQ0YsZUFBZUQsV0FBVzlCLGVBQWVDLGVBQWVDLGVBQWVhO1lBRW5JLE9BQU9pQjtRQUNUO0lBQ0Y7Q0FDRDtBQUdILElBQU1MLG1CQUFtQixJQUFJL0I7QUFFN0JzQyxPQUFPQyxNQUFNLENBQUNDLGFBQUksRUFBRTtJQUNsQlQsa0JBQUFBO0FBQ0Y7SUFFQSxXQUFlQSJ9
@@ -8,9 +8,8 @@ Object.defineProperty(exports, "default", {
8
8
  return _default;
9
9
  }
10
10
  });
11
- var _shim = /*#__PURE__*/ _interop_require_default(require("../shim"));
12
- var _unifier = /*#__PURE__*/ _interop_require_wildcard(require("../unifier"));
13
- var _argumentAgainstArgument = /*#__PURE__*/ _interop_require_default(require("../unify/argumentAgainstArgument"));
11
+ var _unifier = /*#__PURE__*/ _interop_require_default(require("../unifier"));
12
+ var _termAgainstType = /*#__PURE__*/ _interop_require_default(require("../unify/termAgainstType"));
14
13
  var _statementAgainstMetaType = /*#__PURE__*/ _interop_require_default(require("../unify/statementAgainstMetaType"));
15
14
  var _query = require("../utilities/query");
16
15
  function _assert_this_initialized(self) {
@@ -42,21 +41,18 @@ function _create_class(Constructor, protoProps, staticProps) {
42
41
  if (staticProps) _defineProperties(Constructor, staticProps);
43
42
  return Constructor;
44
43
  }
45
- function _get(target, property, receiver) {
46
- if (typeof Reflect !== "undefined" && Reflect.get) {
47
- _get = Reflect.get;
44
+ function _define_property(obj, key, value) {
45
+ if (key in obj) {
46
+ Object.defineProperty(obj, key, {
47
+ value: value,
48
+ enumerable: true,
49
+ configurable: true,
50
+ writable: true
51
+ });
48
52
  } else {
49
- _get = function get(target, property, receiver) {
50
- var base = _super_prop_base(target, property);
51
- if (!base) return;
52
- var desc = Object.getOwnPropertyDescriptor(base, property);
53
- if (desc.get) {
54
- return desc.get.call(receiver || target);
55
- }
56
- return desc.value;
57
- };
53
+ obj[key] = value;
58
54
  }
59
- return _get(target, property, receiver || target);
55
+ return obj;
60
56
  }
61
57
  function _get_prototype_of(o) {
62
58
  _get_prototype_of = Object.setPrototypeOf ? Object.getPrototypeOf : function getPrototypeOf(o) {
@@ -82,47 +78,6 @@ function _interop_require_default(obj) {
82
78
  default: obj
83
79
  };
84
80
  }
85
- function _getRequireWildcardCache(nodeInterop) {
86
- if (typeof WeakMap !== "function") return null;
87
- var cacheBabelInterop = new WeakMap();
88
- var cacheNodeInterop = new WeakMap();
89
- return (_getRequireWildcardCache = function(nodeInterop) {
90
- return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
91
- })(nodeInterop);
92
- }
93
- function _interop_require_wildcard(obj, nodeInterop) {
94
- if (!nodeInterop && obj && obj.__esModule) {
95
- return obj;
96
- }
97
- if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
98
- return {
99
- default: obj
100
- };
101
- }
102
- var cache = _getRequireWildcardCache(nodeInterop);
103
- if (cache && cache.has(obj)) {
104
- return cache.get(obj);
105
- }
106
- var newObj = {
107
- __proto__: null
108
- };
109
- var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
110
- for(var key in obj){
111
- if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
112
- var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
113
- if (desc && (desc.get || desc.set)) {
114
- Object.defineProperty(newObj, key, desc);
115
- } else {
116
- newObj[key] = obj[key];
117
- }
118
- }
119
- }
120
- newObj.default = obj;
121
- if (cache) {
122
- cache.set(obj, newObj);
123
- }
124
- return newObj;
125
- }
126
81
  function _possible_constructor_return(self, call) {
127
82
  if (call && (_type_of(call) === "object" || typeof call === "function")) {
128
83
  return call;
@@ -136,13 +91,6 @@ function _set_prototype_of(o, p) {
136
91
  };
137
92
  return _set_prototype_of(o, p);
138
93
  }
139
- function _super_prop_base(object, property) {
140
- while(!Object.prototype.hasOwnProperty.call(object, property)){
141
- object = _get_prototype_of(object);
142
- if (object === null) break;
143
- }
144
- return object;
145
- }
146
94
  function _type_of(obj) {
147
95
  "@swc/helpers - typeof";
148
96
  return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
@@ -155,7 +103,7 @@ function _is_native_reflect_construct() {
155
103
  return !!result;
156
104
  })();
157
105
  }
158
- var argumentNodeQuery = (0, _query.nodeQuery)("/argument!"), metaTypeNodeQuery = (0, _query.nodeQuery)("/metaType!"), statementNodeQuery = (0, _query.nodeQuery)("/statement!"), nonTerminalNodeQuery = (0, _query.nodeQuery)("/*");
106
+ var termNodeQuery = (0, _query.nodeQuery)("/term!"), typeNodeQuery = (0, _query.nodeQuery)("/type!"), metaTypeNodeQuery = (0, _query.nodeQuery)("/metaType!"), statementNodeQuery = (0, _query.nodeQuery)("/statement!");
159
107
  var StatementAgainstCombinatorUnifier = /*#__PURE__*/ function(Unifier) {
160
108
  _inherits(StatementAgainstCombinatorUnifier, Unifier);
161
109
  function StatementAgainstCombinatorUnifier() {
@@ -164,69 +112,39 @@ var StatementAgainstCombinatorUnifier = /*#__PURE__*/ function(Unifier) {
164
112
  }
165
113
  _create_class(StatementAgainstCombinatorUnifier, [
166
114
  {
167
- key: "unifyNonTerminalNode",
168
- value: function unifyNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, localContext, unifyAhead) {
169
- var _this = this;
170
- var nonTerminalNodeUnified;
171
- var nodeQueryMaps = [
172
- {
173
- nodeQueryA: statementNodeQuery,
174
- nodeQueryB: metaTypeNodeQuery,
175
- unify: function(nodeA, nodeB, localContext, unifyAhead) {
176
- var nonTerminalNodeUnified;
177
- var metaTypeNodeB = nodeB, statementNodeA = nodeA, statementUnifiedAgainstMetaType = _this.unifyMetaArgumentStatementAgainstMetaType(statementNodeA, metaTypeNodeB, localContext, unifyAhead);
178
- nonTerminalNodeUnified = statementUnifiedAgainstMetaType; ///
179
- return nonTerminalNodeUnified;
180
- }
181
- },
182
- {
183
- nodeQueryA: argumentNodeQuery,
184
- nodeQueryB: argumentNodeQuery,
185
- unify: function(nodeA, nodeB, localContext, unifyAhead) {
186
- var nonTerminalNodeUnified;
187
- var argumentNodeA = nodeA, argumentNodeB = nodeB, argumentNodeUnifiedAgainstArgumentNode = _this.unifyArgumentNodeAgainstArgumentNode(argumentNodeA, argumentNodeB, localContext, unifyAhead);
188
- nonTerminalNodeUnified = argumentNodeUnifiedAgainstArgumentNode; ///
189
- return nonTerminalNodeUnified;
190
- }
191
- },
192
- {
193
- nodeQueryA: nonTerminalNodeQuery,
194
- nodeQueryB: nonTerminalNodeQuery,
195
- unify: function(nodeA, nodeB, localContext, unifyAhead) {
196
- var nonTerminalNodeUnified;
197
- var _$nonTerminalNodeA = nodeA, _$nonTerminalNodeB = nodeB; ///
198
- nonTerminalNodeUnified = _get(_get_prototype_of(StatementAgainstCombinatorUnifier.prototype), "unifyNonTerminalNode", _this).call(_this, _$nonTerminalNodeA, _$nonTerminalNodeB, localContext, unifyAhead);
199
- return nonTerminalNodeUnified;
200
- }
201
- }
202
- ];
203
- var nodesUnified = (0, _unifier.unify)(nodeQueryMaps, nonTerminalNodeA, nonTerminalNodeB, localContext, unifyAhead);
204
- nonTerminalNodeUnified = nodesUnified; ///
205
- return nonTerminalNodeUnified;
206
- }
207
- },
208
- {
209
- key: "unifyMetaArgumentStatementAgainstMetaType",
210
- value: function unifyMetaArgumentStatementAgainstMetaType(statementNodeA, metaTypeNodeB, localContext, unifyAhead) {
211
- var statementUnifiedAgainstMetaType;
212
- var verifyStatement = _shim.default.verifyStatement, metaTypeNode = metaTypeNodeB, statementNode = statementNodeA; ///
213
- statementUnifiedAgainstMetaType = (0, _statementAgainstMetaType.default)(statementNode, metaTypeNode, localContext, unifyAhead, verifyStatement);
214
- return statementUnifiedAgainstMetaType;
215
- }
216
- },
217
- {
218
- key: "unifyArgumentNodeAgainstArgumentNode",
219
- value: function unifyArgumentNodeAgainstArgumentNode(argumentNodeA, argumentNodeB, localContext, unifyAhead) {
220
- var argumentNodeUnifiedAgainstArgumentNode;
221
- var argumentUnifiedAgainstArgument = (0, _argumentAgainstArgument.default)(argumentNodeA, argumentNodeB, localContext, unifyAhead);
222
- argumentNodeUnifiedAgainstArgumentNode = argumentUnifiedAgainstArgument; ///
223
- return argumentNodeUnifiedAgainstArgumentNode;
115
+ key: "unify",
116
+ value: function unify(statementNode, combinatorStatementNode, localContext) {
117
+ var statementUnifiedAgainstCombinator;
118
+ var nonTerminalNodeA = statementNode, nonTerminalNodeB = combinatorStatementNode, nonTerminalNodeUnified = this.unifyNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, localContext, function() {
119
+ var unifiedAhead = true;
120
+ return unifiedAhead;
121
+ });
122
+ statementUnifiedAgainstCombinator = nonTerminalNodeUnified; ///
123
+ return statementUnifiedAgainstCombinator;
224
124
  }
225
125
  }
226
126
  ]);
227
127
  return StatementAgainstCombinatorUnifier;
228
128
  }(_unifier.default);
129
+ _define_property(StatementAgainstCombinatorUnifier, "maps", [
130
+ {
131
+ nodeQueryA: statementNodeQuery,
132
+ nodeQueryB: metaTypeNodeQuery,
133
+ unify: function(statementNodeA, metaTypeNodeB, localContext, unifyAhead) {
134
+ var statementUnifiedAgainstMetaType = (0, _statementAgainstMetaType.default)(statementNodeA, metaTypeNodeB, localContext, unifyAhead);
135
+ return statementUnifiedAgainstMetaType;
136
+ }
137
+ },
138
+ {
139
+ nodeQueryA: termNodeQuery,
140
+ nodeQueryB: typeNodeQuery,
141
+ unify: function(termNodeA, typeNodeB, localContext, unifyAhead) {
142
+ var termUnifiedAgainstType = (0, _termAgainstType.default)(termNodeA, typeNodeB, localContext, unifyAhead);
143
+ return termUnifiedAgainstType;
144
+ }
145
+ }
146
+ ]);
229
147
  var statementAgainstCombinatorUnifier = new StatementAgainstCombinatorUnifier();
230
148
  var _default = statementAgainstCombinatorUnifier;
231
149
 
232
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91bmlmaWVyL3N0YXRlbWVudEFnYWluc3RDb21iaW5hdG9yLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgc2hpbSBmcm9tIFwiLi4vc2hpbVwiO1xuaW1wb3J0IFVuaWZpZXIgZnJvbSBcIi4uL3VuaWZpZXJcIjtcbmltcG9ydCB1bmlmeUFyZ3VtZW50QWdhaW5zdEFyZ3VtZW50IGZyb20gXCIuLi91bmlmeS9hcmd1bWVudEFnYWluc3RBcmd1bWVudFwiO1xuaW1wb3J0IHVuaWZ5U3RhdGVtZW50QWdhaW5zdE1ldGFUeXBlIGZyb20gXCIuLi91bmlmeS9zdGF0ZW1lbnRBZ2FpbnN0TWV0YVR5cGVcIjtcblxuaW1wb3J0IHsgdW5pZnkgfSBmcm9tIFwiLi4vdW5pZmllclwiO1xuaW1wb3J0IHsgbm9kZVF1ZXJ5IH0gZnJvbSBcIi4uL3V0aWxpdGllcy9xdWVyeVwiO1xuXG5jb25zdCBhcmd1bWVudE5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9hcmd1bWVudCFcIiksXG4gICAgICBtZXRhVHlwZU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9tZXRhVHlwZSFcIiksXG4gICAgICBzdGF0ZW1lbnROb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvc3RhdGVtZW50IVwiKSxcbiAgICAgIG5vblRlcm1pbmFsTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiLypcIik7XG5cbmNsYXNzIFN0YXRlbWVudEFnYWluc3RDb21iaW5hdG9yVW5pZmllciBleHRlbmRzIFVuaWZpZXIge1xuICB1bmlmeU5vblRlcm1pbmFsTm9kZShub25UZXJtaW5hbE5vZGVBLCBub25UZXJtaW5hbE5vZGVCLCBsb2NhbENvbnRleHQsIHVuaWZ5QWhlYWQpIHtcbiAgICBsZXQgbm9uVGVybWluYWxOb2RlVW5pZmllZDtcblxuICAgIGNvbnN0IG5vZGVRdWVyeU1hcHMgPSBbXG4gICAgICB7XG4gICAgICAgIG5vZGVRdWVyeUE6IHN0YXRlbWVudE5vZGVRdWVyeSxcbiAgICAgICAgbm9kZVF1ZXJ5QjogbWV0YVR5cGVOb2RlUXVlcnksXG4gICAgICAgIHVuaWZ5OiAobm9kZUEsIG5vZGVCLCBsb2NhbENvbnRleHQsIHVuaWZ5QWhlYWQpID0+IHtcbiAgICAgICAgICBsZXQgbm9uVGVybWluYWxOb2RlVW5pZmllZDtcblxuICAgICAgICAgIGNvbnN0IG1ldGFUeXBlTm9kZUIgPSBub2RlQiwgIC8vL1xuICAgICAgICAgICAgICAgIHN0YXRlbWVudE5vZGVBID0gbm9kZUEsIC8vL1xuICAgICAgICAgICAgICAgIHN0YXRlbWVudFVuaWZpZWRBZ2FpbnN0TWV0YVR5cGUgPVxuXG4gICAgICAgICAgICAgICAgICB0aGlzLnVuaWZ5TWV0YUFyZ3VtZW50U3RhdGVtZW50QWdhaW5zdE1ldGFUeXBlKHN0YXRlbWVudE5vZGVBLCBtZXRhVHlwZU5vZGVCLCBsb2NhbENvbnRleHQsIHVuaWZ5QWhlYWQpO1xuXG4gICAgICAgICAgbm9uVGVybWluYWxOb2RlVW5pZmllZCA9IHN0YXRlbWVudFVuaWZpZWRBZ2FpbnN0TWV0YVR5cGU7IC8vL1xuXG4gICAgICAgICAgcmV0dXJuIG5vblRlcm1pbmFsTm9kZVVuaWZpZWQ7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5vZGVRdWVyeUE6IGFyZ3VtZW50Tm9kZVF1ZXJ5LFxuICAgICAgICBub2RlUXVlcnlCOiBhcmd1bWVudE5vZGVRdWVyeSxcbiAgICAgICAgdW5pZnk6IChub2RlQSwgbm9kZUIsIGxvY2FsQ29udGV4dCwgdW5pZnlBaGVhZCkgPT4ge1xuICAgICAgICAgIGxldCBub25UZXJtaW5hbE5vZGVVbmlmaWVkO1xuXG4gICAgICAgICAgY29uc3QgYXJndW1lbnROb2RlQSA9IG5vZGVBLCAgLy8vXG4gICAgICAgICAgICAgICAgYXJndW1lbnROb2RlQiA9IG5vZGVCLCAgLy8vXG4gICAgICAgICAgICAgICAgYXJndW1lbnROb2RlVW5pZmllZEFnYWluc3RBcmd1bWVudE5vZGUgPVxuXG4gICAgICAgICAgICAgICAgICB0aGlzLnVuaWZ5QXJndW1lbnROb2RlQWdhaW5zdEFyZ3VtZW50Tm9kZShhcmd1bWVudE5vZGVBLCBhcmd1bWVudE5vZGVCLCBsb2NhbENvbnRleHQsIHVuaWZ5QWhlYWQpO1xuXG4gICAgICAgICAgbm9uVGVybWluYWxOb2RlVW5pZmllZCA9IGFyZ3VtZW50Tm9kZVVuaWZpZWRBZ2FpbnN0QXJndW1lbnROb2RlOyAvLy9cblxuICAgICAgICAgIHJldHVybiBub25UZXJtaW5hbE5vZGVVbmlmaWVkO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBub2RlUXVlcnlBOiBub25UZXJtaW5hbE5vZGVRdWVyeSxcbiAgICAgICAgbm9kZVF1ZXJ5Qjogbm9uVGVybWluYWxOb2RlUXVlcnksXG4gICAgICAgIHVuaWZ5OiAobm9kZUEsIG5vZGVCLCBsb2NhbENvbnRleHQsIHVuaWZ5QWhlYWQpID0+IHtcbiAgICAgICAgICBsZXQgbm9uVGVybWluYWxOb2RlVW5pZmllZDtcblxuICAgICAgICAgIGNvbnN0IG5vblRlcm1pbmFsTm9kZUEgPSBub2RlQSwgLy8vXG4gICAgICAgICAgICAgICAgbm9uVGVybWluYWxOb2RlQiA9IG5vZGVCOyAvLy9cblxuICAgICAgICAgIG5vblRlcm1pbmFsTm9kZVVuaWZpZWQgPVxuXG4gICAgICAgICAgICBzdXBlci51bmlmeU5vblRlcm1pbmFsTm9kZShub25UZXJtaW5hbE5vZGVBLCBub25UZXJtaW5hbE5vZGVCLCBsb2NhbENvbnRleHQsIHVuaWZ5QWhlYWQpO1xuXG4gICAgICAgICAgcmV0dXJuIG5vblRlcm1pbmFsTm9kZVVuaWZpZWQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICBdO1xuXG4gICAgY29uc3Qgbm9kZXNVbmlmaWVkID0gdW5pZnkobm9kZVF1ZXJ5TWFwcywgbm9uVGVybWluYWxOb2RlQSwgbm9uVGVybWluYWxOb2RlQiwgbG9jYWxDb250ZXh0LCB1bmlmeUFoZWFkKTtcblxuICAgIG5vblRlcm1pbmFsTm9kZVVuaWZpZWQgPSBub2Rlc1VuaWZpZWQ7ICAvLy9cblxuICAgIHJldHVybiBub25UZXJtaW5hbE5vZGVVbmlmaWVkO1xuICB9XG5cbiAgdW5pZnlNZXRhQXJndW1lbnRTdGF0ZW1lbnRBZ2FpbnN0TWV0YVR5cGUoc3RhdGVtZW50Tm9kZUEsIG1ldGFUeXBlTm9kZUIsIGxvY2FsQ29udGV4dCwgdW5pZnlBaGVhZCkge1xuICAgIGxldCBzdGF0ZW1lbnRVbmlmaWVkQWdhaW5zdE1ldGFUeXBlO1xuXG4gICAgY29uc3QgeyB2ZXJpZnlTdGF0ZW1lbnQgfSA9IHNoaW0sXG4gICAgICAgICAgbWV0YVR5cGVOb2RlID0gbWV0YVR5cGVOb2RlQiwgLy8vXG4gICAgICAgICAgc3RhdGVtZW50Tm9kZSA9IHN0YXRlbWVudE5vZGVBOyAgLy8vXG5cbiAgICBzdGF0ZW1lbnRVbmlmaWVkQWdhaW5zdE1ldGFUeXBlID0gdW5pZnlTdGF0ZW1lbnRBZ2FpbnN0TWV0YVR5cGUoc3RhdGVtZW50Tm9kZSwgbWV0YVR5cGVOb2RlLCBsb2NhbENvbnRleHQsIHVuaWZ5QWhlYWQsIHZlcmlmeVN0YXRlbWVudCk7XG5cbiAgICByZXR1cm4gc3RhdGVtZW50VW5pZmllZEFnYWluc3RNZXRhVHlwZTtcbiAgfVxuXG4gIHVuaWZ5QXJndW1lbnROb2RlQWdhaW5zdEFyZ3VtZW50Tm9kZShhcmd1bWVudE5vZGVBLCBhcmd1bWVudE5vZGVCLCBsb2NhbENvbnRleHQsIHVuaWZ5QWhlYWQpIHtcbiAgICBsZXQgYXJndW1lbnROb2RlVW5pZmllZEFnYWluc3RBcmd1bWVudE5vZGU7XG5cbiAgICBjb25zdCBhcmd1bWVudFVuaWZpZWRBZ2FpbnN0QXJndW1lbnQgPSB1bmlmeUFyZ3VtZW50QWdhaW5zdEFyZ3VtZW50KGFyZ3VtZW50Tm9kZUEsIGFyZ3VtZW50Tm9kZUIsIGxvY2FsQ29udGV4dCwgdW5pZnlBaGVhZCk7XG5cbiAgICBhcmd1bWVudE5vZGVVbmlmaWVkQWdhaW5zdEFyZ3VtZW50Tm9kZSA9IGFyZ3VtZW50VW5pZmllZEFnYWluc3RBcmd1bWVudDsgLy8vXG5cbiAgICByZXR1cm4gYXJndW1lbnROb2RlVW5pZmllZEFnYWluc3RBcmd1bWVudE5vZGU7XG4gIH1cbn1cblxuY29uc3Qgc3RhdGVtZW50QWdhaW5zdENvbWJpbmF0b3JVbmlmaWVyID0gbmV3IFN0YXRlbWVudEFnYWluc3RDb21iaW5hdG9yVW5pZmllcigpO1xuXG5leHBvcnQgZGVmYXVsdCBzdGF0ZW1lbnRBZ2FpbnN0Q29tYmluYXRvclVuaWZpZXI7XG4iXSwibmFtZXMiOlsiYXJndW1lbnROb2RlUXVlcnkiLCJub2RlUXVlcnkiLCJtZXRhVHlwZU5vZGVRdWVyeSIsInN0YXRlbWVudE5vZGVRdWVyeSIsIm5vblRlcm1pbmFsTm9kZVF1ZXJ5IiwiU3RhdGVtZW50QWdhaW5zdENvbWJpbmF0b3JVbmlmaWVyIiwidW5pZnlOb25UZXJtaW5hbE5vZGUiLCJub25UZXJtaW5hbE5vZGVBIiwibm9uVGVybWluYWxOb2RlQiIsImxvY2FsQ29udGV4dCIsInVuaWZ5QWhlYWQiLCJub25UZXJtaW5hbE5vZGVVbmlmaWVkIiwibm9kZVF1ZXJ5TWFwcyIsIm5vZGVRdWVyeUEiLCJub2RlUXVlcnlCIiwidW5pZnkiLCJub2RlQSIsIm5vZGVCIiwibWV0YVR5cGVOb2RlQiIsInN0YXRlbWVudE5vZGVBIiwic3RhdGVtZW50VW5pZmllZEFnYWluc3RNZXRhVHlwZSIsInVuaWZ5TWV0YUFyZ3VtZW50U3RhdGVtZW50QWdhaW5zdE1ldGFUeXBlIiwiYXJndW1lbnROb2RlQSIsImFyZ3VtZW50Tm9kZUIiLCJhcmd1bWVudE5vZGVVbmlmaWVkQWdhaW5zdEFyZ3VtZW50Tm9kZSIsInVuaWZ5QXJndW1lbnROb2RlQWdhaW5zdEFyZ3VtZW50Tm9kZSIsIm5vZGVzVW5pZmllZCIsInZlcmlmeVN0YXRlbWVudCIsInNoaW0iLCJtZXRhVHlwZU5vZGUiLCJzdGF0ZW1lbnROb2RlIiwidW5pZnlTdGF0ZW1lbnRBZ2FpbnN0TWV0YVR5cGUiLCJhcmd1bWVudFVuaWZpZWRBZ2FpbnN0QXJndW1lbnQiLCJ1bmlmeUFyZ3VtZW50QWdhaW5zdEFyZ3VtZW50IiwiVW5pZmllciIsInN0YXRlbWVudEFnYWluc3RDb21iaW5hdG9yVW5pZmllciJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBd0dBOzs7ZUFBQTs7OzJEQXRHaUI7K0RBQ0c7OEVBQ3FCOytFQUNDO3FCQUdoQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFMUIsSUFBTUEsb0JBQW9CQyxJQUFBQSxnQkFBUyxFQUFDLGVBQzlCQyxvQkFBb0JELElBQUFBLGdCQUFTLEVBQUMsZUFDOUJFLHFCQUFxQkYsSUFBQUEsZ0JBQVMsRUFBQyxnQkFDL0JHLHVCQUF1QkgsSUFBQUEsZ0JBQVMsRUFBQztBQUV2QyxJQUFBLEFBQU1JLGtEQUFELEFBQUw7Y0FBTUE7YUFBQUE7Z0NBQUFBO2lDQUFBQTs7a0JBQUFBOztZQUNKQyxLQUFBQTttQkFBQUEsU0FBQUEscUJBQXFCQyxnQkFBZ0IsRUFBRUMsZ0JBQWdCLEVBQUVDLFlBQVksRUFBRUMsVUFBVTs7Z0JBQy9FLElBQUlDO2dCQUVKLElBQU1DLGdCQUFnQjtvQkFDcEI7d0JBQ0VDLFlBQVlWO3dCQUNaVyxZQUFZWjt3QkFDWmEsT0FBTyxTQUFDQyxPQUFPQyxPQUFPUixjQUFjQzs0QkFDbEMsSUFBSUM7NEJBRUosSUFBTU8sZ0JBQWdCRCxPQUNoQkUsaUJBQWlCSCxPQUNqQkksa0NBRUUsTUFBS0MseUNBQXlDLENBQUNGLGdCQUFnQkQsZUFBZVQsY0FBY0M7NEJBRXBHQyx5QkFBeUJTLGlDQUFpQyxHQUFHOzRCQUU3RCxPQUFPVDt3QkFDVDtvQkFDRjtvQkFDQTt3QkFDRUUsWUFBWWI7d0JBQ1pjLFlBQVlkO3dCQUNaZSxPQUFPLFNBQUNDLE9BQU9DLE9BQU9SLGNBQWNDOzRCQUNsQyxJQUFJQzs0QkFFSixJQUFNVyxnQkFBZ0JOLE9BQ2hCTyxnQkFBZ0JOLE9BQ2hCTyx5Q0FFRSxNQUFLQyxvQ0FBb0MsQ0FBQ0gsZUFBZUMsZUFBZWQsY0FBY0M7NEJBRTlGQyx5QkFBeUJhLHdDQUF3QyxHQUFHOzRCQUVwRSxPQUFPYjt3QkFDVDtvQkFDRjtvQkFDQTt3QkFDRUUsWUFBWVQ7d0JBQ1pVLFlBQVlWO3dCQUNaVyxPQUFPLFNBQUNDLE9BQU9DLE9BQU9SLGNBQWNDOzRCQUNsQyxJQUFJQzs0QkFFSixJQUFNSixxQkFBbUJTLE9BQ25CUixxQkFBbUJTLE9BQU8sR0FBRzs0QkFFbkNOLHlCQUVFLHVCQWxETk4sOENBa0RZQywyQ0FBcUJDLG9CQUFrQkMsb0JBQWtCQyxjQUFjQzs0QkFFL0UsT0FBT0M7d0JBQ1Q7b0JBQ0Y7aUJBQ0Q7Z0JBRUQsSUFBTWUsZUFBZVgsSUFBQUEsY0FBSyxFQUFDSCxlQUFlTCxrQkFBa0JDLGtCQUFrQkMsY0FBY0M7Z0JBRTVGQyx5QkFBeUJlLGNBQWUsR0FBRztnQkFFM0MsT0FBT2Y7WUFDVDs7O1lBRUFVLEtBQUFBO21CQUFBQSxTQUFBQSwwQ0FBMENGLGNBQWMsRUFBRUQsYUFBYSxFQUFFVCxZQUFZLEVBQUVDLFVBQVU7Z0JBQy9GLElBQUlVO2dCQUVKLElBQU0sQUFBRU8sa0JBQW9CQyxhQUFJLENBQXhCRCxpQkFDRkUsZUFBZVgsZUFDZlksZ0JBQWdCWCxnQkFBaUIsR0FBRztnQkFFMUNDLGtDQUFrQ1csSUFBQUEsaUNBQTZCLEVBQUNELGVBQWVELGNBQWNwQixjQUFjQyxZQUFZaUI7Z0JBRXZILE9BQU9QO1lBQ1Q7OztZQUVBSyxLQUFBQTttQkFBQUEsU0FBQUEscUNBQXFDSCxhQUFhLEVBQUVDLGFBQWEsRUFBRWQsWUFBWSxFQUFFQyxVQUFVO2dCQUN6RixJQUFJYztnQkFFSixJQUFNUSxpQ0FBaUNDLElBQUFBLGdDQUE0QixFQUFDWCxlQUFlQyxlQUFlZCxjQUFjQztnQkFFaEhjLHlDQUF5Q1EsZ0NBQWdDLEdBQUc7Z0JBRTVFLE9BQU9SO1lBQ1Q7OztXQXBGSW5CO0VBQTBDNkIsZ0JBQU87QUF1RnZELElBQU1DLG9DQUFvQyxJQUFJOUI7SUFFOUMsV0FBZThCIn0=
150
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91bmlmaWVyL3N0YXRlbWVudEFnYWluc3RDb21iaW5hdG9yLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgVW5pZmllciBmcm9tIFwiLi4vdW5pZmllclwiO1xuaW1wb3J0IHVuaWZ5VGVybUFnYWluc3RUeXBlIGZyb20gXCIuLi91bmlmeS90ZXJtQWdhaW5zdFR5cGVcIjtcbmltcG9ydCB1bmlmeVN0YXRlbWVudEFnYWluc3RNZXRhVHlwZSBmcm9tIFwiLi4vdW5pZnkvc3RhdGVtZW50QWdhaW5zdE1ldGFUeXBlXCI7XG5cbmltcG9ydCB7IG5vZGVRdWVyeSB9IGZyb20gXCIuLi91dGlsaXRpZXMvcXVlcnlcIjtcblxuY29uc3QgdGVybU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi90ZXJtIVwiKSxcbiAgICAgIHR5cGVOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvdHlwZSFcIiksXG4gICAgICBtZXRhVHlwZU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9tZXRhVHlwZSFcIiksXG4gICAgICBzdGF0ZW1lbnROb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvc3RhdGVtZW50IVwiKTtcblxuY2xhc3MgU3RhdGVtZW50QWdhaW5zdENvbWJpbmF0b3JVbmlmaWVyIGV4dGVuZHMgVW5pZmllciB7XG4gIHVuaWZ5KHN0YXRlbWVudE5vZGUsIGNvbWJpbmF0b3JTdGF0ZW1lbnROb2RlLCBsb2NhbENvbnRleHQpIHtcbiAgICBsZXQgc3RhdGVtZW50VW5pZmllZEFnYWluc3RDb21iaW5hdG9yO1xuXG4gICAgY29uc3Qgbm9uVGVybWluYWxOb2RlQSA9IHN0YXRlbWVudE5vZGUsIC8vL1xuICAgICAgICAgIG5vblRlcm1pbmFsTm9kZUIgPSBjb21iaW5hdG9yU3RhdGVtZW50Tm9kZSwgLy8vXG4gICAgICAgICAgbm9uVGVybWluYWxOb2RlVW5pZmllZCA9IHRoaXMudW5pZnlOb25UZXJtaW5hbE5vZGUobm9uVGVybWluYWxOb2RlQSwgbm9uVGVybWluYWxOb2RlQiwgbG9jYWxDb250ZXh0LCAoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB1bmlmaWVkQWhlYWQgPSB0cnVlO1xuXG4gICAgICAgICAgICByZXR1cm4gdW5pZmllZEFoZWFkO1xuICAgICAgICAgIH0pO1xuXG4gICAgc3RhdGVtZW50VW5pZmllZEFnYWluc3RDb21iaW5hdG9yID0gbm9uVGVybWluYWxOb2RlVW5pZmllZDsgLy8vXG5cbiAgICByZXR1cm4gc3RhdGVtZW50VW5pZmllZEFnYWluc3RDb21iaW5hdG9yO1xuICB9O1xuXG4gIHN0YXRpYyBtYXBzID0gW1xuICAgIHtcbiAgICAgIG5vZGVRdWVyeUE6IHN0YXRlbWVudE5vZGVRdWVyeSxcbiAgICAgIG5vZGVRdWVyeUI6IG1ldGFUeXBlTm9kZVF1ZXJ5LFxuICAgICAgdW5pZnk6IChzdGF0ZW1lbnROb2RlQSwgbWV0YVR5cGVOb2RlQiwgbG9jYWxDb250ZXh0LCB1bmlmeUFoZWFkKSA9PiB7XG4gICAgICAgIGNvbnN0IHN0YXRlbWVudFVuaWZpZWRBZ2FpbnN0TWV0YVR5cGUgPSB1bmlmeVN0YXRlbWVudEFnYWluc3RNZXRhVHlwZShzdGF0ZW1lbnROb2RlQSwgbWV0YVR5cGVOb2RlQiwgbG9jYWxDb250ZXh0LCB1bmlmeUFoZWFkKTtcblxuICAgICAgICByZXR1cm4gc3RhdGVtZW50VW5pZmllZEFnYWluc3RNZXRhVHlwZTtcbiAgICAgIH1cbiAgICB9LFxuICAgIHtcbiAgICAgIG5vZGVRdWVyeUE6IHRlcm1Ob2RlUXVlcnksXG4gICAgICBub2RlUXVlcnlCOiB0eXBlTm9kZVF1ZXJ5LFxuICAgICAgdW5pZnk6ICh0ZXJtTm9kZUEsIHR5cGVOb2RlQiwgbG9jYWxDb250ZXh0LCB1bmlmeUFoZWFkKSA9PiB7XG4gICAgICAgIGNvbnN0IHRlcm1VbmlmaWVkQWdhaW5zdFR5cGUgPSB1bmlmeVRlcm1BZ2FpbnN0VHlwZSh0ZXJtTm9kZUEsIHR5cGVOb2RlQiwgbG9jYWxDb250ZXh0LCB1bmlmeUFoZWFkKTtcblxuICAgICAgICByZXR1cm4gdGVybVVuaWZpZWRBZ2FpbnN0VHlwZTtcbiAgICAgIH1cbiAgICB9XG4gIF07XG59XG5cbmNvbnN0IHN0YXRlbWVudEFnYWluc3RDb21iaW5hdG9yVW5pZmllciA9IG5ldyBTdGF0ZW1lbnRBZ2FpbnN0Q29tYmluYXRvclVuaWZpZXIoKTtcblxuZXhwb3J0IGRlZmF1bHQgc3RhdGVtZW50QWdhaW5zdENvbWJpbmF0b3JVbmlmaWVyO1xuIl0sIm5hbWVzIjpbInRlcm1Ob2RlUXVlcnkiLCJub2RlUXVlcnkiLCJ0eXBlTm9kZVF1ZXJ5IiwibWV0YVR5cGVOb2RlUXVlcnkiLCJzdGF0ZW1lbnROb2RlUXVlcnkiLCJTdGF0ZW1lbnRBZ2FpbnN0Q29tYmluYXRvclVuaWZpZXIiLCJ1bmlmeSIsInN0YXRlbWVudE5vZGUiLCJjb21iaW5hdG9yU3RhdGVtZW50Tm9kZSIsImxvY2FsQ29udGV4dCIsInN0YXRlbWVudFVuaWZpZWRBZ2FpbnN0Q29tYmluYXRvciIsIm5vblRlcm1pbmFsTm9kZUEiLCJub25UZXJtaW5hbE5vZGVCIiwibm9uVGVybWluYWxOb2RlVW5pZmllZCIsInVuaWZ5Tm9uVGVybWluYWxOb2RlIiwidW5pZmllZEFoZWFkIiwiVW5pZmllciIsIm1hcHMiLCJub2RlUXVlcnlBIiwibm9kZVF1ZXJ5QiIsInN0YXRlbWVudE5vZGVBIiwibWV0YVR5cGVOb2RlQiIsInVuaWZ5QWhlYWQiLCJzdGF0ZW1lbnRVbmlmaWVkQWdhaW5zdE1ldGFUeXBlIiwidW5pZnlTdGF0ZW1lbnRBZ2FpbnN0TWV0YVR5cGUiLCJ0ZXJtTm9kZUEiLCJ0eXBlTm9kZUIiLCJ0ZXJtVW5pZmllZEFnYWluc3RUeXBlIiwidW5pZnlUZXJtQWdhaW5zdFR5cGUiLCJzdGF0ZW1lbnRBZ2FpbnN0Q29tYmluYXRvclVuaWZpZXIiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQXNEQTs7O2VBQUE7Ozs4REFwRG9CO3NFQUNhOytFQUNTO3FCQUVoQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFMUIsSUFBTUEsZ0JBQWdCQyxJQUFBQSxnQkFBUyxFQUFDLFdBQzFCQyxnQkFBZ0JELElBQUFBLGdCQUFTLEVBQUMsV0FDMUJFLG9CQUFvQkYsSUFBQUEsZ0JBQVMsRUFBQyxlQUM5QkcscUJBQXFCSCxJQUFBQSxnQkFBUyxFQUFDO0FBRXJDLElBQUEsQUFBTUksa0RBQUQsQUFBTDtjQUFNQTthQUFBQTtnQ0FBQUE7aUNBQUFBOztrQkFBQUE7O1lBQ0pDLEtBQUFBO21CQUFBQSxTQUFBQSxNQUFNQyxhQUFhLEVBQUVDLHVCQUF1QixFQUFFQyxZQUFZO2dCQUN4RCxJQUFJQztnQkFFSixJQUFNQyxtQkFBbUJKLGVBQ25CSyxtQkFBbUJKLHlCQUNuQksseUJBQXlCLElBQUksQ0FBQ0Msb0JBQW9CLENBQUNILGtCQUFrQkMsa0JBQWtCSCxjQUFjO29CQUNuRyxJQUFNTSxlQUFlO29CQUVyQixPQUFPQTtnQkFDVDtnQkFFTkwsb0NBQW9DRyx3QkFBd0IsR0FBRztnQkFFL0QsT0FBT0g7WUFDVDs7O1dBZklMO0VBQTBDVyxnQkFBTztBQWlCckQsaUJBakJJWCxtQ0FpQkdZLFFBQU87SUFDWjtRQUNFQyxZQUFZZDtRQUNaZSxZQUFZaEI7UUFDWkcsT0FBTyxTQUFDYyxnQkFBZ0JDLGVBQWVaLGNBQWNhO1lBQ25ELElBQU1DLGtDQUFrQ0MsSUFBQUEsaUNBQTZCLEVBQUNKLGdCQUFnQkMsZUFBZVosY0FBY2E7WUFFbkgsT0FBT0M7UUFDVDtJQUNGO0lBQ0E7UUFDRUwsWUFBWWxCO1FBQ1ptQixZQUFZakI7UUFDWkksT0FBTyxTQUFDbUIsV0FBV0MsV0FBV2pCLGNBQWNhO1lBQzFDLElBQU1LLHlCQUF5QkMsSUFBQUEsd0JBQW9CLEVBQUNILFdBQVdDLFdBQVdqQixjQUFjYTtZQUV4RixPQUFPSztRQUNUO0lBQ0Y7Q0FDRDtBQUdILElBQU1FLG9DQUFvQyxJQUFJeEI7SUFFOUMsV0FBZXdCIn0=