occam-verify-cli 1.0.457 → 1.0.473
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.
- package/lib/constants.js +13 -1
- package/lib/context/ephemeral.js +270 -0
- package/lib/context/file.js +102 -66
- package/lib/context/liminal.js +120 -0
- package/lib/context/literal.js +92 -0
- package/lib/context/nominal.js +15 -1
- package/lib/context/release.js +66 -7
- package/lib/context/scoped.js +48 -40
- package/lib/context/synthetic.js +133 -0
- package/lib/element/assertion/contained.js +66 -66
- package/lib/element/assertion/defined.js +32 -32
- package/lib/element/assertion/property.js +39 -39
- package/lib/element/assertion/satisfies.js +22 -22
- package/lib/element/assumption.js +5 -8
- package/lib/element/conclusion.js +14 -13
- package/lib/element/constructor.js +2 -2
- package/lib/element/deduction.js +14 -13
- package/lib/element/derivation.js +3 -3
- package/lib/element/equality.js +5 -5
- package/lib/element/equivalence.js +112 -107
- package/lib/element/equivalences.js +24 -10
- package/lib/element/error.js +3 -3
- package/lib/element/frame.js +38 -21
- package/lib/element/hypothesis.js +2 -2
- package/lib/element/judgement.js +6 -5
- package/lib/element/metaType.js +1 -2
- package/lib/element/metavariable.js +46 -35
- package/lib/element/parameter.js +13 -5
- package/lib/element/procedureCall.js +16 -16
- package/lib/element/proof.js +14 -13
- package/lib/element/proofAssertion/premise.js +41 -30
- package/lib/element/proofAssertion/step.js +39 -35
- package/lib/element/proofAssertion/supposition.js +43 -32
- package/lib/element/proofAssertion.js +19 -5
- package/lib/element/propertyRelation.js +2 -2
- package/lib/element/reference.js +50 -9
- package/lib/element/rule.js +26 -28
- package/lib/element/section.js +2 -2
- package/lib/element/signature.js +9 -6
- package/lib/element/statement.js +44 -31
- package/lib/element/subproof.js +18 -17
- package/lib/element/substitution/frame.js +83 -46
- package/lib/element/substitution/reference.js +101 -19
- package/lib/element/substitution/statement.js +122 -75
- package/lib/element/substitution/term.js +93 -57
- package/lib/element/substitution.js +20 -69
- package/lib/element/substitutions.js +49 -34
- package/lib/element/term.js +30 -21
- package/lib/element/topLevelAssertion/axiom.js +8 -6
- package/lib/element/topLevelAssertion/conjecture.js +4 -4
- package/lib/element/topLevelAssertion/lemma.js +4 -4
- package/lib/element/topLevelAssertion/theorem.js +2 -2
- package/lib/element/topLevelAssertion.js +30 -23
- package/lib/element/topLevelMetaAssertion/metaLemma.js +2 -2
- package/lib/element/topLevelMetaAssertion/metatheorem.js +2 -2
- package/lib/element/topLevelMetaAssertion.js +16 -12
- package/lib/element/variable.js +30 -22
- package/lib/index.js +3 -3
- package/lib/main.js +3 -3
- package/lib/node/frame.js +2 -2
- package/lib/node/metavariable.js +4 -4
- package/lib/node/parameter.js +28 -7
- package/lib/node/substitution/frame.js +9 -31
- package/lib/node/substitution/reference.js +137 -0
- package/lib/node/substitution/statement.js +9 -31
- package/lib/node/substitution/term.js +9 -23
- package/lib/nonTerminalNodeMap.js +3 -2
- package/lib/process/instantiate.js +2 -14
- package/lib/process/unify.js +5 -5
- package/lib/tokenTypes.js +22 -0
- package/lib/utilities/context.js +54 -19
- package/lib/utilities/element.js +161 -336
- package/lib/utilities/instance.js +4 -4
- package/lib/utilities/string.js +18 -4
- package/lib/utilities/unification.js +24 -18
- package/lib/utilities/validation.js +31 -31
- package/package.json +2 -2
- package/src/constants.js +12 -0
- package/src/context/{transient.js → ephemeral.js} +15 -112
- package/src/context/file.js +66 -67
- package/src/context/liminal.js +67 -0
- package/src/context/{fragment.js → literal.js} +17 -4
- package/src/context/nominal.js +12 -0
- package/src/context/release.js +44 -6
- package/src/context/scoped.js +41 -31
- package/src/context/synthetic.js +60 -0
- package/src/element/assertion/contained.js +49 -47
- package/src/element/assertion/defined.js +29 -27
- package/src/element/assertion/property.js +35 -35
- package/src/element/assertion/satisfies.js +19 -18
- package/src/element/assumption.js +4 -10
- package/src/element/conclusion.js +16 -19
- package/src/element/constructor.js +1 -1
- package/src/element/deduction.js +16 -21
- package/src/element/derivation.js +2 -2
- package/src/element/equality.js +4 -4
- package/src/element/equivalence.js +115 -135
- package/src/element/equivalences.js +9 -7
- package/src/element/error.js +4 -2
- package/src/element/frame.js +50 -23
- package/src/element/hypothesis.js +1 -1
- package/src/element/judgement.js +9 -4
- package/src/element/metaType.js +0 -1
- package/src/element/metavariable.js +54 -53
- package/src/element/parameter.js +10 -5
- package/src/element/procedureCall.js +20 -18
- package/src/element/proof.js +14 -16
- package/src/element/proofAssertion/premise.js +46 -42
- package/src/element/proofAssertion/step.js +45 -40
- package/src/element/proofAssertion/supposition.js +56 -45
- package/src/element/proofAssertion.js +23 -5
- package/src/element/propertyRelation.js +1 -1
- package/src/element/reference.js +64 -16
- package/src/element/rule.js +31 -37
- package/src/element/section.js +1 -1
- package/src/element/signature.js +8 -8
- package/src/element/statement.js +51 -40
- package/src/element/subproof.js +16 -18
- package/src/element/substitution/frame.js +99 -42
- package/src/element/substitution/reference.js +120 -20
- package/src/element/substitution/statement.js +160 -89
- package/src/element/substitution/term.js +104 -63
- package/src/element/substitution.js +16 -58
- package/src/element/substitutions.js +43 -41
- package/src/element/term.js +37 -32
- package/src/element/topLevelAssertion/axiom.js +8 -6
- package/src/element/topLevelAssertion/conjecture.js +1 -2
- package/src/element/topLevelAssertion/lemma.js +2 -3
- package/src/element/topLevelAssertion/theorem.js +1 -1
- package/src/element/topLevelAssertion.js +31 -27
- package/src/element/topLevelMetaAssertion/metaLemma.js +1 -2
- package/src/element/topLevelMetaAssertion/metatheorem.js +1 -2
- package/src/element/topLevelMetaAssertion.js +15 -13
- package/src/element/variable.js +30 -31
- package/src/index.js +2 -1
- package/src/main.js +2 -1
- package/src/node/frame.js +1 -1
- package/src/node/metavariable.js +3 -3
- package/src/node/parameter.js +32 -5
- package/src/node/substitution/frame.js +6 -32
- package/src/node/substitution/reference.js +38 -0
- package/src/node/substitution/statement.js +6 -32
- package/src/node/substitution/term.js +6 -22
- package/src/nonTerminalNodeMap.js +3 -0
- package/src/process/instantiate.js +0 -8
- package/src/process/unify.js +4 -4
- package/src/tokenTypes.js +4 -0
- package/src/utilities/context.js +43 -17
- package/src/utilities/element.js +187 -401
- package/src/utilities/instance.js +3 -3
- package/src/utilities/string.js +21 -5
- package/src/utilities/unification.js +26 -23
- package/src/utilities/validation.js +47 -47
- package/lib/context/fragment.js +0 -77
- package/lib/context/transient.js +0 -371
- package/lib/log.js +0 -150
- package/lib/utilities/fragment.js +0 -23
- package/lib/utilities/node.js +0 -71
- package/src/log.js +0 -118
- package/src/utilities/fragment.js +0 -11
- package/src/utilities/node.js +0 -85
|
@@ -83,6 +83,7 @@ var _satisfies = /*#__PURE__*/ _interop_require_default(require("./node/assertio
|
|
|
83
83
|
var _parenthesisedLabels = /*#__PURE__*/ _interop_require_default(require("./node/parenthesisedLabels"));
|
|
84
84
|
var _property2 = /*#__PURE__*/ _interop_require_default(require("./node/declaration/property"));
|
|
85
85
|
var _variable1 = /*#__PURE__*/ _interop_require_default(require("./node/declaration/variable"));
|
|
86
|
+
var _reference1 = /*#__PURE__*/ _interop_require_default(require("./node/substitution/reference"));
|
|
86
87
|
var _statement1 = /*#__PURE__*/ _interop_require_default(require("./node/substitution/statement"));
|
|
87
88
|
var _simpleType = /*#__PURE__*/ _interop_require_default(require("./node/declaration/simpleType"));
|
|
88
89
|
var _combinator1 = /*#__PURE__*/ _interop_require_default(require("./node/declaration/combinator"));
|
|
@@ -110,7 +111,7 @@ function _interop_require_default(obj) {
|
|
|
110
111
|
};
|
|
111
112
|
}
|
|
112
113
|
var _obj;
|
|
113
|
-
var NonTerminalNodeMap = (_obj = {}, _define_property(_obj, _ruleNames.RULE_RULE_NAME, _rule.default), _define_property(_obj, _ruleNames.STEP_RULE_NAME, _step.default), _define_property(_obj, _ruleNames.TERM_RULE_NAME, _term.default), _define_property(_obj, _ruleNames.TYPE_RULE_NAME, _type.default), _define_property(_obj, _ruleNames.TYPES_RULE_NAME, _types.default), _define_property(_obj, _ruleNames.ERROR_RULE_NAME, _error.default), _define_property(_obj, _ruleNames.FRAME_RULE_NAME, _frame.default), _define_property(_obj, _ruleNames.LEMMA_RULE_NAME, _lemma.default), _define_property(_obj, _ruleNames.AXIOM_RULE_NAME, _axiom.default), _define_property(_obj, _ruleNames.PROOF_RULE_NAME, _proof.default), _define_property(_obj, _ruleNames.LABEL_RULE_NAME, _label.default), _define_property(_obj, _ruleNames.LABELS_RULE_NAME, _labels.default), _define_property(_obj, _ruleNames.THEOREM_RULE_NAME, _theorem.default), _define_property(_obj, _ruleNames.PREMISE_RULE_NAME, _premise.default), _define_property(_obj, _ruleNames.SECTION_RULE_NAME, _section.default), _define_property(_obj, _ruleNames.ARGUMENT_RULE_NAME, _argument.default), _define_property(_obj, _ruleNames.PROPERTY_RULE_NAME, _property.default), _define_property(_obj, _ruleNames.SUBPROOF_RULE_NAME, _subproof.default), _define_property(_obj, _ruleNames.EQUALITY_RULE_NAME, _equality.default), _define_property(_obj, _ruleNames.VARIABLE_RULE_NAME, _variable.default), _define_property(_obj, _ruleNames.DOCUMENT_RULE_NAME, _document.default), _define_property(_obj, _ruleNames.RULE_BODY_RULE_NAME, _rule1.default), _define_property(_obj, _ruleNames.META_TYPE_RULE_NAME, _metaType.default), _define_property(_obj, _ruleNames.SIGNATURE_RULE_NAME, _signature.default), _define_property(_obj, _ruleNames.REFERENCE_RULE_NAME, _reference.default), _define_property(_obj, _ruleNames.JUDGEMENT_RULE_NAME, _judgement.default), _define_property(_obj, _ruleNames.DEDUCTION_RULE_NAME, _deduction.default), _define_property(_obj, _ruleNames.PARAMETER_RULE_NAME, _parameter.default), _define_property(_obj, _ruleNames.STATEMENT_RULE_NAME, _statement.default), _define_property(_obj, _ruleNames.AXIOM_BODY_RULE_NAME, _axiom1.default), _define_property(_obj, _ruleNames.LEMMA_BODY_RULE_NAME, _lemma1.default), _define_property(_obj, _ruleNames.META_LEMMA_RULE_NAME, _metaLemma.default), _define_property(_obj, _ruleNames.COMBINATOR_RULE_NAME, _combinator.default), _define_property(_obj, _ruleNames.CONCLUSION_RULE_NAME, _conclusion.default), _define_property(_obj, _ruleNames.CONJECTURE_RULE_NAME, _conjecture.default), _define_property(_obj, _ruleNames.DERIVATION_RULE_NAME, _derivation.default), _define_property(_obj, _ruleNames.HYPOTHESIS_RULE_NAME, _hypothesis.default), _define_property(_obj, _ruleNames.ASSUMPTION_RULE_NAME, _assumption.default), _define_property(_obj, _ruleNames.RULE_HEADER_RULE_NAME, _rule2.default), _define_property(_obj, _ruleNames.TYPE_PREFIX_RULE_NAME, _typePrefix.default), _define_property(_obj, _ruleNames.PLACEHOLDER_RULE_NAME, _placeholder.default), _define_property(_obj, _ruleNames.SUPPOSITION_RULE_NAME, _supposition.default), _define_property(_obj, _ruleNames.CONSTRUCTOR_RULE_NAME, _constructor.default), _define_property(_obj, _ruleNames.METATHEOREM_RULE_NAME, _metatheorem.default), _define_property(_obj, _ruleNames.EQUIVALENCE_RULE_NAME, _equivalence.default), _define_property(_obj, _ruleNames.AXIOM_HEADER_RULE_NAME, _axiom2.default), _define_property(_obj, _ruleNames.LEMMA_HEADER_RULE_NAME, _lemma2.default), _define_property(_obj, _ruleNames.THEOREM_BODY_RULE_NAME, _theorem1.default), _define_property(_obj, _ruleNames.METAVARIABLE_RULE_NAME, _metavariable.default), _define_property(_obj, _ruleNames.EQUIVALENCES_RULE_NAME, _equivalences.default), _define_property(_obj, _ruleNames.META_ARGUMENT_RULE_NAME, _metaArgument.default), _define_property(_obj, _ruleNames.QUALIFICATION_RULE_NAME, _qualification.default), _define_property(_obj, _ruleNames.TYPE_ASSERTION_RULE_NAME, _type1.default), _define_property(_obj, _ruleNames.PROCEDURE_CALL_RULE_NAME, _procedureCall.default), _define_property(_obj, _ruleNames.SUB_DERIVATION_RULE_NAME, _subDerivation.default), _define_property(_obj, _ruleNames.THEOREM_HEADER_RULE_NAME, _theorem2.default), _define_property(_obj, _ruleNames.META_LEMMA_BODY_RULE_NAME, _metaLemma1.default), _define_property(_obj, _ruleNames.CONJECTURE_BODY_RULE_NAME, _conjecture1.default), _define_property(_obj, _ruleNames.METATHEOREM_BODY_RULE_NAME, _metatheorem1.default), _define_property(_obj, _ruleNames.META_LEMMA_HEADER_RULE_NAME, _metaLemma2.default), _define_property(_obj, _ruleNames.CONJECTURE_HEADER_RULE_NAME, _conjecture2.default), _define_property(_obj, _ruleNames.PROPERTY_RELATION_RULE_NAME, _propertyRelation.default), _define_property(_obj, _ruleNames.DEFINED_ASSERTION_RULE_NAME, _defined.default), _define_property(_obj, _ruleNames.TERM_SUBSTITUTION_RULE_NAME, _term1.default), _define_property(_obj, _ruleNames.METATHEOREM_HEADER_RULE_NAME, _metatheorem2.default), _define_property(_obj, _ruleNames.SUBPROOF_ASSERTION_RULE_NAME, _subproof1.default), _define_property(_obj, _ruleNames.PROPERTY_ASSERTION_RULE_NAME, _property1.default), _define_property(_obj, _ruleNames.FRAME_SUBSTITUTION_RULE_NAME, _frame1.default), _define_property(_obj, _ruleNames.PROCEDURE_REFERENCE_RULE_NAME, _procedureReference.default), _define_property(_obj, _ruleNames.PARENTHESISED_LABEL_RULE_NAME, _parenthesisedLabel.default), _define_property(_obj, _ruleNames.SATISFIES_ASSERTION_RULE_NAME, _satisfies.default), _define_property(_obj, _ruleNames.CONTAINED_ASSERTION_RULE_NAME, _contained.default), _define_property(_obj, _ruleNames.PARENTHESISED_LABELS_RULE_NAME, _parenthesisedLabels.default), _define_property(_obj, _ruleNames.VARIABLE_DECLARATION_RULE_NAME, _variable1.default), _define_property(_obj, _ruleNames.PROPERTY_DECLARATION_RULE_NAME, _property2.default), _define_property(_obj, _ruleNames.STATEMENT_SUBSTITUTION_RULE_NAME, _statement1.default), _define_property(_obj, _ruleNames.COMBINATOR_DECLARATION_RULE_NAME, _combinator1.default), _define_property(_obj, _ruleNames.SIMPLE_TYPE_DECLARATION_RULE_NAME, _simpleType.default), _define_property(_obj, _ruleNames.TYPE_PREFIX_DECLARATION_RULE_NAME, _typePrefix1.default), _define_property(_obj, _ruleNames.CONSTRUCTOR_DECLARATION_RULE_NAME, _constructor1.default), _define_property(_obj, _ruleNames.COMPLEX_TYPE_DECLARATION_RULE_NAME, _complexType.default), _define_property(_obj, _ruleNames.METAVARIABLE_DECLARATION_RULE_NAME, _metavariable1.default), _obj);
|
|
114
|
+
var NonTerminalNodeMap = (_obj = {}, _define_property(_obj, _ruleNames.RULE_RULE_NAME, _rule.default), _define_property(_obj, _ruleNames.STEP_RULE_NAME, _step.default), _define_property(_obj, _ruleNames.TERM_RULE_NAME, _term.default), _define_property(_obj, _ruleNames.TYPE_RULE_NAME, _type.default), _define_property(_obj, _ruleNames.TYPES_RULE_NAME, _types.default), _define_property(_obj, _ruleNames.ERROR_RULE_NAME, _error.default), _define_property(_obj, _ruleNames.FRAME_RULE_NAME, _frame.default), _define_property(_obj, _ruleNames.LEMMA_RULE_NAME, _lemma.default), _define_property(_obj, _ruleNames.AXIOM_RULE_NAME, _axiom.default), _define_property(_obj, _ruleNames.PROOF_RULE_NAME, _proof.default), _define_property(_obj, _ruleNames.LABEL_RULE_NAME, _label.default), _define_property(_obj, _ruleNames.LABELS_RULE_NAME, _labels.default), _define_property(_obj, _ruleNames.THEOREM_RULE_NAME, _theorem.default), _define_property(_obj, _ruleNames.PREMISE_RULE_NAME, _premise.default), _define_property(_obj, _ruleNames.SECTION_RULE_NAME, _section.default), _define_property(_obj, _ruleNames.ARGUMENT_RULE_NAME, _argument.default), _define_property(_obj, _ruleNames.PROPERTY_RULE_NAME, _property.default), _define_property(_obj, _ruleNames.SUBPROOF_RULE_NAME, _subproof.default), _define_property(_obj, _ruleNames.EQUALITY_RULE_NAME, _equality.default), _define_property(_obj, _ruleNames.VARIABLE_RULE_NAME, _variable.default), _define_property(_obj, _ruleNames.DOCUMENT_RULE_NAME, _document.default), _define_property(_obj, _ruleNames.RULE_BODY_RULE_NAME, _rule1.default), _define_property(_obj, _ruleNames.META_TYPE_RULE_NAME, _metaType.default), _define_property(_obj, _ruleNames.SIGNATURE_RULE_NAME, _signature.default), _define_property(_obj, _ruleNames.REFERENCE_RULE_NAME, _reference.default), _define_property(_obj, _ruleNames.JUDGEMENT_RULE_NAME, _judgement.default), _define_property(_obj, _ruleNames.DEDUCTION_RULE_NAME, _deduction.default), _define_property(_obj, _ruleNames.PARAMETER_RULE_NAME, _parameter.default), _define_property(_obj, _ruleNames.STATEMENT_RULE_NAME, _statement.default), _define_property(_obj, _ruleNames.AXIOM_BODY_RULE_NAME, _axiom1.default), _define_property(_obj, _ruleNames.LEMMA_BODY_RULE_NAME, _lemma1.default), _define_property(_obj, _ruleNames.META_LEMMA_RULE_NAME, _metaLemma.default), _define_property(_obj, _ruleNames.COMBINATOR_RULE_NAME, _combinator.default), _define_property(_obj, _ruleNames.CONCLUSION_RULE_NAME, _conclusion.default), _define_property(_obj, _ruleNames.CONJECTURE_RULE_NAME, _conjecture.default), _define_property(_obj, _ruleNames.DERIVATION_RULE_NAME, _derivation.default), _define_property(_obj, _ruleNames.HYPOTHESIS_RULE_NAME, _hypothesis.default), _define_property(_obj, _ruleNames.ASSUMPTION_RULE_NAME, _assumption.default), _define_property(_obj, _ruleNames.RULE_HEADER_RULE_NAME, _rule2.default), _define_property(_obj, _ruleNames.TYPE_PREFIX_RULE_NAME, _typePrefix.default), _define_property(_obj, _ruleNames.PLACEHOLDER_RULE_NAME, _placeholder.default), _define_property(_obj, _ruleNames.SUPPOSITION_RULE_NAME, _supposition.default), _define_property(_obj, _ruleNames.CONSTRUCTOR_RULE_NAME, _constructor.default), _define_property(_obj, _ruleNames.METATHEOREM_RULE_NAME, _metatheorem.default), _define_property(_obj, _ruleNames.EQUIVALENCE_RULE_NAME, _equivalence.default), _define_property(_obj, _ruleNames.AXIOM_HEADER_RULE_NAME, _axiom2.default), _define_property(_obj, _ruleNames.LEMMA_HEADER_RULE_NAME, _lemma2.default), _define_property(_obj, _ruleNames.THEOREM_BODY_RULE_NAME, _theorem1.default), _define_property(_obj, _ruleNames.METAVARIABLE_RULE_NAME, _metavariable.default), _define_property(_obj, _ruleNames.EQUIVALENCES_RULE_NAME, _equivalences.default), _define_property(_obj, _ruleNames.META_ARGUMENT_RULE_NAME, _metaArgument.default), _define_property(_obj, _ruleNames.QUALIFICATION_RULE_NAME, _qualification.default), _define_property(_obj, _ruleNames.TYPE_ASSERTION_RULE_NAME, _type1.default), _define_property(_obj, _ruleNames.PROCEDURE_CALL_RULE_NAME, _procedureCall.default), _define_property(_obj, _ruleNames.SUB_DERIVATION_RULE_NAME, _subDerivation.default), _define_property(_obj, _ruleNames.THEOREM_HEADER_RULE_NAME, _theorem2.default), _define_property(_obj, _ruleNames.META_LEMMA_BODY_RULE_NAME, _metaLemma1.default), _define_property(_obj, _ruleNames.CONJECTURE_BODY_RULE_NAME, _conjecture1.default), _define_property(_obj, _ruleNames.METATHEOREM_BODY_RULE_NAME, _metatheorem1.default), _define_property(_obj, _ruleNames.META_LEMMA_HEADER_RULE_NAME, _metaLemma2.default), _define_property(_obj, _ruleNames.CONJECTURE_HEADER_RULE_NAME, _conjecture2.default), _define_property(_obj, _ruleNames.PROPERTY_RELATION_RULE_NAME, _propertyRelation.default), _define_property(_obj, _ruleNames.DEFINED_ASSERTION_RULE_NAME, _defined.default), _define_property(_obj, _ruleNames.TERM_SUBSTITUTION_RULE_NAME, _term1.default), _define_property(_obj, _ruleNames.METATHEOREM_HEADER_RULE_NAME, _metatheorem2.default), _define_property(_obj, _ruleNames.SUBPROOF_ASSERTION_RULE_NAME, _subproof1.default), _define_property(_obj, _ruleNames.PROPERTY_ASSERTION_RULE_NAME, _property1.default), _define_property(_obj, _ruleNames.FRAME_SUBSTITUTION_RULE_NAME, _frame1.default), _define_property(_obj, _ruleNames.PROCEDURE_REFERENCE_RULE_NAME, _procedureReference.default), _define_property(_obj, _ruleNames.PARENTHESISED_LABEL_RULE_NAME, _parenthesisedLabel.default), _define_property(_obj, _ruleNames.SATISFIES_ASSERTION_RULE_NAME, _satisfies.default), _define_property(_obj, _ruleNames.CONTAINED_ASSERTION_RULE_NAME, _contained.default), _define_property(_obj, _ruleNames.PARENTHESISED_LABELS_RULE_NAME, _parenthesisedLabels.default), _define_property(_obj, _ruleNames.VARIABLE_DECLARATION_RULE_NAME, _variable1.default), _define_property(_obj, _ruleNames.PROPERTY_DECLARATION_RULE_NAME, _property2.default), _define_property(_obj, _ruleNames.STATEMENT_SUBSTITUTION_RULE_NAME, _statement1.default), _define_property(_obj, _ruleNames.REFERENCE_SUBSTITUTION_RULE_NAME, _reference1.default), _define_property(_obj, _ruleNames.COMBINATOR_DECLARATION_RULE_NAME, _combinator1.default), _define_property(_obj, _ruleNames.SIMPLE_TYPE_DECLARATION_RULE_NAME, _simpleType.default), _define_property(_obj, _ruleNames.TYPE_PREFIX_DECLARATION_RULE_NAME, _typePrefix1.default), _define_property(_obj, _ruleNames.CONSTRUCTOR_DECLARATION_RULE_NAME, _constructor1.default), _define_property(_obj, _ruleNames.COMPLEX_TYPE_DECLARATION_RULE_NAME, _complexType.default), _define_property(_obj, _ruleNames.METAVARIABLE_DECLARATION_RULE_NAME, _metavariable1.default), _obj);
|
|
114
115
|
var _default = NonTerminalNodeMap;
|
|
115
116
|
|
|
116
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9ub25UZXJtaW5hbE5vZGVNYXAuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBUZXJtTm9kZSBmcm9tIFwiLi9ub2RlL3Rlcm1cIjtcbmltcG9ydCBSdWxlTm9kZSBmcm9tIFwiLi9ub2RlL3J1bGVcIjtcbmltcG9ydCBTdGVwTm9kZSBmcm9tIFwiLi9ub2RlL3Byb29mQXNzZXJ0aW9uL3N0ZXBcIjtcbmltcG9ydCBUeXBlTm9kZSBmcm9tIFwiLi9ub2RlL3R5cGVcIjtcbmltcG9ydCBUeXBlc05vZGUgZnJvbSBcIi4vbm9kZS90eXBlc1wiO1xuaW1wb3J0IEVycm9yTm9kZSBmcm9tIFwiLi9ub2RlL2Vycm9yXCI7XG5pbXBvcnQgRnJhbWVOb2RlIGZyb20gXCIuL25vZGUvZnJhbWVcIjtcbmltcG9ydCBBeGlvbU5vZGUgZnJvbSBcIi4vbm9kZS90b3BMZXZlbEFzc2VydGlvbi9heGlvbVwiO1xuaW1wb3J0IExlbW1hTm9kZSBmcm9tIFwiLi9ub2RlL3RvcExldmVsQXNzZXJ0aW9uL2xlbW1hXCI7XG5pbXBvcnQgUHJvb2ZOb2RlIGZyb20gXCIuL25vZGUvcHJvb2ZcIjtcbmltcG9ydCBMYWJlbE5vZGUgZnJvbSBcIi4vbm9kZS9sYWJlbFwiO1xuaW1wb3J0IExhYmVsc05vZGUgZnJvbSBcIi4vbm9kZS9sYWJlbHNcIjtcbmltcG9ydCBTZWN0aW9uTm9kZSBmcm9tIFwiLi9ub2RlL3NlY3Rpb25cIjtcbmltcG9ydCBQcmVtaXNlTm9kZSBmcm9tIFwiLi9ub2RlL3Byb29mQXNzZXJ0aW9uL3ByZW1pc2VcIjtcbmltcG9ydCBUaGVvcmVtTm9kZSBmcm9tIFwiLi9ub2RlL3RvcExldmVsQXNzZXJ0aW9uL3RoZW9yZW1cIjtcbmltcG9ydCBBcmd1bWVudE5vZGUgZnJvbSBcIi4vbm9kZS9hcmd1bWVudFwiO1xuaW1wb3J0IFN1YnByb29mTm9kZSBmcm9tIFwiLi9ub2RlL3N1YnByb29mXCI7XG5pbXBvcnQgUHJvcGVydHlOb2RlIGZyb20gXCIuL25vZGUvcHJvcGVydHlcIjtcbmltcG9ydCBNZXRhVHlwZU5vZGUgZnJvbSBcIi4vbm9kZS9tZXRhVHlwZVwiO1xuaW1wb3J0IEVxdWFsaXR5Tm9kZSBmcm9tIFwiLi9ub2RlL2VxdWFsaXR5XCI7XG5pbXBvcnQgVmFyaWFibGVOb2RlIGZyb20gXCIuL25vZGUvdmFyaWFibGVcIjtcbmltcG9ydCBEb2N1bWVudE5vZGUgZnJvbSBcIi4vbm9kZS9kb2N1bWVudFwiO1xuaW1wb3J0IFJ1bGVCb2R5Tm9kZSBmcm9tIFwiLi9ub2RlL2JvZHkvcnVsZVwiO1xuaW1wb3J0IFN0YXRlbWVudE5vZGUgZnJvbSBcIi4vbm9kZS9zdGF0ZW1lbnRcIjtcbmltcG9ydCBSZWZlcmVuY2VOb2RlIGZyb20gXCIuL25vZGUvcmVmZXJlbmNlXCI7XG5pbXBvcnQgRGVkdWN0aW9uTm9kZSBmcm9tIFwiLi9ub2RlL2RlZHVjdGlvblwiO1xuaW1wb3J0IEp1ZGdlbWVudE5vZGUgZnJvbSBcIi4vbm9kZS9qdWRnZW1lbnRcIjtcbmltcG9ydCBNZXRhTGVtbWFOb2RlIGZyb20gXCIuL25vZGUvdG9wTGV2ZWxNZXRhQXNzZXJ0aW9uL21ldGFMZW1tYVwiO1xuaW1wb3J0IFBhcmFtZXRlck5vZGUgZnJvbSBcIi4vbm9kZS9wYXJhbWV0ZXJcIjtcbmltcG9ydCBTaWduYXR1cmVOb2RlIGZyb20gXCIuL25vZGUvc2lnbmF0dXJlXCI7XG5pbXBvcnQgQXhpb21Cb2R5Tm9kZSBmcm9tIFwiLi9ub2RlL2JvZHkvYXhpb21cIjtcbmltcG9ydCBMZW1tYUJvZHlOb2RlIGZyb20gXCIuL25vZGUvYm9keS9sZW1tYVwiO1xuaW1wb3J0IERlcml2YXRpb25Ob2RlIGZyb20gXCIuL25vZGUvZGVyaXZhdGlvblwiO1xuaW1wb3J0IENvbWJpbmF0b3JOb2RlIGZyb20gXCIuL25vZGUvY29tYmluYXRvclwiO1xuaW1wb3J0IENvbmNsdXNpb25Ob2RlIGZyb20gXCIuL25vZGUvY29uY2x1c2lvblwiO1xuaW1wb3J0IENvbmplY3R1cmVOb2RlIGZyb20gXCIuL25vZGUvdG9wTGV2ZWxBc3NlcnRpb24vY29uamVjdHVyZVwiO1xuaW1wb3J0IEh5cG90aGVzaXNOb2RlIGZyb20gXCIuL25vZGUvaHlwb3RoZXNpc1wiO1xuaW1wb3J0IFR5cGVQcmVmaXhOb2RlIGZyb20gXCIuL25vZGUvdHlwZVByZWZpeFwiO1xuaW1wb3J0IEFzc3VtcHRpb25Ob2RlIGZyb20gXCIuL25vZGUvYXNzdW1wdGlvblwiO1xuaW1wb3J0IFJ1bGVIZWFkZXJOb2RlIGZyb20gXCIuL25vZGUvaGVhZGVyL3J1bGVcIjtcbmltcG9ydCBTdXBwb3NpdGlvbk5vZGUgZnJvbSBcIi4vbm9kZS9wcm9vZkFzc2VydGlvbi9zdXBwb3NpdGlvblwiO1xuaW1wb3J0IFBsYWNlaG9sZGVyTm9kZSBmcm9tIFwiLi9ub2RlL3BsYWNlaG9sZGVyXCI7XG5pbXBvcnQgQ29uc3RydWN0b3JOb2RlIGZyb20gXCIuL25vZGUvY29uc3RydWN0b3JcIjtcbmltcG9ydCBNZXRhdGhlb3JlbU5vZGUgZnJvbSBcIi4vbm9kZS90b3BMZXZlbE1ldGFBc3NlcnRpb24vbWV0YXRoZW9yZW1cIjtcbmltcG9ydCBFcXVpdmFsZW5jZU5vZGUgZnJvbSBcIi4vbm9kZS9lcXVpdmFsZW5jZVwiO1xuaW1wb3J0IFRoZW9yZW1Cb2R5Tm9kZSBmcm9tIFwiLi9ub2RlL2JvZHkvdGhlb3JlbVwiO1xuaW1wb3J0IEF4aW9tSGVhZGVyTm9kZSBmcm9tIFwiLi9ub2RlL2hlYWRlci9heGlvbVwiO1xuaW1wb3J0IExlbW1hSGVhZGVyTm9kZSBmcm9tIFwiLi9ub2RlL2hlYWRlci9sZW1tYVwiO1xuaW1wb3J0IEVxdWl2YWxlbmNlc05vZGUgZnJvbSBcIi4vbm9kZS9lcXVpdmFsZW5jZXNcIjtcbmltcG9ydCBNZXRhQXJndW1lbnROb2RlIGZyb20gXCIuL25vZGUvbWV0YUFyZ3VtZW50XCI7XG5pbXBvcnQgTWV0YXZhcmlhYmxlTm9kZSBmcm9tIFwiLi9ub2RlL21ldGF2YXJpYWJsZVwiO1xuaW1wb3J0IFF1YWxpZmljYXRpb25Ob2RlIGZyb20gXCIuL25vZGUvcXVhbGlmaWNhdGlvblwiO1xuaW1wb3J0IFByb2NlZHVyZUNhbGxOb2RlIGZyb20gXCIuL25vZGUvcHJvY2VkdXJlQ2FsbFwiO1xuaW1wb3J0IFN1YkRlcml2YXRpb25Ob2RlIGZyb20gXCIuL25vZGUvc3ViRGVyaXZhdGlvblwiO1xuaW1wb3J0IFRoZW9yZW1IZWFkZXJOb2RlIGZyb20gXCIuL25vZGUvaGVhZGVyL3RoZW9yZW1cIjtcbmltcG9ydCBNZXRhTGVtbWFCb2R5Tm9kZSBmcm9tIFwiLi9ub2RlL2JvZHkvbWV0YUxlbW1hXCI7XG5pbXBvcnQgVHlwZUFzc2VydGlvbk5vZGUgZnJvbSBcIi4vbm9kZS9hc3NlcnRpb24vdHlwZVwiO1xuaW1wb3J0IENvbmplY3R1cmVCb2R5Tm9kZSBmcm9tIFwiLi9ub2RlL2JvZHkvY29uamVjdHVyZVwiO1xuaW1wb3J0IE1ldGF0aGVvcmVtQm9keU5vZGUgZnJvbSBcIi4vbm9kZS9ib2R5L21ldGF0aGVvcmVtXCI7XG5pbXBvcnQgTWV0YUxlbW1hSGVhZGVyTm9kZSBmcm9tIFwiLi9ub2RlL2hlYWRlci9tZXRhTGVtbWFcIjtcbmltcG9ydCBQcm9wZXJ0eVJlbGF0aW9uTm9kZSBmcm9tIFwiLi9ub2RlL3Byb3BlcnR5UmVsYXRpb25cIlxuaW1wb3J0IERlZmluZWRBc3NlcnRpb25Ob2RlIGZyb20gXCIuL25vZGUvYXNzZXJ0aW9uL2RlZmluZWRcIjtcbmltcG9ydCBUZXJtU3Vic3RpdHV0aW9uTm9kZSBmcm9tIFwiLi9ub2RlL3N1YnN0aXR1dGlvbi90ZXJtXCI7XG5pbXBvcnQgQ29uamVjdHVyZUhlYWRlck5vZGUgZnJvbSBcIi4vbm9kZS9oZWFkZXIvY29uamVjdHVyZVwiO1xuaW1wb3J0IE1ldGF0aGVvcmVtSGVhZGVyTm9kZSBmcm9tIFwiLi9ub2RlL2hlYWRlci9tZXRhdGhlb3JlbVwiO1xuaW1wb3J0IFByb3BlcnR5QXNzZXJ0aW9uTm9kZSBmcm9tIFwiLi9ub2RlL2Fzc2VydGlvbi9wcm9wZXJ0eVwiO1xuaW1wb3J0IFN1YnByb29mQXNzZXJ0aW9uTm9kZSBmcm9tIFwiLi9ub2RlL2Fzc2VydGlvbi9zdWJwcm9vZlwiO1xuaW1wb3J0IEZyYW1lU3Vic3RpdHV0aW9uTm9kZSBmcm9tIFwiLi9ub2RlL3N1YnN0aXR1dGlvbi9mcmFtZVwiO1xuaW1wb3J0IFBhcmVudGhlc2lzZWRMYWJlbE5vZGUgZnJvbSBcIi4vbm9kZS9wYXJlbnRoZXNpc2VkTGFiZWxcIjtcbmltcG9ydCBQcm9jZWR1cmVSZWZlcmVuY2VOb2RlIGZyb20gXCIuL25vZGUvcHJvY2VkdXJlUmVmZXJlbmNlXCI7XG5pbXBvcnQgQ29udGFpbmVkQXNzZXJ0aW9uTm9kZSBmcm9tIFwiLi9ub2RlL2Fzc2VydGlvbi9jb250YWluZWRcIjtcbmltcG9ydCBTYXRpc2ZpZXNBc3NlcnRpb25Ob2RlIGZyb20gXCIuL25vZGUvYXNzZXJ0aW9uL3NhdGlzZmllc1wiO1xuaW1wb3J0IFBhcmVudGhlc2lzZWRMYWJlbHNOb2RlIGZyb20gXCIuL25vZGUvcGFyZW50aGVzaXNlZExhYmVsc1wiXG5pbXBvcnQgUHJvcGVydHlEZWNsYXJhdGlvbk5vZGUgZnJvbSBcIi4vbm9kZS9kZWNsYXJhdGlvbi9wcm9wZXJ0eVwiO1xuaW1wb3J0IFZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlIGZyb20gXCIuL25vZGUvZGVjbGFyYXRpb24vdmFyaWFibGVcIjtcbmltcG9ydCBTdGF0ZW1lbnRTdWJzdGl0dXRpb25Ob2RlIGZyb20gXCIuL25vZGUvc3Vic3RpdHV0aW9uL3N0YXRlbWVudFwiO1xuaW1wb3J0IFNpbXBsZVR5cGVEZWNsYXJhdGlvbk5vZGUgZnJvbSBcIi4vbm9kZS9kZWNsYXJhdGlvbi9zaW1wbGVUeXBlXCI7XG5pbXBvcnQgQ29tYmluYXRvckRlY2xhcmF0aW9uTm9kZSBmcm9tIFwiLi9ub2RlL2RlY2xhcmF0aW9uL2NvbWJpbmF0b3JcIjtcbmltcG9ydCBUeXBlUHJlZml4RGVjbGFyYXRpb25Ob2RlIGZyb20gXCIuL25vZGUvZGVjbGFyYXRpb24vdHlwZVByZWZpeFwiO1xuaW1wb3J0IENvbXBsZXhUeXBlRGVjbGFyYXRpb25Ob2RlIGZyb20gXCIuL25vZGUvZGVjbGFyYXRpb24vY29tcGxleFR5cGVcIjtcbmltcG9ydCBEb25zdHJ1Y3RvckRlY2xhcmF0aW9uTm9kZSBmcm9tIFwiLi9ub2RlL2RlY2xhcmF0aW9uL2NvbnN0cnVjdG9yXCI7XG5pbXBvcnQgTWV0YXZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlIGZyb20gXCIuL25vZGUvZGVjbGFyYXRpb24vbWV0YXZhcmlhYmxlXCI7XG5cbmltcG9ydCB7XG4gIFJVTEVfUlVMRV9OQU1FLFxuICBTVEVQX1JVTEVfTkFNRSxcbiAgVEVSTV9SVUxFX05BTUUsXG4gIFRZUEVfUlVMRV9OQU1FLFxuICBUWVBFU19SVUxFX05BTUUsXG4gIFBST09GX1JVTEVfTkFNRSxcbiAgRVJST1JfUlVMRV9OQU1FLFxuICBGUkFNRV9SVUxFX05BTUUsXG4gIEFYSU9NX1JVTEVfTkFNRSxcbiAgTEVNTUFfUlVMRV9OQU1FLFxuICBMQUJFTF9SVUxFX05BTUUsXG4gIExBQkVMU19SVUxFX05BTUUsXG4gIFRIRU9SRU1fUlVMRV9OQU1FLFxuICBQUkVNSVNFX1JVTEVfTkFNRSxcbiAgU0VDVElPTl9SVUxFX05BTUUsXG4gIEFSR1VNRU5UX1JVTEVfTkFNRSxcbiAgU1VCUFJPT0ZfUlVMRV9OQU1FLFxuICBQUk9QRVJUWV9SVUxFX05BTUUsXG4gIEVRVUFMSVRZX1JVTEVfTkFNRSxcbiAgVkFSSUFCTEVfUlVMRV9OQU1FLFxuICBET0NVTUVOVF9SVUxFX05BTUUsXG4gIE1FVEFfVFlQRV9SVUxFX05BTUUsXG4gIFNJR05BVFVSRV9SVUxFX05BTUUsXG4gIERFRFVDVElPTl9SVUxFX05BTUUsXG4gIEpVREdFTUVOVF9SVUxFX05BTUUsXG4gIFBBUkFNRVRFUl9SVUxFX05BTUUsXG4gIFJFRkVSRU5DRV9SVUxFX05BTUUsXG4gIFNUQVRFTUVOVF9SVUxFX05BTUUsXG4gIFJVTEVfQk9EWV9SVUxFX05BTUUsXG4gIE1FVEFfTEVNTUFfUlVMRV9OQU1FLFxuICBERVJJVkFUSU9OX1JVTEVfTkFNRSxcbiAgQ09NQklOQVRPUl9SVUxFX05BTUUsXG4gIENPTkNMVVNJT05fUlVMRV9OQU1FLFxuICBDT05KRUNUVVJFX1JVTEVfTkFNRSxcbiAgSFlQT1RIRVNJU19SVUxFX05BTUUsXG4gIEFYSU9NX0JPRFlfUlVMRV9OQU1FLFxuICBMRU1NQV9CT0RZX1JVTEVfTkFNRSxcbiAgQVNTVU1QVElPTl9SVUxFX05BTUUsXG4gIFBMQUNFSE9MREVSX1JVTEVfTkFNRSxcbiAgVFlQRV9QUkVGSVhfUlVMRV9OQU1FLFxuICBTVVBQT1NJVElPTl9SVUxFX05BTUUsXG4gIFJVTEVfSEVBREVSX1JVTEVfTkFNRSxcbiAgQ09OU1RSVUNUT1JfUlVMRV9OQU1FLFxuICBNRVRBVEhFT1JFTV9SVUxFX05BTUUsXG4gIEVRVUlWQUxFTkNFX1JVTEVfTkFNRSxcbiAgRVFVSVZBTEVOQ0VTX1JVTEVfTkFNRSxcbiAgQVhJT01fSEVBREVSX1JVTEVfTkFNRSxcbiAgTEVNTUFfSEVBREVSX1JVTEVfTkFNRSxcbiAgVEhFT1JFTV9CT0RZX1JVTEVfTkFNRSxcbiAgTUVUQVZBUklBQkxFX1JVTEVfTkFNRSxcbiAgUVVBTElGSUNBVElPTl9SVUxFX05BTUUsXG4gIE1FVEFfQVJHVU1FTlRfUlVMRV9OQU1FLFxuICBUSEVPUkVNX0hFQURFUl9SVUxFX05BTUUsXG4gIFNVQl9ERVJJVkFUSU9OX1JVTEVfTkFNRSxcbiAgVFlQRV9BU1NFUlRJT05fUlVMRV9OQU1FLFxuICBQUk9DRURVUkVfQ0FMTF9SVUxFX05BTUUsXG4gIENPTkpFQ1RVUkVfQk9EWV9SVUxFX05BTUUsXG4gIE1FVEFfTEVNTUFfQk9EWV9SVUxFX05BTUUsXG4gIE1FVEFUSEVPUkVNX0JPRFlfUlVMRV9OQU1FLFxuICBDT05KRUNUVVJFX0hFQURFUl9SVUxFX05BTUUsXG4gIE1FVEFfTEVNTUFfSEVBREVSX1JVTEVfTkFNRSxcbiAgUFJPUEVSVFlfUkVMQVRJT05fUlVMRV9OQU1FLFxuICBERUZJTkVEX0FTU0VSVElPTl9SVUxFX05BTUUsXG4gIFRFUk1fU1VCU1RJVFVUSU9OX1JVTEVfTkFNRSxcbiAgTUVUQVRIRU9SRU1fSEVBREVSX1JVTEVfTkFNRSxcbiAgU1VCUFJPT0ZfQVNTRVJUSU9OX1JVTEVfTkFNRSxcbiAgUFJPUEVSVFlfQVNTRVJUSU9OX1JVTEVfTkFNRSxcbiAgRlJBTUVfU1VCU1RJVFVUSU9OX1JVTEVfTkFNRSxcbiAgUFJPQ0VEVVJFX1JFRkVSRU5DRV9SVUxFX05BTUUsXG4gIENPTlRBSU5FRF9BU1NFUlRJT05fUlVMRV9OQU1FLFxuICBTQVRJU0ZJRVNfQVNTRVJUSU9OX1JVTEVfTkFNRSxcbiAgUEFSRU5USEVTSVNFRF9MQUJFTF9SVUxFX05BTUUsXG4gIFBBUkVOVEhFU0lTRURfTEFCRUxTX1JVTEVfTkFNRSxcbiAgUFJPUEVSVFlfREVDTEFSQVRJT05fUlVMRV9OQU1FLFxuICBWQVJJQUJMRV9ERUNMQVJBVElPTl9SVUxFX05BTUUsXG4gIFNUQVRFTUVOVF9TVUJTVElUVVRJT05fUlVMRV9OQU1FLFxuICBDT01CSU5BVE9SX0RFQ0xBUkFUSU9OX1JVTEVfTkFNRSxcbiAgU0lNUExFX1RZUEVfREVDTEFSQVRJT05fUlVMRV9OQU1FLFxuICBDT05TVFJVQ1RPUl9ERUNMQVJBVElPTl9SVUxFX05BTUUsXG4gIFRZUEVfUFJFRklYX0RFQ0xBUkFUSU9OX1JVTEVfTkFNRSxcbiAgQ09NUExFWF9UWVBFX0RFQ0xBUkFUSU9OX1JVTEVfTkFNRSxcbiAgTUVUQVZBUklBQkxFX0RFQ0xBUkFUSU9OX1JVTEVfTkFNRSB9IGZyb20gXCIuL3J1bGVOYW1lc1wiO1xuXG5jb25zdCBOb25UZXJtaW5hbE5vZGVNYXAgPSB7XG4gIFtSVUxFX1JVTEVfTkFNRV06IFJ1bGVOb2RlLFxuICBbU1RFUF9SVUxFX05BTUVdOiBTdGVwTm9kZSxcbiAgW1RFUk1fUlVMRV9OQU1FXTogVGVybU5vZGUsXG4gIFtUWVBFX1JVTEVfTkFNRV06IFR5cGVOb2RlLFxuICBbVFlQRVNfUlVMRV9OQU1FXTogVHlwZXNOb2RlLFxuICBbRVJST1JfUlVMRV9OQU1FXTogRXJyb3JOb2RlLFxuICBbRlJBTUVfUlVMRV9OQU1FXTogRnJhbWVOb2RlLFxuICBbTEVNTUFfUlVMRV9OQU1FXTogTGVtbWFOb2RlLFxuICBbQVhJT01fUlVMRV9OQU1FXTogQXhpb21Ob2RlLFxuICBbUFJPT0ZfUlVMRV9OQU1FXTogUHJvb2ZOb2RlLFxuICBbTEFCRUxfUlVMRV9OQU1FXTogTGFiZWxOb2RlLFxuICBbTEFCRUxTX1JVTEVfTkFNRV06IExhYmVsc05vZGUsXG4gIFtUSEVPUkVNX1JVTEVfTkFNRV06IFRoZW9yZW1Ob2RlLFxuICBbUFJFTUlTRV9SVUxFX05BTUVdOiBQcmVtaXNlTm9kZSxcbiAgW1NFQ1RJT05fUlVMRV9OQU1FXTogU2VjdGlvbk5vZGUsXG4gIFtBUkdVTUVOVF9SVUxFX05BTUVdOiBBcmd1bWVudE5vZGUsXG4gIFtQUk9QRVJUWV9SVUxFX05BTUVdOiBQcm9wZXJ0eU5vZGUsXG4gIFtTVUJQUk9PRl9SVUxFX05BTUVdOiBTdWJwcm9vZk5vZGUsXG4gIFtFUVVBTElUWV9SVUxFX05BTUVdOiBFcXVhbGl0eU5vZGUsXG4gIFtWQVJJQUJMRV9SVUxFX05BTUVdOiBWYXJpYWJsZU5vZGUsXG4gIFtET0NVTUVOVF9SVUxFX05BTUVdOiBEb2N1bWVudE5vZGUsXG4gIFtSVUxFX0JPRFlfUlVMRV9OQU1FXTogUnVsZUJvZHlOb2RlLFxuICBbTUVUQV9UWVBFX1JVTEVfTkFNRV06IE1ldGFUeXBlTm9kZSxcbiAgW1NJR05BVFVSRV9SVUxFX05BTUVdOiBTaWduYXR1cmVOb2RlLFxuICBbUkVGRVJFTkNFX1JVTEVfTkFNRV06IFJlZmVyZW5jZU5vZGUsXG4gIFtKVURHRU1FTlRfUlVMRV9OQU1FXTogSnVkZ2VtZW50Tm9kZSxcbiAgW0RFRFVDVElPTl9SVUxFX05BTUVdOiBEZWR1Y3Rpb25Ob2RlLFxuICBbUEFSQU1FVEVSX1JVTEVfTkFNRV06IFBhcmFtZXRlck5vZGUsXG4gIFtTVEFURU1FTlRfUlVMRV9OQU1FXTogU3RhdGVtZW50Tm9kZSxcbiAgW0FYSU9NX0JPRFlfUlVMRV9OQU1FXTogQXhpb21Cb2R5Tm9kZSxcbiAgW0xFTU1BX0JPRFlfUlVMRV9OQU1FXTogTGVtbWFCb2R5Tm9kZSxcbiAgW01FVEFfTEVNTUFfUlVMRV9OQU1FXTogTWV0YUxlbW1hTm9kZSxcbiAgW0NPTUJJTkFUT1JfUlVMRV9OQU1FXTogQ29tYmluYXRvck5vZGUsXG4gIFtDT05DTFVTSU9OX1JVTEVfTkFNRV06IENvbmNsdXNpb25Ob2RlLFxuICBbQ09OSkVDVFVSRV9SVUxFX05BTUVdOiBDb25qZWN0dXJlTm9kZSxcbiAgW0RFUklWQVRJT05fUlVMRV9OQU1FXTogRGVyaXZhdGlvbk5vZGUsXG4gIFtIWVBPVEhFU0lTX1JVTEVfTkFNRV06IEh5cG90aGVzaXNOb2RlLFxuICBbQVNTVU1QVElPTl9SVUxFX05BTUVdOiBBc3N1bXB0aW9uTm9kZSxcbiAgW1JVTEVfSEVBREVSX1JVTEVfTkFNRV06IFJ1bGVIZWFkZXJOb2RlLFxuICBbVFlQRV9QUkVGSVhfUlVMRV9OQU1FXTogVHlwZVByZWZpeE5vZGUsXG4gIFtQTEFDRUhPTERFUl9SVUxFX05BTUVdOiBQbGFjZWhvbGRlck5vZGUsXG4gIFtTVVBQT1NJVElPTl9SVUxFX05BTUVdOiBTdXBwb3NpdGlvbk5vZGUsXG4gIFtDT05TVFJVQ1RPUl9SVUxFX05BTUVdOiBDb25zdHJ1Y3Rvck5vZGUsXG4gIFtNRVRBVEhFT1JFTV9SVUxFX05BTUVdOiBNZXRhdGhlb3JlbU5vZGUsXG4gIFtFUVVJVkFMRU5DRV9SVUxFX05BTUVdOiBFcXVpdmFsZW5jZU5vZGUsXG4gIFtBWElPTV9IRUFERVJfUlVMRV9OQU1FXTogQXhpb21IZWFkZXJOb2RlLFxuICBbTEVNTUFfSEVBREVSX1JVTEVfTkFNRV06IExlbW1hSGVhZGVyTm9kZSxcbiAgW1RIRU9SRU1fQk9EWV9SVUxFX05BTUVdOiBUaGVvcmVtQm9keU5vZGUsXG4gIFtNRVRBVkFSSUFCTEVfUlVMRV9OQU1FXTogTWV0YXZhcmlhYmxlTm9kZSxcbiAgW0VRVUlWQUxFTkNFU19SVUxFX05BTUVdOiBFcXVpdmFsZW5jZXNOb2RlLFxuICBbTUVUQV9BUkdVTUVOVF9SVUxFX05BTUVdOiBNZXRhQXJndW1lbnROb2RlLFxuICBbUVVBTElGSUNBVElPTl9SVUxFX05BTUVdOiBRdWFsaWZpY2F0aW9uTm9kZSxcbiAgW1RZUEVfQVNTRVJUSU9OX1JVTEVfTkFNRV06IFR5cGVBc3NlcnRpb25Ob2RlLFxuICBbUFJPQ0VEVVJFX0NBTExfUlVMRV9OQU1FXTogUHJvY2VkdXJlQ2FsbE5vZGUsXG4gIFtTVUJfREVSSVZBVElPTl9SVUxFX05BTUVdOiBTdWJEZXJpdmF0aW9uTm9kZSxcbiAgW1RIRU9SRU1fSEVBREVSX1JVTEVfTkFNRV06IFRoZW9yZW1IZWFkZXJOb2RlLFxuICBbTUVUQV9MRU1NQV9CT0RZX1JVTEVfTkFNRV06IE1ldGFMZW1tYUJvZHlOb2RlLFxuICBbQ09OSkVDVFVSRV9CT0RZX1JVTEVfTkFNRV06IENvbmplY3R1cmVCb2R5Tm9kZSxcbiAgW01FVEFUSEVPUkVNX0JPRFlfUlVMRV9OQU1FXTogTWV0YXRoZW9yZW1Cb2R5Tm9kZSxcbiAgW01FVEFfTEVNTUFfSEVBREVSX1JVTEVfTkFNRV06IE1ldGFMZW1tYUhlYWRlck5vZGUsXG4gIFtDT05KRUNUVVJFX0hFQURFUl9SVUxFX05BTUVdOiBDb25qZWN0dXJlSGVhZGVyTm9kZSxcbiAgW1BST1BFUlRZX1JFTEFUSU9OX1JVTEVfTkFNRV06IFByb3BlcnR5UmVsYXRpb25Ob2RlLFxuICBbREVGSU5FRF9BU1NFUlRJT05fUlVMRV9OQU1FXTogRGVmaW5lZEFzc2VydGlvbk5vZGUsXG4gIFtURVJNX1NVQlNUSVRVVElPTl9SVUxFX05BTUVdOiBUZXJtU3Vic3RpdHV0aW9uTm9kZSxcbiAgW01FVEFUSEVPUkVNX0hFQURFUl9SVUxFX05BTUVdOiBNZXRhdGhlb3JlbUhlYWRlck5vZGUsXG4gIFtTVUJQUk9PRl9BU1NFUlRJT05fUlVMRV9OQU1FXTogU3VicHJvb2ZBc3NlcnRpb25Ob2RlLFxuICBbUFJPUEVSVFlfQVNTRVJUSU9OX1JVTEVfTkFNRV06IFByb3BlcnR5QXNzZXJ0aW9uTm9kZSxcbiAgW0ZSQU1FX1NVQlNUSVRVVElPTl9SVUxFX05BTUVdOiBGcmFtZVN1YnN0aXR1dGlvbk5vZGUsXG4gIFtQUk9DRURVUkVfUkVGRVJFTkNFX1JVTEVfTkFNRV06IFByb2NlZHVyZVJlZmVyZW5jZU5vZGUsXG4gIFtQQVJFTlRIRVNJU0VEX0xBQkVMX1JVTEVfTkFNRV06IFBhcmVudGhlc2lzZWRMYWJlbE5vZGUsXG4gIFtTQVRJU0ZJRVNfQVNTRVJUSU9OX1JVTEVfTkFNRV06IFNhdGlzZmllc0Fzc2VydGlvbk5vZGUsXG4gIFtDT05UQUlORURfQVNTRVJUSU9OX1JVTEVfTkFNRV06IENvbnRhaW5lZEFzc2VydGlvbk5vZGUsXG4gIFtQQVJFTlRIRVNJU0VEX0xBQkVMU19SVUxFX05BTUVdOiBQYXJlbnRoZXNpc2VkTGFiZWxzTm9kZSxcbiAgW1ZBUklBQkxFX0RFQ0xBUkFUSU9OX1JVTEVfTkFNRV06IFZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlLFxuICBbUFJPUEVSVFlfREVDTEFSQVRJT05fUlVMRV9OQU1FXTogUHJvcGVydHlEZWNsYXJhdGlvbk5vZGUsXG4gIFtTVEFURU1FTlRfU1VCU1RJVFVUSU9OX1JVTEVfTkFNRV06IFN0YXRlbWVudFN1YnN0aXR1dGlvbk5vZGUsXG4gIFtDT01CSU5BVE9SX0RFQ0xBUkFUSU9OX1JVTEVfTkFNRV06IENvbWJpbmF0b3JEZWNsYXJhdGlvbk5vZGUsXG4gIFtTSU1QTEVfVFlQRV9ERUNMQVJBVElPTl9SVUxFX05BTUVdOiBTaW1wbGVUeXBlRGVjbGFyYXRpb25Ob2RlLFxuICBbVFlQRV9QUkVGSVhfREVDTEFSQVRJT05fUlVMRV9OQU1FXTogVHlwZVByZWZpeERlY2xhcmF0aW9uTm9kZSxcbiAgW0NPTlNUUlVDVE9SX0RFQ0xBUkFUSU9OX1JVTEVfTkFNRV06IERvbnN0cnVjdG9yRGVjbGFyYXRpb25Ob2RlLFxuICBbQ09NUExFWF9UWVBFX0RFQ0xBUkFUSU9OX1JVTEVfTkFNRV06IENvbXBsZXhUeXBlRGVjbGFyYXRpb25Ob2RlLFxuICBbTUVUQVZBUklBQkxFX0RFQ0xBUkFUSU9OX1JVTEVfTkFNRV06IE1ldGF2YXJpYWJsZURlY2xhcmF0aW9uTm9kZVxufTtcblxuZXhwb3J0IGRlZmF1bHQgTm9uVGVybWluYWxOb2RlTWFwO1xuIl0sIm5hbWVzIjpbIk5vblRlcm1pbmFsTm9kZU1hcCIsIlJVTEVfUlVMRV9OQU1FIiwiUnVsZU5vZGUiLCJTVEVQX1JVTEVfTkFNRSIsIlN0ZXBOb2RlIiwiVEVSTV9SVUxFX05BTUUiLCJUZXJtTm9kZSIsIlRZUEVfUlVMRV9OQU1FIiwiVHlwZU5vZGUiLCJUWVBFU19SVUxFX05BTUUiLCJUeXBlc05vZGUiLCJFUlJPUl9SVUxFX05BTUUiLCJFcnJvck5vZGUiLCJGUkFNRV9SVUxFX05BTUUiLCJGcmFtZU5vZGUiLCJMRU1NQV9SVUxFX05BTUUiLCJMZW1tYU5vZGUiLCJBWElPTV9SVUxFX05BTUUiLCJBeGlvbU5vZGUiLCJQUk9PRl9SVUxFX05BTUUiLCJQcm9vZk5vZGUiLCJMQUJFTF9SVUxFX05BTUUiLCJMYWJlbE5vZGUiLCJMQUJFTFNfUlVMRV9OQU1FIiwiTGFiZWxzTm9kZSIsIlRIRU9SRU1fUlVMRV9OQU1FIiwiVGhlb3JlbU5vZGUiLCJQUkVNSVNFX1JVTEVfTkFNRSIsIlByZW1pc2VOb2RlIiwiU0VDVElPTl9SVUxFX05BTUUiLCJTZWN0aW9uTm9kZSIsIkFSR1VNRU5UX1JVTEVfTkFNRSIsIkFyZ3VtZW50Tm9kZSIsIlBST1BFUlRZX1JVTEVfTkFNRSIsIlByb3BlcnR5Tm9kZSIsIlNVQlBST09GX1JVTEVfTkFNRSIsIlN1YnByb29mTm9kZSIsIkVRVUFMSVRZX1JVTEVfTkFNRSIsIkVxdWFsaXR5Tm9kZSIsIlZBUklBQkxFX1JVTEVfTkFNRSIsIlZhcmlhYmxlTm9kZSIsIkRPQ1VNRU5UX1JVTEVfTkFNRSIsIkRvY3VtZW50Tm9kZSIsIlJVTEVfQk9EWV9SVUxFX05BTUUiLCJSdWxlQm9keU5vZGUiLCJNRVRBX1RZUEVfUlVMRV9OQU1FIiwiTWV0YVR5cGVOb2RlIiwiU0lHTkFUVVJFX1JVTEVfTkFNRSIsIlNpZ25hdHVyZU5vZGUiLCJSRUZFUkVOQ0VfUlVMRV9OQU1FIiwiUmVmZXJlbmNlTm9kZSIsIkpVREdFTUVOVF9SVUxFX05BTUUiLCJKdWRnZW1lbnROb2RlIiwiREVEVUNUSU9OX1JVTEVfTkFNRSIsIkRlZHVjdGlvbk5vZGUiLCJQQVJBTUVURVJfUlVMRV9OQU1FIiwiUGFyYW1ldGVyTm9kZSIsIlNUQVRFTUVOVF9SVUxFX05BTUUiLCJTdGF0ZW1lbnROb2RlIiwiQVhJT01fQk9EWV9SVUxFX05BTUUiLCJBeGlvbUJvZHlOb2RlIiwiTEVNTUFfQk9EWV9SVUxFX05BTUUiLCJMZW1tYUJvZHlOb2RlIiwiTUVUQV9MRU1NQV9SVUxFX05BTUUiLCJNZXRhTGVtbWFOb2RlIiwiQ09NQklOQVRPUl9SVUxFX05BTUUiLCJDb21iaW5hdG9yTm9kZSIsIkNPTkNMVVNJT05fUlVMRV9OQU1FIiwiQ29uY2x1c2lvbk5vZGUiLCJDT05KRUNUVVJFX1JVTEVfTkFNRSIsIkNvbmplY3R1cmVOb2RlIiwiREVSSVZBVElPTl9SVUxFX05BTUUiLCJEZXJpdmF0aW9uTm9kZSIsIkhZUE9USEVTSVNfUlVMRV9OQU1FIiwiSHlwb3RoZXNpc05vZGUiLCJBU1NVTVBUSU9OX1JVTEVfTkFNRSIsIkFzc3VtcHRpb25Ob2RlIiwiUlVMRV9IRUFERVJfUlVMRV9OQU1FIiwiUnVsZUhlYWRlck5vZGUiLCJUWVBFX1BSRUZJWF9SVUxFX05BTUUiLCJUeXBlUHJlZml4Tm9kZSIsIlBMQUNFSE9MREVSX1JVTEVfTkFNRSIsIlBsYWNlaG9sZGVyTm9kZSIsIlNVUFBPU0lUSU9OX1JVTEVfTkFNRSIsIlN1cHBvc2l0aW9uTm9kZSIsIkNPTlNUUlVDVE9SX1JVTEVfTkFNRSIsIkNvbnN0cnVjdG9yTm9kZSIsIk1FVEFUSEVPUkVNX1JVTEVfTkFNRSIsIk1ldGF0aGVvcmVtTm9kZSIsIkVRVUlWQUxFTkNFX1JVTEVfTkFNRSIsIkVxdWl2YWxlbmNlTm9kZSIsIkFYSU9NX0hFQURFUl9SVUxFX05BTUUiLCJBeGlvbUhlYWRlck5vZGUiLCJMRU1NQV9IRUFERVJfUlVMRV9OQU1FIiwiTGVtbWFIZWFkZXJOb2RlIiwiVEhFT1JFTV9CT0RZX1JVTEVfTkFNRSIsIlRoZW9yZW1Cb2R5Tm9kZSIsIk1FVEFWQVJJQUJMRV9SVUxFX05BTUUiLCJNZXRhdmFyaWFibGVOb2RlIiwiRVFVSVZBTEVOQ0VTX1JVTEVfTkFNRSIsIkVxdWl2YWxlbmNlc05vZGUiLCJNRVRBX0FSR1VNRU5UX1JVTEVfTkFNRSIsIk1ldGFBcmd1bWVudE5vZGUiLCJRVUFMSUZJQ0FUSU9OX1JVTEVfTkFNRSIsIlF1YWxpZmljYXRpb25Ob2RlIiwiVFlQRV9BU1NFUlRJT05fUlVMRV9OQU1FIiwiVHlwZUFzc2VydGlvbk5vZGUiLCJQUk9DRURVUkVfQ0FMTF9SVUxFX05BTUUiLCJQcm9jZWR1cmVDYWxsTm9kZSIsIlNVQl9ERVJJVkFUSU9OX1JVTEVfTkFNRSIsIlN1YkRlcml2YXRpb25Ob2RlIiwiVEhFT1JFTV9IRUFERVJfUlVMRV9OQU1FIiwiVGhlb3JlbUhlYWRlck5vZGUiLCJNRVRBX0xFTU1BX0JPRFlfUlVMRV9OQU1FIiwiTWV0YUxlbW1hQm9keU5vZGUiLCJDT05KRUNUVVJFX0JPRFlfUlVMRV9OQU1FIiwiQ29uamVjdHVyZUJvZHlOb2RlIiwiTUVUQVRIRU9SRU1fQk9EWV9SVUxFX05BTUUiLCJNZXRhdGhlb3JlbUJvZHlOb2RlIiwiTUVUQV9MRU1NQV9IRUFERVJfUlVMRV9OQU1FIiwiTWV0YUxlbW1hSGVhZGVyTm9kZSIsIkNPTkpFQ1RVUkVfSEVBREVSX1JVTEVfTkFNRSIsIkNvbmplY3R1cmVIZWFkZXJOb2RlIiwiUFJPUEVSVFlfUkVMQVRJT05fUlVMRV9OQU1FIiwiUHJvcGVydHlSZWxhdGlvbk5vZGUiLCJERUZJTkVEX0FTU0VSVElPTl9SVUxFX05BTUUiLCJEZWZpbmVkQXNzZXJ0aW9uTm9kZSIsIlRFUk1fU1VCU1RJVFVUSU9OX1JVTEVfTkFNRSIsIlRlcm1TdWJzdGl0dXRpb25Ob2RlIiwiTUVUQVRIRU9SRU1fSEVBREVSX1JVTEVfTkFNRSIsIk1ldGF0aGVvcmVtSGVhZGVyTm9kZSIsIlNVQlBST09GX0FTU0VSVElPTl9SVUxFX05BTUUiLCJTdWJwcm9vZkFzc2VydGlvbk5vZGUiLCJQUk9QRVJUWV9BU1NFUlRJT05fUlVMRV9OQU1FIiwiUHJvcGVydHlBc3NlcnRpb25Ob2RlIiwiRlJBTUVfU1VCU1RJVFVUSU9OX1JVTEVfTkFNRSIsIkZyYW1lU3Vic3RpdHV0aW9uTm9kZSIsIlBST0NFRFVSRV9SRUZFUkVOQ0VfUlVMRV9OQU1FIiwiUHJvY2VkdXJlUmVmZXJlbmNlTm9kZSIsIlBBUkVOVEhFU0lTRURfTEFCRUxfUlVMRV9OQU1FIiwiUGFyZW50aGVzaXNlZExhYmVsTm9kZSIsIlNBVElTRklFU19BU1NFUlRJT05fUlVMRV9OQU1FIiwiU2F0aXNmaWVzQXNzZXJ0aW9uTm9kZSIsIkNPTlRBSU5FRF9BU1NFUlRJT05fUlVMRV9OQU1FIiwiQ29udGFpbmVkQXNzZXJ0aW9uTm9kZSIsIlBBUkVOVEhFU0lTRURfTEFCRUxTX1JVTEVfTkFNRSIsIlBhcmVudGhlc2lzZWRMYWJlbHNOb2RlIiwiVkFSSUFCTEVfREVDTEFSQVRJT05fUlVMRV9OQU1FIiwiVmFyaWFibGVEZWNsYXJhdGlvbk5vZGUiLCJQUk9QRVJUWV9ERUNMQVJBVElPTl9SVUxFX05BTUUiLCJQcm9wZXJ0eURlY2xhcmF0aW9uTm9kZSIsIlNUQVRFTUVOVF9TVUJTVElUVVRJT05fUlVMRV9OQU1FIiwiU3RhdGVtZW50U3Vic3RpdHV0aW9uTm9kZSIsIkNPTUJJTkFUT1JfREVDTEFSQVRJT05fUlVMRV9OQU1FIiwiQ29tYmluYXRvckRlY2xhcmF0aW9uTm9kZSIsIlNJTVBMRV9UWVBFX0RFQ0xBUkFUSU9OX1JVTEVfTkFNRSIsIlNpbXBsZVR5cGVEZWNsYXJhdGlvbk5vZGUiLCJUWVBFX1BSRUZJWF9ERUNMQVJBVElPTl9SVUxFX05BTUUiLCJUeXBlUHJlZml4RGVjbGFyYXRpb25Ob2RlIiwiQ09OU1RSVUNUT1JfREVDTEFSQVRJT05fUlVMRV9OQU1FIiwiRG9uc3RydWN0b3JEZWNsYXJhdGlvbk5vZGUiLCJDT01QTEVYX1RZUEVfREVDTEFSQVRJT05fUlVMRV9OQU1FIiwiQ29tcGxleFR5cGVEZWNsYXJhdGlvbk5vZGUiLCJNRVRBVkFSSUFCTEVfREVDTEFSQVRJT05fUlVMRV9OQU1FIiwiTWV0YXZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkE4UEE7OztlQUFBOzs7MkRBNVBxQjsyREFDQTsyREFDQTsyREFDQTs0REFDQzs0REFDQTs0REFDQTs0REFDQTs0REFDQTs0REFDQTs0REFDQTs2REFDQzs4REFDQzs4REFDQTs4REFDQTsrREFDQzsrREFDQTsrREFDQTsrREFDQTsrREFDQTsrREFDQTsrREFDQTs0REFDQTtnRUFDQztnRUFDQTtnRUFDQTtnRUFDQTtnRUFDQTtnRUFDQTtnRUFDQTs2REFDQTs2REFDQTtpRUFDQztpRUFDQTtpRUFDQTtpRUFDQTtpRUFDQTtpRUFDQTtpRUFDQTs0REFDQTtrRUFDQztrRUFDQTtrRUFDQTtrRUFDQTtrRUFDQTsrREFDQTs2REFDQTs2REFDQTttRUFDQzttRUFDQTttRUFDQTtvRUFDQztvRUFDQTtvRUFDQTsrREFDQTtpRUFDQTs0REFDQTtrRUFDQzttRUFDQztpRUFDQTt1RUFDQzs4REFDQTs0REFDQTtrRUFDQTttRUFDQztnRUFDQTtnRUFDQTs2REFDQTt5RUFDQzt5RUFDQTtnRUFDQTtnRUFDQTswRUFDQztnRUFDQTtnRUFDQTtpRUFDRTtpRUFDQTtrRUFDQTtrRUFDQTtrRUFDQzttRUFDQTtvRUFDQzt5QkFvRkk7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUFFakI7QUFBM0IsSUFBTUEsc0JBQXFCLFdBQ3pCLGlCQUR5QixNQUN4QkMseUJBQWMsRUFBR0MsYUFBUSxHQUMxQixpQkFGeUIsTUFFeEJDLHlCQUFjLEVBQUdDLGFBQVEsR0FDMUIsaUJBSHlCLE1BR3hCQyx5QkFBYyxFQUFHQyxhQUFRLEdBQzFCLGlCQUp5QixNQUl4QkMs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
|
|
117
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9ub25UZXJtaW5hbE5vZGVNYXAuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBUZXJtTm9kZSBmcm9tIFwiLi9ub2RlL3Rlcm1cIjtcbmltcG9ydCBSdWxlTm9kZSBmcm9tIFwiLi9ub2RlL3J1bGVcIjtcbmltcG9ydCBTdGVwTm9kZSBmcm9tIFwiLi9ub2RlL3Byb29mQXNzZXJ0aW9uL3N0ZXBcIjtcbmltcG9ydCBUeXBlTm9kZSBmcm9tIFwiLi9ub2RlL3R5cGVcIjtcbmltcG9ydCBUeXBlc05vZGUgZnJvbSBcIi4vbm9kZS90eXBlc1wiO1xuaW1wb3J0IEVycm9yTm9kZSBmcm9tIFwiLi9ub2RlL2Vycm9yXCI7XG5pbXBvcnQgRnJhbWVOb2RlIGZyb20gXCIuL25vZGUvZnJhbWVcIjtcbmltcG9ydCBBeGlvbU5vZGUgZnJvbSBcIi4vbm9kZS90b3BMZXZlbEFzc2VydGlvbi9heGlvbVwiO1xuaW1wb3J0IExlbW1hTm9kZSBmcm9tIFwiLi9ub2RlL3RvcExldmVsQXNzZXJ0aW9uL2xlbW1hXCI7XG5pbXBvcnQgUHJvb2ZOb2RlIGZyb20gXCIuL25vZGUvcHJvb2ZcIjtcbmltcG9ydCBMYWJlbE5vZGUgZnJvbSBcIi4vbm9kZS9sYWJlbFwiO1xuaW1wb3J0IExhYmVsc05vZGUgZnJvbSBcIi4vbm9kZS9sYWJlbHNcIjtcbmltcG9ydCBTZWN0aW9uTm9kZSBmcm9tIFwiLi9ub2RlL3NlY3Rpb25cIjtcbmltcG9ydCBQcmVtaXNlTm9kZSBmcm9tIFwiLi9ub2RlL3Byb29mQXNzZXJ0aW9uL3ByZW1pc2VcIjtcbmltcG9ydCBUaGVvcmVtTm9kZSBmcm9tIFwiLi9ub2RlL3RvcExldmVsQXNzZXJ0aW9uL3RoZW9yZW1cIjtcbmltcG9ydCBBcmd1bWVudE5vZGUgZnJvbSBcIi4vbm9kZS9hcmd1bWVudFwiO1xuaW1wb3J0IFN1YnByb29mTm9kZSBmcm9tIFwiLi9ub2RlL3N1YnByb29mXCI7XG5pbXBvcnQgUHJvcGVydHlOb2RlIGZyb20gXCIuL25vZGUvcHJvcGVydHlcIjtcbmltcG9ydCBNZXRhVHlwZU5vZGUgZnJvbSBcIi4vbm9kZS9tZXRhVHlwZVwiO1xuaW1wb3J0IEVxdWFsaXR5Tm9kZSBmcm9tIFwiLi9ub2RlL2VxdWFsaXR5XCI7XG5pbXBvcnQgVmFyaWFibGVOb2RlIGZyb20gXCIuL25vZGUvdmFyaWFibGVcIjtcbmltcG9ydCBEb2N1bWVudE5vZGUgZnJvbSBcIi4vbm9kZS9kb2N1bWVudFwiO1xuaW1wb3J0IFJ1bGVCb2R5Tm9kZSBmcm9tIFwiLi9ub2RlL2JvZHkvcnVsZVwiO1xuaW1wb3J0IFN0YXRlbWVudE5vZGUgZnJvbSBcIi4vbm9kZS9zdGF0ZW1lbnRcIjtcbmltcG9ydCBSZWZlcmVuY2VOb2RlIGZyb20gXCIuL25vZGUvcmVmZXJlbmNlXCI7XG5pbXBvcnQgRGVkdWN0aW9uTm9kZSBmcm9tIFwiLi9ub2RlL2RlZHVjdGlvblwiO1xuaW1wb3J0IEp1ZGdlbWVudE5vZGUgZnJvbSBcIi4vbm9kZS9qdWRnZW1lbnRcIjtcbmltcG9ydCBNZXRhTGVtbWFOb2RlIGZyb20gXCIuL25vZGUvdG9wTGV2ZWxNZXRhQXNzZXJ0aW9uL21ldGFMZW1tYVwiO1xuaW1wb3J0IFBhcmFtZXRlck5vZGUgZnJvbSBcIi4vbm9kZS9wYXJhbWV0ZXJcIjtcbmltcG9ydCBTaWduYXR1cmVOb2RlIGZyb20gXCIuL25vZGUvc2lnbmF0dXJlXCI7XG5pbXBvcnQgQXhpb21Cb2R5Tm9kZSBmcm9tIFwiLi9ub2RlL2JvZHkvYXhpb21cIjtcbmltcG9ydCBMZW1tYUJvZHlOb2RlIGZyb20gXCIuL25vZGUvYm9keS9sZW1tYVwiO1xuaW1wb3J0IERlcml2YXRpb25Ob2RlIGZyb20gXCIuL25vZGUvZGVyaXZhdGlvblwiO1xuaW1wb3J0IENvbWJpbmF0b3JOb2RlIGZyb20gXCIuL25vZGUvY29tYmluYXRvclwiO1xuaW1wb3J0IENvbmNsdXNpb25Ob2RlIGZyb20gXCIuL25vZGUvY29uY2x1c2lvblwiO1xuaW1wb3J0IENvbmplY3R1cmVOb2RlIGZyb20gXCIuL25vZGUvdG9wTGV2ZWxBc3NlcnRpb24vY29uamVjdHVyZVwiO1xuaW1wb3J0IEh5cG90aGVzaXNOb2RlIGZyb20gXCIuL25vZGUvaHlwb3RoZXNpc1wiO1xuaW1wb3J0IFR5cGVQcmVmaXhOb2RlIGZyb20gXCIuL25vZGUvdHlwZVByZWZpeFwiO1xuaW1wb3J0IEFzc3VtcHRpb25Ob2RlIGZyb20gXCIuL25vZGUvYXNzdW1wdGlvblwiO1xuaW1wb3J0IFJ1bGVIZWFkZXJOb2RlIGZyb20gXCIuL25vZGUvaGVhZGVyL3J1bGVcIjtcbmltcG9ydCBTdXBwb3NpdGlvbk5vZGUgZnJvbSBcIi4vbm9kZS9wcm9vZkFzc2VydGlvbi9zdXBwb3NpdGlvblwiO1xuaW1wb3J0IFBsYWNlaG9sZGVyTm9kZSBmcm9tIFwiLi9ub2RlL3BsYWNlaG9sZGVyXCI7XG5pbXBvcnQgQ29uc3RydWN0b3JOb2RlIGZyb20gXCIuL25vZGUvY29uc3RydWN0b3JcIjtcbmltcG9ydCBNZXRhdGhlb3JlbU5vZGUgZnJvbSBcIi4vbm9kZS90b3BMZXZlbE1ldGFBc3NlcnRpb24vbWV0YXRoZW9yZW1cIjtcbmltcG9ydCBFcXVpdmFsZW5jZU5vZGUgZnJvbSBcIi4vbm9kZS9lcXVpdmFsZW5jZVwiO1xuaW1wb3J0IFRoZW9yZW1Cb2R5Tm9kZSBmcm9tIFwiLi9ub2RlL2JvZHkvdGhlb3JlbVwiO1xuaW1wb3J0IEF4aW9tSGVhZGVyTm9kZSBmcm9tIFwiLi9ub2RlL2hlYWRlci9heGlvbVwiO1xuaW1wb3J0IExlbW1hSGVhZGVyTm9kZSBmcm9tIFwiLi9ub2RlL2hlYWRlci9sZW1tYVwiO1xuaW1wb3J0IEVxdWl2YWxlbmNlc05vZGUgZnJvbSBcIi4vbm9kZS9lcXVpdmFsZW5jZXNcIjtcbmltcG9ydCBNZXRhQXJndW1lbnROb2RlIGZyb20gXCIuL25vZGUvbWV0YUFyZ3VtZW50XCI7XG5pbXBvcnQgTWV0YXZhcmlhYmxlTm9kZSBmcm9tIFwiLi9ub2RlL21ldGF2YXJpYWJsZVwiO1xuaW1wb3J0IFF1YWxpZmljYXRpb25Ob2RlIGZyb20gXCIuL25vZGUvcXVhbGlmaWNhdGlvblwiO1xuaW1wb3J0IFByb2NlZHVyZUNhbGxOb2RlIGZyb20gXCIuL25vZGUvcHJvY2VkdXJlQ2FsbFwiO1xuaW1wb3J0IFN1YkRlcml2YXRpb25Ob2RlIGZyb20gXCIuL25vZGUvc3ViRGVyaXZhdGlvblwiO1xuaW1wb3J0IFRoZW9yZW1IZWFkZXJOb2RlIGZyb20gXCIuL25vZGUvaGVhZGVyL3RoZW9yZW1cIjtcbmltcG9ydCBNZXRhTGVtbWFCb2R5Tm9kZSBmcm9tIFwiLi9ub2RlL2JvZHkvbWV0YUxlbW1hXCI7XG5pbXBvcnQgVHlwZUFzc2VydGlvbk5vZGUgZnJvbSBcIi4vbm9kZS9hc3NlcnRpb24vdHlwZVwiO1xuaW1wb3J0IENvbmplY3R1cmVCb2R5Tm9kZSBmcm9tIFwiLi9ub2RlL2JvZHkvY29uamVjdHVyZVwiO1xuaW1wb3J0IE1ldGF0aGVvcmVtQm9keU5vZGUgZnJvbSBcIi4vbm9kZS9ib2R5L21ldGF0aGVvcmVtXCI7XG5pbXBvcnQgTWV0YUxlbW1hSGVhZGVyTm9kZSBmcm9tIFwiLi9ub2RlL2hlYWRlci9tZXRhTGVtbWFcIjtcbmltcG9ydCBQcm9wZXJ0eVJlbGF0aW9uTm9kZSBmcm9tIFwiLi9ub2RlL3Byb3BlcnR5UmVsYXRpb25cIlxuaW1wb3J0IERlZmluZWRBc3NlcnRpb25Ob2RlIGZyb20gXCIuL25vZGUvYXNzZXJ0aW9uL2RlZmluZWRcIjtcbmltcG9ydCBUZXJtU3Vic3RpdHV0aW9uTm9kZSBmcm9tIFwiLi9ub2RlL3N1YnN0aXR1dGlvbi90ZXJtXCI7XG5pbXBvcnQgQ29uamVjdHVyZUhlYWRlck5vZGUgZnJvbSBcIi4vbm9kZS9oZWFkZXIvY29uamVjdHVyZVwiO1xuaW1wb3J0IE1ldGF0aGVvcmVtSGVhZGVyTm9kZSBmcm9tIFwiLi9ub2RlL2hlYWRlci9tZXRhdGhlb3JlbVwiO1xuaW1wb3J0IFByb3BlcnR5QXNzZXJ0aW9uTm9kZSBmcm9tIFwiLi9ub2RlL2Fzc2VydGlvbi9wcm9wZXJ0eVwiO1xuaW1wb3J0IFN1YnByb29mQXNzZXJ0aW9uTm9kZSBmcm9tIFwiLi9ub2RlL2Fzc2VydGlvbi9zdWJwcm9vZlwiO1xuaW1wb3J0IEZyYW1lU3Vic3RpdHV0aW9uTm9kZSBmcm9tIFwiLi9ub2RlL3N1YnN0aXR1dGlvbi9mcmFtZVwiO1xuaW1wb3J0IFBhcmVudGhlc2lzZWRMYWJlbE5vZGUgZnJvbSBcIi4vbm9kZS9wYXJlbnRoZXNpc2VkTGFiZWxcIjtcbmltcG9ydCBQcm9jZWR1cmVSZWZlcmVuY2VOb2RlIGZyb20gXCIuL25vZGUvcHJvY2VkdXJlUmVmZXJlbmNlXCI7XG5pbXBvcnQgQ29udGFpbmVkQXNzZXJ0aW9uTm9kZSBmcm9tIFwiLi9ub2RlL2Fzc2VydGlvbi9jb250YWluZWRcIjtcbmltcG9ydCBTYXRpc2ZpZXNBc3NlcnRpb25Ob2RlIGZyb20gXCIuL25vZGUvYXNzZXJ0aW9uL3NhdGlzZmllc1wiO1xuaW1wb3J0IFBhcmVudGhlc2lzZWRMYWJlbHNOb2RlIGZyb20gXCIuL25vZGUvcGFyZW50aGVzaXNlZExhYmVsc1wiXG5pbXBvcnQgUHJvcGVydHlEZWNsYXJhdGlvbk5vZGUgZnJvbSBcIi4vbm9kZS9kZWNsYXJhdGlvbi9wcm9wZXJ0eVwiO1xuaW1wb3J0IFZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlIGZyb20gXCIuL25vZGUvZGVjbGFyYXRpb24vdmFyaWFibGVcIjtcbmltcG9ydCBSZWZlcmVuY2VTdWJzdGl0dXRpb25Ob2RlIGZyb20gXCIuL25vZGUvc3Vic3RpdHV0aW9uL3JlZmVyZW5jZVwiO1xuaW1wb3J0IFN0YXRlbWVudFN1YnN0aXR1dGlvbk5vZGUgZnJvbSBcIi4vbm9kZS9zdWJzdGl0dXRpb24vc3RhdGVtZW50XCI7XG5pbXBvcnQgU2ltcGxlVHlwZURlY2xhcmF0aW9uTm9kZSBmcm9tIFwiLi9ub2RlL2RlY2xhcmF0aW9uL3NpbXBsZVR5cGVcIjtcbmltcG9ydCBDb21iaW5hdG9yRGVjbGFyYXRpb25Ob2RlIGZyb20gXCIuL25vZGUvZGVjbGFyYXRpb24vY29tYmluYXRvclwiO1xuaW1wb3J0IFR5cGVQcmVmaXhEZWNsYXJhdGlvbk5vZGUgZnJvbSBcIi4vbm9kZS9kZWNsYXJhdGlvbi90eXBlUHJlZml4XCI7XG5pbXBvcnQgQ29tcGxleFR5cGVEZWNsYXJhdGlvbk5vZGUgZnJvbSBcIi4vbm9kZS9kZWNsYXJhdGlvbi9jb21wbGV4VHlwZVwiO1xuaW1wb3J0IERvbnN0cnVjdG9yRGVjbGFyYXRpb25Ob2RlIGZyb20gXCIuL25vZGUvZGVjbGFyYXRpb24vY29uc3RydWN0b3JcIjtcbmltcG9ydCBNZXRhdmFyaWFibGVEZWNsYXJhdGlvbk5vZGUgZnJvbSBcIi4vbm9kZS9kZWNsYXJhdGlvbi9tZXRhdmFyaWFibGVcIjtcblxuaW1wb3J0IHtcbiAgUlVMRV9SVUxFX05BTUUsXG4gIFNURVBfUlVMRV9OQU1FLFxuICBURVJNX1JVTEVfTkFNRSxcbiAgVFlQRV9SVUxFX05BTUUsXG4gIFRZUEVTX1JVTEVfTkFNRSxcbiAgUFJPT0ZfUlVMRV9OQU1FLFxuICBFUlJPUl9SVUxFX05BTUUsXG4gIEZSQU1FX1JVTEVfTkFNRSxcbiAgQVhJT01fUlVMRV9OQU1FLFxuICBMRU1NQV9SVUxFX05BTUUsXG4gIExBQkVMX1JVTEVfTkFNRSxcbiAgTEFCRUxTX1JVTEVfTkFNRSxcbiAgVEhFT1JFTV9SVUxFX05BTUUsXG4gIFBSRU1JU0VfUlVMRV9OQU1FLFxuICBTRUNUSU9OX1JVTEVfTkFNRSxcbiAgQVJHVU1FTlRfUlVMRV9OQU1FLFxuICBTVUJQUk9PRl9SVUxFX05BTUUsXG4gIFBST1BFUlRZX1JVTEVfTkFNRSxcbiAgRVFVQUxJVFlfUlVMRV9OQU1FLFxuICBWQVJJQUJMRV9SVUxFX05BTUUsXG4gIERPQ1VNRU5UX1JVTEVfTkFNRSxcbiAgTUVUQV9UWVBFX1JVTEVfTkFNRSxcbiAgU0lHTkFUVVJFX1JVTEVfTkFNRSxcbiAgREVEVUNUSU9OX1JVTEVfTkFNRSxcbiAgSlVER0VNRU5UX1JVTEVfTkFNRSxcbiAgUEFSQU1FVEVSX1JVTEVfTkFNRSxcbiAgUkVGRVJFTkNFX1JVTEVfTkFNRSxcbiAgU1RBVEVNRU5UX1JVTEVfTkFNRSxcbiAgUlVMRV9CT0RZX1JVTEVfTkFNRSxcbiAgTUVUQV9MRU1NQV9SVUxFX05BTUUsXG4gIERFUklWQVRJT05fUlVMRV9OQU1FLFxuICBDT01CSU5BVE9SX1JVTEVfTkFNRSxcbiAgQ09OQ0xVU0lPTl9SVUxFX05BTUUsXG4gIENPTkpFQ1RVUkVfUlVMRV9OQU1FLFxuICBIWVBPVEhFU0lTX1JVTEVfTkFNRSxcbiAgQVhJT01fQk9EWV9SVUxFX05BTUUsXG4gIExFTU1BX0JPRFlfUlVMRV9OQU1FLFxuICBBU1NVTVBUSU9OX1JVTEVfTkFNRSxcbiAgUExBQ0VIT0xERVJfUlVMRV9OQU1FLFxuICBUWVBFX1BSRUZJWF9SVUxFX05BTUUsXG4gIFNVUFBPU0lUSU9OX1JVTEVfTkFNRSxcbiAgUlVMRV9IRUFERVJfUlVMRV9OQU1FLFxuICBDT05TVFJVQ1RPUl9SVUxFX05BTUUsXG4gIE1FVEFUSEVPUkVNX1JVTEVfTkFNRSxcbiAgRVFVSVZBTEVOQ0VfUlVMRV9OQU1FLFxuICBFUVVJVkFMRU5DRVNfUlVMRV9OQU1FLFxuICBBWElPTV9IRUFERVJfUlVMRV9OQU1FLFxuICBMRU1NQV9IRUFERVJfUlVMRV9OQU1FLFxuICBUSEVPUkVNX0JPRFlfUlVMRV9OQU1FLFxuICBNRVRBVkFSSUFCTEVfUlVMRV9OQU1FLFxuICBRVUFMSUZJQ0FUSU9OX1JVTEVfTkFNRSxcbiAgTUVUQV9BUkdVTUVOVF9SVUxFX05BTUUsXG4gIFRIRU9SRU1fSEVBREVSX1JVTEVfTkFNRSxcbiAgU1VCX0RFUklWQVRJT05fUlVMRV9OQU1FLFxuICBUWVBFX0FTU0VSVElPTl9SVUxFX05BTUUsXG4gIFBST0NFRFVSRV9DQUxMX1JVTEVfTkFNRSxcbiAgQ09OSkVDVFVSRV9CT0RZX1JVTEVfTkFNRSxcbiAgTUVUQV9MRU1NQV9CT0RZX1JVTEVfTkFNRSxcbiAgTUVUQVRIRU9SRU1fQk9EWV9SVUxFX05BTUUsXG4gIENPTkpFQ1RVUkVfSEVBREVSX1JVTEVfTkFNRSxcbiAgTUVUQV9MRU1NQV9IRUFERVJfUlVMRV9OQU1FLFxuICBQUk9QRVJUWV9SRUxBVElPTl9SVUxFX05BTUUsXG4gIERFRklORURfQVNTRVJUSU9OX1JVTEVfTkFNRSxcbiAgVEVSTV9TVUJTVElUVVRJT05fUlVMRV9OQU1FLFxuICBNRVRBVEhFT1JFTV9IRUFERVJfUlVMRV9OQU1FLFxuICBTVUJQUk9PRl9BU1NFUlRJT05fUlVMRV9OQU1FLFxuICBQUk9QRVJUWV9BU1NFUlRJT05fUlVMRV9OQU1FLFxuICBGUkFNRV9TVUJTVElUVVRJT05fUlVMRV9OQU1FLFxuICBQUk9DRURVUkVfUkVGRVJFTkNFX1JVTEVfTkFNRSxcbiAgQ09OVEFJTkVEX0FTU0VSVElPTl9SVUxFX05BTUUsXG4gIFNBVElTRklFU19BU1NFUlRJT05fUlVMRV9OQU1FLFxuICBQQVJFTlRIRVNJU0VEX0xBQkVMX1JVTEVfTkFNRSxcbiAgUEFSRU5USEVTSVNFRF9MQUJFTFNfUlVMRV9OQU1FLFxuICBQUk9QRVJUWV9ERUNMQVJBVElPTl9SVUxFX05BTUUsXG4gIFZBUklBQkxFX0RFQ0xBUkFUSU9OX1JVTEVfTkFNRSxcbiAgUkVGRVJFTkNFX1NVQlNUSVRVVElPTl9SVUxFX05BTUUsXG4gIFNUQVRFTUVOVF9TVUJTVElUVVRJT05fUlVMRV9OQU1FLFxuICBDT01CSU5BVE9SX0RFQ0xBUkFUSU9OX1JVTEVfTkFNRSxcbiAgU0lNUExFX1RZUEVfREVDTEFSQVRJT05fUlVMRV9OQU1FLFxuICBDT05TVFJVQ1RPUl9ERUNMQVJBVElPTl9SVUxFX05BTUUsXG4gIFRZUEVfUFJFRklYX0RFQ0xBUkFUSU9OX1JVTEVfTkFNRSxcbiAgQ09NUExFWF9UWVBFX0RFQ0xBUkFUSU9OX1JVTEVfTkFNRSxcbiAgTUVUQVZBUklBQkxFX0RFQ0xBUkFUSU9OX1JVTEVfTkFNRSB9IGZyb20gXCIuL3J1bGVOYW1lc1wiO1xuXG5jb25zdCBOb25UZXJtaW5hbE5vZGVNYXAgPSB7XG4gIFtSVUxFX1JVTEVfTkFNRV06IFJ1bGVOb2RlLFxuICBbU1RFUF9SVUxFX05BTUVdOiBTdGVwTm9kZSxcbiAgW1RFUk1fUlVMRV9OQU1FXTogVGVybU5vZGUsXG4gIFtUWVBFX1JVTEVfTkFNRV06IFR5cGVOb2RlLFxuICBbVFlQRVNfUlVMRV9OQU1FXTogVHlwZXNOb2RlLFxuICBbRVJST1JfUlVMRV9OQU1FXTogRXJyb3JOb2RlLFxuICBbRlJBTUVfUlVMRV9OQU1FXTogRnJhbWVOb2RlLFxuICBbTEVNTUFfUlVMRV9OQU1FXTogTGVtbWFOb2RlLFxuICBbQVhJT01fUlVMRV9OQU1FXTogQXhpb21Ob2RlLFxuICBbUFJPT0ZfUlVMRV9OQU1FXTogUHJvb2ZOb2RlLFxuICBbTEFCRUxfUlVMRV9OQU1FXTogTGFiZWxOb2RlLFxuICBbTEFCRUxTX1JVTEVfTkFNRV06IExhYmVsc05vZGUsXG4gIFtUSEVPUkVNX1JVTEVfTkFNRV06IFRoZW9yZW1Ob2RlLFxuICBbUFJFTUlTRV9SVUxFX05BTUVdOiBQcmVtaXNlTm9kZSxcbiAgW1NFQ1RJT05fUlVMRV9OQU1FXTogU2VjdGlvbk5vZGUsXG4gIFtBUkdVTUVOVF9SVUxFX05BTUVdOiBBcmd1bWVudE5vZGUsXG4gIFtQUk9QRVJUWV9SVUxFX05BTUVdOiBQcm9wZXJ0eU5vZGUsXG4gIFtTVUJQUk9PRl9SVUxFX05BTUVdOiBTdWJwcm9vZk5vZGUsXG4gIFtFUVVBTElUWV9SVUxFX05BTUVdOiBFcXVhbGl0eU5vZGUsXG4gIFtWQVJJQUJMRV9SVUxFX05BTUVdOiBWYXJpYWJsZU5vZGUsXG4gIFtET0NVTUVOVF9SVUxFX05BTUVdOiBEb2N1bWVudE5vZGUsXG4gIFtSVUxFX0JPRFlfUlVMRV9OQU1FXTogUnVsZUJvZHlOb2RlLFxuICBbTUVUQV9UWVBFX1JVTEVfTkFNRV06IE1ldGFUeXBlTm9kZSxcbiAgW1NJR05BVFVSRV9SVUxFX05BTUVdOiBTaWduYXR1cmVOb2RlLFxuICBbUkVGRVJFTkNFX1JVTEVfTkFNRV06IFJlZmVyZW5jZU5vZGUsXG4gIFtKVURHRU1FTlRfUlVMRV9OQU1FXTogSnVkZ2VtZW50Tm9kZSxcbiAgW0RFRFVDVElPTl9SVUxFX05BTUVdOiBEZWR1Y3Rpb25Ob2RlLFxuICBbUEFSQU1FVEVSX1JVTEVfTkFNRV06IFBhcmFtZXRlck5vZGUsXG4gIFtTVEFURU1FTlRfUlVMRV9OQU1FXTogU3RhdGVtZW50Tm9kZSxcbiAgW0FYSU9NX0JPRFlfUlVMRV9OQU1FXTogQXhpb21Cb2R5Tm9kZSxcbiAgW0xFTU1BX0JPRFlfUlVMRV9OQU1FXTogTGVtbWFCb2R5Tm9kZSxcbiAgW01FVEFfTEVNTUFfUlVMRV9OQU1FXTogTWV0YUxlbW1hTm9kZSxcbiAgW0NPTUJJTkFUT1JfUlVMRV9OQU1FXTogQ29tYmluYXRvck5vZGUsXG4gIFtDT05DTFVTSU9OX1JVTEVfTkFNRV06IENvbmNsdXNpb25Ob2RlLFxuICBbQ09OSkVDVFVSRV9SVUxFX05BTUVdOiBDb25qZWN0dXJlTm9kZSxcbiAgW0RFUklWQVRJT05fUlVMRV9OQU1FXTogRGVyaXZhdGlvbk5vZGUsXG4gIFtIWVBPVEhFU0lTX1JVTEVfTkFNRV06IEh5cG90aGVzaXNOb2RlLFxuICBbQVNTVU1QVElPTl9SVUxFX05BTUVdOiBBc3N1bXB0aW9uTm9kZSxcbiAgW1JVTEVfSEVBREVSX1JVTEVfTkFNRV06IFJ1bGVIZWFkZXJOb2RlLFxuICBbVFlQRV9QUkVGSVhfUlVMRV9OQU1FXTogVHlwZVByZWZpeE5vZGUsXG4gIFtQTEFDRUhPTERFUl9SVUxFX05BTUVdOiBQbGFjZWhvbGRlck5vZGUsXG4gIFtTVVBQT1NJVElPTl9SVUxFX05BTUVdOiBTdXBwb3NpdGlvbk5vZGUsXG4gIFtDT05TVFJVQ1RPUl9SVUxFX05BTUVdOiBDb25zdHJ1Y3Rvck5vZGUsXG4gIFtNRVRBVEhFT1JFTV9SVUxFX05BTUVdOiBNZXRhdGhlb3JlbU5vZGUsXG4gIFtFUVVJVkFMRU5DRV9SVUxFX05BTUVdOiBFcXVpdmFsZW5jZU5vZGUsXG4gIFtBWElPTV9IRUFERVJfUlVMRV9OQU1FXTogQXhpb21IZWFkZXJOb2RlLFxuICBbTEVNTUFfSEVBREVSX1JVTEVfTkFNRV06IExlbW1hSGVhZGVyTm9kZSxcbiAgW1RIRU9SRU1fQk9EWV9SVUxFX05BTUVdOiBUaGVvcmVtQm9keU5vZGUsXG4gIFtNRVRBVkFSSUFCTEVfUlVMRV9OQU1FXTogTWV0YXZhcmlhYmxlTm9kZSxcbiAgW0VRVUlWQUxFTkNFU19SVUxFX05BTUVdOiBFcXVpdmFsZW5jZXNOb2RlLFxuICBbTUVUQV9BUkdVTUVOVF9SVUxFX05BTUVdOiBNZXRhQXJndW1lbnROb2RlLFxuICBbUVVBTElGSUNBVElPTl9SVUxFX05BTUVdOiBRdWFsaWZpY2F0aW9uTm9kZSxcbiAgW1RZUEVfQVNTRVJUSU9OX1JVTEVfTkFNRV06IFR5cGVBc3NlcnRpb25Ob2RlLFxuICBbUFJPQ0VEVVJFX0NBTExfUlVMRV9OQU1FXTogUHJvY2VkdXJlQ2FsbE5vZGUsXG4gIFtTVUJfREVSSVZBVElPTl9SVUxFX05BTUVdOiBTdWJEZXJpdmF0aW9uTm9kZSxcbiAgW1RIRU9SRU1fSEVBREVSX1JVTEVfTkFNRV06IFRoZW9yZW1IZWFkZXJOb2RlLFxuICBbTUVUQV9MRU1NQV9CT0RZX1JVTEVfTkFNRV06IE1ldGFMZW1tYUJvZHlOb2RlLFxuICBbQ09OSkVDVFVSRV9CT0RZX1JVTEVfTkFNRV06IENvbmplY3R1cmVCb2R5Tm9kZSxcbiAgW01FVEFUSEVPUkVNX0JPRFlfUlVMRV9OQU1FXTogTWV0YXRoZW9yZW1Cb2R5Tm9kZSxcbiAgW01FVEFfTEVNTUFfSEVBREVSX1JVTEVfTkFNRV06IE1ldGFMZW1tYUhlYWRlck5vZGUsXG4gIFtDT05KRUNUVVJFX0hFQURFUl9SVUxFX05BTUVdOiBDb25qZWN0dXJlSGVhZGVyTm9kZSxcbiAgW1BST1BFUlRZX1JFTEFUSU9OX1JVTEVfTkFNRV06IFByb3BlcnR5UmVsYXRpb25Ob2RlLFxuICBbREVGSU5FRF9BU1NFUlRJT05fUlVMRV9OQU1FXTogRGVmaW5lZEFzc2VydGlvbk5vZGUsXG4gIFtURVJNX1NVQlNUSVRVVElPTl9SVUxFX05BTUVdOiBUZXJtU3Vic3RpdHV0aW9uTm9kZSxcbiAgW01FVEFUSEVPUkVNX0hFQURFUl9SVUxFX05BTUVdOiBNZXRhdGhlb3JlbUhlYWRlck5vZGUsXG4gIFtTVUJQUk9PRl9BU1NFUlRJT05fUlVMRV9OQU1FXTogU3VicHJvb2ZBc3NlcnRpb25Ob2RlLFxuICBbUFJPUEVSVFlfQVNTRVJUSU9OX1JVTEVfTkFNRV06IFByb3BlcnR5QXNzZXJ0aW9uTm9kZSxcbiAgW0ZSQU1FX1NVQlNUSVRVVElPTl9SVUxFX05BTUVdOiBGcmFtZVN1YnN0aXR1dGlvbk5vZGUsXG4gIFtQUk9DRURVUkVfUkVGRVJFTkNFX1JVTEVfTkFNRV06IFByb2NlZHVyZVJlZmVyZW5jZU5vZGUsXG4gIFtQQVJFTlRIRVNJU0VEX0xBQkVMX1JVTEVfTkFNRV06IFBhcmVudGhlc2lzZWRMYWJlbE5vZGUsXG4gIFtTQVRJU0ZJRVNfQVNTRVJUSU9OX1JVTEVfTkFNRV06IFNhdGlzZmllc0Fzc2VydGlvbk5vZGUsXG4gIFtDT05UQUlORURfQVNTRVJUSU9OX1JVTEVfTkFNRV06IENvbnRhaW5lZEFzc2VydGlvbk5vZGUsXG4gIFtQQVJFTlRIRVNJU0VEX0xBQkVMU19SVUxFX05BTUVdOiBQYXJlbnRoZXNpc2VkTGFiZWxzTm9kZSxcbiAgW1ZBUklBQkxFX0RFQ0xBUkFUSU9OX1JVTEVfTkFNRV06IFZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlLFxuICBbUFJPUEVSVFlfREVDTEFSQVRJT05fUlVMRV9OQU1FXTogUHJvcGVydHlEZWNsYXJhdGlvbk5vZGUsXG4gIFtTVEFURU1FTlRfU1VCU1RJVFVUSU9OX1JVTEVfTkFNRV06IFN0YXRlbWVudFN1YnN0aXR1dGlvbk5vZGUsXG4gIFtSRUZFUkVOQ0VfU1VCU1RJVFVUSU9OX1JVTEVfTkFNRV06IFJlZmVyZW5jZVN1YnN0aXR1dGlvbk5vZGUsXG4gIFtDT01CSU5BVE9SX0RFQ0xBUkFUSU9OX1JVTEVfTkFNRV06IENvbWJpbmF0b3JEZWNsYXJhdGlvbk5vZGUsXG4gIFtTSU1QTEVfVFlQRV9ERUNMQVJBVElPTl9SVUxFX05BTUVdOiBTaW1wbGVUeXBlRGVjbGFyYXRpb25Ob2RlLFxuICBbVFlQRV9QUkVGSVhfREVDTEFSQVRJT05fUlVMRV9OQU1FXTogVHlwZVByZWZpeERlY2xhcmF0aW9uTm9kZSxcbiAgW0NPTlNUUlVDVE9SX0RFQ0xBUkFUSU9OX1JVTEVfTkFNRV06IERvbnN0cnVjdG9yRGVjbGFyYXRpb25Ob2RlLFxuICBbQ09NUExFWF9UWVBFX0RFQ0xBUkFUSU9OX1JVTEVfTkFNRV06IENvbXBsZXhUeXBlRGVjbGFyYXRpb25Ob2RlLFxuICBbTUVUQVZBUklBQkxFX0RFQ0xBUkFUSU9OX1JVTEVfTkFNRV06IE1ldGF2YXJpYWJsZURlY2xhcmF0aW9uTm9kZVxufTtcblxuZXhwb3J0IGRlZmF1bHQgTm9uVGVybWluYWxOb2RlTWFwO1xuIl0sIm5hbWVzIjpbIk5vblRlcm1pbmFsTm9kZU1hcCIsIlJVTEVfUlVMRV9OQU1FIiwiUnVsZU5vZGUiLCJTVEVQX1JVTEVfTkFNRSIsIlN0ZXBOb2RlIiwiVEVSTV9SVUxFX05BTUUiLCJUZXJtTm9kZSIsIlRZUEVfUlVMRV9OQU1FIiwiVHlwZU5vZGUiLCJUWVBFU19SVUxFX05BTUUiLCJUeXBlc05vZGUiLCJFUlJPUl9SVUxFX05BTUUiLCJFcnJvck5vZGUiLCJGUkFNRV9SVUxFX05BTUUiLCJGcmFtZU5vZGUiLCJMRU1NQV9SVUxFX05BTUUiLCJMZW1tYU5vZGUiLCJBWElPTV9SVUxFX05BTUUiLCJBeGlvbU5vZGUiLCJQUk9PRl9SVUxFX05BTUUiLCJQcm9vZk5vZGUiLCJMQUJFTF9SVUxFX05BTUUiLCJMYWJlbE5vZGUiLCJMQUJFTFNfUlVMRV9OQU1FIiwiTGFiZWxzTm9kZSIsIlRIRU9SRU1fUlVMRV9OQU1FIiwiVGhlb3JlbU5vZGUiLCJQUkVNSVNFX1JVTEVfTkFNRSIsIlByZW1pc2VOb2RlIiwiU0VDVElPTl9SVUxFX05BTUUiLCJTZWN0aW9uTm9kZSIsIkFSR1VNRU5UX1JVTEVfTkFNRSIsIkFyZ3VtZW50Tm9kZSIsIlBST1BFUlRZX1JVTEVfTkFNRSIsIlByb3BlcnR5Tm9kZSIsIlNVQlBST09GX1JVTEVfTkFNRSIsIlN1YnByb29mTm9kZSIsIkVRVUFMSVRZX1JVTEVfTkFNRSIsIkVxdWFsaXR5Tm9kZSIsIlZBUklBQkxFX1JVTEVfTkFNRSIsIlZhcmlhYmxlTm9kZSIsIkRPQ1VNRU5UX1JVTEVfTkFNRSIsIkRvY3VtZW50Tm9kZSIsIlJVTEVfQk9EWV9SVUxFX05BTUUiLCJSdWxlQm9keU5vZGUiLCJNRVRBX1RZUEVfUlVMRV9OQU1FIiwiTWV0YVR5cGVOb2RlIiwiU0lHTkFUVVJFX1JVTEVfTkFNRSIsIlNpZ25hdHVyZU5vZGUiLCJSRUZFUkVOQ0VfUlVMRV9OQU1FIiwiUmVmZXJlbmNlTm9kZSIsIkpVREdFTUVOVF9SVUxFX05BTUUiLCJKdWRnZW1lbnROb2RlIiwiREVEVUNUSU9OX1JVTEVfTkFNRSIsIkRlZHVjdGlvbk5vZGUiLCJQQVJBTUVURVJfUlVMRV9OQU1FIiwiUGFyYW1ldGVyTm9kZSIsIlNUQVRFTUVOVF9SVUxFX05BTUUiLCJTdGF0ZW1lbnROb2RlIiwiQVhJT01fQk9EWV9SVUxFX05BTUUiLCJBeGlvbUJvZHlOb2RlIiwiTEVNTUFfQk9EWV9SVUxFX05BTUUiLCJMZW1tYUJvZHlOb2RlIiwiTUVUQV9MRU1NQV9SVUxFX05BTUUiLCJNZXRhTGVtbWFOb2RlIiwiQ09NQklOQVRPUl9SVUxFX05BTUUiLCJDb21iaW5hdG9yTm9kZSIsIkNPTkNMVVNJT05fUlVMRV9OQU1FIiwiQ29uY2x1c2lvbk5vZGUiLCJDT05KRUNUVVJFX1JVTEVfTkFNRSIsIkNvbmplY3R1cmVOb2RlIiwiREVSSVZBVElPTl9SVUxFX05BTUUiLCJEZXJpdmF0aW9uTm9kZSIsIkhZUE9USEVTSVNfUlVMRV9OQU1FIiwiSHlwb3RoZXNpc05vZGUiLCJBU1NVTVBUSU9OX1JVTEVfTkFNRSIsIkFzc3VtcHRpb25Ob2RlIiwiUlVMRV9IRUFERVJfUlVMRV9OQU1FIiwiUnVsZUhlYWRlck5vZGUiLCJUWVBFX1BSRUZJWF9SVUxFX05BTUUiLCJUeXBlUHJlZml4Tm9kZSIsIlBMQUNFSE9MREVSX1JVTEVfTkFNRSIsIlBsYWNlaG9sZGVyTm9kZSIsIlNVUFBPU0lUSU9OX1JVTEVfTkFNRSIsIlN1cHBvc2l0aW9uTm9kZSIsIkNPTlNUUlVDVE9SX1JVTEVfTkFNRSIsIkNvbnN0cnVjdG9yTm9kZSIsIk1FVEFUSEVPUkVNX1JVTEVfTkFNRSIsIk1ldGF0aGVvcmVtTm9kZSIsIkVRVUlWQUxFTkNFX1JVTEVfTkFNRSIsIkVxdWl2YWxlbmNlTm9kZSIsIkFYSU9NX0hFQURFUl9SVUxFX05BTUUiLCJBeGlvbUhlYWRlck5vZGUiLCJMRU1NQV9IRUFERVJfUlVMRV9OQU1FIiwiTGVtbWFIZWFkZXJOb2RlIiwiVEhFT1JFTV9CT0RZX1JVTEVfTkFNRSIsIlRoZW9yZW1Cb2R5Tm9kZSIsIk1FVEFWQVJJQUJMRV9SVUxFX05BTUUiLCJNZXRhdmFyaWFibGVOb2RlIiwiRVFVSVZBTEVOQ0VTX1JVTEVfTkFNRSIsIkVxdWl2YWxlbmNlc05vZGUiLCJNRVRBX0FSR1VNRU5UX1JVTEVfTkFNRSIsIk1ldGFBcmd1bWVudE5vZGUiLCJRVUFMSUZJQ0FUSU9OX1JVTEVfTkFNRSIsIlF1YWxpZmljYXRpb25Ob2RlIiwiVFlQRV9BU1NFUlRJT05fUlVMRV9OQU1FIiwiVHlwZUFzc2VydGlvbk5vZGUiLCJQUk9DRURVUkVfQ0FMTF9SVUxFX05BTUUiLCJQcm9jZWR1cmVDYWxsTm9kZSIsIlNVQl9ERVJJVkFUSU9OX1JVTEVfTkFNRSIsIlN1YkRlcml2YXRpb25Ob2RlIiwiVEhFT1JFTV9IRUFERVJfUlVMRV9OQU1FIiwiVGhlb3JlbUhlYWRlck5vZGUiLCJNRVRBX0xFTU1BX0JPRFlfUlVMRV9OQU1FIiwiTWV0YUxlbW1hQm9keU5vZGUiLCJDT05KRUNUVVJFX0JPRFlfUlVMRV9OQU1FIiwiQ29uamVjdHVyZUJvZHlOb2RlIiwiTUVUQVRIRU9SRU1fQk9EWV9SVUxFX05BTUUiLCJNZXRhdGhlb3JlbUJvZHlOb2RlIiwiTUVUQV9MRU1NQV9IRUFERVJfUlVMRV9OQU1FIiwiTWV0YUxlbW1hSGVhZGVyTm9kZSIsIkNPTkpFQ1RVUkVfSEVBREVSX1JVTEVfTkFNRSIsIkNvbmplY3R1cmVIZWFkZXJOb2RlIiwiUFJPUEVSVFlfUkVMQVRJT05fUlVMRV9OQU1FIiwiUHJvcGVydHlSZWxhdGlvbk5vZGUiLCJERUZJTkVEX0FTU0VSVElPTl9SVUxFX05BTUUiLCJEZWZpbmVkQXNzZXJ0aW9uTm9kZSIsIlRFUk1fU1VCU1RJVFVUSU9OX1JVTEVfTkFNRSIsIlRlcm1TdWJzdGl0dXRpb25Ob2RlIiwiTUVUQVRIRU9SRU1fSEVBREVSX1JVTEVfTkFNRSIsIk1ldGF0aGVvcmVtSGVhZGVyTm9kZSIsIlNVQlBST09GX0FTU0VSVElPTl9SVUxFX05BTUUiLCJTdWJwcm9vZkFzc2VydGlvbk5vZGUiLCJQUk9QRVJUWV9BU1NFUlRJT05fUlVMRV9OQU1FIiwiUHJvcGVydHlBc3NlcnRpb25Ob2RlIiwiRlJBTUVfU1VCU1RJVFVUSU9OX1JVTEVfTkFNRSIsIkZyYW1lU3Vic3RpdHV0aW9uTm9kZSIsIlBST0NFRFVSRV9SRUZFUkVOQ0VfUlVMRV9OQU1FIiwiUHJvY2VkdXJlUmVmZXJlbmNlTm9kZSIsIlBBUkVOVEhFU0lTRURfTEFCRUxfUlVMRV9OQU1FIiwiUGFyZW50aGVzaXNlZExhYmVsTm9kZSIsIlNBVElTRklFU19BU1NFUlRJT05fUlVMRV9OQU1FIiwiU2F0aXNmaWVzQXNzZXJ0aW9uTm9kZSIsIkNPTlRBSU5FRF9BU1NFUlRJT05fUlVMRV9OQU1FIiwiQ29udGFpbmVkQXNzZXJ0aW9uTm9kZSIsIlBBUkVOVEhFU0lTRURfTEFCRUxTX1JVTEVfTkFNRSIsIlBhcmVudGhlc2lzZWRMYWJlbHNOb2RlIiwiVkFSSUFCTEVfREVDTEFSQVRJT05fUlVMRV9OQU1FIiwiVmFyaWFibGVEZWNsYXJhdGlvbk5vZGUiLCJQUk9QRVJUWV9ERUNMQVJBVElPTl9SVUxFX05BTUUiLCJQcm9wZXJ0eURlY2xhcmF0aW9uTm9kZSIsIlNUQVRFTUVOVF9TVUJTVElUVVRJT05fUlVMRV9OQU1FIiwiU3RhdGVtZW50U3Vic3RpdHV0aW9uTm9kZSIsIlJFRkVSRU5DRV9TVUJTVElUVVRJT05fUlVMRV9OQU1FIiwiUmVmZXJlbmNlU3Vic3RpdHV0aW9uTm9kZSIsIkNPTUJJTkFUT1JfREVDTEFSQVRJT05fUlVMRV9OQU1FIiwiQ29tYmluYXRvckRlY2xhcmF0aW9uTm9kZSIsIlNJTVBMRV9UWVBFX0RFQ0xBUkFUSU9OX1JVTEVfTkFNRSIsIlNpbXBsZVR5cGVEZWNsYXJhdGlvbk5vZGUiLCJUWVBFX1BSRUZJWF9ERUNMQVJBVElPTl9SVUxFX05BTUUiLCJUeXBlUHJlZml4RGVjbGFyYXRpb25Ob2RlIiwiQ09OU1RSVUNUT1JfREVDTEFSQVRJT05fUlVMRV9OQU1FIiwiRG9uc3RydWN0b3JEZWNsYXJhdGlvbk5vZGUiLCJDT01QTEVYX1RZUEVfREVDTEFSQVRJT05fUlVMRV9OQU1FIiwiQ29tcGxleFR5cGVEZWNsYXJhdGlvbk5vZGUiLCJNRVRBVkFSSUFCTEVfREVDTEFSQVRJT05fUlVMRV9OQU1FIiwiTWV0YXZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFpUUE7OztlQUFBOzs7MkRBL1BxQjsyREFDQTsyREFDQTsyREFDQTs0REFDQzs0REFDQTs0REFDQTs0REFDQTs0REFDQTs0REFDQTs0REFDQTs2REFDQzs4REFDQzs4REFDQTs4REFDQTsrREFDQzsrREFDQTsrREFDQTsrREFDQTsrREFDQTsrREFDQTsrREFDQTs0REFDQTtnRUFDQztnRUFDQTtnRUFDQTtnRUFDQTtnRUFDQTtnRUFDQTtnRUFDQTs2REFDQTs2REFDQTtpRUFDQztpRUFDQTtpRUFDQTtpRUFDQTtpRUFDQTtpRUFDQTtpRUFDQTs0REFDQTtrRUFDQztrRUFDQTtrRUFDQTtrRUFDQTtrRUFDQTsrREFDQTs2REFDQTs2REFDQTttRUFDQzttRUFDQTttRUFDQTtvRUFDQztvRUFDQTtvRUFDQTsrREFDQTtpRUFDQTs0REFDQTtrRUFDQzttRUFDQztpRUFDQTt1RUFDQzs4REFDQTs0REFDQTtrRUFDQTttRUFDQztnRUFDQTtnRUFDQTs2REFDQTt5RUFDQzt5RUFDQTtnRUFDQTtnRUFDQTsw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
|
|
@@ -21,9 +21,6 @@ _export(exports, {
|
|
|
21
21
|
get instantiateFrameSubstitution () {
|
|
22
22
|
return instantiateFrameSubstitution;
|
|
23
23
|
},
|
|
24
|
-
get instantiateMetavariable () {
|
|
25
|
-
return instantiateMetavariable;
|
|
26
|
-
},
|
|
27
24
|
get instantiateReference () {
|
|
28
25
|
return instantiateReference;
|
|
29
26
|
},
|
|
@@ -41,20 +38,14 @@ _export(exports, {
|
|
|
41
38
|
},
|
|
42
39
|
get instantiateTermSubstitution () {
|
|
43
40
|
return instantiateTermSubstitution;
|
|
44
|
-
},
|
|
45
|
-
get instantiateVariable () {
|
|
46
|
-
return instantiateVariable;
|
|
47
41
|
}
|
|
48
42
|
});
|
|
49
43
|
var _bnf = require("../utilities/bnf");
|
|
50
44
|
var _ruleNames = require("../ruleNames");
|
|
51
|
-
var termPlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.TERM_RULE_NAME),
|
|
45
|
+
var termPlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.TERM_RULE_NAME), referencePlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.REFERENCE_RULE_NAME), statementPlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.STATEMENT_RULE_NAME), combinatorPlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.COMBINATOR_RULE_NAME), constructorPlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.CONSTRUCTOR_RULE_NAME), equivalencePlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.EQUIVALENCE_RULE_NAME), termSubstitutionPlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.TERM_SUBSTITUTION_RULE_NAME), frameSubstitutionPlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.FRAME_SUBSTITUTION_RULE_NAME), statementSubstitutionPlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.STATEMENT_SUBSTITUTION_RULE_NAME), referenceSubstitutionPlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.REFERENCE_SUBSTITUTION_RULE_NAME);
|
|
52
46
|
function instantiateTerm(string, context) {
|
|
53
47
|
return instantiate(termPlaceholderRule, string, context);
|
|
54
48
|
}
|
|
55
|
-
function instantiateVariable(string, context) {
|
|
56
|
-
return instantiate(variablePlaceholderRule, string, context);
|
|
57
|
-
}
|
|
58
49
|
function instantiateReference(string, context) {
|
|
59
50
|
return instantiate(referencePlaceholderRule, string, context);
|
|
60
51
|
}
|
|
@@ -70,9 +61,6 @@ function instantiateConstructor(string, context) {
|
|
|
70
61
|
function instantiateEquivalence(string, context) {
|
|
71
62
|
return instantiate(equivalencePlaceholderRule, string, context);
|
|
72
63
|
}
|
|
73
|
-
function instantiateMetavariable(string, context) {
|
|
74
|
-
return instantiate(metavariablePlaceholderRule, string, context);
|
|
75
|
-
}
|
|
76
64
|
function instantiateTermSubstitution(string, context) {
|
|
77
65
|
return instantiate(termSubstitutionPlaceholderRule, string, context);
|
|
78
66
|
}
|
|
@@ -99,4 +87,4 @@ function instantiate(placeholderRule, string, context) {
|
|
|
99
87
|
return node;
|
|
100
88
|
}
|
|
101
89
|
|
|
102
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
90
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm9jZXNzL2luc3RhbnRpYXRlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBydWxlRnJvbVJ1bGVOYW1lIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9ibmZcIjtcbmltcG9ydCB7IFRFUk1fUlVMRV9OQU1FLFxuICAgICAgICAgUkVGRVJFTkNFX1JVTEVfTkFNRSxcbiAgICAgICAgIFNUQVRFTUVOVF9SVUxFX05BTUUsXG4gICAgICAgICBDT01CSU5BVE9SX1JVTEVfTkFNRSxcbiAgICAgICAgIENPTlNUUlVDVE9SX1JVTEVfTkFNRSxcbiAgICAgICAgIEVRVUlWQUxFTkNFX1JVTEVfTkFNRSxcbiAgICAgICAgIFRFUk1fU1VCU1RJVFVUSU9OX1JVTEVfTkFNRSxcbiAgICAgICAgIEZSQU1FX1NVQlNUSVRVVElPTl9SVUxFX05BTUUsXG4gICAgICAgICBTVEFURU1FTlRfU1VCU1RJVFVUSU9OX1JVTEVfTkFNRSxcbiAgICAgICAgIFJFRkVSRU5DRV9TVUJTVElUVVRJT05fUlVMRV9OQU1FIH0gZnJvbSBcIi4uL3J1bGVOYW1lc1wiO1xuXG5jb25zdCB0ZXJtUGxhY2Vob2xkZXJSdWxlID0gcnVsZUZyb21SdWxlTmFtZShURVJNX1JVTEVfTkFNRSksXG4gICAgICByZWZlcmVuY2VQbGFjZWhvbGRlclJ1bGUgPSBydWxlRnJvbVJ1bGVOYW1lKFJFRkVSRU5DRV9SVUxFX05BTUUpLFxuICAgICAgc3RhdGVtZW50UGxhY2Vob2xkZXJSdWxlID0gcnVsZUZyb21SdWxlTmFtZShTVEFURU1FTlRfUlVMRV9OQU1FKSxcbiAgICAgIGNvbWJpbmF0b3JQbGFjZWhvbGRlclJ1bGUgPSBydWxlRnJvbVJ1bGVOYW1lKENPTUJJTkFUT1JfUlVMRV9OQU1FKSxcbiAgICAgIGNvbnN0cnVjdG9yUGxhY2Vob2xkZXJSdWxlID0gcnVsZUZyb21SdWxlTmFtZShDT05TVFJVQ1RPUl9SVUxFX05BTUUpLFxuICAgICAgZXF1aXZhbGVuY2VQbGFjZWhvbGRlclJ1bGUgPSBydWxlRnJvbVJ1bGVOYW1lKEVRVUlWQUxFTkNFX1JVTEVfTkFNRSksXG4gICAgICB0ZXJtU3Vic3RpdHV0aW9uUGxhY2Vob2xkZXJSdWxlID0gcnVsZUZyb21SdWxlTmFtZShURVJNX1NVQlNUSVRVVElPTl9SVUxFX05BTUUpLFxuICAgICAgZnJhbWVTdWJzdGl0dXRpb25QbGFjZWhvbGRlclJ1bGUgPSBydWxlRnJvbVJ1bGVOYW1lKEZSQU1FX1NVQlNUSVRVVElPTl9SVUxFX05BTUUpLFxuICAgICAgc3RhdGVtZW50U3Vic3RpdHV0aW9uUGxhY2Vob2xkZXJSdWxlID0gcnVsZUZyb21SdWxlTmFtZShTVEFURU1FTlRfU1VCU1RJVFVUSU9OX1JVTEVfTkFNRSksXG4gICAgICByZWZlcmVuY2VTdWJzdGl0dXRpb25QbGFjZWhvbGRlclJ1bGUgPSBydWxlRnJvbVJ1bGVOYW1lKFJFRkVSRU5DRV9TVUJTVElUVVRJT05fUlVMRV9OQU1FKTtcblxuZXhwb3J0IGZ1bmN0aW9uIGluc3RhbnRpYXRlVGVybShzdHJpbmcsIGNvbnRleHQpIHsgcmV0dXJuIGluc3RhbnRpYXRlKHRlcm1QbGFjZWhvbGRlclJ1bGUsIHN0cmluZywgY29udGV4dCk7IH1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc3RhbnRpYXRlUmVmZXJlbmNlKHN0cmluZywgY29udGV4dCkgeyByZXR1cm4gaW5zdGFudGlhdGUocmVmZXJlbmNlUGxhY2Vob2xkZXJSdWxlLCBzdHJpbmcsIGNvbnRleHQpOyB9XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnN0YW50aWF0ZVN0YXRlbWVudChzdHJpbmcsIGNvbnRleHQpIHsgcmV0dXJuIGluc3RhbnRpYXRlKHN0YXRlbWVudFBsYWNlaG9sZGVyUnVsZSwgc3RyaW5nLCBjb250ZXh0KTsgfVxuXG5leHBvcnQgZnVuY3Rpb24gaW5zdGFudGlhdGVDb21iaW5hdG9yKHN0cmluZywgY29udGV4dCkgeyByZXR1cm4gaW5zdGFudGlhdGUoY29tYmluYXRvclBsYWNlaG9sZGVyUnVsZSwgc3RyaW5nLCBjb250ZXh0KTsgfVxuXG5leHBvcnQgZnVuY3Rpb24gaW5zdGFudGlhdGVDb25zdHJ1Y3RvcihzdHJpbmcsIGNvbnRleHQpIHsgcmV0dXJuIGluc3RhbnRpYXRlKGNvbnN0cnVjdG9yUGxhY2Vob2xkZXJSdWxlLCBzdHJpbmcsIGNvbnRleHQpOyB9XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnN0YW50aWF0ZUVxdWl2YWxlbmNlKHN0cmluZywgY29udGV4dCkgeyByZXR1cm4gaW5zdGFudGlhdGUoZXF1aXZhbGVuY2VQbGFjZWhvbGRlclJ1bGUsIHN0cmluZywgY29udGV4dCk7IH1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc3RhbnRpYXRlVGVybVN1YnN0aXR1dGlvbihzdHJpbmcsIGNvbnRleHQpIHsgcmV0dXJuIGluc3RhbnRpYXRlKHRlcm1TdWJzdGl0dXRpb25QbGFjZWhvbGRlclJ1bGUsIHN0cmluZywgY29udGV4dCk7IH1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc3RhbnRpYXRlRnJhbWVTdWJzdGl0dXRpb24oc3RyaW5nLCBjb250ZXh0KSB7IHJldHVybiBpbnN0YW50aWF0ZShmcmFtZVN1YnN0aXR1dGlvblBsYWNlaG9sZGVyUnVsZSwgc3RyaW5nLCBjb250ZXh0KTsgfVxuXG5leHBvcnQgZnVuY3Rpb24gaW5zdGFudGlhdGVTdGF0ZW1lbnRTdWJzdGl0dXRpb24oc3RyaW5nLCBjb250ZXh0KSB7IHJldHVybiBpbnN0YW50aWF0ZShzdGF0ZW1lbnRTdWJzdGl0dXRpb25QbGFjZWhvbGRlclJ1bGUsIHN0cmluZywgY29udGV4dCk7IH1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc3RhbnRpYXRlUmVmZXJlbmNlU3Vic3RpdHV0aW9uKHN0cmluZywgY29udGV4dCkgeyByZXR1cm4gaW5zdGFudGlhdGUocmVmZXJlbmNlU3Vic3RpdHV0aW9uUGxhY2Vob2xkZXJSdWxlLCBzdHJpbmcsIGNvbnRleHQpOyB9XG5cbmZ1bmN0aW9uIGluc3RhbnRpYXRlKHBsYWNlaG9sZGVyUnVsZSwgc3RyaW5nLCBjb250ZXh0KSB7XG4gIGxldCBub2RlO1xuXG4gIGNvbnN0IGxleGVyID0gY29udGV4dC5nZXRMZXhlcigpLFxuICAgICAgICBwYXJzZXIgPSBjb250ZXh0LmdldFBhcnNlcigpLFxuICAgICAgICBjb250ZW50ID0gYCR7c3RyaW5nfVxuYCxcbiAgICAgICAgdG9rZW5zID0gbGV4ZXIudG9rZW5pc2UoY29udGVudCk7XG5cbiAgY29udGV4dC5zZXRUb2tlbnModG9rZW5zKTtcblxuICBjb25zdCBzdGFydFJ1bGUgPSBwbGFjZWhvbGRlclJ1bGU7ICAvLy9cblxuICBub2RlID0gcGFyc2VyLnBhcnNlKHRva2Vucywgc3RhcnRSdWxlKTtcblxuICBjb25zdCBub25UZXJtaW5hbE5vZGUgPSBub2RlOyAvLy9cblxuICBub25UZXJtaW5hbE5vZGUuc29tZUNoaWxkTm9kZSgoY2hpbGROb2RlKSA9PiB7XG4gICAgbm9kZSA9IGNoaWxkTm9kZTsgLy8vXG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSk7XG5cbiAgcmV0dXJuIG5vZGU7XG59XG4iXSwibmFtZXMiOlsiaW5zdGFudGlhdGVDb21iaW5hdG9yIiwiaW5zdGFudGlhdGVDb25zdHJ1Y3RvciIsImluc3RhbnRpYXRlRXF1aXZhbGVuY2UiLCJpbnN0YW50aWF0ZUZyYW1lU3Vic3RpdHV0aW9uIiwiaW5zdGFudGlhdGVSZWZlcmVuY2UiLCJpbnN0YW50aWF0ZVJlZmVyZW5jZVN1YnN0aXR1dGlvbiIsImluc3RhbnRpYXRlU3RhdGVtZW50IiwiaW5zdGFudGlhdGVTdGF0ZW1lbnRTdWJzdGl0dXRpb24iLCJpbnN0YW50aWF0ZVRlcm0iLCJpbnN0YW50aWF0ZVRlcm1TdWJzdGl0dXRpb24iLCJ0ZXJtUGxhY2Vob2xkZXJSdWxlIiwicnVsZUZyb21SdWxlTmFtZSIsIlRFUk1fUlVMRV9OQU1FIiwicmVmZXJlbmNlUGxhY2Vob2xkZXJSdWxlIiwiUkVGRVJFTkNFX1JVTEVfTkFNRSIsInN0YXRlbWVudFBsYWNlaG9sZGVyUnVsZSIsIlNUQVRFTUVOVF9SVUxFX05BTUUiLCJjb21iaW5hdG9yUGxhY2Vob2xkZXJSdWxlIiwiQ09NQklOQVRPUl9SVUxFX05BTUUiLCJjb25zdHJ1Y3RvclBsYWNlaG9sZGVyUnVsZSIsIkNPTlNUUlVDVE9SX1JVTEVfTkFNRSIsImVxdWl2YWxlbmNlUGxhY2Vob2xkZXJSdWxlIiwiRVFVSVZBTEVOQ0VfUlVMRV9OQU1FIiwidGVybVN1YnN0aXR1dGlvblBsYWNlaG9sZGVyUnVsZSIsIlRFUk1fU1VCU1RJVFVUSU9OX1JVTEVfTkFNRSIsImZyYW1lU3Vic3RpdHV0aW9uUGxhY2Vob2xkZXJSdWxlIiwiRlJBTUVfU1VCU1RJVFVUSU9OX1JVTEVfTkFNRSIsInN0YXRlbWVudFN1YnN0aXR1dGlvblBsYWNlaG9sZGVyUnVsZSIsIlNUQVRFTUVOVF9TVUJTVElUVVRJT05fUlVMRV9OQU1FIiwicmVmZXJlbmNlU3Vic3RpdHV0aW9uUGxhY2Vob2xkZXJSdWxlIiwiUkVGRVJFTkNFX1NVQlNUSVRVVElPTl9SVUxFX05BTUUiLCJzdHJpbmciLCJjb250ZXh0IiwiaW5zdGFudGlhdGUiLCJwbGFjZWhvbGRlclJ1bGUiLCJub2RlIiwibGV4ZXIiLCJnZXRMZXhlciIsInBhcnNlciIsImdldFBhcnNlciIsImNvbnRlbnQiLCJ0b2tlbnMiLCJ0b2tlbmlzZSIsInNldFRva2VucyIsInN0YXJ0UnVsZSIsInBhcnNlIiwibm9uVGVybWluYWxOb2RlIiwic29tZUNoaWxkTm9kZSIsImNoaWxkTm9kZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O1FBK0JnQkE7ZUFBQUE7O1FBRUFDO2VBQUFBOztRQUVBQztlQUFBQTs7UUFJQUM7ZUFBQUE7O1FBWkFDO2VBQUFBOztRQWdCQUM7ZUFBQUE7O1FBZEFDO2VBQUFBOztRQVlBQztlQUFBQTs7UUFoQkFDO2VBQUFBOztRQVlBQztlQUFBQTs7O21CQW5DaUI7eUJBVWdCO0FBRWpELElBQU1DLHNCQUFzQkMsSUFBQUEscUJBQWdCLEVBQUNDLHlCQUFjLEdBQ3JEQywyQkFBMkJGLElBQUFBLHFCQUFnQixFQUFDRyw4QkFBbUIsR0FDL0RDLDJCQUEyQkosSUFBQUEscUJBQWdCLEVBQUNLLDhCQUFtQixHQUMvREMsNEJBQTRCTixJQUFBQSxxQkFBZ0IsRUFBQ08sK0JBQW9CLEdBQ2pFQyw2QkFBNkJSLElBQUFBLHFCQUFnQixFQUFDUyxnQ0FBcUIsR0FDbkVDLDZCQUE2QlYsSUFBQUEscUJBQWdCLEVBQUNXLGdDQUFxQixHQUNuRUMsa0NBQWtDWixJQUFBQSxxQkFBZ0IsRUFBQ2Esc0NBQTJCLEdBQzlFQyxtQ0FBbUNkLElBQUFBLHFCQUFnQixFQUFDZSx1Q0FBNEIsR0FDaEZDLHVDQUF1Q2hCLElBQUFBLHFCQUFnQixFQUFDaUIsMkNBQWdDLEdBQ3hGQyx1Q0FBdUNsQixJQUFBQSxxQkFBZ0IsRUFBQ21CLDJDQUFnQztBQUV2RixTQUFTdEIsZ0JBQWdCdUIsTUFBTSxFQUFFQyxPQUFPO0lBQUksT0FBT0MsWUFBWXZCLHFCQUFxQnFCLFFBQVFDO0FBQVU7QUFFdEcsU0FBUzVCLHFCQUFxQjJCLE1BQU0sRUFBRUMsT0FBTztJQUFJLE9BQU9DLFlBQVlwQiwwQkFBMEJrQixRQUFRQztBQUFVO0FBRWhILFNBQVMxQixxQkFBcUJ5QixNQUFNLEVBQUVDLE9BQU87SUFBSSxPQUFPQyxZQUFZbEIsMEJBQTBCZ0IsUUFBUUM7QUFBVTtBQUVoSCxTQUFTaEMsc0JBQXNCK0IsTUFBTSxFQUFFQyxPQUFPO0lBQUksT0FBT0MsWUFBWWhCLDJCQUEyQmMsUUFBUUM7QUFBVTtBQUVsSCxTQUFTL0IsdUJBQXVCOEIsTUFBTSxFQUFFQyxPQUFPO0lBQUksT0FBT0MsWUFBWWQsNEJBQTRCWSxRQUFRQztBQUFVO0FBRXBILFNBQVM5Qix1QkFBdUI2QixNQUFNLEVBQUVDLE9BQU87SUFBSSxPQUFPQyxZQUFZWiw0QkFBNEJVLFFBQVFDO0FBQVU7QUFFcEgsU0FBU3ZCLDRCQUE0QnNCLE1BQU0sRUFBRUMsT0FBTztJQUFJLE9BQU9DLFlBQVlWLGlDQUFpQ1EsUUFBUUM7QUFBVTtBQUU5SCxTQUFTN0IsNkJBQTZCNEIsTUFBTSxFQUFFQyxPQUFPO0lBQUksT0FBT0MsWUFBWVIsa0NBQWtDTSxRQUFRQztBQUFVO0FBRWhJLFNBQVN6QixpQ0FBaUN3QixNQUFNLEVBQUVDLE9BQU87SUFBSSxPQUFPQyxZQUFZTixzQ0FBc0NJLFFBQVFDO0FBQVU7QUFFeEksU0FBUzNCLGlDQUFpQzBCLE1BQU0sRUFBRUMsT0FBTztJQUFJLE9BQU9DLFlBQVlKLHNDQUFzQ0UsUUFBUUM7QUFBVTtBQUUvSSxTQUFTQyxZQUFZQyxlQUFlLEVBQUVILE1BQU0sRUFBRUMsT0FBTztJQUNuRCxJQUFJRztJQUVKLElBQU1DLFFBQVFKLFFBQVFLLFFBQVEsSUFDeEJDLFNBQVNOLFFBQVFPLFNBQVMsSUFDMUJDLFVBQVUsQUFBQyxHQUFTLE9BQVBULFFBQU8sT0FFcEJVLFNBQVNMLE1BQU1NLFFBQVEsQ0FBQ0Y7SUFFOUJSLFFBQVFXLFNBQVMsQ0FBQ0Y7SUFFbEIsSUFBTUcsWUFBWVYsaUJBQWtCLEdBQUc7SUFFdkNDLE9BQU9HLE9BQU9PLEtBQUssQ0FBQ0osUUFBUUc7SUFFNUIsSUFBTUUsa0JBQWtCWCxNQUFNLEdBQUc7SUFFakNXLGdCQUFnQkMsYUFBYSxDQUFDLFNBQUNDO1FBQzdCYixPQUFPYSxXQUFXLEdBQUc7UUFFckIsT0FBTztJQUNUO0lBRUEsT0FBT2I7QUFDVCJ9
|
package/lib/process/unify.js
CHANGED
|
@@ -545,14 +545,14 @@ _define_property(IntrinsicLevelPass, "maps", [
|
|
|
545
545
|
{
|
|
546
546
|
generalNodeQuery: termVariableNodeQuery,
|
|
547
547
|
specificNodeQuery: termNodeQuery,
|
|
548
|
-
run: function(generalTermVariableNode, specificTermNode,
|
|
548
|
+
run: function(generalTermVariableNode, specificTermNode, generalContext, specificContext) {
|
|
549
549
|
var success = false;
|
|
550
550
|
var termNode = specificTermNode, variableNode = generalTermVariableNode, variableIdentifier = variableNode.getVariableIdentifier();
|
|
551
551
|
var context;
|
|
552
552
|
context = generalContext; ///
|
|
553
553
|
var variable = context.findVariableByVariableIdentifier(variableIdentifier);
|
|
554
554
|
context = specificContext; ///
|
|
555
|
-
var term = context.findTermByTermNode(termNode), termUnifies = variable.unifyTerm(term,
|
|
555
|
+
var term = context.findTermByTermNode(termNode), termUnifies = variable.unifyTerm(term, generalContext, specificContext);
|
|
556
556
|
if (termUnifies) {
|
|
557
557
|
success = true;
|
|
558
558
|
}
|
|
@@ -609,13 +609,13 @@ function unifyStatementWithCombinator(statement, combinator, assignments, stated
|
|
|
609
609
|
}
|
|
610
610
|
return statementUnifiesWithCombinator;
|
|
611
611
|
}
|
|
612
|
-
function unifyMetavariableIntrinsically(generalMetavariable, specificMetavariable,
|
|
612
|
+
function unifyMetavariableIntrinsically(generalMetavariable, specificMetavariable, generalContext, specificContext) {
|
|
613
613
|
var metavariableUnifiesIntrinsically = false;
|
|
614
|
-
var generalMetavariableNode = generalMetavariable.getNode(), specificMetavariableNode = specificMetavariable.getNode(), generalNode = generalMetavariableNode, specificNode = specificMetavariableNode, success = intrinsicLevelPass.run(generalNode, specificNode,
|
|
614
|
+
var generalMetavariableNode = generalMetavariable.getNode(), specificMetavariableNode = specificMetavariable.getNode(), generalNode = generalMetavariableNode, specificNode = specificMetavariableNode, success = intrinsicLevelPass.run(generalNode, specificNode, generalContext, specificContext);
|
|
615
615
|
if (success) {
|
|
616
616
|
metavariableUnifiesIntrinsically = true;
|
|
617
617
|
}
|
|
618
618
|
return metavariableUnifiesIntrinsically;
|
|
619
619
|
}
|
|
620
620
|
|
|
621
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm9jZXNzL3VuaWZ5LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBub2RlUXVlcnkgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3F1ZXJ5XCI7XG5pbXBvcnQgeyBmaW5kTWV0YVR5cGVCeU1ldGFUeXBlTmFtZSB9IGZyb20gXCIuLi9tZXRhVHlwZXNcIjtcbmltcG9ydCB7IHRlcm1Gcm9tVGVybU5vZGUsIGZyYW1lRnJvbUZyYW1lTm9kZSwgc3RhdGVtZW50RnJvbVN0YXRlbWVudE5vZGUgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2VsZW1lbnRcIjtcbmltcG9ydCB7IHRlcm1pbmFsTm9kZU1hcEZyb21Ob2RlcywgYXJlVGVybWluYWxOb2RlTWFwc0VxdWFsLCBpc0xhc3RSZW1haW5pbmdBcmd1bWVudEZ1bmN0aW9uIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9wYXNzXCI7XG5cbmNvbnN0IG5vblRlcm1pbmFsTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiLypcIik7XG5cbmNvbnN0IHR5cGVOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvdHlwZVwiKSxcbiAgICAgIHRlcm1Ob2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvdGVybVwiKSxcbiAgICAgIGZyYW1lTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL2ZyYW1lXCIpLFxuICAgICAgbWV0YVR5cGVOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvbWV0YVR5cGVcIiksXG4gICAgICBzdGF0ZW1lbnROb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvc3RhdGVtZW50XCIpLFxuICAgICAgdGVybVZhcmlhYmxlTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3Rlcm0vdmFyaWFibGUhXCIpLFxuICAgICAgc3RhdGVtZW50TWV0YXZhcmlhYmxlTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3N0YXRlbWVudC9tZXRhdmFyaWFibGUhXCIpLFxuICAgICAgYXNzdW1wdGlvbk1ldGF2YXJpYWJsZU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9hc3N1bXB0aW9uL21ldGF2YXJpYWJsZSFcIiksXG4gICAgICBmcmFtZUFzc3VtcHRpb25NZXRhdmFyaWFibGVOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvZnJhbWUvYXNzdW1wdGlvbiEvbWV0YXZhcmlhYmxlIVwiKTtcblxuY2xhc3MgUGFzcyB7XG4gIHJ1bihnZW5lcmFsTm9kZSwgc3BlY2lmaWNOb2RlLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcbiAgICBsZXQgc3VjY2VzcztcblxuICAgIGNvbnN0IHZpc2l0ZWQgPSB0aGlzLnZpc2l0Tm9kZShnZW5lcmFsTm9kZSwgc3BlY2lmaWNOb2RlLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpO1xuXG4gICAgc3VjY2VzcyA9IHZpc2l0ZWQ7ICAvLy9cblxuICAgIHJldHVybiBzdWNjZXNzO1xuICB9XG5cbiAgZGVzY2VuZChnZW5lcmFsQ2hpbGROb2Rlcywgc3BlY2lmaWNDaGlsZE5vZGVzLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcbiAgICBsZXQgZGVzY2VuZGVkID0gZmFsc2U7XG5cbiAgICBjb25zdCBnZW5lcmFsQ2hpbGROb2Rlc0xlbmd0aCA9IGdlbmVyYWxDaGlsZE5vZGVzLmxlbmd0aCxcbiAgICAgICAgICBzcGVjaWZpY0NoaWxkTm9kZXNMZW5ndGggPSBzcGVjaWZpY0NoaWxkTm9kZXMubGVuZ3RoO1xuXG4gICAgaWYgKGdlbmVyYWxDaGlsZE5vZGVzTGVuZ3RoID09PSBzcGVjaWZpY0NoaWxkTm9kZXNMZW5ndGgpIHtcbiAgICAgIGNvbnN0IHNwZWNpZmljVGVybWluYWxOb2RlTWFwID0gdGVybWluYWxOb2RlTWFwRnJvbU5vZGVzKHNwZWNpZmljQ2hpbGROb2RlcyksXG4gICAgICAgICAgICBnZW5lcmFsVGVybWluYWxOb2RlTWFwID0gdGVybWluYWxOb2RlTWFwRnJvbU5vZGVzKGdlbmVyYWxDaGlsZE5vZGVzKSxcbiAgICAgICAgICAgIHRlcm1pbmFsTm9kZU1hcHNFcXVhbCA9IGFyZVRlcm1pbmFsTm9kZU1hcHNFcXVhbChnZW5lcmFsVGVybWluYWxOb2RlTWFwLCBzcGVjaWZpY1Rlcm1pbmFsTm9kZU1hcCk7XG5cbiAgICAgIGlmICh0ZXJtaW5hbE5vZGVNYXBzRXF1YWwpIHtcbiAgICAgICAgY29uc3QgbGFzdFJlbWFpbmluZ0FyZ3VtZW50RnVuY3Rpb24gPSBpc0xhc3RSZW1haW5pbmdBcmd1bWVudEZ1bmN0aW9uKHJlbWFpbmluZ0FyZ3VtZW50cyk7XG5cbiAgICAgICAgaWYgKGxhc3RSZW1haW5pbmdBcmd1bWVudEZ1bmN0aW9uKSB7XG4gICAgICAgICAgY29uc3QgaW5kZXggPSAwLFxuICAgICAgICAgICAgICAgIGRlc2NlbmRlZEFoZWFkID0gdGhpcy5kZXNjZW5kQWhlYWQoaW5kZXgsIGdlbmVyYWxDaGlsZE5vZGVzLCBzcGVjaWZpY0NoaWxkTm9kZXMsLi4ucmVtYWluaW5nQXJndW1lbnRzKTtcblxuICAgICAgICAgIGlmIChkZXNjZW5kZWRBaGVhZCkge1xuICAgICAgICAgICAgZGVzY2VuZGVkID0gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc3QgdmlzaXRlZCA9IGdlbmVyYWxDaGlsZE5vZGVzLmV2ZXJ5KChnZW5lcmFsQ2hpbGROb2RlLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgY29uc3Qgc3BlY2lmaWNDaGlsZE5vZGUgPSBzcGVjaWZpY0NoaWxkTm9kZXNbaW5kZXhdLFxuICAgICAgICAgICAgICAgICAgc3BlY2lmaWNOb2RlID0gc3BlY2lmaWNDaGlsZE5vZGUsIC8vL1xuICAgICAgICAgICAgICAgICAgZ2VuZXJhbE5vZGUgPSBnZW5lcmFsQ2hpbGROb2RlLCAvLy9cbiAgICAgICAgICAgICAgICAgIHZpc2l0ZWQgPSB0aGlzLnZpc2l0Tm9kZShnZW5lcmFsTm9kZSwgc3BlY2lmaWNOb2RlLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpO1xuXG4gICAgICAgICAgICBpZiAodmlzaXRlZCkge1xuICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIGlmICh2aXNpdGVkKSB7XG4gICAgICAgICAgICBkZXNjZW5kZWQgPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBkZXNjZW5kZWQ7XG4gIH1cblxuICBkZXNjZW5kQWhlYWQoaW5kZXgsIGdlbmVyYWxDaGlsZE5vZGVzLCBzcGVjaWZpY0NoaWxkTm9kZXMsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cykge1xuICAgIGxldCBkZXNjZW5kZWRBaGVhZCA9IGZhbHNlO1xuXG4gICAgY29uc3QgZGVzY2VuZEFoZWFkID0gcmVtYWluaW5nQXJndW1lbnRzLnBvcCgpLCAvLy9cbiAgICAgICAgICBnZW5lcmFsQ2hpbGROb2Rlc0xlbmd0aCA9IGdlbmVyYWxDaGlsZE5vZGVzLmxlbmd0aDtcblxuICAgIGlmIChpbmRleCA9PT0gZ2VuZXJhbENoaWxkTm9kZXNMZW5ndGgpIHtcbiAgICAgIGRlc2NlbmRlZEFoZWFkID0gZGVzY2VuZEFoZWFkKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGdlbmVyYWxDaGlsZE5vZGUgPSBnZW5lcmFsQ2hpbGROb2Rlc1tpbmRleF0sXG4gICAgICAgICAgICBzcGVjaWZpY0NoaWxkTm9kZSA9IHNwZWNpZmljQ2hpbGROb2Rlc1tpbmRleF0sXG4gICAgICAgICAgICBnZW5lcmFsTm9kZSA9IGdlbmVyYWxDaGlsZE5vZGUsIC8vL1xuICAgICAgICAgICAgc3BlY2lmaWNOb2RlID0gc3BlY2lmaWNDaGlsZE5vZGUsIC8vL1xuICAgICAgICAgICAgdmlzaXRlZCA9IHRoaXMudmlzaXROb2RlKGdlbmVyYWxOb2RlLCBzcGVjaWZpY05vZGUsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cywgKCkgPT4ge1xuICAgICAgICAgICAgICByZW1haW5pbmdBcmd1bWVudHMucHVzaChkZXNjZW5kQWhlYWQpOyAvLy9cblxuICAgICAgICAgICAgICBjb25zdCBhaGVhZEluZGV4ID0gaW5kZXggKyAxLFxuICAgICAgICAgICAgICAgICAgICBkZXNjZW5kZWRBaGVhZCA9IHRoaXMuZGVzY2VuZEFoZWFkKGFoZWFkSW5kZXgsIGdlbmVyYWxDaGlsZE5vZGVzLCBzcGVjaWZpY0NoaWxkTm9kZXMsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cyk7XG5cbiAgICAgICAgICAgICAgcmV0dXJuIGRlc2NlbmRlZEFoZWFkO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgIGlmICh2aXNpdGVkKSB7XG4gICAgICAgIGRlc2NlbmRlZEFoZWFkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZGVzY2VuZGVkQWhlYWQ7XG4gIH1cblxuICB2aXNpdE5vZGUoZ2VuZXJhbE5vZGUsIHNwZWNpZmljTm9kZSwgLi4ucmVtYWluaW5nQXJndW1lbnRzKSB7XG4gICAgbGV0IHZpc2l0ZWQgPSBmYWxzZTtcblxuICAgIGNvbnN0IGdlbmVyYWxOb2RlVGVybWluYWxOb2RlID0gZ2VuZXJhbE5vZGUuaXNUZXJtaW5hbE5vZGUoKSxcbiAgICAgICAgICBzcGVjaWZpY05vZGVUZXJtaW5hbE5vZGUgPSBzcGVjaWZpY05vZGUuaXNUZXJtaW5hbE5vZGUoKSxcbiAgICAgICAgICBnZW5lcmFsTm9kZU5vblRlcm1pbmFsTm9kZSA9IGdlbmVyYWxOb2RlLmlzTm9uVGVybWluYWxOb2RlKCksXG4gICAgICAgICAgc3BlY2lmaWNOb2RlTm9uVGVybWluYWxOb2RlID0gc3BlY2lmaWNOb2RlLmlzTm9uVGVybWluYWxOb2RlKCk7XG5cbiAgICBpZiAoZmFsc2UpIHtcbiAgICAgIC8vL1xuICAgIH0gZWxzZSBpZiAoZ2VuZXJhbE5vZGVUZXJtaW5hbE5vZGUgJiYgc3BlY2lmaWNOb2RlVGVybWluYWxOb2RlKSB7XG4gICAgICBjb25zdCBnZW5lcmFsVGVybWluYWxOb2RlID0gZ2VuZXJhbE5vZGUsICAvLy9cbiAgICAgICAgICAgIHNwZWNpZmljVGVybWluYWxOb2RlID0gc3BlY2lmaWNOb2RlOyAgLy8vXG5cbiAgICAgIHZpc2l0ZWQgPSB0aGlzLnZpc2l0VGVybWluYWxOb2RlKGdlbmVyYWxUZXJtaW5hbE5vZGUsIHNwZWNpZmljVGVybWluYWxOb2RlLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpO1xuICAgIH0gZWxzZSBpZiAoZ2VuZXJhbE5vZGVOb25UZXJtaW5hbE5vZGUgJiYgc3BlY2lmaWNOb2RlTm9uVGVybWluYWxOb2RlKSB7XG4gICAgICBjb25zdCBnZW5lcmFsTm9uVGVybWluYWxOb2RlID0gZ2VuZXJhbE5vZGUsICAvLy9cbiAgICAgICAgICAgIHNwZWNpZmljTm9uVGVybWluYWxOb2RlID0gc3BlY2lmaWNOb2RlOyAvLy9cblxuICAgICAgdmlzaXRlZCA9IHRoaXMudmlzaXROb25UZXJtaW5hbE5vZGUoZ2VuZXJhbE5vblRlcm1pbmFsTm9kZSwgc3BlY2lmaWNOb25UZXJtaW5hbE5vZGUsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZpc2l0ZWQ7XG4gIH1cblxuICB2aXNpdFRlcm1pbmFsTm9kZShnZW5lcmFsVGVybWluYWxOb2RlLCBzcGVjaWZpY1Rlcm1pbmFsTm9kZSwgLi4ucmVtYWluaW5nQXJndW1lbnRzKSB7IC8vL1xuICAgIGxldCB2aXNpdGVkID0gZmFsc2U7XG5cbiAgICBjb25zdCBsYXN0UmVtYWluaW5nQXJndW1lbnRGdW5jdGlvbiA9IGlzTGFzdFJlbWFpbmluZ0FyZ3VtZW50RnVuY3Rpb24ocmVtYWluaW5nQXJndW1lbnRzKTtcblxuICAgIGlmIChsYXN0UmVtYWluaW5nQXJndW1lbnRGdW5jdGlvbikge1xuICAgICAgY29uc3QgZGVzY2VuZEFoZWFkID0gcmVtYWluaW5nQXJndW1lbnRzLnBvcCgpLFxuICAgICAgICAgICAgZGVzY2VuZGVkQWhlYWQgPSBkZXNjZW5kQWhlYWQoKTtcblxuICAgICAgaWYgKGRlc2NlbmRBaGVhZCkge1xuICAgICAgICB2aXNpdGVkID0gZGVzY2VuZGVkQWhlYWQ7ICAvLy9cbiAgICAgIH1cblxuICAgICAgcmVtYWluaW5nQXJndW1lbnRzLnB1c2goZGVzY2VuZEFoZWFkKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdmlzaXRlZCA9IHRydWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZpc2l0ZWQ7XG4gIH1cblxuICB2aXNpdE5vblRlcm1pbmFsTm9kZShnZW5lcmFsTm9uVGVybWluYWxOb2RlLCBzcGVjaWZpY05vblRlcm1pbmFsTm9kZSwgLi4ucmVtYWluaW5nQXJndW1lbnRzKSB7XG4gICAgbGV0IHZpc2l0ZWQgPSBmYWxzZTtcblxuICAgIGxldCB7IG1hcHMgfSA9IHRoaXMuY29uc3RydWN0b3I7XG5cbiAgICBtYXBzID0gWyAvLy9cbiAgICAgIC4uLm1hcHMsXG4gICAgICB7XG4gICAgICAgIGdlbmVyYWxOb2RlUXVlcnk6IG5vblRlcm1pbmFsTm9kZVF1ZXJ5LFxuICAgICAgICBzcGVjaWZpY05vZGVRdWVyeTogbm9uVGVybWluYWxOb2RlUXVlcnksXG4gICAgICAgIHJ1bjogKGdlbmVyYWxOb2RlLCBzcGVjaWZpY05vZGUsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cykgPT4ge1xuICAgICAgICAgIGxldCB2aXNpdGVkID0gZmFsc2U7XG5cbiAgICAgICAgICBjb25zdCBnZW5lcmFsTm9uVGVybWluYWxOb2RlUnVsZU5hbWUgPSBnZW5lcmFsTm9uVGVybWluYWxOb2RlLmdldFJ1bGVOYW1lKCksIC8vL1xuICAgICAgICAgICAgICAgIHNwZWNpZmljTm9uVGVybWluYWxOb2RlUnVsZU5hbWUgPSBzcGVjaWZpY05vblRlcm1pbmFsTm9kZS5nZXRSdWxlTmFtZSgpOyAvLy9cblxuICAgICAgICAgIGlmIChnZW5lcmFsTm9uVGVybWluYWxOb2RlUnVsZU5hbWUgPT09IHNwZWNpZmljTm9uVGVybWluYWxOb2RlUnVsZU5hbWUpIHtcbiAgICAgICAgICAgIGNvbnN0IGdlbmVyYWxOb25UZXJtaW5hbE5vZGVDaGlsZE5vZGVzID0gZ2VuZXJhbE5vblRlcm1pbmFsTm9kZS5nZXRDaGlsZE5vZGVzKCksXG4gICAgICAgICAgICAgICAgICBzcGVjaWZpY05vblRlcm1pbmFsTm9kZUNoaWxkTm9kZXMgPSBzcGVjaWZpY05vblRlcm1pbmFsTm9kZS5nZXRDaGlsZE5vZGVzKCksXG4gICAgICAgICAgICAgICAgICBnZW5lcmFsQ2hpbGROb2RlcyA9IGdlbmVyYWxOb25UZXJtaW5hbE5vZGVDaGlsZE5vZGVzLCAvLy9cbiAgICAgICAgICAgICAgICAgIHNwZWNpZmljQ2hpbGROb2RlcyA9IHNwZWNpZmljTm9uVGVybWluYWxOb2RlQ2hpbGROb2RlcywgLy8vXG4gICAgICAgICAgICAgICAgICBkZXNjZW5kZWQgPSB0aGlzLmRlc2NlbmQoZ2VuZXJhbENoaWxkTm9kZXMsIHNwZWNpZmljQ2hpbGROb2RlcywgLi4ucmVtYWluaW5nQXJndW1lbnRzKTtcblxuICAgICAgICAgICAgaWYgKGRlc2NlbmRlZCkge1xuICAgICAgICAgICAgICB2aXNpdGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gdmlzaXRlZDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIF1cblxuICAgIG1hcHMuc29tZSgobWFwKSA9PiB7XG4gICAgICBjb25zdCB7IGdlbmVyYWxOb2RlUXVlcnksIHNwZWNpZmljTm9kZVF1ZXJ5LCBydW4gfSA9IG1hcDtcblxuICAgICAgY29uc3QgZ2VuZXJhbE5vZGUgPSBnZW5lcmFsTm9kZVF1ZXJ5KGdlbmVyYWxOb25UZXJtaW5hbE5vZGUpLCAgLy8vXG4gICAgICAgICAgICBzcGVjaWZpY05vZGUgPSBzcGVjaWZpY05vZGVRdWVyeShzcGVjaWZpY05vblRlcm1pbmFsTm9kZSk7ICAvLy9cblxuICAgICAgaWYgKChnZW5lcmFsTm9kZSAhPT0gbnVsbCkgJiYgKHNwZWNpZmljTm9kZSAhPT0gbnVsbCkpIHtcbiAgICAgICAgY29uc3Qgc3VjY2VzcyAgPSBydW4oZ2VuZXJhbE5vZGUsIHNwZWNpZmljTm9kZSwgLi4ucmVtYWluaW5nQXJndW1lbnRzKTtcblxuICAgICAgICB2aXNpdGVkID0gc3VjY2VzczsgIC8vL1xuXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHZpc2l0ZWQ7XG4gIH1cbn1cblxuY2xhc3MgTWV0YUxldmVsUGFzcyBleHRlbmRzIFBhc3Mge1xuICBzdGF0aWMgbWFwcyA9IFtcbiAgICB7XG4gICAgICBnZW5lcmFsTm9kZVF1ZXJ5OiBhc3N1bXB0aW9uTWV0YXZhcmlhYmxlTm9kZVF1ZXJ5LFxuICAgICAgc3BlY2lmaWNOb2RlUXVlcnk6IGFzc3VtcHRpb25NZXRhdmFyaWFibGVOb2RlUXVlcnksXG4gICAgICBydW46IChnZW5lcmFsQXNzdW1wdGlvbk1ldGF2YXJpYWJsZU5vZGUsIHNwZWNpZmljQXNzdW1wdGlvbk1ldGF2YXJpYWJsZU5vZGUsIHN1YnN0aXR1dGlvbnMsIGdlbmVyYWxDb250ZXh0LCBzcGVjaWZpY0NvbnRleHQpID0+IHtcbiAgICAgICAgbGV0IHN1Y2Nlc3MgPSBmYWxzZTtcblxuICAgICAgICBsZXQgY29udGV4dCxcbiAgICAgICAgICAgIG1ldGF2YXJpYWJsZU5vZGU7XG5cbiAgICAgICAgY29udGV4dCA9IGdlbmVyYWxDb250ZXh0OyAvLy9cblxuICAgICAgICBtZXRhdmFyaWFibGVOb2RlID0gZ2VuZXJhbEFzc3VtcHRpb25NZXRhdmFyaWFibGVOb2RlOyAgLy8vXG5cbiAgICAgICAgY29uc3QgbWV0YXZhcmlhYmxlTmFtZSA9IG1ldGF2YXJpYWJsZU5vZGUuZ2V0TWV0YXZhcmlhYmxlTmFtZSgpLFxuICAgICAgICAgICAgICBtZXRhdmFyaWFibGUgPSBjb250ZXh0LmZpbmRNZXRhdmFyaWFibGVCeU1ldGF2YXJpYWJsZU5hbWUobWV0YXZhcmlhYmxlTmFtZSk7XG5cbiAgICAgICAgY29udGV4dCA9IHNwZWNpZmljQ29udGV4dDsgIC8vL1xuXG4gICAgICAgIG1ldGF2YXJpYWJsZU5vZGUgPSBzcGVjaWZpY0Fzc3VtcHRpb25NZXRhdmFyaWFibGVOb2RlOyAvLy9cblxuICAgICAgICBjb25zdCByZWZlcmVuY2UgPSBjb250ZXh0LmZpbmRSZWZlcmVuY2VCeU1ldGF2YXJpYWJsZU5vZGUobWV0YXZhcmlhYmxlTm9kZSksXG4gICAgICAgICAgICAgIHJlZmVyZW5jZVVuaWZpZXMgPSBtZXRhdmFyaWFibGUudW5pZnlSZWZlcmVuY2UocmVmZXJlbmNlLCBzdWJzdGl0dXRpb25zLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KTtcblxuICAgICAgICBpZiAocmVmZXJlbmNlVW5pZmllcykge1xuICAgICAgICAgIHN1Y2Nlc3MgPSB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHN1Y2Nlc3M7XG4gICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICBnZW5lcmFsTm9kZVF1ZXJ5OiBzdGF0ZW1lbnRNZXRhdmFyaWFibGVOb2RlUXVlcnksXG4gICAgICBzcGVjaWZpY05vZGVRdWVyeTogc3RhdGVtZW50Tm9kZVF1ZXJ5LFxuICAgICAgcnVuOiAoZ2VuZXJhbFN0YXRlbWVudE1ldGF2YXJpYWJsZU5vZGUsIHNwZWNpZmljU3RhdGVtZW50Tm9kZSwgc3Vic3RpdHV0aW9ucywgZ2VuZXJhbENvbnRleHQsIHNwZWNpZmljQ29udGV4dCkgPT4ge1xuICAgICAgICBsZXQgc3VjY2VzcyA9IGZhbHNlO1xuXG4gICAgICAgIGxldCBjb250ZXh0LFxuICAgICAgICAgICAgc3RhdGVtZW50Tm9kZTtcblxuICAgICAgICBjb250ZXh0ID0gZ2VuZXJhbENvbnRleHQ7IC8vL1xuXG4gICAgICAgIGNvbnN0IG1ldGF2YXJpYWJsZU5vZGUgPSBnZW5lcmFsU3RhdGVtZW50TWV0YXZhcmlhYmxlTm9kZSwgIC8vL1xuICAgICAgICAgICAgICBtZXRhdmFyaWFibGVOYW1lID0gbWV0YXZhcmlhYmxlTm9kZS5nZXRNZXRhdmFyaWFibGVOYW1lKCksXG4gICAgICAgICAgICAgIG1ldGF2YXJpYWJsZSA9IGNvbnRleHQuZmluZE1ldGF2YXJpYWJsZUJ5TWV0YXZhcmlhYmxlTmFtZShtZXRhdmFyaWFibGVOYW1lKSxcbiAgICAgICAgICAgICAgbWV0YXZhcmlhYmxlTm9kZVBhcmVudE5vZGUgPSBtZXRhdmFyaWFibGVOb2RlLmdldFBhcmVudE5vZGUoKTtcblxuICAgICAgICBzdGF0ZW1lbnROb2RlID0gbWV0YXZhcmlhYmxlTm9kZVBhcmVudE5vZGU7IC8vL1xuXG4gICAgICAgIGNvbnN0IGZyYW1lU3Vic3RpdHV0aW9uTm9kZSA9IHN0YXRlbWVudE5vZGUuZ2V0RnJhbWVTdWJzdGl0dXRpb25Ob2RlKCksXG4gICAgICAgICAgICAgIHRlcm1TdWJzdGl0dXRpb25Ob2RlID0gc3RhdGVtZW50Tm9kZS5nZXRUZXJtU3Vic3RpdHV0aW9uTm9kZSgpLFxuICAgICAgICAgICAgICBzdWJzdGl0dXRpb25Ob2RlID0gKGZyYW1lU3Vic3RpdHV0aW9uTm9kZSB8fCB0ZXJtU3Vic3RpdHV0aW9uTm9kZSksXG4gICAgICAgICAgICAgIHN1YnN0aXR1dGlvbiA9IChzdWJzdGl0dXRpb25Ob2RlICE9PSBudWxsKSA/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dC5maW5kU3Vic3RpdHV0aW9uQnlTdWJzdGl0dXRpb25Ob2RlKHN1YnN0aXR1dGlvbk5vZGUpIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGw7XG5cbiAgICAgICAgY29udGV4dCA9IHNwZWNpZmljQ29udGV4dDsgLy8vXG5cbiAgICAgICAgc3RhdGVtZW50Tm9kZSA9IHNwZWNpZmljU3RhdGVtZW50Tm9kZTsgIC8vL1xuXG4gICAgICAgIGNvbnN0IHN0YXRlbWVudCA9IGNvbnRleHQuZmluZFN0YXRlbWVudEJ5U3RhdGVtZW50Tm9kZShzdGF0ZW1lbnROb2RlKSxcbiAgICAgICAgICAgICAgc3RhdGVtZW50VW5pZmllcyA9IG1ldGF2YXJpYWJsZS51bmlmeVN0YXRlbWVudChzdGF0ZW1lbnQsIHN1YnN0aXR1dGlvbiwgc3Vic3RpdHV0aW9ucywgZ2VuZXJhbENvbnRleHQsIHNwZWNpZmljQ29udGV4dCk7XG5cbiAgICAgICAgaWYgKHN0YXRlbWVudFVuaWZpZXMpIHtcbiAgICAgICAgICBzdWNjZXNzID0gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBzdWNjZXNzO1xuICAgICAgfVxuICAgIH0sXG4gICAge1xuICAgICAgZ2VuZXJhbE5vZGVRdWVyeTogZnJhbWVBc3N1bXB0aW9uTWV0YXZhcmlhYmxlTm9kZVF1ZXJ5LFxuICAgICAgc3BlY2lmaWNOb2RlUXVlcnk6IGZyYW1lTm9kZVF1ZXJ5LFxuICAgICAgcnVuOiAoZ2VuZXJhbEZyYW1lQXNzdW1wdGlvbk1ldGF2YXJpYWJsZU5vZGUsIHNwZWNpZmljRnJhbWVOb2RlLCBzdWJzdGl0dXRpb25zLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KSA9PiB7XG4gICAgICAgIGxldCBzdWNjZXNzID0gZmFsc2U7XG5cbiAgICAgICAgY29uc3QgZnJhbWVOb2RlID0gc3BlY2lmaWNGcmFtZU5vZGUsIC8vL1xuICAgICAgICAgICAgICBtZXRhdmFyaWFibGVOb2RlID0gZ2VuZXJhbEZyYW1lQXNzdW1wdGlvbk1ldGF2YXJpYWJsZU5vZGUsICAvLy9cbiAgICAgICAgICAgICAgbWV0YXZhcmlhYmxlTmFtZSA9IG1ldGF2YXJpYWJsZU5vZGUuZ2V0TWV0YXZhcmlhYmxlTmFtZSgpO1xuXG4gICAgICAgIGxldCBjb250ZXh0O1xuXG4gICAgICAgIGNvbnRleHQgPSBnZW5lcmFsQ29udGV4dDsgLy8vXG5cbiAgICAgICAgY29uc3QgbWV0YXZhcmlhYmxlID0gY29udGV4dC5maW5kTWV0YXZhcmlhYmxlQnlNZXRhdmFyaWFibGVOYW1lKG1ldGF2YXJpYWJsZU5hbWUpO1xuXG4gICAgICAgIGNvbnRleHQgPSBzcGVjaWZpY0NvbnRleHQ7ICAvLy9cblxuICAgICAgICBjb25zdCBmcmFtZSA9IGNvbnRleHQuZmluZEZyYW1lQnlGcmFtZU5vZGUoZnJhbWVOb2RlKSxcbiAgICAgICAgICAgICAgZnJhbWVVbmlmaWVzID0gbWV0YXZhcmlhYmxlLnVuaWZ5RnJhbWUoZnJhbWUsIHN1YnN0aXR1dGlvbnMsIGdlbmVyYWxDb250ZXh0LCBzcGVjaWZpY0NvbnRleHQpO1xuXG4gICAgICAgIGlmIChmcmFtZVVuaWZpZXMpIHtcbiAgICAgICAgICBzdWNjZXNzID0gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBzdWNjZXNzO1xuICAgICAgfVxuICAgIH0sXG4gICAge1xuICAgICAgZ2VuZXJhbE5vZGVRdWVyeTogdGVybVZhcmlhYmxlTm9kZVF1ZXJ5LFxuICAgICAgc3BlY2lmaWNOb2RlUXVlcnk6IHRlcm1Ob2RlUXVlcnksXG4gICAgICBydW46IChnZW5lcmFsVGVybVZhcmlhYmxlTm9kZSwgc3BlY2lmaWNUZXJtTm9kZSwgc3Vic3RpdHV0aW9ucywgZ2VuZXJhbENvbnRleHQsIHNwZWNpZmljQ29udGV4dCkgPT4ge1xuICAgICAgICBsZXQgc3VjY2VzcyA9IGZhbHNlO1xuXG4gICAgICAgIGNvbnN0IHRlcm1Ob2RlID0gc3BlY2lmaWNUZXJtTm9kZSwgLy8vXG4gICAgICAgICAgICAgIHZhcmlhYmxlTm9kZSA9IGdlbmVyYWxUZXJtVmFyaWFibGVOb2RlLCAvLy9cbiAgICAgICAgICAgICAgdmFyaWFibGVJZGVudGlmaWVyID0gdmFyaWFibGVOb2RlLmdldFZhcmlhYmxlSWRlbnRpZmllcigpO1xuXG4gICAgICAgIGxldCBjb250ZXh0O1xuXG4gICAgICAgIGNvbnRleHQgPSBnZW5lcmFsQ29udGV4dDsgLy8vXG5cbiAgICAgICAgY29uc3QgdmFyaWFibGUgPSBjb250ZXh0LmZpbmRWYXJpYWJsZUJ5VmFyaWFibGVJZGVudGlmaWVyKHZhcmlhYmxlSWRlbnRpZmllcik7XG5cbiAgICAgICAgY29udGV4dCA9IHNwZWNpZmljQ29udGV4dDsgIC8vL1xuXG4gICAgICAgIGNvbnN0IHRlcm0gPSBjb250ZXh0LmZpbmRUZXJtQnlUZXJtTm9kZSh0ZXJtTm9kZSksXG4gICAgICAgICAgICAgIHRlcm1VbmlmaWVzID0gdmFyaWFibGUudW5pZnlUZXJtKHRlcm0sIHN1YnN0aXR1dGlvbnMsIGdlbmVyYWxDb250ZXh0LCBzcGVjaWZpY0NvbnRleHQpO1xuXG4gICAgICAgIGlmICh0ZXJtVW5pZmllcykge1xuICAgICAgICAgIHN1Y2Nlc3MgPSB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHN1Y2Nlc3M7XG4gICAgICB9XG4gICAgfVxuICBdO1xufVxuXG5jbGFzcyBDb21iaW5hdG9yUGFzcyBleHRlbmRzIFBhc3Mge1xuICBzdGF0aWMgbWFwcyA9IFtcbiAgICB7XG4gICAgICBnZW5lcmFsTm9kZVF1ZXJ5OiBtZXRhVHlwZU5vZGVRdWVyeSxcbiAgICAgIHNwZWNpZmljTm9kZVF1ZXJ5OiBzdGF0ZW1lbnROb2RlUXVlcnksXG4gICAgICBydW46IChnZW5lcmFsTWV0YVR5cGVOb2RlLCBzcGVjaWZpY1N0YXRlbWVudE5vZGUsIGFzc2lnbm1lbnRzLCBzdGF0ZWQsIGdlbmVyYWxDb250ZXh0LCBzcGVjaWZpY0NvbnRleHQpID0+IHtcbiAgICAgICAgbGV0IHN1Y2Nlc3MgPSBmYWxzZTtcblxuICAgICAgICBjb25zdCBtZXRhVHlwZU5vZGUgPSBnZW5lcmFsTWV0YVR5cGVOb2RlLCAvLy9cbiAgICAgICAgICAgICAgc3RhdGVtZW50Tm9kZSA9IHNwZWNpZmljU3RhdGVtZW50Tm9kZTsgLy8vXG5cbiAgICAgICAgbGV0IGNvbnRleHQ7XG5cbiAgICAgICAgY29udGV4dCA9IGdlbmVyYWxDb250ZXh0OyAvLy9cblxuICAgICAgICBjb25zdCBtZXRhVHlwZU5hbWUgPSBtZXRhVHlwZU5vZGUuZ2V0TWV0YVR5cGVOYW1lKCksXG4gICAgICAgICAgICAgIG1ldGFUeXBlID0gZmluZE1ldGFUeXBlQnlNZXRhVHlwZU5hbWUobWV0YVR5cGVOYW1lKTtcblxuICAgICAgICBjb250ZXh0ID0gc3BlY2lmaWNDb250ZXh0OyAgLy8vXG5cbiAgICAgICAgY29uc3Qgc3RhdGVtZW50ID0gc3RhdGVtZW50RnJvbVN0YXRlbWVudE5vZGUoc3RhdGVtZW50Tm9kZSwgY29udGV4dCksXG4gICAgICAgICAgICAgIHN0YXRlbWVudFZhbGlkYXRlc0dpdmVuVHlwZSA9IHN0YXRlbWVudC52YWxpZGF0ZUdpdmVuTWV0YVR5cGUobWV0YVR5cGUsIGFzc2lnbm1lbnRzLCBzdGF0ZWQsIGNvbnRleHQpO1xuXG4gICAgICAgIGlmIChzdGF0ZW1lbnRWYWxpZGF0ZXNHaXZlblR5cGUpIHtcbiAgICAgICAgICBzdWNjZXNzID0gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBzdWNjZXNzO1xuICAgICAgfVxuICAgIH0sXG4gICAge1xuICAgICAgZ2VuZXJhbE5vZGVRdWVyeTogbWV0YVR5cGVOb2RlUXVlcnksXG4gICAgICBzcGVjaWZpY05vZGVRdWVyeTogZnJhbWVOb2RlUXVlcnksXG4gICAgICBydW46IChnZW5lcmFsTWV0YVR5cGVOb2RlLCBzcGVjaWZpY0ZyYW1lTm9kZSwgYXNzaWdubWVudHMsIHN0YXRlZCwgZ2VuZXJhbENvbnRleHQsIHNwZWNpZmljQ29udGV4dCkgPT4ge1xuICAgICAgICBsZXQgc3VjY2VzcyA9IGZhbHNlO1xuXG4gICAgICAgIGNvbnN0IG1ldGFUeXBlTm9kZSA9IGdlbmVyYWxNZXRhVHlwZU5vZGUsIC8vL1xuICAgICAgICAgICAgICBmcmFtZU5vZGUgPSBzcGVjaWZpY0ZyYW1lTm9kZTsgLy8vXG5cbiAgICAgICAgbGV0IGNvbnRleHQ7XG5cbiAgICAgICAgY29udGV4dCA9IGdlbmVyYWxDb250ZXh0OyAvLy9cblxuICAgICAgICBjb25zdCBtZXRhVHlwZU5hbWUgPSBtZXRhVHlwZU5vZGUuZ2V0TWV0YVR5cGVOYW1lKCksXG4gICAgICAgICAgICAgIG1ldGFUeXBlID0gZmluZE1ldGFUeXBlQnlNZXRhVHlwZU5hbWUobWV0YVR5cGVOYW1lKTtcblxuICAgICAgICBjb250ZXh0ID0gc3BlY2lmaWNDb250ZXh0OyAgLy8vXG5cbiAgICAgICAgY29uc3QgZnJhbWUgPSBmcmFtZUZyb21GcmFtZU5vZGUoZnJhbWVOb2RlLCBjb250ZXh0KSxcbiAgICAgICAgICAgICAgZnJhbWVWYWxpZGF0ZXNHaXZlbk1ldGFUeXBlID0gZnJhbWUudmFsaWRhdGVHaXZlbk1ldGFUeXBlKG1ldGFUeXBlLCBhc3NpZ25tZW50cywgc3RhdGVkLCBjb250ZXh0KTtcblxuICAgICAgICBpZiAoZnJhbWVWYWxpZGF0ZXNHaXZlbk1ldGFUeXBlKSB7XG4gICAgICAgICAgc3VjY2VzcyA9IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gc3VjY2VzcztcbiAgICAgIH1cbiAgICB9LFxuICAgIHtcbiAgICAgIGdlbmVyYWxOb2RlUXVlcnk6IHR5cGVOb2RlUXVlcnksXG4gICAgICBzcGVjaWZpY05vZGVRdWVyeTogdGVybU5vZGVRdWVyeSxcbiAgICAgIHJ1bjogKGdlbmVyYWxUeXBlTm9kZSwgc3BlY2lmaWNUZXJtTm9kZSwgYXNzaWdubWVudHMsIHN0YXRlZCwgZ2VuZXJhbENvbnRleHQsIHNwZWNpZmljQ29udGV4dCkgPT4ge1xuICAgICAgICBsZXQgc3VjY2VzcyA9IGZhbHNlO1xuXG4gICAgICAgIGNvbnN0IHR5cGVOb2RlID0gZ2VuZXJhbFR5cGVOb2RlLCAvLy9cbiAgICAgICAgICAgICAgdGVybU5vZGUgPSBzcGVjaWZpY1Rlcm1Ob2RlLCAvLy9cbiAgICAgICAgICAgICAgbm9taW5hbFR5cGVOYW1lID0gdHlwZU5vZGUuZ2V0Tm9taW5hbFR5cGVOYW1lKCk7XG5cbiAgICAgICAgbGV0IGNvbnRleHQ7XG5cbiAgICAgICAgY29udGV4dCA9IGdlbmVyYWxDb250ZXh0OyAvLy9cblxuICAgICAgICBjb25zdCB0eXBlID0gY29udGV4dC5maW5kVHlwZUJ5Tm9taW5hbFR5cGVOYW1lKG5vbWluYWxUeXBlTmFtZSk7XG5cbiAgICAgICAgaWYgKHR5cGUgIT09IG51bGwpIHtcbiAgICAgICAgICBjb250ZXh0ID0gc3BlY2lmaWNDb250ZXh0OyAgLy8vXG5cbiAgICAgICAgICBjb25zdCB0ZXJtID0gdGVybUZyb21UZXJtTm9kZSh0ZXJtTm9kZSwgY29udGV4dCksXG4gICAgICAgICAgICAgICAgdGVybVZhbGlkYXRlc0dpdmVuVHlwZSA9IHRlcm0udmFsaWRhdGVHaXZlblR5cGUodHlwZSwgY29udGV4dCk7XG5cbiAgICAgICAgICBpZiAodGVybVZhbGlkYXRlc0dpdmVuVHlwZSkge1xuICAgICAgICAgICAgc3VjY2VzcyA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHN1Y2Nlc3M7XG4gICAgICB9XG4gICAgfVxuICBdO1xufVxuXG5jbGFzcyBDb25zdHJ1Y3RvclBhc3MgZXh0ZW5kcyBQYXNzIHtcbiAgc3RhdGljIG1hcHMgPSBbXG4gICAge1xuICAgICAgZ2VuZXJhbE5vZGVRdWVyeTogdHlwZU5vZGVRdWVyeSxcbiAgICAgIHNwZWNpZmljTm9kZVF1ZXJ5OiB0ZXJtTm9kZVF1ZXJ5LFxuICAgICAgcnVuOiAoZ2VuZXJhbFR5cGVOb2RlLCBzcGVjaWZpY1Rlcm1Ob2RlLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KSA9PiB7XG4gICAgICAgIGxldCBzdWNjZXNzID0gZmFsc2U7XG5cbiAgICAgICAgY29uc3QgdHlwZU5vZGUgPSBnZW5lcmFsVHlwZU5vZGUsIC8vL1xuICAgICAgICAgICAgICB0ZXJtTm9kZSA9IHNwZWNpZmljVGVybU5vZGUsIC8vL1xuICAgICAgICAgICAgICBub21pbmFsVHlwZU5hbWUgPSB0eXBlTm9kZS5nZXROb21pbmFsVHlwZU5hbWUoKTtcblxuICAgICAgICBsZXQgY29udGV4dDtcblxuICAgICAgICBjb250ZXh0ID0gZ2VuZXJhbENvbnRleHQ7IC8vL1xuXG4gICAgICAgIGNvbnN0IHR5cGUgPSBjb250ZXh0LmZpbmRUeXBlQnlOb21pbmFsVHlwZU5hbWUobm9taW5hbFR5cGVOYW1lKTtcblxuICAgICAgICBpZiAodHlwZSAhPT0gbnVsbCkge1xuICAgICAgICAgIGNvbnRleHQgPSBzcGVjaWZpY0NvbnRleHQ7ICAvLy9cblxuICAgICAgICAgIGNvbnN0IHRlcm0gPSB0ZXJtRnJvbVRlcm1Ob2RlKHRlcm1Ob2RlLCBjb250ZXh0KSxcbiAgICAgICAgICAgICAgICB0ZXJtVmFsaWRhdGVzR2l2ZW5UeXBlID0gdGVybS52YWxpZGF0ZUdpdmVuVHlwZSh0eXBlLCBjb250ZXh0KTtcblxuICAgICAgICAgIGlmICh0ZXJtVmFsaWRhdGVzR2l2ZW5UeXBlKSB7XG4gICAgICAgICAgICBzdWNjZXNzID0gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gc3VjY2VzcztcbiAgICAgIH1cbiAgICB9XG4gIF07XG59XG5cbmNsYXNzIE1ldGF2YXJpYWJsZVBhc3MgZXh0ZW5kcyBQYXNzIHtcbiAgc3RhdGljIG1hcHMgPSBbXG4gICAge1xuICAgICAgZ2VuZXJhbE5vZGVRdWVyeTogdHlwZU5vZGVRdWVyeSxcbiAgICAgIHNwZWNpZmljTm9kZVF1ZXJ5OiB0ZXJtTm9kZVF1ZXJ5LFxuICAgICAgcnVuOiAoZ2VuZXJhbFR5cGVOb2RlLCBzcGVjaWZpY1Rlcm1Ob2RlLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KSA9PiB7XG4gICAgICAgIGxldCBzdWNjZXNzID0gZmFsc2U7XG5cbiAgICAgICAgY29uc3QgdHlwZU5vZGUgPSBnZW5lcmFsVHlwZU5vZGUsIC8vL1xuICAgICAgICAgICAgICB0ZXJtTm9kZSA9IHNwZWNpZmljVGVybU5vZGUsIC8vL1xuICAgICAgICAgICAgICBub21pbmFsVHlwZU5hbWUgPSB0eXBlTm9kZS5nZXROb21pbmFsVHlwZU5hbWUoKSxcbiAgICAgICAgICAgICAgdHlwZSA9IGdlbmVyYWxDb250ZXh0LmZpbmRUeXBlQnlOb21pbmFsVHlwZU5hbWUobm9taW5hbFR5cGVOYW1lKSxcbiAgICAgICAgICAgICAgY29udGV4dCA9IHNwZWNpZmljQ29udGV4dCwgLy8vXG4gICAgICAgICAgICAgIHRlcm0gPSBjb250ZXh0LmZpbmRUZXJtQnlUZXJtTm9kZSh0ZXJtTm9kZSksXG4gICAgICAgICAgICAgIHRlcm1WYWxpZGF0ZXNHaXZlblR5cGUgPSB0ZXJtLnZhbGlkYXRlR2l2ZW5UeXBlKHR5cGUsIGNvbnRleHQpO1xuXG4gICAgICAgIGlmICh0ZXJtVmFsaWRhdGVzR2l2ZW5UeXBlKSB7XG4gICAgICAgICAgc3VjY2VzcyA9IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gc3VjY2VzcztcbiAgICAgIH1cbiAgICB9XG4gIF07XG59XG5cbmNsYXNzIEludHJpbnNpY0xldmVsUGFzcyBleHRlbmRzIFBhc3Mge1xuICBzdGF0aWMgbWFwcyA9IFtcbiAgICB7XG4gICAgICBnZW5lcmFsTm9kZVF1ZXJ5OiB0ZXJtVmFyaWFibGVOb2RlUXVlcnksXG4gICAgICBzcGVjaWZpY05vZGVRdWVyeTogdGVybU5vZGVRdWVyeSxcbiAgICAgIHJ1bjogKGdlbmVyYWxUZXJtVmFyaWFibGVOb2RlLCBzcGVjaWZpY1Rlcm1Ob2RlLCBzdWJzdGl0dXRpb25zLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KSA9PiB7XG4gICAgICAgIGxldCBzdWNjZXNzID0gZmFsc2U7XG5cbiAgICAgICAgY29uc3QgdGVybU5vZGUgPSBzcGVjaWZpY1Rlcm1Ob2RlLCAvLy9cbiAgICAgICAgICAgICAgdmFyaWFibGVOb2RlID0gZ2VuZXJhbFRlcm1WYXJpYWJsZU5vZGUsIC8vL1xuICAgICAgICAgICAgICB2YXJpYWJsZUlkZW50aWZpZXIgPSB2YXJpYWJsZU5vZGUuZ2V0VmFyaWFibGVJZGVudGlmaWVyKCk7XG5cbiAgICAgICAgbGV0IGNvbnRleHQ7XG5cbiAgICAgICAgY29udGV4dCA9IGdlbmVyYWxDb250ZXh0OyAvLy9cblxuICAgICAgICBjb25zdCB2YXJpYWJsZSA9IGNvbnRleHQuZmluZFZhcmlhYmxlQnlWYXJpYWJsZUlkZW50aWZpZXIodmFyaWFibGVJZGVudGlmaWVyKTtcblxuICAgICAgICBjb250ZXh0ID0gc3BlY2lmaWNDb250ZXh0OyAgLy8vXG5cbiAgICAgICAgY29uc3QgdGVybSA9IGNvbnRleHQuZmluZFRlcm1CeVRlcm1Ob2RlKHRlcm1Ob2RlKSxcbiAgICAgICAgICAgICAgdGVybVVuaWZpZXMgPSB2YXJpYWJsZS51bmlmeVRlcm0odGVybSwgc3Vic3RpdHV0aW9ucywgZ2VuZXJhbENvbnRleHQsIHNwZWNpZmljQ29udGV4dCk7XG5cbiAgICAgICAgaWYgKHRlcm1VbmlmaWVzKSB7XG4gICAgICAgICAgc3VjY2VzcyA9IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gc3VjY2VzcztcbiAgICAgIH1cbiAgICB9XG4gIF07XG59XG5cbmNvbnN0IG1ldGFMZXZlbFBhc3MgPSBuZXcgTWV0YUxldmVsUGFzcygpLFxuICAgICAgY29tYmluYXRvclBhc3MgPSBuZXcgQ29tYmluYXRvclBhc3MoKSxcbiAgICAgIGNvbnN0cnVjdG9yUGFzcyA9IG5ldyBDb25zdHJ1Y3RvclBhc3MoKSxcbiAgICAgIG1ldGF2YXJpYWJsZVBhc3MgPSBuZXcgTWV0YXZhcmlhYmxlUGFzcygpLFxuICAgICAgaW50cmluc2ljTGV2ZWxQYXNzID0gbmV3IEludHJpbnNpY0xldmVsUGFzcygpO1xuXG5leHBvcnQgZnVuY3Rpb24gdW5pZnlTdGF0ZW1lbnQoZ2VuZXJhbFN0YXRlbWVudCwgc3BlY2lmaWNTdGF0ZW1lbnQsIHN1YnN0aXR1dGlvbnMsIGdlbmVyYWxDb250ZXh0LCBzcGVjaWZpY0NvbnRleHQpIHtcbiAgbGV0IHN0YXRlbWVudFVuaWZpZXMgPSBmYWxzZTtcblxuICBjb25zdCBnZW5lcmFsU3RhdGVtZW50Tm9kZSA9IGdlbmVyYWxTdGF0ZW1lbnQuZ2V0Tm9kZSgpLFxuICAgICAgICBzcGVjaWZpY1N0YXRlbWVudE5vZGUgPSBzcGVjaWZpY1N0YXRlbWVudC5nZXROb2RlKCksXG4gICAgICAgIGdlbmVyYWxOb2RlID0gZ2VuZXJhbFN0YXRlbWVudE5vZGUsIC8vL1xuICAgICAgICBzcGVjaWZpY05vZGUgPSBzcGVjaWZpY1N0YXRlbWVudE5vZGUsICAvLy9cbiAgICAgICAgc3VjY2VzcyA9IG1ldGFMZXZlbFBhc3MucnVuKGdlbmVyYWxOb2RlLCBzcGVjaWZpY05vZGUsIHN1YnN0aXR1dGlvbnMsIGdlbmVyYWxDb250ZXh0LCBzcGVjaWZpY0NvbnRleHQpO1xuXG4gIGlmIChzdWNjZXNzKSB7XG4gICAgc3RhdGVtZW50VW5pZmllcyA9IHRydWU7XG4gIH1cblxuICByZXR1cm4gc3RhdGVtZW50VW5pZmllcztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVuaWZ5U3Vic3RpdHV0aW9uKGdlbmVyYWxTdWJzdGl0dXRpb24sIHNwZWNpZmljU3Vic3RpdHV0aW9uLCBzdWJzdGl0dXRpb25zLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KSB7XG4gIGxldCBzdWJzdGl0dXRpb25VbmlmaWVzID0gZmFsc2U7XG5cbiAgY29uc3QgZ2VuZXJhbFN1YnN0aXR1dGlvbk5vZGUgPSBnZW5lcmFsU3Vic3RpdHV0aW9uLmdldE5vZGUoKSxcbiAgICAgICAgc3BlY2lmaWNTdWJzdGl0dXRpb25Ob2RlID0gc3BlY2lmaWNTdWJzdGl0dXRpb24uZ2V0Tm9kZSgpLFxuICAgICAgICBnZW5lcmFsTm9kZSA9IGdlbmVyYWxTdWJzdGl0dXRpb25Ob2RlLCAvLy9cbiAgICAgICAgc3BlY2lmaWNOb2RlID0gc3BlY2lmaWNTdWJzdGl0dXRpb25Ob2RlLCAgLy8vXG4gICAgICAgIHN1Y2Nlc3MgPSBtZXRhTGV2ZWxQYXNzLnJ1bihnZW5lcmFsTm9kZSwgc3BlY2lmaWNOb2RlLCBzdWJzdGl0dXRpb25zLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KTtcblxuICBpZiAoc3VjY2Vzcykge1xuICAgIHN1YnN0aXR1dGlvblVuaWZpZXMgPSB0cnVlO1xuICB9XG5cbiAgcmV0dXJuIHN1YnN0aXR1dGlvblVuaWZpZXM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1bmlmeU1ldGF2YXJpYWJsZShnZW5lcmFsTWV0YXZhcmlhYmxlLCBzcGVjaWZpY01ldGF2YXJpYWJsZSwgZ2VuZXJhbENvbnRleHQsIHNwZWNpZmljQ29udGV4dCkge1xuICBsZXQgbWV0YXZhcmlhYmxlVW5pZmllcyA9IGZhbHNlO1xuXG4gIGNvbnN0IGdlbmVyYWxNZXRhdmFyaWFibGVOb2RlID0gZ2VuZXJhbE1ldGF2YXJpYWJsZS5nZXROb2RlKCksXG4gICAgICAgIHNwZWNpZmljTWV0YXZhcmlhYmxlTm9kZSA9IHNwZWNpZmljTWV0YXZhcmlhYmxlLmdldE5vZGUoKSxcbiAgICAgICAgc3VjY2VzcyA9IG1ldGF2YXJpYWJsZVBhc3MucnVuKGdlbmVyYWxNZXRhdmFyaWFibGVOb2RlLCBzcGVjaWZpY01ldGF2YXJpYWJsZU5vZGUsIGdlbmVyYWxDb250ZXh0LCBzcGVjaWZpY0NvbnRleHQpO1xuXG4gIGlmIChzdWNjZXNzKSB7XG4gICAgbWV0YXZhcmlhYmxlVW5pZmllcyA9IHRydWU7XG4gIH1cblxuICByZXR1cm4gbWV0YXZhcmlhYmxlVW5pZmllcztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVuaWZ5VGVybVdpdGhDb25zdHJ1Y3Rvcih0ZXJtLCBjb25zdHJ1Y3RvciwgZ2VuZXJhbENvbnRleHQsIHNwZWNpZmljQ29udGV4dCkge1xuICBsZXQgdGVybVVuaWZpZXNXaXRoQ29uc3RydWN0b3IgPSBmYWxzZTtcblxuICBjb25zdCB0ZXJtTm9kZSA9IHRlcm0uZ2V0Tm9kZSgpLFxuICAgICAgICBjb25zdHJ1Y3RvclRlcm0gPSBjb25zdHJ1Y3Rvci5nZXRUZXJtKCksXG4gICAgICAgIGNvbnN0cnVjdG9yVGVybU5vZGUgPSBjb25zdHJ1Y3RvclRlcm0uZ2V0Tm9kZSgpLFxuICAgICAgICBzdWNjZXNzID0gY29uc3RydWN0b3JQYXNzLnJ1bihjb25zdHJ1Y3RvclRlcm1Ob2RlLCB0ZXJtTm9kZSwgZ2VuZXJhbENvbnRleHQsIHNwZWNpZmljQ29udGV4dCk7XG5cbiAgaWYgKHN1Y2Nlc3MpIHtcbiAgICB0ZXJtVW5pZmllc1dpdGhDb25zdHJ1Y3RvciA9IHRydWU7XG4gIH1cblxuICByZXR1cm4gdGVybVVuaWZpZXNXaXRoQ29uc3RydWN0b3I7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1bmlmeVN0YXRlbWVudEludHJpbnNpY2FsbHkoZ2VuZXJhbFN0YXRlbWVudCwgc3BlY2lmaWNTdGF0ZW1lbnQsIHN1YnN0aXR1dGlvbnMsIGdlbmVyYWxDb250ZXh0LCBzcGVjaWZpY0NvbnRleHQpIHtcbiAgbGV0IHN0YXRlbWVudFVuaWZpZXNJbnRyaW5zaWNhbGx5ID0gZmFsc2U7XG5cbiAgY29uc3QgZ2VuZXJhbFN0YXRlbWVudE5vZGUgPSBnZW5lcmFsU3RhdGVtZW50LmdldE5vZGUoKSxcbiAgICAgICAgc3BlY2lmaWNTdGF0ZW1lbnROb2RlID0gc3BlY2lmaWNTdGF0ZW1lbnQuZ2V0Tm9kZSgpLFxuICAgICAgICBnZW5lcmFsTm9kZSA9IGdlbmVyYWxTdGF0ZW1lbnROb2RlLCAvLy9cbiAgICAgICAgc3BlY2lmaWNOb2RlID0gc3BlY2lmaWNTdGF0ZW1lbnROb2RlLCAvLy9cbiAgICAgICAgc3VjY2VzcyA9IGludHJpbnNpY0xldmVsUGFzcy5ydW4oZ2VuZXJhbE5vZGUsIHNwZWNpZmljTm9kZSwgc3Vic3RpdHV0aW9ucywgZ2VuZXJhbENvbnRleHQsIHNwZWNpZmljQ29udGV4dCk7XG5cbiAgaWYgKHN1Y2Nlc3MpIHtcbiAgICBzdGF0ZW1lbnRVbmlmaWVzSW50cmluc2ljYWxseSA9IHRydWU7XG4gIH1cblxuICByZXR1cm4gc3RhdGVtZW50VW5pZmllc0ludHJpbnNpY2FsbHk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1bmlmeVN0YXRlbWVudFdpdGhDb21iaW5hdG9yKHN0YXRlbWVudCwgY29tYmluYXRvciwgYXNzaWdubWVudHMsIHN0YXRlZCwgZ2VuZXJhbENvbnRleHQsIHNwZWNpZmljQ29udGV4dCkge1xuICBsZXQgc3RhdGVtZW50VW5pZmllc1dpdGhDb21iaW5hdG9yID0gZmFsc2U7XG5cbiAgY29uc3Qgc3RhdGVtZW50Tm9kZSA9IHN0YXRlbWVudC5nZXROb2RlKCksXG4gICAgICAgIGNvbWJpbmF0b3JTdGF0ZW1lbnQgPSBjb21iaW5hdG9yLmdldFN0YXRlbWVudCgpLFxuICAgICAgICBjb21iaW5hdG9yU3RhdGVtZW50Tm9kZSA9IGNvbWJpbmF0b3JTdGF0ZW1lbnQuZ2V0Tm9kZSgpLFxuICAgICAgICBzdWNjZXNzID0gY29tYmluYXRvclBhc3MucnVuKGNvbWJpbmF0b3JTdGF0ZW1lbnROb2RlLCBzdGF0ZW1lbnROb2RlLCBhc3NpZ25tZW50cywgc3RhdGVkLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KTtcblxuICBpZiAoc3VjY2Vzcykge1xuICAgIHN0YXRlbWVudFVuaWZpZXNXaXRoQ29tYmluYXRvciA9IHRydWU7XG4gIH1cblxuICByZXR1cm4gc3RhdGVtZW50VW5pZmllc1dpdGhDb21iaW5hdG9yO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdW5pZnlNZXRhdmFyaWFibGVJbnRyaW5zaWNhbGx5KGdlbmVyYWxNZXRhdmFyaWFibGUsIHNwZWNpZmljTWV0YXZhcmlhYmxlLCBzdWJzdGl0dXRpb25zLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KSB7XG4gIGxldCBtZXRhdmFyaWFibGVVbmlmaWVzSW50cmluc2ljYWxseSA9IGZhbHNlO1xuXG4gIGNvbnN0IGdlbmVyYWxNZXRhdmFyaWFibGVOb2RlID0gZ2VuZXJhbE1ldGF2YXJpYWJsZS5nZXROb2RlKCksXG4gICAgICAgIHNwZWNpZmljTWV0YXZhcmlhYmxlTm9kZSA9IHNwZWNpZmljTWV0YXZhcmlhYmxlLmdldE5vZGUoKSxcbiAgICAgICAgZ2VuZXJhbE5vZGUgPSBnZW5lcmFsTWV0YXZhcmlhYmxlTm9kZSwgLy8vXG4gICAgICAgIHNwZWNpZmljTm9kZSA9IHNwZWNpZmljTWV0YXZhcmlhYmxlTm9kZSwgLy8vXG4gICAgICAgIHN1Y2Nlc3MgPSBpbnRyaW5zaWNMZXZlbFBhc3MucnVuKGdlbmVyYWxOb2RlLCBzcGVjaWZpY05vZGUsIHN1YnN0aXR1dGlvbnMsIGdlbmVyYWxDb250ZXh0LCBzcGVjaWZpY0NvbnRleHQpO1xuXG4gIGlmIChzdWNjZXNzKSB7XG4gICAgbWV0YXZhcmlhYmxlVW5pZmllc0ludHJpbnNpY2FsbHkgPSB0cnVlO1xuICB9XG5cbiAgcmV0dXJuIG1ldGF2YXJpYWJsZVVuaWZpZXNJbnRyaW5zaWNhbGx5O1xufVxuIl0sIm5hbWVzIjpbInVuaWZ5TWV0YXZhcmlhYmxlIiwidW5pZnlNZXRhdmFyaWFibGVJbnRyaW5zaWNhbGx5IiwidW5pZnlTdGF0ZW1lbnQiLCJ1bmlmeVN0YXRlbWVudEludHJpbnNpY2FsbHkiLCJ1bmlmeVN0YXRlbWVudFdpdGhDb21iaW5hdG9yIiwidW5pZnlTdWJzdGl0dXRpb24iLCJ1bmlmeVRlcm1XaXRoQ29uc3RydWN0b3IiLCJub25UZXJtaW5hbE5vZGVRdWVyeSIsIm5vZGVRdWVyeSIsInR5cGVOb2RlUXVlcnkiLCJ0ZXJtTm9kZVF1ZXJ5IiwiZnJhbWVOb2RlUXVlcnkiLCJtZXRhVHlwZU5vZGVRdWVyeSIsInN0YXRlbWVudE5vZGVRdWVyeSIsInRlcm1WYXJpYWJsZU5vZGVRdWVyeSIsInN0YXRlbWVudE1ldGF2YXJpYWJsZU5vZGVRdWVyeSIsImFzc3VtcHRpb25NZXRhdmFyaWFibGVOb2RlUXVlcnkiLCJmcmFtZUFzc3VtcHRpb25NZXRhdmFyaWFibGVOb2RlUXVlcnkiLCJQYXNzIiwicnVuIiwiZ2VuZXJhbE5vZGUiLCJzcGVjaWZpY05vZGUiLCJyZW1haW5pbmdBcmd1bWVudHMiLCJzdWNjZXNzIiwidmlzaXRlZCIsInZpc2l0Tm9kZSIsImRlc2NlbmQiLCJnZW5lcmFsQ2hpbGROb2RlcyIsInNwZWNpZmljQ2hpbGROb2RlcyIsImRlc2NlbmRlZCIsImdlbmVyYWxDaGlsZE5vZGVzTGVuZ3RoIiwibGVuZ3RoIiwic3BlY2lmaWNDaGlsZE5vZGVzTGVuZ3RoIiwic3BlY2lmaWNUZXJtaW5hbE5vZGVNYXAiLCJ0ZXJtaW5hbE5vZGVNYXBGcm9tTm9kZXMiLCJnZW5lcmFsVGVybWluYWxOb2RlTWFwIiwidGVybWluYWxOb2RlTWFwc0VxdWFsIiwiYXJlVGVybWluYWxOb2RlTWFwc0VxdWFsIiwibGFzdFJlbWFpbmluZ0FyZ3VtZW50RnVuY3Rpb24iLCJpc0xhc3RSZW1haW5pbmdBcmd1bWVudEZ1bmN0aW9uIiwiaW5kZXgiLCJkZXNjZW5kZWRBaGVhZCIsImRlc2NlbmRBaGVhZCIsImV2ZXJ5IiwiZ2VuZXJhbENoaWxkTm9kZSIsInNwZWNpZmljQ2hpbGROb2RlIiwicG9wIiwicHVzaCIsImFoZWFkSW5kZXgiLCJnZW5lcmFsTm9kZVRlcm1pbmFsTm9kZSIsImlzVGVybWluYWxOb2RlIiwic3BlY2lmaWNOb2RlVGVybWluYWxOb2RlIiwiZ2VuZXJhbE5vZGVOb25UZXJtaW5hbE5vZGUiLCJpc05vblRlcm1pbmFsTm9kZSIsInNwZWNpZmljTm9kZU5vblRlcm1pbmFsTm9kZSIsImdlbmVyYWxUZXJtaW5hbE5vZGUiLCJzcGVjaWZpY1Rlcm1pbmFsTm9kZSIsInZpc2l0VGVybWluYWxOb2RlIiwiZ2VuZXJhbE5vblRlcm1pbmFsTm9kZSIsInNwZWNpZmljTm9uVGVybWluYWxOb2RlIiwidmlzaXROb25UZXJtaW5hbE5vZGUiLCJtYXBzIiwiZ2VuZXJhbE5vZGVRdWVyeSIsInNwZWNpZmljTm9kZVF1ZXJ5IiwiZ2VuZXJhbE5vblRlcm1pbmFsTm9kZVJ1bGVOYW1lIiwiZ2V0UnVsZU5hbWUiLCJzcGVjaWZpY05vblRlcm1pbmFsTm9kZVJ1bGVOYW1lIiwiZ2VuZXJhbE5vblRlcm1pbmFsTm9kZUNoaWxkTm9kZXMiLCJnZXRDaGlsZE5vZGVzIiwic3BlY2lmaWNOb25UZXJtaW5hbE5vZGVDaGlsZE5vZGVzIiwic29tZSIsIm1hcCIsIk1ldGFMZXZlbFBhc3MiLCJnZW5lcmFsQXNzdW1wdGlvbk1ldGF2YXJpYWJsZU5vZGUiLCJzcGVjaWZpY0Fzc3VtcHRpb25NZXRhdmFyaWFibGVOb2RlIiwic3Vic3RpdHV0aW9ucyIsImdlbmVyYWxDb250ZXh0Iiwic3BlY2lmaWNDb250ZXh0IiwiY29udGV4dCIsIm1ldGF2YXJpYWJsZU5vZGUiLCJtZXRhdmFyaWFibGVOYW1lIiwiZ2V0TWV0YXZhcmlhYmxlTmFtZSIsIm1ldGF2YXJpYWJsZSIsImZpbmRNZXRhdmFyaWFibGVCeU1ldGF2YXJpYWJsZU5hbWUiLCJyZWZlcmVuY2UiLCJmaW5kUmVmZXJlbmNlQnlNZXRhdmFyaWFibGVOb2RlIiwicmVmZXJlbmNlVW5pZmllcyIsInVuaWZ5UmVmZXJlbmNlIiwiZ2VuZXJhbFN0YXRlbWVudE1ldGF2YXJpYWJsZU5vZGUiLCJzcGVjaWZpY1N0YXRlbWVudE5vZGUiLCJzdGF0ZW1lbnROb2RlIiwibWV0YXZhcmlhYmxlTm9kZVBhcmVudE5vZGUiLCJnZXRQYXJlbnROb2RlIiwiZnJhbWVTdWJzdGl0dXRpb25Ob2RlIiwiZ2V0RnJhbWVTdWJzdGl0dXRpb25Ob2RlIiwidGVybVN1YnN0aXR1dGlvbk5vZGUiLCJnZXRUZXJtU3Vic3RpdHV0aW9uTm9kZSIsInN1YnN0aXR1dGlvbk5vZGUiLCJzdWJzdGl0dXRpb24iLCJmaW5kU3Vic3RpdHV0aW9uQnlTdWJzdGl0dXRpb25Ob2RlIiwic3RhdGVtZW50IiwiZmluZFN0YXRlbWVudEJ5U3RhdGVtZW50Tm9kZSIsInN0YXRlbWVudFVuaWZpZXMiLCJnZW5lcmFsRnJhbWVBc3N1bXB0aW9uTWV0YXZhcmlhYmxlTm9kZSIsInNwZWNpZmljRnJhbWVOb2RlIiwiZnJhbWVOb2RlIiwiZnJhbWUiLCJmaW5kRnJhbWVCeUZyYW1lTm9kZSIsImZyYW1lVW5pZmllcyIsInVuaWZ5RnJhbWUiLCJnZW5lcmFsVGVybVZhcmlhYmxlTm9kZSIsInNwZWNpZmljVGVybU5vZGUiLCJ0ZXJtTm9kZSIsInZhcmlhYmxlTm9kZSIsInZhcmlhYmxlSWRlbnRpZmllciIsImdldFZhcmlhYmxlSWRlbnRpZmllciIsInZhcmlhYmxlIiwiZmluZFZhcmlhYmxlQnlWYXJpYWJsZUlkZW50aWZpZXIiLCJ0ZXJtIiwiZmluZFRlcm1CeVRlcm1Ob2RlIiwidGVybVVuaWZpZXMiLCJ1bmlmeVRlcm0iLCJDb21iaW5hdG9yUGFzcyIsImdlbmVyYWxNZXRhVHlwZU5vZGUiLCJhc3NpZ25tZW50cyIsInN0YXRlZCIsIm1ldGFUeXBlTm9kZSIsIm1ldGFUeXBlTmFtZSIsImdldE1ldGFUeXBlTmFtZSIsIm1ldGFUeXBlIiwiZmluZE1ldGFUeXBlQnlNZXRhVHlwZU5hbWUiLCJzdGF0ZW1lbnRGcm9tU3RhdGVtZW50Tm9kZSIsInN0YXRlbWVudFZhbGlkYXRlc0dpdmVuVHlwZSIsInZhbGlkYXRlR2l2ZW5NZXRhVHlwZSIsImZyYW1lRnJvbUZyYW1lTm9kZSIsImZyYW1lVmFsaWRhdGVzR2l2ZW5NZXRhVHlwZSIsImdlbmVyYWxUeXBlTm9kZSIsInR5cGVOb2RlIiwibm9taW5hbFR5cGVOYW1lIiwiZ2V0Tm9taW5hbFR5cGVOYW1lIiwidHlwZSIsImZpbmRUeXBlQnlOb21pbmFsVHlwZU5hbWUiLCJ0ZXJtRnJvbVRlcm1Ob2RlIiwidGVybVZhbGlkYXRlc0dpdmVuVHlwZSIsInZhbGlkYXRlR2l2ZW5UeXBlIiwiQ29uc3RydWN0b3JQYXNzIiwiTWV0YXZhcmlhYmxlUGFzcyIsIkludHJpbnNpY0xldmVsUGFzcyIsIm1ldGFMZXZlbFBhc3MiLCJjb21iaW5hdG9yUGFzcyIsImNvbnN0cnVjdG9yUGFzcyIsIm1ldGF2YXJpYWJsZVBhc3MiLCJpbnRyaW5zaWNMZXZlbFBhc3MiLCJnZW5lcmFsU3RhdGVtZW50Iiwic3BlY2lmaWNTdGF0ZW1lbnQiLCJnZW5lcmFsU3RhdGVtZW50Tm9kZSIsImdldE5vZGUiLCJnZW5lcmFsU3Vic3RpdHV0aW9uIiwic3BlY2lmaWNTdWJzdGl0dXRpb24iLCJzdWJzdGl0dXRpb25VbmlmaWVzIiwiZ2VuZXJhbFN1YnN0aXR1dGlvbk5vZGUiLCJzcGVjaWZpY1N1YnN0aXR1dGlvbk5vZGUiLCJnZW5lcmFsTWV0YXZhcmlhYmxlIiwic3BlY2lmaWNNZXRhdmFyaWFibGUiLCJtZXRhdmFyaWFibGVVbmlmaWVzIiwiZ2VuZXJhbE1ldGF2YXJpYWJsZU5vZGUiLCJzcGVjaWZpY01ldGF2YXJpYWJsZU5vZGUiLCJjb25zdHJ1Y3RvciIsInRlcm1VbmlmaWVzV2l0aENvbnN0cnVjdG9yIiwiY29uc3RydWN0b3JUZXJtIiwiZ2V0VGVybSIsImNvbnN0cnVjdG9yVGVybU5vZGUiLCJzdGF0ZW1lbnRVbmlmaWVzSW50cmluc2ljYWxseSIsImNvbWJpbmF0b3IiLCJzdGF0ZW1lbnRVbmlmaWVzV2l0aENvbWJpbmF0b3IiLCJjb21iaW5hdG9yU3RhdGVtZW50IiwiZ2V0U3RhdGVtZW50IiwiY29tYmluYXRvclN0YXRlbWVudE5vZGUiLCJtZXRhdmFyaWFibGVVbmlmaWVzSW50cmluc2ljYWxseSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O1FBMGlCZ0JBO2VBQUFBOztRQTREQUM7ZUFBQUE7O1FBNUZBQztlQUFBQTs7UUE2REFDO2VBQUFBOztRQWdCQUM7ZUFBQUE7O1FBN0RBQztlQUFBQTs7UUE4QkFDO2VBQUFBOzs7cUJBdGpCVTt5QkFDaUI7dUJBQ3NDO29CQUNtQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVwRyxJQUFNQyx1QkFBdUJDLElBQUFBLGdCQUFTLEVBQUM7QUFFdkMsSUFBTUMsZ0JBQWdCRCxJQUFBQSxnQkFBUyxFQUFDLFVBQzFCRSxnQkFBZ0JGLElBQUFBLGdCQUFTLEVBQUMsVUFDMUJHLGlCQUFpQkgsSUFBQUEsZ0JBQVMsRUFBQyxXQUMzQkksb0JBQW9CSixJQUFBQSxnQkFBUyxFQUFDLGNBQzlCSyxxQkFBcUJMLElBQUFBLGdCQUFTLEVBQUMsZUFDL0JNLHdCQUF3Qk4sSUFBQUEsZ0JBQVMsRUFBQyxvQkFDbENPLGlDQUFpQ1AsSUFBQUEsZ0JBQVMsRUFBQyw2QkFDM0NRLGtDQUFrQ1IsSUFBQUEsZ0JBQVMsRUFBQyw4QkFDNUNTLHVDQUF1Q1QsSUFBQUEsZ0JBQVMsRUFBQztBQUV2RCxJQUFBLEFBQU1VLHFCQUFOO2FBQU1B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
|
|
621
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm9jZXNzL3VuaWZ5LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBub2RlUXVlcnkgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3F1ZXJ5XCI7XG5pbXBvcnQgeyBmaW5kTWV0YVR5cGVCeU1ldGFUeXBlTmFtZSB9IGZyb20gXCIuLi9tZXRhVHlwZXNcIjtcbmltcG9ydCB7IHRlcm1Gcm9tVGVybU5vZGUsIGZyYW1lRnJvbUZyYW1lTm9kZSwgc3RhdGVtZW50RnJvbVN0YXRlbWVudE5vZGUgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2VsZW1lbnRcIjtcbmltcG9ydCB7IHRlcm1pbmFsTm9kZU1hcEZyb21Ob2RlcywgYXJlVGVybWluYWxOb2RlTWFwc0VxdWFsLCBpc0xhc3RSZW1haW5pbmdBcmd1bWVudEZ1bmN0aW9uIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9wYXNzXCI7XG5cbmNvbnN0IG5vblRlcm1pbmFsTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiLypcIik7XG5cbmNvbnN0IHR5cGVOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvdHlwZVwiKSxcbiAgICAgIHRlcm1Ob2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvdGVybVwiKSxcbiAgICAgIGZyYW1lTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL2ZyYW1lXCIpLFxuICAgICAgbWV0YVR5cGVOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvbWV0YVR5cGVcIiksXG4gICAgICBzdGF0ZW1lbnROb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvc3RhdGVtZW50XCIpLFxuICAgICAgdGVybVZhcmlhYmxlTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3Rlcm0vdmFyaWFibGUhXCIpLFxuICAgICAgc3RhdGVtZW50TWV0YXZhcmlhYmxlTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3N0YXRlbWVudC9tZXRhdmFyaWFibGUhXCIpLFxuICAgICAgYXNzdW1wdGlvbk1ldGF2YXJpYWJsZU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9hc3N1bXB0aW9uL21ldGF2YXJpYWJsZSFcIiksXG4gICAgICBmcmFtZUFzc3VtcHRpb25NZXRhdmFyaWFibGVOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvZnJhbWUvYXNzdW1wdGlvbiEvbWV0YXZhcmlhYmxlIVwiKTtcblxuY2xhc3MgUGFzcyB7XG4gIHJ1bihnZW5lcmFsTm9kZSwgc3BlY2lmaWNOb2RlLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcbiAgICBsZXQgc3VjY2VzcztcblxuICAgIGNvbnN0IHZpc2l0ZWQgPSB0aGlzLnZpc2l0Tm9kZShnZW5lcmFsTm9kZSwgc3BlY2lmaWNOb2RlLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpO1xuXG4gICAgc3VjY2VzcyA9IHZpc2l0ZWQ7ICAvLy9cblxuICAgIHJldHVybiBzdWNjZXNzO1xuICB9XG5cbiAgZGVzY2VuZChnZW5lcmFsQ2hpbGROb2Rlcywgc3BlY2lmaWNDaGlsZE5vZGVzLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcbiAgICBsZXQgZGVzY2VuZGVkID0gZmFsc2U7XG5cbiAgICBjb25zdCBnZW5lcmFsQ2hpbGROb2Rlc0xlbmd0aCA9IGdlbmVyYWxDaGlsZE5vZGVzLmxlbmd0aCxcbiAgICAgICAgICBzcGVjaWZpY0NoaWxkTm9kZXNMZW5ndGggPSBzcGVjaWZpY0NoaWxkTm9kZXMubGVuZ3RoO1xuXG4gICAgaWYgKGdlbmVyYWxDaGlsZE5vZGVzTGVuZ3RoID09PSBzcGVjaWZpY0NoaWxkTm9kZXNMZW5ndGgpIHtcbiAgICAgIGNvbnN0IHNwZWNpZmljVGVybWluYWxOb2RlTWFwID0gdGVybWluYWxOb2RlTWFwRnJvbU5vZGVzKHNwZWNpZmljQ2hpbGROb2RlcyksXG4gICAgICAgICAgICBnZW5lcmFsVGVybWluYWxOb2RlTWFwID0gdGVybWluYWxOb2RlTWFwRnJvbU5vZGVzKGdlbmVyYWxDaGlsZE5vZGVzKSxcbiAgICAgICAgICAgIHRlcm1pbmFsTm9kZU1hcHNFcXVhbCA9IGFyZVRlcm1pbmFsTm9kZU1hcHNFcXVhbChnZW5lcmFsVGVybWluYWxOb2RlTWFwLCBzcGVjaWZpY1Rlcm1pbmFsTm9kZU1hcCk7XG5cbiAgICAgIGlmICh0ZXJtaW5hbE5vZGVNYXBzRXF1YWwpIHtcbiAgICAgICAgY29uc3QgbGFzdFJlbWFpbmluZ0FyZ3VtZW50RnVuY3Rpb24gPSBpc0xhc3RSZW1haW5pbmdBcmd1bWVudEZ1bmN0aW9uKHJlbWFpbmluZ0FyZ3VtZW50cyk7XG5cbiAgICAgICAgaWYgKGxhc3RSZW1haW5pbmdBcmd1bWVudEZ1bmN0aW9uKSB7XG4gICAgICAgICAgY29uc3QgaW5kZXggPSAwLFxuICAgICAgICAgICAgICAgIGRlc2NlbmRlZEFoZWFkID0gdGhpcy5kZXNjZW5kQWhlYWQoaW5kZXgsIGdlbmVyYWxDaGlsZE5vZGVzLCBzcGVjaWZpY0NoaWxkTm9kZXMsLi4ucmVtYWluaW5nQXJndW1lbnRzKTtcblxuICAgICAgICAgIGlmIChkZXNjZW5kZWRBaGVhZCkge1xuICAgICAgICAgICAgZGVzY2VuZGVkID0gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc3QgdmlzaXRlZCA9IGdlbmVyYWxDaGlsZE5vZGVzLmV2ZXJ5KChnZW5lcmFsQ2hpbGROb2RlLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgY29uc3Qgc3BlY2lmaWNDaGlsZE5vZGUgPSBzcGVjaWZpY0NoaWxkTm9kZXNbaW5kZXhdLFxuICAgICAgICAgICAgICAgICAgc3BlY2lmaWNOb2RlID0gc3BlY2lmaWNDaGlsZE5vZGUsIC8vL1xuICAgICAgICAgICAgICAgICAgZ2VuZXJhbE5vZGUgPSBnZW5lcmFsQ2hpbGROb2RlLCAvLy9cbiAgICAgICAgICAgICAgICAgIHZpc2l0ZWQgPSB0aGlzLnZpc2l0Tm9kZShnZW5lcmFsTm9kZSwgc3BlY2lmaWNOb2RlLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpO1xuXG4gICAgICAgICAgICBpZiAodmlzaXRlZCkge1xuICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIGlmICh2aXNpdGVkKSB7XG4gICAgICAgICAgICBkZXNjZW5kZWQgPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBkZXNjZW5kZWQ7XG4gIH1cblxuICBkZXNjZW5kQWhlYWQoaW5kZXgsIGdlbmVyYWxDaGlsZE5vZGVzLCBzcGVjaWZpY0NoaWxkTm9kZXMsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cykge1xuICAgIGxldCBkZXNjZW5kZWRBaGVhZCA9IGZhbHNlO1xuXG4gICAgY29uc3QgZGVzY2VuZEFoZWFkID0gcmVtYWluaW5nQXJndW1lbnRzLnBvcCgpLCAvLy9cbiAgICAgICAgICBnZW5lcmFsQ2hpbGROb2Rlc0xlbmd0aCA9IGdlbmVyYWxDaGlsZE5vZGVzLmxlbmd0aDtcblxuICAgIGlmIChpbmRleCA9PT0gZ2VuZXJhbENoaWxkTm9kZXNMZW5ndGgpIHtcbiAgICAgIGRlc2NlbmRlZEFoZWFkID0gZGVzY2VuZEFoZWFkKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGdlbmVyYWxDaGlsZE5vZGUgPSBnZW5lcmFsQ2hpbGROb2Rlc1tpbmRleF0sXG4gICAgICAgICAgICBzcGVjaWZpY0NoaWxkTm9kZSA9IHNwZWNpZmljQ2hpbGROb2Rlc1tpbmRleF0sXG4gICAgICAgICAgICBnZW5lcmFsTm9kZSA9IGdlbmVyYWxDaGlsZE5vZGUsIC8vL1xuICAgICAgICAgICAgc3BlY2lmaWNOb2RlID0gc3BlY2lmaWNDaGlsZE5vZGUsIC8vL1xuICAgICAgICAgICAgdmlzaXRlZCA9IHRoaXMudmlzaXROb2RlKGdlbmVyYWxOb2RlLCBzcGVjaWZpY05vZGUsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cywgKCkgPT4ge1xuICAgICAgICAgICAgICByZW1haW5pbmdBcmd1bWVudHMucHVzaChkZXNjZW5kQWhlYWQpOyAvLy9cblxuICAgICAgICAgICAgICBjb25zdCBhaGVhZEluZGV4ID0gaW5kZXggKyAxLFxuICAgICAgICAgICAgICAgICAgICBkZXNjZW5kZWRBaGVhZCA9IHRoaXMuZGVzY2VuZEFoZWFkKGFoZWFkSW5kZXgsIGdlbmVyYWxDaGlsZE5vZGVzLCBzcGVjaWZpY0NoaWxkTm9kZXMsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cyk7XG5cbiAgICAgICAgICAgICAgcmV0dXJuIGRlc2NlbmRlZEFoZWFkO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgIGlmICh2aXNpdGVkKSB7XG4gICAgICAgIGRlc2NlbmRlZEFoZWFkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZGVzY2VuZGVkQWhlYWQ7XG4gIH1cblxuICB2aXNpdE5vZGUoZ2VuZXJhbE5vZGUsIHNwZWNpZmljTm9kZSwgLi4ucmVtYWluaW5nQXJndW1lbnRzKSB7XG4gICAgbGV0IHZpc2l0ZWQgPSBmYWxzZTtcblxuICAgIGNvbnN0IGdlbmVyYWxOb2RlVGVybWluYWxOb2RlID0gZ2VuZXJhbE5vZGUuaXNUZXJtaW5hbE5vZGUoKSxcbiAgICAgICAgICBzcGVjaWZpY05vZGVUZXJtaW5hbE5vZGUgPSBzcGVjaWZpY05vZGUuaXNUZXJtaW5hbE5vZGUoKSxcbiAgICAgICAgICBnZW5lcmFsTm9kZU5vblRlcm1pbmFsTm9kZSA9IGdlbmVyYWxOb2RlLmlzTm9uVGVybWluYWxOb2RlKCksXG4gICAgICAgICAgc3BlY2lmaWNOb2RlTm9uVGVybWluYWxOb2RlID0gc3BlY2lmaWNOb2RlLmlzTm9uVGVybWluYWxOb2RlKCk7XG5cbiAgICBpZiAoZmFsc2UpIHtcbiAgICAgIC8vL1xuICAgIH0gZWxzZSBpZiAoZ2VuZXJhbE5vZGVUZXJtaW5hbE5vZGUgJiYgc3BlY2lmaWNOb2RlVGVybWluYWxOb2RlKSB7XG4gICAgICBjb25zdCBnZW5lcmFsVGVybWluYWxOb2RlID0gZ2VuZXJhbE5vZGUsICAvLy9cbiAgICAgICAgICAgIHNwZWNpZmljVGVybWluYWxOb2RlID0gc3BlY2lmaWNOb2RlOyAgLy8vXG5cbiAgICAgIHZpc2l0ZWQgPSB0aGlzLnZpc2l0VGVybWluYWxOb2RlKGdlbmVyYWxUZXJtaW5hbE5vZGUsIHNwZWNpZmljVGVybWluYWxOb2RlLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpO1xuICAgIH0gZWxzZSBpZiAoZ2VuZXJhbE5vZGVOb25UZXJtaW5hbE5vZGUgJiYgc3BlY2lmaWNOb2RlTm9uVGVybWluYWxOb2RlKSB7XG4gICAgICBjb25zdCBnZW5lcmFsTm9uVGVybWluYWxOb2RlID0gZ2VuZXJhbE5vZGUsICAvLy9cbiAgICAgICAgICAgIHNwZWNpZmljTm9uVGVybWluYWxOb2RlID0gc3BlY2lmaWNOb2RlOyAvLy9cblxuICAgICAgdmlzaXRlZCA9IHRoaXMudmlzaXROb25UZXJtaW5hbE5vZGUoZ2VuZXJhbE5vblRlcm1pbmFsTm9kZSwgc3BlY2lmaWNOb25UZXJtaW5hbE5vZGUsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZpc2l0ZWQ7XG4gIH1cblxuICB2aXNpdFRlcm1pbmFsTm9kZShnZW5lcmFsVGVybWluYWxOb2RlLCBzcGVjaWZpY1Rlcm1pbmFsTm9kZSwgLi4ucmVtYWluaW5nQXJndW1lbnRzKSB7IC8vL1xuICAgIGxldCB2aXNpdGVkID0gZmFsc2U7XG5cbiAgICBjb25zdCBsYXN0UmVtYWluaW5nQXJndW1lbnRGdW5jdGlvbiA9IGlzTGFzdFJlbWFpbmluZ0FyZ3VtZW50RnVuY3Rpb24ocmVtYWluaW5nQXJndW1lbnRzKTtcblxuICAgIGlmIChsYXN0UmVtYWluaW5nQXJndW1lbnRGdW5jdGlvbikge1xuICAgICAgY29uc3QgZGVzY2VuZEFoZWFkID0gcmVtYWluaW5nQXJndW1lbnRzLnBvcCgpLFxuICAgICAgICAgICAgZGVzY2VuZGVkQWhlYWQgPSBkZXNjZW5kQWhlYWQoKTtcblxuICAgICAgaWYgKGRlc2NlbmRBaGVhZCkge1xuICAgICAgICB2aXNpdGVkID0gZGVzY2VuZGVkQWhlYWQ7ICAvLy9cbiAgICAgIH1cblxuICAgICAgcmVtYWluaW5nQXJndW1lbnRzLnB1c2goZGVzY2VuZEFoZWFkKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdmlzaXRlZCA9IHRydWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZpc2l0ZWQ7XG4gIH1cblxuICB2aXNpdE5vblRlcm1pbmFsTm9kZShnZW5lcmFsTm9uVGVybWluYWxOb2RlLCBzcGVjaWZpY05vblRlcm1pbmFsTm9kZSwgLi4ucmVtYWluaW5nQXJndW1lbnRzKSB7XG4gICAgbGV0IHZpc2l0ZWQgPSBmYWxzZTtcblxuICAgIGxldCB7IG1hcHMgfSA9IHRoaXMuY29uc3RydWN0b3I7XG5cbiAgICBtYXBzID0gWyAvLy9cbiAgICAgIC4uLm1hcHMsXG4gICAgICB7XG4gICAgICAgIGdlbmVyYWxOb2RlUXVlcnk6IG5vblRlcm1pbmFsTm9kZVF1ZXJ5LFxuICAgICAgICBzcGVjaWZpY05vZGVRdWVyeTogbm9uVGVybWluYWxOb2RlUXVlcnksXG4gICAgICAgIHJ1bjogKGdlbmVyYWxOb2RlLCBzcGVjaWZpY05vZGUsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cykgPT4ge1xuICAgICAgICAgIGxldCB2aXNpdGVkID0gZmFsc2U7XG5cbiAgICAgICAgICBjb25zdCBnZW5lcmFsTm9uVGVybWluYWxOb2RlUnVsZU5hbWUgPSBnZW5lcmFsTm9uVGVybWluYWxOb2RlLmdldFJ1bGVOYW1lKCksIC8vL1xuICAgICAgICAgICAgICAgIHNwZWNpZmljTm9uVGVybWluYWxOb2RlUnVsZU5hbWUgPSBzcGVjaWZpY05vblRlcm1pbmFsTm9kZS5nZXRSdWxlTmFtZSgpOyAvLy9cblxuICAgICAgICAgIGlmIChnZW5lcmFsTm9uVGVybWluYWxOb2RlUnVsZU5hbWUgPT09IHNwZWNpZmljTm9uVGVybWluYWxOb2RlUnVsZU5hbWUpIHtcbiAgICAgICAgICAgIGNvbnN0IGdlbmVyYWxOb25UZXJtaW5hbE5vZGVDaGlsZE5vZGVzID0gZ2VuZXJhbE5vblRlcm1pbmFsTm9kZS5nZXRDaGlsZE5vZGVzKCksXG4gICAgICAgICAgICAgICAgICBzcGVjaWZpY05vblRlcm1pbmFsTm9kZUNoaWxkTm9kZXMgPSBzcGVjaWZpY05vblRlcm1pbmFsTm9kZS5nZXRDaGlsZE5vZGVzKCksXG4gICAgICAgICAgICAgICAgICBnZW5lcmFsQ2hpbGROb2RlcyA9IGdlbmVyYWxOb25UZXJtaW5hbE5vZGVDaGlsZE5vZGVzLCAvLy9cbiAgICAgICAgICAgICAgICAgIHNwZWNpZmljQ2hpbGROb2RlcyA9IHNwZWNpZmljTm9uVGVybWluYWxOb2RlQ2hpbGROb2RlcywgLy8vXG4gICAgICAgICAgICAgICAgICBkZXNjZW5kZWQgPSB0aGlzLmRlc2NlbmQoZ2VuZXJhbENoaWxkTm9kZXMsIHNwZWNpZmljQ2hpbGROb2RlcywgLi4ucmVtYWluaW5nQXJndW1lbnRzKTtcblxuICAgICAgICAgICAgaWYgKGRlc2NlbmRlZCkge1xuICAgICAgICAgICAgICB2aXNpdGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gdmlzaXRlZDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIF1cblxuICAgIG1hcHMuc29tZSgobWFwKSA9PiB7XG4gICAgICBjb25zdCB7IGdlbmVyYWxOb2RlUXVlcnksIHNwZWNpZmljTm9kZVF1ZXJ5LCBydW4gfSA9IG1hcDtcblxuICAgICAgY29uc3QgZ2VuZXJhbE5vZGUgPSBnZW5lcmFsTm9kZVF1ZXJ5KGdlbmVyYWxOb25UZXJtaW5hbE5vZGUpLCAgLy8vXG4gICAgICAgICAgICBzcGVjaWZpY05vZGUgPSBzcGVjaWZpY05vZGVRdWVyeShzcGVjaWZpY05vblRlcm1pbmFsTm9kZSk7ICAvLy9cblxuICAgICAgaWYgKChnZW5lcmFsTm9kZSAhPT0gbnVsbCkgJiYgKHNwZWNpZmljTm9kZSAhPT0gbnVsbCkpIHtcbiAgICAgICAgY29uc3Qgc3VjY2VzcyAgPSBydW4oZ2VuZXJhbE5vZGUsIHNwZWNpZmljTm9kZSwgLi4ucmVtYWluaW5nQXJndW1lbnRzKTtcblxuICAgICAgICB2aXNpdGVkID0gc3VjY2VzczsgIC8vL1xuXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHZpc2l0ZWQ7XG4gIH1cbn1cblxuY2xhc3MgTWV0YUxldmVsUGFzcyBleHRlbmRzIFBhc3Mge1xuICBzdGF0aWMgbWFwcyA9IFtcbiAgICB7XG4gICAgICBnZW5lcmFsTm9kZVF1ZXJ5OiBhc3N1bXB0aW9uTWV0YXZhcmlhYmxlTm9kZVF1ZXJ5LFxuICAgICAgc3BlY2lmaWNOb2RlUXVlcnk6IGFzc3VtcHRpb25NZXRhdmFyaWFibGVOb2RlUXVlcnksXG4gICAgICBydW46IChnZW5lcmFsQXNzdW1wdGlvbk1ldGF2YXJpYWJsZU5vZGUsIHNwZWNpZmljQXNzdW1wdGlvbk1ldGF2YXJpYWJsZU5vZGUsIHN1YnN0aXR1dGlvbnMsIGdlbmVyYWxDb250ZXh0LCBzcGVjaWZpY0NvbnRleHQpID0+IHtcbiAgICAgICAgbGV0IHN1Y2Nlc3MgPSBmYWxzZTtcblxuICAgICAgICBsZXQgY29udGV4dCxcbiAgICAgICAgICAgIG1ldGF2YXJpYWJsZU5vZGU7XG5cbiAgICAgICAgY29udGV4dCA9IGdlbmVyYWxDb250ZXh0OyAvLy9cblxuICAgICAgICBtZXRhdmFyaWFibGVOb2RlID0gZ2VuZXJhbEFzc3VtcHRpb25NZXRhdmFyaWFibGVOb2RlOyAgLy8vXG5cbiAgICAgICAgY29uc3QgbWV0YXZhcmlhYmxlTmFtZSA9IG1ldGF2YXJpYWJsZU5vZGUuZ2V0TWV0YXZhcmlhYmxlTmFtZSgpLFxuICAgICAgICAgICAgICBtZXRhdmFyaWFibGUgPSBjb250ZXh0LmZpbmRNZXRhdmFyaWFibGVCeU1ldGF2YXJpYWJsZU5hbWUobWV0YXZhcmlhYmxlTmFtZSk7XG5cbiAgICAgICAgY29udGV4dCA9IHNwZWNpZmljQ29udGV4dDsgIC8vL1xuXG4gICAgICAgIG1ldGF2YXJpYWJsZU5vZGUgPSBzcGVjaWZpY0Fzc3VtcHRpb25NZXRhdmFyaWFibGVOb2RlOyAvLy9cblxuICAgICAgICBjb25zdCByZWZlcmVuY2UgPSBjb250ZXh0LmZpbmRSZWZlcmVuY2VCeU1ldGF2YXJpYWJsZU5vZGUobWV0YXZhcmlhYmxlTm9kZSksXG4gICAgICAgICAgICAgIHJlZmVyZW5jZVVuaWZpZXMgPSBtZXRhdmFyaWFibGUudW5pZnlSZWZlcmVuY2UocmVmZXJlbmNlLCBzdWJzdGl0dXRpb25zLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KTtcblxuICAgICAgICBpZiAocmVmZXJlbmNlVW5pZmllcykge1xuICAgICAgICAgIHN1Y2Nlc3MgPSB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHN1Y2Nlc3M7XG4gICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICBnZW5lcmFsTm9kZVF1ZXJ5OiBzdGF0ZW1lbnRNZXRhdmFyaWFibGVOb2RlUXVlcnksXG4gICAgICBzcGVjaWZpY05vZGVRdWVyeTogc3RhdGVtZW50Tm9kZVF1ZXJ5LFxuICAgICAgcnVuOiAoZ2VuZXJhbFN0YXRlbWVudE1ldGF2YXJpYWJsZU5vZGUsIHNwZWNpZmljU3RhdGVtZW50Tm9kZSwgc3Vic3RpdHV0aW9ucywgZ2VuZXJhbENvbnRleHQsIHNwZWNpZmljQ29udGV4dCkgPT4ge1xuICAgICAgICBsZXQgc3VjY2VzcyA9IGZhbHNlO1xuXG4gICAgICAgIGxldCBjb250ZXh0LFxuICAgICAgICAgICAgc3RhdGVtZW50Tm9kZTtcblxuICAgICAgICBjb250ZXh0ID0gZ2VuZXJhbENvbnRleHQ7IC8vL1xuXG4gICAgICAgIGNvbnN0IG1ldGF2YXJpYWJsZU5vZGUgPSBnZW5lcmFsU3RhdGVtZW50TWV0YXZhcmlhYmxlTm9kZSwgIC8vL1xuICAgICAgICAgICAgICBtZXRhdmFyaWFibGVOYW1lID0gbWV0YXZhcmlhYmxlTm9kZS5nZXRNZXRhdmFyaWFibGVOYW1lKCksXG4gICAgICAgICAgICAgIG1ldGF2YXJpYWJsZSA9IGNvbnRleHQuZmluZE1ldGF2YXJpYWJsZUJ5TWV0YXZhcmlhYmxlTmFtZShtZXRhdmFyaWFibGVOYW1lKSxcbiAgICAgICAgICAgICAgbWV0YXZhcmlhYmxlTm9kZVBhcmVudE5vZGUgPSBtZXRhdmFyaWFibGVOb2RlLmdldFBhcmVudE5vZGUoKTtcblxuICAgICAgICBzdGF0ZW1lbnROb2RlID0gbWV0YXZhcmlhYmxlTm9kZVBhcmVudE5vZGU7IC8vL1xuXG4gICAgICAgIGNvbnN0IGZyYW1lU3Vic3RpdHV0aW9uTm9kZSA9IHN0YXRlbWVudE5vZGUuZ2V0RnJhbWVTdWJzdGl0dXRpb25Ob2RlKCksXG4gICAgICAgICAgICAgIHRlcm1TdWJzdGl0dXRpb25Ob2RlID0gc3RhdGVtZW50Tm9kZS5nZXRUZXJtU3Vic3RpdHV0aW9uTm9kZSgpLFxuICAgICAgICAgICAgICBzdWJzdGl0dXRpb25Ob2RlID0gKGZyYW1lU3Vic3RpdHV0aW9uTm9kZSB8fCB0ZXJtU3Vic3RpdHV0aW9uTm9kZSksXG4gICAgICAgICAgICAgIHN1YnN0aXR1dGlvbiA9IChzdWJzdGl0dXRpb25Ob2RlICE9PSBudWxsKSA/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dC5maW5kU3Vic3RpdHV0aW9uQnlTdWJzdGl0dXRpb25Ob2RlKHN1YnN0aXR1dGlvbk5vZGUpIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGw7XG5cbiAgICAgICAgY29udGV4dCA9IHNwZWNpZmljQ29udGV4dDsgLy8vXG5cbiAgICAgICAgc3RhdGVtZW50Tm9kZSA9IHNwZWNpZmljU3RhdGVtZW50Tm9kZTsgIC8vL1xuXG4gICAgICAgIGNvbnN0IHN0YXRlbWVudCA9IGNvbnRleHQuZmluZFN0YXRlbWVudEJ5U3RhdGVtZW50Tm9kZShzdGF0ZW1lbnROb2RlKSxcbiAgICAgICAgICAgICAgc3RhdGVtZW50VW5pZmllcyA9IG1ldGF2YXJpYWJsZS51bmlmeVN0YXRlbWVudChzdGF0ZW1lbnQsIHN1YnN0aXR1dGlvbiwgc3Vic3RpdHV0aW9ucywgZ2VuZXJhbENvbnRleHQsIHNwZWNpZmljQ29udGV4dCk7XG5cbiAgICAgICAgaWYgKHN0YXRlbWVudFVuaWZpZXMpIHtcbiAgICAgICAgICBzdWNjZXNzID0gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBzdWNjZXNzO1xuICAgICAgfVxuICAgIH0sXG4gICAge1xuICAgICAgZ2VuZXJhbE5vZGVRdWVyeTogZnJhbWVBc3N1bXB0aW9uTWV0YXZhcmlhYmxlTm9kZVF1ZXJ5LFxuICAgICAgc3BlY2lmaWNOb2RlUXVlcnk6IGZyYW1lTm9kZVF1ZXJ5LFxuICAgICAgcnVuOiAoZ2VuZXJhbEZyYW1lQXNzdW1wdGlvbk1ldGF2YXJpYWJsZU5vZGUsIHNwZWNpZmljRnJhbWVOb2RlLCBzdWJzdGl0dXRpb25zLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KSA9PiB7XG4gICAgICAgIGxldCBzdWNjZXNzID0gZmFsc2U7XG5cbiAgICAgICAgY29uc3QgZnJhbWVOb2RlID0gc3BlY2lmaWNGcmFtZU5vZGUsIC8vL1xuICAgICAgICAgICAgICBtZXRhdmFyaWFibGVOb2RlID0gZ2VuZXJhbEZyYW1lQXNzdW1wdGlvbk1ldGF2YXJpYWJsZU5vZGUsICAvLy9cbiAgICAgICAgICAgICAgbWV0YXZhcmlhYmxlTmFtZSA9IG1ldGF2YXJpYWJsZU5vZGUuZ2V0TWV0YXZhcmlhYmxlTmFtZSgpO1xuXG4gICAgICAgIGxldCBjb250ZXh0O1xuXG4gICAgICAgIGNvbnRleHQgPSBnZW5lcmFsQ29udGV4dDsgLy8vXG5cbiAgICAgICAgY29uc3QgbWV0YXZhcmlhYmxlID0gY29udGV4dC5maW5kTWV0YXZhcmlhYmxlQnlNZXRhdmFyaWFibGVOYW1lKG1ldGF2YXJpYWJsZU5hbWUpO1xuXG4gICAgICAgIGNvbnRleHQgPSBzcGVjaWZpY0NvbnRleHQ7ICAvLy9cblxuICAgICAgICBjb25zdCBmcmFtZSA9IGNvbnRleHQuZmluZEZyYW1lQnlGcmFtZU5vZGUoZnJhbWVOb2RlKSxcbiAgICAgICAgICAgICAgZnJhbWVVbmlmaWVzID0gbWV0YXZhcmlhYmxlLnVuaWZ5RnJhbWUoZnJhbWUsIHN1YnN0aXR1dGlvbnMsIGdlbmVyYWxDb250ZXh0LCBzcGVjaWZpY0NvbnRleHQpO1xuXG4gICAgICAgIGlmIChmcmFtZVVuaWZpZXMpIHtcbiAgICAgICAgICBzdWNjZXNzID0gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBzdWNjZXNzO1xuICAgICAgfVxuICAgIH0sXG4gICAge1xuICAgICAgZ2VuZXJhbE5vZGVRdWVyeTogdGVybVZhcmlhYmxlTm9kZVF1ZXJ5LFxuICAgICAgc3BlY2lmaWNOb2RlUXVlcnk6IHRlcm1Ob2RlUXVlcnksXG4gICAgICBydW46IChnZW5lcmFsVGVybVZhcmlhYmxlTm9kZSwgc3BlY2lmaWNUZXJtTm9kZSwgc3Vic3RpdHV0aW9ucywgZ2VuZXJhbENvbnRleHQsIHNwZWNpZmljQ29udGV4dCkgPT4ge1xuICAgICAgICBsZXQgc3VjY2VzcyA9IGZhbHNlO1xuXG4gICAgICAgIGNvbnN0IHRlcm1Ob2RlID0gc3BlY2lmaWNUZXJtTm9kZSwgLy8vXG4gICAgICAgICAgICAgIHZhcmlhYmxlTm9kZSA9IGdlbmVyYWxUZXJtVmFyaWFibGVOb2RlLCAvLy9cbiAgICAgICAgICAgICAgdmFyaWFibGVJZGVudGlmaWVyID0gdmFyaWFibGVOb2RlLmdldFZhcmlhYmxlSWRlbnRpZmllcigpO1xuXG4gICAgICAgIGxldCBjb250ZXh0O1xuXG4gICAgICAgIGNvbnRleHQgPSBnZW5lcmFsQ29udGV4dDsgLy8vXG5cbiAgICAgICAgY29uc3QgdmFyaWFibGUgPSBjb250ZXh0LmZpbmRWYXJpYWJsZUJ5VmFyaWFibGVJZGVudGlmaWVyKHZhcmlhYmxlSWRlbnRpZmllcik7XG5cbiAgICAgICAgY29udGV4dCA9IHNwZWNpZmljQ29udGV4dDsgIC8vL1xuXG4gICAgICAgIGNvbnN0IHRlcm0gPSBjb250ZXh0LmZpbmRUZXJtQnlUZXJtTm9kZSh0ZXJtTm9kZSksXG4gICAgICAgICAgICAgIHRlcm1VbmlmaWVzID0gdmFyaWFibGUudW5pZnlUZXJtKHRlcm0sIHN1YnN0aXR1dGlvbnMsIGdlbmVyYWxDb250ZXh0LCBzcGVjaWZpY0NvbnRleHQpO1xuXG4gICAgICAgIGlmICh0ZXJtVW5pZmllcykge1xuICAgICAgICAgIHN1Y2Nlc3MgPSB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHN1Y2Nlc3M7XG4gICAgICB9XG4gICAgfVxuICBdO1xufVxuXG5jbGFzcyBDb21iaW5hdG9yUGFzcyBleHRlbmRzIFBhc3Mge1xuICBzdGF0aWMgbWFwcyA9IFtcbiAgICB7XG4gICAgICBnZW5lcmFsTm9kZVF1ZXJ5OiBtZXRhVHlwZU5vZGVRdWVyeSxcbiAgICAgIHNwZWNpZmljTm9kZVF1ZXJ5OiBzdGF0ZW1lbnROb2RlUXVlcnksXG4gICAgICBydW46IChnZW5lcmFsTWV0YVR5cGVOb2RlLCBzcGVjaWZpY1N0YXRlbWVudE5vZGUsIGFzc2lnbm1lbnRzLCBzdGF0ZWQsIGdlbmVyYWxDb250ZXh0LCBzcGVjaWZpY0NvbnRleHQpID0+IHtcbiAgICAgICAgbGV0IHN1Y2Nlc3MgPSBmYWxzZTtcblxuICAgICAgICBjb25zdCBtZXRhVHlwZU5vZGUgPSBnZW5lcmFsTWV0YVR5cGVOb2RlLCAvLy9cbiAgICAgICAgICAgICAgc3RhdGVtZW50Tm9kZSA9IHNwZWNpZmljU3RhdGVtZW50Tm9kZTsgLy8vXG5cbiAgICAgICAgbGV0IGNvbnRleHQ7XG5cbiAgICAgICAgY29udGV4dCA9IGdlbmVyYWxDb250ZXh0OyAvLy9cblxuICAgICAgICBjb25zdCBtZXRhVHlwZU5hbWUgPSBtZXRhVHlwZU5vZGUuZ2V0TWV0YVR5cGVOYW1lKCksXG4gICAgICAgICAgICAgIG1ldGFUeXBlID0gZmluZE1ldGFUeXBlQnlNZXRhVHlwZU5hbWUobWV0YVR5cGVOYW1lKTtcblxuICAgICAgICBjb250ZXh0ID0gc3BlY2lmaWNDb250ZXh0OyAgLy8vXG5cbiAgICAgICAgY29uc3Qgc3RhdGVtZW50ID0gc3RhdGVtZW50RnJvbVN0YXRlbWVudE5vZGUoc3RhdGVtZW50Tm9kZSwgY29udGV4dCksXG4gICAgICAgICAgICAgIHN0YXRlbWVudFZhbGlkYXRlc0dpdmVuVHlwZSA9IHN0YXRlbWVudC52YWxpZGF0ZUdpdmVuTWV0YVR5cGUobWV0YVR5cGUsIGFzc2lnbm1lbnRzLCBzdGF0ZWQsIGNvbnRleHQpO1xuXG4gICAgICAgIGlmIChzdGF0ZW1lbnRWYWxpZGF0ZXNHaXZlblR5cGUpIHtcbiAgICAgICAgICBzdWNjZXNzID0gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBzdWNjZXNzO1xuICAgICAgfVxuICAgIH0sXG4gICAge1xuICAgICAgZ2VuZXJhbE5vZGVRdWVyeTogbWV0YVR5cGVOb2RlUXVlcnksXG4gICAgICBzcGVjaWZpY05vZGVRdWVyeTogZnJhbWVOb2RlUXVlcnksXG4gICAgICBydW46IChnZW5lcmFsTWV0YVR5cGVOb2RlLCBzcGVjaWZpY0ZyYW1lTm9kZSwgYXNzaWdubWVudHMsIHN0YXRlZCwgZ2VuZXJhbENvbnRleHQsIHNwZWNpZmljQ29udGV4dCkgPT4ge1xuICAgICAgICBsZXQgc3VjY2VzcyA9IGZhbHNlO1xuXG4gICAgICAgIGNvbnN0IG1ldGFUeXBlTm9kZSA9IGdlbmVyYWxNZXRhVHlwZU5vZGUsIC8vL1xuICAgICAgICAgICAgICBmcmFtZU5vZGUgPSBzcGVjaWZpY0ZyYW1lTm9kZTsgLy8vXG5cbiAgICAgICAgbGV0IGNvbnRleHQ7XG5cbiAgICAgICAgY29udGV4dCA9IGdlbmVyYWxDb250ZXh0OyAvLy9cblxuICAgICAgICBjb25zdCBtZXRhVHlwZU5hbWUgPSBtZXRhVHlwZU5vZGUuZ2V0TWV0YVR5cGVOYW1lKCksXG4gICAgICAgICAgICAgIG1ldGFUeXBlID0gZmluZE1ldGFUeXBlQnlNZXRhVHlwZU5hbWUobWV0YVR5cGVOYW1lKTtcblxuICAgICAgICBjb250ZXh0ID0gc3BlY2lmaWNDb250ZXh0OyAgLy8vXG5cbiAgICAgICAgY29uc3QgZnJhbWUgPSBmcmFtZUZyb21GcmFtZU5vZGUoZnJhbWVOb2RlLCBjb250ZXh0KSxcbiAgICAgICAgICAgICAgZnJhbWVWYWxpZGF0ZXNHaXZlbk1ldGFUeXBlID0gZnJhbWUudmFsaWRhdGVHaXZlbk1ldGFUeXBlKG1ldGFUeXBlLCBhc3NpZ25tZW50cywgc3RhdGVkLCBjb250ZXh0KTtcblxuICAgICAgICBpZiAoZnJhbWVWYWxpZGF0ZXNHaXZlbk1ldGFUeXBlKSB7XG4gICAgICAgICAgc3VjY2VzcyA9IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gc3VjY2VzcztcbiAgICAgIH1cbiAgICB9LFxuICAgIHtcbiAgICAgIGdlbmVyYWxOb2RlUXVlcnk6IHR5cGVOb2RlUXVlcnksXG4gICAgICBzcGVjaWZpY05vZGVRdWVyeTogdGVybU5vZGVRdWVyeSxcbiAgICAgIHJ1bjogKGdlbmVyYWxUeXBlTm9kZSwgc3BlY2lmaWNUZXJtTm9kZSwgYXNzaWdubWVudHMsIHN0YXRlZCwgZ2VuZXJhbENvbnRleHQsIHNwZWNpZmljQ29udGV4dCkgPT4ge1xuICAgICAgICBsZXQgc3VjY2VzcyA9IGZhbHNlO1xuXG4gICAgICAgIGNvbnN0IHR5cGVOb2RlID0gZ2VuZXJhbFR5cGVOb2RlLCAvLy9cbiAgICAgICAgICAgICAgdGVybU5vZGUgPSBzcGVjaWZpY1Rlcm1Ob2RlLCAvLy9cbiAgICAgICAgICAgICAgbm9taW5hbFR5cGVOYW1lID0gdHlwZU5vZGUuZ2V0Tm9taW5hbFR5cGVOYW1lKCk7XG5cbiAgICAgICAgbGV0IGNvbnRleHQ7XG5cbiAgICAgICAgY29udGV4dCA9IGdlbmVyYWxDb250ZXh0OyAvLy9cblxuICAgICAgICBjb25zdCB0eXBlID0gY29udGV4dC5maW5kVHlwZUJ5Tm9taW5hbFR5cGVOYW1lKG5vbWluYWxUeXBlTmFtZSk7XG5cbiAgICAgICAgaWYgKHR5cGUgIT09IG51bGwpIHtcbiAgICAgICAgICBjb250ZXh0ID0gc3BlY2lmaWNDb250ZXh0OyAgLy8vXG5cbiAgICAgICAgICBjb25zdCB0ZXJtID0gdGVybUZyb21UZXJtTm9kZSh0ZXJtTm9kZSwgY29udGV4dCksXG4gICAgICAgICAgICAgICAgdGVybVZhbGlkYXRlc0dpdmVuVHlwZSA9IHRlcm0udmFsaWRhdGVHaXZlblR5cGUodHlwZSwgY29udGV4dCk7XG5cbiAgICAgICAgICBpZiAodGVybVZhbGlkYXRlc0dpdmVuVHlwZSkge1xuICAgICAgICAgICAgc3VjY2VzcyA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHN1Y2Nlc3M7XG4gICAgICB9XG4gICAgfVxuICBdO1xufVxuXG5jbGFzcyBDb25zdHJ1Y3RvclBhc3MgZXh0ZW5kcyBQYXNzIHtcbiAgc3RhdGljIG1hcHMgPSBbXG4gICAge1xuICAgICAgZ2VuZXJhbE5vZGVRdWVyeTogdHlwZU5vZGVRdWVyeSxcbiAgICAgIHNwZWNpZmljTm9kZVF1ZXJ5OiB0ZXJtTm9kZVF1ZXJ5LFxuICAgICAgcnVuOiAoZ2VuZXJhbFR5cGVOb2RlLCBzcGVjaWZpY1Rlcm1Ob2RlLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KSA9PiB7XG4gICAgICAgIGxldCBzdWNjZXNzID0gZmFsc2U7XG5cbiAgICAgICAgY29uc3QgdHlwZU5vZGUgPSBnZW5lcmFsVHlwZU5vZGUsIC8vL1xuICAgICAgICAgICAgICB0ZXJtTm9kZSA9IHNwZWNpZmljVGVybU5vZGUsIC8vL1xuICAgICAgICAgICAgICBub21pbmFsVHlwZU5hbWUgPSB0eXBlTm9kZS5nZXROb21pbmFsVHlwZU5hbWUoKTtcblxuICAgICAgICBsZXQgY29udGV4dDtcblxuICAgICAgICBjb250ZXh0ID0gZ2VuZXJhbENvbnRleHQ7IC8vL1xuXG4gICAgICAgIGNvbnN0IHR5cGUgPSBjb250ZXh0LmZpbmRUeXBlQnlOb21pbmFsVHlwZU5hbWUobm9taW5hbFR5cGVOYW1lKTtcblxuICAgICAgICBpZiAodHlwZSAhPT0gbnVsbCkge1xuICAgICAgICAgIGNvbnRleHQgPSBzcGVjaWZpY0NvbnRleHQ7ICAvLy9cblxuICAgICAgICAgIGNvbnN0IHRlcm0gPSB0ZXJtRnJvbVRlcm1Ob2RlKHRlcm1Ob2RlLCBjb250ZXh0KSxcbiAgICAgICAgICAgICAgICB0ZXJtVmFsaWRhdGVzR2l2ZW5UeXBlID0gdGVybS52YWxpZGF0ZUdpdmVuVHlwZSh0eXBlLCBjb250ZXh0KTtcblxuICAgICAgICAgIGlmICh0ZXJtVmFsaWRhdGVzR2l2ZW5UeXBlKSB7XG4gICAgICAgICAgICBzdWNjZXNzID0gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gc3VjY2VzcztcbiAgICAgIH1cbiAgICB9XG4gIF07XG59XG5cbmNsYXNzIE1ldGF2YXJpYWJsZVBhc3MgZXh0ZW5kcyBQYXNzIHtcbiAgc3RhdGljIG1hcHMgPSBbXG4gICAge1xuICAgICAgZ2VuZXJhbE5vZGVRdWVyeTogdHlwZU5vZGVRdWVyeSxcbiAgICAgIHNwZWNpZmljTm9kZVF1ZXJ5OiB0ZXJtTm9kZVF1ZXJ5LFxuICAgICAgcnVuOiAoZ2VuZXJhbFR5cGVOb2RlLCBzcGVjaWZpY1Rlcm1Ob2RlLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KSA9PiB7XG4gICAgICAgIGxldCBzdWNjZXNzID0gZmFsc2U7XG5cbiAgICAgICAgY29uc3QgdHlwZU5vZGUgPSBnZW5lcmFsVHlwZU5vZGUsIC8vL1xuICAgICAgICAgICAgICB0ZXJtTm9kZSA9IHNwZWNpZmljVGVybU5vZGUsIC8vL1xuICAgICAgICAgICAgICBub21pbmFsVHlwZU5hbWUgPSB0eXBlTm9kZS5nZXROb21pbmFsVHlwZU5hbWUoKSxcbiAgICAgICAgICAgICAgdHlwZSA9IGdlbmVyYWxDb250ZXh0LmZpbmRUeXBlQnlOb21pbmFsVHlwZU5hbWUobm9taW5hbFR5cGVOYW1lKSxcbiAgICAgICAgICAgICAgY29udGV4dCA9IHNwZWNpZmljQ29udGV4dCwgLy8vXG4gICAgICAgICAgICAgIHRlcm0gPSBjb250ZXh0LmZpbmRUZXJtQnlUZXJtTm9kZSh0ZXJtTm9kZSksXG4gICAgICAgICAgICAgIHRlcm1WYWxpZGF0ZXNHaXZlblR5cGUgPSB0ZXJtLnZhbGlkYXRlR2l2ZW5UeXBlKHR5cGUsIGNvbnRleHQpO1xuXG4gICAgICAgIGlmICh0ZXJtVmFsaWRhdGVzR2l2ZW5UeXBlKSB7XG4gICAgICAgICAgc3VjY2VzcyA9IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gc3VjY2VzcztcbiAgICAgIH1cbiAgICB9XG4gIF07XG59XG5cbmNsYXNzIEludHJpbnNpY0xldmVsUGFzcyBleHRlbmRzIFBhc3Mge1xuICBzdGF0aWMgbWFwcyA9IFtcbiAgICB7XG4gICAgICBnZW5lcmFsTm9kZVF1ZXJ5OiB0ZXJtVmFyaWFibGVOb2RlUXVlcnksXG4gICAgICBzcGVjaWZpY05vZGVRdWVyeTogdGVybU5vZGVRdWVyeSxcbiAgICAgIHJ1bjogKGdlbmVyYWxUZXJtVmFyaWFibGVOb2RlLCBzcGVjaWZpY1Rlcm1Ob2RlLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KSA9PiB7XG4gICAgICAgIGxldCBzdWNjZXNzID0gZmFsc2U7XG5cbiAgICAgICAgY29uc3QgdGVybU5vZGUgPSBzcGVjaWZpY1Rlcm1Ob2RlLCAvLy9cbiAgICAgICAgICAgICAgdmFyaWFibGVOb2RlID0gZ2VuZXJhbFRlcm1WYXJpYWJsZU5vZGUsIC8vL1xuICAgICAgICAgICAgICB2YXJpYWJsZUlkZW50aWZpZXIgPSB2YXJpYWJsZU5vZGUuZ2V0VmFyaWFibGVJZGVudGlmaWVyKCk7XG5cbiAgICAgICAgbGV0IGNvbnRleHQ7XG5cbiAgICAgICAgY29udGV4dCA9IGdlbmVyYWxDb250ZXh0OyAvLy9cblxuICAgICAgICBjb25zdCB2YXJpYWJsZSA9IGNvbnRleHQuZmluZFZhcmlhYmxlQnlWYXJpYWJsZUlkZW50aWZpZXIodmFyaWFibGVJZGVudGlmaWVyKTtcblxuICAgICAgICBjb250ZXh0ID0gc3BlY2lmaWNDb250ZXh0OyAgLy8vXG5cbiAgICAgICAgY29uc3QgdGVybSA9IGNvbnRleHQuZmluZFRlcm1CeVRlcm1Ob2RlKHRlcm1Ob2RlKSxcbiAgICAgICAgICAgICAgdGVybVVuaWZpZXMgPSB2YXJpYWJsZS51bmlmeVRlcm0odGVybSwgZ2VuZXJhbENvbnRleHQsIHNwZWNpZmljQ29udGV4dCk7XG5cbiAgICAgICAgaWYgKHRlcm1VbmlmaWVzKSB7XG4gICAgICAgICAgc3VjY2VzcyA9IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gc3VjY2VzcztcbiAgICAgIH1cbiAgICB9XG4gIF07XG59XG5cbmNvbnN0IG1ldGFMZXZlbFBhc3MgPSBuZXcgTWV0YUxldmVsUGFzcygpLFxuICAgICAgY29tYmluYXRvclBhc3MgPSBuZXcgQ29tYmluYXRvclBhc3MoKSxcbiAgICAgIGNvbnN0cnVjdG9yUGFzcyA9IG5ldyBDb25zdHJ1Y3RvclBhc3MoKSxcbiAgICAgIG1ldGF2YXJpYWJsZVBhc3MgPSBuZXcgTWV0YXZhcmlhYmxlUGFzcygpLFxuICAgICAgaW50cmluc2ljTGV2ZWxQYXNzID0gbmV3IEludHJpbnNpY0xldmVsUGFzcygpO1xuXG5leHBvcnQgZnVuY3Rpb24gdW5pZnlTdGF0ZW1lbnQoZ2VuZXJhbFN0YXRlbWVudCwgc3BlY2lmaWNTdGF0ZW1lbnQsIHN1YnN0aXR1dGlvbnMsIGdlbmVyYWxDb250ZXh0LCBzcGVjaWZpY0NvbnRleHQpIHtcbiAgbGV0IHN0YXRlbWVudFVuaWZpZXMgPSBmYWxzZTtcblxuICBjb25zdCBnZW5lcmFsU3RhdGVtZW50Tm9kZSA9IGdlbmVyYWxTdGF0ZW1lbnQuZ2V0Tm9kZSgpLFxuICAgICAgICBzcGVjaWZpY1N0YXRlbWVudE5vZGUgPSBzcGVjaWZpY1N0YXRlbWVudC5nZXROb2RlKCksXG4gICAgICAgIGdlbmVyYWxOb2RlID0gZ2VuZXJhbFN0YXRlbWVudE5vZGUsIC8vL1xuICAgICAgICBzcGVjaWZpY05vZGUgPSBzcGVjaWZpY1N0YXRlbWVudE5vZGUsICAvLy9cbiAgICAgICAgc3VjY2VzcyA9IG1ldGFMZXZlbFBhc3MucnVuKGdlbmVyYWxOb2RlLCBzcGVjaWZpY05vZGUsIHN1YnN0aXR1dGlvbnMsIGdlbmVyYWxDb250ZXh0LCBzcGVjaWZpY0NvbnRleHQpO1xuXG4gIGlmIChzdWNjZXNzKSB7XG4gICAgc3RhdGVtZW50VW5pZmllcyA9IHRydWU7XG4gIH1cblxuICByZXR1cm4gc3RhdGVtZW50VW5pZmllcztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVuaWZ5U3Vic3RpdHV0aW9uKGdlbmVyYWxTdWJzdGl0dXRpb24sIHNwZWNpZmljU3Vic3RpdHV0aW9uLCBzdWJzdGl0dXRpb25zLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KSB7XG4gIGxldCBzdWJzdGl0dXRpb25VbmlmaWVzID0gZmFsc2U7XG5cbiAgY29uc3QgZ2VuZXJhbFN1YnN0aXR1dGlvbk5vZGUgPSBnZW5lcmFsU3Vic3RpdHV0aW9uLmdldE5vZGUoKSxcbiAgICAgICAgc3BlY2lmaWNTdWJzdGl0dXRpb25Ob2RlID0gc3BlY2lmaWNTdWJzdGl0dXRpb24uZ2V0Tm9kZSgpLFxuICAgICAgICBnZW5lcmFsTm9kZSA9IGdlbmVyYWxTdWJzdGl0dXRpb25Ob2RlLCAvLy9cbiAgICAgICAgc3BlY2lmaWNOb2RlID0gc3BlY2lmaWNTdWJzdGl0dXRpb25Ob2RlLCAgLy8vXG4gICAgICAgIHN1Y2Nlc3MgPSBtZXRhTGV2ZWxQYXNzLnJ1bihnZW5lcmFsTm9kZSwgc3BlY2lmaWNOb2RlLCBzdWJzdGl0dXRpb25zLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KTtcblxuICBpZiAoc3VjY2Vzcykge1xuICAgIHN1YnN0aXR1dGlvblVuaWZpZXMgPSB0cnVlO1xuICB9XG5cbiAgcmV0dXJuIHN1YnN0aXR1dGlvblVuaWZpZXM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1bmlmeU1ldGF2YXJpYWJsZShnZW5lcmFsTWV0YXZhcmlhYmxlLCBzcGVjaWZpY01ldGF2YXJpYWJsZSwgZ2VuZXJhbENvbnRleHQsIHNwZWNpZmljQ29udGV4dCkge1xuICBsZXQgbWV0YXZhcmlhYmxlVW5pZmllcyA9IGZhbHNlO1xuXG4gIGNvbnN0IGdlbmVyYWxNZXRhdmFyaWFibGVOb2RlID0gZ2VuZXJhbE1ldGF2YXJpYWJsZS5nZXROb2RlKCksXG4gICAgICAgIHNwZWNpZmljTWV0YXZhcmlhYmxlTm9kZSA9IHNwZWNpZmljTWV0YXZhcmlhYmxlLmdldE5vZGUoKSxcbiAgICAgICAgc3VjY2VzcyA9IG1ldGF2YXJpYWJsZVBhc3MucnVuKGdlbmVyYWxNZXRhdmFyaWFibGVOb2RlLCBzcGVjaWZpY01ldGF2YXJpYWJsZU5vZGUsIGdlbmVyYWxDb250ZXh0LCBzcGVjaWZpY0NvbnRleHQpO1xuXG4gIGlmIChzdWNjZXNzKSB7XG4gICAgbWV0YXZhcmlhYmxlVW5pZmllcyA9IHRydWU7XG4gIH1cblxuICByZXR1cm4gbWV0YXZhcmlhYmxlVW5pZmllcztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVuaWZ5VGVybVdpdGhDb25zdHJ1Y3Rvcih0ZXJtLCBjb25zdHJ1Y3RvciwgZ2VuZXJhbENvbnRleHQsIHNwZWNpZmljQ29udGV4dCkge1xuICBsZXQgdGVybVVuaWZpZXNXaXRoQ29uc3RydWN0b3IgPSBmYWxzZTtcblxuICBjb25zdCB0ZXJtTm9kZSA9IHRlcm0uZ2V0Tm9kZSgpLFxuICAgICAgICBjb25zdHJ1Y3RvclRlcm0gPSBjb25zdHJ1Y3Rvci5nZXRUZXJtKCksXG4gICAgICAgIGNvbnN0cnVjdG9yVGVybU5vZGUgPSBjb25zdHJ1Y3RvclRlcm0uZ2V0Tm9kZSgpLFxuICAgICAgICBzdWNjZXNzID0gY29uc3RydWN0b3JQYXNzLnJ1bihjb25zdHJ1Y3RvclRlcm1Ob2RlLCB0ZXJtTm9kZSwgZ2VuZXJhbENvbnRleHQsIHNwZWNpZmljQ29udGV4dCk7XG5cbiAgaWYgKHN1Y2Nlc3MpIHtcbiAgICB0ZXJtVW5pZmllc1dpdGhDb25zdHJ1Y3RvciA9IHRydWU7XG4gIH1cblxuICByZXR1cm4gdGVybVVuaWZpZXNXaXRoQ29uc3RydWN0b3I7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1bmlmeVN0YXRlbWVudEludHJpbnNpY2FsbHkoZ2VuZXJhbFN0YXRlbWVudCwgc3BlY2lmaWNTdGF0ZW1lbnQsIHN1YnN0aXR1dGlvbnMsIGdlbmVyYWxDb250ZXh0LCBzcGVjaWZpY0NvbnRleHQpIHtcbiAgbGV0IHN0YXRlbWVudFVuaWZpZXNJbnRyaW5zaWNhbGx5ID0gZmFsc2U7XG5cbiAgY29uc3QgZ2VuZXJhbFN0YXRlbWVudE5vZGUgPSBnZW5lcmFsU3RhdGVtZW50LmdldE5vZGUoKSxcbiAgICAgICAgc3BlY2lmaWNTdGF0ZW1lbnROb2RlID0gc3BlY2lmaWNTdGF0ZW1lbnQuZ2V0Tm9kZSgpLFxuICAgICAgICBnZW5lcmFsTm9kZSA9IGdlbmVyYWxTdGF0ZW1lbnROb2RlLCAvLy9cbiAgICAgICAgc3BlY2lmaWNOb2RlID0gc3BlY2lmaWNTdGF0ZW1lbnROb2RlLCAvLy9cbiAgICAgICAgc3VjY2VzcyA9IGludHJpbnNpY0xldmVsUGFzcy5ydW4oZ2VuZXJhbE5vZGUsIHNwZWNpZmljTm9kZSwgc3Vic3RpdHV0aW9ucywgZ2VuZXJhbENvbnRleHQsIHNwZWNpZmljQ29udGV4dCk7XG5cbiAgaWYgKHN1Y2Nlc3MpIHtcbiAgICBzdGF0ZW1lbnRVbmlmaWVzSW50cmluc2ljYWxseSA9IHRydWU7XG4gIH1cblxuICByZXR1cm4gc3RhdGVtZW50VW5pZmllc0ludHJpbnNpY2FsbHk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1bmlmeVN0YXRlbWVudFdpdGhDb21iaW5hdG9yKHN0YXRlbWVudCwgY29tYmluYXRvciwgYXNzaWdubWVudHMsIHN0YXRlZCwgZ2VuZXJhbENvbnRleHQsIHNwZWNpZmljQ29udGV4dCkge1xuICBsZXQgc3RhdGVtZW50VW5pZmllc1dpdGhDb21iaW5hdG9yID0gZmFsc2U7XG5cbiAgY29uc3Qgc3RhdGVtZW50Tm9kZSA9IHN0YXRlbWVudC5nZXROb2RlKCksXG4gICAgICAgIGNvbWJpbmF0b3JTdGF0ZW1lbnQgPSBjb21iaW5hdG9yLmdldFN0YXRlbWVudCgpLFxuICAgICAgICBjb21iaW5hdG9yU3RhdGVtZW50Tm9kZSA9IGNvbWJpbmF0b3JTdGF0ZW1lbnQuZ2V0Tm9kZSgpLFxuICAgICAgICBzdWNjZXNzID0gY29tYmluYXRvclBhc3MucnVuKGNvbWJpbmF0b3JTdGF0ZW1lbnROb2RlLCBzdGF0ZW1lbnROb2RlLCBhc3NpZ25tZW50cywgc3RhdGVkLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KTtcblxuICBpZiAoc3VjY2Vzcykge1xuICAgIHN0YXRlbWVudFVuaWZpZXNXaXRoQ29tYmluYXRvciA9IHRydWU7XG4gIH1cblxuICByZXR1cm4gc3RhdGVtZW50VW5pZmllc1dpdGhDb21iaW5hdG9yO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdW5pZnlNZXRhdmFyaWFibGVJbnRyaW5zaWNhbGx5KGdlbmVyYWxNZXRhdmFyaWFibGUsIHNwZWNpZmljTWV0YXZhcmlhYmxlLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KSB7XG4gIGxldCBtZXRhdmFyaWFibGVVbmlmaWVzSW50cmluc2ljYWxseSA9IGZhbHNlO1xuXG4gIGNvbnN0IGdlbmVyYWxNZXRhdmFyaWFibGVOb2RlID0gZ2VuZXJhbE1ldGF2YXJpYWJsZS5nZXROb2RlKCksXG4gICAgICAgIHNwZWNpZmljTWV0YXZhcmlhYmxlTm9kZSA9IHNwZWNpZmljTWV0YXZhcmlhYmxlLmdldE5vZGUoKSxcbiAgICAgICAgZ2VuZXJhbE5vZGUgPSBnZW5lcmFsTWV0YXZhcmlhYmxlTm9kZSwgLy8vXG4gICAgICAgIHNwZWNpZmljTm9kZSA9IHNwZWNpZmljTWV0YXZhcmlhYmxlTm9kZSwgLy8vXG4gICAgICAgIHN1Y2Nlc3MgPSBpbnRyaW5zaWNMZXZlbFBhc3MucnVuKGdlbmVyYWxOb2RlLCBzcGVjaWZpY05vZGUsIGdlbmVyYWxDb250ZXh0LCBzcGVjaWZpY0NvbnRleHQpO1xuXG4gIGlmIChzdWNjZXNzKSB7XG4gICAgbWV0YXZhcmlhYmxlVW5pZmllc0ludHJpbnNpY2FsbHkgPSB0cnVlO1xuICB9XG5cbiAgcmV0dXJuIG1ldGF2YXJpYWJsZVVuaWZpZXNJbnRyaW5zaWNhbGx5O1xufVxuIl0sIm5hbWVzIjpbInVuaWZ5TWV0YXZhcmlhYmxlIiwidW5pZnlNZXRhdmFyaWFibGVJbnRyaW5zaWNhbGx5IiwidW5pZnlTdGF0ZW1lbnQiLCJ1bmlmeVN0YXRlbWVudEludHJpbnNpY2FsbHkiLCJ1bmlmeVN0YXRlbWVudFdpdGhDb21iaW5hdG9yIiwidW5pZnlTdWJzdGl0dXRpb24iLCJ1bmlmeVRlcm1XaXRoQ29uc3RydWN0b3IiLCJub25UZXJtaW5hbE5vZGVRdWVyeSIsIm5vZGVRdWVyeSIsInR5cGVOb2RlUXVlcnkiLCJ0ZXJtTm9kZVF1ZXJ5IiwiZnJhbWVOb2RlUXVlcnkiLCJtZXRhVHlwZU5vZGVRdWVyeSIsInN0YXRlbWVudE5vZGVRdWVyeSIsInRlcm1WYXJpYWJsZU5vZGVRdWVyeSIsInN0YXRlbWVudE1ldGF2YXJpYWJsZU5vZGVRdWVyeSIsImFzc3VtcHRpb25NZXRhdmFyaWFibGVOb2RlUXVlcnkiLCJmcmFtZUFzc3VtcHRpb25NZXRhdmFyaWFibGVOb2RlUXVlcnkiLCJQYXNzIiwicnVuIiwiZ2VuZXJhbE5vZGUiLCJzcGVjaWZpY05vZGUiLCJyZW1haW5pbmdBcmd1bWVudHMiLCJzdWNjZXNzIiwidmlzaXRlZCIsInZpc2l0Tm9kZSIsImRlc2NlbmQiLCJnZW5lcmFsQ2hpbGROb2RlcyIsInNwZWNpZmljQ2hpbGROb2RlcyIsImRlc2NlbmRlZCIsImdlbmVyYWxDaGlsZE5vZGVzTGVuZ3RoIiwibGVuZ3RoIiwic3BlY2lmaWNDaGlsZE5vZGVzTGVuZ3RoIiwic3BlY2lmaWNUZXJtaW5hbE5vZGVNYXAiLCJ0ZXJtaW5hbE5vZGVNYXBGcm9tTm9kZXMiLCJnZW5lcmFsVGVybWluYWxOb2RlTWFwIiwidGVybWluYWxOb2RlTWFwc0VxdWFsIiwiYXJlVGVybWluYWxOb2RlTWFwc0VxdWFsIiwibGFzdFJlbWFpbmluZ0FyZ3VtZW50RnVuY3Rpb24iLCJpc0xhc3RSZW1haW5pbmdBcmd1bWVudEZ1bmN0aW9uIiwiaW5kZXgiLCJkZXNjZW5kZWRBaGVhZCIsImRlc2NlbmRBaGVhZCIsImV2ZXJ5IiwiZ2VuZXJhbENoaWxkTm9kZSIsInNwZWNpZmljQ2hpbGROb2RlIiwicG9wIiwicHVzaCIsImFoZWFkSW5kZXgiLCJnZW5lcmFsTm9kZVRlcm1pbmFsTm9kZSIsImlzVGVybWluYWxOb2RlIiwic3BlY2lmaWNOb2RlVGVybWluYWxOb2RlIiwiZ2VuZXJhbE5vZGVOb25UZXJtaW5hbE5vZGUiLCJpc05vblRlcm1pbmFsTm9kZSIsInNwZWNpZmljTm9kZU5vblRlcm1pbmFsTm9kZSIsImdlbmVyYWxUZXJtaW5hbE5vZGUiLCJzcGVjaWZpY1Rlcm1pbmFsTm9kZSIsInZpc2l0VGVybWluYWxOb2RlIiwiZ2VuZXJhbE5vblRlcm1pbmFsTm9kZSIsInNwZWNpZmljTm9uVGVybWluYWxOb2RlIiwidmlzaXROb25UZXJtaW5hbE5vZGUiLCJtYXBzIiwiZ2VuZXJhbE5vZGVRdWVyeSIsInNwZWNpZmljTm9kZVF1ZXJ5IiwiZ2VuZXJhbE5vblRlcm1pbmFsTm9kZVJ1bGVOYW1lIiwiZ2V0UnVsZU5hbWUiLCJzcGVjaWZpY05vblRlcm1pbmFsTm9kZVJ1bGVOYW1lIiwiZ2VuZXJhbE5vblRlcm1pbmFsTm9kZUNoaWxkTm9kZXMiLCJnZXRDaGlsZE5vZGVzIiwic3BlY2lmaWNOb25UZXJtaW5hbE5vZGVDaGlsZE5vZGVzIiwic29tZSIsIm1hcCIsIk1ldGFMZXZlbFBhc3MiLCJnZW5lcmFsQXNzdW1wdGlvbk1ldGF2YXJpYWJsZU5vZGUiLCJzcGVjaWZpY0Fzc3VtcHRpb25NZXRhdmFyaWFibGVOb2RlIiwic3Vic3RpdHV0aW9ucyIsImdlbmVyYWxDb250ZXh0Iiwic3BlY2lmaWNDb250ZXh0IiwiY29udGV4dCIsIm1ldGF2YXJpYWJsZU5vZGUiLCJtZXRhdmFyaWFibGVOYW1lIiwiZ2V0TWV0YXZhcmlhYmxlTmFtZSIsIm1ldGF2YXJpYWJsZSIsImZpbmRNZXRhdmFyaWFibGVCeU1ldGF2YXJpYWJsZU5hbWUiLCJyZWZlcmVuY2UiLCJmaW5kUmVmZXJlbmNlQnlNZXRhdmFyaWFibGVOb2RlIiwicmVmZXJlbmNlVW5pZmllcyIsInVuaWZ5UmVmZXJlbmNlIiwiZ2VuZXJhbFN0YXRlbWVudE1ldGF2YXJpYWJsZU5vZGUiLCJzcGVjaWZpY1N0YXRlbWVudE5vZGUiLCJzdGF0ZW1lbnROb2RlIiwibWV0YXZhcmlhYmxlTm9kZVBhcmVudE5vZGUiLCJnZXRQYXJlbnROb2RlIiwiZnJhbWVTdWJzdGl0dXRpb25Ob2RlIiwiZ2V0RnJhbWVTdWJzdGl0dXRpb25Ob2RlIiwidGVybVN1YnN0aXR1dGlvbk5vZGUiLCJnZXRUZXJtU3Vic3RpdHV0aW9uTm9kZSIsInN1YnN0aXR1dGlvbk5vZGUiLCJzdWJzdGl0dXRpb24iLCJmaW5kU3Vic3RpdHV0aW9uQnlTdWJzdGl0dXRpb25Ob2RlIiwic3RhdGVtZW50IiwiZmluZFN0YXRlbWVudEJ5U3RhdGVtZW50Tm9kZSIsInN0YXRlbWVudFVuaWZpZXMiLCJnZW5lcmFsRnJhbWVBc3N1bXB0aW9uTWV0YXZhcmlhYmxlTm9kZSIsInNwZWNpZmljRnJhbWVOb2RlIiwiZnJhbWVOb2RlIiwiZnJhbWUiLCJmaW5kRnJhbWVCeUZyYW1lTm9kZSIsImZyYW1lVW5pZmllcyIsInVuaWZ5RnJhbWUiLCJnZW5lcmFsVGVybVZhcmlhYmxlTm9kZSIsInNwZWNpZmljVGVybU5vZGUiLCJ0ZXJtTm9kZSIsInZhcmlhYmxlTm9kZSIsInZhcmlhYmxlSWRlbnRpZmllciIsImdldFZhcmlhYmxlSWRlbnRpZmllciIsInZhcmlhYmxlIiwiZmluZFZhcmlhYmxlQnlWYXJpYWJsZUlkZW50aWZpZXIiLCJ0ZXJtIiwiZmluZFRlcm1CeVRlcm1Ob2RlIiwidGVybVVuaWZpZXMiLCJ1bmlmeVRlcm0iLCJDb21iaW5hdG9yUGFzcyIsImdlbmVyYWxNZXRhVHlwZU5vZGUiLCJhc3NpZ25tZW50cyIsInN0YXRlZCIsIm1ldGFUeXBlTm9kZSIsIm1ldGFUeXBlTmFtZSIsImdldE1ldGFUeXBlTmFtZSIsIm1ldGFUeXBlIiwiZmluZE1ldGFUeXBlQnlNZXRhVHlwZU5hbWUiLCJzdGF0ZW1lbnRGcm9tU3RhdGVtZW50Tm9kZSIsInN0YXRlbWVudFZhbGlkYXRlc0dpdmVuVHlwZSIsInZhbGlkYXRlR2l2ZW5NZXRhVHlwZSIsImZyYW1lRnJvbUZyYW1lTm9kZSIsImZyYW1lVmFsaWRhdGVzR2l2ZW5NZXRhVHlwZSIsImdlbmVyYWxUeXBlTm9kZSIsInR5cGVOb2RlIiwibm9taW5hbFR5cGVOYW1lIiwiZ2V0Tm9taW5hbFR5cGVOYW1lIiwidHlwZSIsImZpbmRUeXBlQnlOb21pbmFsVHlwZU5hbWUiLCJ0ZXJtRnJvbVRlcm1Ob2RlIiwidGVybVZhbGlkYXRlc0dpdmVuVHlwZSIsInZhbGlkYXRlR2l2ZW5UeXBlIiwiQ29uc3RydWN0b3JQYXNzIiwiTWV0YXZhcmlhYmxlUGFzcyIsIkludHJpbnNpY0xldmVsUGFzcyIsIm1ldGFMZXZlbFBhc3MiLCJjb21iaW5hdG9yUGFzcyIsImNvbnN0cnVjdG9yUGFzcyIsIm1ldGF2YXJpYWJsZVBhc3MiLCJpbnRyaW5zaWNMZXZlbFBhc3MiLCJnZW5lcmFsU3RhdGVtZW50Iiwic3BlY2lmaWNTdGF0ZW1lbnQiLCJnZW5lcmFsU3RhdGVtZW50Tm9kZSIsImdldE5vZGUiLCJnZW5lcmFsU3Vic3RpdHV0aW9uIiwic3BlY2lmaWNTdWJzdGl0dXRpb24iLCJzdWJzdGl0dXRpb25VbmlmaWVzIiwiZ2VuZXJhbFN1YnN0aXR1dGlvbk5vZGUiLCJzcGVjaWZpY1N1YnN0aXR1dGlvbk5vZGUiLCJnZW5lcmFsTWV0YXZhcmlhYmxlIiwic3BlY2lmaWNNZXRhdmFyaWFibGUiLCJtZXRhdmFyaWFibGVVbmlmaWVzIiwiZ2VuZXJhbE1ldGF2YXJpYWJsZU5vZGUiLCJzcGVjaWZpY01ldGF2YXJpYWJsZU5vZGUiLCJjb25zdHJ1Y3RvciIsInRlcm1VbmlmaWVzV2l0aENvbnN0cnVjdG9yIiwiY29uc3RydWN0b3JUZXJtIiwiZ2V0VGVybSIsImNvbnN0cnVjdG9yVGVybU5vZGUiLCJzdGF0ZW1lbnRVbmlmaWVzSW50cmluc2ljYWxseSIsImNvbWJpbmF0b3IiLCJzdGF0ZW1lbnRVbmlmaWVzV2l0aENvbWJpbmF0b3IiLCJjb21iaW5hdG9yU3RhdGVtZW50IiwiZ2V0U3RhdGVtZW50IiwiY29tYmluYXRvclN0YXRlbWVudE5vZGUiLCJtZXRhdmFyaWFibGVVbmlmaWVzSW50cmluc2ljYWxseSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O1FBMGlCZ0JBO2VBQUFBOztRQTREQUM7ZUFBQUE7O1FBNUZBQztlQUFBQTs7UUE2REFDO2VBQUFBOztRQWdCQUM7ZUFBQUE7O1FBN0RBQztlQUFBQTs7UUE4QkFDO2VBQUFBOzs7cUJBdGpCVTt5QkFDaUI7dUJBQ3NDO29CQUNtQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVwRyxJQUFNQyx1QkFBdUJDLElBQUFBLGdCQUFTLEVBQUM7QUFFdkMsSUFBTUMsZ0JBQWdCRCxJQUFBQSxnQkFBUyxFQUFDLFVBQzFCRSxnQkFBZ0JGLElBQUFBLGdCQUFTLEVBQUMsVUFDMUJHLGlCQUFpQkgsSUFBQUEsZ0JBQVMsRUFBQyxXQUMzQkksb0JBQW9CSixJQUFBQSxnQkFBUyxFQUFDLGNBQzlCSyxxQkFBcUJMLElBQUFBLGdCQUFTLEVBQUMsZUFDL0JNLHdCQUF3Qk4sSUFBQUEsZ0JBQVMsRUFBQyxvQkFDbENPLGlDQUFpQ1AsSUFBQUEsZ0JBQVMsRUFBQyw2QkFDM0NRLGtDQUFrQ1IsSUFBQUEsZ0JBQVMsRUFBQyw4QkFDNUNTLHVDQUF1Q1QsSUFBQUEsZ0JBQVMsRUFBQztBQUV2RCxJQUFBLEFBQU1VLHFCQUFOO2FBQU1BO2dDQUFBQTs7a0JBQUFBOztZQUNKQyxLQUFBQTttQkFBQUEsU0FBQUEsSUFBSUMsV0FBVyxFQUFFQyxZ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
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
function _export(target, all) {
|
|
6
|
+
for(var name in all)Object.defineProperty(target, name, {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: Object.getOwnPropertyDescriptor(all, name).get
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
_export(exports, {
|
|
12
|
+
get IDENTIFIER_TOKEN_TYPE () {
|
|
13
|
+
return IDENTIFIER_TOKEN_TYPE;
|
|
14
|
+
},
|
|
15
|
+
get NAME_TOKEN_TYPE () {
|
|
16
|
+
return NAME_TOKEN_TYPE;
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
var NAME_TOKEN_TYPE = "name";
|
|
20
|
+
var IDENTIFIER_TOKEN_TYPE = "identifier";
|
|
21
|
+
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy90b2tlblR5cGVzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5leHBvcnQgY29uc3QgTkFNRV9UT0tFTl9UWVBFID0gXCJuYW1lXCI7XG5leHBvcnQgY29uc3QgSURFTlRJRklFUl9UT0tFTl9UWVBFID0gXCJpZGVudGlmaWVyXCI7XG4iXSwibmFtZXMiOlsiSURFTlRJRklFUl9UT0tFTl9UWVBFIiwiTkFNRV9UT0tFTl9UWVBFIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7UUFHYUE7ZUFBQUE7O1FBREFDO2VBQUFBOzs7QUFBTixJQUFNQSxrQkFBa0I7QUFDeEIsSUFBTUQsd0JBQXdCIn0=
|