@dataform/core
Advanced tools
Comparing version 1.0.3 to 1.0.4
{ | ||
"version": "1.0.3", | ||
"version": "1.0.4", | ||
"homepage": "https://github.com/dataform-co/dataform", | ||
@@ -24,3 +24,3 @@ "license": "MIT", | ||
"dependencies": { | ||
"@dataform/protos": "1.0.3", | ||
"@dataform/protos": "1.0.4", | ||
"moo": "^0.5.0", | ||
@@ -27,0 +27,0 @@ "protobufjs": "^6.8.8" |
@@ -206,7 +206,7 @@ (function (factory) { | ||
match: /--.*?$/, | ||
value: (value) => value.replace(/`/g, "\\`") | ||
value: (value) => value.replace(/`/g, "\\`").replace(/\${/g, "\\${") | ||
}; | ||
sqlLexer[SQL_LEXER_TOKEN_NAMES.MULTI_LINE_COMMENT] = { | ||
match: /\/\*[\s\S]*?\*\//, | ||
value: (value) => value.replace(/`/g, "\\`") | ||
value: (value) => value.replace(/`/g, "\\`").replace(/\${/g, "\\${") | ||
}; | ||
@@ -298,2 +298,2 @@ sqlLexer[SQL_LEXER_TOKEN_NAMES.SINGLE_QUOTE_STRING] = /'(?:\\['\\]|[^\n'\\])*'/; | ||
}); | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3FseF9wYXJzZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9jb3JlL3NxbHhfcGFyc2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0lBQUEsMkJBQTJCO0lBRTNCLE1BQU0saUJBQWlCLEdBQUc7UUFDeEIsR0FBRyxFQUFFLEtBQUs7UUFDVixRQUFRLEVBQUUsU0FBUztRQUNuQixrQkFBa0IsRUFBRSxrQkFBa0I7UUFDdEMsZUFBZSxFQUFFLGtCQUFrQjtLQUNwQyxDQUFDO0lBRUYsTUFBTSxxQkFBcUIsR0FBRztRQUM1QixZQUFZLEVBQUUsaUJBQWlCLENBQUMsR0FBRyxHQUFHLGNBQWM7UUFDcEQsUUFBUSxFQUFFLGlCQUFpQixDQUFDLEdBQUcsR0FBRyxVQUFVO1FBQzVDLGlCQUFpQixFQUFFLGlCQUFpQixDQUFDLEdBQUcsR0FBRyxtQkFBbUI7UUFDOUQsb0JBQW9CLEVBQUUsaUJBQWlCLENBQUMsR0FBRyxHQUFHLHFCQUFxQjtRQUNuRSxxQkFBcUIsRUFBRSxpQkFBaUIsQ0FBQyxHQUFHLEdBQUcsc0JBQXNCO1FBQ3JFLFdBQVcsRUFBRSxpQkFBaUIsQ0FBQyxHQUFHLEdBQUcsYUFBYTtRQUNsRCxtQkFBbUIsRUFBRSxpQkFBaUIsQ0FBQyxHQUFHLEdBQUcscUJBQXFCO1FBQ2xFLG1CQUFtQixFQUFFLGlCQUFpQixDQUFDLEdBQUcsR0FBRyxvQkFBb0I7UUFDakUsa0JBQWtCLEVBQUUsaUJBQWlCLENBQUMsR0FBRyxHQUFHLG1CQUFtQjtRQUMvRCxtQkFBbUIsRUFBRSxpQkFBaUIsQ0FBQyxHQUFHLEdBQUcsb0JBQW9CO1FBQ2pFLG1CQUFtQixFQUFFLGlCQUFpQixDQUFDLEdBQUcsR0FBRyxvQkFBb0I7UUFDakUsb0JBQW9CLEVBQUUsaUJBQWlCLENBQUMsR0FBRyxHQUFHLHFCQUFxQjtRQUNuRSxnQkFBZ0IsRUFBRSxpQkFBaUIsQ0FBQyxHQUFHLEdBQUcsa0JBQWtCO1FBQzVELFFBQVEs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a0IsQ0FBQyxpQ0FBaUMsQ0FBQyxXQUFXLENBQUMsR0FBRztZQUNsRSxLQUFLLEVBQUUsR0FBRztZQUNWLEdBQUcsRUFBRSxDQUFDO1lBQ04sS0FBSyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7U0FDaEIsQ0FBQztRQUNGLGtCQUFrQixDQUFDLGlDQUFpQyxDQUFDLGdCQUFnQixDQUFDLEdBQUc7WUFDdkUsS0FBSyxFQUFFLEtBQUs7U0FDYixDQUFDO1FBQ0Ysa0JBQWtCLENBQUMsaUNBQWlDLENBQUMsUUFBUSxDQUFDLEdBQUc7WUFDL0QsS0FBSyxFQUFFLEdBQUc7WUFDVixLQUFLLEVBQUUsR0FBRyxFQUFFLENBQUMsS0FBSztTQUNuQixDQUFDO1FBQ0Ysa0JBQWtCLENBQUMsaUNBQWlDLENBQUMsdUJBQXVCLENBQUMsR0FBRztZQUM5RSxLQUFLLEVBQUUsVUFBVTtZQUNqQixVQUFVLEVBQUUsSUFBSTtTQUNqQixDQUFDO1FBRUYsTUFBTSxXQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ3ZCLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsR0FBRyxRQUFRLENBQUM7UUFDOUMsV0FBVyxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxHQUFHLFlBQVksQ0FBQztRQUN2RCxXQUFXLENBQUMsaUJBQWlCLENBQUMsa0JBQWtCLENBQUMsR0FBRyxxQkFBcUIsQ0FBQztRQUMxRSxXQUFXLENBQUMsaUJBQWlCLENBQUMsZUFBZSxDQUFDLEdBQUcsa0JBQWtCLENBQUM7UUFFcEUsT0FBTyxXQUFXLENBQUM7SUFDckIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIG1vbyBmcm9tIFwibW9vXCI7XG5cbmNvbnN0IExFWEVSX1NUQVRFX05BTUVTID0ge1xuICBTUUw6IFwic3FsXCIsXG4gIEpTX0JMT0NLOiBcImpzQmxvY2tcIixcbiAgSlNfVEVNUExBVEVfU1RSSU5HOiBcImpzVGVtcGxhdGVTdHJpbmdcIixcbiAgSU5ORVJfU1FMX0JMT0NLOiBcImluY3JlbWVudGFsQmxvY2tcIlxufTtcblxuY29uc3QgU1FMX0xFWEVSX1RPS0VOX05BTUVTID0ge1xuICBTVEFSVF9DT05GSUc6IExFWEVSX1NUQVRFX05BTUVTLlNRTCArIFwiX3N0YXJ0Q29uZmlnXCIsXG4gIFNUQVJUX0pTOiBMRVhFUl9TVEFURV9OQU1FUy5TUUwgKyBcIl9zdGFydEpzXCIsXG4gIFNUQVJUX0lOQ1JFTUVOVEFMOiBMRVhFUl9TVEFURV9OQU1FUy5TUUwgKyBcIl9zdGFydEluY3JlbWVudGFsXCIsXG4gIFNUQVJUX1BSRV9PUEVSQVRJT05TOiBMRVhFUl9TVEFURV9OQU1FUy5TUUwgKyBcIl9zdGFydFByZU9wZXJhdGlvbnNcIixcbiAgU1RBUlRfUE9TVF9PUEVSQVRJT05TOiBMRVhFUl9TVEFURV9OQU1FUy5TUUwgKyBcIl9zdGFydFBvc3RPcGVyYXRpb25zXCIsXG4gIFNUQVJUX0lOUFVUOiBMRVhFUl9TVEFURV9OQU1FUy5TUUwgKyBcIl9zdGFydElucHV0XCIsXG4gIFNUQVRFTUVOVF9TRVBFUkFUT1I6IExFWEVSX1NUQVRFX05BTUVTLlNRTCArIFwiX3N0YXRlbWVudFNlcGFyYXRvclwiLFxuICBTSU5HTEVfTElORV9DT01NRU5UOiBMRVhFUl9TVEFURV9OQU1FUy5TUUwgKyBcIl9zaW5nbGVMaW5lQ29tbWVudFwiLFxuICBNVUxUSV9MSU5FX0NPTU1FTlQ6IExFWEVSX1NUQVRFX05BTUVTLlNRTCArIFwiX211bHRpTGluZUNvbW1lbnRcIixcbiAgU0lOR0xFX1FVT1RFX1NUUklORzogTEVYRVJfU1RBVEVfTkFNRVMuU1FMICsgXCJfc2luZ2xlUXVvdGVTdHJpbmdcIixcbiAgRE9VQkxFX1FVT1RFX1NUUklORzogTEVYRVJfU1RBVEVfTkFNRVMuU1FMICsgXCJfZG91YmxlUXVvdGVTdHJpbmdcIixcbiAgU1RBUlRfSlNfUExBQ0VIT0xERVI6IExFWEVSX1NUQVRFX05BTUVTLlNRTCArIFwiX3N0YXJ0SnNQbGFjZWhvbGRlclwiLFxuICBFU0NBUEVEX0JBQ0tUSUNLOiBMRVhFUl9TVEFURV9OQU1FUy5TUUwgKyBcIl9lc2NhcGVkQmFja3RpY2tcIixcbiAgQkFDS1RJQ0s6IExFWEVSX1NUQVRFX05BTUVTLlNRTCArIFwiX2JhY2t0aWNrXCIsXG4gIENBUFRVUkVfRVZFUllUSElOR19FTFNFOiBMRVhFUl9TVEFURV9OQU1FUy5TUUwgKyBcIl9jYXB0dXJlRXZlcnl0aGluZ0Vsc2VcIlxufTtcblxuY29uc3QgSlNfQkxPQ0tfTEVYRVJfVE9LRU5fTkFNRVMgPSB7XG4gIFNJTkdMRV9MSU5FX0NPTU1FTlQ6IExFWEVSX1NUQVRFX05BTUVTLkpTX0JMT0NLICsgXCJfc2luZ2xlTGluZUNvbW1lbnRcIixcbiAgTVVMVElfTElORV9DT01NRU5UOiBMRVhFUl9TVEFURV9OQU1FUy5KU19CTE9DSyArIFwiX211bHRpTGluZUNvbW1lbnRcIixcbiAgU0lOR0xFX1FVT1RFX1NUUklORzogTEVYRVJfU1RBVEVfTkFNRVMuSlNfQkxPQ0sgKyBcIl9zaW5nbGVRdW90ZVN0cmluZ1wiLFxuICBET1VCTEVfUVVPVEVfU1RSSU5HOiBMRVhFUl9TVEFURV9OQU1FUy5KU19CTE9DSyArIFwiX2RvdWJsZVF1b3RlU3RyaW5nXCIsXG4gIFNUQVJUX0pTX1RFTVBMQVRFX1NUUklORzogTEVYRVJfU1RBVEVfTkFNRVMuSlNfQkxPQ0sgKyBcIl9zdGFydEpzVGVtcGxhdGVTdHJpbmdcIixcbiAgU1RBUlRfSlNfQkxPQ0s6IExFWEVSX1NUQVRFX05BTUVTLkpTX0JMT0NLICsgXCJfc3RhcnRKc0Jsb2NrXCIsXG4gIENMT1NFX0JMT0NLOiBMRVhFUl9TVEFURV9OQU1FUy5KU19CTE9DSyArIFwiX2Nsb3NlQmxvY2tcIixcbiAgQ0FQVFVSRV9FVkVSWVRISU5HX0VMU0U6IExFWEVSX1NUQVRFX05BTUVTLkpTX0JMT0NLICsgXCJfY2FwdHVyZUV2ZXJ5dGhpbmdFbHNlXCJcbn07XG5cbmNvbnN0IEpTX1RFTVBMQVRFX1NUUklOR19MRVhFUl9UT0tFTl9OQU1FUyA9IHtcbiAgRVNDQVBFRF9CQUNLU0xBU0g6IExFWEVSX1NUQVRFX05BTUVTLkpTX1RFTVBMQVRFX1NUUklORyArIFwiX2VzY2FwZWRCYWNrc2xhc2hcIixcbiAgRVNDQVBFRF9CQUNLVElDSzogTEVYRVJfU1RBVEVfTkFNRVMuSlNfVEVNUExBVEVfU1RSSU5HICsgXCJfZXNjYXBlZEJhY2t0aWNrXCIsXG4gIEVTQ0FQRURfRE9MTEFSX0JSQUNFOiBMRVhFUl9TVEFURV9OQU1FUy5KU19URU1QTEFURV9TVFJJTkcgKyBcIl9lc2NhcGVkRG9sbGFyQnJhY2VcIixcbiAgU1RBUlRfSlNfQkxPQ0s6IExFWEVSX1NUQVRFX05BTUVTLkpTX1RFTVBMQVRFX1NUUklORyArIFwiX3N0YXJ0SnNCbG9ja1wiLFxuICBDTE9TRV9TVFJJTkc6IExFWEVSX1NUQVRFX05BTUVTLkpTX1RFTVBMQVRFX1NUUklORyArIFwiX2Nsb3NlU3RyaW5nXCIsXG4gIENBUFRVUkVfRVZFUllUSElOR19FTFNFOiBMRVhFUl9TVEFURV9OQU1FUy5KU19URU1QTEFURV9TVFJJTkcgKyBcIl9jYXB0dXJlRXZlcnl0aGluZ0Vsc2VcIlxufTtcblxuY29uc3QgSU5ORVJfU1FMX0JMT0NLX0xFWEVSX1RPS0VOX05BTUVTID0ge1xuICBTVEFURU1FTlRfU0VQRVJBVE9SOiBMRVhFUl9TVEFURV9OQU1FUy5JTk5FUl9TUUxfQkxPQ0sgKyBcIl9zdGF0ZW1lbnRTZXBhcmF0b3JcIixcbiAgU0lOR0xFX0xJTkVfQ09NTUVOVDogTEVYRVJfU1RBVEVfTkFNRVMuSU5ORVJfU1FMX0JMT0NLICsgXCJfc2luZ2xlTGluZUNvbW1lbnRcIixcbiAgTVVMVElfTElORV9DT01NRU5UOiBMRVhFUl9TVEFURV9OQU1FUy5JTk5FUl9TUUxfQkxPQ0sgKyBcIl9tdWx0aUxpbmVDb21tZW50XCIsXG4gIFNJTkdMRV9RVU9URV9TVFJJTkc6IExFWEVSX1NUQVRFX05BTUVTLklOTkVSX1NRTF9CTE9DSyArIFwiX3NpbmdsZVF1b3RlU3RyaW5nXCIsXG4gIERPVUJMRV9RVU9URV9TVFJJTkc6IExFWEVSX1NUQVRFX05BTUVTLklOTkVSX1NRTF9CTE9DSyArIFwiX2RvdWJsZVF1b3RlU3RyaW5nXCIsXG4gIFNUQVJUX0pTX0JMT0NLOiBMRVhFUl9TVEFURV9OQU1FUy5JTk5FUl9TUUxfQkxPQ0sgKyBcIl9zdGFydEpzQmxvY2tcIixcbiAgQ0xPU0VfQkxPQ0s6IExFWEVSX1NUQVRFX05BTUVTLklOTkVSX1NRTF9CTE9DSyArIFwiX2Nsb3NlQmxvY2tcIixcbiAgRVNDQVBFRF9CQUNLVElDSzogTEVYRVJfU1RBVEVfTkFNRVMuSU5ORVJfU1FMX0JMT0NLICsgXCJfZXNjYXBlZEJhY2t0aWNrXCIsXG4gIEJBQ0tUSUNLOiBMRVhFUl9TVEFURV9OQU1FUy5JTk5FUl9TUUxfQkxPQ0sgKyBcIl9iYWNrdGlja1wiLFxuICBDQVBUVVJFX0VWRVJZVEhJTkdfRUxTRTogTEVYRVJfU1RBVEVfTkFNRVMuSU5ORVJfU1FMX0JMT0NLICsgXCJfY2FwdHVyZUV2ZXJ5dGhpbmdFbHNlXCJcbn07XG5cbmNvbnN0IGxleGVyID0gbW9vLnN0YXRlcyhidWlsZFNxbHhMZXhlcigpKTtcblxuZXhwb3J0IGludGVyZmFjZSBJU3FseFBhcnNlUmVzdWx0cyB7XG4gIGNvbmZpZzogc3RyaW5nO1xuICBqczogc3RyaW5nO1xuICBzcWw6IHN0cmluZ1tdO1xuICBpbmNyZW1lbnRhbDogc3RyaW5nO1xuICBwcmVPcGVyYXRpb25zOiBzdHJpbmdbXTtcbiAgcG9zdE9wZXJhdGlvbnM6IHN0cmluZ1tdO1xuICBpbnB1dDogeyBbbGFiZWw6IHN0cmluZ106IHN0cmluZyB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VTcWx4KGNvZGU6IHN0cmluZyk6IElTcWx4UGFyc2VSZXN1bHRzIHtcbiAgY29uc3QgcmVzdWx0cyA9IHtcbiAgICBjb25maWc6IFwiXCIsXG4gICAganM6IFwiXCIsXG4gICAgc3FsOiBbXCJcIl0sXG4gICAgaW5jcmVtZW50YWw6IFwiXCIsXG4gICAgcHJlT3BlcmF0aW9uczogW1wiXCJdLFxuICAgIHBvc3RPcGVyYXRpb25zOiBbXCJcIl0sXG4gICAgaW5wdXQ6IHt9XG4gIH07XG4gIGxldCBjdXJyZW50SW5wdXRMYWJlbDtcbiAgY29uc3QgcGFyc2VTdGF0ZSA9IG5ldyBTcWx4UGFyc2VTdGF0ZSgpO1xuICBsZXhlci5yZXNldChjb2RlKTtcbiAgZm9yIChjb25zdCB0b2tlbiBvZiBsZXhlcikge1xuICAgIGNvbnN0IHByZXZpb3VzU3RhdGUgPSBwYXJzZVN0YXRlLmN1cnJlbnRTdGF0ZTtcbiAgICBjb25zdCBuZXdTdGF0ZSA9IHBhcnNlU3RhdGUuY29tcHV0ZVN0YXRlKHRva2VuKTtcblxuICAgIGlmICh0b2tlbi50eXBlID09PSBTUUxfTEVYRVJfVE9LRU5fTkFNRVMuU1RBUlRfSU5QVVQpIHtcbiAgICAgIGN1cnJlbnRJbnB1dExhYmVsID0gdG9rZW4udmFsdWU7XG4gICAgICB0b2tlbi52YWx1ZSA9IFwiXCI7XG4gICAgfVxuXG4gICAgY29uc3QgaXNTdGF0ZW1lbnRTZXBhcmF0b3IgPVxuICAgICAgdG9rZW4udHlwZSA9PT0gU1FMX0xFWEVSX1RPS0VOX05BTUVTLlNUQVRFTUVOVF9TRVBFUkFUT1IgfHxcbiAgICAgIHRva2VuLnR5cGUgPT09IElOTkVSX1NRTF9CTE9DS19MRVhFUl9UT0tFTl9OQU1FUy5TVEFURU1FTlRfU0VQRVJBVE9SO1xuXG4gICAgc3dpdGNoIChuZXdTdGF0ZSkge1xuICAgICAgY2FzZSBcImNvbmZpZ1wiOiB7XG4gICAgICAgIHJlc3VsdHMuY29uZmlnICs9IHRva2VuLnZhbHVlO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgXCJqc1wiOiB7XG4gICAgICAgIHJlc3VsdHMuanMgKz0gdG9rZW4udmFsdWU7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSBcInNxbFwiOiB7XG4gICAgICAgIGlmIChpc1N0YXRlbWVudFNlcGFyYXRvcikge1xuICAgICAgICAgIHJlc3VsdHMuc3FsLnB1c2goXCJcIik7XG4gICAgICAgIH1cbiAgICAgICAgcmVzdWx0cy5zcWxbcmVzdWx0cy5zcWwubGVuZ3RoIC0gMV0gKz0gdG9rZW4udmFsdWU7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSBcImluY3JlbWVudGFsXCI6IHtcbiAgICAgICAgaWYgKGlzU3RhdGVtZW50U2VwYXJhdG9yKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgXCJJbmNyZW1lbnRhbCBjb2RlIGJsb2NrcyBtYXkgbm90IGNvbnRhaW4gU1FMIHN0YXRlbWVudCBzZXBhcmF0b3JzICgnLS0tJykuXCJcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIHJlc3VsdHMuaW5jcmVtZW50YWwgKz0gdG9rZW4udmFsdWU7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSBcInByZU9wZXJhdGlvbnNcIjoge1xuICAgICAgICBpZiAoaXNTdGF0ZW1lbnRTZXBhcmF0b3IpIHtcbiAgICAgICAgICByZXN1bHRzLnByZU9wZXJhdGlvbnMucHVzaChcIlwiKTtcbiAgICAgICAgfVxuICAgICAgICByZXN1bHRzLnByZU9wZXJhdGlvbnNbcmVzdWx0cy5wcmVPcGVyYXRpb25zLmxlbmd0aCAtIDFdICs9IHRva2VuLnZhbHVlO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgXCJwb3N0T3BlcmF0aW9uc1wiOiB7XG4gICAgICAgIGlmIChpc1N0YXRlbWVudFNlcGFyYXRvcikge1xuICAgICAgICAgIHJlc3VsdHMucG9zdE9wZXJhdGlvbnMucHVzaChcIlwiKTtcbiAgICAgICAgfVxuICAgICAgICByZXN1bHRzLnBvc3RPcGVyYXRpb25zW3Jlc3VsdHMucG9zdE9wZXJhdGlvbnMubGVuZ3RoIC0gMV0gKz0gdG9rZW4udmFsdWU7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSBcImlucHV0XCI6IHtcbiAgICAgICAgaWYgKGlzU3RhdGVtZW50U2VwYXJhdG9yKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiSW5wdXQgY29kZSBibG9ja3MgbWF5IG5vdCBjb250YWluIFNRTCBzdGF0ZW1lbnQgc2VwYXJhdG9ycyAoJy0tLScpLlwiKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXJlc3VsdHMuaW5wdXRbY3VycmVudElucHV0TGFiZWxdKSB7XG4gICAgICAgICAgcmVzdWx0cy5pbnB1dFtjdXJyZW50SW5wdXRMYWJlbF0gPSBcIlwiO1xuICAgICAgICB9XG4gICAgICAgIHJlc3VsdHMuaW5wdXRbY3VycmVudElucHV0TGFiZWxdICs9IHRva2VuLnZhbHVlO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5yZWNvZ25pemVkIHBhcnNlIHN0YXRlOiAke25ld1N0YXRlfWApO1xuICAgIH1cblxuICAgIGlmIChwcmV2aW91c1N0YXRlID09PSBcImpzXCIgJiYgbmV3U3RhdGUgIT09IFwianNcIikge1xuICAgICAgLy8gSWYgd2UncmUgY2xvc2luZyBvZmYgYSBKUyBibG9jaywgY3V0IG9mZiB0aGUgbGFzdCBjbG9zaW5nIGJyYWNlLlxuICAgICAgLy8gV2UgaGF2ZSB0byBkbyB0aGlzIGJlY2F1c2Ugd2UgaW50ZW50aW9uYWxseSBjdXQgb2ZmIHRoZSBzdGFydGluZyBicmFjZSBkdXJpbmcgbGV4aW5nLlxuICAgICAgLy8gV2UgY2FuJ3Qga2VlcCB0aGVtIGJlY2F1c2UgdGhlIHVzZXIncyBKUyBtdXN0IG5vdCBiZSBydW4gaW5zaWRlIGEgc2NvcGVkIGJsb2NrLlxuICAgICAgcmVzdWx0cy5qcyA9IHJlc3VsdHMuanMuc3Vic3RyaW5nKDAsIHJlc3VsdHMuanMubGVuZ3RoIC0gMSk7XG4gICAgfVxuICB9XG4gIHJldHVybiByZXN1bHRzO1xufVxuXG5jb25zdCB0b2tlblR5cGVTdGF0ZU1hcHBpbmcgPSBuZXcgTWFwPHN0cmluZywga2V5b2YgSVNxbHhQYXJzZVJlc3VsdHM+KCk7XG50b2tlblR5cGVTdGF0ZU1hcHBpbmcuc2V0KFNRTF9MRVhFUl9UT0tFTl9OQU1FUy5TVEFSVF9DT05GSUcsIFwiY29uZmlnXCIpO1xudG9rZW5UeXBlU3RhdGVNYXBwaW5nLnNldChTUUxfTEVYRVJfVE9LRU5fTkFNRVMuU1RBUlRfSlMsIFwianNcIik7XG50b2tlblR5cGVTdGF0ZU1hcHBpbmcuc2V0KFNRTF9MRVhFUl9UT0tFTl9OQU1FUy5TVEFSVF9JTkNSRU1FTlRBTCwgXCJpbmNyZW1lbnRhbFwiKTtcbnRva2VuVHlwZVN0YXRlTWFwcGluZy5zZXQoU1FMX0xFWEVSX1RPS0VOX05BTUVTLlNUQVJUX1BSRV9PUEVSQVRJT05TLCBcInByZU9wZXJhdGlvbnNcIik7XG50b2tlblR5cGVTdGF0ZU1hcHBpbmcuc2V0KFNRTF9MRVhFUl9UT0tFTl9OQU1FUy5TVEFSVF9QT1NUX09QRVJBVElPTlMsIFwicG9zdE9wZXJhdGlvbnNcIik7XG50b2tlblR5cGVTdGF0ZU1hcHBpbmcuc2V0KFNRTF9MRVhFUl9UT0tFTl9OQU1FUy5TVEFSVF9JTlBVVCwgXCJpbnB1dFwiKTtcblxuY2xhc3MgU3FseFBhcnNlU3RhdGUge1xuICBwdWJsaWMgY3VycmVudFN0YXRlOiBrZXlvZiBJU3FseFBhcnNlUmVzdWx0cyA9IFwic3FsXCI7XG5cbiAgcHVibGljIGNvbXB1dGVTdGF0ZSh0b2tlbjogbW9vLlRva2VuKToga2V5b2YgSVNxbHhQYXJzZVJlc3VsdHMge1xuICAgIGlmICghdG9rZW4udHlwZS5zdGFydHNXaXRoKExFWEVSX1NUQVRFX05BTUVTLlNRTCkpIHtcbiAgICAgIHJldHVybiB0aGlzLmN1cnJlbnRTdGF0ZTtcbiAgICB9XG4gICAgdGhpcy5jdXJyZW50U3RhdGUgPSBcInNxbFwiO1xuICAgIGlmICh0b2tlblR5cGVTdGF0ZU1hcHBpbmcuaGFzKHRva2VuLnR5cGUpKSB7XG4gICAgICB0aGlzLmN1cnJlbnRTdGF0ZSA9IHRva2VuVHlwZVN0YXRlTWFwcGluZy5nZXQodG9rZW4udHlwZSk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmN1cnJlbnRTdGF0ZTtcbiAgfVxufVxuXG5mdW5jdGlvbiBidWlsZFNxbHhMZXhlcigpIHtcbiAgY29uc3Qgc3FsTGV4ZXIgPSB7fTtcbiAgc3FsTGV4ZXJbU1FMX0xFWEVSX1RPS0VOX05BTUVTLlNUQVJUX0NPTkZJR10gPSB7XG4gICAgbWF0Y2g6IFwiY29uZmlnIHtcIixcbiAgICBwdXNoOiBMRVhFUl9TVEFURV9OQU1FUy5KU19CTE9DSyxcbiAgICB2YWx1ZTogKCkgPT4gXCJ7XCJcbiAgfTtcbiAgc3FsTGV4ZXJbU1FMX0xFWEVSX1RPS0VOX05BTUVTLlNUQVJUX0pTXSA9IHtcbiAgICBtYXRjaDogXCJqcyB7XCIsXG4gICAgcHVzaDogTEVYRVJfU1RBVEVfTkFNRVMuSlNfQkxPQ0ssXG4gICAgdmFsdWU6ICgpID0+IFwiXCJcbiAgfTtcbiAgc3FsTGV4ZXJbU1FMX0xFWEVSX1RPS0VOX05BTUVTLlNUQVJUX0lOQ1JFTUVOVEFMXSA9IHtcbiAgICBtYXRjaDogXCJpbmNyZW1lbnRhbF93aGVyZSB7XCIsXG4gICAgcHVzaDogTEVYRVJfU1RBVEVfTkFNRVMuSU5ORVJfU1FMX0JMT0NLLFxuICAgIHZhbHVlOiAoKSA9PiBcIlwiXG4gIH07XG4gIHNxbExleGVyW1NRTF9MRVhFUl9UT0tFTl9OQU1FUy5TVEFSVF9QUkVfT1BFUkFUSU9OU10gPSB7XG4gICAgbWF0Y2g6IFwicHJlX29wZXJhdGlvbnMge1wiLFxuICAgIHB1c2g6IExFWEVSX1NUQVRFX05BTUVTLklOTkVSX1NRTF9CTE9DSyxcbiAgICB2YWx1ZTogKCkgPT4gXCJcIlxuICB9O1xuICBzcWxMZXhlcltTUUxfTEVYRVJfVE9LRU5fTkFNRVMuU1RBUlRfUE9TVF9PUEVSQVRJT05TXSA9IHtcbiAgICBtYXRjaDogXCJwb3N0X29wZXJhdGlvbnMge1wiLFxuICAgIHB1c2g6IExFWEVSX1NUQVRFX05BTUVTLklOTkVSX1NRTF9CTE9DSyxcbiAgICB2YWx1ZTogKCkgPT4gXCJcIlxuICB9O1xuICBzcWxMZXhlcltTUUxfTEVYRVJfVE9LRU5fTkFNRVMuU1RBUlRfSU5QVVRdID0ge1xuICAgIG1hdGNoOiAvaW5wdXQgXCJbYS16QS1aMC05Xy1dK1wiIHsvLFxuICAgIHB1c2g6IExFWEVSX1NUQVRFX05BTUVTLklOTkVSX1NRTF9CTE9DSyxcbiAgICB2YWx1ZTogKHZhbHVlOiBzdHJpbmcpID0+IHZhbHVlLnNwbGl0KCdcIicpWzFdXG4gIH07XG4gIHNxbExleGVyW1NRTF9MRVhFUl9UT0tFTl9OQU1FUy5TVEFURU1FTlRfU0VQRVJBVE9SXSA9IHtcbiAgICBtYXRjaDogL1teXFxTXFxyXFxuXSotLS1bXlxcU1xcclxcbl0qJC8sXG4gICAgdmFsdWU6ICgpID0+IFwiXCJcbiAgfTtcbiAgc3FsTGV4ZXJbU1FMX0xFWEVSX1RPS0VOX05BTUVTLlNJTkdMRV9MSU5FX0NPTU1FTlRdID0ge1xuICAgIG1hdGNoOiAvLS0uKj8kLyxcbiAgICB2YWx1ZTogKHZhbHVlOiBzdHJpbmcpID0+IHZhbHVlLnJlcGxhY2UoL2AvZywgXCJcXFxcYFwiKVxuICB9O1xuICBzcWxMZXhlcltTUUxfTEVYRVJfVE9LRU5fTkFNRVMuTVVMVElfTElORV9DT01NRU5UXSA9IHtcbiAgICBtYXRjaDogL1xcL1xcKltcXHNcXFNdKj9cXCpcXC8vLFxuICAgIHZhbHVlOiAodmFsdWU6IHN0cmluZykgPT4gdmFsdWUucmVwbGFjZSgvYC9nLCBcIlxcXFxgXCIpXG4gIH07XG4gIHNxbExleGVyW1NRTF9MRVhFUl9UT0tFTl9OQU1FUy5TSU5HTEVfUVVPVEVfU1RSSU5HXSA9IC8nKD86XFxcXFsnXFxcXF18W15cXG4nXFxcXF0pKicvO1xuICBzcWxMZXhlcltTUUxfTEVYRVJfVE9LRU5fTkFNRVMuRE9VQkxFX1FVT1RFX1NUUklOR10gPSAvXCIoPzpcXFxcW1wiXFxcXF18W15cXG5cIlxcXFxdKSpcIi87XG4gIHNxbExleGVyW1NRTF9MRVhFUl9UT0tFTl9OQU1FUy5TVEFSVF9KU19QTEFDRUhPTERFUl0gPSB7XG4gICAgbWF0Y2g6IFwiJHtcIixcbiAgICBwdXNoOiBMRVhFUl9TVEFURV9OQU1FUy5KU19CTE9DS1xuICB9O1xuICBzcWxMZXhlcltTUUxfTEVYRVJfVE9LRU5fTkFNRVMuRVNDQVBFRF9CQUNLVElDS10gPSB7XG4gICAgbWF0Y2g6IFwiXFxcXGBcIlxuICB9O1xuICBzcWxMZXhlcltTUUxfTEVYRVJfVE9LRU5fTkFNRVMuQkFDS1RJQ0tdID0ge1xuICAgIG1hdGNoOiBcImBcIixcbiAgICB2YWx1ZTogKCkgPT4gXCJcXFxcYFwiXG4gIH07XG4gIHNxbExleGVyW1NRTF9MRVhFUl9UT0tFTl9OQU1FUy5DQVBUVVJFX0VWRVJZVEhJTkdfRUxTRV0gPSB7XG4gICAgbWF0Y2g6IC9bXFxzXFxTXSs/LyxcbiAgICBsaW5lQnJlYWtzOiB0cnVlXG4gIH07XG5cbiAgY29uc3QganNCbG9ja0xleGVyID0ge307XG4gIGpzQmxvY2tMZXhlcltKU19CTE9DS19MRVhFUl9UT0tFTl9OQU1FUy5TSU5HTEVfTElORV9DT01NRU5UXSA9IC9cXC9cXC8uKj8kLztcbiAganNCbG9ja0xleGVyW0pTX0JMT0NLX0xFWEVSX1RPS0VOX05BTUVTLk1VTFRJX0xJTkVfQ09NTUVOVF0gPSAvXFwvXFwqW1xcc1xcU10qP1xcKlxcLy87XG4gIGpzQmxvY2tMZXhlcltKU19CTE9DS19MRVhFUl9UT0tFTl9OQU1FUy5TSU5HTEVfUVVPVEVfU1RSSU5HXSA9IC8nKD86XFxcXFsnXFxcXF18W15cXG4nXFxcXF0pKicvO1xuICBqc0Jsb2NrTGV4ZXJbSlNfQkxPQ0tfTEVYRVJfVE9LRU5fTkFNRVMuRE9VQkxFX1FVT1RFX1NUUklOR10gPSAvXCIoPzpcXFxcW1wiXFxcXF18W15cXG5cIlxcXFxdKSpcIi87XG4gIGpzQmxvY2tMZXhlcltKU19CTE9DS19MRVhFUl9UT0tFTl9OQU1FUy5TVEFSVF9KU19URU1QTEFURV9TVFJJTkddID0ge1xuICAgIG1hdGNoOiBcImBcIixcbiAgICBwdXNoOiBMRVhFUl9TVEFURV9OQU1FUy5KU19URU1QTEFURV9TVFJJTkdcbiAgfTtcbiAganNCbG9ja0xleGVyW0pTX0JMT0NLX0xFWEVSX1RPS0VOX05BTUVTLlNUQVJUX0pTX0JMT0NLXSA9IHtcbiAgICBtYXRjaDogXCJ7XCIsXG4gICAgcHVzaDogTEVYRVJfU1RBVEVfTkFNRVMuSlNfQkxPQ0tcbiAgfTtcbiAganNCbG9ja0xleGVyW0pTX0JMT0NLX0xFWEVSX1RPS0VOX05BTUVTLkNMT1NFX0JMT0NLXSA9IHsgbWF0Y2g6IFwifVwiLCBwb3A6IDEgfTtcbiAganNCbG9ja0xleGVyW0pTX0JMT0NLX0xFWEVSX1RPS0VOX05BTUVTLkNBUFRVUkVfRVZFUllUSElOR19FTFNFXSA9IHtcbiAgICBtYXRjaDogL1tcXHNcXFNdKz8vLFxuICAgIGxpbmVCcmVha3M6IHRydWVcbiAgfTtcblxuICBjb25zdCBqc1RlbXBsYXRlU3RyaW5nTGV4ZXIgPSB7fTtcbiAganNUZW1wbGF0ZVN0cmluZ0xleGVyW0pTX1RFTVBMQVRFX1NUUklOR19MRVhFUl9UT0tFTl9OQU1FUy5FU0NBUEVEX0JBQ0tTTEFTSF0gPSAvXFxcXFxcXFwvO1xuICBqc1RlbXBsYXRlU3RyaW5nTGV4ZXJbSlNfVEVNUExBVEVfU1RSSU5HX0xFWEVSX1RPS0VOX05BTUVTLkVTQ0FQRURfQkFDS1RJQ0tdID0gL1xcXFxgLztcbiAganNUZW1wbGF0ZVN0cmluZ0xleGVyW0pTX1RFTVBMQVRFX1NUUklOR19MRVhFUl9UT0tFTl9OQU1FUy5FU0NBUEVEX0RPTExBUl9CUkFDRV0gPSAvXFxcXFxcJHtgLztcbiAganNUZW1wbGF0ZVN0cmluZ0xleGVyW0pTX1RFTVBMQVRFX1NUUklOR19MRVhFUl9UT0tFTl9OQU1FUy5TVEFSVF9KU19CTE9DS10gPSB7XG4gICAgbWF0Y2g6IFwiJHtcIixcbiAgICBwdXNoOiBMRVhFUl9TVEFURV9OQU1FUy5KU19CTE9DS1xuICB9O1xuICBqc1RlbXBsYXRlU3RyaW5nTGV4ZXJbSlNfVEVNUExBVEVfU1RSSU5HX0xFWEVSX1RPS0VOX05BTUVTLkNMT1NFX1NUUklOR10gPSB7IG1hdGNoOiBcImBcIiwgcG9wOiAxIH07XG4gIGpzVGVtcGxhdGVTdHJpbmdMZXhlcltKU19URU1QTEFURV9TVFJJTkdfTEVYRVJfVE9LRU5fTkFNRVMuQ0FQVFVSRV9FVkVSWVRISU5HX0VMU0VdID0ge1xuICAgIG1hdGNoOiAvW1xcc1xcU10rPy8sXG4gICAgbGluZUJyZWFrczogdHJ1ZVxuICB9O1xuXG4gIGNvbnN0IGlubmVyU3FsQmxvY2tMZXhlciA9IHt9O1xuICBpbm5lclNxbEJsb2NrTGV4ZXJbSU5ORVJfU1FMX0JMT0NLX0xFWEVSX1RPS0VOX05BTUVTLlNUQVRFTUVOVF9TRVBFUkFUT1JdID0ge1xuICAgIG1hdGNoOiAvW15cXFNcXHJcXG5dKi0tLVteXFxTXFxyXFxuXSokLyxcbiAgICB2YWx1ZTogKCkgPT4gXCJcIlxuICB9O1xuICBpbm5lclNxbEJsb2NrTGV4ZXJbSU5ORVJfU1FMX0JMT0NLX0xFWEVSX1RPS0VOX05BTUVTLlNJTkdMRV9MSU5FX0NPTU1FTlRdID0gLy0tLio/JC87XG4gIGlubmVyU3FsQmxvY2tMZXhlcltJTk5FUl9TUUxfQkxPQ0tfTEVYRVJfVE9LRU5fTkFNRVMuTVVMVElfTElORV9DT01NRU5UXSA9IC9cXC9cXCpbXFxzXFxTXSo/XFwqXFwvLztcbiAgaW5uZXJTcWxCbG9ja0xleGVyW1xuICAgIElOTkVSX1NRTF9CTE9DS19MRVhFUl9UT0tFTl9OQU1FUy5TSU5HTEVfUVVPVEVfU1RSSU5HXG4gIF0gPSAvJyg/OlxcXFxbJ1xcXFxdfFteXFxuJ1xcXFxdKSonLztcbiAgaW5uZXJTcWxCbG9ja0xleGVyW1xuICAgIElOTkVSX1NRTF9CTE9DS19MRVhFUl9UT0tFTl9OQU1FUy5ET1VCTEVfUVVPVEVfU1RSSU5HXG4gIF0gPSAvXCIoPzpcXFxcW1wiXFxcXF18W15cXG5cIlxcXFxdKSpcIi87XG4gIGlubmVyU3FsQmxvY2tMZXhlcltJTk5FUl9TUUxfQkxPQ0tfTEVYRVJfVE9LRU5fTkFNRVMuU1RBUlRfSlNfQkxPQ0tdID0ge1xuICAgIG1hdGNoOiBcIiR7XCIsXG4gICAgcHVzaDogTEVYRVJfU1RBVEVfTkFNRVMuSlNfQkxPQ0tcbiAgfTtcbiAgaW5uZXJTcWxCbG9ja0xleGVyW0lOTkVSX1NRTF9CTE9DS19MRVhFUl9UT0tFTl9OQU1FUy5DTE9TRV9CTE9DS10gPSB7XG4gICAgbWF0Y2g6IFwifVwiLFxuICAgIHBvcDogMSxcbiAgICB2YWx1ZTogKCkgPT4gXCJcIlxuICB9O1xuICBpbm5lclNxbEJsb2NrTGV4ZXJbSU5ORVJfU1FMX0JMT0NLX0xFWEVSX1RPS0VOX05BTUVTLkVTQ0FQRURfQkFDS1RJQ0tdID0ge1xuICAgIG1hdGNoOiBcIlxcXFxgXCJcbiAgfTtcbiAgaW5uZXJTcWxCbG9ja0xleGVyW0lOTkVSX1NRTF9CTE9DS19MRVhFUl9UT0tFTl9OQU1FUy5CQUNLVElDS10gPSB7XG4gICAgbWF0Y2g6IFwiYFwiLFxuICAgIHZhbHVlOiAoKSA9PiBcIlxcXFxgXCJcbiAgfTtcbiAgaW5uZXJTcWxCbG9ja0xleGVyW0lOTkVSX1NRTF9CTE9DS19MRVhFUl9UT0tFTl9OQU1FUy5DQVBUVVJFX0VWRVJZVEhJTkdfRUxTRV0gPSB7XG4gICAgbWF0Y2g6IC9bXFxzXFxTXSs/LyxcbiAgICBsaW5lQnJlYWtzOiB0cnVlXG4gIH07XG5cbiAgY29uc3QgbGV4ZXJTdGF0ZXMgPSB7fTtcbiAgbGV4ZXJTdGF0ZXNbTEVYRVJfU1RBVEVfTkFNRVMuU1FMXSA9IHNxbExleGVyO1xuICBsZXhlclN0YXRlc1tMRVhFUl9TVEFURV9OQU1FUy5KU19CTE9DS10gPSBqc0Jsb2NrTGV4ZXI7XG4gIGxleGVyU3RhdGVzW0xFWEVSX1NUQVRFX05BTUVTLkpTX1RFTVBMQVRFX1NUUklOR10gPSBqc1RlbXBsYXRlU3RyaW5nTGV4ZXI7XG4gIGxleGVyU3RhdGVzW0xFWEVSX1NUQVRFX05BTUVTLklOTkVSX1NRTF9CTE9DS10gPSBpbm5lclNxbEJsb2NrTGV4ZXI7XG5cbiAgcmV0dXJuIGxleGVyU3RhdGVzO1xufVxuIl19 | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3FseF9wYXJzZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9jb3JlL3NxbHhfcGFyc2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0lBQUEsMkJBQTJCO0lBRTNCLE1BQU0saUJBQWlCLEdBQUc7UUFDeEIsR0FBRyxFQUFFLEtBQUs7UUFDVixRQUFRLEVBQUUsU0FBUztRQUNuQixrQkFBa0IsRUFBRSxrQkFBa0I7UUFDdEMsZUFBZSxFQUFFLGtCQUFrQjtLQUNwQyxDQUFDO0lBRUYsTUFBTSxxQkFBcUIsR0FBRztRQUM1QixZQUFZLEVBQUUsaUJBQWlCLENBQUMsR0FBRyxHQUFHLGNBQWM7UUFDcEQsUUFBUSxFQUFFLGlCQUFpQixDQUFDLEdBQUcsR0FBRyxVQUFVO1FBQzVDLGlCQUFpQixFQUFFLGlCQUFpQixDQUFDLEdBQUcsR0FBRyxtQkFBbUI7UUFDOUQsb0JBQW9CLEVBQUUsaUJBQWlCLENBQUMsR0FBRyxHQUFHLHFCQUFxQjtRQUNuRSxxQkFBcUIsRUFBRSxpQkFBaUIsQ0FBQyxHQUFHLEdBQUcsc0JBQXNCO1FBQ3JFLFdBQVcsRUFBRSxpQkFBaUIsQ0FBQyxHQUFHLEdBQUcsYUFBYTtRQUNsRCxtQkFBbUIsRUFBRSxpQkFBaUIsQ0FBQyxHQUFHLEdBQUcscUJBQXFCO1FBQ2xFLG1CQUFtQixFQUFFLGlCQUFpQixDQUFDLEdBQUcsR0FBRyxvQkFBb0I7UUFDakUsa0JBQWtCLEVBQUUsaUJBQWlCLENBQUMsR0FBRyxHQUFHLG1CQUFtQjtRQUMvRCxtQkFBbUIsRUFBRSxpQkFBaUIsQ0FBQyxHQUFHLEdBQUcsb0JBQW9CO1FBQ2pFLG1CQUFtQixFQUFFLGlCQUFpQixDQUFDLEdBQUcsR0FBRyxvQkFBb0I7UUFDakUsb0JBQW9CLEVBQUUsaUJBQWlCLENBQUMsR0FBRyxHQUFHLHFCQUFxQjtRQUNuRSxnQkFBZ0IsRUFBRSxpQkFBaUIsQ0FBQyxHQUFHLEdBQUcsa0JBQWtCO1FBQzVELFFBQVEs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ckUsS0FBSyxFQUFFLElBQUk7WUFDWCxJQUFJLEVBQUUsaUJBQWlCLENBQUMsUUFBUTtTQUNqQyxDQUFDO1FBQ0Ysa0JBQWtCLENBQUMsaUNBQWlDLENBQUMsV0FBVyxDQUFDLEdBQUc7WUFDbEUsS0FBSyxFQUFFLEdBQUc7WUFDVixHQUFHLEVBQUUsQ0FBQztZQUNOLEtBQUssRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO1NBQ2hCLENBQUM7UUFDRixrQkFBa0IsQ0FBQyxpQ0FBaUMsQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHO1lBQ3ZFLEtBQUssRUFBRSxLQUFLO1NBQ2IsQ0FBQztRQUNGLGtCQUFrQixDQUFDLGlDQUFpQyxDQUFDLFFBQVEsQ0FBQyxHQUFHO1lBQy9ELEtBQUssRUFBRSxHQUFHO1lBQ1YsS0FBSyxFQUFFLEdBQUcsRUFBRSxDQUFDLEtBQUs7U0FDbkIsQ0FBQztRQUNGLGtCQUFrQixDQUFDLGlDQUFpQyxDQUFDLHVCQUF1QixDQUFDLEdBQUc7WUFDOUUsS0FBSyxFQUFFLFVBQVU7WUFDakIsVUFBVSxFQUFFLElBQUk7U0FDakIsQ0FBQztRQUVGLE1BQU0sV0FBVyxHQUFHLEVBQUUsQ0FBQztRQUN2QixXQUFXLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLEdBQUcsUUFBUSxDQUFDO1FBQzlDLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsR0FBRyxZQUFZLENBQUM7UUFDdkQsV0FBVyxDQUFDLGlCQUFpQixDQUFDLGtCQUFrQixDQUFDLEdBQUcscUJBQXFCLENBQUM7UUFDMUUsV0FBVyxDQUFDLGlCQUFpQixDQUFDLGVBQWUsQ0FBQyxHQUFHLGtCQUFrQixDQUFDO1FBRXBFLE9BQU8sV0FBVyxDQUFDO0lBQ3JCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBtb28gZnJvbSBcIm1vb1wiO1xuXG5jb25zdCBMRVhFUl9TVEFURV9OQU1FUyA9IHtcbiAgU1FMOiBcInNxbFwiLFxuICBKU19CTE9DSzogXCJqc0Jsb2NrXCIsXG4gIEpTX1RFTVBMQVRFX1NUUklORzogXCJqc1RlbXBsYXRlU3RyaW5nXCIsXG4gIElOTkVSX1NRTF9CTE9DSzogXCJpbmNyZW1lbnRhbEJsb2NrXCJcbn07XG5cbmNvbnN0IFNRTF9MRVhFUl9UT0tFTl9OQU1FUyA9IHtcbiAgU1RBUlRfQ09ORklHOiBMRVhFUl9TVEFURV9OQU1FUy5TUUwgKyBcIl9zdGFydENvbmZpZ1wiLFxuICBTVEFSVF9KUzogTEVYRVJfU1RBVEVfTkFNRVMuU1FMICsgXCJfc3RhcnRKc1wiLFxuICBTVEFSVF9JTkNSRU1FTlRBTDogTEVYRVJfU1RBVEVfTkFNRVMuU1FMICsgXCJfc3RhcnRJbmNyZW1lbnRhbFwiLFxuICBTVEFSVF9QUkVfT1BFUkFUSU9OUzogTEVYRVJfU1RBVEVfTkFNRVMuU1FMICsgXCJfc3RhcnRQcmVPcGVyYXRpb25zXCIsXG4gIFNUQVJUX1BPU1RfT1BFUkFUSU9OUzogTEVYRVJfU1RBVEVfTkFNRVMuU1FMICsgXCJfc3RhcnRQb3N0T3BlcmF0aW9uc1wiLFxuICBTVEFSVF9JTlBVVDogTEVYRVJfU1RBVEVfTkFNRVMuU1FMICsgXCJfc3RhcnRJbnB1dFwiLFxuICBTVEFURU1FTlRfU0VQRVJBVE9SOiBMRVhFUl9TVEFURV9OQU1FUy5TUUwgKyBcIl9zdGF0ZW1lbnRTZXBhcmF0b3JcIixcbiAgU0lOR0xFX0xJTkVfQ09NTUVOVDogTEVYRVJfU1RBVEVfTkFNRVMuU1FMICsgXCJfc2luZ2xlTGluZUNvbW1lbnRcIixcbiAgTVVMVElfTElORV9DT01NRU5UOiBMRVhFUl9TVEFURV9OQU1FUy5TUUwgKyBcIl9tdWx0aUxpbmVDb21tZW50XCIsXG4gIFNJTkdMRV9RVU9URV9TVFJJTkc6IExFWEVSX1NUQVRFX05BTUVTLlNRTCArIFwiX3NpbmdsZVF1b3RlU3RyaW5nXCIsXG4gIERPVUJMRV9RVU9URV9TVFJJTkc6IExFWEVSX1NUQVRFX05BTUVTLlNRTCArIFwiX2RvdWJsZVF1b3RlU3RyaW5nXCIsXG4gIFNUQVJUX0pTX1BMQUNFSE9MREVSOiBMRVhFUl9TVEFURV9OQU1FUy5TUUwgKyBcIl9zdGFydEpzUGxhY2Vob2xkZXJcIixcbiAgRVNDQVBFRF9CQUNLVElDSzogTEVYRVJfU1RBVEVfTkFNRVMuU1FMICsgXCJfZXNjYXBlZEJhY2t0aWNrXCIsXG4gIEJBQ0tUSUNLOiBMRVhFUl9TVEFURV9OQU1FUy5TUUwgKyBcIl9iYWNrdGlja1wiLFxuICBDQVBUVVJFX0VWRVJZVEhJTkdfRUxTRTogTEVYRVJfU1RBVEVfTkFNRVMuU1FMICsgXCJfY2FwdHVyZUV2ZXJ5dGhpbmdFbHNlXCJcbn07XG5cbmNvbnN0IEpTX0JMT0NLX0xFWEVSX1RPS0VOX05BTUVTID0ge1xuICBTSU5HTEVfTElORV9DT01NRU5UOiBMRVhFUl9TVEFURV9OQU1FUy5KU19CTE9DSyArIFwiX3NpbmdsZUxpbmVDb21tZW50XCIsXG4gIE1VTFRJX0xJTkVfQ09NTUVOVDogTEVYRVJfU1RBVEVfTkFNRVMuSlNfQkxPQ0sgKyBcIl9tdWx0aUxpbmVDb21tZW50XCIsXG4gIFNJTkdMRV9RVU9URV9TVFJJTkc6IExFWEVSX1NUQVRFX05BTUVTLkpTX0JMT0NLICsgXCJfc2luZ2xlUXVvdGVTdHJpbmdcIixcbiAgRE9VQkxFX1FVT1RFX1NUUklORzogTEVYRVJfU1RBVEVfTkFNRVMuSlNfQkxPQ0sgKyBcIl9kb3VibGVRdW90ZVN0cmluZ1wiLFxuICBTVEFSVF9KU19URU1QTEFURV9TVFJJTkc6IExFWEVSX1NUQVRFX05BTUVTLkpTX0JMT0NLICsgXCJfc3RhcnRKc1RlbXBsYXRlU3RyaW5nXCIsXG4gIFNUQVJUX0pTX0JMT0NLOiBMRVhFUl9TVEFURV9OQU1FUy5KU19CTE9DSyArIFwiX3N0YXJ0SnNCbG9ja1wiLFxuICBDTE9TRV9CTE9DSzogTEVYRVJfU1RBVEVfTkFNRVMuSlNfQkxPQ0sgKyBcIl9jbG9zZUJsb2NrXCIsXG4gIENBUFRVUkVfRVZFUllUSElOR19FTFNFOiBMRVhFUl9TVEFURV9OQU1FUy5KU19CTE9DSyArIFwiX2NhcHR1cmVFdmVyeXRoaW5nRWxzZVwiXG59O1xuXG5jb25zdCBKU19URU1QTEFURV9TVFJJTkdfTEVYRVJfVE9LRU5fTkFNRVMgPSB7XG4gIEVTQ0FQRURfQkFDS1NMQVNIOiBMRVhFUl9TVEFURV9OQU1FUy5KU19URU1QTEFURV9TVFJJTkcgKyBcIl9lc2NhcGVkQmFja3NsYXNoXCIsXG4gIEVTQ0FQRURfQkFDS1RJQ0s6IExFWEVSX1NUQVRFX05BTUVTLkpTX1RFTVBMQVRFX1NUUklORyArIFwiX2VzY2FwZWRCYWNrdGlja1wiLFxuICBFU0NBUEVEX0RPTExBUl9CUkFDRTogTEVYRVJfU1RBVEVfTkFNRVMuSlNfVEVNUExBVEVfU1RSSU5HICsgXCJfZXNjYXBlZERvbGxhckJyYWNlXCIsXG4gIFNUQVJUX0pTX0JMT0NLOiBMRVhFUl9TVEFURV9OQU1FUy5KU19URU1QTEFURV9TVFJJTkcgKyBcIl9zdGFydEpzQmxvY2tcIixcbiAgQ0xPU0VfU1RSSU5HOiBMRVhFUl9TVEFURV9OQU1FUy5KU19URU1QTEFURV9TVFJJTkcgKyBcIl9jbG9zZVN0cmluZ1wiLFxuICBDQVBUVVJFX0VWRVJZVEhJTkdfRUxTRTogTEVYRVJfU1RBVEVfTkFNRVMuSlNfVEVNUExBVEVfU1RSSU5HICsgXCJfY2FwdHVyZUV2ZXJ5dGhpbmdFbHNlXCJcbn07XG5cbmNvbnN0IElOTkVSX1NRTF9CTE9DS19MRVhFUl9UT0tFTl9OQU1FUyA9IHtcbiAgU1RBVEVNRU5UX1NFUEVSQVRPUjogTEVYRVJfU1RBVEVfTkFNRVMuSU5ORVJfU1FMX0JMT0NLICsgXCJfc3RhdGVtZW50U2VwYXJhdG9yXCIsXG4gIFNJTkdMRV9MSU5FX0NPTU1FTlQ6IExFWEVSX1NUQVRFX05BTUVTLklOTkVSX1NRTF9CTE9DSyArIFwiX3NpbmdsZUxpbmVDb21tZW50XCIsXG4gIE1VTFRJX0xJTkVfQ09NTUVOVDogTEVYRVJfU1RBVEVfTkFNRVMuSU5ORVJfU1FMX0JMT0NLICsgXCJfbXVsdGlMaW5lQ29tbWVudFwiLFxuICBTSU5HTEVfUVVPVEVfU1RSSU5HOiBMRVhFUl9TVEFURV9OQU1FUy5JTk5FUl9TUUxfQkxPQ0sgKyBcIl9zaW5nbGVRdW90ZVN0cmluZ1wiLFxuICBET1VCTEVfUVVPVEVfU1RSSU5HOiBMRVhFUl9TVEFURV9OQU1FUy5JTk5FUl9TUUxfQkxPQ0sgKyBcIl9kb3VibGVRdW90ZVN0cmluZ1wiLFxuICBTVEFSVF9KU19CTE9DSzogTEVYRVJfU1RBVEVfTkFNRVMuSU5ORVJfU1FMX0JMT0NLICsgXCJfc3RhcnRKc0Jsb2NrXCIsXG4gIENMT1NFX0JMT0NLOiBMRVhFUl9TVEFURV9OQU1FUy5JTk5FUl9TUUxfQkxPQ0sgKyBcIl9jbG9zZUJsb2NrXCIsXG4gIEVTQ0FQRURfQkFDS1RJQ0s6IExFWEVSX1NUQVRFX05BTUVTLklOTkVSX1NRTF9CTE9DSyArIFwiX2VzY2FwZWRCYWNrdGlja1wiLFxuICBCQUNLVElDSzogTEVYRVJfU1RBVEVfTkFNRVMuSU5ORVJfU1FMX0JMT0NLICsgXCJfYmFja3RpY2tcIixcbiAgQ0FQVFVSRV9FVkVSWVRISU5HX0VMU0U6IExFWEVSX1NUQVRFX05BTUVTLklOTkVSX1NRTF9CTE9DSyArIFwiX2NhcHR1cmVFdmVyeXRoaW5nRWxzZVwiXG59O1xuXG5jb25zdCBsZXhlciA9IG1vby5zdGF0ZXMoYnVpbGRTcWx4TGV4ZXIoKSk7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVNxbHhQYXJzZVJlc3VsdHMge1xuICBjb25maWc6IHN0cmluZztcbiAganM6IHN0cmluZztcbiAgc3FsOiBzdHJpbmdbXTtcbiAgaW5jcmVtZW50YWw6IHN0cmluZztcbiAgcHJlT3BlcmF0aW9uczogc3RyaW5nW107XG4gIHBvc3RPcGVyYXRpb25zOiBzdHJpbmdbXTtcbiAgaW5wdXQ6IHsgW2xhYmVsOiBzdHJpbmddOiBzdHJpbmcgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlU3FseChjb2RlOiBzdHJpbmcpOiBJU3FseFBhcnNlUmVzdWx0cyB7XG4gIGNvbnN0IHJlc3VsdHMgPSB7XG4gICAgY29uZmlnOiBcIlwiLFxuICAgIGpzOiBcIlwiLFxuICAgIHNxbDogW1wiXCJdLFxuICAgIGluY3JlbWVudGFsOiBcIlwiLFxuICAgIHByZU9wZXJhdGlvbnM6IFtcIlwiXSxcbiAgICBwb3N0T3BlcmF0aW9uczogW1wiXCJdLFxuICAgIGlucHV0OiB7fVxuICB9O1xuICBsZXQgY3VycmVudElucHV0TGFiZWw7XG4gIGNvbnN0IHBhcnNlU3RhdGUgPSBuZXcgU3FseFBhcnNlU3RhdGUoKTtcbiAgbGV4ZXIucmVzZXQoY29kZSk7XG4gIGZvciAoY29uc3QgdG9rZW4gb2YgbGV4ZXIpIHtcbiAgICBjb25zdCBwcmV2aW91c1N0YXRlID0gcGFyc2VTdGF0ZS5jdXJyZW50U3RhdGU7XG4gICAgY29uc3QgbmV3U3RhdGUgPSBwYXJzZVN0YXRlLmNvbXB1dGVTdGF0ZSh0b2tlbik7XG5cbiAgICBpZiAodG9rZW4udHlwZSA9PT0gU1FMX0xFWEVSX1RPS0VOX05BTUVTLlNUQVJUX0lOUFVUKSB7XG4gICAgICBjdXJyZW50SW5wdXRMYWJlbCA9IHRva2VuLnZhbHVlO1xuICAgICAgdG9rZW4udmFsdWUgPSBcIlwiO1xuICAgIH1cblxuICAgIGNvbnN0IGlzU3RhdGVtZW50U2VwYXJhdG9yID1cbiAgICAgIHRva2VuLnR5cGUgPT09IFNRTF9MRVhFUl9UT0tFTl9OQU1FUy5TVEFURU1FTlRfU0VQRVJBVE9SIHx8XG4gICAgICB0b2tlbi50eXBlID09PSBJTk5FUl9TUUxfQkxPQ0tfTEVYRVJfVE9LRU5fTkFNRVMuU1RBVEVNRU5UX1NFUEVSQVRPUjtcblxuICAgIHN3aXRjaCAobmV3U3RhdGUpIHtcbiAgICAgIGNhc2UgXCJjb25maWdcIjoge1xuICAgICAgICByZXN1bHRzLmNvbmZpZyArPSB0b2tlbi52YWx1ZTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlIFwianNcIjoge1xuICAgICAgICByZXN1bHRzLmpzICs9IHRva2VuLnZhbHVlO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgXCJzcWxcIjoge1xuICAgICAgICBpZiAoaXNTdGF0ZW1lbnRTZXBhcmF0b3IpIHtcbiAgICAgICAgICByZXN1bHRzLnNxbC5wdXNoKFwiXCIpO1xuICAgICAgICB9XG4gICAgICAgIHJlc3VsdHMuc3FsW3Jlc3VsdHMuc3FsLmxlbmd0aCAtIDFdICs9IHRva2VuLnZhbHVlO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgXCJpbmNyZW1lbnRhbFwiOiB7XG4gICAgICAgIGlmIChpc1N0YXRlbWVudFNlcGFyYXRvcikge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgIFwiSW5jcmVtZW50YWwgY29kZSBibG9ja3MgbWF5IG5vdCBjb250YWluIFNRTCBzdGF0ZW1lbnQgc2VwYXJhdG9ycyAoJy0tLScpLlwiXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICByZXN1bHRzLmluY3JlbWVudGFsICs9IHRva2VuLnZhbHVlO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgXCJwcmVPcGVyYXRpb25zXCI6IHtcbiAgICAgICAgaWYgKGlzU3RhdGVtZW50U2VwYXJhdG9yKSB7XG4gICAgICAgICAgcmVzdWx0cy5wcmVPcGVyYXRpb25zLnB1c2goXCJcIik7XG4gICAgICAgIH1cbiAgICAgICAgcmVzdWx0cy5wcmVPcGVyYXRpb25zW3Jlc3VsdHMucHJlT3BlcmF0aW9ucy5sZW5ndGggLSAxXSArPSB0b2tlbi52YWx1ZTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlIFwicG9zdE9wZXJhdGlvbnNcIjoge1xuICAgICAgICBpZiAoaXNTdGF0ZW1lbnRTZXBhcmF0b3IpIHtcbiAgICAgICAgICByZXN1bHRzLnBvc3RPcGVyYXRpb25zLnB1c2goXCJcIik7XG4gICAgICAgIH1cbiAgICAgICAgcmVzdWx0cy5wb3N0T3BlcmF0aW9uc1tyZXN1bHRzLnBvc3RPcGVyYXRpb25zLmxlbmd0aCAtIDFdICs9IHRva2VuLnZhbHVlO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgXCJpbnB1dFwiOiB7XG4gICAgICAgIGlmIChpc1N0YXRlbWVudFNlcGFyYXRvcikge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIklucHV0IGNvZGUgYmxvY2tzIG1heSBub3QgY29udGFpbiBTUUwgc3RhdGVtZW50IHNlcGFyYXRvcnMgKCctLS0nKS5cIik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFyZXN1bHRzLmlucHV0W2N1cnJlbnRJbnB1dExhYmVsXSkge1xuICAgICAgICAgIHJlc3VsdHMuaW5wdXRbY3VycmVudElucHV0TGFiZWxdID0gXCJcIjtcbiAgICAgICAgfVxuICAgICAgICByZXN1bHRzLmlucHV0W2N1cnJlbnRJbnB1dExhYmVsXSArPSB0b2tlbi52YWx1ZTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVucmVjb2duaXplZCBwYXJzZSBzdGF0ZTogJHtuZXdTdGF0ZX1gKTtcbiAgICB9XG5cbiAgICBpZiAocHJldmlvdXNTdGF0ZSA9PT0gXCJqc1wiICYmIG5ld1N0YXRlICE9PSBcImpzXCIpIHtcbiAgICAgIC8vIElmIHdlJ3JlIGNsb3Npbmcgb2ZmIGEgSlMgYmxvY2ssIGN1dCBvZmYgdGhlIGxhc3QgY2xvc2luZyBicmFjZS5cbiAgICAgIC8vIFdlIGhhdmUgdG8gZG8gdGhpcyBiZWNhdXNlIHdlIGludGVudGlvbmFsbHkgY3V0IG9mZiB0aGUgc3RhcnRpbmcgYnJhY2UgZHVyaW5nIGxleGluZy5cbiAgICAgIC8vIFdlIGNhbid0IGtlZXAgdGhlbSBiZWNhdXNlIHRoZSB1c2VyJ3MgSlMgbXVzdCBub3QgYmUgcnVuIGluc2lkZSBhIHNjb3BlZCBibG9jay5cbiAgICAgIHJlc3VsdHMuanMgPSByZXN1bHRzLmpzLnN1YnN0cmluZygwLCByZXN1bHRzLmpzLmxlbmd0aCAtIDEpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gcmVzdWx0cztcbn1cblxuY29uc3QgdG9rZW5UeXBlU3RhdGVNYXBwaW5nID0gbmV3IE1hcDxzdHJpbmcsIGtleW9mIElTcWx4UGFyc2VSZXN1bHRzPigpO1xudG9rZW5UeXBlU3RhdGVNYXBwaW5nLnNldChTUUxfTEVYRVJfVE9LRU5fTkFNRVMuU1RBUlRfQ09ORklHLCBcImNvbmZpZ1wiKTtcbnRva2VuVHlwZVN0YXRlTWFwcGluZy5zZXQoU1FMX0xFWEVSX1RPS0VOX05BTUVTLlNUQVJUX0pTLCBcImpzXCIpO1xudG9rZW5UeXBlU3RhdGVNYXBwaW5nLnNldChTUUxfTEVYRVJfVE9LRU5fTkFNRVMuU1RBUlRfSU5DUkVNRU5UQUwsIFwiaW5jcmVtZW50YWxcIik7XG50b2tlblR5cGVTdGF0ZU1hcHBpbmcuc2V0KFNRTF9MRVhFUl9UT0tFTl9OQU1FUy5TVEFSVF9QUkVfT1BFUkFUSU9OUywgXCJwcmVPcGVyYXRpb25zXCIpO1xudG9rZW5UeXBlU3RhdGVNYXBwaW5nLnNldChTUUxfTEVYRVJfVE9LRU5fTkFNRVMuU1RBUlRfUE9TVF9PUEVSQVRJT05TLCBcInBvc3RPcGVyYXRpb25zXCIpO1xudG9rZW5UeXBlU3RhdGVNYXBwaW5nLnNldChTUUxfTEVYRVJfVE9LRU5fTkFNRVMuU1RBUlRfSU5QVVQsIFwiaW5wdXRcIik7XG5cbmNsYXNzIFNxbHhQYXJzZVN0YXRlIHtcbiAgcHVibGljIGN1cnJlbnRTdGF0ZToga2V5b2YgSVNxbHhQYXJzZVJlc3VsdHMgPSBcInNxbFwiO1xuXG4gIHB1YmxpYyBjb21wdXRlU3RhdGUodG9rZW46IG1vby5Ub2tlbik6IGtleW9mIElTcWx4UGFyc2VSZXN1bHRzIHtcbiAgICBpZiAoIXRva2VuLnR5cGUuc3RhcnRzV2l0aChMRVhFUl9TVEFURV9OQU1FUy5TUUwpKSB7XG4gICAgICByZXR1cm4gdGhpcy5jdXJyZW50U3RhdGU7XG4gICAgfVxuICAgIHRoaXMuY3VycmVudFN0YXRlID0gXCJzcWxcIjtcbiAgICBpZiAodG9rZW5UeXBlU3RhdGVNYXBwaW5nLmhhcyh0b2tlbi50eXBlKSkge1xuICAgICAgdGhpcy5jdXJyZW50U3RhdGUgPSB0b2tlblR5cGVTdGF0ZU1hcHBpbmcuZ2V0KHRva2VuLnR5cGUpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5jdXJyZW50U3RhdGU7XG4gIH1cbn1cblxuZnVuY3Rpb24gYnVpbGRTcWx4TGV4ZXIoKSB7XG4gIGNvbnN0IHNxbExleGVyID0ge307XG4gIHNxbExleGVyW1NRTF9MRVhFUl9UT0tFTl9OQU1FUy5TVEFSVF9DT05GSUddID0ge1xuICAgIG1hdGNoOiBcImNvbmZpZyB7XCIsXG4gICAgcHVzaDogTEVYRVJfU1RBVEVfTkFNRVMuSlNfQkxPQ0ssXG4gICAgdmFsdWU6ICgpID0+IFwie1wiXG4gIH07XG4gIHNxbExleGVyW1NRTF9MRVhFUl9UT0tFTl9OQU1FUy5TVEFSVF9KU10gPSB7XG4gICAgbWF0Y2g6IFwianMge1wiLFxuICAgIHB1c2g6IExFWEVSX1NUQVRFX05BTUVTLkpTX0JMT0NLLFxuICAgIHZhbHVlOiAoKSA9PiBcIlwiXG4gIH07XG4gIHNxbExleGVyW1NRTF9MRVhFUl9UT0tFTl9OQU1FUy5TVEFSVF9JTkNSRU1FTlRBTF0gPSB7XG4gICAgbWF0Y2g6IFwiaW5jcmVtZW50YWxfd2hlcmUge1wiLFxuICAgIHB1c2g6IExFWEVSX1NUQVRFX05BTUVTLklOTkVSX1NRTF9CTE9DSyxcbiAgICB2YWx1ZTogKCkgPT4gXCJcIlxuICB9O1xuICBzcWxMZXhlcltTUUxfTEVYRVJfVE9LRU5fTkFNRVMuU1RBUlRfUFJFX09QRVJBVElPTlNdID0ge1xuICAgIG1hdGNoOiBcInByZV9vcGVyYXRpb25zIHtcIixcbiAgICBwdXNoOiBMRVhFUl9TVEFURV9OQU1FUy5JTk5FUl9TUUxfQkxPQ0ssXG4gICAgdmFsdWU6ICgpID0+IFwiXCJcbiAgfTtcbiAgc3FsTGV4ZXJbU1FMX0xFWEVSX1RPS0VOX05BTUVTLlNUQVJUX1BPU1RfT1BFUkFUSU9OU10gPSB7XG4gICAgbWF0Y2g6IFwicG9zdF9vcGVyYXRpb25zIHtcIixcbiAgICBwdXNoOiBMRVhFUl9TVEFURV9OQU1FUy5JTk5FUl9TUUxfQkxPQ0ssXG4gICAgdmFsdWU6ICgpID0+IFwiXCJcbiAgfTtcbiAgc3FsTGV4ZXJbU1FMX0xFWEVSX1RPS0VOX05BTUVTLlNUQVJUX0lOUFVUXSA9IHtcbiAgICBtYXRjaDogL2lucHV0IFwiW2EtekEtWjAtOV8tXStcIiB7LyxcbiAgICBwdXNoOiBMRVhFUl9TVEFURV9OQU1FUy5JTk5FUl9TUUxfQkxPQ0ssXG4gICAgdmFsdWU6ICh2YWx1ZTogc3RyaW5nKSA9PiB2YWx1ZS5zcGxpdCgnXCInKVsxXVxuICB9O1xuICBzcWxMZXhlcltTUUxfTEVYRVJfVE9LRU5fTkFNRVMuU1RBVEVNRU5UX1NFUEVSQVRPUl0gPSB7XG4gICAgbWF0Y2g6IC9bXlxcU1xcclxcbl0qLS0tW15cXFNcXHJcXG5dKiQvLFxuICAgIHZhbHVlOiAoKSA9PiBcIlwiXG4gIH07XG4gIHNxbExleGVyW1NRTF9MRVhFUl9UT0tFTl9OQU1FUy5TSU5HTEVfTElORV9DT01NRU5UXSA9IHtcbiAgICBtYXRjaDogLy0tLio/JC8sXG4gICAgdmFsdWU6ICh2YWx1ZTogc3RyaW5nKSA9PiB2YWx1ZS5yZXBsYWNlKC9gL2csIFwiXFxcXGBcIikucmVwbGFjZSgvXFwkey9nLCBcIlxcXFwke1wiKVxuICB9O1xuICBzcWxMZXhlcltTUUxfTEVYRVJfVE9LRU5fTkFNRVMuTVVMVElfTElORV9DT01NRU5UXSA9IHtcbiAgICBtYXRjaDogL1xcL1xcKltcXHNcXFNdKj9cXCpcXC8vLFxuICAgIHZhbHVlOiAodmFsdWU6IHN0cmluZykgPT4gdmFsdWUucmVwbGFjZSgvYC9nLCBcIlxcXFxgXCIpLnJlcGxhY2UoL1xcJHsvZywgXCJcXFxcJHtcIilcbiAgfTtcbiAgc3FsTGV4ZXJbU1FMX0xFWEVSX1RPS0VOX05BTUVTLlNJTkdMRV9RVU9URV9TVFJJTkddID0gLycoPzpcXFxcWydcXFxcXXxbXlxcbidcXFxcXSkqJy87XG4gIHNxbExleGVyW1NRTF9MRVhFUl9UT0tFTl9OQU1FUy5ET1VCTEVfUVVPVEVfU1RSSU5HXSA9IC9cIig/OlxcXFxbXCJcXFxcXXxbXlxcblwiXFxcXF0pKlwiLztcbiAgc3FsTGV4ZXJbU1FMX0xFWEVSX1RPS0VOX05BTUVTLlNUQVJUX0pTX1BMQUNFSE9MREVSXSA9IHtcbiAgICBtYXRjaDogXCIke1wiLFxuICAgIHB1c2g6IExFWEVSX1NUQVRFX05BTUVTLkpTX0JMT0NLXG4gIH07XG4gIHNxbExleGVyW1NRTF9MRVhFUl9UT0tFTl9OQU1FUy5FU0NBUEVEX0JBQ0tUSUNLXSA9IHtcbiAgICBtYXRjaDogXCJcXFxcYFwiXG4gIH07XG4gIHNxbExleGVyW1NRTF9MRVhFUl9UT0tFTl9OQU1FUy5CQUNLVElDS10gPSB7XG4gICAgbWF0Y2g6IFwiYFwiLFxuICAgIHZhbHVlOiAoKSA9PiBcIlxcXFxgXCJcbiAgfTtcbiAgc3FsTGV4ZXJbU1FMX0xFWEVSX1RPS0VOX05BTUVTLkNBUFRVUkVfRVZFUllUSElOR19FTFNFXSA9IHtcbiAgICBtYXRjaDogL1tcXHNcXFNdKz8vLFxuICAgIGxpbmVCcmVha3M6IHRydWVcbiAgfTtcblxuICBjb25zdCBqc0Jsb2NrTGV4ZXIgPSB7fTtcbiAganNCbG9ja0xleGVyW0pTX0JMT0NLX0xFWEVSX1RPS0VOX05BTUVTLlNJTkdMRV9MSU5FX0NPTU1FTlRdID0gL1xcL1xcLy4qPyQvO1xuICBqc0Jsb2NrTGV4ZXJbSlNfQkxPQ0tfTEVYRVJfVE9LRU5fTkFNRVMuTVVMVElfTElORV9DT01NRU5UXSA9IC9cXC9cXCpbXFxzXFxTXSo/XFwqXFwvLztcbiAganNCbG9ja0xleGVyW0pTX0JMT0NLX0xFWEVSX1RPS0VOX05BTUVTLlNJTkdMRV9RVU9URV9TVFJJTkddID0gLycoPzpcXFxcWydcXFxcXXxbXlxcbidcXFxcXSkqJy87XG4gIGpzQmxvY2tMZXhlcltKU19CTE9DS19MRVhFUl9UT0tFTl9OQU1FUy5ET1VCTEVfUVVPVEVfU1RSSU5HXSA9IC9cIig/OlxcXFxbXCJcXFxcXXxbXlxcblwiXFxcXF0pKlwiLztcbiAganNCbG9ja0xleGVyW0pTX0JMT0NLX0xFWEVSX1RPS0VOX05BTUVTLlNUQVJUX0pTX1RFTVBMQVRFX1NUUklOR10gPSB7XG4gICAgbWF0Y2g6IFwiYFwiLFxuICAgIHB1c2g6IExFWEVSX1NUQVRFX05BTUVTLkpTX1RFTVBMQVRFX1NUUklOR1xuICB9O1xuICBqc0Jsb2NrTGV4ZXJbSlNfQkxPQ0tfTEVYRVJfVE9LRU5fTkFNRVMuU1RBUlRfSlNfQkxPQ0tdID0ge1xuICAgIG1hdGNoOiBcIntcIixcbiAgICBwdXNoOiBMRVhFUl9TVEFURV9OQU1FUy5KU19CTE9DS1xuICB9O1xuICBqc0Jsb2NrTGV4ZXJbSlNfQkxPQ0tfTEVYRVJfVE9LRU5fTkFNRVMuQ0xPU0VfQkxPQ0tdID0geyBtYXRjaDogXCJ9XCIsIHBvcDogMSB9O1xuICBqc0Jsb2NrTGV4ZXJbSlNfQkxPQ0tfTEVYRVJfVE9LRU5fTkFNRVMuQ0FQVFVSRV9FVkVSWVRISU5HX0VMU0VdID0ge1xuICAgIG1hdGNoOiAvW1xcc1xcU10rPy8sXG4gICAgbGluZUJyZWFrczogdHJ1ZVxuICB9O1xuXG4gIGNvbnN0IGpzVGVtcGxhdGVTdHJpbmdMZXhlciA9IHt9O1xuICBqc1RlbXBsYXRlU3RyaW5nTGV4ZXJbSlNfVEVNUExBVEVfU1RSSU5HX0xFWEVSX1RPS0VOX05BTUVTLkVTQ0FQRURfQkFDS1NMQVNIXSA9IC9cXFxcXFxcXC87XG4gIGpzVGVtcGxhdGVTdHJpbmdMZXhlcltKU19URU1QTEFURV9TVFJJTkdfTEVYRVJfVE9LRU5fTkFNRVMuRVNDQVBFRF9CQUNLVElDS10gPSAvXFxcXGAvO1xuICBqc1RlbXBsYXRlU3RyaW5nTGV4ZXJbSlNfVEVNUExBVEVfU1RSSU5HX0xFWEVSX1RPS0VOX05BTUVTLkVTQ0FQRURfRE9MTEFSX0JSQUNFXSA9IC9cXFxcXFwke2AvO1xuICBqc1RlbXBsYXRlU3RyaW5nTGV4ZXJbSlNfVEVNUExBVEVfU1RSSU5HX0xFWEVSX1RPS0VOX05BTUVTLlNUQVJUX0pTX0JMT0NLXSA9IHtcbiAgICBtYXRjaDogXCIke1wiLFxuICAgIHB1c2g6IExFWEVSX1NUQVRFX05BTUVTLkpTX0JMT0NLXG4gIH07XG4gIGpzVGVtcGxhdGVTdHJpbmdMZXhlcltKU19URU1QTEFURV9TVFJJTkdfTEVYRVJfVE9LRU5fTkFNRVMuQ0xPU0VfU1RSSU5HXSA9IHsgbWF0Y2g6IFwiYFwiLCBwb3A6IDEgfTtcbiAganNUZW1wbGF0ZVN0cmluZ0xleGVyW0pTX1RFTVBMQVRFX1NUUklOR19MRVhFUl9UT0tFTl9OQU1FUy5DQVBUVVJFX0VWRVJZVEhJTkdfRUxTRV0gPSB7XG4gICAgbWF0Y2g6IC9bXFxzXFxTXSs/LyxcbiAgICBsaW5lQnJlYWtzOiB0cnVlXG4gIH07XG5cbiAgY29uc3QgaW5uZXJTcWxCbG9ja0xleGVyID0ge307XG4gIGlubmVyU3FsQmxvY2tMZXhlcltJTk5FUl9TUUxfQkxPQ0tfTEVYRVJfVE9LRU5fTkFNRVMuU1RBVEVNRU5UX1NFUEVSQVRPUl0gPSB7XG4gICAgbWF0Y2g6IC9bXlxcU1xcclxcbl0qLS0tW15cXFNcXHJcXG5dKiQvLFxuICAgIHZhbHVlOiAoKSA9PiBcIlwiXG4gIH07XG4gIGlubmVyU3FsQmxvY2tMZXhlcltJTk5FUl9TUUxfQkxPQ0tfTEVYRVJfVE9LRU5fTkFNRVMuU0lOR0xFX0xJTkVfQ09NTUVOVF0gPSAvLS0uKj8kLztcbiAgaW5uZXJTcWxCbG9ja0xleGVyW0lOTkVSX1NRTF9CTE9DS19MRVhFUl9UT0tFTl9OQU1FUy5NVUxUSV9MSU5FX0NPTU1FTlRdID0gL1xcL1xcKltcXHNcXFNdKj9cXCpcXC8vO1xuICBpbm5lclNxbEJsb2NrTGV4ZXJbXG4gICAgSU5ORVJfU1FMX0JMT0NLX0xFWEVSX1RPS0VOX05BTUVTLlNJTkdMRV9RVU9URV9TVFJJTkdcbiAgXSA9IC8nKD86XFxcXFsnXFxcXF18W15cXG4nXFxcXF0pKicvO1xuICBpbm5lclNxbEJsb2NrTGV4ZXJbXG4gICAgSU5ORVJfU1FMX0JMT0NLX0xFWEVSX1RPS0VOX05BTUVTLkRPVUJMRV9RVU9URV9TVFJJTkdcbiAgXSA9IC9cIig/OlxcXFxbXCJcXFxcXXxbXlxcblwiXFxcXF0pKlwiLztcbiAgaW5uZXJTcWxCbG9ja0xleGVyW0lOTkVSX1NRTF9CTE9DS19MRVhFUl9UT0tFTl9OQU1FUy5TVEFSVF9KU19CTE9DS10gPSB7XG4gICAgbWF0Y2g6IFwiJHtcIixcbiAgICBwdXNoOiBMRVhFUl9TVEFURV9OQU1FUy5KU19CTE9DS1xuICB9O1xuICBpbm5lclNxbEJsb2NrTGV4ZXJbSU5ORVJfU1FMX0JMT0NLX0xFWEVSX1RPS0VOX05BTUVTLkNMT1NFX0JMT0NLXSA9IHtcbiAgICBtYXRjaDogXCJ9XCIsXG4gICAgcG9wOiAxLFxuICAgIHZhbHVlOiAoKSA9PiBcIlwiXG4gIH07XG4gIGlubmVyU3FsQmxvY2tMZXhlcltJTk5FUl9TUUxfQkxPQ0tfTEVYRVJfVE9LRU5fTkFNRVMuRVNDQVBFRF9CQUNLVElDS10gPSB7XG4gICAgbWF0Y2g6IFwiXFxcXGBcIlxuICB9O1xuICBpbm5lclNxbEJsb2NrTGV4ZXJbSU5ORVJfU1FMX0JMT0NLX0xFWEVSX1RPS0VOX05BTUVTLkJBQ0tUSUNLXSA9IHtcbiAgICBtYXRjaDogXCJgXCIsXG4gICAgdmFsdWU6ICgpID0+IFwiXFxcXGBcIlxuICB9O1xuICBpbm5lclNxbEJsb2NrTGV4ZXJbSU5ORVJfU1FMX0JMT0NLX0xFWEVSX1RPS0VOX05BTUVTLkNBUFRVUkVfRVZFUllUSElOR19FTFNFXSA9IHtcbiAgICBtYXRjaDogL1tcXHNcXFNdKz8vLFxuICAgIGxpbmVCcmVha3M6IHRydWVcbiAgfTtcblxuICBjb25zdCBsZXhlclN0YXRlcyA9IHt9O1xuICBsZXhlclN0YXRlc1tMRVhFUl9TVEFURV9OQU1FUy5TUUxdID0gc3FsTGV4ZXI7XG4gIGxleGVyU3RhdGVzW0xFWEVSX1NUQVRFX05BTUVTLkpTX0JMT0NLXSA9IGpzQmxvY2tMZXhlcjtcbiAgbGV4ZXJTdGF0ZXNbTEVYRVJfU1RBVEVfTkFNRVMuSlNfVEVNUExBVEVfU1RSSU5HXSA9IGpzVGVtcGxhdGVTdHJpbmdMZXhlcjtcbiAgbGV4ZXJTdGF0ZXNbTEVYRVJfU1RBVEVfTkFNRVMuSU5ORVJfU1FMX0JMT0NLXSA9IGlubmVyU3FsQmxvY2tMZXhlcjtcblxuICByZXR1cm4gbGV4ZXJTdGF0ZXM7XG59XG4iXX0= |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
276502
+ Added@dataform/protos@1.0.4(transitive)
- Removed@dataform/protos@1.0.3(transitive)
Updated@dataform/protos@1.0.4