@leisurelink/authentic-client
Advanced tools
Comparing version 2.0.0 to 2.0.1
@@ -271,3 +271,3 @@ 'use strict'; | ||
validate(callback, _joi2.default.func().label('callback').allow(null)); | ||
return client.put('claimspec-put', { lang: lang, csid: spec.csid }, null, callback); | ||
return client.put('claimspec-put', { lang: lang, csid: spec.csid }, spec, null, callback); | ||
}; | ||
@@ -352,3 +352,4 @@ | ||
delete result.withLang; | ||
delete result.withToken; | ||
delete result.withUser; | ||
delete result.withOrigin; | ||
return result; | ||
@@ -366,4 +367,4 @@ }; | ||
api.bindToken = api.withToken = token => { | ||
let apiWithUser = CreateAPI((0, _trustedClient.RoutedClient)(host, trustedClient.withToken(token), routeDefinitions)); | ||
api.withUser = token => { | ||
let apiWithUser = CreateAPI((0, _trustedClient.RoutedClient)(host, trustedClient.withUser(token), routeDefinitions)); | ||
apiWithUser.toString = () => `AuthenticClientUser { host: ${ host } }`; | ||
@@ -373,5 +374,11 @@ return apiWithUser; | ||
api.withOrigin = token => { | ||
let apiWithOrigin = CreateAPI((0, _trustedClient.RoutedClient)(host, trustedClient.withOrigin(token), routeDefinitions)); | ||
apiWithOrigin.toString = () => `AuthenticClientUser { host: ${ host } }`; | ||
return apiWithOrigin; | ||
}; | ||
return api; | ||
} | ||
module.exports = exports['default']; | ||
//# sourceMappingURL=data:application/json;base64,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LElBQUQsSUFBVTtBQUN0QyxVQUFJLE9BQU8sSUFBUCxLQUFpQixVQUFyQixFQUNFLE9BQU8sS0FBSyxJQUFMLENBQVUsSUFBVixFQUFnQixJQUFoQixDQUFQO0FBQ0YsYUFBTyxJQUFQO0FBQ0QsS0FKWSxDQUFiO0FBS0EsV0FBTyxPQUFPLFFBQWQ7QUFDQSxXQUFPLE9BQU8sU0FBZDtBQUNBLFdBQU8sTUFBUDtBQUNELEdBVkQ7O0FBWUEsU0FBTyxHQUFQO0FBQ0Q7O0FBRWMsU0FBUyxlQUFULENBQXlCLElBQXpCLEVBQStCLEtBQS9CLEVBQXNDLEdBQXRDLEVBQTJDLEdBQTNDLEVBQWdEO0FBQzdELFFBQU0sZ0JBQWdCLGtDQUFjLEVBQUUsWUFBRixFQUFTLFFBQVQsRUFBYyxRQUFkLEVBQWQsQ0FBdEI7QUFDQSxRQUFNLE1BQU0sVUFBVSxpQ0FBYSxJQUFiLEVBQW1CLGFBQW5CLEVBQWtDLGdCQUFsQyxDQUFWLENBQVo7O0FBRUEsTUFBSSxRQUFKLEdBQWUsTUFBTSxDQUFDLHdCQUFELEdBQTJCLElBQTNCLEVBQWdDLEVBQWhDLENBQXJCOztBQUVBLE1BQUksU0FBSixHQUFnQixJQUFJLFNBQUosR0FBaUIsS0FBRCxJQUFXO0FBQ3pDLFFBQUksY0FBYyxVQUFVLGlDQUFhLElBQWIsRUFBbUIsY0FBYyxTQUFkLENBQXdCLEtBQXhCLENBQW5CLEVBQW1ELGdCQUFuRCxDQUFWLENBQWxCO0FBQ0EsZ0JBQVksUUFBWixHQUF1QixNQUFNLENBQUMsNEJBQUQsR0FBK0IsSUFBL0IsRUFBb0MsRUFBcEMsQ0FBN0I7QUFDQSxXQUFPLFdBQVA7QUFDRCxHQUpEOztBQU1BLFNBQU8sR0FBUDtBQUNEIiwiZmlsZSI6ImluZGV4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHJ1c3RlZENsaWVudCwgUm91dGVkQ2xpZW50IH0gZnJvbSAnQGxlaXN1cmVsaW5rL3RydXN0ZWQtY2xpZW50JztcbmltcG9ydCBqb2kgZnJvbSAnam9pJztcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5cbmZ1bmN0aW9uIHZhbGlkYXRlKG9iaiwgc2NoZW1hKXtcbiAgY29uc3QgeyBlcnJvciwgdmFsdWUgfSA9IGpvaS52YWxpZGF0ZShvYmosIHNjaGVtYSwgeyBhYm9ydEVhcmx5OiBmYWxzZSB9KTtcbiAgaWYoZXJyb3Ipe1xuICAgIHRocm93IGVycm9yO1xuICB9XG4gIHJldHVybiB2YWx1ZTtcbn1cblxuY29uc3Qgcm91dGVEZWZpbml0aW9ucyA9IHtcbiAgJ2VuZHBvaW50LWdldCc6ICdhdXRoZW50aWMvdjEve2xhbmd9L2VuZHBvaW50cy97cHJpbmNpcGFsSWR9JyxcbiAgJ2VuZHBvaW50LXBvc3QnOiAnYXV0aGVudGljL3YxL3tsYW5nfS9lbmRwb2ludHMve3ByaW5jaXBhbElkfScsXG4gICdlbmRwb2ludC1kZWxldGUnOiAnYXV0aGVudGljL3YxL3tsYW5nfS9lbmRwb2ludHMve3ByaW5jaXBhbElkfScsXG4gICdlbmRwb2ludC1rZXktZ2V0JzogJ2F1dGhlbnRpYy92MS97bGFuZ30vZW5kcG9pbnRzL3twcmluY2lwYWxJZH0va2V5cy97a2V5SWR9JyxcbiAgJ2VuZHBvaW50LWtleS1wb3N0JzogJ2F1dGhlbnRpYy92MS97bGFuZ30vZW5kcG9pbnRzL3twcmluY2lwYWxJZH0va2V5cycsXG4gICdlbmRwb2ludC1rZXktZGVsZXRlJzogJ2F1dGhlbnRpYy92MS97bGFuZ30vZW5kcG9pbnRzL3twcmluY2lwYWxJZH0va2V5cy97a2V5SWR9JyxcbiAgJ2VuZHBvaW50LWNsYWltcy1nZXQnOiAnYXV0aGVudGljL3YxL3tsYW5nfS9lbmRwb2ludHMve3ByaW5jaXBhbElkfS9jbGFpbXMnLFxuXG4gICdhcGlrZXktcG9zdCc6ICdhdXRoZW50aWMvdjEve2xhbmd9L2FwaWtleXMve2FwaUtleX0nLFxuICAnYXBpa2V5LWRlbGV0ZSc6ICdhdXRoZW50aWMvdjEve2xhbmd9L2FwaWtleXMve2FwaUtleX0nLFxuICAnYXBpa2V5LWF1dGhlbnRpY2F0ZSc6ICdhdXRoZW50aWMvdjEve2xhbmd9L2FwaWtleXMve2FwaUtleX0vYXV0aGVudGljYXRlJyxcblxuICAnY2xhaW1zcGVjcy1nZXQnOiAnYXV0aGVudGljL3YxL3tsYW5nfS9jbGFpbXNwZWNzJyxcbiAgJ2NsYWltc3BlYy1nZXQnOiAnYXV0aGVudGljL3YxL3tsYW5nfS9jbGFpbXNwZWNzL3tjc2lkfScsXG4gICdjbGFpbXNwZWMtcHV0JzogJ2F1dGhlbnRpYy92MS97bGFuZ30vY2xhaW1zcGVjcy97Y3NpZH0nLFxuICAnY2xhaW0tZ2V0JzogJ2F1dGhlbnRpYy92MS97bGFuZ30vY2xhaW1zL3tzeXN0ZW1JZH17P2NsaWRzLGNzaWRzfScsXG4gICdjbGFpbS1kZWxldGUnOiAnYXV0aGVudGljL3YxL3tsYW5nfS9jbGFpbXMve3N5c3RlbUlkfXs/Y2xpZHN9JyxcbiAgJ2NsYWltLXBvc3QnOiAnYXV0aGVudGljL3YxL3tsYW5nfS9jbGFpbXMve3N5c3RlbUlkfScsXG5cbiAgJ3Nzby1nZXQnOiAnYXV0aGVudGljL3YxL3tsYW5nfS90b2tlbnMvc3NvL3t0b2tlbklkfScsXG4gICdzc28tcG9zdCc6ICdhdXRoZW50aWMvdjEve2xhbmd9L3Rva2Vucy9zc28nLFxuICAncHVibGljLWtleS1nZXQnOiAnYXV0aGVudGljL3B1YmxpYy92MS97bGFuZ30vcHVibGljLWtleScsXG4gICd1c2Vycy1nZXQnOiAnYXV0aGVudGljL3YxL3tsYW5nfS91c2Vycy97c3lzdGVtSWR9JyxcbiAgJ3VzZXJzLXF1ZXJ5JzogJ2F1dGhlbnRpYy92MS97bGFuZ30vdXNlcnN7P3BhZ2Usc2l6ZSxxLGV4c3RhdH0nLFxuICAndXNlcnMtYnlwaWQnOiAnYXV0aGVudGljL3YxL3tsYW5nfS91c2Vyc3s/cGlkfScsXG4gICd1c2Vycy1wb3N0JzogJ2F1dGhlbnRpYy92MS97bGFuZ30vdXNlcnMnLFxuICAndXNlcnMtcHV0JzogJ2F1dGhlbnRpYy92MS97bGFuZ30vdXNlcnMve3N5c3RlbUlkfScsXG4gICd1c2Vycy1kZWxldGUnOiAnYXV0aGVudGljL3YxL3tsYW5nfS91c2Vycy97c3lzdGVtSWR9JyxcbiAgJ3VzZXItcGFzc3dvcmQtcG9zdCc6ICdhdXRoZW50aWMvdjEve2xhbmd9L3VzZXJzL3tzeXN0ZW1JZH0vcGFzc3dvcmQnLFxuICAndXNlci1wYXNzd29yZC1wdXQnOiAnYXV0aGVudGljL3YxL3tsYW5nfS91c2Vycy97c3lzdGVtSWR9L3Bhc3N3b3JkJyxcbiAgJ3Jzby1nZXQnOiAnYXV0aGVudGljL3YxL3tsYW5nfS90b2tlbnMvcnNvL3t0b2tlbn0nLFxuICAncnNvLXBvc3QnOiAnYXV0aGVudGljL3YxL3tsYW5nfS90b2tlbnMvcnNvJyxcbiAgJ2Vzby1wb3N0JzogJ2F1dGhlbnRpYy92MS97bGFuZ30vdG9rZW5zL2VzbycsXG4gICdwYXNzd29yZC1wb2xpY3ktZ2V0JzogJ2F1dGhlbnRpYy92MS97bGFuZ30vcG9saWNpZXMvcGFzc3dvcmQnLFxuXG4gICd0c28tY3JlYXRlJzogJ2F1dGhlbnRpYy92MS97bGFuZ30vdG9rZW5zL3Rzby97cHJpbmNpcGFsSWR9JyxcbiAgJ3Rzby1kZWxldGUnOiAnYXV0aGVudGljL3YxL3tsYW5nfS90b2tlbnMvdHNvL3twcmluY2lwYWxJZH0vdG9rZW5zL3t0b2tlbn0nLFxuICAndHNvLWxvZ2luJzogJ2F1dGhlbnRpYy92MS97bGFuZ30vdG9rZW5zL3Rzby97cHJpbmNpcGFsSWR9L3Rva2Vucy97dG9rZW59JyxcbiAgJ3Rzby1nZXQnOiAnYXV0aGVudGljL3YxL3tsYW5nfS90b2tlbnMvdHNvL3twcmluY2lwYWxJZH0nXG59O1xuXG5mdW5jdGlvbiBDcmVhdGVBUEkoY2xpZW50KSB7XG4gIGNvbnN0IGFwaSA9IHt9O1xuXG4gIGFwaS5nZXRQdWJsaWNLZXkgPSAobGFuZywgY2FsbGJhY2spID0+IHtcbiAgICB2YWxpZGF0ZShsYW5nLCBqb2kuc3RyaW5nKCkucmVxdWlyZWQoKS5sYWJlbCgnbGFuZycpKTtcbiAgICByZXR1cm4gY2xpZW50LmdldCgncHVibGljLWtleS1nZXQnLCB7IGxhbmcgfSwgbnVsbCwgY2FsbGJhY2spO1xuICB9O1xuXG4gIGFwaS5hdXRoZW50aWNhdGUgPSAobGFuZywgcHJpbmNpcGFsSWQsIHBhc3N3b3JkLCBjYWxsYmFjaykgPT4ge1xuICAgIHZhbGlkYXRlKGxhbmcsIGpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLmxhYmVsKCdsYW5nJykpO1xuICAgIHZhbGlkYXRlKHByaW5jaXBhbElkLCBqb2kuc3RyaW5nKCkucmVxdWlyZWQoKS5sYWJlbCgncHJpbmNpcGFsSWQnKSk7XG4gICAgdmFsaWRhdGUocGFzc3dvcmQsIGpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLmxhYmVsKCdwYXNzd29yZCcpKTtcbiAgICByZXR1cm4gY2xpZW50LnBvc3QoJ3Nzby1wb3N0JywgeyBsYW5nIH0sIHsgcHJpbmNpcGFsSWQsIHBhc3N3b3JkIH0sIG51bGwsIGNhbGxiYWNrKTtcbiAgfTtcblxuICBhcGkuZXh0ZXJuYWxBdXRoZW50aWNhdGUgPSAobGFuZywgc3lzdGVtSWQsIHNvdXJjZSwgY2FsbGJhY2spID0+IHtcbiAgICB2YWxpZGF0ZShsYW5nLCBqb2kuc3RyaW5nKCkucmVxdWlyZWQoKS5sYWJlbCgnbGFuZycpKTtcbiAgICB2YWxpZGF0ZShzeXN0ZW1JZCwgam9pLnN0cmluZygpLnJlcXVpcmVkKCkubGFiZWwoJ3N5c3RlbUlkJykpO1xuICAgIHZhbGlkYXRlKHNvdXJjZSwgam9pLnN0cmluZygpLnJlcXVpcmVkKCkubGFiZWwoJ3NvdXJjZScpKTtcbiAgICByZXR1cm4gY2xpZW50LnBvc3QoJ2Vzby1wb3N0JywgeyBsYW5nIH0sIHsgc3lzdGVtSWQsIHNvdXJjZSB9LCBudWxsLCBjYWxsYmFjayk7XG4gIH07XG5cbiAgYXBpLmV4dGVuZEF1dGhlbnRpY2F0aW9uID0gKGxhbmcsIHRva2VuSWQsIGNhbGxiYWNrKSA9PiB7XG4gICAgdmFsaWRhdGUobGFuZywgam9pLnN0cmluZygpLnJlcXVpcmVkKCkubGFiZWwoJ2xhbmcnKSk7XG4gICAgdmFsaWRhdGUodG9rZW5JZCwgam9pLnN0cmluZygpLnJlcXVpcmVkKCkubGFiZWwoJ3Rva2VuSWQnKSk7XG4gICAgdmFsaWRhdGUoY2FsbGJhY2ssIGpvaS5mdW5jKCkubGFiZWwoJ2NhbGxiYWNrJykuYWxsb3cobnVsbCkpO1xuICAgIHJldHVybiBjbGllbnQuZ2V0KCdzc28tZ2V0JywgeyBsYW5nLCB0b2tlbklkIH0sIG51bGwsIGNhbGxiYWNrKTtcbiAgfTtcblxuICBhcGkucXVlcnlVc2VycyA9IChsYW5nLCBwYWdlLCBzaXplLCBxdWVyeSwgY2FsbGJhY2spID0+IHtcbiAgICB2YWxpZGF0ZShsYW5nLCBqb2kuc3RyaW5nKCkucmVxdWlyZWQoKS5sYWJlbCgnbGFuZycpKTtcbiAgICByZXR1cm4gY2xpZW50LmdldCgndXNlcnMtcXVlcnknLCB7IGxhbmcsIHBhZ2UsIHNpemUsIHE6IHF1ZXJ5IH0sIG51bGwsIGNhbGxiYWNrKTtcbiAgfTtcblxuICBhcGkucXVlcnlVc2Vyc0V4Y2x1ZGVTdGF0dXNlcyA9IChsYW5nLCBwYWdlLCBzaXplLCBxdWVyeSwgZXhjbHVkZVN0YXR1c2VzLCBjYWxsYmFjaykgPT4ge1xuICAgIHZhbGlkYXRlKGxhbmcsIGpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLmxhYmVsKCdsYW5nJykpO1xuICAgIHZhbGlkYXRlKGxhbmcsIGpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLmxhYmVsKCdsYW5nJykpO1xuICAgIHJldHVybiBjbGllbnQuZ2V0KCd1c2Vycy1xdWVyeScsIHsgbGFuZywgcGFnZSwgc2l6ZSwgcTogcXVlcnksIGV4c3RhdDogZXhjbHVkZVN0YXR1c2VzIH0sIG51bGwsIGNhbGxiYWNrKTtcbiAgfTtcblxuICBhcGkuZ2V0VXNlciA9IChsYW5nLCBzeXN0ZW1JZCwgY2FsbGJhY2spID0+IHtcbiAgICB2YWxpZGF0ZShsYW5nLCBqb2kuc3RyaW5nKCkucmVxdWlyZWQoKS5sYWJlbCgnbGFuZycpKTtcbiAgICB2YWxpZGF0ZShzeXN0ZW1JZCwgam9pLnN0cmluZygpLnJlcXVpcmVkKCkubGFiZWwoJ3N5c3RlbUlkJykpO1xuICAgIHZhbGlkYXRlKGxhbmcsIGpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLmxhYmVsKCdsYW5nJykpO1xuICAgIHJldHVybiBjbGllbnQuZ2V0KCd1c2Vycy1nZXQnLCB7IGxhbmcsIHN5c3RlbUlkIH0sIG51bGwsIGNhbGxiYWNrKTtcbiAgfTtcblxuICBhcGkuZ2V0VXNlckJ5UHJpbmNpcGFsSWQgPSAobGFuZywgcHJpbmNpcGFsSWQsIGNhbGxiYWNrKSA9PiB7XG4gICAgdmFsaWRhdGUobGFuZywgam9pLnN0cmluZygpLnJlcXVpcmVkKCkubGFiZWwoJ2xhbmcnKSk7XG4gICAgdmFsaWRhdGUocHJpbmNpcGFsSWQsIGpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLmxhYmVsKCdwcmluY2lwYWxJZCcpKTtcbiAgICByZXR1cm4gY2xpZW50LmdldCgndXNlcnMtYnlwaWQnLCB7IGxhbmcsIHByaW5jaXBhbElkIH0sIG51bGwsIGNhbGxiYWNrKTtcbiAgfTtcblxuICBhcGkuY3JlYXRlVXNlciA9IChsYW5nLCBwcmluY2lwYWwsIGNhbGxiYWNrKSA9PiB7XG4gICAgdmFsaWRhdGUobGFuZywgam9pLnN0cmluZygpLnJlcXVpcmVkKCkubGFiZWwoJ2xhbmcnKSk7XG4gICAgcmV0dXJuIGNsaWVudC5wb3N0KCd1c2Vycy1wb3N0JywgeyBsYW5nIH0sIHByaW5jaXBhbCwgbnVsbCwgY2FsbGJhY2spO1xuICB9O1xuXG4gIGFwaS51cGRhdGVVc2VyID0gKGxhbmcsIHN5c3RlbUlkLCBwcmluY2lwYWwsIGNhbGxiYWNrKSA9PiB7XG4gICAgdmFsaWRhdGUobGFuZywgam9pLnN0cmluZygpLnJlcXVpcmVkKCkubGFiZWwoJ2xhbmcnKSk7XG4gICAgdmFsaWRhdGUocHJpbmNpcGFsLCBqb2kub2JqZWN0KCkucmVxdWlyZWQoKS5sYWJlbCgncHJpbmNpcGFsJykpO1xuICAgIHZhbGlkYXRlKHN5c3RlbUlkLCBqb2kuc3RyaW5nKCkucmVxdWlyZWQoKS5sYWJlbCgnc3lzdGVtSWQnKSk7XG4gICAgcmV0dXJuIGNsaWVudC5wdXQoJ3VzZXJzLXB1dCcsIHsgbGFuZywgc3lzdGVtSWQgfSwgcHJpbmNpcGFsLCBudWxsLCBjYWxsYmFjayk7XG4gIH07XG5cbiAgYXBpLmRlbGV0ZVVzZXIgPSAobGFuZywgc3lzdGVtSWQsIGNhbGxiYWNrKSA9PiB7XG4gICAgdmFsaWRhdGUobGFuZywgam9pLnN0cmluZygpLnJlcXVpcmVkKCkubGFiZWwoJ2xhbmcnKSk7XG4gICAgdmFsaWRhdGUoc3lzdGVtSWQsIGpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLmxhYmVsKCdzeXN0ZW1JZCcpKTtcbiAgICByZXR1cm4gY2xpZW50LmRlbGV0ZSgndXNlcnMtZGVsZXRlJywgeyBsYW5nLCBzeXN0ZW1JZCB9LCBudWxsLCBjYWxsYmFjayk7XG4gIH07XG5cbiAgYXBpLmNyZWF0ZVBhc3N3b3JkID0gKGxhbmcsIHN5c3RlbUlkLCBwYXNzd29yZCwgc291cmNlLCBjYWxsYmFjaykgPT4ge1xuICAgIHZhbGlkYXRlKGxhbmcsIGpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLmxhYmVsKCdsYW5nJykpO1xuICAgIHZhbGlkYXRlKHN5c3RlbUlkLCBqb2kuc3RyaW5nKCkucmVxdWlyZWQoKS5sYWJlbCgnc3lzdGVtSWQnKSk7XG4gICAgdmFsaWRhdGUocGFzc3dvcmQsIGpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLmxhYmVsKCdwYXNzd29yZCcpKTtcbiAgICBpZiAodHlwZW9mIChzb3VyY2UpID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBjYWxsYmFjayA9IHNvdXJjZTtcbiAgICAgIHNvdXJjZSA9ICdjb3JlJztcbiAgICB9IGVsc2Uge1xuICAgICAgc291cmNlID0gdmFsaWRhdGUoc291cmNlLCBqb2kuc3RyaW5nKCkub3B0aW9uYWwoKS5sYWJlbCgnc291cmNlJykuZGVmYXVsdCgnY29yZScpKTtcbiAgICAgIHZhbGlkYXRlKGNhbGxiYWNrLCBqb2kuZnVuYygpLmxhYmVsKCdjYWxsYmFjaycpLmFsbG93KG51bGwpKTtcbiAgICB9XG4gICAgcmV0dXJuIGNsaWVudC5wb3N0KCd1c2VyLXBhc3N3b3JkLXBvc3QnLCB7IGxhbmcsIHN5c3RlbUlkIH0sIHsgc3lzdGVtSWQsIHBhc3N3b3JkLCBzb3VyY2UgfSwgbnVsbCwgY2FsbGJhY2spO1xuICB9O1xuXG4gIGFwaS51cGRhdGVQYXNzd29yZCA9IChsYW5nLCBzeXN0ZW1JZCwgb2xkUGFzc3dvcmQsIHBhc3N3b3JkLCBzb3VyY2UsIGNhbGxiYWNrKSA9PiB7XG4gICAgdmFsaWRhdGUobGFuZywgam9pLnN0cmluZygpLnJlcXVpcmVkKCkubGFiZWwoJ2xhbmcnKSk7XG4gICAgdmFsaWRhdGUoc3lzdGVtSWQsIGpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLmxhYmVsKCdzeXN0ZW1JZCcpKTtcbiAgICB2YWxpZGF0ZShvbGRQYXNzd29yZCwgam9pLnN0cmluZygpLnJlcXVpcmVkKCkubGFiZWwoJ29sZFBhc3N3b3JkJykpO1xuICAgIHZhbGlkYXRlKHBhc3N3b3JkLCBqb2kuc3RyaW5nKCkucmVxdWlyZWQoKS5sYWJlbCgncGFzc3dvcmQnKSk7XG4gICAgaWYgKHR5cGVvZiAoc291cmNlKSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgY2FsbGJhY2sgPSBzb3VyY2U7XG4gICAgICBzb3VyY2UgPSAnY29yZSc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhbGlkYXRlKHNvdXJjZSwgam9pLnN0cmluZygpLnJlcXVpcmVkKCkubGFiZWwoJ3NvdXJjZScpKTtcbiAgICAgIHZhbGlkYXRlKGNhbGxiYWNrLCBqb2kuZnVuYygpLmxhYmVsKCdjYWxsYmFjaycpLmFsbG93KG51bGwpKTtcbiAgICB9XG4gICAgcmV0dXJuIGNsaWVudC5wdXQoJ3VzZXItcGFzc3dvcmQtcHV0JywgeyBsYW5nLCBzeXN0ZW1JZCB9LCB7IHN5c3RlbUlkLCBwYXNzd29yZCwgJ29sZF9wYXNzd29yZCc6IG9sZFBhc3N3b3JkLCBzb3VyY2UgfSwgbnVsbCwgY2FsbGJhY2spO1xuICB9O1xuXG4gIGFwaS5nZXRFbmRwb2ludCA9IChsYW5nLCBwcmluY2lwYWxJZCwgY2FsbGJhY2spID0+IHtcbiAgICB2YWxpZGF0ZShsYW5nLCBqb2kuc3RyaW5nKCkucmVxdWlyZWQoKS5sYWJlbCgnbGFuZycpKTtcbiAgICB2YWxpZGF0ZShwcmluY2lwYWxJZCwgam9pLnN0cmluZygpLnJlcXVpcmVkKCkubGFiZWwoJ3ByaW5jaXBhbElkJykpO1xuICAgIHJldHVybiBjbGllbnQuZ2V0KCdlbmRwb2ludC1nZXQnLCB7IGxhbmcsIHByaW5jaXBhbElkIH0sIG51bGwsIGNhbGxiYWNrKTtcbiAgfTtcblxuICBhcGkuY3JlYXRlRW5kcG9pbnQgPSAobGFuZywgcHJpbmNpcGFsLCBjYWxsYmFjaykgPT4ge1xuICAgIHZhbGlkYXRlKGxhbmcsIGpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLmxhYmVsKCdsYW5nJykpO1xuICAgIHJldHVybiBjbGllbnQucG9zdCgnZW5kcG9pbnQtcG9zdCcsIHsgbGFuZyB9LCBwcmluY2lwYWwsIG51bGwsIGNhbGxiYWNrKTtcbiAgfTtcblxuICBhcGkuZGVsZXRlRW5kcG9pbnQgPSAobGFuZywgcHJpbmNpcGFsSWQsIGNhbGxiYWNrKSA9PiB7XG4gICAgdmFsaWRhdGUobGFuZywgam9pLnN0cmluZygpLnJlcXVpcmVkKCkubGFiZWwoJ2xhbmcnKSk7XG4gICAgdmFsaWRhdGUocHJpbmNpcGFsSWQsIGpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLmxhYmVsKCdwcmluY2lwYWxJZCcpKTtcbiAgICByZXR1cm4gY2xpZW50LmRlbGV0ZSgnZW5kcG9pbnQtZGVsZXRlJywgeyBsYW5nLCBwcmluY2lwYWxJZCB9LCBudWxsLCBjYWxsYmFjayk7XG4gIH07XG5cbiAgYXBpLmFkZEVuZHBvaW50S2V5ID0gKGxhbmcsIHByaW5jaXBhbElkLCBrZXlJZCwga2V5LCBjYWxsYmFjaykgPT4ge1xuICAgIHZhbGlkYXRlKGxhbmcsIGpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLmxhYmVsKCdsYW5nJykpO1xuICAgIHZhbGlkYXRlKHByaW5jaXBhbElkLCBqb2kuc3RyaW5nKCkucmVxdWlyZWQoKS5sYWJlbCgncHJpbmNpcGFsSWQnKSk7XG4gICAgdmFsaWRhdGUoa2V5SWQsIGpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLmxhYmVsKCdrZXlJZCcpKTtcbiAgICB2YWxpZGF0ZShrZXksIGpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLmxhYmVsKCdrZXknKSk7XG4gICAgcmV0dXJuIGNsaWVudC5wb3N0KCdlbmRwb2ludC1rZXktcG9zdCcsIHsgbGFuZywgcHJpbmNpcGFsSWQgfSwgeyBrZXlJZCwga2V5IH0sIG51bGwsIGNhbGxiYWNrKTtcbiAgfTtcblxuICBhcGkuZ2V0RW5kcG9pbnRLZXkgPSAobGFuZywgcHJpbmNpcGFsSWQsIGtleUlkLCBjYWxsYmFjaykgPT4ge1xuICAgIHZhbGlkYXRlKGxhbmcsIGpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLmxhYmVsKCdsYW5nJykpO1xuICAgIHZhbGlkYXRlKHByaW5jaXBhbElkLCBqb2kuc3RyaW5nKCkucmVxdWlyZWQoKS5sYWJlbCgncHJpbmNpcGFsSWQnKSk7XG4gICAgdmFsaWRhdGUoa2V5SWQsIGpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLmxhYmVsKCdrZXlJZCcpKTtcbiAgICByZXR1cm4gY2xpZW50LmdldCgnZW5kcG9pbnQta2V5LWdldCcsIHsgbGFuZywgcHJpbmNpcGFsSWQsIGtleUlkIH0sIG51bGwsIGNhbGxiYWNrKTtcbiAgfTtcblxuICBhcGkuZGVsZXRlRW5kcG9pbnRLZXkgPSAobGFuZywgcHJpbmNpcGFsSWQsIGtleUlkLCBjYWxsYmFjaykgPT4ge1xuICAgIHZhbGlkYXRlKGxhbmcsIGpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLmxhYmVsKCdsYW5nJykpO1xuICAgIHZhbGlkYXRlKHByaW5jaXBhbElkLCBqb2kuc3RyaW5nKCkucmVxdWlyZWQoKS5sYWJlbCgncHJpbmNpcGFsSWQnKSk7XG4gICAgdmFsaWRhdGUoJ2tleUlkJyxqb2kuc3RyaW5nKCkucmVxdWlyZWQoKS5sYWJlbChrZXlJZCkpO1xuICAgIHJldHVybiBjbGllbnQuZGVsZXRlKCdlbmRwb2ludC1rZXktZGVsZXRlJywgeyBsYW5nLCBwcmluY2lwYWxJZCwga2V5SWQgfSwgbnVsbCwgY2FsbGJhY2spO1xuICB9O1xuXG4gIGFwaS5nZXRFbmRwb2ludENsYWltcyA9IChsYW5nLCBwcmluY2lwYWxJZCwgY2FsbGJhY2spID0+IHtcbiAgICB2YWxpZGF0ZShsYW5nLCBqb2kuc3RyaW5nKCkucmVxdWlyZWQoKS5sYWJlbCgnbGFuZycpKTtcbiAgICB2YWxpZGF0ZShwcmluY2lwYWxJZCwgam9pLnN0cmluZygpLnJlcXVpcmVkKCkubGFiZWwoJ3ByaW5jaXBhbElkJykpO1xuICAgIHJldHVybiBjbGllbnQuZ2V0KCdlbmRwb2ludC1jbGFpbXMtZ2V0JywgeyBsYW5nLCBwcmluY2lwYWxJZCB9LCBudWxsLCBjYWxsYmFjayk7XG4gIH07XG5cbiAgYXBpLmNyZWF0ZUFwaUtleSA9IChsYW5nLCBwcmluY2lwYWxJZCwgYXBpS2V5LCBjYWxsYmFjaykgPT4ge1xuICAgIHZhbGlkYXRlKGxhbmcsIGpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLmxhYmVsKCdsYW5nJykpO1xuICAgIHJldHVybiBjbGllbnQucG9zdCgnYXBpa2V5LXBvc3QnLCB7IGxhbmcsIGFwaUtleSB9LCB7IHByaW5jaXBhbElkIH0sIG51bGwsIGNhbGxiYWNrKTtcbiAgfTtcblxuICBhcGkuZGVsZXRlQXBpS2V5ID0gKGxhbmcsIGFwaUtleSwgY2FsbGJhY2spID0+IHtcbiAgICB2YWxpZGF0ZShsYW5nLCBqb2kuc3RyaW5nKCkucmVxdWlyZWQoKS5sYWJlbCgnbGFuZycpKTtcbiAgICB2YWxpZGF0ZShhcGlLZXksIGpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLmxhYmVsKCdhcGlLZXknKSk7XG4gICAgcmV0dXJuIGNsaWVudC5kZWxldGUoJ2FwaWtleS1kZWxldGUnLCB7IGxhbmcsIGFwaUtleSB9LCBudWxsLCBjYWxsYmFjayk7XG4gIH07XG5cbiAgYXBpLmF1dGhlbnRpY2F0ZUJ5QXBpS2V5ID0gKGxhbmcsIGFwaUtleSwgY2FsbGJhY2spID0+IHtcbiAgICB2YWxpZGF0ZShsYW5nLCBqb2kuc3RyaW5nKCkucmVxdWlyZWQoKS5sYWJlbCgnbGFuZycpKTtcbiAgICB2YWxpZGF0ZShhcGlLZXksIGpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLmxhYmVsKCdhcGlLZXknKSk7XG4gICAgcmV0dXJuIGNsaWVudC5nZXQoJ2FwaWtleS1hdXRoZW50aWNhdGUnLCB7IGxhbmcsIGFwaUtleSB9LCBudWxsLCBjYWxsYmFjayk7XG4gIH07XG5cbiAgYXBpLmNyZWF0ZVJlc2V0VG9rZW4gPSAobGFuZywgcHJpbmNpcGFsSWQsIGNhbGxiYWNrKSA9PiB7XG4gICAgdmFsaWRhdGUobGFuZywgam9pLnN0cmluZygpLnJlcXVpcmVkKCkubGFiZWwoJ2xhbmcnKSk7XG4gICAgdmFsaWRhdGUocHJpbmNpcGFsSWQsIGpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLmxhYmVsKCdwcmluY2lwYWxJZCcpKTtcbiAgICByZXR1cm4gY2xpZW50LnBvc3QoJ3Jzby1wb3N0JywgeyBsYW5nIH0sIHsgcHJpbmNpcGFsSWQgfSwgbnVsbCwgY2FsbGJhY2spO1xuICB9O1xuXG4gIGFwaS5nZXRSZXNldFRpY2tldCA9IChsYW5nLCB0b2tlbiwgY2FsbGJhY2spID0+IHtcbiAgICB2YWxpZGF0ZShsYW5nLCBqb2kuc3RyaW5nKCkucmVxdWlyZWQoKS5sYWJlbCgnbGFuZycpKTtcbiAgICB2YWxpZGF0ZSh0b2tlbiwgam9pLnN0cmluZygpLnJlcXVpcmVkKCkubGFiZWwoJ3Rva2VuJykpO1xuICAgIHJldHVybiBjbGllbnQuZ2V0KCdyc28tZ2V0JywgeyBsYW5nLCB0b2tlbiB9LCBudWxsLCBjYWxsYmFjayk7XG4gIH07XG5cbiAgYXBpLmdldFBhc3N3b3JkUG9saWN5ID0gKGxhbmcsIGNhbGxiYWNrKSA9PiB7XG4gICAgdmFsaWRhdGUobGFuZywgam9pLnN0cmluZygpLnJlcXVpcmVkKCkubGFiZWwoJ2xhbmcnKSk7XG4gICAgdmFsaWRhdGUoY2FsbGJhY2ssIGpvaS5mdW5jKCkubGFiZWwoJ2NhbGxiYWNrJykuYWxsb3cobnVsbCkpO1xuICAgIHJldHVybiBjbGllbnQuZ2V0KCdwYXNzd29yZC1wb2xpY3ktZ2V0JywgeyBsYW5nIH0sIG51bGwsIGNhbGxiYWNrKTtcbiAgfTtcblxuICBhcGkuZ2V0Q2xhaW1zZXRTcGVjID0gKGxhbmcsIGNzaWQsIGNhbGxiYWNrKSA9PiB7XG4gICAgdmFsaWRhdGUobGFuZywgam9pLnN0cmluZygpLnJlcXVpcmVkKCkubGFiZWwoJ2xhbmcnKSk7XG4gICAgdmFsaWRhdGUoY3NpZCwgam9pLnN0cmluZygpLnJlcXVpcmVkKCkubGFiZWwoJ2NzaWQnKSk7XG4gICAgdmFsaWRhdGUoY2FsbGJhY2ssIGpvaS5mdW5jKCkubGFiZWwoJ2NhbGxiYWNrJykuYWxsb3cobnVsbCkpO1xuICAgIHJldHVybiBjbGllbnQuZ2V0KCdjbGFpbXNwZWMtZ2V0JywgeyBsYW5nLCBjc2lkIH0sIG51bGwsIGNhbGxiYWNrKTtcbiAgfTtcblxuICBhcGkuZ2V0Q2xhaW1zZXRTcGVjcyA9IChsYW5nLCBjYWxsYmFjaykgPT4ge1xuICAgIHZhbGlkYXRlKGxhbmcsIGpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLmxhYmVsKCdsYW5nJykpO1xuICAgIHZhbGlkYXRlKGNhbGxiYWNrLCBqb2kuZnVuYygpLmxhYmVsKCdjYWxsYmFjaycpLmFsbG93KG51bGwpKTtcbiAgICByZXR1cm4gY2xpZW50LmdldCgnY2xhaW1zcGVjcy1nZXQnLCB7IGxhbmcgfSwgbnVsbCwgY2FsbGJhY2spO1xuICB9O1xuXG4gIGFwaS5yZWdpc3RlckNsYWltc2V0U3BlYyA9IChsYW5nLCBzcGVjLCBjYWxsYmFjaykgPT4ge1xuICAgIHZhbGlkYXRlKGxhbmcsIGpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLmxhYmVsKCdsYW5nJykpO1xuICAgIHZhbGlkYXRlKHNwZWMsIGpvaS5vYmplY3QoKS5sYWJlbCgnc3BlYycpLnJlcXVpcmVkKCkpO1xuICAgIHZhbGlkYXRlKGNhbGxiYWNrLCBqb2kuZnVuYygpLmxhYmVsKCdjYWxsYmFjaycpLmFsbG93KG51bGwpKTtcbiAgICByZXR1cm4gY2xpZW50LnB1dCgnY2xhaW1zcGVjLXB1dCcsIHsgbGFuZywgY3NpZDogc3BlYy5jc2lkIH0sIG51bGwsIGNhbGxiYWNrKTtcbiAgfTtcblxuICBhcGkuZ2V0Q2xhaW0gPSAobGFuZywgc3lzdGVtSWQsIGNsaWRzLCBjYWxsYmFjaykgPT4ge1xuICAgIHZhbGlkYXRlKGxhbmcsIGpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLmxhYmVsKCdsYW5nJykpO1xuICAgIHZhbGlkYXRlKHN5c3RlbUlkLCBqb2kuc3RyaW5nKCkucmVxdWlyZWQoKS5sYWJlbCgnc3lzdGVtSWQnKSk7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkoY2xpZHMpKSB7XG4gICAgICB2YWxpZGF0ZShjbGlkcywgam9pLmFycmF5KCkuaXRlbXMoam9pLnN0cmluZygpKS5sYWJlbCgnY2xpZHMnKS5yZXF1aXJlZCgpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdmFsaWRhdGUoY2xpZHMsIGpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLmxhYmVsKCdjbGlkcycpKTtcbiAgICB9XG4gICAgcmV0dXJuIGNsaWVudC5nZXQoJ2NsYWltLWdldCcsIHsgbGFuZywgc3lzdGVtSWQsIGNsaWRzIH0sIG51bGwsIGNhbGxiYWNrKTtcbiAgfTtcblxuICBhcGkuZ2V0QWxsQ2xhaW1zID0gKGxhbmcsIHN5c3RlbUlkLCBjc2lkcywgY2FsbGJhY2spID0+IHtcbiAgICB2YWxpZGF0ZShsYW5nLCBqb2kuc3RyaW5nKCkucmVxdWlyZWQoKS5sYWJlbCgnbGFuZycpKTtcbiAgICB2YWxpZGF0ZShzeXN0ZW1JZCwgam9pLnN0cmluZygpLnJlcXVpcmVkKCkubGFiZWwoJ3N5c3RlbUlkJykpO1xuICAgIGlmICh0eXBlb2YgKGNzaWRzKSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgY2FsbGJhY2sgPSBjc2lkcztcbiAgICAgIGNzaWRzID0gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIGNsaWVudC5nZXQoJ2NsYWltLWdldCcsIHsgbGFuZywgc3lzdGVtSWQsIGNzaWRzIH0sIG51bGwsIGNhbGxiYWNrKTtcbiAgfTtcblxuICBhcGkuc2V0Q2xhaW0gPSAobGFuZywgc3lzdGVtSWQsIGNsYWltcywgY2FsbGJhY2spID0+IHtcbiAgICB2YWxpZGF0ZShsYW5nLCBqb2kuc3RyaW5nKCkucmVxdWlyZWQoKS5sYWJlbCgnbGFuZycpKTtcbiAgICB2YWxpZGF0ZShzeXN0ZW1JZCwgam9pLnN0cmluZygpLnJlcXVpcmVkKCkubGFiZWwoJ3N5c3RlbUlkJykpO1xuICAgIGlmICghQXJyYXkuaXNBcnJheShjbGFpbXMpKSB7XG4gICAgICBjbGFpbXMgPSBbY2xhaW1zXTtcbiAgICB9XG4gICAgdmFsaWRhdGUoY2xhaW1zLCBqb2kuYXJyYXkoKS5pdGVtcyhqb2kub2JqZWN0KCkpLmxhYmVsKCdjbGFpbXMnKS5yZXF1aXJlZCgpKTtcblxuICAgIHJldHVybiBjbGllbnQucG9zdCgnY2xhaW0tcG9zdCcsIHsgbGFuZywgc3lzdGVtSWQgfSwgY2xhaW1zLCBudWxsLCBjYWxsYmFjayk7XG4gIH07XG5cbiAgYXBpLnJlbW92ZUNsYWltID0gKGxhbmcsIHN5c3RlbUlkLCBjbGlkcywgY2FsbGJhY2spID0+IHtcbiAgICB2YWxpZGF0ZShsYW5nLCBqb2kuc3RyaW5nKCkucmVxdWlyZWQoKS5sYWJlbCgnbGFuZycpKTtcbiAgICB2YWxpZGF0ZShzeXN0ZW1JZCwgam9pLnN0cmluZygpLnJlcXVpcmVkKCkubGFiZWwoJ3N5c3RlbUlkJykpO1xuICAgIGlmIChBcnJheS5pc0FycmF5KGNsaWRzKSkge1xuICAgICAgdmFsaWRhdGUoY2xpZHMsIGpvaS5hcnJheSgpLml0ZW1zKGpvaS5zdHJpbmcoKSkubGFiZWwoJ2NsaWRzJykucmVxdWlyZWQoKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhbGlkYXRlKGNsaWRzLCBqb2kuc3RyaW5nKCkucmVxdWlyZWQoKS5sYWJlbCgnY2xpZHMnKSk7XG4gICAgfVxuICAgIHJldHVybiBjbGllbnQuZGVsZXRlKCdjbGFpbS1kZWxldGUnLCB7IGxhbmcgLCBzeXN0ZW1JZCwgY2xpZHMgfSwgbnVsbCwgY2FsbGJhY2spO1xuICB9O1xuXG4gIGFwaS5jcmVhdGVMb2dnZWRJblRva2VuID0gKGxhbmcsIHByaW5jaXBhbElkLCBjYWxsYmFjaykgPT4ge1xuICAgIHZhbGlkYXRlKGxhbmcsIGpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLmxhYmVsKCdsYW5nJykpO1xuICAgIHZhbGlkYXRlKHByaW5jaXBhbElkLCBqb2kuc3RyaW5nKCkucmVxdWlyZWQoKS5sYWJlbCgncHJpbmNpcGFsSWQnKSk7XG4gICAgcmV0dXJuIGNsaWVudC5wb3N0KCd0c28tY3JlYXRlJywgeyBsYW5nLCBwcmluY2lwYWxJZCB9LCB7fSwgbnVsbCwgY2FsbGJhY2spO1xuICB9O1xuXG4gIGFwaS5kZWxldGVMb2dnZWRJblRva2VuID0gKGxhbmcsIHByaW5jaXBhbElkLCB0b2tlbiwgY2FsbGJhY2spID0+IHtcbiAgICB2YWxpZGF0ZShsYW5nLCBqb2kuc3RyaW5nKCkucmVxdWlyZWQoKS5sYWJlbCgnbGFuZycpKTtcbiAgICB2YWxpZGF0ZShwcmluY2lwYWxJZCwgam9pLnN0cmluZygpLnJlcXVpcmVkKCkubGFiZWwoJ3ByaW5jaXBhbElkJykpO1xuICAgIHZhbGlkYXRlKHRva2VuLCBqb2kuc3RyaW5nKCkucmVxdWlyZWQoKS5sYWJlbCgndG9rZW4nKSk7XG4gICAgcmV0dXJuIGNsaWVudC5kZWxldGUoJ3Rzby1kZWxldGUnLCB7IGxhbmcsIHByaW5jaXBhbElkLCB0b2tlbiB9LCBudWxsLCBjYWxsYmFjayk7XG4gIH07XG5cbiAgYXBpLmxvZ2dlZEluVG9rZW5Mb2dpbiA9IChsYW5nLCBwcmluY2lwYWxJZCwgdG9rZW5JZCwgdG9rZW4sIGNhbGxiYWNrKSA9PiB7XG4gICAgdmFsaWRhdGUobGFuZywgam9pLnN0cmluZygpLnJlcXVpcmVkKCkubGFiZWwoJ2xhbmcnKSk7XG4gICAgdmFsaWRhdGUocHJpbmNpcGFsSWQsIGpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLmxhYmVsKCdwcmluY2lwYWxJZCcpKTtcbiAgICB2YWxpZGF0ZSh0b2tlbklkLCBqb2kuc3RyaW5nKCkucmVxdWlyZWQoKS5sYWJlbCgndG9rZW5JZCcpKTtcbiAgICB2YWxpZGF0ZSh0b2tlbiwgam9pLm9iamVjdCgpLmxhYmVsKCd0b2tlbicpLnJlcXVpcmVkKCkpO1xuICAgIHJldHVybiBjbGllbnQucG9zdCgndHNvLWxvZ2luJywgeyBsYW5nLCBwcmluY2lwYWxJZCwgdG9rZW46IHRva2VuSWQgfSwgdG9rZW4sIG51bGwsIGNhbGxiYWNrKTtcbiAgfTtcblxuICBhcGkuZ2V0TG9nZ2VkSW5Ub2tlbnMgPSAobGFuZywgcHJpbmNpcGFsSWQsIGNhbGxiYWNrKSA9PiB7XG4gICAgdmFsaWRhdGUobGFuZywgam9pLnN0cmluZygpLnJlcXVpcmVkKCkubGFiZWwoJ2xhbmcnKSk7XG4gICAgdmFsaWRhdGUocHJpbmNpcGFsSWQsIGpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLmxhYmVsKCdwcmluY2lwYWxJZCcpKTtcbiAgICByZXR1cm4gY2xpZW50LmdldCgndHNvLWdldCcsIHsgbGFuZywgcHJpbmNpcGFsSWQgfSwgbnVsbCwgY2FsbGJhY2spO1xuICB9O1xuXG4gIGFwaS53aXRoTGFuZyA9IChsYW5nKSA9PiB7XG4gICAgdmFsaWRhdGUobGFuZywgam9pLnN0cmluZygpLnJlcXVpcmVkKCkubGFiZWwoJ2xhbmcnKSk7XG4gICAgbGV0IHJlc3VsdCA9IF8ubWFwVmFsdWVzKGFwaSwgKGZ1bmMpID0+IHtcbiAgICAgIGlmICh0eXBlb2YoZnVuYykgPT09ICdmdW5jdGlvbicpXG4gICAgICAgIHJldHVybiBmdW5jLmJpbmQobnVsbCwgbGFuZyk7XG4gICAgICByZXR1cm4gZnVuYztcbiAgICB9KTtcbiAgICBkZWxldGUgcmVzdWx0LndpdGhMYW5nO1xuICAgIGRlbGV0ZSByZXN1bHQud2l0aFRva2VuO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH07XG5cbiAgcmV0dXJuIGFwaTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gQXV0aGVudGljQ2xpZW50KGhvc3QsIGtleUlkLCBrZXksIGxvZykge1xuICBjb25zdCB0cnVzdGVkQ2xpZW50ID0gVHJ1c3RlZENsaWVudCh7IGtleUlkLCBrZXksIGxvZyB9KTtcbiAgY29uc3QgYXBpID0gQ3JlYXRlQVBJKFJvdXRlZENsaWVudChob3N0LCB0cnVzdGVkQ2xpZW50LCByb3V0ZURlZmluaXRpb25zKSk7XG5cbiAgYXBpLnRvU3RyaW5nID0gKCkgPT4gYEF1dGhlbnRpY0NsaWVudCB7IGhvc3Q6ICR7aG9zdH0gfWA7XG5cbiAgYXBpLmJpbmRUb2tlbiA9IGFwaS53aXRoVG9rZW4gPSAodG9rZW4pID0+IHtcbiAgICBsZXQgYXBpV2l0aFVzZXIgPSBDcmVhdGVBUEkoUm91dGVkQ2xpZW50KGhvc3QsIHRydXN0ZWRDbGllbnQud2l0aFRva2VuKHRva2VuKSwgcm91dGVEZWZpbml0aW9ucykpO1xuICAgIGFwaVdpdGhVc2VyLnRvU3RyaW5nID0gKCkgPT4gYEF1dGhlbnRpY0NsaWVudFVzZXIgeyBob3N0OiAke2hvc3R9IH1gO1xuICAgIHJldHVybiBhcGlXaXRoVXNlcjtcbiAgfTtcblxuICByZXR1cm4gYXBpO1xufVxuIl19 | ||
//# sourceMappingURL=data:application/json;base64,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aW5kZXguanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUcnVzdGVkQ2xpZW50LCBSb3V0ZWRDbGllbnQgfSBmcm9tICdAbGVpc3VyZWxpbmsvdHJ1c3RlZC1jbGllbnQnO1xuaW1wb3J0IGpvaSBmcm9tICdqb2knO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcblxuZnVuY3Rpb24gdmFsaWRhdGUob2JqLCBzY2hlbWEpe1xuICBjb25zdCB7IGVycm9yLCB2YWx1ZSB9ID0gam9pLnZhbGlkYXRlKG9iaiwgc2NoZW1hLCB7IGFib3J0RWFybHk6IGZhbHNlIH0pO1xuICBpZihlcnJvcil7XG4gICAgdGhyb3cgZXJyb3I7XG4gIH1cbiAgcmV0dXJuIHZhbHVlO1xufVxuXG5jb25zdCByb3V0ZURlZmluaXRpb25zID0ge1xuICAnZW5kcG9pbnQtZ2V0JzogJ2F1dGhlbnRpYy92MS97bGFuZ30vZW5kcG9pbnRzL3twcmluY2lwYWxJZH0nLFxuICAnZW5kcG9pbnQtcG9zdCc6ICdhdXRoZW50aWMvdjEve2xhbmd9L2VuZHBvaW50cy97cHJpbmNpcGFsSWR9JyxcbiAgJ2VuZHBvaW50LWRlbGV0ZSc6ICdhdXRoZW50aWMvdjEve2xhbmd9L2VuZHBvaW50cy97cHJpbmNpcGFsSWR9JyxcbiAgJ2VuZHBvaW50LWtleS1nZXQnOiAnYXV0aGVudGljL3YxL3tsYW5nfS9lbmRwb2ludHMve3ByaW5jaXBhbElkfS9rZXlzL3trZXlJZH0nLFxuICAnZW5kcG9pbnQta2V5LXBvc3QnOiAnYXV0aGVudGljL3YxL3tsYW5nfS9lbmRwb2ludHMve3ByaW5jaXBhbElkfS9rZXlzJyxcbiAgJ2VuZHBvaW50LWtleS1kZWxldGUnOiAnYXV0aGVudGljL3YxL3tsYW5nfS9lbmRwb2ludHMve3ByaW5jaXBhbElkfS9rZXlzL3trZXlJZH0nLFxuICAnZW5kcG9pbnQtY2xhaW1zLWdldCc6ICdhdXRoZW50aWMvdjEve2xhbmd9L2VuZHBvaW50cy97cHJpbmNpcGFsSWR9L2NsYWltcycsXG5cbiAgJ2FwaWtleS1wb3N0JzogJ2F1dGhlbnRpYy92MS97bGFuZ30vYXBpa2V5cy97YXBpS2V5fScsXG4gICdhcGlrZXktZGVsZXRlJzogJ2F1dGhlbnRpYy92MS97bGFuZ30vYXBpa2V5cy97YXBpS2V5fScsXG4gICdhcGlrZXktYXV0aGVudGljYXRlJzogJ2F1dGhlbnRpYy92MS97bGFuZ30vYXBpa2V5cy97YXBpS2V5fS9hdXRoZW50aWNhdGUnLFxuXG4gICdjbGFpbXNwZWNzLWdldCc6ICdhdXRoZW50aWMvdjEve2xhbmd9L2NsYWltc3BlY3MnLFxuICAnY2xhaW1zcGVjLWdldCc6ICdhdXRoZW50aWMvdjEve2xhbmd9L2NsYWltc3BlY3Mve2NzaWR9JyxcbiAgJ2NsYWltc3BlYy1wdXQnOiAnYXV0aGVudGljL3YxL3tsYW5nfS9jbGFpbXNwZWNzL3tjc2lkfScsXG4gICdjbGFpbS1nZXQnOiAnYXV0aGVudGljL3YxL3tsYW5nfS9jbGFpbXMve3N5c3RlbUlkfXs/Y2xpZHMsY3NpZHN9JyxcbiAgJ2NsYWltLWRlbGV0ZSc6ICdhdXRoZW50aWMvdjEve2xhbmd9L2NsYWltcy97c3lzdGVtSWR9ez9jbGlkc30nLFxuICAnY2xhaW0tcG9zdCc6ICdhdXRoZW50aWMvdjEve2xhbmd9L2NsYWltcy97c3lzdGVtSWR9JyxcblxuICAnc3NvLWdldCc6ICdhdXRoZW50aWMvdjEve2xhbmd9L3Rva2Vucy9zc28ve3Rva2VuSWR9JyxcbiAgJ3Nzby1wb3N0JzogJ2F1dGhlbnRpYy92MS97bGFuZ30vdG9rZW5zL3NzbycsXG4gICdwdWJsaWMta2V5LWdldCc6ICdhdXRoZW50aWMvcHVibGljL3YxL3tsYW5nfS9wdWJsaWMta2V5JyxcbiAgJ3VzZXJzLWdldCc6ICdhdXRoZW50aWMvdjEve2xhbmd9L3VzZXJzL3tzeXN0ZW1JZH0nLFxuICAndXNlcnMtcXVlcnknOiAnYXV0aGVudGljL3YxL3tsYW5nfS91c2Vyc3s/cGFnZSxzaXplLHEsZXhzdGF0fScsXG4gICd1c2Vycy1ieXBpZCc6ICdhdXRoZW50aWMvdjEve2xhbmd9L3VzZXJzez9waWR9JyxcbiAgJ3VzZXJzLXBvc3QnOiAnYXV0aGVudGljL3YxL3tsYW5nfS91c2VycycsXG4gICd1c2Vycy1wdXQnOiAnYXV0aGVudGljL3YxL3tsYW5nfS91c2Vycy97c3lzdGVtSWR9JyxcbiAgJ3VzZXJzLWRlbGV0ZSc6ICdhdXRoZW50aWMvdjEve2xhbmd9L3VzZXJzL3tzeXN0ZW1JZH0nLFxuICAndXNlci1wYXNzd29yZC1wb3N0JzogJ2F1dGhlbnRpYy92MS97bGFuZ30vdXNlcnMve3N5c3RlbUlkfS9wYXNzd29yZCcsXG4gICd1c2VyLXBhc3N3b3JkLXB1dCc6ICdhdXRoZW50aWMvdjEve2xhbmd9L3VzZXJzL3tzeXN0ZW1JZH0vcGFzc3dvcmQnLFxuICAncnNvLWdldCc6ICdhdXRoZW50aWMvdjEve2xhbmd9L3Rva2Vucy9yc28ve3Rva2VufScsXG4gICdyc28tcG9zdCc6ICdhdXRoZW50aWMvdjEve2xhbmd9L3Rva2Vucy9yc28nLFxuICAnZXNvLXBvc3QnOiAnYXV0aGVudGljL3YxL3tsYW5nfS90b2tlbnMvZXNvJyxcbiAgJ3Bhc3N3b3JkLXBvbGljeS1nZXQnOiAnYXV0aGVudGljL3YxL3tsYW5nfS9wb2xpY2llcy9wYXNzd29yZCcsXG5cbiAgJ3Rzby1jcmVhdGUnOiAnYXV0aGVudGljL3YxL3tsYW5nfS90b2tlbnMvdHNvL3twcmluY2lwYWxJZH0nLFxuICAndHNvLWRlbGV0ZSc6ICdhdXRoZW50aWMvdjEve2xhbmd9L3Rva2Vucy90c28ve3ByaW5jaXBhbElkfS90b2tlbnMve3Rva2VufScsXG4gICd0c28tbG9naW4nOiAnYXV0aGVudGljL3YxL3tsYW5nfS90b2tlbnMvdHNvL3twcmluY2lwYWxJZH0vdG9rZW5zL3t0b2tlbn0nLFxuICAndHNvLWdldCc6ICdhdXRoZW50aWMvdjEve2xhbmd9L3Rva2Vucy90c28ve3ByaW5jaXBhbElkfSdcbn07XG5cbmZ1bmN0aW9uIENyZWF0ZUFQSShjbGllbnQpIHtcbiAgY29uc3QgYXBpID0ge307XG5cbiAgYXBpLmdldFB1YmxpY0tleSA9IChsYW5nLCBjYWxsYmFjaykgPT4ge1xuICAgIHZhbGlkYXRlKGxhbmcsIGpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLmxhYmVsKCdsYW5nJykpO1xuICAgIHJldHVybiBjbGllbnQuZ2V0KCdwdWJsaWMta2V5LWdldCcsIHsgbGFuZyB9LCBudWxsLCBjYWxsYmFjayk7XG4gIH07XG5cbiAgYXBpLmF1dGhlbnRpY2F0ZSA9IChsYW5nLCBwcmluY2lwYWxJZCwgcGFzc3dvcmQsIGNhbGxiYWNrKSA9PiB7XG4gICAgdmFsaWRhdGUobGFuZywgam9pLnN0cmluZygpLnJlcXVpcmVkKCkubGFiZWwoJ2xhbmcnKSk7XG4gICAgdmFsaWRhdGUocHJpbmNpcGFsSWQsIGpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLmxhYmVsKCdwcmluY2lwYWxJZCcpKTtcbiAgICB2YWxpZGF0ZShwYXNzd29yZCwgam9pLnN0cmluZygpLnJlcXVpcmVkKCkubGFiZWwoJ3Bhc3N3b3JkJykpO1xuICAgIHJldHVybiBjbGllbnQucG9zdCgnc3NvLXBvc3QnLCB7IGxhbmcgfSwgeyBwcmluY2lwYWxJZCwgcGFzc3dvcmQgfSwgbnVsbCwgY2FsbGJhY2spO1xuICB9O1xuXG4gIGFwaS5leHRlcm5hbEF1dGhlbnRpY2F0ZSA9IChsYW5nLCBzeXN0ZW1JZCwgc291cmNlLCBjYWxsYmFjaykgPT4ge1xuICAgIHZhbGlkYXRlKGxhbmcsIGpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLmxhYmVsKCdsYW5nJykpO1xuICAgIHZhbGlkYXRlKHN5c3RlbUlkLCBqb2kuc3RyaW5nKCkucmVxdWlyZWQoKS5sYWJlbCgnc3lzdGVtSWQnKSk7XG4gICAgdmFsaWRhdGUoc291cmNlLCBqb2kuc3RyaW5nKCkucmVxdWlyZWQoKS5sYWJlbCgnc291cmNlJykpO1xuICAgIHJldHVybiBjbGllbnQucG9zdCgnZXNvLXBvc3QnLCB7IGxhbmcgfSwgeyBzeXN0ZW1JZCwgc291cmNlIH0sIG51bGwsIGNhbGxiYWNrKTtcbiAgfTtcblxuICBhcGkuZXh0ZW5kQXV0aGVudGljYXRpb24gPSAobGFuZywgdG9rZW5JZCwgY2FsbGJhY2spID0+IHtcbiAgICB2YWxpZGF0ZShsYW5nLCBqb2kuc3RyaW5nKCkucmVxdWlyZWQoKS5sYWJlbCgnbGFuZycpKTtcbiAgICB2YWxpZGF0ZSh0b2tlbklkLCBqb2kuc3RyaW5nKCkucmVxdWlyZWQoKS5sYWJlbCgndG9rZW5JZCcpKTtcbiAgICB2YWxpZGF0ZShjYWxsYmFjaywgam9pLmZ1bmMoKS5sYWJlbCgnY2FsbGJhY2snKS5hbGxvdyhudWxsKSk7XG4gICAgcmV0dXJuIGNsaWVudC5nZXQoJ3Nzby1nZXQnLCB7IGxhbmcsIHRva2VuSWQgfSwgbnVsbCwgY2FsbGJhY2spO1xuICB9O1xuXG4gIGFwaS5xdWVyeVVzZXJzID0gKGxhbmcsIHBhZ2UsIHNpemUsIHF1ZXJ5LCBjYWxsYmFjaykgPT4ge1xuICAgIHZhbGlkYXRlKGxhbmcsIGpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLmxhYmVsKCdsYW5nJykpO1xuICAgIHJldHVybiBjbGllbnQuZ2V0KCd1c2Vycy1xdWVyeScsIHsgbGFuZywgcGFnZSwgc2l6ZSwgcTogcXVlcnkgfSwgbnVsbCwgY2FsbGJhY2spO1xuICB9O1xuXG4gIGFwaS5xdWVyeVVzZXJzRXhjbHVkZVN0YXR1c2VzID0gKGxhbmcsIHBhZ2UsIHNpemUsIHF1ZXJ5LCBleGNsdWRlU3RhdHVzZXMsIGNhbGxiYWNrKSA9PiB7XG4gICAgdmFsaWRhdGUobGFuZywgam9pLnN0cmluZygpLnJlcXVpcmVkKCkubGFiZWwoJ2xhbmcnKSk7XG4gICAgdmFsaWRhdGUobGFuZywgam9pLnN0cmluZygpLnJlcXVpcmVkKCkubGFiZWwoJ2xhbmcnKSk7XG4gICAgcmV0dXJuIGNsaWVudC5nZXQoJ3VzZXJzLXF1ZXJ5JywgeyBsYW5nLCBwYWdlLCBzaXplLCBxOiBxdWVyeSwgZXhzdGF0OiBleGNsdWRlU3RhdHVzZXMgfSwgbnVsbCwgY2FsbGJhY2spO1xuICB9O1xuXG4gIGFwaS5nZXRVc2VyID0gKGxhbmcsIHN5c3RlbUlkLCBjYWxsYmFjaykgPT4ge1xuICAgIHZhbGlkYXRlKGxhbmcsIGpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLmxhYmVsKCdsYW5nJykpO1xuICAgIHZhbGlkYXRlKHN5c3RlbUlkLCBqb2kuc3RyaW5nKCkucmVxdWlyZWQoKS5sYWJlbCgnc3lzdGVtSWQnKSk7XG4gICAgdmFsaWRhdGUobGFuZywgam9pLnN0cmluZygpLnJlcXVpcmVkKCkubGFiZWwoJ2xhbmcnKSk7XG4gICAgcmV0dXJuIGNsaWVudC5nZXQoJ3VzZXJzLWdldCcsIHsgbGFuZywgc3lzdGVtSWQgfSwgbnVsbCwgY2FsbGJhY2spO1xuICB9O1xuXG4gIGFwaS5nZXRVc2VyQnlQcmluY2lwYWxJZCA9IChsYW5nLCBwcmluY2lwYWxJZCwgY2FsbGJhY2spID0+IHtcbiAgICB2YWxpZGF0ZShsYW5nLCBqb2kuc3RyaW5nKCkucmVxdWlyZWQoKS5sYWJlbCgnbGFuZycpKTtcbiAgICB2YWxpZGF0ZShwcmluY2lwYWxJZCwgam9pLnN0cmluZygpLnJlcXVpcmVkKCkubGFiZWwoJ3ByaW5jaXBhbElkJykpO1xuICAgIHJldHVybiBjbGllbnQuZ2V0KCd1c2Vycy1ieXBpZCcsIHsgbGFuZywgcHJpbmNpcGFsSWQgfSwgbnVsbCwgY2FsbGJhY2spO1xuICB9O1xuXG4gIGFwaS5jcmVhdGVVc2VyID0gKGxhbmcsIHByaW5jaXBhbCwgY2FsbGJhY2spID0+IHtcbiAgICB2YWxpZGF0ZShsYW5nLCBqb2kuc3RyaW5nKCkucmVxdWlyZWQoKS5sYWJlbCgnbGFuZycpKTtcbiAgICByZXR1cm4gY2xpZW50LnBvc3QoJ3VzZXJzLXBvc3QnLCB7IGxhbmcgfSwgcHJpbmNpcGFsLCBudWxsLCBjYWxsYmFjayk7XG4gIH07XG5cbiAgYXBpLnVwZGF0ZVVzZXIgPSAobGFuZywgc3lzdGVtSWQsIHByaW5jaXBhbCwgY2FsbGJhY2spID0+IHtcbiAgICB2YWxpZGF0ZShsYW5nLCBqb2kuc3RyaW5nKCkucmVxdWlyZWQoKS5sYWJlbCgnbGFuZycpKTtcbiAgICB2YWxpZGF0ZShwcmluY2lwYWwsIGpvaS5vYmplY3QoKS5yZXF1aXJlZCgpLmxhYmVsKCdwcmluY2lwYWwnKSk7XG4gICAgdmFsaWRhdGUoc3lzdGVtSWQsIGpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLmxhYmVsKCdzeXN0ZW1JZCcpKTtcbiAgICByZXR1cm4gY2xpZW50LnB1dCgndXNlcnMtcHV0JywgeyBsYW5nLCBzeXN0ZW1JZCB9LCBwcmluY2lwYWwsIG51bGwsIGNhbGxiYWNrKTtcbiAgfTtcblxuICBhcGkuZGVsZXRlVXNlciA9IChsYW5nLCBzeXN0ZW1JZCwgY2FsbGJhY2spID0+IHtcbiAgICB2YWxpZGF0ZShsYW5nLCBqb2kuc3RyaW5nKCkucmVxdWlyZWQoKS5sYWJlbCgnbGFuZycpKTtcbiAgICB2YWxpZGF0ZShzeXN0ZW1JZCwgam9pLnN0cmluZygpLnJlcXVpcmVkKCkubGFiZWwoJ3N5c3RlbUlkJykpO1xuICAgIHJldHVybiBjbGllbnQuZGVsZXRlKCd1c2Vycy1kZWxldGUnLCB7IGxhbmcsIHN5c3RlbUlkIH0sIG51bGwsIGNhbGxiYWNrKTtcbiAgfTtcblxuICBhcGkuY3JlYXRlUGFzc3dvcmQgPSAobGFuZywgc3lzdGVtSWQsIHBhc3N3b3JkLCBzb3VyY2UsIGNhbGxiYWNrKSA9PiB7XG4gICAgdmFsaWRhdGUobGFuZywgam9pLnN0cmluZygpLnJlcXVpcmVkKCkubGFiZWwoJ2xhbmcnKSk7XG4gICAgdmFsaWRhdGUoc3lzdGVtSWQsIGpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLmxhYmVsKCdzeXN0ZW1JZCcpKTtcbiAgICB2YWxpZGF0ZShwYXNzd29yZCwgam9pLnN0cmluZygpLnJlcXVpcmVkKCkubGFiZWwoJ3Bhc3N3b3JkJykpO1xuICAgIGlmICh0eXBlb2YgKHNvdXJjZSkgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGNhbGxiYWNrID0gc291cmNlO1xuICAgICAgc291cmNlID0gJ2NvcmUnO1xuICAgIH0gZWxzZSB7XG4gICAgICBzb3VyY2UgPSB2YWxpZGF0ZShzb3VyY2UsIGpvaS5zdHJpbmcoKS5vcHRpb25hbCgpLmxhYmVsKCdzb3VyY2UnKS5kZWZhdWx0KCdjb3JlJykpO1xuICAgICAgdmFsaWRhdGUoY2FsbGJhY2ssIGpvaS5mdW5jKCkubGFiZWwoJ2NhbGxiYWNrJykuYWxsb3cobnVsbCkpO1xuICAgIH1cbiAgICByZXR1cm4gY2xpZW50LnBvc3QoJ3VzZXItcGFzc3dvcmQtcG9zdCcsIHsgbGFuZywgc3lzdGVtSWQgfSwgeyBzeXN0ZW1JZCwgcGFzc3dvcmQsIHNvdXJjZSB9LCBudWxsLCBjYWxsYmFjayk7XG4gIH07XG5cbiAgYXBpLnVwZGF0ZVBhc3N3b3JkID0gKGxhbmcsIHN5c3RlbUlkLCBvbGRQYXNzd29yZCwgcGFzc3dvcmQsIHNvdXJjZSwgY2FsbGJhY2spID0+IHtcbiAgICB2YWxpZGF0ZShsYW5nLCBqb2kuc3RyaW5nKCkucmVxdWlyZWQoKS5sYWJlbCgnbGFuZycpKTtcbiAgICB2YWxpZGF0ZShzeXN0ZW1JZCwgam9pLnN0cmluZygpLnJlcXVpcmVkKCkubGFiZWwoJ3N5c3RlbUlkJykpO1xuICAgIHZhbGlkYXRlKG9sZFBhc3N3b3JkLCBqb2kuc3RyaW5nKCkucmVxdWlyZWQoKS5sYWJlbCgnb2xkUGFzc3dvcmQnKSk7XG4gICAgdmFsaWRhdGUocGFzc3dvcmQsIGpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLmxhYmVsKCdwYXNzd29yZCcpKTtcbiAgICBpZiAodHlwZW9mIChzb3VyY2UpID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBjYWxsYmFjayA9IHNvdXJjZTtcbiAgICAgIHNvdXJjZSA9ICdjb3JlJztcbiAgICB9IGVsc2Uge1xuICAgICAgdmFsaWRhdGUoc291cmNlLCBqb2kuc3RyaW5nKCkucmVxdWlyZWQoKS5sYWJlbCgnc291cmNlJykpO1xuICAgICAgdmFsaWRhdGUoY2FsbGJhY2ssIGpvaS5mdW5jKCkubGFiZWwoJ2NhbGxiYWNrJykuYWxsb3cobnVsbCkpO1xuICAgIH1cbiAgICByZXR1cm4gY2xpZW50LnB1dCgndXNlci1wYXNzd29yZC1wdXQnLCB7IGxhbmcsIHN5c3RlbUlkIH0sIHsgc3lzdGVtSWQsIHBhc3N3b3JkLCAnb2xkX3Bhc3N3b3JkJzogb2xkUGFzc3dvcmQsIHNvdXJjZSB9LCBudWxsLCBjYWxsYmFjayk7XG4gIH07XG5cbiAgYXBpLmdldEVuZHBvaW50ID0gKGxhbmcsIHByaW5jaXBhbElkLCBjYWxsYmFjaykgPT4ge1xuICAgIHZhbGlkYXRlKGxhbmcsIGpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLmxhYmVsKCdsYW5nJykpO1xuICAgIHZhbGlkYXRlKHByaW5jaXBhbElkLCBqb2kuc3RyaW5nKCkucmVxdWlyZWQoKS5sYWJlbCgncHJpbmNpcGFsSWQnKSk7XG4gICAgcmV0dXJuIGNsaWVudC5nZXQoJ2VuZHBvaW50LWdldCcsIHsgbGFuZywgcHJpbmNpcGFsSWQgfSwgbnVsbCwgY2FsbGJhY2spO1xuICB9O1xuXG4gIGFwaS5jcmVhdGVFbmRwb2ludCA9IChsYW5nLCBwcmluY2lwYWwsIGNhbGxiYWNrKSA9PiB7XG4gICAgdmFsaWRhdGUobGFuZywgam9pLnN0cmluZygpLnJlcXVpcmVkKCkubGFiZWwoJ2xhbmcnKSk7XG4gICAgcmV0dXJuIGNsaWVudC5wb3N0KCdlbmRwb2ludC1wb3N0JywgeyBsYW5nIH0sIHByaW5jaXBhbCwgbnVsbCwgY2FsbGJhY2spO1xuICB9O1xuXG4gIGFwaS5kZWxldGVFbmRwb2ludCA9IChsYW5nLCBwcmluY2lwYWxJZCwgY2FsbGJhY2spID0+IHtcbiAgICB2YWxpZGF0ZShsYW5nLCBqb2kuc3RyaW5nKCkucmVxdWlyZWQoKS5sYWJlbCgnbGFuZycpKTtcbiAgICB2YWxpZGF0ZShwcmluY2lwYWxJZCwgam9pLnN0cmluZygpLnJlcXVpcmVkKCkubGFiZWwoJ3ByaW5jaXBhbElkJykpO1xuICAgIHJldHVybiBjbGllbnQuZGVsZXRlKCdlbmRwb2ludC1kZWxldGUnLCB7IGxhbmcsIHByaW5jaXBhbElkIH0sIG51bGwsIGNhbGxiYWNrKTtcbiAgfTtcblxuICBhcGkuYWRkRW5kcG9pbnRLZXkgPSAobGFuZywgcHJpbmNpcGFsSWQsIGtleUlkLCBrZXksIGNhbGxiYWNrKSA9PiB7XG4gICAgdmFsaWRhdGUobGFuZywgam9pLnN0cmluZygpLnJlcXVpcmVkKCkubGFiZWwoJ2xhbmcnKSk7XG4gICAgdmFsaWRhdGUocHJpbmNpcGFsSWQsIGpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLmxhYmVsKCdwcmluY2lwYWxJZCcpKTtcbiAgICB2YWxpZGF0ZShrZXlJZCwgam9pLnN0cmluZygpLnJlcXVpcmVkKCkubGFiZWwoJ2tleUlkJykpO1xuICAgIHZhbGlkYXRlKGtleSwgam9pLnN0cmluZygpLnJlcXVpcmVkKCkubGFiZWwoJ2tleScpKTtcbiAgICByZXR1cm4gY2xpZW50LnBvc3QoJ2VuZHBvaW50LWtleS1wb3N0JywgeyBsYW5nLCBwcmluY2lwYWxJZCB9LCB7IGtleUlkLCBrZXkgfSwgbnVsbCwgY2FsbGJhY2spO1xuICB9O1xuXG4gIGFwaS5nZXRFbmRwb2ludEtleSA9IChsYW5nLCBwcmluY2lwYWxJZCwga2V5SWQsIGNhbGxiYWNrKSA9PiB7XG4gICAgdmFsaWRhdGUobGFuZywgam9pLnN0cmluZygpLnJlcXVpcmVkKCkubGFiZWwoJ2xhbmcnKSk7XG4gICAgdmFsaWRhdGUocHJpbmNpcGFsSWQsIGpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLmxhYmVsKCdwcmluY2lwYWxJZCcpKTtcbiAgICB2YWxpZGF0ZShrZXlJZCwgam9pLnN0cmluZygpLnJlcXVpcmVkKCkubGFiZWwoJ2tleUlkJykpO1xuICAgIHJldHVybiBjbGllbnQuZ2V0KCdlbmRwb2ludC1rZXktZ2V0JywgeyBsYW5nLCBwcmluY2lwYWxJZCwga2V5SWQgfSwgbnVsbCwgY2FsbGJhY2spO1xuICB9O1xuXG4gIGFwaS5kZWxldGVFbmRwb2ludEtleSA9IChsYW5nLCBwcmluY2lwYWxJZCwga2V5SWQsIGNhbGxiYWNrKSA9PiB7XG4gICAgdmFsaWRhdGUobGFuZywgam9pLnN0cmluZygpLnJlcXVpcmVkKCkubGFiZWwoJ2xhbmcnKSk7XG4gICAgdmFsaWRhdGUocHJpbmNpcGFsSWQsIGpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLmxhYmVsKCdwcmluY2lwYWxJZCcpKTtcbiAgICB2YWxpZGF0ZSgna2V5SWQnLGpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLmxhYmVsKGtleUlkKSk7XG4gICAgcmV0dXJuIGNsaWVudC5kZWxldGUoJ2VuZHBvaW50LWtleS1kZWxldGUnLCB7IGxhbmcsIHByaW5jaXBhbElkLCBrZXlJZCB9LCBudWxsLCBjYWxsYmFjayk7XG4gIH07XG5cbiAgYXBpLmdldEVuZHBvaW50Q2xhaW1zID0gKGxhbmcsIHByaW5jaXBhbElkLCBjYWxsYmFjaykgPT4ge1xuICAgIHZhbGlkYXRlKGxhbmcsIGpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLmxhYmVsKCdsYW5nJykpO1xuICAgIHZhbGlkYXRlKHByaW5jaXBhbElkLCBqb2kuc3RyaW5nKCkucmVxdWlyZWQoKS5sYWJlbCgncHJpbmNpcGFsSWQnKSk7XG4gICAgcmV0dXJuIGNsaWVudC5nZXQoJ2VuZHBvaW50LWNsYWltcy1nZXQnLCB7IGxhbmcsIHByaW5jaXBhbElkIH0sIG51bGwsIGNhbGxiYWNrKTtcbiAgfTtcblxuICBhcGkuY3JlYXRlQXBpS2V5ID0gKGxhbmcsIHByaW5jaXBhbElkLCBhcGlLZXksIGNhbGxiYWNrKSA9PiB7XG4gICAgdmFsaWRhdGUobGFuZywgam9pLnN0cmluZygpLnJlcXVpcmVkKCkubGFiZWwoJ2xhbmcnKSk7XG4gICAgcmV0dXJuIGNsaWVudC5wb3N0KCdhcGlrZXktcG9zdCcsIHsgbGFuZywgYXBpS2V5IH0sIHsgcHJpbmNpcGFsSWQgfSwgbnVsbCwgY2FsbGJhY2spO1xuICB9O1xuXG4gIGFwaS5kZWxldGVBcGlLZXkgPSAobGFuZywgYXBpS2V5LCBjYWxsYmFjaykgPT4ge1xuICAgIHZhbGlkYXRlKGxhbmcsIGpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLmxhYmVsKCdsYW5nJykpO1xuICAgIHZhbGlkYXRlKGFwaUtleSwgam9pLnN0cmluZygpLnJlcXVpcmVkKCkubGFiZWwoJ2FwaUtleScpKTtcbiAgICByZXR1cm4gY2xpZW50LmRlbGV0ZSgnYXBpa2V5LWRlbGV0ZScsIHsgbGFuZywgYXBpS2V5IH0sIG51bGwsIGNhbGxiYWNrKTtcbiAgfTtcblxuICBhcGkuYXV0aGVudGljYXRlQnlBcGlLZXkgPSAobGFuZywgYXBpS2V5LCBjYWxsYmFjaykgPT4ge1xuICAgIHZhbGlkYXRlKGxhbmcsIGpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLmxhYmVsKCdsYW5nJykpO1xuICAgIHZhbGlkYXRlKGFwaUtleSwgam9pLnN0cmluZygpLnJlcXVpcmVkKCkubGFiZWwoJ2FwaUtleScpKTtcbiAgICByZXR1cm4gY2xpZW50LmdldCgnYXBpa2V5LWF1dGhlbnRpY2F0ZScsIHsgbGFuZywgYXBpS2V5IH0sIG51bGwsIGNhbGxiYWNrKTtcbiAgfTtcblxuICBhcGkuY3JlYXRlUmVzZXRUb2tlbiA9IChsYW5nLCBwcmluY2lwYWxJZCwgY2FsbGJhY2spID0+IHtcbiAgICB2YWxpZGF0ZShsYW5nLCBqb2kuc3RyaW5nKCkucmVxdWlyZWQoKS5sYWJlbCgnbGFuZycpKTtcbiAgICB2YWxpZGF0ZShwcmluY2lwYWxJZCwgam9pLnN0cmluZygpLnJlcXVpcmVkKCkubGFiZWwoJ3ByaW5jaXBhbElkJykpO1xuICAgIHJldHVybiBjbGllbnQucG9zdCgncnNvLXBvc3QnLCB7IGxhbmcgfSwgeyBwcmluY2lwYWxJZCB9LCBudWxsLCBjYWxsYmFjayk7XG4gIH07XG5cbiAgYXBpLmdldFJlc2V0VGlja2V0ID0gKGxhbmcsIHRva2VuLCBjYWxsYmFjaykgPT4ge1xuICAgIHZhbGlkYXRlKGxhbmcsIGpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLmxhYmVsKCdsYW5nJykpO1xuICAgIHZhbGlkYXRlKHRva2VuLCBqb2kuc3RyaW5nKCkucmVxdWlyZWQoKS5sYWJlbCgndG9rZW4nKSk7XG4gICAgcmV0dXJuIGNsaWVudC5nZXQoJ3Jzby1nZXQnLCB7IGxhbmcsIHRva2VuIH0sIG51bGwsIGNhbGxiYWNrKTtcbiAgfTtcblxuICBhcGkuZ2V0UGFzc3dvcmRQb2xpY3kgPSAobGFuZywgY2FsbGJhY2spID0+IHtcbiAgICB2YWxpZGF0ZShsYW5nLCBqb2kuc3RyaW5nKCkucmVxdWlyZWQoKS5sYWJlbCgnbGFuZycpKTtcbiAgICB2YWxpZGF0ZShjYWxsYmFjaywgam9pLmZ1bmMoKS5sYWJlbCgnY2FsbGJhY2snKS5hbGxvdyhudWxsKSk7XG4gICAgcmV0dXJuIGNsaWVudC5nZXQoJ3Bhc3N3b3JkLXBvbGljeS1nZXQnLCB7IGxhbmcgfSwgbnVsbCwgY2FsbGJhY2spO1xuICB9O1xuXG4gIGFwaS5nZXRDbGFpbXNldFNwZWMgPSAobGFuZywgY3NpZCwgY2FsbGJhY2spID0+IHtcbiAgICB2YWxpZGF0ZShsYW5nLCBqb2kuc3RyaW5nKCkucmVxdWlyZWQoKS5sYWJlbCgnbGFuZycpKTtcbiAgICB2YWxpZGF0ZShjc2lkLCBqb2kuc3RyaW5nKCkucmVxdWlyZWQoKS5sYWJlbCgnY3NpZCcpKTtcbiAgICB2YWxpZGF0ZShjYWxsYmFjaywgam9pLmZ1bmMoKS5sYWJlbCgnY2FsbGJhY2snKS5hbGxvdyhudWxsKSk7XG4gICAgcmV0dXJuIGNsaWVudC5nZXQoJ2NsYWltc3BlYy1nZXQnLCB7IGxhbmcsIGNzaWQgfSwgbnVsbCwgY2FsbGJhY2spO1xuICB9O1xuXG4gIGFwaS5nZXRDbGFpbXNldFNwZWNzID0gKGxhbmcsIGNhbGxiYWNrKSA9PiB7XG4gICAgdmFsaWRhdGUobGFuZywgam9pLnN0cmluZygpLnJlcXVpcmVkKCkubGFiZWwoJ2xhbmcnKSk7XG4gICAgdmFsaWRhdGUoY2FsbGJhY2ssIGpvaS5mdW5jKCkubGFiZWwoJ2NhbGxiYWNrJykuYWxsb3cobnVsbCkpO1xuICAgIHJldHVybiBjbGllbnQuZ2V0KCdjbGFpbXNwZWNzLWdldCcsIHsgbGFuZyB9LCBudWxsLCBjYWxsYmFjayk7XG4gIH07XG5cbiAgYXBpLnJlZ2lzdGVyQ2xhaW1zZXRTcGVjID0gKGxhbmcsIHNwZWMsIGNhbGxiYWNrKSA9PiB7XG4gICAgdmFsaWRhdGUobGFuZywgam9pLnN0cmluZygpLnJlcXVpcmVkKCkubGFiZWwoJ2xhbmcnKSk7XG4gICAgdmFsaWRhdGUoc3BlYywgam9pLm9iamVjdCgpLmxhYmVsKCdzcGVjJykucmVxdWlyZWQoKSk7XG4gICAgdmFsaWRhdGUoY2FsbGJhY2ssIGpvaS5mdW5jKCkubGFiZWwoJ2NhbGxiYWNrJykuYWxsb3cobnVsbCkpO1xuICAgIHJldHVybiBjbGllbnQucHV0KCdjbGFpbXNwZWMtcHV0JywgeyBsYW5nLCBjc2lkOiBzcGVjLmNzaWQgfSwgc3BlYywgbnVsbCwgY2FsbGJhY2spO1xuICB9O1xuXG4gIGFwaS5nZXRDbGFpbSA9IChsYW5nLCBzeXN0ZW1JZCwgY2xpZHMsIGNhbGxiYWNrKSA9PiB7XG4gICAgdmFsaWRhdGUobGFuZywgam9pLnN0cmluZygpLnJlcXVpcmVkKCkubGFiZWwoJ2xhbmcnKSk7XG4gICAgdmFsaWRhdGUoc3lzdGVtSWQsIGpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLmxhYmVsKCdzeXN0ZW1JZCcpKTtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShjbGlkcykpIHtcbiAgICAgIHZhbGlkYXRlKGNsaWRzLCBqb2kuYXJyYXkoKS5pdGVtcyhqb2kuc3RyaW5nKCkpLmxhYmVsKCdjbGlkcycpLnJlcXVpcmVkKCkpO1xuICAgIH0gZWxzZSB7XG4gICAgICB2YWxpZGF0ZShjbGlkcywgam9pLnN0cmluZygpLnJlcXVpcmVkKCkubGFiZWwoJ2NsaWRzJykpO1xuICAgIH1cbiAgICByZXR1cm4gY2xpZW50LmdldCgnY2xhaW0tZ2V0JywgeyBsYW5nLCBzeXN0ZW1JZCwgY2xpZHMgfSwgbnVsbCwgY2FsbGJhY2spO1xuICB9O1xuXG4gIGFwaS5nZXRBbGxDbGFpbXMgPSAobGFuZywgc3lzdGVtSWQsIGNzaWRzLCBjYWxsYmFjaykgPT4ge1xuICAgIHZhbGlkYXRlKGxhbmcsIGpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLmxhYmVsKCdsYW5nJykpO1xuICAgIHZhbGlkYXRlKHN5c3RlbUlkLCBqb2kuc3RyaW5nKCkucmVxdWlyZWQoKS5sYWJlbCgnc3lzdGVtSWQnKSk7XG4gICAgaWYgKHR5cGVvZiAoY3NpZHMpID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBjYWxsYmFjayA9IGNzaWRzO1xuICAgICAgY3NpZHMgPSBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gY2xpZW50LmdldCgnY2xhaW0tZ2V0JywgeyBsYW5nLCBzeXN0ZW1JZCwgY3NpZHMgfSwgbnVsbCwgY2FsbGJhY2spO1xuICB9O1xuXG4gIGFwaS5zZXRDbGFpbSA9IChsYW5nLCBzeXN0ZW1JZCwgY2xhaW1zLCBjYWxsYmFjaykgPT4ge1xuICAgIHZhbGlkYXRlKGxhbmcsIGpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLmxhYmVsKCdsYW5nJykpO1xuICAgIHZhbGlkYXRlKHN5c3RlbUlkLCBqb2kuc3RyaW5nKCkucmVxdWlyZWQoKS5sYWJlbCgnc3lzdGVtSWQnKSk7XG4gICAgaWYgKCFBcnJheS5pc0FycmF5KGNsYWltcykpIHtcbiAgICAgIGNsYWltcyA9IFtjbGFpbXNdO1xuICAgIH1cbiAgICB2YWxpZGF0ZShjbGFpbXMsIGpvaS5hcnJheSgpLml0ZW1zKGpvaS5vYmplY3QoKSkubGFiZWwoJ2NsYWltcycpLnJlcXVpcmVkKCkpO1xuXG4gICAgcmV0dXJuIGNsaWVudC5wb3N0KCdjbGFpbS1wb3N0JywgeyBsYW5nLCBzeXN0ZW1JZCB9LCBjbGFpbXMsIG51bGwsIGNhbGxiYWNrKTtcbiAgfTtcblxuICBhcGkucmVtb3ZlQ2xhaW0gPSAobGFuZywgc3lzdGVtSWQsIGNsaWRzLCBjYWxsYmFjaykgPT4ge1xuICAgIHZhbGlkYXRlKGxhbmcsIGpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLmxhYmVsKCdsYW5nJykpO1xuICAgIHZhbGlkYXRlKHN5c3RlbUlkLCBqb2kuc3RyaW5nKCkucmVxdWlyZWQoKS5sYWJlbCgnc3lzdGVtSWQnKSk7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkoY2xpZHMpKSB7XG4gICAgICB2YWxpZGF0ZShjbGlkcywgam9pLmFycmF5KCkuaXRlbXMoam9pLnN0cmluZygpKS5sYWJlbCgnY2xpZHMnKS5yZXF1aXJlZCgpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdmFsaWRhdGUoY2xpZHMsIGpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLmxhYmVsKCdjbGlkcycpKTtcbiAgICB9XG4gICAgcmV0dXJuIGNsaWVudC5kZWxldGUoJ2NsYWltLWRlbGV0ZScsIHsgbGFuZyAsIHN5c3RlbUlkLCBjbGlkcyB9LCBudWxsLCBjYWxsYmFjayk7XG4gIH07XG5cbiAgYXBpLmNyZWF0ZUxvZ2dlZEluVG9rZW4gPSAobGFuZywgcHJpbmNpcGFsSWQsIGNhbGxiYWNrKSA9PiB7XG4gICAgdmFsaWRhdGUobGFuZywgam9pLnN0cmluZygpLnJlcXVpcmVkKCkubGFiZWwoJ2xhbmcnKSk7XG4gICAgdmFsaWRhdGUocHJpbmNpcGFsSWQsIGpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLmxhYmVsKCdwcmluY2lwYWxJZCcpKTtcbiAgICByZXR1cm4gY2xpZW50LnBvc3QoJ3Rzby1jcmVhdGUnLCB7IGxhbmcsIHByaW5jaXBhbElkIH0sIHt9LCBudWxsLCBjYWxsYmFjayk7XG4gIH07XG5cbiAgYXBpLmRlbGV0ZUxvZ2dlZEluVG9rZW4gPSAobGFuZywgcHJpbmNpcGFsSWQsIHRva2VuLCBjYWxsYmFjaykgPT4ge1xuICAgIHZhbGlkYXRlKGxhbmcsIGpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLmxhYmVsKCdsYW5nJykpO1xuICAgIHZhbGlkYXRlKHByaW5jaXBhbElkLCBqb2kuc3RyaW5nKCkucmVxdWlyZWQoKS5sYWJlbCgncHJpbmNpcGFsSWQnKSk7XG4gICAgdmFsaWRhdGUodG9rZW4sIGpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLmxhYmVsKCd0b2tlbicpKTtcbiAgICByZXR1cm4gY2xpZW50LmRlbGV0ZSgndHNvLWRlbGV0ZScsIHsgbGFuZywgcHJpbmNpcGFsSWQsIHRva2VuIH0sIG51bGwsIGNhbGxiYWNrKTtcbiAgfTtcblxuICBhcGkubG9nZ2VkSW5Ub2tlbkxvZ2luID0gKGxhbmcsIHByaW5jaXBhbElkLCB0b2tlbklkLCB0b2tlbiwgY2FsbGJhY2spID0+IHtcbiAgICB2YWxpZGF0ZShsYW5nLCBqb2kuc3RyaW5nKCkucmVxdWlyZWQoKS5sYWJlbCgnbGFuZycpKTtcbiAgICB2YWxpZGF0ZShwcmluY2lwYWxJZCwgam9pLnN0cmluZygpLnJlcXVpcmVkKCkubGFiZWwoJ3ByaW5jaXBhbElkJykpO1xuICAgIHZhbGlkYXRlKHRva2VuSWQsIGpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLmxhYmVsKCd0b2tlbklkJykpO1xuICAgIHZhbGlkYXRlKHRva2VuLCBqb2kub2JqZWN0KCkubGFiZWwoJ3Rva2VuJykucmVxdWlyZWQoKSk7XG4gICAgcmV0dXJuIGNsaWVudC5wb3N0KCd0c28tbG9naW4nLCB7IGxhbmcsIHByaW5jaXBhbElkLCB0b2tlbjogdG9rZW5JZCB9LCB0b2tlbiwgbnVsbCwgY2FsbGJhY2spO1xuICB9O1xuXG4gIGFwaS5nZXRMb2dnZWRJblRva2VucyA9IChsYW5nLCBwcmluY2lwYWxJZCwgY2FsbGJhY2spID0+IHtcbiAgICB2YWxpZGF0ZShsYW5nLCBqb2kuc3RyaW5nKCkucmVxdWlyZWQoKS5sYWJlbCgnbGFuZycpKTtcbiAgICB2YWxpZGF0ZShwcmluY2lwYWxJZCwgam9pLnN0cmluZygpLnJlcXVpcmVkKCkubGFiZWwoJ3ByaW5jaXBhbElkJykpO1xuICAgIHJldHVybiBjbGllbnQuZ2V0KCd0c28tZ2V0JywgeyBsYW5nLCBwcmluY2lwYWxJZCB9LCBudWxsLCBjYWxsYmFjayk7XG4gIH07XG5cbiAgYXBpLndpdGhMYW5nID0gKGxhbmcpID0+IHtcbiAgICB2YWxpZGF0ZShsYW5nLCBqb2kuc3RyaW5nKCkucmVxdWlyZWQoKS5sYWJlbCgnbGFuZycpKTtcbiAgICBsZXQgcmVzdWx0ID0gXy5tYXBWYWx1ZXMoYXBpLCAoZnVuYykgPT4ge1xuICAgICAgaWYgKHR5cGVvZihmdW5jKSA9PT0gJ2Z1bmN0aW9uJylcbiAgICAgICAgcmV0dXJuIGZ1bmMuYmluZChudWxsLCBsYW5nKTtcbiAgICAgIHJldHVybiBmdW5jO1xuICAgIH0pO1xuICAgIGRlbGV0ZSByZXN1bHQud2l0aExhbmc7XG4gICAgZGVsZXRlIHJlc3VsdC53aXRoVXNlcjtcbiAgICBkZWxldGUgcmVzdWx0LndpdGhPcmlnaW47XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfTtcblxuICByZXR1cm4gYXBpO1xufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBBdXRoZW50aWNDbGllbnQoaG9zdCwga2V5SWQsIGtleSwgbG9nKSB7XG4gIGNvbnN0IHRydXN0ZWRDbGllbnQgPSBUcnVzdGVkQ2xpZW50KHsga2V5SWQsIGtleSwgbG9nIH0pO1xuICBjb25zdCBhcGkgPSBDcmVhdGVBUEkoUm91dGVkQ2xpZW50KGhvc3QsIHRydXN0ZWRDbGllbnQsIHJvdXRlRGVmaW5pdGlvbnMpKTtcblxuICBhcGkudG9TdHJpbmcgPSAoKSA9PiBgQXV0aGVudGljQ2xpZW50IHsgaG9zdDogJHtob3N0fSB9YDtcblxuICBhcGkud2l0aFVzZXIgPSAodG9rZW4pID0+IHtcbiAgICBsZXQgYXBpV2l0aFVzZXIgPSBDcmVhdGVBUEkoUm91dGVkQ2xpZW50KGhvc3QsIHRydXN0ZWRDbGllbnQud2l0aFVzZXIodG9rZW4pLCByb3V0ZURlZmluaXRpb25zKSk7XG4gICAgYXBpV2l0aFVzZXIudG9TdHJpbmcgPSAoKSA9PiBgQXV0aGVudGljQ2xpZW50VXNlciB7IGhvc3Q6ICR7aG9zdH0gfWA7XG4gICAgcmV0dXJuIGFwaVdpdGhVc2VyO1xuICB9O1xuXG4gIGFwaS53aXRoT3JpZ2luID0gKHRva2VuKSA9PiB7XG4gICAgbGV0IGFwaVdpdGhPcmlnaW4gPSBDcmVhdGVBUEkoUm91dGVkQ2xpZW50KGhvc3QsIHRydXN0ZWRDbGllbnQud2l0aE9yaWdpbih0b2tlbiksIHJvdXRlRGVmaW5pdGlvbnMpKTtcbiAgICBhcGlXaXRoT3JpZ2luLnRvU3RyaW5nID0gKCkgPT4gYEF1dGhlbnRpY0NsaWVudFVzZXIgeyBob3N0OiAke2hvc3R9IH1gO1xuICAgIHJldHVybiBhcGlXaXRoT3JpZ2luO1xuICB9O1xuXG4gIHJldHVybiBhcGk7XG59XG4iXX0= |
{ | ||
"name": "@leisurelink/authentic-client", | ||
"version": "2.0.0", | ||
"version": "2.0.1", | ||
"description": "LeisureLink client library to the authentic-api", | ||
@@ -5,0 +5,0 @@ "main": "build/index.js", |
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
New author
Supply chain riskA new npm collaborator published a version of the package for the first time. New collaborators are usually benign additions to a project, but do indicate a change to the security surface area of a package.
Found 1 instance in 1 package
318
1
63028
3