occam-grammars 1.0.701 → 1.0.705

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -8,7 +8,7 @@ Object.defineProperty(exports, "default", {
8
8
  return _default;
9
9
  }
10
10
  });
11
- var bnf = 'document ::= ( topLevelDeclaration | verticalSpace | error )+ ;\n\n\n\ntopLevelDeclaration ::= typeDeclaration \n \n | variableDeclaration \n \n | combinatorDeclaration \n \n | constructorDeclaration \n \n | disjointTypeDeclaration \n \n | metavariableDeclaration \n \n | dependentTypeDeclaration \n \n | rule \n\n | axiom \n\n | lemma \n\n | theorem \n\n | conjecture \n\n | metalemma \n\n | metatheorem \n\n ;\n\n\n\nverticalSpace ::= <END_OF_LINE>+ ;\n\n\n\nerror. ::= . ;\n\n\n\ntypeDeclaration ::= "Type" type ( ":" type )? <END_OF_LINE> ;\n \nvariableDeclaration ::= "Variable" variable ( ":" type )? <END_OF_LINE> ;\n \ncombinatorDeclaration ::= "Combinator" statement... <END_OF_LINE> ;\n \nconstructorDeclaration ::= "Constructor" term... ( ":" type )? <END_OF_LINE> ;\n \nmetavariableDeclaration ::= "Metavariable" metavariable ":" metaType <END_OF_LINE> ;\n \n\n \nrule ::= "Rule" "(" label ( "," label )* ")" <END_OF_LINE> \n\n ( \n\n ( "Premises" <END_OF_LINE> premise premise+ ) \n \n | \n \n ( "Premise" <END_OF_LINE> premise ) \n \n )?\n \n "Conclusion" <END_OF_LINE> conclusion \n \n ruleProof? ; \n\naxiom ::= "Axiom" "(" label ( "," label )* ")" <END_OF_LINE> \n\n (\n \n (\n \n "Suppose" <END_OF_LINE> supposition+\n\n "Then" <END_OF_LINE> consequent \n \n )\n \n |\n \n consequent\n \n ) ;\n\nlemma ::= "Lemma" ( "(" label ( "," label )* ")" )? <END_OF_LINE> \n\n (\n \n (\n \n "Suppose" <END_OF_LINE> supposition+\n\n "Then" <END_OF_LINE> consequent \n \n )\n \n |\n \n consequent\n \n )\n \n proof ;\n\ntheorem ::= "Theorem" "(" label ( "," label )* ")" <END_OF_LINE> \n\n (\n \n (\n \n "Suppose" <END_OF_LINE> supposition+\n\n "Then" <END_OF_LINE> consequent \n \n )\n \n |\n \n consequent\n \n )\n \n proof ;\n\nconjecture ::= "Conjecture" "(" label ( "," label )* ")" <END_OF_LINE>\n\n (\n \n (\n \n "Suppose" <END_OF_LINE> supposition+\n\n "Then" <END_OF_LINE> consequent \n \n )\n \n |\n \n consequent\n \n )\n \n proof? ;\n\nmetalemma ::= "Metalemma" ( "(" label ( "," label )* ")" )? <END_OF_LINE> \n\n ( \n \n (\n \n "Suppose" <END_OF_LINE> metaSupposition+ \n\n "Then" <END_OF_LINE> metaConsequent\n \n )\n \n | \n \n metaConsequent\n \n ) \n \n metaproof ;\n\nmetatheorem ::= "Metatheorem" "(" label ( "," label )* ")" <END_OF_LINE> \n\n ( \n \n (\n \n "Suppose" <END_OF_LINE> metaSupposition+ \n\n "Then" <END_OF_LINE> metaConsequent\n \n )\n \n | \n \n metaConsequent\n \n ) \n \n metaproof ;\n\n\n\nruleProof ::= "Proof" <END_OF_LINE> ruleDerivation ;\n \nproof ::= "Proof" <END_OF_LINE> derivation ;\n \nmetaproof ::= "Proof" <END_OF_LINE> metaDerivation ; \n\n\n\nruleSubproof ::= ( \n\n ( "Premises" <END_OF_LINE> premise premise+ ) \n \n | \n \n ( "Premise" <END_OF_LINE> premise ) \n \n )\n \n ruleSubDerivation ; \n\nsubproof ::= "Suppose" <END_OF_LINE> supposition+ subDerivation ;\n\nmetaSubproof ::= "Suppose" <END_OF_LINE> metaSupposition+ metaSubDerivation ;\n\n\n\nruleDerivation ::= (\n\n ( ruleSubproof | qualifiedMetastatement | unqualifiedMetastatement )+ \n\n "Therefore" <END_OF_LINE> \n \n )? \n \n ( qualifiedMetastatement | unqualifiedMetastatement ) ; \n\nderivation ::= (\n\n ( subproof | qualifiedStatement | unqualifiedStatement )+ \n\n "Therefore" <END_OF_LINE>\n \n )? \n \n ( qualifiedStatement | unqualifiedStatement ) ;\n\nmetaDerivation ::= (\n\n ( metaSubproof | qualifiedMetastatement | unqualifiedMetastatement )+ \n\n "Therefore" <END_OF_LINE> \n \n )? \n \n ( qualifiedMetastatement | unqualifiedMetastatement ) ; \n\n\n\nruleSubDerivation ::= (\n\n "Hence" <END_OF_LINE>\n\n ( ruleSubproof | qualifiedMetastatement | unqualifiedMetastatement )+ \n \n )? \n \n "Then" <END_OF_LINE> \n \n ( qualifiedMetastatement | unqualifiedMetastatement ) ; \n\nsubDerivation ::= (\n\n "Hence" <END_OF_LINE>\n\n ( subproof | qualifiedStatement | unqualifiedStatement )+ \n \n )? \n \n "Then" <END_OF_LINE> \n \n ( qualifiedStatement | unqualifiedStatement ) ; \n\nmetaSubDerivation ::= (\n\n "Hence" <END_OF_LINE>\n\n ( metaSubproof | qualifiedMetastatement | unqualifiedMetastatement )+ \n \n )? \n \n "Then" <END_OF_LINE> \n \n ( qualifiedMetastatement | unqualifiedMetastatement ) ; \n\n\n\npremise ::= unqualifiedMetastatement ;\n\nconclusion ::= unqualifiedMetastatement ;\n\nsupposition ::= unqualifiedStatement ;\n\nconsequent ::= unqualifiedStatement ;\n\nmetaSupposition ::= unqualifiedMetastatement ;\n\nmetaConsequent ::= unqualifiedMetastatement ;\n\n\n\nunqualifiedMetastatement.. ::= metastatement... <END_OF_LINE> \n\n | nonsense... <END_OF_LINE> \n \n ;\n\nqualifiedMetastatement.. ::= metastatement... ( "by" | "from" ) reference <END_OF_LINE> \n\n | nonsense... ( "by" | "from" ) reference <END_OF_LINE> \n \n ; \n\nunqualifiedStatement.. ::= statement... <END_OF_LINE>\n\n | nonsense... <END_OF_LINE> \n \n ;\n\nqualifiedStatement.. ::= statement... ( "by" | "from" ) reference <END_OF_LINE> \n\n | nonsense... ( "by" | "from" ) reference <END_OF_LINE> \n \n ;\n\n\n\nnonsense. ::= ( [type] | [symbol] | [operator] | [special] | [secondary-keyword] | [meta-type] | [name] | [unassigned] )+ ;\n\n\n\nreference. ::= metavariable ;\n\nlabel. ::= metavariable ;\n\n\n\nmetaArgument ::= statement ( ) \n\n | metaType ( ) \n \n ;\n\nargument ::= term ( ) \n\n | type ( )\n \n ;\n\n\n\nmetavariable ::= [name] ( <NO_WHITESPACE>"(" argument... ")" )? ;\n\nvariable ::= [name] ;\n\n\n\nmetaType ::= [meta-type] ;\n\ntype ::= [type] ;';
11
+ var bnf = 'document ::= ( topLevelDeclaration | verticalSpace | error )+ ;\n\n\n\ntopLevelDeclaration ::= typeDeclaration \n \n | variableDeclaration \n \n | combinatorDeclaration \n \n | constructorDeclaration \n \n | disjointTypeDeclaration \n \n | metavariableDeclaration \n \n | dependentTypeDeclaration \n \n | rule \n\n | axiom \n\n | lemma \n\n | theorem \n\n | conjecture \n\n | metaLemma \n\n | metatheorem \n\n ;\n\n\n\nverticalSpace ::= <END_OF_LINE>+ ;\n\n\n\nerror. ::= . ;\n\n\n\ntypeDeclaration ::= "Type" type ( ":" type )? <END_OF_LINE> ;\n \nvariableDeclaration ::= "Variable" variable ( ":" type )? <END_OF_LINE> ;\n \ncombinatorDeclaration ::= "Combinator" statement... <END_OF_LINE> ;\n \nconstructorDeclaration ::= "Constructor" term... ( ":" type )? <END_OF_LINE> ;\n \nmetavariableDeclaration ::= "Metavariable" metavariable ":" metaType <END_OF_LINE> ;\n \n\n \nrule ::= "Rule" "(" label ( "," label )* ")" <END_OF_LINE> \n\n ( \n\n ( "Premises" <END_OF_LINE> premise premise+ ) \n \n | \n \n ( "Premise" <END_OF_LINE> premise ) \n \n )?\n \n "Conclusion" <END_OF_LINE> conclusion \n \n ruleProof? ; \n\nmetaLemma ::= "MetaLemma" ( "(" label ( "," label )* ")" )? <END_OF_LINE> \n\n (\n \n "Suppose" <END_OF_LINE> metaSupposition+ \n\n "Then" <END_OF_LINE> metaConsequent\n \n )?\n \n metaConsequent\n \n metaproof ;\n\nmetatheorem ::= "Metatheorem" "(" label ( "," label )* ")" <END_OF_LINE> \n\n (\n \n "Suppose" <END_OF_LINE> metaSupposition+ \n\n "Then" <END_OF_LINE> metaConsequent\n \n )?\n \n metaConsequent\n \n metaproof ;\n\naxiom ::= "Axiom" "(" label ( "," label )* ")" <END_OF_LINE> \n\n (\n \n "Suppose" <END_OF_LINE> supposition+\n\n "Then" <END_OF_LINE> \n \n )?\n \n consequent ;\n\nlemma ::= "Lemma" ( "(" label ( "," label )* ")" )? <END_OF_LINE> \n\n (\n \n "Suppose" <END_OF_LINE> supposition+\n\n "Then" <END_OF_LINE> \n \n )?\n \n consequent\n \n proof ;\n\ntheorem ::= "Theorem" "(" label ( "," label )* ")" <END_OF_LINE> \n\n (\n \n "Suppose" <END_OF_LINE> supposition+\n\n "Then" <END_OF_LINE> \n \n )?\n \n consequent\n \n proof ;\n\nconjecture ::= "Conjecture" "(" label ( "," label )* ")" <END_OF_LINE>\n\n (\n \n "Suppose" <END_OF_LINE> supposition+\n\n "Then" <END_OF_LINE> \n \n )?\n \n consequent\n \n proof? ;\n\n\n\nruleProof ::= "Proof" <END_OF_LINE> ruleDerivation ;\n \nmetaproof ::= "Proof" <END_OF_LINE> metaDerivation ;\n \nproof ::= "Proof" <END_OF_LINE> derivation ;\n \n\n\nruleSubproof ::= ( \n\n ( "Premises" <END_OF_LINE> premise premise+ ) \n \n | \n \n ( "Premise" <END_OF_LINE> premise ) \n \n )\n \n ruleSubDerivation ; \n\nmetaSubproof ::= "Suppose" <END_OF_LINE> metaSupposition+ metaSubDerivation ;\n\nsubproof ::= "Suppose" <END_OF_LINE> supposition+ subDerivation ;\n\n\n\nruleDerivation ::= ( \n\n ruleProofStep+ \n \n "Therefore" <END_OF_LINE> \n \n )? \n \n lastRuleProofStep ; \n\nmetaDerivation ::= ( \n\n metaProofStep+ \n \n "Therefore" <END_OF_LINE> \n \n )? \n \n lastMetaProofStep ; \n\nderivation ::= ( \n\n proofStep+ \n \n "Therefore" <END_OF_LINE> \n \n )? \n \n lastProofStep ; \n\n\n\nruleSubDerivation ::= (\n\n "Hence" <END_OF_LINE>\n\n ruleProofStep+ \n \n )? \n \n "Then" <END_OF_LINE> \n \n lastRuleProofStep ; \n\nmetaSubDerivation ::= (\n\n "Hence" <END_OF_LINE>\n\n metaProofStep+ \n \n )? \n \n "Then" <END_OF_LINE> \n \n lastMetaProofStep ; \n\nsubDerivation ::= (\n\n "Hence" <END_OF_LINE>\n\n proofStep+ \n \n )? \n \n "Then" <END_OF_LINE> \n \n lastProofStep ; \n\n\n\npremise.. ::= unqualifiedMetastatement ;\n\nconclusion.. ::= unqualifiedMetastatement ;\n\nmetaSupposition.. ::= unqualifiedMetastatement ;\n\nmetaConsequent.. ::= unqualifiedMetastatement ;\n\nsupposition.. ::= unqualifiedStatement ;\n\nconsequent.. ::= unqualifiedStatement ;\n\n\n\nruleProofStep.. ::= ruleSubproof \n\n | qualifiedMetastatement \n \n | unqualifiedMetastatement \n\n | qualifiedStatement \n \n | unqualifiedStatement \n \n ; \n\nmetaProofStep.. ::= metaSubproof \n\n | qualifiedMetastatement \n \n | unqualifiedMetastatement \n\n | qualifiedStatement \n \n | unqualifiedStatement \n \n ; \n\nproofStep.. ::= subproof \n\n | qualifiedStatement \n \n | unqualifiedStatement \n \n ; \n\n\n\nlastRuleProofStep.. ::= qualifiedMetastatement \n\n | unqualifiedMetastatement \n \n ;\n\nlastMetaProofStep.. ::= qualifiedMetastatement \n\n | unqualifiedMetastatement \n \n ;\n\nlastProofStep.. ::= qualifiedStatement \n\n | unqualifiedStatement \n \n ;\n\n\n\nunqualifiedMetastatement ::= metastatement... <END_OF_LINE> \n\n | nonsense... <END_OF_LINE> \n \n ;\n\nqualifiedMetastatement ::= metastatement... ( "by" | "from" ) reference <END_OF_LINE> \n\n | nonsense... ( "by" | "from" ) reference <END_OF_LINE> \n \n ; \n\nunqualifiedStatement ::= statement... <END_OF_LINE>\n\n | nonsense... <END_OF_LINE> \n \n ;\n\nqualifiedStatement ::= statement... ( "by" | "from" ) reference <END_OF_LINE> \n\n | nonsense... ( "by" | "from" ) reference <END_OF_LINE> \n \n ;\n\n\n\nnonsense. ::= ( [type] | [symbol] | [operator] | [special] | [secondary-keyword] | [meta-type] | [name] | [unassigned] )+ ;\n\n\n\nreference. ::= metavariable ;\n\nlabel. ::= metavariable ;\n\n\n\nmetaArgument ::= statement ( ) \n\n | metaType ( ) \n \n ;\n\nargument ::= term ( ) \n\n | type ( )\n \n ;\n\n\n\nmetavariable ::= [name] ( <NO_WHITESPACE>"(" argument... ")" )? ;\n\nvariable ::= [name] ;\n\n\n\nmetaType ::= [meta-type] ;\n\ntype ::= [type] ;';
12
12
  var _default = bnf;
13
13
 
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9mbG9yZW5jZS9ibmYuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmNvbnN0IGJuZiA9IGBkb2N1bWVudCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOjo9ICAoIHRvcExldmVsRGVjbGFyYXRpb24gfCB2ZXJ0aWNhbFNwYWNlIHwgZXJyb3IgKSsgO1xuXG5cblxudG9wTGV2ZWxEZWNsYXJhdGlvbiAgICAgICAgICAgICAgICAgIDo6PSAgdHlwZURlY2xhcmF0aW9uIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgdmFyaWFibGVEZWNsYXJhdGlvbiBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIGNvbWJpbmF0b3JEZWNsYXJhdGlvbiBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIGNvbnN0cnVjdG9yRGVjbGFyYXRpb24gXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICBkaXNqb2ludFR5cGVEZWNsYXJhdGlvbiBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIG1ldGF2YXJpYWJsZURlY2xhcmF0aW9uIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgZGVwZW5kZW50VHlwZURlY2xhcmF0aW9uIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgcnVsZSBcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgYXhpb20gXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIGxlbW1hIFxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICB0aGVvcmVtIFxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICBjb25qZWN0dXJlIFxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICBtZXRhbGVtbWEgXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIG1ldGF0aGVvcmVtIFxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7XG5cblxuXG52ZXJ0aWNhbFNwYWNlICAgICAgICAgICAgICAgICAgICAgICAgOjo9ICA8RU5EX09GX0xJTkU+KyA7XG5cblxuXG5lcnJvci4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOjo9ICAuIDtcblxuXG5cbnR5cGVEZWNsYXJhdGlvbiAgICAgICAgICAgICAgICAgICAgICA6Oj0gIFwiVHlwZVwiIHR5cGUgKCBcIjpcIiB0eXBlICk/IDxFTkRfT0ZfTElORT4gO1xuIFxudmFyaWFibGVEZWNsYXJhdGlvbiAgICAgICAgICAgICAgICAgIDo6PSAgXCJWYXJpYWJsZVwiIHZhcmlhYmxlICggXCI6XCIgdHlwZSApPyA8RU5EX09GX0xJTkU+IDtcbiBcbmNvbWJpbmF0b3JEZWNsYXJhdGlvbiAgICAgICAgICAgICAgICA6Oj0gIFwiQ29tYmluYXRvclwiIHN0YXRlbWVudC4uLiA8RU5EX09GX0xJTkU+IDtcbiBcbmNvbnN0cnVjdG9yRGVjbGFyYXRpb24gICAgICAgICAgICAgICA6Oj0gIFwiQ29uc3RydWN0b3JcIiB0ZXJtLi4uICggXCI6XCIgdHlwZSApPyA8RU5EX09GX0xJTkU+IDtcbiBcbm1ldGF2YXJpYWJsZURlY2xhcmF0aW9uICAgICAgICAgICAgICA6Oj0gIFwiTWV0YXZhcmlhYmxlXCIgbWV0YXZhcmlhYmxlIFwiOlwiIG1ldGFUeXBlIDxFTkRfT0ZfTElORT4gO1xuIFxuXG4gIFxucnVsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDo6PSAgXCJSdWxlXCIgXCIoXCIgbGFiZWwgKCBcIixcIiBsYWJlbCApKiBcIilcIiA8RU5EX09GX0xJTkU+IFxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIFxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggXCJQcmVtaXNlc1wiIDxFTkRfT0ZfTElORT4gcHJlbWlzZSBwcmVtaXNlKyApIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBcIlByZW1pc2VcIiA8RU5EX09GX0xJTkU+IHByZW1pc2UgKSBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKT9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb25jbHVzaW9uXCIgPEVORF9PRl9MSU5FPiBjb25jbHVzaW9uIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVsZVByb29mPyAgOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cbmF4aW9tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6Oj0gIFwiQXhpb21cIiBcIihcIiBsYWJlbCAoIFwiLFwiIGxhYmVsICkqIFwiKVwiIDxFTkRfT0ZfTElORT4gXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU3VwcG9zZVwiIDxFTkRfT0ZfTElORT4gc3VwcG9zaXRpb24rXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRoZW5cIiA8RU5EX09GX0xJTkU+IGNvbnNlcXVlbnQgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zZXF1ZW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkgO1xuXG5sZW1tYSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOjo9ICBcIkxlbW1hXCIgKCBcIihcIiBsYWJlbCAoIFwiLFwiIGxhYmVsICkqIFwiKVwiICk/IDxFTkRfT0ZfTElORT4gXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU3VwcG9zZVwiIDxFTkRfT0ZfTElORT4gc3VwcG9zaXRpb24rXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRoZW5cIiA8RU5EX09GX0xJTkU+IGNvbnNlcXVlbnQgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNlcXVlbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvb2YgO1xuXG50aGVvcmVtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOjo9ICBcIlRoZW9yZW1cIiBcIihcIiBsYWJlbCAoIFwiLFwiIGxhYmVsICkqIFwiKVwiIDxFTkRfT0ZfTElORT4gXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU3VwcG9zZVwiIDxFTkRfT0ZfTElORT4gc3VwcG9zaXRpb24rXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRoZW5cIiA8RU5EX09GX0xJTkU+IGNvbnNlcXVlbnQgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zZXF1ZW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb29mIDtcblxuY29uamVjdHVyZSAgICAgICAgICAgICAgICAgICAgICAgICAgIDo6PSAgXCJDb25qZWN0dXJlXCIgXCIoXCIgbGFiZWwgKCBcIixcIiBsYWJlbCApKiBcIilcIiA8RU5EX09GX0xJTkU+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU3VwcG9zZVwiIDxFTkRfT0ZfTElORT4gc3VwcG9zaXRpb24rXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRoZW5cIiA8RU5EX09GX0xJTkU+IGNvbnNlcXVlbnQgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zZXF1ZW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb29mPyA7XG5cbm1ldGFsZW1tYSAgICAgICAgICAgICAgICAgICAgICAgICAgICA6Oj0gIFwiTWV0YWxlbW1hXCIgKCBcIihcIiBsYWJlbCAoIFwiLFwiIGxhYmVsICkqIFwiKVwiICk/IDxFTkRfT0ZfTElORT4gXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU3VwcG9zZVwiIDxFTkRfT0ZfTElORT4gbWV0YVN1cHBvc2l0aW9uKyBcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGhlblwiIDxFTkRfT0ZfTElORT4gbWV0YUNvbnNlcXVlbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0YUNvbnNlcXVlbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXRhcHJvb2YgO1xuXG5tZXRhdGhlb3JlbSAgICAgICAgICAgICAgICAgICAgICAgICAgOjo9ICBcIk1ldGF0aGVvcmVtXCIgXCIoXCIgbGFiZWwgKCBcIixcIiBsYWJlbCApKiBcIilcIiA8RU5EX09GX0xJTkU+IFxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlN1cHBvc2VcIiA8RU5EX09GX0xJTkU+IG1ldGFTdXBwb3NpdGlvbisgXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRoZW5cIiA8RU5EX09GX0xJTkU+IG1ldGFDb25zZXF1ZW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGFDb25zZXF1ZW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0YXByb29mIDtcblxuXG5cbnJ1bGVQcm9vZiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6Oj0gIFwiUHJvb2ZcIiA8RU5EX09GX0xJTkU+IHJ1bGVEZXJpdmF0aW9uIDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxucHJvb2YgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDo6PSAgXCJQcm9vZlwiIDxFTkRfT0ZfTElORT4gZGVyaXZhdGlvbiA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxubWV0YXByb29mICAgICAgICAgICAgICAgICAgICAgICAgICAgIDo6PSAgXCJQcm9vZlwiIDxFTkRfT0ZfTElORT4gbWV0YURlcml2YXRpb24gOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuXG5cblxucnVsZVN1YnByb29mICAgICAgICAgICAgICAgICAgICAgICAgIDo6PSAgKCBcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIFwiUHJlbWlzZXNcIiA8RU5EX09GX0xJTkU+IHByZW1pc2UgcHJlbWlzZSsgKSBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggXCJQcmVtaXNlXCIgPEVORF9PRl9MSU5FPiBwcmVtaXNlICkgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydWxlU3ViRGVyaXZhdGlvbiA7IFxuXG5zdWJwcm9vZiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOjo9ICBcIlN1cHBvc2VcIiA8RU5EX09GX0xJTkU+IHN1cHBvc2l0aW9uKyBzdWJEZXJpdmF0aW9uIDtcblxubWV0YVN1YnByb29mICAgICAgICAgICAgICAgICAgICAgICAgIDo6PSAgXCJTdXBwb3NlXCIgPEVORF9PRl9MSU5FPiBtZXRhU3VwcG9zaXRpb24rIG1ldGFTdWJEZXJpdmF0aW9uIDtcblxuXG5cbnJ1bGVEZXJpdmF0aW9uICAgICAgICAgICAgICAgICAgICAgICA6Oj0gIChcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIHJ1bGVTdWJwcm9vZiB8IHF1YWxpZmllZE1ldGFzdGF0ZW1lbnQgfCB1bnF1YWxpZmllZE1ldGFzdGF0ZW1lbnQgKSsgIFxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGhlcmVmb3JlXCIgPEVORF9PRl9MSU5FPiBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk/IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBxdWFsaWZpZWRNZXRhc3RhdGVtZW50IHwgdW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50ICkgOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcblxuZGVyaXZhdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAgIDo6PSAgKFxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggc3VicHJvb2YgfCBxdWFsaWZpZWRTdGF0ZW1lbnQgfCB1bnF1YWxpZmllZFN0YXRlbWVudCApKyBcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRoZXJlZm9yZVwiIDxFTkRfT0ZfTElORT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKT8gXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIHF1YWxpZmllZFN0YXRlbWVudCB8IHVucXVhbGlmaWVkU3RhdGVtZW50ICkgO1xuXG5tZXRhRGVyaXZhdGlvbiAgICAgICAgICAgICAgICAgICAgICAgOjo9ICAoXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBtZXRhU3VicHJvb2YgfCBxdWFsaWZpZWRNZXRhc3RhdGVtZW50IHwgdW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50ICkrICBcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRoZXJlZm9yZVwiIDxFTkRfT0ZfTElORT4gXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApPyBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggcXVhbGlmaWVkTWV0YXN0YXRlbWVudCB8IHVucXVhbGlmaWVkTWV0YXN0YXRlbWVudCApIDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cblxuXG5ydWxlU3ViRGVyaXZhdGlvbiAgICAgICAgICAgICAgICAgICAgOjo9ICAoXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJIZW5jZVwiIDxFTkRfT0ZfTElORT5cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIHJ1bGVTdWJwcm9vZiB8IHF1YWxpZmllZE1ldGFzdGF0ZW1lbnQgfCB1bnF1YWxpZmllZE1ldGFzdGF0ZW1lbnQgKSsgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk/IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaGVuXCIgPEVORF9PRl9MSU5FPiBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggcXVhbGlmaWVkTWV0YXN0YXRlbWVudCB8IHVucXVhbGlmaWVkTWV0YXN0YXRlbWVudCApIDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cbnN1YkRlcml2YXRpb24gICAgICAgICAgICAgICAgICAgICAgICA6Oj0gIChcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkhlbmNlXCIgPEVORF9PRl9MSU5FPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggc3VicHJvb2YgfCBxdWFsaWZpZWRTdGF0ZW1lbnQgfCB1bnF1YWxpZmllZFN0YXRlbWVudCApKyBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKT8gXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRoZW5cIiA8RU5EX09GX0xJTkU+IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBxdWFsaWZpZWRTdGF0ZW1lbnQgfCB1bnF1YWxpZmllZFN0YXRlbWVudCApIDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cbm1ldGFTdWJEZXJpdmF0aW9uICAgICAgICAgICAgICAgICAgICA6Oj0gIChcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkhlbmNlXCIgPEVORF9PRl9MSU5FPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggbWV0YVN1YnByb29mIHwgcXVhbGlmaWVkTWV0YXN0YXRlbWVudCB8IHVucXVhbGlmaWVkTWV0YXN0YXRlbWVudCApKyBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKT8gXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRoZW5cIiA8RU5EX09GX0xJTkU+IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBxdWFsaWZpZWRNZXRhc3RhdGVtZW50IHwgdW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50ICkgOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcblxuXG5cbnByZW1pc2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6Oj0gIHVucXVhbGlmaWVkTWV0YXN0YXRlbWVudCA7XG5cbmNvbmNsdXNpb24gICAgICAgICAgICAgICAgICAgICAgICAgICA6Oj0gIHVucXVhbGlmaWVkTWV0YXN0YXRlbWVudCA7XG5cbnN1cHBvc2l0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICA6Oj0gIHVucXVhbGlmaWVkU3RhdGVtZW50IDtcblxuY29uc2VxdWVudCAgICAgICAgICAgICAgICAgICAgICAgICAgIDo6PSAgdW5xdWFsaWZpZWRTdGF0ZW1lbnQgO1xuXG5tZXRhU3VwcG9zaXRpb24gICAgICAgICAgICAgICAgICAgICAgOjo9ICB1bnF1YWxpZmllZE1ldGFzdGF0ZW1lbnQgO1xuXG5tZXRhQ29uc2VxdWVudCAgICAgICAgICAgICAgICAgICAgICAgOjo9ICB1bnF1YWxpZmllZE1ldGFzdGF0ZW1lbnQgO1xuXG5cblxudW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50Li4gICAgICAgICAgIDo6PSAgbWV0YXN0YXRlbWVudC4uLiA8RU5EX09GX0xJTkU+IFxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICBub25zZW5zZS4uLiA8RU5EX09GX0xJTkU+IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7XG5cbnF1YWxpZmllZE1ldGFzdGF0ZW1lbnQuLiAgICAgICAgICAgICA6Oj0gIG1ldGFzdGF0ZW1lbnQuLi4gKCBcImJ5XCIgfCBcImZyb21cIiApIHJlZmVyZW5jZSA8RU5EX09GX0xJTkU+IFxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICBub25zZW5zZS4uLiAoIFwiYnlcIiB8IFwiZnJvbVwiICkgcmVmZXJlbmNlIDxFTkRfT0ZfTElORT4gXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuXG51bnF1YWxpZmllZFN0YXRlbWVudC4uICAgICAgICAgICAgICAgOjo9ICBzdGF0ZW1lbnQuLi4gPEVORF9PRl9MSU5FPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICBub25zZW5zZS4uLiA8RU5EX09GX0xJTkU+IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7XG5cbnF1YWxpZmllZFN0YXRlbWVudC4uICAgICAgICAgICAgICAgICA6Oj0gIHN0YXRlbWVudC4uLiAoIFwiYnlcIiB8IFwiZnJvbVwiICkgcmVmZXJlbmNlIDxFTkRfT0ZfTElORT4gXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIG5vbnNlbnNlLi4uICggXCJieVwiIHwgXCJmcm9tXCIgKSByZWZlcmVuY2UgPEVORF9PRl9MSU5FPiBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgO1xuXG5cblxubm9uc2Vuc2UuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDo6PSAgKCBbdHlwZV0gfCBbc3ltYm9sXSB8IFtvcGVyYXRvcl0gfCBbc3BlY2lhbF0gfCBbc2Vjb25kYXJ5LWtleXdvcmRdIHwgW21ldGEtdHlwZV0gfCBbbmFtZV0gfCBbdW5hc3NpZ25lZF0gKSsgO1xuXG5cblxucmVmZXJlbmNlLiAgICAgICAgICAgICAgICAgICAgICAgICAgIDo6PSAgbWV0YXZhcmlhYmxlIDtcblxubGFiZWwuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDo6PSAgbWV0YXZhcmlhYmxlIDtcblxuXG5cbm1ldGFBcmd1bWVudCAgICAgICAgICAgICAgICAgICAgICAgICA6Oj0gIHN0YXRlbWVudCAoICkgXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIG1ldGFUeXBlICggKSBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgO1xuXG5hcmd1bWVudCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOjo9ICB0ZXJtICggKSBcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgdHlwZSAoIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgO1xuXG5cblxubWV0YXZhcmlhYmxlICAgICAgICAgICAgICAgICAgICAgICAgIDo6PSAgW25hbWVdICggPE5PX1dISVRFU1BBQ0U+XCIoXCIgYXJndW1lbnQuLi4gXCIpXCIgKT8gO1xuXG52YXJpYWJsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOjo9ICBbbmFtZV0gO1xuXG5cblxubWV0YVR5cGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDo6PSAgW21ldGEtdHlwZV0gO1xuXG50eXBlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOjo9ICBbdHlwZV0gO2A7XG5cbmV4cG9ydCBkZWZhdWx0IGJuZjtcbiJdLCJuYW1lcyI6WyJibmYiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQTRXQTs7O2VBQUE7OztBQTFXQSxJQUFNQSxNQUFPO0lBMFdiLFdBQWVBIn0=
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9mbG9yZW5jZS9ibmYuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmNvbnN0IGJuZiA9IGBkb2N1bWVudCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOjo9ICAoIHRvcExldmVsRGVjbGFyYXRpb24gfCB2ZXJ0aWNhbFNwYWNlIHwgZXJyb3IgKSsgO1xuXG5cblxudG9wTGV2ZWxEZWNsYXJhdGlvbiAgICAgICAgICAgICAgICAgIDo6PSAgdHlwZURlY2xhcmF0aW9uIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgdmFyaWFibGVEZWNsYXJhdGlvbiBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIGNvbWJpbmF0b3JEZWNsYXJhdGlvbiBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIGNvbnN0cnVjdG9yRGVjbGFyYXRpb24gXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICBkaXNqb2ludFR5cGVEZWNsYXJhdGlvbiBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIG1ldGF2YXJpYWJsZURlY2xhcmF0aW9uIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgZGVwZW5kZW50VHlwZURlY2xhcmF0aW9uIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgcnVsZSBcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgYXhpb20gXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIGxlbW1hIFxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICB0aGVvcmVtIFxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICBjb25qZWN0dXJlIFxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICBtZXRhTGVtbWEgXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIG1ldGF0aGVvcmVtIFxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7XG5cblxuXG52ZXJ0aWNhbFNwYWNlICAgICAgICAgICAgICAgICAgICAgICAgOjo9ICA8RU5EX09GX0xJTkU+KyA7XG5cblxuXG5lcnJvci4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOjo9ICAuIDtcblxuXG5cbnR5cGVEZWNsYXJhdGlvbiAgICAgICAgICAgICAgICAgICAgICA6Oj0gIFwiVHlwZVwiIHR5cGUgKCBcIjpcIiB0eXBlICk/IDxFTkRfT0ZfTElORT4gO1xuIFxudmFyaWFibGVEZWNsYXJhdGlvbiAgICAgICAgICAgICAgICAgIDo6PSAgXCJWYXJpYWJsZVwiIHZhcmlhYmxlICggXCI6XCIgdHlwZSApPyA8RU5EX09GX0xJTkU+IDtcbiBcbmNvbWJpbmF0b3JEZWNsYXJhdGlvbiAgICAgICAgICAgICAgICA6Oj0gIFwiQ29tYmluYXRvclwiIHN0YXRlbWVudC4uLiA8RU5EX09GX0xJTkU+IDtcbiBcbmNvbnN0cnVjdG9yRGVjbGFyYXRpb24gICAgICAgICAgICAgICA6Oj0gIFwiQ29uc3RydWN0b3JcIiB0ZXJtLi4uICggXCI6XCIgdHlwZSApPyA8RU5EX09GX0xJTkU+IDtcbiBcbm1ldGF2YXJpYWJsZURlY2xhcmF0aW9uICAgICAgICAgICAgICA6Oj0gIFwiTWV0YXZhcmlhYmxlXCIgbWV0YXZhcmlhYmxlIFwiOlwiIG1ldGFUeXBlIDxFTkRfT0ZfTElORT4gO1xuIFxuXG4gIFxucnVsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDo6PSAgXCJSdWxlXCIgXCIoXCIgbGFiZWwgKCBcIixcIiBsYWJlbCApKiBcIilcIiA8RU5EX09GX0xJTkU+IFxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIFxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggXCJQcmVtaXNlc1wiIDxFTkRfT0ZfTElORT4gcHJlbWlzZSBwcmVtaXNlKyApIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBcIlByZW1pc2VcIiA8RU5EX09GX0xJTkU+IHByZW1pc2UgKSBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKT9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb25jbHVzaW9uXCIgPEVORF9PRl9MSU5FPiBjb25jbHVzaW9uIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVsZVByb29mPyA7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcblxubWV0YUxlbW1hICAgICAgICAgICAgICAgICAgICAgICAgICAgIDo6PSAgXCJNZXRhTGVtbWFcIiAoIFwiKFwiIGxhYmVsICggXCIsXCIgbGFiZWwgKSogXCIpXCIgKT8gPEVORF9PRl9MSU5FPiBcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlN1cHBvc2VcIiA8RU5EX09GX0xJTkU+IG1ldGFTdXBwb3NpdGlvbisgXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaGVuXCIgPEVORF9PRl9MSU5FPiBtZXRhQ29uc2VxdWVudFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApP1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGFDb25zZXF1ZW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0YXByb29mIDtcblxubWV0YXRoZW9yZW0gICAgICAgICAgICAgICAgICAgICAgICAgIDo6PSAgXCJNZXRhdGhlb3JlbVwiIFwiKFwiIGxhYmVsICggXCIsXCIgbGFiZWwgKSogXCIpXCIgPEVORF9PRl9MSU5FPiBcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlN1cHBvc2VcIiA8RU5EX09GX0xJTkU+IG1ldGFTdXBwb3NpdGlvbisgXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaGVuXCIgPEVORF9PRl9MSU5FPiBtZXRhQ29uc2VxdWVudFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApP1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGFDb25zZXF1ZW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXRhcHJvb2YgO1xuXG5heGlvbSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOjo9ICBcIkF4aW9tXCIgXCIoXCIgbGFiZWwgKCBcIixcIiBsYWJlbCApKiBcIilcIiA8RU5EX09GX0xJTkU+IFxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU3VwcG9zZVwiIDxFTkRfT0ZfTElORT4gc3VwcG9zaXRpb24rXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaGVuXCIgPEVORF9PRl9MSU5FPiBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKT9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc2VxdWVudCA7XG5cbmxlbW1hICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6Oj0gIFwiTGVtbWFcIiAoIFwiKFwiIGxhYmVsICggXCIsXCIgbGFiZWwgKSogXCIpXCIgKT8gPEVORF9PRl9MSU5FPiBcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlN1cHBvc2VcIiA8RU5EX09GX0xJTkU+IHN1cHBvc2l0aW9uK1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGhlblwiIDxFTkRfT0ZfTElORT4gXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc2VxdWVudFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvb2YgO1xuXG50aGVvcmVtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOjo9ICBcIlRoZW9yZW1cIiBcIihcIiBsYWJlbCAoIFwiLFwiIGxhYmVsICkqIFwiKVwiIDxFTkRfT0ZfTElORT4gXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTdXBwb3NlXCIgPEVORF9PRl9MSU5FPiBzdXBwb3NpdGlvbitcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRoZW5cIiA8RU5EX09GX0xJTkU+IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApP1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zZXF1ZW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9vZiA7XG5cbmNvbmplY3R1cmUgICAgICAgICAgICAgICAgICAgICAgICAgICA6Oj0gIFwiQ29uamVjdHVyZVwiIFwiKFwiIGxhYmVsICggXCIsXCIgbGFiZWwgKSogXCIpXCIgPEVORF9PRl9MSU5FPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU3VwcG9zZVwiIDxFTkRfT0ZfTElORT4gc3VwcG9zaXRpb24rXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaGVuXCIgPEVORF9PRl9MSU5FPiBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKT9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc2VxdWVudFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvb2Y/IDtcblxuXG5cbnJ1bGVQcm9vZiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6Oj0gIFwiUHJvb2ZcIiA8RU5EX09GX0xJTkU+IHJ1bGVEZXJpdmF0aW9uIDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxubWV0YXByb29mICAgICAgICAgICAgICAgICAgICAgICAgICAgIDo6PSAgXCJQcm9vZlwiIDxFTkRfT0ZfTElORT4gbWV0YURlcml2YXRpb24gO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbnByb29mICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6Oj0gIFwiUHJvb2ZcIiA8RU5EX09GX0xJTkU+IGRlcml2YXRpb24gO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcblxuXG5ydWxlU3VicHJvb2YgICAgICAgICAgICAgICAgICAgICAgICAgOjo9ICAoIFxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggXCJQcmVtaXNlc1wiIDxFTkRfT0ZfTElORT4gcHJlbWlzZSBwcmVtaXNlKyApIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBcIlByZW1pc2VcIiA8RU5EX09GX0xJTkU+IHByZW1pc2UgKSBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bGVTdWJEZXJpdmF0aW9uIDsgXG5cbm1ldGFTdWJwcm9vZiAgICAgICAgICAgICAgICAgICAgICAgICA6Oj0gIFwiU3VwcG9zZVwiIDxFTkRfT0ZfTElORT4gbWV0YVN1cHBvc2l0aW9uKyBtZXRhU3ViRGVyaXZhdGlvbiA7XG5cbnN1YnByb29mICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6Oj0gIFwiU3VwcG9zZVwiIDxFTkRfT0ZfTElORT4gc3VwcG9zaXRpb24rIHN1YkRlcml2YXRpb24gO1xuXG5cblxucnVsZURlcml2YXRpb24gICAgICAgICAgICAgICAgICAgICAgIDo6PSAgKCBcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydWxlUHJvb2ZTdGVwKyBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGhlcmVmb3JlXCIgPEVORF9PRl9MSU5FPiBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApPyBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFzdFJ1bGVQcm9vZlN0ZXAgOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcblxubWV0YURlcml2YXRpb24gICAgICAgICAgICAgICAgICAgICAgIDo6PSAgKCBcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXRhUHJvb2ZTdGVwKyBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGhlcmVmb3JlXCIgPEVORF9PRl9MSU5FPiBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApPyBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFzdE1ldGFQcm9vZlN0ZXAgOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcblxuZGVyaXZhdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAgIDo6PSAgKCBcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9vZlN0ZXArIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaGVyZWZvcmVcIiA8RU5EX09GX0xJTkU+IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk/IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXN0UHJvb2ZTdGVwIDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cblxuXG5ydWxlU3ViRGVyaXZhdGlvbiAgICAgICAgICAgICAgICAgICAgOjo9ICAoXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJIZW5jZVwiIDxFTkRfT0ZfTElORT5cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydWxlUHJvb2ZTdGVwKyBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKT8gXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRoZW5cIiA8RU5EX09GX0xJTkU+IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFzdFJ1bGVQcm9vZlN0ZXAgOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcblxubWV0YVN1YkRlcml2YXRpb24gICAgICAgICAgICAgICAgICAgIDo6PSAgKFxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiSGVuY2VcIiA8RU5EX09GX0xJTkU+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0YVByb29mU3RlcCsgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk/IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaGVuXCIgPEVORF9PRl9MSU5FPiBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhc3RNZXRhUHJvb2ZTdGVwIDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cbnN1YkRlcml2YXRpb24gICAgICAgICAgICAgICAgICAgICAgICA6Oj0gIChcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkhlbmNlXCIgPEVORF9PRl9MSU5FPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb29mU3RlcCsgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk/IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaGVuXCIgPEVORF9PRl9MSU5FPiBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhc3RQcm9vZlN0ZXAgOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcblxuXG5cbnByZW1pc2UuLiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6Oj0gIHVucXVhbGlmaWVkTWV0YXN0YXRlbWVudCA7XG5cbmNvbmNsdXNpb24uLiAgICAgICAgICAgICAgICAgICAgICAgICA6Oj0gIHVucXVhbGlmaWVkTWV0YXN0YXRlbWVudCA7XG5cbm1ldGFTdXBwb3NpdGlvbi4uICAgICAgICAgICAgICAgICAgICA6Oj0gIHVucXVhbGlmaWVkTWV0YXN0YXRlbWVudCA7XG5cbm1ldGFDb25zZXF1ZW50Li4gICAgICAgICAgICAgICAgICAgICA6Oj0gIHVucXVhbGlmaWVkTWV0YXN0YXRlbWVudCA7XG5cbnN1cHBvc2l0aW9uLi4gICAgICAgICAgICAgICAgICAgICAgICA6Oj0gIHVucXVhbGlmaWVkU3RhdGVtZW50IDtcblxuY29uc2VxdWVudC4uICAgICAgICAgICAgICAgICAgICAgICAgIDo6PSAgdW5xdWFsaWZpZWRTdGF0ZW1lbnQgO1xuXG5cblxucnVsZVByb29mU3RlcC4uICAgICAgICAgICAgICAgICAgICAgIDo6PSAgcnVsZVN1YnByb29mIFxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICBxdWFsaWZpZWRNZXRhc3RhdGVtZW50IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIHVucXVhbGlmaWVkTWV0YXN0YXRlbWVudCBcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgcXVhbGlmaWVkU3RhdGVtZW50IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIHVucXVhbGlmaWVkU3RhdGVtZW50IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDsgIFxuXG5tZXRhUHJvb2ZTdGVwLi4gICAgICAgICAgICAgICAgICAgICAgOjo9ICBtZXRhU3VicHJvb2YgXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIHF1YWxpZmllZE1ldGFzdGF0ZW1lbnQgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgdW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50IFxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICBxdWFsaWZpZWRTdGF0ZW1lbnQgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgdW5xdWFsaWZpZWRTdGF0ZW1lbnQgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOyAgXG5cbnByb29mU3RlcC4uICAgICAgICAgICAgICAgICAgICAgICAgICA6Oj0gIHN1YnByb29mIFxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICBxdWFsaWZpZWRTdGF0ZW1lbnQgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgdW5xdWFsaWZpZWRTdGF0ZW1lbnQgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOyAgXG5cblxuXG5sYXN0UnVsZVByb29mU3RlcC4uICAgICAgICAgICAgICAgICAgOjo9ICBxdWFsaWZpZWRNZXRhc3RhdGVtZW50IFxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICB1bnF1YWxpZmllZE1ldGFzdGF0ZW1lbnQgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDtcblxubGFzdE1ldGFQcm9vZlN0ZXAuLiAgICAgICAgICAgICAgICAgIDo6PSAgcXVhbGlmaWVkTWV0YXN0YXRlbWVudCBcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgdW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7XG5cbmxhc3RQcm9vZlN0ZXAuLiAgICAgICAgICAgICAgICAgICAgICA6Oj0gIHF1YWxpZmllZFN0YXRlbWVudCBcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgdW5xdWFsaWZpZWRTdGF0ZW1lbnQgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDtcblxuXG5cbnVucXVhbGlmaWVkTWV0YXN0YXRlbWVudCAgICAgICAgICAgICA6Oj0gIG1ldGFzdGF0ZW1lbnQuLi4gPEVORF9PRl9MSU5FPiBcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgbm9uc2Vuc2UuLi4gPEVORF9PRl9MSU5FPiBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgO1xuXG5xdWFsaWZpZWRNZXRhc3RhdGVtZW50ICAgICAgICAgICAgICAgOjo9ICBtZXRhc3RhdGVtZW50Li4uICggXCJieVwiIHwgXCJmcm9tXCIgKSByZWZlcmVuY2UgPEVORF9PRl9MSU5FPiBcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgbm9uc2Vuc2UuLi4gKCBcImJ5XCIgfCBcImZyb21cIiApIHJlZmVyZW5jZSA8RU5EX09GX0xJTkU+IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcblxudW5xdWFsaWZpZWRTdGF0ZW1lbnQgICAgICAgICAgICAgICAgIDo6PSAgc3RhdGVtZW50Li4uIDxFTkRfT0ZfTElORT5cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgbm9uc2Vuc2UuLi4gPEVORF9PRl9MSU5FPiBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgO1xuXG5xdWFsaWZpZWRTdGF0ZW1lbnQgICAgICAgICAgICAgICAgICAgOjo9ICBzdGF0ZW1lbnQuLi4gKCBcImJ5XCIgfCBcImZyb21cIiApIHJlZmVyZW5jZSA8RU5EX09GX0xJTkU+IFxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICBub25zZW5zZS4uLiAoIFwiYnlcIiB8IFwiZnJvbVwiICkgcmVmZXJlbmNlIDxFTkRfT0ZfTElORT4gXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDtcblxuXG5cbm5vbnNlbnNlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6Oj0gICggW3R5cGVdIHwgW3N5bWJvbF0gfCBbb3BlcmF0b3JdIHwgW3NwZWNpYWxdIHwgW3NlY29uZGFyeS1rZXl3b3JkXSB8IFttZXRhLXR5cGVdIHwgW25hbWVdIHwgW3VuYXNzaWduZWRdICkrIDtcblxuXG5cbnJlZmVyZW5jZS4gICAgICAgICAgICAgICAgICAgICAgICAgICA6Oj0gIG1ldGF2YXJpYWJsZSA7XG5cbmxhYmVsLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6Oj0gIG1ldGF2YXJpYWJsZSA7XG5cblxuXG5tZXRhQXJndW1lbnQgICAgICAgICAgICAgICAgICAgICAgICAgOjo9ICBzdGF0ZW1lbnQgKCApIFxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICBtZXRhVHlwZSAoICkgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDtcblxuYXJndW1lbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDo6PSAgdGVybSAoICkgXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIHR5cGUgKCApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDtcblxuXG5cbm1ldGF2YXJpYWJsZSAgICAgICAgICAgICAgICAgICAgICAgICA6Oj0gIFtuYW1lXSAoIDxOT19XSElURVNQQUNFPlwiKFwiIGFyZ3VtZW50Li4uIFwiKVwiICk/IDtcblxudmFyaWFibGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDo6PSAgW25hbWVdIDtcblxuXG5cbm1ldGFUeXBlICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6Oj0gIFttZXRhLXR5cGVdIDtcblxudHlwZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDo6PSAgW3R5cGVdIDtgO1xuXG5leHBvcnQgZGVmYXVsdCBibmY7XG4iXSwibmFtZXMiOlsiYm5mIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkE4WEE7OztlQUFBOzs7QUE1WEEsSUFBTUEsTUFBTztJQTRYYixXQUFlQSJ9
@@ -13,7 +13,7 @@ var entries = [
13
13
  "special": "^(?:,|::|:|=|\\||\\(|\\)|\\[|\\]|\\.\\.\\.)"
14
14
  },
15
15
  {
16
- "primary-keyword": "^(?:Rule|Axiom|Theorem|Lemma|Conjecture|Metalemma|Metatheorem|Premises|Premise|Conclusion|Proof|Therefore|Suppose|Hence|Then|Type|Variable|Constructor|Combinator|DependentType|DisjointType|Metavariable)\\b"
16
+ "primary-keyword": "^(?:Rule|Axiom|Theorem|Lemma|Conjecture|MetaLemma|Metatheorem|Premises|Premise|Conclusion|Proof|Therefore|Suppose|Hence|Then|Type|Variable|Constructor|Combinator|DependentType|DisjointType|Metavariable)\\b"
17
17
  },
18
18
  {
19
19
  "secondary-keyword": "^(?:from|by)\\b"
@@ -30,4 +30,4 @@ var entries = [
30
30
  ];
31
31
  var _default = entries;
32
32
 
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9mbG9yZW5jZS9lbnRyaWVzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xyXG5cclxuY29uc3QgZW50cmllcyA9IFtcclxuICB7XHJcbiAgICBcInNwZWNpYWxcIjogXCJeKD86LHw6Onw6fD18XFxcXHx8XFxcXCh8XFxcXCl8XFxcXFt8XFxcXF18XFxcXC5cXFxcLlxcXFwuKVwiXHJcbiAgfSxcclxuICB7XHJcbiAgICBcInByaW1hcnkta2V5d29yZFwiOiBcIl4oPzpSdWxlfEF4aW9tfFRoZW9yZW18TGVtbWF8Q29uamVjdHVyZXxNZXRhbGVtbWF8TWV0YXRoZW9yZW18UHJlbWlzZXN8UHJlbWlzZXxDb25jbHVzaW9ufFByb29mfFRoZXJlZm9yZXxTdXBwb3NlfEhlbmNlfFRoZW58VHlwZXxWYXJpYWJsZXxDb25zdHJ1Y3RvcnxDb21iaW5hdG9yfERlcGVuZGVudFR5cGV8RGlzam9pbnRUeXBlfE1ldGF2YXJpYWJsZSlcXFxcYlwiXHJcbiAgfSxcclxuICB7XHJcbiAgICBcInNlY29uZGFyeS1rZXl3b3JkXCI6IFwiXig/OmZyb218YnkpXFxcXGJcIlxyXG4gIH0sXHJcbiAge1xyXG4gICAgXCJtZXRhLXR5cGVcIjogXCJeKD86U3RhdGVtZW50fFJlZmVyZW5jZXxGcmFtZSlcXFxcYlwiXHJcbiAgfSxcclxuICB7XHJcbiAgICBcIm5hbWVcIjogXCJeW0EtWmEtes6RLc6pzrEtz4ldW0EtWmEtes6RLc6pzrEtz4lfMC05XSpcIlxyXG4gIH0sXHJcbiAge1xyXG4gICAgXCJ1bmFzc2lnbmVkXCI6IFwiXlteXFxcXHNdK1wiXHJcbiAgfVxyXG5dO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgZW50cmllcztcclxuIl0sIm5hbWVzIjpbImVudHJpZXMiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQXVCQTs7O2VBQUE7OztBQXJCQSxJQUFNQSxVQUFVO0lBQ2Q7UUFDRSxXQUFXO0lBQ2I7SUFDQTtRQUNFLG1CQUFtQjtJQUNyQjtJQUNBO1FBQ0UscUJBQXFCO0lBQ3ZCO0lBQ0E7UUFDRSxhQUFhO0lBQ2Y7SUFDQTtRQUNFLFFBQVE7SUFDVjtJQUNBO1FBQ0UsY0FBYztJQUNoQjtDQUNEO0lBRUQsV0FBZUEifQ==
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9mbG9yZW5jZS9lbnRyaWVzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xyXG5cclxuY29uc3QgZW50cmllcyA9IFtcclxuICB7XHJcbiAgICBcInNwZWNpYWxcIjogXCJeKD86LHw6Onw6fD18XFxcXHx8XFxcXCh8XFxcXCl8XFxcXFt8XFxcXF18XFxcXC5cXFxcLlxcXFwuKVwiXHJcbiAgfSxcclxuICB7XHJcbiAgICBcInByaW1hcnkta2V5d29yZFwiOiBcIl4oPzpSdWxlfEF4aW9tfFRoZW9yZW18TGVtbWF8Q29uamVjdHVyZXxNZXRhTGVtbWF8TWV0YXRoZW9yZW18UHJlbWlzZXN8UHJlbWlzZXxDb25jbHVzaW9ufFByb29mfFRoZXJlZm9yZXxTdXBwb3NlfEhlbmNlfFRoZW58VHlwZXxWYXJpYWJsZXxDb25zdHJ1Y3RvcnxDb21iaW5hdG9yfERlcGVuZGVudFR5cGV8RGlzam9pbnRUeXBlfE1ldGF2YXJpYWJsZSlcXFxcYlwiXHJcbiAgfSxcclxuICB7XHJcbiAgICBcInNlY29uZGFyeS1rZXl3b3JkXCI6IFwiXig/OmZyb218YnkpXFxcXGJcIlxyXG4gIH0sXHJcbiAge1xyXG4gICAgXCJtZXRhLXR5cGVcIjogXCJeKD86U3RhdGVtZW50fFJlZmVyZW5jZXxGcmFtZSlcXFxcYlwiXHJcbiAgfSxcclxuICB7XHJcbiAgICBcIm5hbWVcIjogXCJeW0EtWmEtes6RLc6pzrEtz4ldW0EtWmEtes6RLc6pzrEtz4lfMC05XSpcIlxyXG4gIH0sXHJcbiAge1xyXG4gICAgXCJ1bmFzc2lnbmVkXCI6IFwiXlteXFxcXHNdK1wiXHJcbiAgfVxyXG5dO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgZW50cmllcztcclxuIl0sIm5hbWVzIjpbImVudHJpZXMiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQXVCQTs7O2VBQUE7OztBQXJCQSxJQUFNQSxVQUFVO0lBQ2Q7UUFDRSxXQUFXO0lBQ2I7SUFDQTtRQUNFLG1CQUFtQjtJQUNyQjtJQUNBO1FBQ0UscUJBQXFCO0lBQ3ZCO0lBQ0E7UUFDRSxhQUFhO0lBQ2Y7SUFDQTtRQUNFLFFBQVE7SUFDVjtJQUNBO1FBQ0UsY0FBYztJQUNoQjtDQUNEO0lBRUQsV0FBZUEifQ==
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "occam-grammars",
3
3
  "author": "James Smith",
4
- "version": "1.0.701",
4
+ "version": "1.0.705",
5
5
  "license": "MIT, Anti-996",
6
6
  "homepage": "https://github.com/djalbat/occam-grammars",
7
7
  "description": "Occam's grammars.",
@@ -28,7 +28,7 @@ topLevelDeclaration ::= typeDeclaration
28
28
 
29
29
  | conjecture
30
30
 
31
- | metalemma
31
+ | metaLemma
32
32
 
33
33
  | metatheorem
34
34
 
@@ -70,134 +70,98 @@ rule ::= "Rule" "(" label ( "," label )* ")" <E
70
70
 
71
71
  "Conclusion" <END_OF_LINE> conclusion
72
72
 
73
- ruleProof? ;
73
+ ruleProof? ;
74
74
 
75
- axiom ::= "Axiom" "(" label ( "," label )* ")" <END_OF_LINE>
75
+ metaLemma ::= "MetaLemma" ( "(" label ( "," label )* ")" )? <END_OF_LINE>
76
76
 
77
77
  (
78
78
 
79
- (
80
-
81
- "Suppose" <END_OF_LINE> supposition+
79
+ "Suppose" <END_OF_LINE> metaSupposition+
82
80
 
83
- "Then" <END_OF_LINE> consequent
84
-
85
- )
86
-
87
- |
81
+ "Then" <END_OF_LINE> metaConsequent
88
82
 
89
- consequent
90
-
91
- ) ;
83
+ )?
84
+
85
+ metaConsequent
86
+
87
+ metaproof ;
92
88
 
93
- lemma ::= "Lemma" ( "(" label ( "," label )* ")" )? <END_OF_LINE>
89
+ metatheorem ::= "Metatheorem" "(" label ( "," label )* ")" <END_OF_LINE>
94
90
 
95
91
  (
96
92
 
97
- (
98
-
99
- "Suppose" <END_OF_LINE> supposition+
93
+ "Suppose" <END_OF_LINE> metaSupposition+
100
94
 
101
- "Then" <END_OF_LINE> consequent
102
-
103
- )
95
+ "Then" <END_OF_LINE> metaConsequent
104
96
 
105
- |
97
+ )?
106
98
 
107
- consequent
108
-
109
- )
99
+ metaConsequent
110
100
 
111
- proof ;
101
+ metaproof ;
112
102
 
113
- theorem ::= "Theorem" "(" label ( "," label )* ")" <END_OF_LINE>
103
+ axiom ::= "Axiom" "(" label ( "," label )* ")" <END_OF_LINE>
114
104
 
115
105
  (
116
106
 
117
- (
118
-
119
- "Suppose" <END_OF_LINE> supposition+
107
+ "Suppose" <END_OF_LINE> supposition+
120
108
 
121
- "Then" <END_OF_LINE> consequent
109
+ "Then" <END_OF_LINE>
122
110
 
123
- )
124
-
125
- |
126
-
127
- consequent
111
+ )?
128
112
 
129
- )
130
-
131
- proof ;
113
+ consequent ;
132
114
 
133
- conjecture ::= "Conjecture" "(" label ( "," label )* ")" <END_OF_LINE>
115
+ lemma ::= "Lemma" ( "(" label ( "," label )* ")" )? <END_OF_LINE>
134
116
 
135
117
  (
136
118
 
137
- (
138
-
139
- "Suppose" <END_OF_LINE> supposition+
119
+ "Suppose" <END_OF_LINE> supposition+
140
120
 
141
- "Then" <END_OF_LINE> consequent
142
-
143
- )
144
-
145
- |
121
+ "Then" <END_OF_LINE>
146
122
 
147
- consequent
148
-
149
- )
123
+ )?
124
+
125
+ consequent
150
126
 
151
- proof? ;
127
+ proof ;
152
128
 
153
- metalemma ::= "Metalemma" ( "(" label ( "," label )* ")" )? <END_OF_LINE>
129
+ theorem ::= "Theorem" "(" label ( "," label )* ")" <END_OF_LINE>
154
130
 
155
- (
131
+ (
156
132
 
157
- (
158
-
159
- "Suppose" <END_OF_LINE> metaSupposition+
133
+ "Suppose" <END_OF_LINE> supposition+
160
134
 
161
- "Then" <END_OF_LINE> metaConsequent
162
-
163
- )
164
-
165
- |
135
+ "Then" <END_OF_LINE>
136
+
137
+ )?
166
138
 
167
- metaConsequent
168
-
169
- )
139
+ consequent
170
140
 
171
- metaproof ;
141
+ proof ;
172
142
 
173
- metatheorem ::= "Metatheorem" "(" label ( "," label )* ")" <END_OF_LINE>
143
+ conjecture ::= "Conjecture" "(" label ( "," label )* ")" <END_OF_LINE>
174
144
 
175
- (
145
+ (
176
146
 
177
- (
178
-
179
- "Suppose" <END_OF_LINE> metaSupposition+
147
+ "Suppose" <END_OF_LINE> supposition+
180
148
 
181
- "Then" <END_OF_LINE> metaConsequent
182
-
183
- )
184
-
185
- |
149
+ "Then" <END_OF_LINE>
186
150
 
187
- metaConsequent
188
-
189
- )
151
+ )?
152
+
153
+ consequent
190
154
 
191
- metaproof ;
155
+ proof? ;
192
156
 
193
157
 
194
158
 
195
159
  ruleProof ::= "Proof" <END_OF_LINE> ruleDerivation ;
196
160
 
161
+ metaproof ::= "Proof" <END_OF_LINE> metaDerivation ;
162
+
197
163
  proof ::= "Proof" <END_OF_LINE> derivation ;
198
164
 
199
- metaproof ::= "Proof" <END_OF_LINE> metaDerivation ;
200
-
201
165
 
202
166
 
203
167
  ruleSubproof ::= (
@@ -212,41 +176,41 @@ ruleSubproof ::= (
212
176
 
213
177
  ruleSubDerivation ;
214
178
 
215
- subproof ::= "Suppose" <END_OF_LINE> supposition+ subDerivation ;
216
-
217
179
  metaSubproof ::= "Suppose" <END_OF_LINE> metaSupposition+ metaSubDerivation ;
218
180
 
181
+ subproof ::= "Suppose" <END_OF_LINE> supposition+ subDerivation ;
219
182
 
220
183
 
221
- ruleDerivation ::= (
222
184
 
223
- ( ruleSubproof | qualifiedMetastatement | unqualifiedMetastatement )+
185
+ ruleDerivation ::= (
224
186
 
187
+ ruleProofStep+
188
+
225
189
  "Therefore" <END_OF_LINE>
226
-
190
+
227
191
  )?
228
-
229
- ( qualifiedMetastatement | unqualifiedMetastatement ) ;
230
-
231
- derivation ::= (
192
+
193
+ lastRuleProofStep ;
232
194
 
233
- ( subproof | qualifiedStatement | unqualifiedStatement )+
195
+ metaDerivation ::= (
234
196
 
235
- "Therefore" <END_OF_LINE>
236
-
197
+ metaProofStep+
198
+
199
+ "Therefore" <END_OF_LINE>
200
+
237
201
  )?
238
-
239
- ( qualifiedStatement | unqualifiedStatement ) ;
240
-
241
- metaDerivation ::= (
202
+
203
+ lastMetaProofStep ;
242
204
 
243
- ( metaSubproof | qualifiedMetastatement | unqualifiedMetastatement )+
205
+ derivation ::= (
244
206
 
207
+ proofStep+
208
+
245
209
  "Therefore" <END_OF_LINE>
246
-
210
+
247
211
  )?
248
-
249
- ( qualifiedMetastatement | unqualifiedMetastatement ) ;
212
+
213
+ lastProofStep ;
250
214
 
251
215
 
252
216
 
@@ -254,73 +218,127 @@ ruleSubDerivation ::= (
254
218
 
255
219
  "Hence" <END_OF_LINE>
256
220
 
257
- ( ruleSubproof | qualifiedMetastatement | unqualifiedMetastatement )+
221
+ ruleProofStep+
258
222
 
259
223
  )?
260
224
 
261
225
  "Then" <END_OF_LINE>
262
226
 
263
- ( qualifiedMetastatement | unqualifiedMetastatement ) ;
227
+ lastRuleProofStep ;
264
228
 
265
- subDerivation ::= (
229
+ metaSubDerivation ::= (
266
230
 
267
231
  "Hence" <END_OF_LINE>
268
232
 
269
- ( subproof | qualifiedStatement | unqualifiedStatement )+
233
+ metaProofStep+
270
234
 
271
235
  )?
272
236
 
273
237
  "Then" <END_OF_LINE>
274
238
 
275
- ( qualifiedStatement | unqualifiedStatement ) ;
239
+ lastMetaProofStep ;
276
240
 
277
- metaSubDerivation ::= (
241
+ subDerivation ::= (
278
242
 
279
243
  "Hence" <END_OF_LINE>
280
244
 
281
- ( metaSubproof | qualifiedMetastatement | unqualifiedMetastatement )+
245
+ proofStep+
282
246
 
283
247
  )?
284
248
 
285
249
  "Then" <END_OF_LINE>
286
250
 
287
- ( qualifiedMetastatement | unqualifiedMetastatement ) ;
251
+ lastProofStep ;
252
+
253
+
254
+
255
+ premise.. ::= unqualifiedMetastatement ;
256
+
257
+ conclusion.. ::= unqualifiedMetastatement ;
258
+
259
+ metaSupposition.. ::= unqualifiedMetastatement ;
260
+
261
+ metaConsequent.. ::= unqualifiedMetastatement ;
262
+
263
+ supposition.. ::= unqualifiedStatement ;
264
+
265
+ consequent.. ::= unqualifiedStatement ;
266
+
267
+
268
+
269
+ ruleProofStep.. ::= ruleSubproof
288
270
 
271
+ | qualifiedMetastatement
272
+
273
+ | unqualifiedMetastatement
289
274
 
275
+ | qualifiedStatement
276
+
277
+ | unqualifiedStatement
278
+
279
+ ;
290
280
 
291
- premise ::= unqualifiedMetastatement ;
281
+ metaProofStep.. ::= metaSubproof
292
282
 
293
- conclusion ::= unqualifiedMetastatement ;
283
+ | qualifiedMetastatement
284
+
285
+ | unqualifiedMetastatement
294
286
 
295
- supposition ::= unqualifiedStatement ;
287
+ | qualifiedStatement
288
+
289
+ | unqualifiedStatement
290
+
291
+ ;
296
292
 
297
- consequent ::= unqualifiedStatement ;
293
+ proofStep.. ::= subproof
298
294
 
299
- metaSupposition ::= unqualifiedMetastatement ;
295
+ | qualifiedStatement
296
+
297
+ | unqualifiedStatement
298
+
299
+ ;
300
300
 
301
- metaConsequent ::= unqualifiedMetastatement ;
301
+
302
+
303
+ lastRuleProofStep.. ::= qualifiedMetastatement
304
+
305
+ | unqualifiedMetastatement
306
+
307
+ ;
308
+
309
+ lastMetaProofStep.. ::= qualifiedMetastatement
310
+
311
+ | unqualifiedMetastatement
312
+
313
+ ;
314
+
315
+ lastProofStep.. ::= qualifiedStatement
316
+
317
+ | unqualifiedStatement
318
+
319
+ ;
302
320
 
303
321
 
304
322
 
305
- unqualifiedMetastatement.. ::= metastatement... <END_OF_LINE>
323
+ unqualifiedMetastatement ::= metastatement... <END_OF_LINE>
306
324
 
307
325
  | nonsense... <END_OF_LINE>
308
326
 
309
327
  ;
310
328
 
311
- qualifiedMetastatement.. ::= metastatement... ( "by" | "from" ) reference <END_OF_LINE>
329
+ qualifiedMetastatement ::= metastatement... ( "by" | "from" ) reference <END_OF_LINE>
312
330
 
313
331
  | nonsense... ( "by" | "from" ) reference <END_OF_LINE>
314
332
 
315
333
  ;
316
334
 
317
- unqualifiedStatement.. ::= statement... <END_OF_LINE>
335
+ unqualifiedStatement ::= statement... <END_OF_LINE>
318
336
 
319
337
  | nonsense... <END_OF_LINE>
320
338
 
321
339
  ;
322
340
 
323
- qualifiedStatement.. ::= statement... ( "by" | "from" ) reference <END_OF_LINE>
341
+ qualifiedStatement ::= statement... ( "by" | "from" ) reference <END_OF_LINE>
324
342
 
325
343
  | nonsense... ( "by" | "from" ) reference <END_OF_LINE>
326
344
 
@@ -5,7 +5,7 @@ const entries = [
5
5
  "special": "^(?:,|::|:|=|\\||\\(|\\)|\\[|\\]|\\.\\.\\.)"
6
6
  },
7
7
  {
8
- "primary-keyword": "^(?:Rule|Axiom|Theorem|Lemma|Conjecture|Metalemma|Metatheorem|Premises|Premise|Conclusion|Proof|Therefore|Suppose|Hence|Then|Type|Variable|Constructor|Combinator|DependentType|DisjointType|Metavariable)\\b"
8
+ "primary-keyword": "^(?:Rule|Axiom|Theorem|Lemma|Conjecture|MetaLemma|Metatheorem|Premises|Premise|Conclusion|Proof|Therefore|Suppose|Hence|Then|Type|Variable|Constructor|Combinator|DependentType|DisjointType|Metavariable)\\b"
9
9
  },
10
10
  {
11
11
  "secondary-keyword": "^(?:from|by)\\b"