Socket
Socket
Sign inDemoInstall

@glimmer/runtime

Package Overview
Dependencies
Maintainers
10
Versions
289
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@glimmer/runtime - npm Package Compare versions

Comparing version 0.24.0-beta.2 to 0.24.0-beta.3

7

dist/commonjs/es2017/lib/dom/helper.js

@@ -48,2 +48,7 @@ 'use strict';

this.document = document;
this.setupUselessElement();
}
// split into seperate method so that NodeDOMTreeConstruction
// can override it.
setupUselessElement() {
this.uselessElement = this.document.createElement('div');

@@ -190,2 +195,2 @@ }

const DOMTreeConstruction = exports.DOMTreeConstruction = DOM.DOMTreeConstruction;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9kb20vaGVscGVyLmpzIl0sIm5hbWVzIjpbImlzV2hpdGVzcGFjZSIsIm1vdmVOb2Rlc0JlZm9yZSIsImluc2VydEhUTUxCZWZvcmUiLCJTVkdfTkFNRVNQQUNFIiwiU1ZHX0lOVEVHUkFUSU9OX1BPSU5UUyIsImZvcmVpZ25PYmplY3QiLCJkZXNjIiwidGl0bGUiLCJCTEFDS0xJU1RfVEFCTEUiLCJPYmplY3QiLCJjcmVhdGUiLCJmb3JFYWNoIiwidGFnIiwiV0hJVEVTUEFDRSIsImRvYyIsImRvY3VtZW50Iiwic3RyaW5nIiwidGVzdCIsInNvdXJjZSIsInRhcmdldCIsIm5leHRTaWJsaW5nIiwiZmlyc3QiLCJmaXJzdENoaWxkIiwibGFzdCIsImN1cnJlbnQiLCJpbnNlcnRCZWZvcmUiLCJET01PcGVyYXRpb25zIiwiY29uc3RydWN0b3IiLCJ1c2VsZXNzRWxlbWVudCIsImNyZWF0ZUVsZW1lbnQiLCJjb250ZXh0IiwiaXNFbGVtZW50SW5TVkdOYW1lc3BhY2UiLCJpc0hUTUxJbnRlZ3JhdGlvblBvaW50IiwibmFtZXNwYWNlVVJJIiwidGFnTmFtZSIsIkVycm9yIiwiY3JlYXRlRWxlbWVudE5TIiwicGFyZW50Iiwibm9kZSIsInJlZmVyZW5jZSIsIl9wYXJlbnQiLCJodG1sIiwiY3JlYXRlVGV4dE5vZGUiLCJ0ZXh0IiwiY3JlYXRlQ29tbWVudCIsImRhdGEiLCJET00iLCJUcmVlQ29uc3RydWN0aW9uIiwibmFtZXNwYWNlIiwic2V0QXR0cmlidXRlIiwiZWxlbWVudCIsIm5hbWUiLCJ2YWx1ZSIsInNldEF0dHJpYnV0ZU5TIiwiYXBwbGllZFRyZWVDb250cnVjdGlvbiIsIkRPTVRyZWVDb25zdHJ1Y3Rpb24iLCJET01DaGFuZ2VzIiwicmVtb3ZlQXR0cmlidXRlIiwicmVtb3ZlQXR0cmlidXRlTlMiLCJpbnNlcnROb2RlQmVmb3JlIiwiaXNEb2N1bWVudEZyYWdtZW50IiwibGFzdENoaWxkIiwiaW5zZXJ0VGV4dEJlZm9yZSIsInRleHROb2RlIiwiaW5zZXJ0QWZ0ZXIiLCJfdXNlbGVzcyIsIl9uZXh0U2libGluZyIsInVzZWxlc3MiLCJwcmV2IiwicHJldmlvdXNTaWJsaW5nIiwiaW5zZXJ0QWRqYWNlbnRIVE1MIiwiSFRNTEVsZW1lbnQiLCJyZW1vdmVDaGlsZCIsIm5vZGVUeXBlIiwiTm9kZSIsIkRPQ1VNRU5UX0ZSQUdNRU5UX05PREUiLCJoZWxwZXIiXSwibWFwcGluZ3MiOiI7Ozs7OztRQWdCZ0JBLFksR0FBQUEsWTtRQUdBQyxlLEdBQUFBLGU7UUErR0FDLGdCLEdBQUFBLGdCOztBQWxJaEI7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ08sTUFBTUMsd0NBQWdCLDRCQUF0QjtBQUNQO0FBQ0EsTUFBTUMseUJBQXlCLEVBQUVDLGVBQWUsQ0FBakIsRUFBb0JDLE1BQU0sQ0FBMUIsRUFBNkJDLE9BQU8sQ0FBcEMsRUFBL0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ08sTUFBTUMsNENBQWtCQyxPQUFPQyxNQUFQLENBQWMsSUFBZCxDQUF4QjtBQUNQLENBQUMsR0FBRCxFQUFNLEtBQU4sRUFBYSxZQUFiLEVBQTJCLE1BQTNCLEVBQW1DLElBQW5DLEVBQXlDLFFBQXpDLEVBQW1ELE1BQW5ELEVBQTJELElBQTNELEVBQWlFLEtBQWpFLEVBQXdFLElBQXhFLEVBQThFLElBQTlFLEVBQW9GLElBQXBGLEVBQTBGLE9BQTFGLEVBQW1HLElBQW5HLEVBQXlHLElBQXpHLEVBQStHLElBQS9HLEVBQXFILElBQXJILEVBQTJILElBQTNILEVBQWlJLElBQWpJLEVBQXVJLE1BQXZJLEVBQStJLElBQS9JLEVBQXFKLEdBQXJKLEVBQTBKLEtBQTFKLEVBQWlLLElBQWpLLEVBQXVLLFNBQXZLLEVBQWtMLE1BQWxMLEVBQTBMLE1BQTFMLEVBQWtNLE1BQWxNLEVBQTBNLElBQTFNLEVBQWdOLEdBQWhOLEVBQXFOLEtBQXJOLEVBQTROLE1BQTVOLEVBQW9PLEdBQXBPLEVBQXlPLE9BQXpPLEVBQWtQLE1BQWxQLEVBQTBQLFFBQTFQLEVBQW9RLFFBQXBRLEVB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QUNBbEIsZUFBTzRDLFFBQVFFLGVBQWY7QUFDQWhDLGVBQU9tQyxXQUFQLENBQW1CTCxPQUFuQjtBQUNIO0FBQ0QsUUFBSTlDLFFBQVErQyxPQUFPQSxLQUFLaEQsV0FBWixHQUEwQmlCLE9BQU9mLFVBQTdDO0FBQ0EsV0FBTywyQkFBbUJlLE1BQW5CLEVBQTJCaEIsS0FBM0IsRUFBa0NFLElBQWxDLENBQVA7QUFDSDtBQUNELFNBQVNxQyxrQkFBVCxDQUE0QnRCLElBQTVCLEVBQWtDO0FBQzlCLFdBQU9BLEtBQUttQyxRQUFMLEtBQWtCQyxLQUFLQyxzQkFBOUI7QUFDSDtBQUNELElBQUlDLFNBQVNwQixVQUFiO0FBQ0FvQixTQUFTLG9DQUF5QjlELEdBQXpCLEVBQThCOEQsTUFBOUIsQ0FBVDtBQUNBQSxTQUFTLDhCQUEwQjlELEdBQTFCLEVBQStCOEQsTUFBL0IsQ0FBVDtBQUNBQSxTQUFTLGlDQUF3QjlELEdBQXhCLEVBQTZCOEQsTUFBN0IsRUFBcUN6RSxhQUFyQyxDQUFUO2tCQUNleUUsTTtBQUNSLE1BQU1yQixvREFBc0JULElBQUlTLG1CQUFoQyIsImZpbGUiOiJsaWIvZG9tL2hlbHBlci5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbmNyZXRlQm91bmRzLCBTaW5nbGVOb2RlQm91bmRzIH0gZnJvbSAnLi4vYm91bmRzJztcbmltcG9ydCB7IGRvbUNoYW5nZXMgYXMgZG9tQ2hhbmdlc1RhYmxlRWxlbWVudEZpeCwgdHJlZUNvbnN0cnVjdGlvbiBhcyB0cmVlQ29uc3RydWN0aW9uVGFibGVFbGVtZW50Rml4IH0gZnJvbSAnLi4vY29tcGF0L2lubmVyLWh0bWwtZml4JztcbmltcG9ydCB7IGRvbUNoYW5nZXMgYXMgZG9tQ2hhbmdlc1N2Z0VsZW1lbnRGaXgsIHRyZWVDb25zdHJ1Y3Rpb24gYXMgdHJlZUNvbnN0cnVjdGlvblN2Z0VsZW1lbnRGaXggfSBmcm9tICcuLi9jb21wYXQvc3ZnLWlubmVyLWh0bWwtZml4JztcbmltcG9ydCB7IGRvbUNoYW5nZXMgYXMgZG9tQ2hhbmdlc05vZGVNZXJnaW5nRml4LCB0cmVlQ29uc3RydWN0aW9uIGFzIHRyZWVDb25zdHJ1Y3Rpb25Ob2RlTWVyZ2luZ0ZpeCB9IGZyb20gJy4uL2NvbXBhdC90ZXh0LW5vZGUtbWVyZ2luZy1maXgnO1xuZXhwb3J0IGNvbnN0IFNWR19OQU1FU1BBQ0UgPSAnaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnO1xuLy8gaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbC9zeW50YXguaHRtbCNodG1sLWludGVncmF0aW9uLXBvaW50XG5jb25zdCBTVkdfSU5URUdSQVRJT05fUE9JTlRTID0geyBmb3JlaWduT2JqZWN0OiAxLCBkZXNjOiAxLCB0aXRsZTogMSB9O1xuLy8gaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbC9zeW50YXguaHRtbCNhZGp1c3Qtc3ZnLWF0dHJpYnV0ZXNcbi8vIFRPRE86IEFkanVzdCBTVkcgYXR0cmlidXRlc1xuLy8gaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbC9zeW50YXguaHRtbCNwYXJzaW5nLW1haW4taW5mb3JlaWduXG4vLyBUT0RPOiBBZGp1c3QgU1ZHIGVsZW1lbnRzXG4vLyBodHRwOi8vd3d3LnczLm9yZy9UUi9odG1sL3N5bnRheC5odG1sI3BhcnNpbmctbWFpbi1pbmZvcmVpZ25cbmV4cG9ydCBjb25zdCBCTEFDS0xJU1RfVEFCTEUgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuW1wiYlwiLCBcImJpZ1wiLCBcImJsb2NrcXVvdGVcIiwgXCJib2R5XCIsIFwiYnJcIiwgXCJjZW50ZXJcIiwgXCJjb2RlXCIsIFwiZGRcIiwgXCJkaXZcIiwgXCJkbFwiLCBcImR0XCIsIFwiZW1cIiwgXCJlbWJlZFwiLCBcImgxXCIsIFwiaDJcIiwgXCJoM1wiLCBcImg0XCIsIFwiaDVcIiwgXCJoNlwiLCBcImhlYWRcIiwgXCJoclwiLCBcImlcIiwgXCJpbWdcIiwgXCJsaVwiLCBcImxpc3RpbmdcIiwgXCJtYWluXCIsIFwibWV0YVwiLCBcIm5vYnJcIiwgXCJvbFwiLCBcInBcIiwgXCJwcmVcIiwgXCJydWJ5XCIsIFwic1wiLCBcInNtYWxsXCIsIFwic3BhblwiLCBcInN0cm9uZ1wiLCBcInN0cmlrZVwiLCBcInN1YlwiLCBcInN1cFwiLCBcInRhYmxlXCIsIFwidHRcIiwgXCJ1XCIsIFwidWxcIiwgXCJ2YXJcIl0uZm9yRWFjaCh0YWcgPT4gQkxBQ0tMSVNUX1RBQkxFW3RhZ10gPSAxKTtcbmNvbnN0IFdISVRFU1BBQ0UgPSAvW1xcdC1cXHIgXFx4QTBcXHUxNjgwXFx1MTgwRVxcdTIwMDAtXFx1MjAwQVxcdTIwMjhcXHUyMDI5XFx1MjAyRlxcdTIwNUZcXHUzMDAwXFx1RkVGRl0vO1xubGV0IGRvYyA9IHR5cGVvZiBkb2N1bWVudCA9PT0gJ3VuZGVmaW5lZCcgPyBudWxsIDogZG9jdW1lbnQ7XG5leHBvcnQgZnVuY3Rpb24gaXNXaGl0ZXNwYWNlKHN0cmluZykge1xuICAgIHJldHVybiBXSElURVNQQUNFLnRlc3Qoc3RyaW5nKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBtb3ZlTm9kZXNCZWZvcmUoc291cmNlLCB0YXJnZXQsIG5leHRTaWJsaW5nKSB7XG4gICAgbGV0IGZpcnN0ID0gc291cmNlLmZpcnN0Q2hpbGQ7XG4gICAgbGV0IGxhc3QgPSBudWxsO1xuICAgIGxldCBjdXJyZW50ID0gZmlyc3Q7XG4gICAgd2hpbGUgKGN1cnJlbnQpIHtcbiAgICAgICAgbGFzdCA9IGN1cnJlbnQ7XG4gICAgICAgIGN1cnJlbnQgPSBjdXJyZW50Lm5leHRTaWJsaW5nO1xuICAgICAgICB0YXJnZXQuaW5zZXJ0QmVmb3JlKGxhc3QsIG5leHRTaWJsaW5nKTtcbiAgICB9XG4gICAgcmV0dXJuIFtmaXJzdCwgbGFzdF07XG59XG5leHBvcnQgY2xhc3MgRE9NT3BlcmF0aW9ucyB7XG4gICAgY29uc3RydWN0b3IoZG9jdW1lbnQpIHtcbiAgICAgICAgdGhpcy5kb2N1bWVudCA9IGRvY3VtZW50O1xuICAgICAgICB0aGlzLnVzZWxlc3NFbGVtZW50ID0gdGhpcy5kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICB9XG4gICAgY3JlYXRlRWxlbWVudCh0YWcsIGNvbnRleHQpIHtcbiAgICAgICAgbGV0IGlzRWxlbWVudEluU1ZHTmFtZXNwYWNlLCBpc0hUTUxJbnRlZ3JhdGlvblBvaW50O1xuICAgICAgICBpZiAoY29udGV4dCkge1xuICAgICAgICAgICAgaXNFbGVtZW50SW5TVkdOYW1lc3BhY2UgPSBjb250ZXh0Lm5hbWVzcGFjZVVSSSA9PT0gU1ZHX05BTUVTUEFDRSB8fCB0YWcgPT09ICdzdmcnO1xuICAgICAgICAgICAgaXNIVE1MSW50ZWdyYXRpb25Qb2ludCA9IFNWR19JTlRFR1JBVElPTl9QT0lOVFNbY29udGV4dC50YWdOYW1lXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlzRWxlbWVudEluU1ZHTmFtZXNwYWNlID0gdGFnID09PSAnc3ZnJztcbiAgICAgICAgICAgIGlzSFRNTEludGVncmF0aW9uUG9pbnQgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaXNFbGVtZW50SW5TVkdOYW1lc3BhY2UgJiYgIWlzSFRNTEludGVncmF0aW9uUG9pbnQpIHtcbiAgICAgICAgICAgIC8vIEZJWE1FOiBUaGlzIGRvZXMgbm90IHByb3Blcmx5IGhhbmRsZSA8Zm9udD4gd2l0aCBjb2xvciwgZmFjZSwgb3JcbiAgICAgICAgICAgIC8vIHNpemUgYXR0cmlidXRlcywgd2hpY2ggaXMgYWxzbyBkaXNhbGxvd2VkIGJ5IHRoZSBzcGVjLiBXZSBzaG91bGQgZml4XG4gICAgICAgICAgICAvLyB0aGlzLlxuICAgICAgICAgICAgaWYgKEJMQUNLTElTVF9UQUJMRVt0YWddKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBDYW5ub3QgY3JlYXRlIGEgJHt0YWd9IGluc2lkZSBhbiBTVkcgY29udGV4dGApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKFNWR19OQU1FU1BBQ0UsIHRhZyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5kb2N1bWVudC5jcmVhdGVFbGVtZW50KHRhZyk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaW5zZXJ0QmVmb3JlKHBhcmVudCwgbm9kZSwgcmVmZXJlbmNlKSB7XG4gICAgICAgIHBhcmVudC5pbnNlcnRCZWZvcmUobm9kZSwgcmVmZXJlbmNlKTtcbiAgICB9XG4gICAgaW5zZXJ0SFRNTEJlZm9yZShfcGFyZW50LCBuZXh0U2libGluZywgaHRtbCkge1xuICAgICAgICByZXR1cm4gaW5zZXJ0SFRNTEJlZm9yZSh0aGlzLnVzZWxlc3NFbGVtZW50LCBfcGFyZW50LCBuZXh0U2libGluZywgaHRtbCk7XG4gICAgfVxuICAgIGNyZWF0ZVRleHROb2RlKHRleHQpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUodGV4dCk7XG4gICAgfVxuICAgIGNyZWF0ZUNvbW1lbnQoZGF0YSkge1xuICAgICAgICByZXR1cm4gdGhpcy5kb2N1bWVudC5jcmVhdGVDb21tZW50KGRhdGEpO1xuICAgIH1cbn1cbmV4cG9ydCB2YXIgRE9NO1xuKGZ1bmN0aW9uIChET00pIHtcbiAgICBjbGFzcyBUcmVlQ29uc3RydWN0aW9uIGV4dGVuZHMgRE9NT3BlcmF0aW9ucyB7XG4gICAgICAgIGNyZWF0ZUVsZW1lbnROUyhuYW1lc3BhY2UsIHRhZykge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKG5hbWVzcGFjZSwgdGFnKTtcbiAgICAgICAgfVxuICAgICAgICBzZXRBdHRyaWJ1dGUoZWxlbWVudCwgbmFtZSwgdmFsdWUsIG5hbWVzcGFjZSkge1xuICAgICAgICAgICAgaWYgKG5hbWVzcGFjZSkge1xuICAgICAgICAgICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlTlMobmFtZXNwYWNlLCBuYW1lLCB2YWx1ZSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKG5hbWUsIHZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBET00uVHJlZUNvbnN0cnVjdGlvbiA9IFRyZWVDb25zdHJ1Y3Rpb247XG4gICAgbGV0IGFwcGxpZWRUcmVlQ29udHJ1Y3Rpb24gPSBUcmVlQ29uc3RydWN0aW9uO1xuICAgIGFwcGxpZWRUcmVlQ29udHJ1Y3Rpb24gPSB0cmVlQ29uc3RydWN0aW9uTm9kZU1lcmdpbmdGaXgoZG9jLCBhcHBsaWVkVHJlZUNvbnRydWN0aW9uKTtcbiAgICBhcHBsaWVkVHJlZUNvbnRydWN0aW9uID0gdHJlZUNvbnN0cnVjdGlvblRhYmxlRWxlbWVudEZpeChkb2MsIGFwcGxpZWRUcmVlQ29udHJ1Y3Rpb24pO1xuICAgIGFwcGxpZWRUcmVlQ29udHJ1Y3Rpb24gPSB0cmVlQ29uc3RydWN0aW9uU3ZnRWxlbWVudEZpeChkb2MsIGFwcGxpZWRUcmVlQ29udHJ1Y3Rpb24sIFNWR19OQU1FU1BBQ0UpO1xuICAgIERPTS5ET01UcmVlQ29uc3RydWN0aW9uID0gYXBwbGllZFRyZWVDb250cnVjdGlvbjtcbn0pKERPTSB8fCAoRE9NID0ge30pKTtcbmV4cG9ydCBjbGFzcyBET01DaGFuZ2VzIGV4dGVuZHMgRE9NT3BlcmF0aW9ucyB7XG4gICAgY29uc3RydWN0b3IoZG9jdW1lbnQpIHtcbiAgICAgICAgc3VwZXIoZG9jdW1lbnQpO1xuICAgICAgICB0aGlzLmRvY3VtZW50ID0gZG9jdW1lbnQ7XG4gICAgICAgIHRoaXMubmFtZXNwYWNlID0gbnVsbDtcbiAgICB9XG4gICAgc2V0QXR0cmlidXRlKGVsZW1lbnQsIG5hbWUsIHZhbHVlKSB7XG4gICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKG5hbWUsIHZhbHVlKTtcbiAgICB9XG4gICAgc2V0QXR0cmlidXRlTlMoZWxlbWVudCwgbmFtZXNwYWNlLCBuYW1lLCB2YWx1ZSkge1xuICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZU5TKG5hbWVzcGFjZSwgbmFtZSwgdmFsdWUpO1xuICAgIH1cbiAgICByZW1vdmVBdHRyaWJ1dGUoZWxlbWVudCwgbmFtZSkge1xuICAgICAgICBlbGVtZW50LnJlbW92ZUF0dHJpYnV0ZShuYW1lKTtcbiAgICB9XG4gICAgcmVtb3ZlQXR0cmlidXRlTlMoZWxlbWVudCwgbmFtZXNwYWNlLCBuYW1lKSB7XG4gICAgICAgIGVsZW1lbnQucmVtb3ZlQXR0cmlidXRlTlMobmFtZXNwYWNlLCBuYW1lKTtcbiAgICB9XG4gICAgaW5zZXJ0Tm9kZUJlZm9yZShwYXJlbnQsIG5vZGUsIHJlZmVyZW5jZSkge1xuICAgICAgICBpZiAoaXNEb2N1bWVudEZyYWdtZW50KG5vZGUpKSB7XG4gICAgICAgICAgICBsZXQgeyBmaXJzdENoaWxkLCBsYXN0Q2hpbGQgfSA9IG5vZGU7XG4gICAgICAgICAgICB0aGlzLmluc2VydEJlZm9yZShwYXJlbnQsIG5vZGUsIHJlZmVyZW5jZSk7XG4gICAgICAgICAgICByZXR1cm4gbmV3IENvbmNyZXRlQm91bmRzKHBhcmVudCwgZmlyc3RDaGlsZCwgbGFzdENoaWxkKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuaW5zZXJ0QmVmb3JlKHBhcmVudCwgbm9kZSwgcmVmZXJlbmNlKTtcbiAgICAgICAgICAgIHJldHVybiBuZXcgU2luZ2xlTm9kZUJvdW5kcyhwYXJlbnQsIG5vZGUpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGluc2VydFRleHRCZWZvcmUocGFyZW50LCBuZXh0U2libGluZywgdGV4dCkge1xuICAgICAgICBsZXQgdGV4dE5vZGUgPSB0aGlzLmNyZWF0ZVRleHROb2RlKHRleHQpO1xuICAgICAgICB0aGlzLmluc2VydEJlZm9yZShwYXJlbnQsIHRleHROb2RlLCBuZXh0U2libGluZyk7XG4gICAgICAgIHJldHVybiB0ZXh0Tm9kZTtcbiAgICB9XG4gICAgaW5zZXJ0QmVmb3JlKGVsZW1lbnQsIG5vZGUsIHJlZmVyZW5jZSkge1xuICAgICAgICBlbGVtZW50Lmluc2VydEJlZm9yZShub2RlLCByZWZlcmVuY2UpO1xuICAgIH1cbiAgICBpbnNlcnRBZnRlcihlbGVtZW50LCBub2RlLCByZWZlcmVuY2UpIHtcbiAgICAgICAgdGhpcy5pbnNlcnRCZWZvcmUoZWxlbWVudCwgbm9kZSwgcmVmZXJlbmNlLm5leHRTaWJsaW5nKTtcbiAgICB9XG59XG5leHBvcnQgZnVuY3Rpb24gaW5zZXJ0SFRNTEJlZm9yZShfdXNlbGVzcywgX3BhcmVudCwgX25leHRTaWJsaW5nLCBodG1sKSB7XG4gICAgLy8gVHlwZVNjcmlwdCB2ZW5kb3JlZCBhbiBvbGQgdmVyc2lvbiBvZiB0aGUgRE9NIHNwZWMgd2hlcmUgYGluc2VydEFkamFjZW50SFRNTGBcbiAgICAvLyBvbmx5IGV4aXN0cyBvbiBgSFRNTEVsZW1lbnRgIGJ1dCBub3Qgb24gYEVsZW1lbnRgLiBXZSBhY3R1YWxseSB3b3JrIHdpdGggdGhlXG4gICAgLy8gbmV3ZXIgdmVyc2lvbiBvZiB0aGUgRE9NIEFQSSBoZXJlIChhbmQgbW9ua2V5LXBhdGNoIHRoaXMgbWV0aG9kIGluIGAuL2NvbXBhdGBcbiAgICAvLyB3aGVuIHdlIGRldGVjdCBvbGRlciBicm93c2VycykuIFRoaXMgaXMgYSBoYWNrIHRvIHdvcmsgYXJvdW5kIHRoaXMgbGltaXRhdGlvbi5cbiAgICBsZXQgcGFyZW50ID0gX3BhcmVudDtcbiAgICBsZXQgdXNlbGVzcyA9IF91c2VsZXNzO1xuICAgIGxldCBuZXh0U2libGluZyA9IF9uZXh0U2libGluZztcbiAgICBsZXQgcHJldiA9IG5leHRTaWJsaW5nID8gbmV4dFNpYmxpbmcucHJldmlvdXNTaWJsaW5nIDogcGFyZW50Lmxhc3RDaGlsZDtcbiAgICBsZXQgbGFzdDtcbiAgICBpZiAoaHRtbCA9PT0gbnVsbCB8fCBodG1sID09PSAnJykge1xuICAgICAgICByZXR1cm4gbmV3IENvbmNyZXRlQm91bmRzKHBhcmVudCwgbnVsbCwgbnVsbCk7XG4gICAgfVxuICAgIGlmIChuZXh0U2libGluZyA9PT0gbnVsbCkge1xuICAgICAgICBwYXJlbnQuaW5zZXJ0QWRqYWNlbnRIVE1MKCdiZWZvcmVFbmQnLCBodG1sKTtcbiAgICAgICAgbGFzdCA9IHBhcmVudC5sYXN0Q2hpbGQ7XG4gICAgfSBlbHNlIGlmIChuZXh0U2libGluZyBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KSB7XG4gICAgICAgIG5leHRTaWJsaW5nLmluc2VydEFkamFjZW50SFRNTCgnYmVmb3JlQmVnaW4nLCBodG1sKTtcbiAgICAgICAgbGFzdCA9IG5leHRTaWJsaW5nLnByZXZpb3VzU2libGluZztcbiAgICB9IGVsc2Uge1xuICAgICAgICAvLyBOb24tZWxlbWVudCBub2RlcyBkbyBub3Qgc3VwcG9ydCBpbnNlcnRBZGphY2VudEhUTUwsIHNvIGFkZCBhblxuICAgICAgICAvLyBlbGVtZW50IGFuZCBjYWxsIGl0IG9uIHRoYXQgZWxlbWVudC4gVGhlbiByZW1vdmUgdGhlIGVsZW1lbnQuXG4gICAgICAgIC8vXG4gICAgICAgIC8vIFRoaXMgYWxzbyBwcm90ZWN0cyBFZGdlLCBJRSBhbmQgRmlyZWZveCB3L28gdGhlIGluc3BlY3RvciBvcGVuXG4gICAgICAgIC8vIGZyb20gbWVyZ2luZyBhZGphY2VudCB0ZXh0IG5vZGVzLiBTZWUgLi9jb21wYXQvdGV4dC1ub2RlLW1lcmdpbmctZml4LnRzXG4gICAgICAgIHBhcmVudC5pbnNlcnRCZWZvcmUodXNlbGVzcywgbmV4dFNpYmxpbmcpO1xuICAgICAgICB1c2VsZXNzLmluc2VydEFkamFjZW50SFRNTCgnYmVmb3JlQmVnaW4nLCBodG1sKTtcbiAgICAgICAgbGFzdCA9IHVzZWxlc3MucHJldmlvdXNTaWJsaW5nO1xuICAgICAgICBwYXJlbnQucmVtb3ZlQ2hpbGQodXNlbGVzcyk7XG4gICAgfVxuICAgIGxldCBmaXJzdCA9IHByZXYgPyBwcmV2Lm5leHRTaWJsaW5nIDogcGFyZW50LmZpcnN0Q2hpbGQ7XG4gICAgcmV0dXJuIG5ldyBDb25jcmV0ZUJvdW5kcyhwYXJlbnQsIGZpcnN0LCBsYXN0KTtcbn1cbmZ1bmN0aW9uIGlzRG9jdW1lbnRGcmFnbWVudChub2RlKSB7XG4gICAgcmV0dXJuIG5vZGUubm9kZVR5cGUgPT09IE5vZGUuRE9DVU1FTlRfRlJBR01FTlRfTk9ERTtcbn1cbmxldCBoZWxwZXIgPSBET01DaGFuZ2VzO1xuaGVscGVyID0gZG9tQ2hhbmdlc05vZGVNZXJnaW5nRml4KGRvYywgaGVscGVyKTtcbmhlbHBlciA9IGRvbUNoYW5nZXNUYWJsZUVsZW1lbnRGaXgoZG9jLCBoZWxwZXIpO1xuaGVscGVyID0gZG9tQ2hhbmdlc1N2Z0VsZW1lbnRGaXgoZG9jLCBoZWxwZXIsIFNWR19OQU1FU1BBQ0UpO1xuZXhwb3J0IGRlZmF1bHQgaGVscGVyO1xuZXhwb3J0IGNvbnN0IERPTVRyZWVDb25zdHJ1Y3Rpb24gPSBET00uRE9NVHJlZUNvbnN0cnVjdGlvbjsiXX0=
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9kb20vaGVscGVyLmpzIl0sIm5hbWVzIjpbImlzV2hpdGVzcGFjZSIsIm1vdmVOb2Rlc0JlZm9yZSIsImluc2VydEhUTUxCZWZvcmUiLCJTVkdfTkFNRVNQQUNFIiwiU1ZHX0lOVEVHUkFUSU9OX1BPSU5UUyIsImZvcmVpZ25PYmplY3QiLCJkZXNjIiwidGl0bGUiLCJCTEFDS0xJU1RfVEFCTEUiLCJPYmplY3QiLCJjcmVhdGUiLCJmb3JFYWNoIiwidGFnIiwiV0hJVEVTUEFDRSIsImRvYyIsImRvY3VtZW50Iiwic3RyaW5nIiwidGVzdCIsInNvdXJjZSIsInRhcmdldCIsIm5leHRTaWJsaW5nIiwiZmlyc3QiLCJmaXJzdENoaWxkIiwibGFzdCIsImN1cnJlbnQiLCJpbnNlcnRCZWZvcmUiLCJET01PcGVyYXRpb25zIiwiY29uc3RydWN0b3IiLCJzZXR1cFVzZWxlc3NFbGVtZW50IiwidXNlbGVzc0VsZW1lbnQiLCJjcmVhdGVFbGVtZW50IiwiY29udGV4dCIsImlzRWxlbWVudEluU1ZHTmFtZXNwYWNlIiwiaXNIVE1MSW50ZWdyYXRpb25Qb2ludCIsIm5hbWVzcGFjZVVSSSIsInRhZ05hbWUiLCJFcnJvciIsImNyZWF0ZUVsZW1lbnROUyIsInBhcmVudCIsIm5vZGUiLCJyZWZlcmVuY2UiLCJfcGFyZW50IiwiaHRtbCIsImNyZWF0ZVRleHROb2RlIiwidGV4dCIsImNyZWF0ZUNvbW1lbnQiLCJkYXRhIiwiRE9NIiwiVHJlZUNvbnN0cnVjdGlvbiIsIm5hbWVzcGFjZSIsInNldEF0dHJpYnV0ZSIsImVsZW1lbnQiLCJuYW1lIiwidmFsdWUiLCJzZXRBdHRyaWJ1dGVOUyIsImFwcGxpZWRUcmVlQ29udHJ1Y3Rpb24iLCJET01UcmVlQ29uc3RydWN0aW9uIiwiRE9NQ2hhbmdlcyIsInJlbW92ZUF0dHJpYnV0ZSIsInJlbW92ZUF0dHJpYnV0ZU5TIiwiaW5zZXJ0Tm9kZUJlZm9yZSIsImlzRG9jdW1lbnRGcmFnbWVudCIsImxhc3RDaGlsZCIsImluc2VydFRleHRCZWZvcmUiLCJ0ZXh0Tm9kZSIsImluc2VydEFmdGVyIiwiX3VzZWxlc3MiLCJfbmV4dFNpYmxpbmciLCJ1c2VsZXNzIiwicHJldiIsInByZXZpb3VzU2libGluZyIsImluc2VydEFkamFjZW50SFRNTCIsIkhUTUxFbGVtZW50IiwicmVtb3ZlQ2hpbGQiLCJub2RlVHlwZSIsIk5vZGUiLCJET0NVTUVOVF9GUkFHTUVOVF9OT0RFIiwiaGVscGVyIl0sIm1hcHBpbmdzIjoiOzs7Ozs7UUFnQmdCQSxZLEdBQUFBLFk7UUFHQUMsZSxHQUFBQSxlO1FBb0hBQyxnQixHQUFBQSxnQjs7QUF2SWhCOztBQUNBOztBQUNBOztBQUNBOztBQUNPLE1BQU1DLHdDQUFnQiw0QkFBdEI7QUFDUDtBQUNBLE1BQU1DLHlCQUF5QixFQUFFQyxlQUFlLENBQWpCLEVBQW9CQyxNQUFNLENBQTFCLEVBQTZCQyxPQUFPLENBQXBDLEVBQS9CO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNPLE1BQU1DLDRDQUFrQkMsT0FBT0MsTUFBUCxDQUFjLElBQWQsQ0FBeEI7QUFDUCxDQUFDLEdBQUQsRUFBTSxLQUFOLEVBQWEsWUFBYixFQUEyQixNQUEzQixFQUFtQyxJQUFuQyxFQUF5QyxRQUF6QyxFQUFtRCxNQUFuRCxFQUEyRCxJQUEzRCxFQUFpRSxLQUFqRSxFQUF3RSxJQUF4RSxFQUE4RSxJQUE5RSxFQUFvRixJQUFwRixFQUEwRixPQUExRixFQUFtRyxJQUFuRyxFQUF5RyxJQUF6RyxFQUErRyxJQUEvRyxFQUFxSCxJQUFySCxFQUEySCxJQUEzSCxFQUFpSSxJQUFqSSxFQUF1SSxNQUF2SSxFQUErSSxJQUEvSSxFQUFxSixHQUFySixFQUEwSixLQUExSixFQUFpSyxJQUFqSyxFQUF1SyxTQUF2SyxFQUFrTCxNQUFsTCxFQUEwTCxNQUExTCxFQUFrTSxNQUFsTSxFQUEwTSxJQUExTSxFQUFnTixHQUFoTixFQUFxTixLQUFyTixFQUE0TixNQUE1TixFQUFvTyxHQUFwTyxFQUF5TyxPQUF6TyxFQUFrUCxNQUFsUCxFQUEw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QyxPQUFwQixFQUE2QmhELFdBQTdCO0FBQ0FnRCxnQkFBUUcsa0JBQVIsQ0FBMkIsYUFBM0IsRUFBMEM3QixJQUExQztBQUNBbkIsZUFBTzZDLFFBQVFFLGVBQWY7QUFDQWhDLGVBQU9tQyxXQUFQLENBQW1CTCxPQUFuQjtBQUNIO0FBQ0QsUUFBSS9DLFFBQVFnRCxPQUFPQSxLQUFLakQsV0FBWixHQUEwQmtCLE9BQU9oQixVQUE3QztBQUNBLFdBQU8sMkJBQW1CZ0IsTUFBbkIsRUFBMkJqQixLQUEzQixFQUFrQ0UsSUFBbEMsQ0FBUDtBQUNIO0FBQ0QsU0FBU3NDLGtCQUFULENBQTRCdEIsSUFBNUIsRUFBa0M7QUFDOUIsV0FBT0EsS0FBS21DLFFBQUwsS0FBa0JDLEtBQUtDLHNCQUE5QjtBQUNIO0FBQ0QsSUFBSUMsU0FBU3BCLFVBQWI7QUFDQW9CLFNBQVMsb0NBQXlCL0QsR0FBekIsRUFBOEIrRCxNQUE5QixDQUFUO0FBQ0FBLFNBQVMsOEJBQTBCL0QsR0FBMUIsRUFBK0IrRCxNQUEvQixDQUFUO0FBQ0FBLFNBQVMsaUNBQXdCL0QsR0FBeEIsRUFBNkIrRCxNQUE3QixFQUFxQzFFLGFBQXJDLENBQVQ7a0JBQ2UwRSxNO0FBQ1IsTUFBTXJCLG9EQUFzQlQsSUFBSVMsbUJBQWhDIiwiZmlsZSI6ImxpYi9kb20vaGVscGVyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29uY3JldGVCb3VuZHMsIFNpbmdsZU5vZGVCb3VuZHMgfSBmcm9tICcuLi9ib3VuZHMnO1xuaW1wb3J0IHsgZG9tQ2hhbmdlcyBhcyBkb21DaGFuZ2VzVGFibGVFbGVtZW50Rml4LCB0cmVlQ29uc3RydWN0aW9uIGFzIHRyZWVDb25zdHJ1Y3Rpb25UYWJsZUVsZW1lbnRGaXggfSBmcm9tICcuLi9jb21wYXQvaW5uZXItaHRtbC1maXgnO1xuaW1wb3J0IHsgZG9tQ2hhbmdlcyBhcyBkb21DaGFuZ2VzU3ZnRWxlbWVudEZpeCwgdHJlZUNvbnN0cnVjdGlvbiBhcyB0cmVlQ29uc3RydWN0aW9uU3ZnRWxlbWVudEZpeCB9IGZyb20gJy4uL2NvbXBhdC9zdmctaW5uZXItaHRtbC1maXgnO1xuaW1wb3J0IHsgZG9tQ2hhbmdlcyBhcyBkb21DaGFuZ2VzTm9kZU1lcmdpbmdGaXgsIHRyZWVDb25zdHJ1Y3Rpb24gYXMgdHJlZUNvbnN0cnVjdGlvbk5vZGVNZXJnaW5nRml4IH0gZnJvbSAnLi4vY29tcGF0L3RleHQtbm9kZS1tZXJnaW5nLWZpeCc7XG5leHBvcnQgY29uc3QgU1ZHX05BTUVTUEFDRSA9ICdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zyc7XG4vLyBodHRwOi8vd3d3LnczLm9yZy9UUi9odG1sL3N5bnRheC5odG1sI2h0bWwtaW50ZWdyYXRpb24tcG9pbnRcbmNvbnN0IFNWR19JTlRFR1JBVElPTl9QT0lOVFMgPSB7IGZvcmVpZ25PYmplY3Q6IDEsIGRlc2M6IDEsIHRpdGxlOiAxIH07XG4vLyBodHRwOi8vd3d3LnczLm9yZy9UUi9odG1sL3N5bnRheC5odG1sI2FkanVzdC1zdmctYXR0cmlidXRlc1xuLy8gVE9ETzogQWRqdXN0IFNWRyBhdHRyaWJ1dGVzXG4vLyBodHRwOi8vd3d3LnczLm9yZy9UUi9odG1sL3N5bnRheC5odG1sI3BhcnNpbmctbWFpbi1pbmZvcmVpZ25cbi8vIFRPRE86IEFkanVzdCBTVkcgZWxlbWVudHNcbi8vIGh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWwvc3ludGF4Lmh0bWwjcGFyc2luZy1tYWluLWluZm9yZWlnblxuZXhwb3J0IGNvbnN0IEJMQUNLTElTVF9UQUJMRSA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG5bXCJiXCIsIFwiYmlnXCIsIFwiYmxvY2txdW90ZVwiLCBcImJvZHlcIiwgXCJiclwiLCBcImNlbnRlclwiLCBcImNvZGVcIiwgXCJkZFwiLCBcImRpdlwiLCBcImRsXCIsIFwiZHRcIiwgXCJlbVwiLCBcImVtYmVkXCIsIFwiaDFcIiwgXCJoMlwiLCBcImgzXCIsIFwiaDRcIiwgXCJoNVwiLCBcImg2XCIsIFwiaGVhZFwiLCBcImhyXCIsIFwiaVwiLCBcImltZ1wiLCBcImxpXCIsIFwibGlzdGluZ1wiLCBcIm1haW5cIiwgXCJtZXRhXCIsIFwibm9iclwiLCBcIm9sXCIsIFwicFwiLCBcInByZVwiLCBcInJ1YnlcIiwgXCJzXCIsIFwic21hbGxcIiwgXCJzcGFuXCIsIFwic3Ryb25nXCIsIFwic3RyaWtlXCIsIFwic3ViXCIsIFwic3VwXCIsIFwidGFibGVcIiwgXCJ0dFwiLCBcInVcIiwgXCJ1bFwiLCBcInZhclwiXS5mb3JFYWNoKHRhZyA9PiBCTEFDS0xJU1RfVEFCTEVbdGFnXSA9IDEpO1xuY29uc3QgV0hJVEVTUEFDRSA9IC9bXFx0LVxcciBcXHhBMFxcdTE2ODBcXHUxODBFXFx1MjAwMC1cXHUyMDBBXFx1MjAyOFxcdTIwMjlcXHUyMDJGXFx1MjA1RlxcdTMwMDBcXHVGRUZGXS87XG5sZXQgZG9jID0gdHlwZW9mIGRvY3VtZW50ID09PSAndW5kZWZpbmVkJyA/IG51bGwgOiBkb2N1bWVudDtcbmV4cG9ydCBmdW5jdGlvbiBpc1doaXRlc3BhY2Uoc3RyaW5nKSB7XG4gICAgcmV0dXJuIFdISVRFU1BBQ0UudGVzdChzdHJpbmcpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIG1vdmVOb2Rlc0JlZm9yZShzb3VyY2UsIHRhcmdldCwgbmV4dFNpYmxpbmcpIHtcbiAgICBsZXQgZmlyc3QgPSBzb3VyY2UuZmlyc3RDaGlsZDtcbiAgICBsZXQgbGFzdCA9IG51bGw7XG4gICAgbGV0IGN1cnJlbnQgPSBmaXJzdDtcbiAgICB3aGlsZSAoY3VycmVudCkge1xuICAgICAgICBsYXN0ID0gY3VycmVudDtcbiAgICAgICAgY3VycmVudCA9IGN1cnJlbnQubmV4dFNpYmxpbmc7XG4gICAgICAgIHRhcmdldC5pbnNlcnRCZWZvcmUobGFzdCwgbmV4dFNpYmxpbmcpO1xuICAgIH1cbiAgICByZXR1cm4gW2ZpcnN0LCBsYXN0XTtcbn1cbmV4cG9ydCBjbGFzcyBET01PcGVyYXRpb25zIHtcbiAgICBjb25zdHJ1Y3Rvcihkb2N1bWVudCkge1xuICAgICAgICB0aGlzLmRvY3VtZW50ID0gZG9jdW1lbnQ7XG4gICAgICAgIHRoaXMuc2V0dXBVc2VsZXNzRWxlbWVudCgpO1xuICAgIH1cbiAgICAvLyBzcGxpdCBpbnRvIHNlcGVyYXRlIG1ldGhvZCBzbyB0aGF0IE5vZGVET01UcmVlQ29uc3RydWN0aW9uXG4gICAgLy8gY2FuIG92ZXJyaWRlIGl0LlxuICAgIHNldHVwVXNlbGVzc0VsZW1lbnQoKSB7XG4gICAgICAgIHRoaXMudXNlbGVzc0VsZW1lbnQgPSB0aGlzLmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgIH1cbiAgICBjcmVhdGVFbGVtZW50KHRhZywgY29udGV4dCkge1xuICAgICAgICBsZXQgaXNFbGVtZW50SW5TVkdOYW1lc3BhY2UsIGlzSFRNTEludGVncmF0aW9uUG9pbnQ7XG4gICAgICAgIGlmIChjb250ZXh0KSB7XG4gICAgICAgICAgICBpc0VsZW1lbnRJblNWR05hbWVzcGFjZSA9IGNvbnRleHQubmFtZXNwYWNlVVJJID09PSBTVkdfTkFNRVNQQUNFIHx8IHRhZyA9PT0gJ3N2Zyc7XG4gICAgICAgICAgICBpc0hUTUxJbnRlZ3JhdGlvblBvaW50ID0gU1ZHX0lOVEVHUkFUSU9OX1BPSU5UU1tjb250ZXh0LnRhZ05hbWVdO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaXNFbGVtZW50SW5TVkdOYW1lc3BhY2UgPSB0YWcgPT09ICdzdmcnO1xuICAgICAgICAgICAgaXNIVE1MSW50ZWdyYXRpb25Qb2ludCA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpc0VsZW1lbnRJblNWR05hbWVzcGFjZSAmJiAhaXNIVE1MSW50ZWdyYXRpb25Qb2ludCkge1xuICAgICAgICAgICAgLy8gRklYTUU6IFRoaXMgZG9lcyBub3QgcHJvcGVybHkgaGFuZGxlIDxmb250PiB3aXRoIGNvbG9yLCBmYWNlLCBvclxuICAgICAgICAgICAgLy8gc2l6ZSBhdHRyaWJ1dGVzLCB3aGljaCBpcyBhbHNvIGRpc2FsbG93ZWQgYnkgdGhlIHNwZWMuIFdlIHNob3VsZCBmaXhcbiAgICAgICAgICAgIC8vIHRoaXMuXG4gICAgICAgICAgICBpZiAoQkxBQ0tMSVNUX1RBQkxFW3RhZ10pIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYENhbm5vdCBjcmVhdGUgYSAke3RhZ30gaW5zaWRlIGFuIFNWRyBjb250ZXh0YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoU1ZHX05BTUVTUEFDRSwgdGFnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGFnKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBpbnNlcnRCZWZvcmUocGFyZW50LCBub2RlLCByZWZlcmVuY2UpIHtcbiAgICAgICAgcGFyZW50Lmluc2VydEJlZm9yZShub2RlLCByZWZlcmVuY2UpO1xuICAgIH1cbiAgICBpbnNlcnRIVE1MQmVmb3JlKF9wYXJlbnQsIG5leHRTaWJsaW5nLCBodG1sKSB7XG4gICAgICAgIHJldHVybiBpbnNlcnRIVE1MQmVmb3JlKHRoaXMudXNlbGVzc0VsZW1lbnQsIF9wYXJlbnQsIG5leHRTaWJsaW5nLCBodG1sKTtcbiAgICB9XG4gICAgY3JlYXRlVGV4dE5vZGUodGV4dCkge1xuICAgICAgICByZXR1cm4gdGhpcy5kb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSh0ZXh0KTtcbiAgICB9XG4gICAgY3JlYXRlQ29tbWVudChkYXRhKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmRvY3VtZW50LmNyZWF0ZUNvbW1lbnQoZGF0YSk7XG4gICAgfVxufVxuZXhwb3J0IHZhciBET007XG4oZnVuY3Rpb24gKERPTSkge1xuICAgIGNsYXNzIFRyZWVDb25zdHJ1Y3Rpb24gZXh0ZW5kcyBET01PcGVyYXRpb25zIHtcbiAgICAgICAgY3JlYXRlRWxlbWVudE5TKG5hbWVzcGFjZSwgdGFnKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMobmFtZXNwYWNlLCB0YWcpO1xuICAgICAgICB9XG4gICAgICAgIHNldEF0dHJpYnV0ZShlbGVtZW50LCBuYW1lLCB2YWx1ZSwgbmFtZXNwYWNlKSB7XG4gICAgICAgICAgICBpZiAobmFtZXNwYWNlKSB7XG4gICAgICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGVOUyhuYW1lc3BhY2UsIG5hbWUsIHZhbHVlKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUobmFtZSwgdmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIERPTS5UcmVlQ29uc3RydWN0aW9uID0gVHJlZUNvbnN0cnVjdGlvbjtcbiAgICBsZXQgYXBwbGllZFRyZWVDb250cnVjdGlvbiA9IFRyZWVDb25zdHJ1Y3Rpb247XG4gICAgYXBwbGllZFRyZWVDb250cnVjdGlvbiA9IHRyZWVDb25zdHJ1Y3Rpb25Ob2RlTWVyZ2luZ0ZpeChkb2MsIGFwcGxpZWRUcmVlQ29udHJ1Y3Rpb24pO1xuICAgIGFwcGxpZWRUcmVlQ29udHJ1Y3Rpb24gPSB0cmVlQ29uc3RydWN0aW9uVGFibGVFbGVtZW50Rml4KGRvYywgYXBwbGllZFRyZWVDb250cnVjdGlvbik7XG4gICAgYXBwbGllZFRyZWVDb250cnVjdGlvbiA9IHRyZWVDb25zdHJ1Y3Rpb25TdmdFbGVtZW50Rml4KGRvYywgYXBwbGllZFRyZWVDb250cnVjdGlvbiwgU1ZHX05BTUVTUEFDRSk7XG4gICAgRE9NLkRPTVRyZWVDb25zdHJ1Y3Rpb24gPSBhcHBsaWVkVHJlZUNvbnRydWN0aW9uO1xufSkoRE9NIHx8IChET00gPSB7fSkpO1xuZXhwb3J0IGNsYXNzIERPTUNoYW5nZXMgZXh0ZW5kcyBET01PcGVyYXRpb25zIHtcbiAgICBjb25zdHJ1Y3Rvcihkb2N1bWVudCkge1xuICAgICAgICBzdXBlcihkb2N1bWVudCk7XG4gICAgICAgIHRoaXMuZG9jdW1lbnQgPSBkb2N1bWVudDtcbiAgICAgICAgdGhpcy5uYW1lc3BhY2UgPSBudWxsO1xuICAgIH1cbiAgICBzZXRBdHRyaWJ1dGUoZWxlbWVudCwgbmFtZSwgdmFsdWUpIHtcbiAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUobmFtZSwgdmFsdWUpO1xuICAgIH1cbiAgICBzZXRBdHRyaWJ1dGVOUyhlbGVtZW50LCBuYW1lc3BhY2UsIG5hbWUsIHZhbHVlKSB7XG4gICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlTlMobmFtZXNwYWNlLCBuYW1lLCB2YWx1ZSk7XG4gICAgfVxuICAgIHJlbW92ZUF0dHJpYnV0ZShlbGVtZW50LCBuYW1lKSB7XG4gICAgICAgIGVsZW1lbnQucmVtb3ZlQXR0cmlidXRlKG5hbWUpO1xuICAgIH1cbiAgICByZW1vdmVBdHRyaWJ1dGVOUyhlbGVtZW50LCBuYW1lc3BhY2UsIG5hbWUpIHtcbiAgICAgICAgZWxlbWVudC5yZW1vdmVBdHRyaWJ1dGVOUyhuYW1lc3BhY2UsIG5hbWUpO1xuICAgIH1cbiAgICBpbnNlcnROb2RlQmVmb3JlKHBhcmVudCwgbm9kZSwgcmVmZXJlbmNlKSB7XG4gICAgICAgIGlmIChpc0RvY3VtZW50RnJhZ21lbnQobm9kZSkpIHtcbiAgICAgICAgICAgIGxldCB7IGZpcnN0Q2hpbGQsIGxhc3RDaGlsZCB9ID0gbm9kZTtcbiAgICAgICAgICAgIHRoaXMuaW5zZXJ0QmVmb3JlKHBhcmVudCwgbm9kZSwgcmVmZXJlbmNlKTtcbiAgICAgICAgICAgIHJldHVybiBuZXcgQ29uY3JldGVCb3VuZHMocGFyZW50LCBmaXJzdENoaWxkLCBsYXN0Q2hpbGQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5pbnNlcnRCZWZvcmUocGFyZW50LCBub2RlLCByZWZlcmVuY2UpO1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBTaW5nbGVOb2RlQm91bmRzKHBhcmVudCwgbm9kZSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaW5zZXJ0VGV4dEJlZm9yZShwYXJlbnQsIG5leHRTaWJsaW5nLCB0ZXh0KSB7XG4gICAgICAgIGxldCB0ZXh0Tm9kZSA9IHRoaXMuY3JlYXRlVGV4dE5vZGUodGV4dCk7XG4gICAgICAgIHRoaXMuaW5zZXJ0QmVmb3JlKHBhcmVudCwgdGV4dE5vZGUsIG5leHRTaWJsaW5nKTtcbiAgICAgICAgcmV0dXJuIHRleHROb2RlO1xuICAgIH1cbiAgICBpbnNlcnRCZWZvcmUoZWxlbWVudCwgbm9kZSwgcmVmZXJlbmNlKSB7XG4gICAgICAgIGVsZW1lbnQuaW5zZXJ0QmVmb3JlKG5vZGUsIHJlZmVyZW5jZSk7XG4gICAgfVxuICAgIGluc2VydEFmdGVyKGVsZW1lbnQsIG5vZGUsIHJlZmVyZW5jZSkge1xuICAgICAgICB0aGlzLmluc2VydEJlZm9yZShlbGVtZW50LCBub2RlLCByZWZlcmVuY2UubmV4dFNpYmxpbmcpO1xuICAgIH1cbn1cbmV4cG9ydCBmdW5jdGlvbiBpbnNlcnRIVE1MQmVmb3JlKF91c2VsZXNzLCBfcGFyZW50LCBfbmV4dFNpYmxpbmcsIGh0bWwpIHtcbiAgICAvLyBUeXBlU2NyaXB0IHZlbmRvcmVkIGFuIG9sZCB2ZXJzaW9uIG9mIHRoZSBET00gc3BlYyB3aGVyZSBgaW5zZXJ0QWRqYWNlbnRIVE1MYFxuICAgIC8vIG9ubHkgZXhpc3RzIG9uIGBIVE1MRWxlbWVudGAgYnV0IG5vdCBvbiBgRWxlbWVudGAuIFdlIGFjdHVhbGx5IHdvcmsgd2l0aCB0aGVcbiAgICAvLyBuZXdlciB2ZXJzaW9uIG9mIHRoZSBET00gQVBJIGhlcmUgKGFuZCBtb25rZXktcGF0Y2ggdGhpcyBtZXRob2QgaW4gYC4vY29tcGF0YFxuICAgIC8vIHdoZW4gd2UgZGV0ZWN0IG9sZGVyIGJyb3dzZXJzKS4gVGhpcyBpcyBhIGhhY2sgdG8gd29yayBhcm91bmQgdGhpcyBsaW1pdGF0aW9uLlxuICAgIGxldCBwYXJlbnQgPSBfcGFyZW50O1xuICAgIGxldCB1c2VsZXNzID0gX3VzZWxlc3M7XG4gICAgbGV0IG5leHRTaWJsaW5nID0gX25leHRTaWJsaW5nO1xuICAgIGxldCBwcmV2ID0gbmV4dFNpYmxpbmcgPyBuZXh0U2libGluZy5wcmV2aW91c1NpYmxpbmcgOiBwYXJlbnQubGFzdENoaWxkO1xuICAgIGxldCBsYXN0O1xuICAgIGlmIChodG1sID09PSBudWxsIHx8IGh0bWwgPT09ICcnKSB7XG4gICAgICAgIHJldHVybiBuZXcgQ29uY3JldGVCb3VuZHMocGFyZW50LCBudWxsLCBudWxsKTtcbiAgICB9XG4gICAgaWYgKG5leHRTaWJsaW5nID09PSBudWxsKSB7XG4gICAgICAgIHBhcmVudC5pbnNlcnRBZGphY2VudEhUTUwoJ2JlZm9yZUVuZCcsIGh0bWwpO1xuICAgICAgICBsYXN0ID0gcGFyZW50Lmxhc3RDaGlsZDtcbiAgICB9IGVsc2UgaWYgKG5leHRTaWJsaW5nIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpIHtcbiAgICAgICAgbmV4dFNpYmxpbmcuaW5zZXJ0QWRqYWNlbnRIVE1MKCdiZWZvcmVCZWdpbicsIGh0bWwpO1xuICAgICAgICBsYXN0ID0gbmV4dFNpYmxpbmcucHJldmlvdXNTaWJsaW5nO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIE5vbi1lbGVtZW50IG5vZGVzIGRvIG5vdCBzdXBwb3J0IGluc2VydEFkamFjZW50SFRNTCwgc28gYWRkIGFuXG4gICAgICAgIC8vIGVsZW1lbnQgYW5kIGNhbGwgaXQgb24gdGhhdCBlbGVtZW50LiBUaGVuIHJlbW92ZSB0aGUgZWxlbWVudC5cbiAgICAgICAgLy9cbiAgICAgICAgLy8gVGhpcyBhbHNvIHByb3RlY3RzIEVkZ2UsIElFIGFuZCBGaXJlZm94IHcvbyB0aGUgaW5zcGVjdG9yIG9wZW5cbiAgICAgICAgLy8gZnJvbSBtZXJnaW5nIGFkamFjZW50IHRleHQgbm9kZXMuIFNlZSAuL2NvbXBhdC90ZXh0LW5vZGUtbWVyZ2luZy1maXgudHNcbiAgICAgICAgcGFyZW50Lmluc2VydEJlZm9yZSh1c2VsZXNzLCBuZXh0U2libGluZyk7XG4gICAgICAgIHVzZWxlc3MuaW5zZXJ0QWRqYWNlbnRIVE1MKCdiZWZvcmVCZWdpbicsIGh0bWwpO1xuICAgICAgICBsYXN0ID0gdXNlbGVzcy5wcmV2aW91c1NpYmxpbmc7XG4gICAgICAgIHBhcmVudC5yZW1vdmVDaGlsZCh1c2VsZXNzKTtcbiAgICB9XG4gICAgbGV0IGZpcnN0ID0gcHJldiA/IHByZXYubmV4dFNpYmxpbmcgOiBwYXJlbnQuZmlyc3RDaGlsZDtcbiAgICByZXR1cm4gbmV3IENvbmNyZXRlQm91bmRzKHBhcmVudCwgZmlyc3QsIGxhc3QpO1xufVxuZnVuY3Rpb24gaXNEb2N1bWVudEZyYWdtZW50KG5vZGUpIHtcbiAgICByZXR1cm4gbm9kZS5ub2RlVHlwZSA9PT0gTm9kZS5ET0NVTUVOVF9GUkFHTUVOVF9OT0RFO1xufVxubGV0IGhlbHBlciA9IERPTUNoYW5nZXM7XG5oZWxwZXIgPSBkb21DaGFuZ2VzTm9kZU1lcmdpbmdGaXgoZG9jLCBoZWxwZXIpO1xuaGVscGVyID0gZG9tQ2hhbmdlc1RhYmxlRWxlbWVudEZpeChkb2MsIGhlbHBlcik7XG5oZWxwZXIgPSBkb21DaGFuZ2VzU3ZnRWxlbWVudEZpeChkb2MsIGhlbHBlciwgU1ZHX05BTUVTUEFDRSk7XG5leHBvcnQgZGVmYXVsdCBoZWxwZXI7XG5leHBvcnQgY29uc3QgRE9NVHJlZUNvbnN0cnVjdGlvbiA9IERPTS5ET01UcmVlQ29uc3RydWN0aW9uOyJdfQ==

@@ -80,5 +80,12 @@ "use strict";

this.document = document;
this.uselessElement = this.document.createElement('div');
this.setupUselessElement();
}
// split into seperate method so that NodeDOMTreeConstruction
// can override it.
DOMOperations.prototype.setupUselessElement = function setupUselessElement() {
this.uselessElement = this.document.createElement('div');
};
DOMOperations.prototype.createElement = function createElement(tag, context) {

@@ -258,2 +265,2 @@ var isElementInSVGNamespace = void 0,

var DOMTreeConstruction = exports.DOMTreeConstruction = DOM.DOMTreeConstruction;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9kb20vaGVscGVyLmpzIl0sIm5hbWVzIjpbIkNvbmNyZXRlQm91bmRzIiwiU2luZ2xlTm9kZUJvdW5kcyIsImRvbUNoYW5nZXMiLCJkb21DaGFuZ2VzVGFibGVFbGVtZW50Rml4IiwidHJlZUNvbnN0cnVjdGlvbiIsInRyZWVDb25zdHJ1Y3Rpb25UYWJsZUVsZW1lbnRGaXgiLCJkb21DaGFuZ2VzU3ZnRWxlbWVudEZpeCIsInRyZWVDb25zdHJ1Y3Rpb25TdmdFbGVtZW50Rml4IiwiZG9tQ2hhbmdlc05vZGVNZXJnaW5nRml4IiwidHJlZUNvbnN0cnVjdGlvbk5vZGVNZXJnaW5nRml4IiwiU1ZHX05BTUVTUEFDRSIsIlNWR19JTlRFR1JBVElPTl9QT0lOVFMiLCJmb3JlaWduT2JqZWN0IiwiZGVzYyIsInRpdGxlIiwiQkxBQ0tMSVNUX1RBQkxFIiwiT2JqZWN0IiwiY3JlYXRlIiwiZm9yRWFjaCIsInRhZyIsIldISVRFU1BBQ0UiLCJkb2MiLCJkb2N1bWVudCIsImlzV2hpdGVzcGFjZSIsInN0cmluZyIsInRlc3QiLCJtb3ZlTm9kZXNCZWZvcmUiLCJzb3VyY2UiLCJ0YXJnZXQiLCJuZXh0U2libGluZyIsImZpcnN0IiwiZmlyc3RDaGlsZCIsImxhc3QiLCJjdXJyZW50IiwiaW5zZXJ0QmVmb3JlIiwiRE9NT3BlcmF0aW9ucyIsInVzZWxlc3NFbGVtZW50IiwiY3JlYXRlRWxlbWVudCIsImNvbnRleHQiLCJpc0VsZW1lbnRJblNWR05hbWVzcGFjZSIsImlzSFRNTEludGVncmF0aW9uUG9pbnQiLCJuYW1lc3BhY2VVUkkiLCJ0YWdOYW1lIiwiRXJyb3IiLCJjcmVhdGVFbGVtZW50TlMiLCJwYXJlbnQiLCJub2RlIiwicmVmZXJlbmNlIiwiaW5zZXJ0SFRNTEJlZm9yZSIsIl9wYXJlbnQiLCJodG1sIiwiY3JlYXRlVGV4dE5vZGUiLCJ0ZXh0IiwiY3JlYXRlQ29tbWVudCIsImRhdGEiLCJET00iLCJUcmVlQ29uc3RydWN0aW9uIiwibmFtZXNwYWNlIiwic2V0QXR0cmlidXRlIiwiZWxlbWVudCIsIm5hbWUiLCJ2YWx1ZSIsInNldEF0dHJpYnV0ZU5TIiwiYXBwbGllZFRyZWVDb250cnVjdGlvbiIsIkRPTVRyZWVDb25zdHJ1Y3Rpb24iLCJET01DaGFuZ2VzIiwicmVtb3ZlQXR0cmlidXRlIiwicmVtb3ZlQXR0cmlidXRlTlMiLCJpbnNlcnROb2RlQmVmb3JlIiwiaXNEb2N1bWVudEZyYWdtZW50IiwibGFzdENoaWxkIiwiaW5zZXJ0VGV4dEJlZm9yZSIsInRleHROb2RlIiwiaW5zZXJ0QWZ0ZXIiLCJfdXNlbGVzcyIsIl9uZXh0U2libGluZyIsInVzZWxlc3MiLCJwcmV2IiwicHJldmlvdXNTaWJsaW5nIiwiaW5zZXJ0QWRqYWNlbnRIVE1MIiwiSFRNTEVsZW1lbnQiLCJyZW1vdmVDaGlsZCIsIm5vZGVUeXBlIiwiTm9kZSIsIkRPQ1VNRU5UX0ZSQUdNRU5UX05PREUiLCJoZWxwZXIiXSwibWFwcGluZ3MiOiI7Ozs7OztRQWdCTyxBQUFTO1FBR1QsQUFBUzs7QUFuQmhCLEFBQVMsQUFBZ0IsQUFBd0I7O0FBQ2pELEFBQVMsQUFBYyxBQUEyQixBQUFvQixBQUF1Qzs7QUFDN0csQUFBUyxBQUFjLEFBQXlCLEFBQW9CLEFBQXFDOztBQUN6RyxBQUFTLEFBQWMsQUFBMEIsQUFBb0IsQUFBc0MsQUFDM0c7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBTyxJQUFNLHdDQUFOLEFBQXNCO0FBQzdCO0FBQ0EsSUFBTSx5QkFBeUIsRUFBRSxlQUFGLEFBQWlCLEdBQUcsTUFBcEIsQUFBMEIsR0FBRyxPQUE1RCxBQUErQixBQUFvQztBQUNuRTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEFBQ0E7QUFBTyxJQUFNLDRDQUFrQixPQUFBLEFBQU8sT0FBL0IsQUFBd0IsQUFBYztBQUM3QyxDQUFBLEFBQUMsS0FBRCxBQUFNLE9BQU4sQUFBYSxjQUFiLEFBQTJCLFFBQTNCLEFBQW1DLE1BQW5DLEFBQXlDLFVBQXpDLEFBQW1ELFFBQW5ELEFBQTJELE1BQTNELEFBQWlF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LEFBQ2pCO0FBSEQsZUFHVyx1QkFBSixBQUEyQixhQUFhLEFBQzNDO29CQUFBLEFBQVksbUJBQVosQUFBK0IsZUFBL0IsQUFBOEMsQUFDOUM7ZUFBTyxZQUFQLEFBQW1CLEFBQ3RCO0FBSE0sS0FBQSxNQUdBLEFBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO2VBQUEsQUFBTyxhQUFQLEFBQW9CLFNBQXBCLEFBQTZCLEFBQzdCO2dCQUFBLEFBQVEsbUJBQVIsQUFBMkIsZUFBM0IsQUFBMEMsQUFDMUM7ZUFBTyxRQUFQLEFBQWUsQUFDZjtlQUFBLEFBQU8sWUFBUCxBQUFtQixBQUN0QjtBQUNEO1FBQUksUUFBUSxPQUFPLEtBQVAsQUFBWSxjQUFjLE9BQXRDLEFBQTZDLEFBQzdDO1dBQU8sQUFBSSwyQkFBSixBQUFtQixRQUFuQixBQUEyQixPQUFsQyxBQUFPLEFBQWtDLEFBQzVDOztBQUNELFNBQUEsQUFBUyxtQkFBVCxBQUE0QixNQUFNLEFBQzlCO1dBQU8sS0FBQSxBQUFLLGFBQWEsS0FBekIsQUFBOEIsQUFDakM7O0FBQ0QsSUFBSSxTQUFKLEFBQWE7QUFDYixTQUFTLG9DQUFBLEFBQXlCLEtBQWxDLEFBQVMsQUFBOEI7QUFDdkMsU0FBUyw4QkFBQSxBQUEwQixLQUFuQyxBQUFTLEFBQStCO0FBQ3hDLFNBQVMsaUNBQUEsQUFBd0IsS0FBeEIsQUFBNkIsUUFBdEMsQUFBUyxBQUFxQyxBQUM5QztrQkFBQSxBQUFlLEFBQ2Y7QUFBTyxJQUFNLG9EQUFzQixJQUE1QixBQUFnQyIsImZpbGUiOiJsaWIvZG9tL2hlbHBlci5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbmNyZXRlQm91bmRzLCBTaW5nbGVOb2RlQm91bmRzIH0gZnJvbSAnLi4vYm91bmRzJztcbmltcG9ydCB7IGRvbUNoYW5nZXMgYXMgZG9tQ2hhbmdlc1RhYmxlRWxlbWVudEZpeCwgdHJlZUNvbnN0cnVjdGlvbiBhcyB0cmVlQ29uc3RydWN0aW9uVGFibGVFbGVtZW50Rml4IH0gZnJvbSAnLi4vY29tcGF0L2lubmVyLWh0bWwtZml4JztcbmltcG9ydCB7IGRvbUNoYW5nZXMgYXMgZG9tQ2hhbmdlc1N2Z0VsZW1lbnRGaXgsIHRyZWVDb25zdHJ1Y3Rpb24gYXMgdHJlZUNvbnN0cnVjdGlvblN2Z0VsZW1lbnRGaXggfSBmcm9tICcuLi9jb21wYXQvc3ZnLWlubmVyLWh0bWwtZml4JztcbmltcG9ydCB7IGRvbUNoYW5nZXMgYXMgZG9tQ2hhbmdlc05vZGVNZXJnaW5nRml4LCB0cmVlQ29uc3RydWN0aW9uIGFzIHRyZWVDb25zdHJ1Y3Rpb25Ob2RlTWVyZ2luZ0ZpeCB9IGZyb20gJy4uL2NvbXBhdC90ZXh0LW5vZGUtbWVyZ2luZy1maXgnO1xuZXhwb3J0IGNvbnN0IFNWR19OQU1FU1BBQ0UgPSAnaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnO1xuLy8gaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbC9zeW50YXguaHRtbCNodG1sLWludGVncmF0aW9uLXBvaW50XG5jb25zdCBTVkdfSU5URUdSQVRJT05fUE9JTlRTID0geyBmb3JlaWduT2JqZWN0OiAxLCBkZXNjOiAxLCB0aXRsZTogMSB9O1xuLy8gaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbC9zeW50YXguaHRtbCNhZGp1c3Qtc3ZnLWF0dHJpYnV0ZXNcbi8vIFRPRE86IEFkanVzdCBTVkcgYXR0cmlidXRlc1xuLy8gaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbC9zeW50YXguaHRtbCNwYXJzaW5nLW1haW4taW5mb3JlaWduXG4vLyBUT0RPOiBBZGp1c3QgU1ZHIGVsZW1lbnRzXG4vLyBodHRwOi8vd3d3LnczLm9yZy9UUi9odG1sL3N5bnRheC5odG1sI3BhcnNpbmctbWFpbi1pbmZvcmVpZ25cbmV4cG9ydCBjb25zdCBCTEFDS0xJU1RfVEFCTEUgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuW1wiYlwiLCBcImJpZ1wiLCBcImJsb2NrcXVvdGVcIiwgXCJib2R5XCIsIFwiYnJcIiwgXCJjZW50ZXJcIiwgXCJjb2RlXCIsIFwiZGRcIiwgXCJkaXZcIiwgXCJkbFwiLCBcImR0XCIsIFwiZW1cIiwgXCJlbWJlZFwiLCBcImgxXCIsIFwiaDJcIiwgXCJoM1wiLCBcImg0XCIsIFwiaDVcIiwgXCJoNlwiLCBcImhlYWRcIiwgXCJoclwiLCBcImlcIiwgXCJpbWdcIiwgXCJsaVwiLCBcImxpc3RpbmdcIiwgXCJtYWluXCIsIFwibWV0YVwiLCBcIm5vYnJcIiwgXCJvbFwiLCBcInBcIiwgXCJwcmVcIiwgXCJydWJ5XCIsIFwic1wiLCBcInNtYWxsXCIsIFwic3BhblwiLCBcInN0cm9uZ1wiLCBcInN0cmlrZVwiLCBcInN1YlwiLCBcInN1cFwiLCBcInRhYmxlXCIsIFwidHRcIiwgXCJ1XCIsIFwidWxcIiwgXCJ2YXJcIl0uZm9yRWFjaCh0YWcgPT4gQkxBQ0tMSVNUX1RBQkxFW3RhZ10gPSAxKTtcbmNvbnN0IFdISVRFU1BBQ0UgPSAvW1xcdC1cXHIgXFx4QTBcXHUxNjgwXFx1MTgwRVxcdTIwMDAtXFx1MjAwQVxcdTIwMjhcXHUyMDI5XFx1MjAyRlxcdTIwNUZcXHUzMDAwXFx1RkVGRl0vO1xubGV0IGRvYyA9IHR5cGVvZiBkb2N1bWVudCA9PT0gJ3VuZGVmaW5lZCcgPyBudWxsIDogZG9jdW1lbnQ7XG5leHBvcnQgZnVuY3Rpb24gaXNXaGl0ZXNwYWNlKHN0cmluZykge1xuICAgIHJldHVybiBXSElURVNQQUNFLnRlc3Qoc3RyaW5nKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBtb3ZlTm9kZXNCZWZvcmUoc291cmNlLCB0YXJnZXQsIG5leHRTaWJsaW5nKSB7XG4gICAgbGV0IGZpcnN0ID0gc291cmNlLmZpcnN0Q2hpbGQ7XG4gICAgbGV0IGxhc3QgPSBudWxsO1xuICAgIGxldCBjdXJyZW50ID0gZmlyc3Q7XG4gICAgd2hpbGUgKGN1cnJlbnQpIHtcbiAgICAgICAgbGFzdCA9IGN1cnJlbnQ7XG4gICAgICAgIGN1cnJlbnQgPSBjdXJyZW50Lm5leHRTaWJsaW5nO1xuICAgICAgICB0YXJnZXQuaW5zZXJ0QmVmb3JlKGxhc3QsIG5leHRTaWJsaW5nKTtcbiAgICB9XG4gICAgcmV0dXJuIFtmaXJzdCwgbGFzdF07XG59XG5leHBvcnQgY2xhc3MgRE9NT3BlcmF0aW9ucyB7XG4gICAgY29uc3RydWN0b3IoZG9jdW1lbnQpIHtcbiAgICAgICAgdGhpcy5kb2N1bWVudCA9IGRvY3VtZW50O1xuICAgICAgICB0aGlzLnVzZWxlc3NFbGVtZW50ID0gdGhpcy5kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICB9XG4gICAgY3JlYXRlRWxlbWVudCh0YWcsIGNvbnRleHQpIHtcbiAgICAgICAgbGV0IGlzRWxlbWVudEluU1ZHTmFtZXNwYWNlLCBpc0hUTUxJbnRlZ3JhdGlvblBvaW50O1xuICAgICAgICBpZiAoY29udGV4dCkge1xuICAgICAgICAgICAgaXNFbGVtZW50SW5TVkdOYW1lc3BhY2UgPSBjb250ZXh0Lm5hbWVzcGFjZVVSSSA9PT0gU1ZHX05BTUVTUEFDRSB8fCB0YWcgPT09ICdzdmcnO1xuICAgICAgICAgICAgaXNIVE1MSW50ZWdyYXRpb25Qb2ludCA9IFNWR19JTlRFR1JBVElPTl9QT0lOVFNbY29udGV4dC50YWdOYW1lXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlzRWxlbWVudEluU1ZHTmFtZXNwYWNlID0gdGFnID09PSAnc3ZnJztcbiAgICAgICAgICAgIGlzSFRNTEludGVncmF0aW9uUG9pbnQgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaXNFbGVtZW50SW5TVkdOYW1lc3BhY2UgJiYgIWlzSFRNTEludGVncmF0aW9uUG9pbnQpIHtcbiAgICAgICAgICAgIC8vIEZJWE1FOiBUaGlzIGRvZXMgbm90IHByb3Blcmx5IGhhbmRsZSA8Zm9udD4gd2l0aCBjb2xvciwgZmFjZSwgb3JcbiAgICAgICAgICAgIC8vIHNpemUgYXR0cmlidXRlcywgd2hpY2ggaXMgYWxzbyBkaXNhbGxvd2VkIGJ5IHRoZSBzcGVjLiBXZSBzaG91bGQgZml4XG4gICAgICAgICAgICAvLyB0aGlzLlxuICAgICAgICAgICAgaWYgKEJMQUNLTElTVF9UQUJMRVt0YWddKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBDYW5ub3QgY3JlYXRlIGEgJHt0YWd9IGluc2lkZSBhbiBTVkcgY29udGV4dGApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKFNWR19OQU1FU1BBQ0UsIHRhZyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5kb2N1bWVudC5jcmVhdGVFbGVtZW50KHRhZyk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaW5zZXJ0QmVmb3JlKHBhcmVudCwgbm9kZSwgcmVmZXJlbmNlKSB7XG4gICAgICAgIHBhcmVudC5pbnNlcnRCZWZvcmUobm9kZSwgcmVmZXJlbmNlKTtcbiAgICB9XG4gICAgaW5zZXJ0SFRNTEJlZm9yZShfcGFyZW50LCBuZXh0U2libGluZywgaHRtbCkge1xuICAgICAgICByZXR1cm4gaW5zZXJ0SFRNTEJlZm9yZSh0aGlzLnVzZWxlc3NFbGVtZW50LCBfcGFyZW50LCBuZXh0U2libGluZywgaHRtbCk7XG4gICAgfVxuICAgIGNyZWF0ZVRleHROb2RlKHRleHQpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUodGV4dCk7XG4gICAgfVxuICAgIGNyZWF0ZUNvbW1lbnQoZGF0YSkge1xuICAgICAgICByZXR1cm4gdGhpcy5kb2N1bWVudC5jcmVhdGVDb21tZW50KGRhdGEpO1xuICAgIH1cbn1cbmV4cG9ydCB2YXIgRE9NO1xuKGZ1bmN0aW9uIChET00pIHtcbiAgICBjbGFzcyBUcmVlQ29uc3RydWN0aW9uIGV4dGVuZHMgRE9NT3BlcmF0aW9ucyB7XG4gICAgICAgIGNyZWF0ZUVsZW1lbnROUyhuYW1lc3BhY2UsIHRhZykge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKG5hbWVzcGFjZSwgdGFnKTtcbiAgICAgICAgfVxuICAgICAgICBzZXRBdHRyaWJ1dGUoZWxlbWVudCwgbmFtZSwgdmFsdWUsIG5hbWVzcGFjZSkge1xuICAgICAgICAgICAgaWYgKG5hbWVzcGFjZSkge1xuICAgICAgICAgICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlTlMobmFtZXNwYWNlLCBuYW1lLCB2YWx1ZSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKG5hbWUsIHZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBET00uVHJlZUNvbnN0cnVjdGlvbiA9IFRyZWVDb25zdHJ1Y3Rpb247XG4gICAgbGV0IGFwcGxpZWRUcmVlQ29udHJ1Y3Rpb24gPSBUcmVlQ29uc3RydWN0aW9uO1xuICAgIGFwcGxpZWRUcmVlQ29udHJ1Y3Rpb24gPSB0cmVlQ29uc3RydWN0aW9uTm9kZU1lcmdpbmdGaXgoZG9jLCBhcHBsaWVkVHJlZUNvbnRydWN0aW9uKTtcbiAgICBhcHBsaWVkVHJlZUNvbnRydWN0aW9uID0gdHJlZUNvbnN0cnVjdGlvblRhYmxlRWxlbWVudEZpeChkb2MsIGFwcGxpZWRUcmVlQ29udHJ1Y3Rpb24pO1xuICAgIGFwcGxpZWRUcmVlQ29udHJ1Y3Rpb24gPSB0cmVlQ29uc3RydWN0aW9uU3ZnRWxlbWVudEZpeChkb2MsIGFwcGxpZWRUcmVlQ29udHJ1Y3Rpb24sIFNWR19OQU1FU1BBQ0UpO1xuICAgIERPTS5ET01UcmVlQ29uc3RydWN0aW9uID0gYXBwbGllZFRyZWVDb250cnVjdGlvbjtcbn0pKERPTSB8fCAoRE9NID0ge30pKTtcbmV4cG9ydCBjbGFzcyBET01DaGFuZ2VzIGV4dGVuZHMgRE9NT3BlcmF0aW9ucyB7XG4gICAgY29uc3RydWN0b3IoZG9jdW1lbnQpIHtcbiAgICAgICAgc3VwZXIoZG9jdW1lbnQpO1xuICAgICAgICB0aGlzLmRvY3VtZW50ID0gZG9jdW1lbnQ7XG4gICAgICAgIHRoaXMubmFtZXNwYWNlID0gbnVsbDtcbiAgICB9XG4gICAgc2V0QXR0cmlidXRlKGVsZW1lbnQsIG5hbWUsIHZhbHVlKSB7XG4gICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKG5hbWUsIHZhbHVlKTtcbiAgICB9XG4gICAgc2V0QXR0cmlidXRlTlMoZWxlbWVudCwgbmFtZXNwYWNlLCBuYW1lLCB2YWx1ZSkge1xuICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZU5TKG5hbWVzcGFjZSwgbmFtZSwgdmFsdWUpO1xuICAgIH1cbiAgICByZW1vdmVBdHRyaWJ1dGUoZWxlbWVudCwgbmFtZSkge1xuICAgICAgICBlbGVtZW50LnJlbW92ZUF0dHJpYnV0ZShuYW1lKTtcbiAgICB9XG4gICAgcmVtb3ZlQXR0cmlidXRlTlMoZWxlbWVudCwgbmFtZXNwYWNlLCBuYW1lKSB7XG4gICAgICAgIGVsZW1lbnQucmVtb3ZlQXR0cmlidXRlTlMobmFtZXNwYWNlLCBuYW1lKTtcbiAgICB9XG4gICAgaW5zZXJ0Tm9kZUJlZm9yZShwYXJlbnQsIG5vZGUsIHJlZmVyZW5jZSkge1xuICAgICAgICBpZiAoaXNEb2N1bWVudEZyYWdtZW50KG5vZGUpKSB7XG4gICAgICAgICAgICBsZXQgeyBmaXJzdENoaWxkLCBsYXN0Q2hpbGQgfSA9IG5vZGU7XG4gICAgICAgICAgICB0aGlzLmluc2VydEJlZm9yZShwYXJlbnQsIG5vZGUsIHJlZmVyZW5jZSk7XG4gICAgICAgICAgICByZXR1cm4gbmV3IENvbmNyZXRlQm91bmRzKHBhcmVudCwgZmlyc3RDaGlsZCwgbGFzdENoaWxkKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuaW5zZXJ0QmVmb3JlKHBhcmVudCwgbm9kZSwgcmVmZXJlbmNlKTtcbiAgICAgICAgICAgIHJldHVybiBuZXcgU2luZ2xlTm9kZUJvdW5kcyhwYXJlbnQsIG5vZGUpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGluc2VydFRleHRCZWZvcmUocGFyZW50LCBuZXh0U2libGluZywgdGV4dCkge1xuICAgICAgICBsZXQgdGV4dE5vZGUgPSB0aGlzLmNyZWF0ZVRleHROb2RlKHRleHQpO1xuICAgICAgICB0aGlzLmluc2VydEJlZm9yZShwYXJlbnQsIHRleHROb2RlLCBuZXh0U2libGluZyk7XG4gICAgICAgIHJldHVybiB0ZXh0Tm9kZTtcbiAgICB9XG4gICAgaW5zZXJ0QmVmb3JlKGVsZW1lbnQsIG5vZGUsIHJlZmVyZW5jZSkge1xuICAgICAgICBlbGVtZW50Lmluc2VydEJlZm9yZShub2RlLCByZWZlcmVuY2UpO1xuICAgIH1cbiAgICBpbnNlcnRBZnRlcihlbGVtZW50LCBub2RlLCByZWZlcmVuY2UpIHtcbiAgICAgICAgdGhpcy5pbnNlcnRCZWZvcmUoZWxlbWVudCwgbm9kZSwgcmVmZXJlbmNlLm5leHRTaWJsaW5nKTtcbiAgICB9XG59XG5leHBvcnQgZnVuY3Rpb24gaW5zZXJ0SFRNTEJlZm9yZShfdXNlbGVzcywgX3BhcmVudCwgX25leHRTaWJsaW5nLCBodG1sKSB7XG4gICAgLy8gVHlwZVNjcmlwdCB2ZW5kb3JlZCBhbiBvbGQgdmVyc2lvbiBvZiB0aGUgRE9NIHNwZWMgd2hlcmUgYGluc2VydEFkamFjZW50SFRNTGBcbiAgICAvLyBvbmx5IGV4aXN0cyBvbiBgSFRNTEVsZW1lbnRgIGJ1dCBub3Qgb24gYEVsZW1lbnRgLiBXZSBhY3R1YWxseSB3b3JrIHdpdGggdGhlXG4gICAgLy8gbmV3ZXIgdmVyc2lvbiBvZiB0aGUgRE9NIEFQSSBoZXJlIChhbmQgbW9ua2V5LXBhdGNoIHRoaXMgbWV0aG9kIGluIGAuL2NvbXBhdGBcbiAgICAvLyB3aGVuIHdlIGRldGVjdCBvbGRlciBicm93c2VycykuIFRoaXMgaXMgYSBoYWNrIHRvIHdvcmsgYXJvdW5kIHRoaXMgbGltaXRhdGlvbi5cbiAgICBsZXQgcGFyZW50ID0gX3BhcmVudDtcbiAgICBsZXQgdXNlbGVzcyA9IF91c2VsZXNzO1xuICAgIGxldCBuZXh0U2libGluZyA9IF9uZXh0U2libGluZztcbiAgICBsZXQgcHJldiA9IG5leHRTaWJsaW5nID8gbmV4dFNpYmxpbmcucHJldmlvdXNTaWJsaW5nIDogcGFyZW50Lmxhc3RDaGlsZDtcbiAgICBsZXQgbGFzdDtcbiAgICBpZiAoaHRtbCA9PT0gbnVsbCB8fCBodG1sID09PSAnJykge1xuICAgICAgICByZXR1cm4gbmV3IENvbmNyZXRlQm91bmRzKHBhcmVudCwgbnVsbCwgbnVsbCk7XG4gICAgfVxuICAgIGlmIChuZXh0U2libGluZyA9PT0gbnVsbCkge1xuICAgICAgICBwYXJlbnQuaW5zZXJ0QWRqYWNlbnRIVE1MKCdiZWZvcmVFbmQnLCBodG1sKTtcbiAgICAgICAgbGFzdCA9IHBhcmVudC5sYXN0Q2hpbGQ7XG4gICAgfSBlbHNlIGlmIChuZXh0U2libGluZyBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KSB7XG4gICAgICAgIG5leHRTaWJsaW5nLmluc2VydEFkamFjZW50SFRNTCgnYmVmb3JlQmVnaW4nLCBodG1sKTtcbiAgICAgICAgbGFzdCA9IG5leHRTaWJsaW5nLnByZXZpb3VzU2libGluZztcbiAgICB9IGVsc2Uge1xuICAgICAgICAvLyBOb24tZWxlbWVudCBub2RlcyBkbyBub3Qgc3VwcG9ydCBpbnNlcnRBZGphY2VudEhUTUwsIHNvIGFkZCBhblxuICAgICAgICAvLyBlbGVtZW50IGFuZCBjYWxsIGl0IG9uIHRoYXQgZWxlbWVudC4gVGhlbiByZW1vdmUgdGhlIGVsZW1lbnQuXG4gICAgICAgIC8vXG4gICAgICAgIC8vIFRoaXMgYWxzbyBwcm90ZWN0cyBFZGdlLCBJRSBhbmQgRmlyZWZveCB3L28gdGhlIGluc3BlY3RvciBvcGVuXG4gICAgICAgIC8vIGZyb20gbWVyZ2luZyBhZGphY2VudCB0ZXh0IG5vZGVzLiBTZWUgLi9jb21wYXQvdGV4dC1ub2RlLW1lcmdpbmctZml4LnRzXG4gICAgICAgIHBhcmVudC5pbnNlcnRCZWZvcmUodXNlbGVzcywgbmV4dFNpYmxpbmcpO1xuICAgICAgICB1c2VsZXNzLmluc2VydEFkamFjZW50SFRNTCgnYmVmb3JlQmVnaW4nLCBodG1sKTtcbiAgICAgICAgbGFzdCA9IHVzZWxlc3MucHJldmlvdXNTaWJsaW5nO1xuICAgICAgICBwYXJlbnQucmVtb3ZlQ2hpbGQodXNlbGVzcyk7XG4gICAgfVxuICAgIGxldCBmaXJzdCA9IHByZXYgPyBwcmV2Lm5leHRTaWJsaW5nIDogcGFyZW50LmZpcnN0Q2hpbGQ7XG4gICAgcmV0dXJuIG5ldyBDb25jcmV0ZUJvdW5kcyhwYXJlbnQsIGZpcnN0LCBsYXN0KTtcbn1cbmZ1bmN0aW9uIGlzRG9jdW1lbnRGcmFnbWVudChub2RlKSB7XG4gICAgcmV0dXJuIG5vZGUubm9kZVR5cGUgPT09IE5vZGUuRE9DVU1FTlRfRlJBR01FTlRfTk9ERTtcbn1cbmxldCBoZWxwZXIgPSBET01DaGFuZ2VzO1xuaGVscGVyID0gZG9tQ2hhbmdlc05vZGVNZXJnaW5nRml4KGRvYywgaGVscGVyKTtcbmhlbHBlciA9IGRvbUNoYW5nZXNUYWJsZUVsZW1lbnRGaXgoZG9jLCBoZWxwZXIpO1xuaGVscGVyID0gZG9tQ2hhbmdlc1N2Z0VsZW1lbnRGaXgoZG9jLCBoZWxwZXIsIFNWR19OQU1FU1BBQ0UpO1xuZXhwb3J0IGRlZmF1bHQgaGVscGVyO1xuZXhwb3J0IGNvbnN0IERPTVRyZWVDb25zdHJ1Y3Rpb24gPSBET00uRE9NVHJlZUNvbnN0cnVjdGlvbjsiXX0=
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9kb20vaGVscGVyLmpzIl0sIm5hbWVzIjpbIkNvbmNyZXRlQm91bmRzIiwiU2luZ2xlTm9kZUJvdW5kcyIsImRvbUNoYW5nZXMiLCJkb21DaGFuZ2VzVGFibGVFbGVtZW50Rml4IiwidHJlZUNvbnN0cnVjdGlvbiIsInRyZWVDb25zdHJ1Y3Rpb25UYWJsZUVsZW1lbnRGaXgiLCJkb21DaGFuZ2VzU3ZnRWxlbWVudEZpeCIsInRyZWVDb25zdHJ1Y3Rpb25TdmdFbGVtZW50Rml4IiwiZG9tQ2hhbmdlc05vZGVNZXJnaW5nRml4IiwidHJlZUNvbnN0cnVjdGlvbk5vZGVNZXJnaW5nRml4IiwiU1ZHX05BTUVTUEFDRSIsIlNWR19JTlRFR1JBVElPTl9QT0lOVFMiLCJmb3JlaWduT2JqZWN0IiwiZGVzYyIsInRpdGxlIiwiQkxBQ0tMSVNUX1RBQkxFIiwiT2JqZWN0IiwiY3JlYXRlIiwiZm9yRWFjaCIsInRhZyIsIldISVRFU1BBQ0UiLCJkb2MiLCJkb2N1bWVudCIsImlzV2hpdGVzcGFjZSIsInN0cmluZyIsInRlc3QiLCJtb3ZlTm9kZXNCZWZvcmUiLCJzb3VyY2UiLCJ0YXJnZXQiLCJuZXh0U2libGluZyIsImZpcnN0IiwiZmlyc3RDaGlsZCIsImxhc3QiLCJjdXJyZW50IiwiaW5zZXJ0QmVmb3JlIiwiRE9NT3BlcmF0aW9ucyIsInNldHVwVXNlbGVzc0VsZW1lbnQiLCJ1c2VsZXNzRWxlbWVudCIsImNyZWF0ZUVsZW1lbnQiLCJjb250ZXh0IiwiaXNFbGVtZW50SW5TVkdOYW1lc3BhY2UiLCJpc0hUTUxJbnRlZ3JhdGlvblBvaW50IiwibmFtZXNwYWNlVVJJIiwidGFnTmFtZSIsIkVycm9yIiwiY3JlYXRlRWxlbWVudE5TIiwicGFyZW50Iiwibm9kZSIsInJlZmVyZW5jZSIsImluc2VydEhUTUxCZWZvcmUiLCJfcGFyZW50IiwiaHRtbCIsImNyZWF0ZVRleHROb2RlIiwidGV4dCIsImNyZWF0ZUNvbW1lbnQiLCJkYXRhIiwiRE9NIiwiVHJlZUNvbnN0cnVjdGlvbiIsIm5hbWVzcGFjZSIsInNldEF0dHJpYnV0ZSIsImVsZW1lbnQiLCJuYW1lIiwidmFsdWUiLCJzZXRBdHRyaWJ1dGVOUyIsImFwcGxpZWRUcmVlQ29udHJ1Y3Rpb24iLCJET01UcmVlQ29uc3RydWN0aW9uIiwiRE9NQ2hhbmdlcyIsInJlbW92ZUF0dHJpYnV0ZSIsInJlbW92ZUF0dHJpYnV0ZU5TIiwiaW5zZXJ0Tm9kZUJlZm9yZSIsImlzRG9jdW1lbnRGcmFnbWVudCIsImxhc3RDaGlsZCIsImluc2VydFRleHRCZWZvcmUiLCJ0ZXh0Tm9kZSIsImluc2VydEFmdGVyIiwiX3VzZWxlc3MiLCJfbmV4dFNpYmxpbmciLCJ1c2VsZXNzIiwicHJldiIsInByZXZpb3VzU2libGluZyIsImluc2VydEFkamFjZW50SFRNTCIsIkhUTUxFbGVtZW50IiwicmVtb3ZlQ2hpbGQiLCJub2RlVHlwZSIsIk5vZGUiLCJET0NVTUVOVF9GUkFHTUVOVF9OT0RFIiwiaGVscGVyIl0sIm1hcHBpbmdzIjoiOzs7Ozs7UUFnQk8sQUFBUztRQUdULEFBQVM7O0FBbkJoQixBQUFTLEFBQWdCLEFBQXdCOztBQUNqRCxBQUFTLEFBQWMsQUFBMkIsQUFBb0IsQUFBdUM7O0FBQzdHLEFBQVMsQUFBYyxBQUF5QixBQUFvQixBQUFxQzs7QUFDekcsQUFBUyxBQUFjLEFBQTBCLEFBQW9CLEFBQXNDLEFBQzNHOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQU8sSUFBTSx3Q0FBTixBQUFzQjtBQUM3QjtBQUNBLElBQU0seUJBQXlCLEVBQUUsZUFBRixBQUFpQixHQUFHLE1BQXBCLEFBQTBCLEdBQUcsT0FBNUQsQUFBK0IsQUFBb0M7QUFDbkU7QUFDQTtBQUNBO0FBQ0E7QUFDQSxBQUNBO0FBQU8sSUFBTSw0Q0FBa0IsT0FBQSxBQUFPLE9BQS9CLEFBQXdCLEFBQWM7QUFDN0MsQ0FBQSxBQUFDLEtBQUQsQUFBTSxPQUFOLEFBQWEsY0FBYixBQUEyQixRQUEzQixBQUFtQyxNQUFuQyxBQUF5QyxVQUF6QyxBQUFtRCxR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LGdCQUFKLEFBQW9CLE1BQU0sQUFDdEI7ZUFBQSxBQUFPLG1CQUFQLEFBQTBCLGFBQTFCLEFBQXVDLEFBQ3ZDO2VBQU8sT0FBUCxBQUFjLEFBQ2pCO0FBSEQsZUFHVyx1QkFBSixBQUEyQixhQUFhLEFBQzNDO29CQUFBLEFBQVksbUJBQVosQUFBK0IsZUFBL0IsQUFBOEMsQUFDOUM7ZUFBTyxZQUFQLEFBQW1CLEFBQ3RCO0FBSE0sS0FBQSxNQUdBLEFBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO2VBQUEsQUFBTyxhQUFQLEFBQW9CLFNBQXBCLEFBQTZCLEFBQzdCO2dCQUFBLEFBQVEsbUJBQVIsQUFBMkIsZUFBM0IsQUFBMEMsQUFDMUM7ZUFBTyxRQUFQLEFBQWUsQUFDZjtlQUFBLEFBQU8sWUFBUCxBQUFtQixBQUN0QjtBQUNEO1FBQUksUUFBUSxPQUFPLEtBQVAsQUFBWSxjQUFjLE9BQXRDLEFBQTZDLEFBQzdDO1dBQU8sQUFBSSwyQkFBSixBQUFtQixRQUFuQixBQUEyQixPQUFsQyxBQUFPLEFBQWtDLEFBQzVDOztBQUNELFNBQUEsQUFBUyxtQkFBVCxBQUE0QixNQUFNLEFBQzlCO1dBQU8sS0FBQSxBQUFLLGFBQWEsS0FBekIsQUFBOEIsQUFDakM7O0FBQ0QsSUFBSSxTQUFKLEFBQWE7QUFDYixTQUFTLG9DQUFBLEFBQXlCLEtBQWxDLEFBQVMsQUFBOEI7QUFDdkMsU0FBUyw4QkFBQSxBQUEwQixLQUFuQyxBQUFTLEFBQStCO0FBQ3hDLFNBQVMsaUNBQUEsQUFBd0IsS0FBeEIsQUFBNkIsUUFBdEMsQUFBUyxBQUFxQyxBQUM5QztrQkFBQSxBQUFlLEFBQ2Y7QUFBTyxJQUFNLG9EQUFzQixJQUE1QixBQUFnQyIsImZpbGUiOiJsaWIvZG9tL2hlbHBlci5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbmNyZXRlQm91bmRzLCBTaW5nbGVOb2RlQm91bmRzIH0gZnJvbSAnLi4vYm91bmRzJztcbmltcG9ydCB7IGRvbUNoYW5nZXMgYXMgZG9tQ2hhbmdlc1RhYmxlRWxlbWVudEZpeCwgdHJlZUNvbnN0cnVjdGlvbiBhcyB0cmVlQ29uc3RydWN0aW9uVGFibGVFbGVtZW50Rml4IH0gZnJvbSAnLi4vY29tcGF0L2lubmVyLWh0bWwtZml4JztcbmltcG9ydCB7IGRvbUNoYW5nZXMgYXMgZG9tQ2hhbmdlc1N2Z0VsZW1lbnRGaXgsIHRyZWVDb25zdHJ1Y3Rpb24gYXMgdHJlZUNvbnN0cnVjdGlvblN2Z0VsZW1lbnRGaXggfSBmcm9tICcuLi9jb21wYXQvc3ZnLWlubmVyLWh0bWwtZml4JztcbmltcG9ydCB7IGRvbUNoYW5nZXMgYXMgZG9tQ2hhbmdlc05vZGVNZXJnaW5nRml4LCB0cmVlQ29uc3RydWN0aW9uIGFzIHRyZWVDb25zdHJ1Y3Rpb25Ob2RlTWVyZ2luZ0ZpeCB9IGZyb20gJy4uL2NvbXBhdC90ZXh0LW5vZGUtbWVyZ2luZy1maXgnO1xuZXhwb3J0IGNvbnN0IFNWR19OQU1FU1BBQ0UgPSAnaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnO1xuLy8gaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbC9zeW50YXguaHRtbCNodG1sLWludGVncmF0aW9uLXBvaW50XG5jb25zdCBTVkdfSU5URUdSQVRJT05fUE9JTlRTID0geyBmb3JlaWduT2JqZWN0OiAxLCBkZXNjOiAxLCB0aXRsZTogMSB9O1xuLy8gaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbC9zeW50YXguaHRtbCNhZGp1c3Qtc3ZnLWF0dHJpYnV0ZXNcbi8vIFRPRE86IEFkanVzdCBTVkcgYXR0cmlidXRlc1xuLy8gaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbC9zeW50YXguaHRtbCNwYXJzaW5nLW1haW4taW5mb3JlaWduXG4vLyBUT0RPOiBBZGp1c3QgU1ZHIGVsZW1lbnRzXG4vLyBodHRwOi8vd3d3LnczLm9yZy9UUi9odG1sL3N5bnRheC5odG1sI3BhcnNpbmctbWFpbi1pbmZvcmVpZ25cbmV4cG9ydCBjb25zdCBCTEFDS0xJU1RfVEFCTEUgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuW1wiYlwiLCBcImJpZ1wiLCBcImJsb2NrcXVvdGVcIiwgXCJib2R5XCIsIFwiYnJcIiwgXCJjZW50ZXJcIiwgXCJjb2RlXCIsIFwiZGRcIiwgXCJkaXZcIiwgXCJkbFwiLCBcImR0XCIsIFwiZW1cIiwgXCJlbWJlZFwiLCBcImgxXCIsIFwiaDJcIiwgXCJoM1wiLCBcImg0XCIsIFwiaDVcIiwgXCJoNlwiLCBcImhlYWRcIiwgXCJoclwiLCBcImlcIiwgXCJpbWdcIiwgXCJsaVwiLCBcImxpc3RpbmdcIiwgXCJtYWluXCIsIFwibWV0YVwiLCBcIm5vYnJcIiwgXCJvbFwiLCBcInBcIiwgXCJwcmVcIiwgXCJydWJ5XCIsIFwic1wiLCBcInNtYWxsXCIsIFwic3BhblwiLCBcInN0cm9uZ1wiLCBcInN0cmlrZVwiLCBcInN1YlwiLCBcInN1cFwiLCBcInRhYmxlXCIsIFwidHRcIiwgXCJ1XCIsIFwidWxcIiwgXCJ2YXJcIl0uZm9yRWFjaCh0YWcgPT4gQkxBQ0tMSVNUX1RBQkxFW3RhZ10gPSAxKTtcbmNvbnN0IFdISVRFU1BBQ0UgPSAvW1xcdC1cXHIgXFx4QTBcXHUxNjgwXFx1MTgwRVxcdTIwMDAtXFx1MjAwQVxcdTIwMjhcXHUyMDI5XFx1MjAyRlxcdTIwNUZcXHUzMDAwXFx1RkVGRl0vO1xubGV0IGRvYyA9IHR5cGVvZiBkb2N1bWVudCA9PT0gJ3VuZGVmaW5lZCcgPyBudWxsIDogZG9jdW1lbnQ7XG5leHBvcnQgZnVuY3Rpb24gaXNXaGl0ZXNwYWNlKHN0cmluZykge1xuICAgIHJldHVybiBXSElURVNQQUNFLnRlc3Qoc3RyaW5nKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBtb3ZlTm9kZXNCZWZvcmUoc291cmNlLCB0YXJnZXQsIG5leHRTaWJsaW5nKSB7XG4gICAgbGV0IGZpcnN0ID0gc291cmNlLmZpcnN0Q2hpbGQ7XG4gICAgbGV0IGxhc3QgPSBudWxsO1xuICAgIGxldCBjdXJyZW50ID0gZmlyc3Q7XG4gICAgd2hpbGUgKGN1cnJlbnQpIHtcbiAgICAgICAgbGFzdCA9IGN1cnJlbnQ7XG4gICAgICAgIGN1cnJlbnQgPSBjdXJyZW50Lm5leHRTaWJsaW5nO1xuICAgICAgICB0YXJnZXQuaW5zZXJ0QmVmb3JlKGxhc3QsIG5leHRTaWJsaW5nKTtcbiAgICB9XG4gICAgcmV0dXJuIFtmaXJzdCwgbGFzdF07XG59XG5leHBvcnQgY2xhc3MgRE9NT3BlcmF0aW9ucyB7XG4gICAgY29uc3RydWN0b3IoZG9jdW1lbnQpIHtcbiAgICAgICAgdGhpcy5kb2N1bWVudCA9IGRvY3VtZW50O1xuICAgICAgICB0aGlzLnNldHVwVXNlbGVzc0VsZW1lbnQoKTtcbiAgICB9XG4gICAgLy8gc3BsaXQgaW50byBzZXBlcmF0ZSBtZXRob2Qgc28gdGhhdCBOb2RlRE9NVHJlZUNvbnN0cnVjdGlvblxuICAgIC8vIGNhbiBvdmVycmlkZSBpdC5cbiAgICBzZXR1cFVzZWxlc3NFbGVtZW50KCkge1xuICAgICAgICB0aGlzLnVzZWxlc3NFbGVtZW50ID0gdGhpcy5kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICB9XG4gICAgY3JlYXRlRWxlbWVudCh0YWcsIGNvbnRleHQpIHtcbiAgICAgICAgbGV0IGlzRWxlbWVudEluU1ZHTmFtZXNwYWNlLCBpc0hUTUxJbnRlZ3JhdGlvblBvaW50O1xuICAgICAgICBpZiAoY29udGV4dCkge1xuICAgICAgICAgICAgaXNFbGVtZW50SW5TVkdOYW1lc3BhY2UgPSBjb250ZXh0Lm5hbWVzcGFjZVVSSSA9PT0gU1ZHX05BTUVTUEFDRSB8fCB0YWcgPT09ICdzdmcnO1xuICAgICAgICAgICAgaXNIVE1MSW50ZWdyYXRpb25Qb2ludCA9IFNWR19JTlRFR1JBVElPTl9QT0lOVFNbY29udGV4dC50YWdOYW1lXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlzRWxlbWVudEluU1ZHTmFtZXNwYWNlID0gdGFnID09PSAnc3ZnJztcbiAgICAgICAgICAgIGlzSFRNTEludGVncmF0aW9uUG9pbnQgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaXNFbGVtZW50SW5TVkdOYW1lc3BhY2UgJiYgIWlzSFRNTEludGVncmF0aW9uUG9pbnQpIHtcbiAgICAgICAgICAgIC8vIEZJWE1FOiBUaGlzIGRvZXMgbm90IHByb3Blcmx5IGhhbmRsZSA8Zm9udD4gd2l0aCBjb2xvciwgZmFjZSwgb3JcbiAgICAgICAgICAgIC8vIHNpemUgYXR0cmlidXRlcywgd2hpY2ggaXMgYWxzbyBkaXNhbGxvd2VkIGJ5IHRoZSBzcGVjLiBXZSBzaG91bGQgZml4XG4gICAgICAgICAgICAvLyB0aGlzLlxuICAgICAgICAgICAgaWYgKEJMQUNLTElTVF9UQUJMRVt0YWddKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBDYW5ub3QgY3JlYXRlIGEgJHt0YWd9IGluc2lkZSBhbiBTVkcgY29udGV4dGApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKFNWR19OQU1FU1BBQ0UsIHRhZyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5kb2N1bWVudC5jcmVhdGVFbGVtZW50KHRhZyk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaW5zZXJ0QmVmb3JlKHBhcmVudCwgbm9kZSwgcmVmZXJlbmNlKSB7XG4gICAgICAgIHBhcmVudC5pbnNlcnRCZWZvcmUobm9kZSwgcmVmZXJlbmNlKTtcbiAgICB9XG4gICAgaW5zZXJ0SFRNTEJlZm9yZShfcGFyZW50LCBuZXh0U2libGluZywgaHRtbCkge1xuICAgICAgICByZXR1cm4gaW5zZXJ0SFRNTEJlZm9yZSh0aGlzLnVzZWxlc3NFbGVtZW50LCBfcGFyZW50LCBuZXh0U2libGluZywgaHRtbCk7XG4gICAgfVxuICAgIGNyZWF0ZVRleHROb2RlKHRleHQpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUodGV4dCk7XG4gICAgfVxuICAgIGNyZWF0ZUNvbW1lbnQoZGF0YSkge1xuICAgICAgICByZXR1cm4gdGhpcy5kb2N1bWVudC5jcmVhdGVDb21tZW50KGRhdGEpO1xuICAgIH1cbn1cbmV4cG9ydCB2YXIgRE9NO1xuKGZ1bmN0aW9uIChET00pIHtcbiAgICBjbGFzcyBUcmVlQ29uc3RydWN0aW9uIGV4dGVuZHMgRE9NT3BlcmF0aW9ucyB7XG4gICAgICAgIGNyZWF0ZUVsZW1lbnROUyhuYW1lc3BhY2UsIHRhZykge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKG5hbWVzcGFjZSwgdGFnKTtcbiAgICAgICAgfVxuICAgICAgICBzZXRBdHRyaWJ1dGUoZWxlbWVudCwgbmFtZSwgdmFsdWUsIG5hbWVzcGFjZSkge1xuICAgICAgICAgICAgaWYgKG5hbWVzcGFjZSkge1xuICAgICAgICAgICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlTlMobmFtZXNwYWNlLCBuYW1lLCB2YWx1ZSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKG5hbWUsIHZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBET00uVHJlZUNvbnN0cnVjdGlvbiA9IFRyZWVDb25zdHJ1Y3Rpb247XG4gICAgbGV0IGFwcGxpZWRUcmVlQ29udHJ1Y3Rpb24gPSBUcmVlQ29uc3RydWN0aW9uO1xuICAgIGFwcGxpZWRUcmVlQ29udHJ1Y3Rpb24gPSB0cmVlQ29uc3RydWN0aW9uTm9kZU1lcmdpbmdGaXgoZG9jLCBhcHBsaWVkVHJlZUNvbnRydWN0aW9uKTtcbiAgICBhcHBsaWVkVHJlZUNvbnRydWN0aW9uID0gdHJlZUNvbnN0cnVjdGlvblRhYmxlRWxlbWVudEZpeChkb2MsIGFwcGxpZWRUcmVlQ29udHJ1Y3Rpb24pO1xuICAgIGFwcGxpZWRUcmVlQ29udHJ1Y3Rpb24gPSB0cmVlQ29uc3RydWN0aW9uU3ZnRWxlbWVudEZpeChkb2MsIGFwcGxpZWRUcmVlQ29udHJ1Y3Rpb24sIFNWR19OQU1FU1BBQ0UpO1xuICAgIERPTS5ET01UcmVlQ29uc3RydWN0aW9uID0gYXBwbGllZFRyZWVDb250cnVjdGlvbjtcbn0pKERPTSB8fCAoRE9NID0ge30pKTtcbmV4cG9ydCBjbGFzcyBET01DaGFuZ2VzIGV4dGVuZHMgRE9NT3BlcmF0aW9ucyB7XG4gICAgY29uc3RydWN0b3IoZG9jdW1lbnQpIHtcbiAgICAgICAgc3VwZXIoZG9jdW1lbnQpO1xuICAgICAgICB0aGlzLmRvY3VtZW50ID0gZG9jdW1lbnQ7XG4gICAgICAgIHRoaXMubmFtZXNwYWNlID0gbnVsbDtcbiAgICB9XG4gICAgc2V0QXR0cmlidXRlKGVsZW1lbnQsIG5hbWUsIHZhbHVlKSB7XG4gICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKG5hbWUsIHZhbHVlKTtcbiAgICB9XG4gICAgc2V0QXR0cmlidXRlTlMoZWxlbWVudCwgbmFtZXNwYWNlLCBuYW1lLCB2YWx1ZSkge1xuICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZU5TKG5hbWVzcGFjZSwgbmFtZSwgdmFsdWUpO1xuICAgIH1cbiAgICByZW1vdmVBdHRyaWJ1dGUoZWxlbWVudCwgbmFtZSkge1xuICAgICAgICBlbGVtZW50LnJlbW92ZUF0dHJpYnV0ZShuYW1lKTtcbiAgICB9XG4gICAgcmVtb3ZlQXR0cmlidXRlTlMoZWxlbWVudCwgbmFtZXNwYWNlLCBuYW1lKSB7XG4gICAgICAgIGVsZW1lbnQucmVtb3ZlQXR0cmlidXRlTlMobmFtZXNwYWNlLCBuYW1lKTtcbiAgICB9XG4gICAgaW5zZXJ0Tm9kZUJlZm9yZShwYXJlbnQsIG5vZGUsIHJlZmVyZW5jZSkge1xuICAgICAgICBpZiAoaXNEb2N1bWVudEZyYWdtZW50KG5vZGUpKSB7XG4gICAgICAgICAgICBsZXQgeyBmaXJzdENoaWxkLCBsYXN0Q2hpbGQgfSA9IG5vZGU7XG4gICAgICAgICAgICB0aGlzLmluc2VydEJlZm9yZShwYXJlbnQsIG5vZGUsIHJlZmVyZW5jZSk7XG4gICAgICAgICAgICByZXR1cm4gbmV3IENvbmNyZXRlQm91bmRzKHBhcmVudCwgZmlyc3RDaGlsZCwgbGFzdENoaWxkKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuaW5zZXJ0QmVmb3JlKHBhcmVudCwgbm9kZSwgcmVmZXJlbmNlKTtcbiAgICAgICAgICAgIHJldHVybiBuZXcgU2luZ2xlTm9kZUJvdW5kcyhwYXJlbnQsIG5vZGUpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGluc2VydFRleHRCZWZvcmUocGFyZW50LCBuZXh0U2libGluZywgdGV4dCkge1xuICAgICAgICBsZXQgdGV4dE5vZGUgPSB0aGlzLmNyZWF0ZVRleHROb2RlKHRleHQpO1xuICAgICAgICB0aGlzLmluc2VydEJlZm9yZShwYXJlbnQsIHRleHROb2RlLCBuZXh0U2libGluZyk7XG4gICAgICAgIHJldHVybiB0ZXh0Tm9kZTtcbiAgICB9XG4gICAgaW5zZXJ0QmVmb3JlKGVsZW1lbnQsIG5vZGUsIHJlZmVyZW5jZSkge1xuICAgICAgICBlbGVtZW50Lmluc2VydEJlZm9yZShub2RlLCByZWZlcmVuY2UpO1xuICAgIH1cbiAgICBpbnNlcnRBZnRlcihlbGVtZW50LCBub2RlLCByZWZlcmVuY2UpIHtcbiAgICAgICAgdGhpcy5pbnNlcnRCZWZvcmUoZWxlbWVudCwgbm9kZSwgcmVmZXJlbmNlLm5leHRTaWJsaW5nKTtcbiAgICB9XG59XG5leHBvcnQgZnVuY3Rpb24gaW5zZXJ0SFRNTEJlZm9yZShfdXNlbGVzcywgX3BhcmVudCwgX25leHRTaWJsaW5nLCBodG1sKSB7XG4gICAgLy8gVHlwZVNjcmlwdCB2ZW5kb3JlZCBhbiBvbGQgdmVyc2lvbiBvZiB0aGUgRE9NIHNwZWMgd2hlcmUgYGluc2VydEFkamFjZW50SFRNTGBcbiAgICAvLyBvbmx5IGV4aXN0cyBvbiBgSFRNTEVsZW1lbnRgIGJ1dCBub3Qgb24gYEVsZW1lbnRgLiBXZSBhY3R1YWxseSB3b3JrIHdpdGggdGhlXG4gICAgLy8gbmV3ZXIgdmVyc2lvbiBvZiB0aGUgRE9NIEFQSSBoZXJlIChhbmQgbW9ua2V5LXBhdGNoIHRoaXMgbWV0aG9kIGluIGAuL2NvbXBhdGBcbiAgICAvLyB3aGVuIHdlIGRldGVjdCBvbGRlciBicm93c2VycykuIFRoaXMgaXMgYSBoYWNrIHRvIHdvcmsgYXJvdW5kIHRoaXMgbGltaXRhdGlvbi5cbiAgICBsZXQgcGFyZW50ID0gX3BhcmVudDtcbiAgICBsZXQgdXNlbGVzcyA9IF91c2VsZXNzO1xuICAgIGxldCBuZXh0U2libGluZyA9IF9uZXh0U2libGluZztcbiAgICBsZXQgcHJldiA9IG5leHRTaWJsaW5nID8gbmV4dFNpYmxpbmcucHJldmlvdXNTaWJsaW5nIDogcGFyZW50Lmxhc3RDaGlsZDtcbiAgICBsZXQgbGFzdDtcbiAgICBpZiAoaHRtbCA9PT0gbnVsbCB8fCBodG1sID09PSAnJykge1xuICAgICAgICByZXR1cm4gbmV3IENvbmNyZXRlQm91bmRzKHBhcmVudCwgbnVsbCwgbnVsbCk7XG4gICAgfVxuICAgIGlmIChuZXh0U2libGluZyA9PT0gbnVsbCkge1xuICAgICAgICBwYXJlbnQuaW5zZXJ0QWRqYWNlbnRIVE1MKCdiZWZvcmVFbmQnLCBodG1sKTtcbiAgICAgICAgbGFzdCA9IHBhcmVudC5sYXN0Q2hpbGQ7XG4gICAgfSBlbHNlIGlmIChuZXh0U2libGluZyBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KSB7XG4gICAgICAgIG5leHRTaWJsaW5nLmluc2VydEFkamFjZW50SFRNTCgnYmVmb3JlQmVnaW4nLCBodG1sKTtcbiAgICAgICAgbGFzdCA9IG5leHRTaWJsaW5nLnByZXZpb3VzU2libGluZztcbiAgICB9IGVsc2Uge1xuICAgICAgICAvLyBOb24tZWxlbWVudCBub2RlcyBkbyBub3Qgc3VwcG9ydCBpbnNlcnRBZGphY2VudEhUTUwsIHNvIGFkZCBhblxuICAgICAgICAvLyBlbGVtZW50IGFuZCBjYWxsIGl0IG9uIHRoYXQgZWxlbWVudC4gVGhlbiByZW1vdmUgdGhlIGVsZW1lbnQuXG4gICAgICAgIC8vXG4gICAgICAgIC8vIFRoaXMgYWxzbyBwcm90ZWN0cyBFZGdlLCBJRSBhbmQgRmlyZWZveCB3L28gdGhlIGluc3BlY3RvciBvcGVuXG4gICAgICAgIC8vIGZyb20gbWVyZ2luZyBhZGphY2VudCB0ZXh0IG5vZGVzLiBTZWUgLi9jb21wYXQvdGV4dC1ub2RlLW1lcmdpbmctZml4LnRzXG4gICAgICAgIHBhcmVudC5pbnNlcnRCZWZvcmUodXNlbGVzcywgbmV4dFNpYmxpbmcpO1xuICAgICAgICB1c2VsZXNzLmluc2VydEFkamFjZW50SFRNTCgnYmVmb3JlQmVnaW4nLCBodG1sKTtcbiAgICAgICAgbGFzdCA9IHVzZWxlc3MucHJldmlvdXNTaWJsaW5nO1xuICAgICAgICBwYXJlbnQucmVtb3ZlQ2hpbGQodXNlbGVzcyk7XG4gICAgfVxuICAgIGxldCBmaXJzdCA9IHByZXYgPyBwcmV2Lm5leHRTaWJsaW5nIDogcGFyZW50LmZpcnN0Q2hpbGQ7XG4gICAgcmV0dXJuIG5ldyBDb25jcmV0ZUJvdW5kcyhwYXJlbnQsIGZpcnN0LCBsYXN0KTtcbn1cbmZ1bmN0aW9uIGlzRG9jdW1lbnRGcmFnbWVudChub2RlKSB7XG4gICAgcmV0dXJuIG5vZGUubm9kZVR5cGUgPT09IE5vZGUuRE9DVU1FTlRfRlJBR01FTlRfTk9ERTtcbn1cbmxldCBoZWxwZXIgPSBET01DaGFuZ2VzO1xuaGVscGVyID0gZG9tQ2hhbmdlc05vZGVNZXJnaW5nRml4KGRvYywgaGVscGVyKTtcbmhlbHBlciA9IGRvbUNoYW5nZXNUYWJsZUVsZW1lbnRGaXgoZG9jLCBoZWxwZXIpO1xuaGVscGVyID0gZG9tQ2hhbmdlc1N2Z0VsZW1lbnRGaXgoZG9jLCBoZWxwZXIsIFNWR19OQU1FU1BBQ0UpO1xuZXhwb3J0IGRlZmF1bHQgaGVscGVyO1xuZXhwb3J0IGNvbnN0IERPTVRyZWVDb25zdHJ1Y3Rpb24gPSBET00uRE9NVHJlZUNvbnN0cnVjdGlvbjsiXX0=

@@ -34,2 +34,7 @@ import { ConcreteBounds, SingleNodeBounds } from '../bounds';

this.document = document;
this.setupUselessElement();
}
// split into seperate method so that NodeDOMTreeConstruction
// can override it.
setupUselessElement() {
this.uselessElement = this.document.createElement('div');

@@ -36,0 +41,0 @@ }

@@ -48,5 +48,12 @@ export { _insertHTMLBefore as insertHTMLBefore };

this.document = document;
this.uselessElement = this.document.createElement('div');
this.setupUselessElement();
}
// split into seperate method so that NodeDOMTreeConstruction
// can override it.
DOMOperations.prototype.setupUselessElement = function setupUselessElement() {
this.uselessElement = this.document.createElement('div');
};
DOMOperations.prototype.createElement = function createElement(tag, context) {

@@ -226,2 +233,2 @@ var isElementInSVGNamespace = void 0,

export var DOMTreeConstruction = DOM.DOMTreeConstruction;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9kb20vaGVscGVyLmpzIl0sIm5hbWVzIjpbIkNvbmNyZXRlQm91bmRzIiwiU2luZ2xlTm9kZUJvdW5kcyIsImRvbUNoYW5nZXMiLCJkb21DaGFuZ2VzVGFibGVFbGVtZW50Rml4IiwidHJlZUNvbnN0cnVjdGlvbiIsInRyZWVDb25zdHJ1Y3Rpb25UYWJsZUVsZW1lbnRGaXgiLCJkb21DaGFuZ2VzU3ZnRWxlbWVudEZpeCIsInRyZWVDb25zdHJ1Y3Rpb25TdmdFbGVtZW50Rml4IiwiZG9tQ2hhbmdlc05vZGVNZXJnaW5nRml4IiwidHJlZUNvbnN0cnVjdGlvbk5vZGVNZXJnaW5nRml4IiwiU1ZHX05BTUVTUEFDRSIsIlNWR19JTlRFR1JBVElPTl9QT0lOVFMiLCJmb3JlaWduT2JqZWN0IiwiZGVzYyIsInRpdGxlIiwiQkxBQ0tMSVNUX1RBQkxFIiwiT2JqZWN0IiwiY3JlYXRlIiwiZm9yRWFjaCIsInRhZyIsIldISVRFU1BBQ0UiLCJkb2MiLCJkb2N1bWVudCIsImlzV2hpdGVzcGFjZSIsInN0cmluZyIsInRlc3QiLCJtb3ZlTm9kZXNCZWZvcmUiLCJzb3VyY2UiLCJ0YXJnZXQiLCJuZXh0U2libGluZyIsImZpcnN0IiwiZmlyc3RDaGlsZCIsImxhc3QiLCJjdXJyZW50IiwiaW5zZXJ0QmVmb3JlIiwiRE9NT3BlcmF0aW9ucyIsInVzZWxlc3NFbGVtZW50IiwiY3JlYXRlRWxlbWVudCIsImNvbnRleHQiLCJpc0VsZW1lbnRJblNWR05hbWVzcGFjZSIsImlzSFRNTEludGVncmF0aW9uUG9pbnQiLCJuYW1lc3BhY2VVUkkiLCJ0YWdOYW1lIiwiRXJyb3IiLCJjcmVhdGVFbGVtZW50TlMiLCJwYXJlbnQiLCJub2RlIiwicmVmZXJlbmNlIiwiaW5zZXJ0SFRNTEJlZm9yZSIsIl9wYXJlbnQiLCJodG1sIiwiY3JlYXRlVGV4dE5vZGUiLCJ0ZXh0IiwiY3JlYXRlQ29tbWVudCIsImRhdGEiLCJET00iLCJUcmVlQ29uc3RydWN0aW9uIiwibmFtZXNwYWNlIiwic2V0QXR0cmlidXRlIiwiZWxlbWVudCIsIm5hbWUiLCJ2YWx1ZSIsInNldEF0dHJpYnV0ZU5TIiwiYXBwbGllZFRyZWVDb250cnVjdGlvbiIsIkRPTVRyZWVDb25zdHJ1Y3Rpb24iLCJET01DaGFuZ2VzIiwicmVtb3ZlQXR0cmlidXRlIiwicmVtb3ZlQXR0cmlidXRlTlMiLCJpbnNlcnROb2RlQmVmb3JlIiwiaXNEb2N1bWVudEZyYWdtZW50IiwibGFzdENoaWxkIiwiaW5zZXJ0VGV4dEJlZm9yZSIsInRleHROb2RlIiwiaW5zZXJ0QWZ0ZXIiLCJfdXNlbGVzcyIsIl9uZXh0U2libGluZyIsInVzZWxlc3MiLCJwcmV2IiwicHJldmlvdXNTaWJsaW5nIiwiaW5zZXJ0QWRqYWNlbnRIVE1MIiwiSFRNTEVsZW1lbnQiLCJyZW1vdmVDaGlsZCIsIm5vZGVUeXBlIiwiTm9kZSIsIkRPQ1VNRU5UX0ZSQUdNRU5UX05PREUiLCJoZWxwZXIiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQSxTQUFTQSxjQUFULEVBQXlCQyxnQkFBekIsUUFBaUQsV0FBakQ7QUFDQSxTQUFTQyxjQUFjQyx5QkFBdkIsRUFBa0RDLG9CQUFvQkMsK0JBQXRFLFFBQTZHLDBCQUE3RztBQUNBLFNBQVNILGNBQWNJLHVCQUF2QixFQUFnREYsb0JBQW9CRyw2QkFBcEUsUUFBeUcsOEJBQXpHO0FBQ0EsU0FBU0wsY0FBY00sd0JBQXZCLEVBQWlESixvQkFBb0JLLDhCQUFyRSxRQUEyRyxpQ0FBM0c7QUFDQSxPQUFPLElBQU1DLGdCQUFnQiw0QkFBdEI7QUFDUDtBQUNBLElBQU1DLHlCQUF5QixFQUFFQyxlQUFlLENBQWpCLEVBQW9CQyxNQUFNLENBQTFCLEVBQTZCQyxPQUFPLENBQXBDLEVBQS9CO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU8sSUFBTUMsa0JBQWtCQyxPQUFPQyxNQUFQLENBQWMsSUFBZCxDQUF4QjtBQUNQLENBQUMsR0FBRCxFQUFNLEtBQU4sRUFBYSxZQUFiLEVBQTJCLE1BQTNCLEVBQW1DLElBQW5D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RCxRQUFJOUMsUUFBUStDLE9BQU9BLEtBQUtoRCxXQUFaLEdBQTBCZ0IsT0FBT2QsVUFBN0M7QUFDQSxXQUFPLElBQUkvQixjQUFKLENBQW1CNkMsTUFBbkIsRUFBMkJmLEtBQTNCLEVBQWtDRSxJQUFsQyxDQUFQO0FBQ0g7QUFDRCxTQUFTcUMsa0JBQVQsQ0FBNEJ2QixJQUE1QixFQUFrQztBQUM5QixXQUFPQSxLQUFLb0MsUUFBTCxLQUFrQkMsS0FBS0Msc0JBQTlCO0FBQ0g7QUFDRCxJQUFJQyxTQUFTcEIsVUFBYjtBQUNBb0IsU0FBUzdFLHlCQUF5QmEsR0FBekIsRUFBOEJnRSxNQUE5QixDQUFUO0FBQ0FBLFNBQVNsRiwwQkFBMEJrQixHQUExQixFQUErQmdFLE1BQS9CLENBQVQ7QUFDQUEsU0FBUy9FLHdCQUF3QmUsR0FBeEIsRUFBNkJnRSxNQUE3QixFQUFxQzNFLGFBQXJDLENBQVQ7QUFDQSxlQUFlMkUsTUFBZjtBQUNBLE9BQU8sSUFBTXJCLHNCQUFzQlQsSUFBSVMsbUJBQWhDIiwiZmlsZSI6ImxpYi9kb20vaGVscGVyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29uY3JldGVCb3VuZHMsIFNpbmdsZU5vZGVCb3VuZHMgfSBmcm9tICcuLi9ib3VuZHMnO1xuaW1wb3J0IHsgZG9tQ2hhbmdlcyBhcyBkb21DaGFuZ2VzVGFibGVFbGVtZW50Rml4LCB0cmVlQ29uc3RydWN0aW9uIGFzIHRyZWVDb25zdHJ1Y3Rpb25UYWJsZUVsZW1lbnRGaXggfSBmcm9tICcuLi9jb21wYXQvaW5uZXItaHRtbC1maXgnO1xuaW1wb3J0IHsgZG9tQ2hhbmdlcyBhcyBkb21DaGFuZ2VzU3ZnRWxlbWVudEZpeCwgdHJlZUNvbnN0cnVjdGlvbiBhcyB0cmVlQ29uc3RydWN0aW9uU3ZnRWxlbWVudEZpeCB9IGZyb20gJy4uL2NvbXBhdC9zdmctaW5uZXItaHRtbC1maXgnO1xuaW1wb3J0IHsgZG9tQ2hhbmdlcyBhcyBkb21DaGFuZ2VzTm9kZU1lcmdpbmdGaXgsIHRyZWVDb25zdHJ1Y3Rpb24gYXMgdHJlZUNvbnN0cnVjdGlvbk5vZGVNZXJnaW5nRml4IH0gZnJvbSAnLi4vY29tcGF0L3RleHQtbm9kZS1tZXJnaW5nLWZpeCc7XG5leHBvcnQgY29uc3QgU1ZHX05BTUVTUEFDRSA9ICdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zyc7XG4vLyBodHRwOi8vd3d3LnczLm9yZy9UUi9odG1sL3N5bnRheC5odG1sI2h0bWwtaW50ZWdyYXRpb24tcG9pbnRcbmNvbnN0IFNWR19JTlRFR1JBVElPTl9QT0lOVFMgPSB7IGZvcmVpZ25PYmplY3Q6IDEsIGRlc2M6IDEsIHRpdGxlOiAxIH07XG4vLyBodHRwOi8vd3d3LnczLm9yZy9UUi9odG1sL3N5bnRheC5odG1sI2FkanVzdC1zdmctYXR0cmlidXRlc1xuLy8gVE9ETzogQWRqdXN0IFNWRyBhdHRyaWJ1dGVzXG4vLyBodHRwOi8vd3d3LnczLm9yZy9UUi9odG1sL3N5bnRheC5odG1sI3BhcnNpbmctbWFpbi1pbmZvcmVpZ25cbi8vIFRPRE86IEFkanVzdCBTVkcgZWxlbWVudHNcbi8vIGh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWwvc3ludGF4Lmh0bWwjcGFyc2luZy1tYWluLWluZm9yZWlnblxuZXhwb3J0IGNvbnN0IEJMQUNLTElTVF9UQUJMRSA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG5bXCJiXCIsIFwiYmlnXCIsIFwiYmxvY2txdW90ZVwiLCBcImJvZHlcIiwgXCJiclwiLCBcImNlbnRlclwiLCBcImNvZGVcIiwgXCJkZFwiLCBcImRpdlwiLCBcImRsXCIsIFwiZHRcIiwgXCJlbVwiLCBcImVtYmVkXCIsIFwiaDFcIiwgXCJoMlwiLCBcImgzXCIsIFwiaDRcIiwgXCJoNVwiLCBcImg2XCIsIFwiaGVhZFwiLCBcImhyXCIsIFwiaVwiLCBcImltZ1wiLCBcImxpXCIsIFwibGlzdGluZ1wiLCBcIm1haW5cIiwgXCJtZXRhXCIsIFwibm9iclwiLCBcIm9sXCIsIFwicFwiLCBcInByZVwiLCBcInJ1YnlcIiwgXCJzXCIsIFwic21hbGxcIiwgXCJzcGFuXCIsIFwic3Ryb25nXCIsIFwic3RyaWtlXCIsIFwic3ViXCIsIFwic3VwXCIsIFwidGFibGVcIiwgXCJ0dFwiLCBcInVcIiwgXCJ1bFwiLCBcInZhclwiXS5mb3JFYWNoKHRhZyA9PiBCTEFDS0xJU1RfVEFCTEVbdGFnXSA9IDEpO1xuY29uc3QgV0hJVEVTUEFDRSA9IC9bXFx0LVxcciBcXHhBMFxcdTE2ODBcXHUxODBFXFx1MjAwMC1cXHUyMDBBXFx1MjAyOFxcdTIwMjlcXHUyMDJGXFx1MjA1RlxcdTMwMDBcXHVGRUZGXS87XG5sZXQgZG9jID0gdHlwZW9mIGRvY3VtZW50ID09PSAndW5kZWZpbmVkJyA/IG51bGwgOiBkb2N1bWVudDtcbmV4cG9ydCBmdW5jdGlvbiBpc1doaXRlc3BhY2Uoc3RyaW5nKSB7XG4gICAgcmV0dXJuIFdISVRFU1BBQ0UudGVzdChzdHJpbmcpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIG1vdmVOb2Rlc0JlZm9yZShzb3VyY2UsIHRhcmdldCwgbmV4dFNpYmxpbmcpIHtcbiAgICBsZXQgZmlyc3QgPSBzb3VyY2UuZmlyc3RDaGlsZDtcbiAgICBsZXQgbGFzdCA9IG51bGw7XG4gICAgbGV0IGN1cnJlbnQgPSBmaXJzdDtcbiAgICB3aGlsZSAoY3VycmVudCkge1xuICAgICAgICBsYXN0ID0gY3VycmVudDtcbiAgICAgICAgY3VycmVudCA9IGN1cnJlbnQubmV4dFNpYmxpbmc7XG4gICAgICAgIHRhcmdldC5pbnNlcnRCZWZvcmUobGFzdCwgbmV4dFNpYmxpbmcpO1xuICAgIH1cbiAgICByZXR1cm4gW2ZpcnN0LCBsYXN0XTtcbn1cbmV4cG9ydCBjbGFzcyBET01PcGVyYXRpb25zIHtcbiAgICBjb25zdHJ1Y3Rvcihkb2N1bWVudCkge1xuICAgICAgICB0aGlzLmRvY3VtZW50ID0gZG9jdW1lbnQ7XG4gICAgICAgIHRoaXMudXNlbGVzc0VsZW1lbnQgPSB0aGlzLmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgIH1cbiAgICBjcmVhdGVFbGVtZW50KHRhZywgY29udGV4dCkge1xuICAgICAgICBsZXQgaXNFbGVtZW50SW5TVkdOYW1lc3BhY2UsIGlzSFRNTEludGVncmF0aW9uUG9pbnQ7XG4gICAgICAgIGlmIChjb250ZXh0KSB7XG4gICAgICAgICAgICBpc0VsZW1lbnRJblNWR05hbWVzcGFjZSA9IGNvbnRleHQubmFtZXNwYWNlVVJJID09PSBTVkdfTkFNRVNQQUNFIHx8IHRhZyA9PT0gJ3N2Zyc7XG4gICAgICAgICAgICBpc0hUTUxJbnRlZ3JhdGlvblBvaW50ID0gU1ZHX0lOVEVHUkFUSU9OX1BPSU5UU1tjb250ZXh0LnRhZ05hbWVdO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaXNFbGVtZW50SW5TVkdOYW1lc3BhY2UgPSB0YWcgPT09ICdzdmcnO1xuICAgICAgICAgICAgaXNIVE1MSW50ZWdyYXRpb25Qb2ludCA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpc0VsZW1lbnRJblNWR05hbWVzcGFjZSAmJiAhaXNIVE1MSW50ZWdyYXRpb25Qb2ludCkge1xuICAgICAgICAgICAgLy8gRklYTUU6IFRoaXMgZG9lcyBub3QgcHJvcGVybHkgaGFuZGxlIDxmb250PiB3aXRoIGNvbG9yLCBmYWNlLCBvclxuICAgICAgICAgICAgLy8gc2l6ZSBhdHRyaWJ1dGVzLCB3aGljaCBpcyBhbHNvIGRpc2FsbG93ZWQgYnkgdGhlIHNwZWMuIFdlIHNob3VsZCBmaXhcbiAgICAgICAgICAgIC8vIHRoaXMuXG4gICAgICAgICAgICBpZiAoQkxBQ0tMSVNUX1RBQkxFW3RhZ10pIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYENhbm5vdCBjcmVhdGUgYSAke3RhZ30gaW5zaWRlIGFuIFNWRyBjb250ZXh0YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoU1ZHX05BTUVTUEFDRSwgdGFnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGFnKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBpbnNlcnRCZWZvcmUocGFyZW50LCBub2RlLCByZWZlcmVuY2UpIHtcbiAgICAgICAgcGFyZW50Lmluc2VydEJlZm9yZShub2RlLCByZWZlcmVuY2UpO1xuICAgIH1cbiAgICBpbnNlcnRIVE1MQmVmb3JlKF9wYXJlbnQsIG5leHRTaWJsaW5nLCBodG1sKSB7XG4gICAgICAgIHJldHVybiBpbnNlcnRIVE1MQmVmb3JlKHRoaXMudXNlbGVzc0VsZW1lbnQsIF9wYXJlbnQsIG5leHRTaWJsaW5nLCBodG1sKTtcbiAgICB9XG4gICAgY3JlYXRlVGV4dE5vZGUodGV4dCkge1xuICAgICAgICByZXR1cm4gdGhpcy5kb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSh0ZXh0KTtcbiAgICB9XG4gICAgY3JlYXRlQ29tbWVudChkYXRhKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmRvY3VtZW50LmNyZWF0ZUNvbW1lbnQoZGF0YSk7XG4gICAgfVxufVxuZXhwb3J0IHZhciBET007XG4oZnVuY3Rpb24gKERPTSkge1xuICAgIGNsYXNzIFRyZWVDb25zdHJ1Y3Rpb24gZXh0ZW5kcyBET01PcGVyYXRpb25zIHtcbiAgICAgICAgY3JlYXRlRWxlbWVudE5TKG5hbWVzcGFjZSwgdGFnKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMobmFtZXNwYWNlLCB0YWcpO1xuICAgICAgICB9XG4gICAgICAgIHNldEF0dHJpYnV0ZShlbGVtZW50LCBuYW1lLCB2YWx1ZSwgbmFtZXNwYWNlKSB7XG4gICAgICAgICAgICBpZiAobmFtZXNwYWNlKSB7XG4gICAgICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGVOUyhuYW1lc3BhY2UsIG5hbWUsIHZhbHVlKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUobmFtZSwgdmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIERPTS5UcmVlQ29uc3RydWN0aW9uID0gVHJlZUNvbnN0cnVjdGlvbjtcbiAgICBsZXQgYXBwbGllZFRyZWVDb250cnVjdGlvbiA9IFRyZWVDb25zdHJ1Y3Rpb247XG4gICAgYXBwbGllZFRyZWVDb250cnVjdGlvbiA9IHRyZWVDb25zdHJ1Y3Rpb25Ob2RlTWVyZ2luZ0ZpeChkb2MsIGFwcGxpZWRUcmVlQ29udHJ1Y3Rpb24pO1xuICAgIGFwcGxpZWRUcmVlQ29udHJ1Y3Rpb24gPSB0cmVlQ29uc3RydWN0aW9uVGFibGVFbGVtZW50Rml4KGRvYywgYXBwbGllZFRyZWVDb250cnVjdGlvbik7XG4gICAgYXBwbGllZFRyZWVDb250cnVjdGlvbiA9IHRyZWVDb25zdHJ1Y3Rpb25TdmdFbGVtZW50Rml4KGRvYywgYXBwbGllZFRyZWVDb250cnVjdGlvbiwgU1ZHX05BTUVTUEFDRSk7XG4gICAgRE9NLkRPTVRyZWVDb25zdHJ1Y3Rpb24gPSBhcHBsaWVkVHJlZUNvbnRydWN0aW9uO1xufSkoRE9NIHx8IChET00gPSB7fSkpO1xuZXhwb3J0IGNsYXNzIERPTUNoYW5nZXMgZXh0ZW5kcyBET01PcGVyYXRpb25zIHtcbiAgICBjb25zdHJ1Y3Rvcihkb2N1bWVudCkge1xuICAgICAgICBzdXBlcihkb2N1bWVudCk7XG4gICAgICAgIHRoaXMuZG9jdW1lbnQgPSBkb2N1bWVudDtcbiAgICAgICAgdGhpcy5uYW1lc3BhY2UgPSBudWxsO1xuICAgIH1cbiAgICBzZXRBdHRyaWJ1dGUoZWxlbWVudCwgbmFtZSwgdmFsdWUpIHtcbiAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUobmFtZSwgdmFsdWUpO1xuICAgIH1cbiAgICBzZXRBdHRyaWJ1dGVOUyhlbGVtZW50LCBuYW1lc3BhY2UsIG5hbWUsIHZhbHVlKSB7XG4gICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlTlMobmFtZXNwYWNlLCBuYW1lLCB2YWx1ZSk7XG4gICAgfVxuICAgIHJlbW92ZUF0dHJpYnV0ZShlbGVtZW50LCBuYW1lKSB7XG4gICAgICAgIGVsZW1lbnQucmVtb3ZlQXR0cmlidXRlKG5hbWUpO1xuICAgIH1cbiAgICByZW1vdmVBdHRyaWJ1dGVOUyhlbGVtZW50LCBuYW1lc3BhY2UsIG5hbWUpIHtcbiAgICAgICAgZWxlbWVudC5yZW1vdmVBdHRyaWJ1dGVOUyhuYW1lc3BhY2UsIG5hbWUpO1xuICAgIH1cbiAgICBpbnNlcnROb2RlQmVmb3JlKHBhcmVudCwgbm9kZSwgcmVmZXJlbmNlKSB7XG4gICAgICAgIGlmIChpc0RvY3VtZW50RnJhZ21lbnQobm9kZSkpIHtcbiAgICAgICAgICAgIGxldCB7IGZpcnN0Q2hpbGQsIGxhc3RDaGlsZCB9ID0gbm9kZTtcbiAgICAgICAgICAgIHRoaXMuaW5zZXJ0QmVmb3JlKHBhcmVudCwgbm9kZSwgcmVmZXJlbmNlKTtcbiAgICAgICAgICAgIHJldHVybiBuZXcgQ29uY3JldGVCb3VuZHMocGFyZW50LCBmaXJzdENoaWxkLCBsYXN0Q2hpbGQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5pbnNlcnRCZWZvcmUocGFyZW50LCBub2RlLCByZWZlcmVuY2UpO1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBTaW5nbGVOb2RlQm91bmRzKHBhcmVudCwgbm9kZSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaW5zZXJ0VGV4dEJlZm9yZShwYXJlbnQsIG5leHRTaWJsaW5nLCB0ZXh0KSB7XG4gICAgICAgIGxldCB0ZXh0Tm9kZSA9IHRoaXMuY3JlYXRlVGV4dE5vZGUodGV4dCk7XG4gICAgICAgIHRoaXMuaW5zZXJ0QmVmb3JlKHBhcmVudCwgdGV4dE5vZGUsIG5leHRTaWJsaW5nKTtcbiAgICAgICAgcmV0dXJuIHRleHROb2RlO1xuICAgIH1cbiAgICBpbnNlcnRCZWZvcmUoZWxlbWVudCwgbm9kZSwgcmVmZXJlbmNlKSB7XG4gICAgICAgIGVsZW1lbnQuaW5zZXJ0QmVmb3JlKG5vZGUsIHJlZmVyZW5jZSk7XG4gICAgfVxuICAgIGluc2VydEFmdGVyKGVsZW1lbnQsIG5vZGUsIHJlZmVyZW5jZSkge1xuICAgICAgICB0aGlzLmluc2VydEJlZm9yZShlbGVtZW50LCBub2RlLCByZWZlcmVuY2UubmV4dFNpYmxpbmcpO1xuICAgIH1cbn1cbmV4cG9ydCBmdW5jdGlvbiBpbnNlcnRIVE1MQmVmb3JlKF91c2VsZXNzLCBfcGFyZW50LCBfbmV4dFNpYmxpbmcsIGh0bWwpIHtcbiAgICAvLyBUeXBlU2NyaXB0IHZlbmRvcmVkIGFuIG9sZCB2ZXJzaW9uIG9mIHRoZSBET00gc3BlYyB3aGVyZSBgaW5zZXJ0QWRqYWNlbnRIVE1MYFxuICAgIC8vIG9ubHkgZXhpc3RzIG9uIGBIVE1MRWxlbWVudGAgYnV0IG5vdCBvbiBgRWxlbWVudGAuIFdlIGFjdHVhbGx5IHdvcmsgd2l0aCB0aGVcbiAgICAvLyBuZXdlciB2ZXJzaW9uIG9mIHRoZSBET00gQVBJIGhlcmUgKGFuZCBtb25rZXktcGF0Y2ggdGhpcyBtZXRob2QgaW4gYC4vY29tcGF0YFxuICAgIC8vIHdoZW4gd2UgZGV0ZWN0IG9sZGVyIGJyb3dzZXJzKS4gVGhpcyBpcyBhIGhhY2sgdG8gd29yayBhcm91bmQgdGhpcyBsaW1pdGF0aW9uLlxuICAgIGxldCBwYXJlbnQgPSBfcGFyZW50O1xuICAgIGxldCB1c2VsZXNzID0gX3VzZWxlc3M7XG4gICAgbGV0IG5leHRTaWJsaW5nID0gX25leHRTaWJsaW5nO1xuICAgIGxldCBwcmV2ID0gbmV4dFNpYmxpbmcgPyBuZXh0U2libGluZy5wcmV2aW91c1NpYmxpbmcgOiBwYXJlbnQubGFzdENoaWxkO1xuICAgIGxldCBsYXN0O1xuICAgIGlmIChodG1sID09PSBudWxsIHx8IGh0bWwgPT09ICcnKSB7XG4gICAgICAgIHJldHVybiBuZXcgQ29uY3JldGVCb3VuZHMocGFyZW50LCBudWxsLCBudWxsKTtcbiAgICB9XG4gICAgaWYgKG5leHRTaWJsaW5nID09PSBudWxsKSB7XG4gICAgICAgIHBhcmVudC5pbnNlcnRBZGphY2VudEhUTUwoJ2JlZm9yZUVuZCcsIGh0bWwpO1xuICAgICAgICBsYXN0ID0gcGFyZW50Lmxhc3RDaGlsZDtcbiAgICB9IGVsc2UgaWYgKG5leHRTaWJsaW5nIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpIHtcbiAgICAgICAgbmV4dFNpYmxpbmcuaW5zZXJ0QWRqYWNlbnRIVE1MKCdiZWZvcmVCZWdpbicsIGh0bWwpO1xuICAgICAgICBsYXN0ID0gbmV4dFNpYmxpbmcucHJldmlvdXNTaWJsaW5nO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIE5vbi1lbGVtZW50IG5vZGVzIGRvIG5vdCBzdXBwb3J0IGluc2VydEFkamFjZW50SFRNTCwgc28gYWRkIGFuXG4gICAgICAgIC8vIGVsZW1lbnQgYW5kIGNhbGwgaXQgb24gdGhhdCBlbGVtZW50LiBUaGVuIHJlbW92ZSB0aGUgZWxlbWVudC5cbiAgICAgICAgLy9cbiAgICAgICAgLy8gVGhpcyBhbHNvIHByb3RlY3RzIEVkZ2UsIElFIGFuZCBGaXJlZm94IHcvbyB0aGUgaW5zcGVjdG9yIG9wZW5cbiAgICAgICAgLy8gZnJvbSBtZXJnaW5nIGFkamFjZW50IHRleHQgbm9kZXMuIFNlZSAuL2NvbXBhdC90ZXh0LW5vZGUtbWVyZ2luZy1maXgudHNcbiAgICAgICAgcGFyZW50Lmluc2VydEJlZm9yZSh1c2VsZXNzLCBuZXh0U2libGluZyk7XG4gICAgICAgIHVzZWxlc3MuaW5zZXJ0QWRqYWNlbnRIVE1MKCdiZWZvcmVCZWdpbicsIGh0bWwpO1xuICAgICAgICBsYXN0ID0gdXNlbGVzcy5wcmV2aW91c1NpYmxpbmc7XG4gICAgICAgIHBhcmVudC5yZW1vdmVDaGlsZCh1c2VsZXNzKTtcbiAgICB9XG4gICAgbGV0IGZpcnN0ID0gcHJldiA/IHByZXYubmV4dFNpYmxpbmcgOiBwYXJlbnQuZmlyc3RDaGlsZDtcbiAgICByZXR1cm4gbmV3IENvbmNyZXRlQm91bmRzKHBhcmVudCwgZmlyc3QsIGxhc3QpO1xufVxuZnVuY3Rpb24gaXNEb2N1bWVudEZyYWdtZW50KG5vZGUpIHtcbiAgICByZXR1cm4gbm9kZS5ub2RlVHlwZSA9PT0gTm9kZS5ET0NVTUVOVF9GUkFHTUVOVF9OT0RFO1xufVxubGV0IGhlbHBlciA9IERPTUNoYW5nZXM7XG5oZWxwZXIgPSBkb21DaGFuZ2VzTm9kZU1lcmdpbmdGaXgoZG9jLCBoZWxwZXIpO1xuaGVscGVyID0gZG9tQ2hhbmdlc1RhYmxlRWxlbWVudEZpeChkb2MsIGhlbHBlcik7XG5oZWxwZXIgPSBkb21DaGFuZ2VzU3ZnRWxlbWVudEZpeChkb2MsIGhlbHBlciwgU1ZHX05BTUVTUEFDRSk7XG5leHBvcnQgZGVmYXVsdCBoZWxwZXI7XG5leHBvcnQgY29uc3QgRE9NVHJlZUNvbnN0cnVjdGlvbiA9IERPTS5ET01UcmVlQ29uc3RydWN0aW9uOyJdfQ==
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9kb20vaGVscGVyLmpzIl0sIm5hbWVzIjpbIkNvbmNyZXRlQm91bmRzIiwiU2luZ2xlTm9kZUJvdW5kcyIsImRvbUNoYW5nZXMiLCJkb21DaGFuZ2VzVGFibGVFbGVtZW50Rml4IiwidHJlZUNvbnN0cnVjdGlvbiIsInRyZWVDb25zdHJ1Y3Rpb25UYWJsZUVsZW1lbnRGaXgiLCJkb21DaGFuZ2VzU3ZnRWxlbWVudEZpeCIsInRyZWVDb25zdHJ1Y3Rpb25TdmdFbGVtZW50Rml4IiwiZG9tQ2hhbmdlc05vZGVNZXJnaW5nRml4IiwidHJlZUNvbnN0cnVjdGlvbk5vZGVNZXJnaW5nRml4IiwiU1ZHX05BTUVTUEFDRSIsIlNWR19JTlRFR1JBVElPTl9QT0lOVFMiLCJmb3JlaWduT2JqZWN0IiwiZGVzYyIsInRpdGxlIiwiQkxBQ0tMSVNUX1RBQkxFIiwiT2JqZWN0IiwiY3JlYXRlIiwiZm9yRWFjaCIsInRhZyIsIldISVRFU1BBQ0UiLCJkb2MiLCJkb2N1bWVudCIsImlzV2hpdGVzcGFjZSIsInN0cmluZyIsInRlc3QiLCJtb3ZlTm9kZXNCZWZvcmUiLCJzb3VyY2UiLCJ0YXJnZXQiLCJuZXh0U2libGluZyIsImZpcnN0IiwiZmlyc3RDaGlsZCIsImxhc3QiLCJjdXJyZW50IiwiaW5zZXJ0QmVmb3JlIiwiRE9NT3BlcmF0aW9ucyIsInNldHVwVXNlbGVzc0VsZW1lbnQiLCJ1c2VsZXNzRWxlbWVudCIsImNyZWF0ZUVsZW1lbnQiLCJjb250ZXh0IiwiaXNFbGVtZW50SW5TVkdOYW1lc3BhY2UiLCJpc0hUTUxJbnRlZ3JhdGlvblBvaW50IiwibmFtZXNwYWNlVVJJIiwidGFnTmFtZSIsIkVycm9yIiwiY3JlYXRlRWxlbWVudE5TIiwicGFyZW50Iiwibm9kZSIsInJlZmVyZW5jZSIsImluc2VydEhUTUxCZWZvcmUiLCJfcGFyZW50IiwiaHRtbCIsImNyZWF0ZVRleHROb2RlIiwidGV4dCIsImNyZWF0ZUNvbW1lbnQiLCJkYXRhIiwiRE9NIiwiVHJlZUNvbnN0cnVjdGlvbiIsIm5hbWVzcGFjZSIsInNldEF0dHJpYnV0ZSIsImVsZW1lbnQiLCJuYW1lIiwidmFsdWUiLCJzZXRBdHRyaWJ1dGVOUyIsImFwcGxpZWRUcmVlQ29udHJ1Y3Rpb24iLCJET01UcmVlQ29uc3RydWN0aW9uIiwiRE9NQ2hhbmdlcyIsInJlbW92ZUF0dHJpYnV0ZSIsInJlbW92ZUF0dHJpYnV0ZU5TIiwiaW5zZXJ0Tm9kZUJlZm9yZSIsImlzRG9jdW1lbnRGcmFnbWVudCIsImxhc3RDaGlsZCIsImluc2VydFRleHRCZWZvcmUiLCJ0ZXh0Tm9kZSIsImluc2VydEFmdGVyIiwiX3VzZWxlc3MiLCJfbmV4dFNpYmxpbmciLCJ1c2VsZXNzIiwicHJldiIsInByZXZpb3VzU2libGluZyIsImluc2VydEFkamFjZW50SFRNTCIsIkhUTUxFbGVtZW50IiwicmVtb3ZlQ2hpbGQiLCJub2RlVHlwZSIsIk5vZGUiLCJET0NVTUVOVF9GUkFHTUVOVF9OT0RFIiwiaGVscGVyIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQUEsU0FBU0EsY0FBVCxFQUF5QkMsZ0JBQXpCLFFBQWlELFdBQWpEO0FBQ0EsU0FBU0MsY0FBY0MseUJBQXZCLEVBQWtEQyxvQkFBb0JDLCtCQUF0RSxRQUE2RywwQkFBN0c7QUFDQSxTQUFTSCxjQUFjSSx1QkFBdkIsRUFBZ0RGLG9CQUFvQkcsNkJBQXBFLFFBQXlHLDhCQUF6RztBQUNBLFNBQVNMLGNBQWNNLHdCQUF2QixFQUFpREosb0JBQW9CSyw4QkFBckUsUUFBMkcsaUNBQTNHO0FBQ0EsT0FBTyxJQUFNQyxnQkFBZ0IsNEJBQXRCO0FBQ1A7QUFDQSxJQUFNQyx5QkFBeUIsRUFBRUMsZUFBZSxDQUFqQixFQUFvQkMsTUFBTSxDQUExQixFQUE2QkMsT0FBTyxDQUFwQyxFQUEvQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPLElBQU1DLGtCQUFrQkMsT0FBT0MsTUFBUCxDQUFjLElBQWQsQ0FBeEI7QUFDUCxDQUFDLEdBQUQsRUFBTSxLQUFOLEVBQWEsWUFBYixF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LENBQTJCLGFBQTNCLEVBQTBDN0IsSUFBMUM7QUFDQW5CLGVBQU82QyxRQUFRRSxlQUFmO0FBQ0FqQyxlQUFPb0MsV0FBUCxDQUFtQkwsT0FBbkI7QUFDSDtBQUNELFFBQUkvQyxRQUFRZ0QsT0FBT0EsS0FBS2pELFdBQVosR0FBMEJpQixPQUFPZixVQUE3QztBQUNBLFdBQU8sSUFBSS9CLGNBQUosQ0FBbUI4QyxNQUFuQixFQUEyQmhCLEtBQTNCLEVBQWtDRSxJQUFsQyxDQUFQO0FBQ0g7QUFDRCxTQUFTc0Msa0JBQVQsQ0FBNEJ2QixJQUE1QixFQUFrQztBQUM5QixXQUFPQSxLQUFLb0MsUUFBTCxLQUFrQkMsS0FBS0Msc0JBQTlCO0FBQ0g7QUFDRCxJQUFJQyxTQUFTcEIsVUFBYjtBQUNBb0IsU0FBUzlFLHlCQUF5QmEsR0FBekIsRUFBOEJpRSxNQUE5QixDQUFUO0FBQ0FBLFNBQVNuRiwwQkFBMEJrQixHQUExQixFQUErQmlFLE1BQS9CLENBQVQ7QUFDQUEsU0FBU2hGLHdCQUF3QmUsR0FBeEIsRUFBNkJpRSxNQUE3QixFQUFxQzVFLGFBQXJDLENBQVQ7QUFDQSxlQUFlNEUsTUFBZjtBQUNBLE9BQU8sSUFBTXJCLHNCQUFzQlQsSUFBSVMsbUJBQWhDIiwiZmlsZSI6ImxpYi9kb20vaGVscGVyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29uY3JldGVCb3VuZHMsIFNpbmdsZU5vZGVCb3VuZHMgfSBmcm9tICcuLi9ib3VuZHMnO1xuaW1wb3J0IHsgZG9tQ2hhbmdlcyBhcyBkb21DaGFuZ2VzVGFibGVFbGVtZW50Rml4LCB0cmVlQ29uc3RydWN0aW9uIGFzIHRyZWVDb25zdHJ1Y3Rpb25UYWJsZUVsZW1lbnRGaXggfSBmcm9tICcuLi9jb21wYXQvaW5uZXItaHRtbC1maXgnO1xuaW1wb3J0IHsgZG9tQ2hhbmdlcyBhcyBkb21DaGFuZ2VzU3ZnRWxlbWVudEZpeCwgdHJlZUNvbnN0cnVjdGlvbiBhcyB0cmVlQ29uc3RydWN0aW9uU3ZnRWxlbWVudEZpeCB9IGZyb20gJy4uL2NvbXBhdC9zdmctaW5uZXItaHRtbC1maXgnO1xuaW1wb3J0IHsgZG9tQ2hhbmdlcyBhcyBkb21DaGFuZ2VzTm9kZU1lcmdpbmdGaXgsIHRyZWVDb25zdHJ1Y3Rpb24gYXMgdHJlZUNvbnN0cnVjdGlvbk5vZGVNZXJnaW5nRml4IH0gZnJvbSAnLi4vY29tcGF0L3RleHQtbm9kZS1tZXJnaW5nLWZpeCc7XG5leHBvcnQgY29uc3QgU1ZHX05BTUVTUEFDRSA9ICdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zyc7XG4vLyBodHRwOi8vd3d3LnczLm9yZy9UUi9odG1sL3N5bnRheC5odG1sI2h0bWwtaW50ZWdyYXRpb24tcG9pbnRcbmNvbnN0IFNWR19JTlRFR1JBVElPTl9QT0lOVFMgPSB7IGZvcmVpZ25PYmplY3Q6IDEsIGRlc2M6IDEsIHRpdGxlOiAxIH07XG4vLyBodHRwOi8vd3d3LnczLm9yZy9UUi9odG1sL3N5bnRheC5odG1sI2FkanVzdC1zdmctYXR0cmlidXRlc1xuLy8gVE9ETzogQWRqdXN0IFNWRyBhdHRyaWJ1dGVzXG4vLyBodHRwOi8vd3d3LnczLm9yZy9UUi9odG1sL3N5bnRheC5odG1sI3BhcnNpbmctbWFpbi1pbmZvcmVpZ25cbi8vIFRPRE86IEFkanVzdCBTVkcgZWxlbWVudHNcbi8vIGh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWwvc3ludGF4Lmh0bWwjcGFyc2luZy1tYWluLWluZm9yZWlnblxuZXhwb3J0IGNvbnN0IEJMQUNLTElTVF9UQUJMRSA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG5bXCJiXCIsIFwiYmlnXCIsIFwiYmxvY2txdW90ZVwiLCBcImJvZHlcIiwgXCJiclwiLCBcImNlbnRlclwiLCBcImNvZGVcIiwgXCJkZFwiLCBcImRpdlwiLCBcImRsXCIsIFwiZHRcIiwgXCJlbVwiLCBcImVtYmVkXCIsIFwiaDFcIiwgXCJoMlwiLCBcImgzXCIsIFwiaDRcIiwgXCJoNVwiLCBcImg2XCIsIFwiaGVhZFwiLCBcImhyXCIsIFwiaVwiLCBcImltZ1wiLCBcImxpXCIsIFwibGlzdGluZ1wiLCBcIm1haW5cIiwgXCJtZXRhXCIsIFwibm9iclwiLCBcIm9sXCIsIFwicFwiLCBcInByZVwiLCBcInJ1YnlcIiwgXCJzXCIsIFwic21hbGxcIiwgXCJzcGFuXCIsIFwic3Ryb25nXCIsIFwic3RyaWtlXCIsIFwic3ViXCIsIFwic3VwXCIsIFwidGFibGVcIiwgXCJ0dFwiLCBcInVcIiwgXCJ1bFwiLCBcInZhclwiXS5mb3JFYWNoKHRhZyA9PiBCTEFDS0xJU1RfVEFCTEVbdGFnXSA9IDEpO1xuY29uc3QgV0hJVEVTUEFDRSA9IC9bXFx0LVxcciBcXHhBMFxcdTE2ODBcXHUxODBFXFx1MjAwMC1cXHUyMDBBXFx1MjAyOFxcdTIwMjlcXHUyMDJGXFx1MjA1RlxcdTMwMDBcXHVGRUZGXS87XG5sZXQgZG9jID0gdHlwZW9mIGRvY3VtZW50ID09PSAndW5kZWZpbmVkJyA/IG51bGwgOiBkb2N1bWVudDtcbmV4cG9ydCBmdW5jdGlvbiBpc1doaXRlc3BhY2Uoc3RyaW5nKSB7XG4gICAgcmV0dXJuIFdISVRFU1BBQ0UudGVzdChzdHJpbmcpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIG1vdmVOb2Rlc0JlZm9yZShzb3VyY2UsIHRhcmdldCwgbmV4dFNpYmxpbmcpIHtcbiAgICBsZXQgZmlyc3QgPSBzb3VyY2UuZmlyc3RDaGlsZDtcbiAgICBsZXQgbGFzdCA9IG51bGw7XG4gICAgbGV0IGN1cnJlbnQgPSBmaXJzdDtcbiAgICB3aGlsZSAoY3VycmVudCkge1xuICAgICAgICBsYXN0ID0gY3VycmVudDtcbiAgICAgICAgY3VycmVudCA9IGN1cnJlbnQubmV4dFNpYmxpbmc7XG4gICAgICAgIHRhcmdldC5pbnNlcnRCZWZvcmUobGFzdCwgbmV4dFNpYmxpbmcpO1xuICAgIH1cbiAgICByZXR1cm4gW2ZpcnN0LCBsYXN0XTtcbn1cbmV4cG9ydCBjbGFzcyBET01PcGVyYXRpb25zIHtcbiAgICBjb25zdHJ1Y3Rvcihkb2N1bWVudCkge1xuICAgICAgICB0aGlzLmRvY3VtZW50ID0gZG9jdW1lbnQ7XG4gICAgICAgIHRoaXMuc2V0dXBVc2VsZXNzRWxlbWVudCgpO1xuICAgIH1cbiAgICAvLyBzcGxpdCBpbnRvIHNlcGVyYXRlIG1ldGhvZCBzbyB0aGF0IE5vZGVET01UcmVlQ29uc3RydWN0aW9uXG4gICAgLy8gY2FuIG92ZXJyaWRlIGl0LlxuICAgIHNldHVwVXNlbGVzc0VsZW1lbnQoKSB7XG4gICAgICAgIHRoaXMudXNlbGVzc0VsZW1lbnQgPSB0aGlzLmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgIH1cbiAgICBjcmVhdGVFbGVtZW50KHRhZywgY29udGV4dCkge1xuICAgICAgICBsZXQgaXNFbGVtZW50SW5TVkdOYW1lc3BhY2UsIGlzSFRNTEludGVncmF0aW9uUG9pbnQ7XG4gICAgICAgIGlmIChjb250ZXh0KSB7XG4gICAgICAgICAgICBpc0VsZW1lbnRJblNWR05hbWVzcGFjZSA9IGNvbnRleHQubmFtZXNwYWNlVVJJID09PSBTVkdfTkFNRVNQQUNFIHx8IHRhZyA9PT0gJ3N2Zyc7XG4gICAgICAgICAgICBpc0hUTUxJbnRlZ3JhdGlvblBvaW50ID0gU1ZHX0lOVEVHUkFUSU9OX1BPSU5UU1tjb250ZXh0LnRhZ05hbWVdO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaXNFbGVtZW50SW5TVkdOYW1lc3BhY2UgPSB0YWcgPT09ICdzdmcnO1xuICAgICAgICAgICAgaXNIVE1MSW50ZWdyYXRpb25Qb2ludCA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpc0VsZW1lbnRJblNWR05hbWVzcGFjZSAmJiAhaXNIVE1MSW50ZWdyYXRpb25Qb2ludCkge1xuICAgICAgICAgICAgLy8gRklYTUU6IFRoaXMgZG9lcyBub3QgcHJvcGVybHkgaGFuZGxlIDxmb250PiB3aXRoIGNvbG9yLCBmYWNlLCBvclxuICAgICAgICAgICAgLy8gc2l6ZSBhdHRyaWJ1dGVzLCB3aGljaCBpcyBhbHNvIGRpc2FsbG93ZWQgYnkgdGhlIHNwZWMuIFdlIHNob3VsZCBmaXhcbiAgICAgICAgICAgIC8vIHRoaXMuXG4gICAgICAgICAgICBpZiAoQkxBQ0tMSVNUX1RBQkxFW3RhZ10pIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYENhbm5vdCBjcmVhdGUgYSAke3RhZ30gaW5zaWRlIGFuIFNWRyBjb250ZXh0YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoU1ZHX05BTUVTUEFDRSwgdGFnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGFnKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBpbnNlcnRCZWZvcmUocGFyZW50LCBub2RlLCByZWZlcmVuY2UpIHtcbiAgICAgICAgcGFyZW50Lmluc2VydEJlZm9yZShub2RlLCByZWZlcmVuY2UpO1xuICAgIH1cbiAgICBpbnNlcnRIVE1MQmVmb3JlKF9wYXJlbnQsIG5leHRTaWJsaW5nLCBodG1sKSB7XG4gICAgICAgIHJldHVybiBpbnNlcnRIVE1MQmVmb3JlKHRoaXMudXNlbGVzc0VsZW1lbnQsIF9wYXJlbnQsIG5leHRTaWJsaW5nLCBodG1sKTtcbiAgICB9XG4gICAgY3JlYXRlVGV4dE5vZGUodGV4dCkge1xuICAgICAgICByZXR1cm4gdGhpcy5kb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSh0ZXh0KTtcbiAgICB9XG4gICAgY3JlYXRlQ29tbWVudChkYXRhKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmRvY3VtZW50LmNyZWF0ZUNvbW1lbnQoZGF0YSk7XG4gICAgfVxufVxuZXhwb3J0IHZhciBET007XG4oZnVuY3Rpb24gKERPTSkge1xuICAgIGNsYXNzIFRyZWVDb25zdHJ1Y3Rpb24gZXh0ZW5kcyBET01PcGVyYXRpb25zIHtcbiAgICAgICAgY3JlYXRlRWxlbWVudE5TKG5hbWVzcGFjZSwgdGFnKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMobmFtZXNwYWNlLCB0YWcpO1xuICAgICAgICB9XG4gICAgICAgIHNldEF0dHJpYnV0ZShlbGVtZW50LCBuYW1lLCB2YWx1ZSwgbmFtZXNwYWNlKSB7XG4gICAgICAgICAgICBpZiAobmFtZXNwYWNlKSB7XG4gICAgICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGVOUyhuYW1lc3BhY2UsIG5hbWUsIHZhbHVlKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUobmFtZSwgdmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIERPTS5UcmVlQ29uc3RydWN0aW9uID0gVHJlZUNvbnN0cnVjdGlvbjtcbiAgICBsZXQgYXBwbGllZFRyZWVDb250cnVjdGlvbiA9IFRyZWVDb25zdHJ1Y3Rpb247XG4gICAgYXBwbGllZFRyZWVDb250cnVjdGlvbiA9IHRyZWVDb25zdHJ1Y3Rpb25Ob2RlTWVyZ2luZ0ZpeChkb2MsIGFwcGxpZWRUcmVlQ29udHJ1Y3Rpb24pO1xuICAgIGFwcGxpZWRUcmVlQ29udHJ1Y3Rpb24gPSB0cmVlQ29uc3RydWN0aW9uVGFibGVFbGVtZW50Rml4KGRvYywgYXBwbGllZFRyZWVDb250cnVjdGlvbik7XG4gICAgYXBwbGllZFRyZWVDb250cnVjdGlvbiA9IHRyZWVDb25zdHJ1Y3Rpb25TdmdFbGVtZW50Rml4KGRvYywgYXBwbGllZFRyZWVDb250cnVjdGlvbiwgU1ZHX05BTUVTUEFDRSk7XG4gICAgRE9NLkRPTVRyZWVDb25zdHJ1Y3Rpb24gPSBhcHBsaWVkVHJlZUNvbnRydWN0aW9uO1xufSkoRE9NIHx8IChET00gPSB7fSkpO1xuZXhwb3J0IGNsYXNzIERPTUNoYW5nZXMgZXh0ZW5kcyBET01PcGVyYXRpb25zIHtcbiAgICBjb25zdHJ1Y3Rvcihkb2N1bWVudCkge1xuICAgICAgICBzdXBlcihkb2N1bWVudCk7XG4gICAgICAgIHRoaXMuZG9jdW1lbnQgPSBkb2N1bWVudDtcbiAgICAgICAgdGhpcy5uYW1lc3BhY2UgPSBudWxsO1xuICAgIH1cbiAgICBzZXRBdHRyaWJ1dGUoZWxlbWVudCwgbmFtZSwgdmFsdWUpIHtcbiAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUobmFtZSwgdmFsdWUpO1xuICAgIH1cbiAgICBzZXRBdHRyaWJ1dGVOUyhlbGVtZW50LCBuYW1lc3BhY2UsIG5hbWUsIHZhbHVlKSB7XG4gICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlTlMobmFtZXNwYWNlLCBuYW1lLCB2YWx1ZSk7XG4gICAgfVxuICAgIHJlbW92ZUF0dHJpYnV0ZShlbGVtZW50LCBuYW1lKSB7XG4gICAgICAgIGVsZW1lbnQucmVtb3ZlQXR0cmlidXRlKG5hbWUpO1xuICAgIH1cbiAgICByZW1vdmVBdHRyaWJ1dGVOUyhlbGVtZW50LCBuYW1lc3BhY2UsIG5hbWUpIHtcbiAgICAgICAgZWxlbWVudC5yZW1vdmVBdHRyaWJ1dGVOUyhuYW1lc3BhY2UsIG5hbWUpO1xuICAgIH1cbiAgICBpbnNlcnROb2RlQmVmb3JlKHBhcmVudCwgbm9kZSwgcmVmZXJlbmNlKSB7XG4gICAgICAgIGlmIChpc0RvY3VtZW50RnJhZ21lbnQobm9kZSkpIHtcbiAgICAgICAgICAgIGxldCB7IGZpcnN0Q2hpbGQsIGxhc3RDaGlsZCB9ID0gbm9kZTtcbiAgICAgICAgICAgIHRoaXMuaW5zZXJ0QmVmb3JlKHBhcmVudCwgbm9kZSwgcmVmZXJlbmNlKTtcbiAgICAgICAgICAgIHJldHVybiBuZXcgQ29uY3JldGVCb3VuZHMocGFyZW50LCBmaXJzdENoaWxkLCBsYXN0Q2hpbGQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5pbnNlcnRCZWZvcmUocGFyZW50LCBub2RlLCByZWZlcmVuY2UpO1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBTaW5nbGVOb2RlQm91bmRzKHBhcmVudCwgbm9kZSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaW5zZXJ0VGV4dEJlZm9yZShwYXJlbnQsIG5leHRTaWJsaW5nLCB0ZXh0KSB7XG4gICAgICAgIGxldCB0ZXh0Tm9kZSA9IHRoaXMuY3JlYXRlVGV4dE5vZGUodGV4dCk7XG4gICAgICAgIHRoaXMuaW5zZXJ0QmVmb3JlKHBhcmVudCwgdGV4dE5vZGUsIG5leHRTaWJsaW5nKTtcbiAgICAgICAgcmV0dXJuIHRleHROb2RlO1xuICAgIH1cbiAgICBpbnNlcnRCZWZvcmUoZWxlbWVudCwgbm9kZSwgcmVmZXJlbmNlKSB7XG4gICAgICAgIGVsZW1lbnQuaW5zZXJ0QmVmb3JlKG5vZGUsIHJlZmVyZW5jZSk7XG4gICAgfVxuICAgIGluc2VydEFmdGVyKGVsZW1lbnQsIG5vZGUsIHJlZmVyZW5jZSkge1xuICAgICAgICB0aGlzLmluc2VydEJlZm9yZShlbGVtZW50LCBub2RlLCByZWZlcmVuY2UubmV4dFNpYmxpbmcpO1xuICAgIH1cbn1cbmV4cG9ydCBmdW5jdGlvbiBpbnNlcnRIVE1MQmVmb3JlKF91c2VsZXNzLCBfcGFyZW50LCBfbmV4dFNpYmxpbmcsIGh0bWwpIHtcbiAgICAvLyBUeXBlU2NyaXB0IHZlbmRvcmVkIGFuIG9sZCB2ZXJzaW9uIG9mIHRoZSBET00gc3BlYyB3aGVyZSBgaW5zZXJ0QWRqYWNlbnRIVE1MYFxuICAgIC8vIG9ubHkgZXhpc3RzIG9uIGBIVE1MRWxlbWVudGAgYnV0IG5vdCBvbiBgRWxlbWVudGAuIFdlIGFjdHVhbGx5IHdvcmsgd2l0aCB0aGVcbiAgICAvLyBuZXdlciB2ZXJzaW9uIG9mIHRoZSBET00gQVBJIGhlcmUgKGFuZCBtb25rZXktcGF0Y2ggdGhpcyBtZXRob2QgaW4gYC4vY29tcGF0YFxuICAgIC8vIHdoZW4gd2UgZGV0ZWN0IG9sZGVyIGJyb3dzZXJzKS4gVGhpcyBpcyBhIGhhY2sgdG8gd29yayBhcm91bmQgdGhpcyBsaW1pdGF0aW9uLlxuICAgIGxldCBwYXJlbnQgPSBfcGFyZW50O1xuICAgIGxldCB1c2VsZXNzID0gX3VzZWxlc3M7XG4gICAgbGV0IG5leHRTaWJsaW5nID0gX25leHRTaWJsaW5nO1xuICAgIGxldCBwcmV2ID0gbmV4dFNpYmxpbmcgPyBuZXh0U2libGluZy5wcmV2aW91c1NpYmxpbmcgOiBwYXJlbnQubGFzdENoaWxkO1xuICAgIGxldCBsYXN0O1xuICAgIGlmIChodG1sID09PSBudWxsIHx8IGh0bWwgPT09ICcnKSB7XG4gICAgICAgIHJldHVybiBuZXcgQ29uY3JldGVCb3VuZHMocGFyZW50LCBudWxsLCBudWxsKTtcbiAgICB9XG4gICAgaWYgKG5leHRTaWJsaW5nID09PSBudWxsKSB7XG4gICAgICAgIHBhcmVudC5pbnNlcnRBZGphY2VudEhUTUwoJ2JlZm9yZUVuZCcsIGh0bWwpO1xuICAgICAgICBsYXN0ID0gcGFyZW50Lmxhc3RDaGlsZDtcbiAgICB9IGVsc2UgaWYgKG5leHRTaWJsaW5nIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpIHtcbiAgICAgICAgbmV4dFNpYmxpbmcuaW5zZXJ0QWRqYWNlbnRIVE1MKCdiZWZvcmVCZWdpbicsIGh0bWwpO1xuICAgICAgICBsYXN0ID0gbmV4dFNpYmxpbmcucHJldmlvdXNTaWJsaW5nO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIE5vbi1lbGVtZW50IG5vZGVzIGRvIG5vdCBzdXBwb3J0IGluc2VydEFkamFjZW50SFRNTCwgc28gYWRkIGFuXG4gICAgICAgIC8vIGVsZW1lbnQgYW5kIGNhbGwgaXQgb24gdGhhdCBlbGVtZW50LiBUaGVuIHJlbW92ZSB0aGUgZWxlbWVudC5cbiAgICAgICAgLy9cbiAgICAgICAgLy8gVGhpcyBhbHNvIHByb3RlY3RzIEVkZ2UsIElFIGFuZCBGaXJlZm94IHcvbyB0aGUgaW5zcGVjdG9yIG9wZW5cbiAgICAgICAgLy8gZnJvbSBtZXJnaW5nIGFkamFjZW50IHRleHQgbm9kZXMuIFNlZSAuL2NvbXBhdC90ZXh0LW5vZGUtbWVyZ2luZy1maXgudHNcbiAgICAgICAgcGFyZW50Lmluc2VydEJlZm9yZSh1c2VsZXNzLCBuZXh0U2libGluZyk7XG4gICAgICAgIHVzZWxlc3MuaW5zZXJ0QWRqYWNlbnRIVE1MKCdiZWZvcmVCZWdpbicsIGh0bWwpO1xuICAgICAgICBsYXN0ID0gdXNlbGVzcy5wcmV2aW91c1NpYmxpbmc7XG4gICAgICAgIHBhcmVudC5yZW1vdmVDaGlsZCh1c2VsZXNzKTtcbiAgICB9XG4gICAgbGV0IGZpcnN0ID0gcHJldiA/IHByZXYubmV4dFNpYmxpbmcgOiBwYXJlbnQuZmlyc3RDaGlsZDtcbiAgICByZXR1cm4gbmV3IENvbmNyZXRlQm91bmRzKHBhcmVudCwgZmlyc3QsIGxhc3QpO1xufVxuZnVuY3Rpb24gaXNEb2N1bWVudEZyYWdtZW50KG5vZGUpIHtcbiAgICByZXR1cm4gbm9kZS5ub2RlVHlwZSA9PT0gTm9kZS5ET0NVTUVOVF9GUkFHTUVOVF9OT0RFO1xufVxubGV0IGhlbHBlciA9IERPTUNoYW5nZXM7XG5oZWxwZXIgPSBkb21DaGFuZ2VzTm9kZU1lcmdpbmdGaXgoZG9jLCBoZWxwZXIpO1xuaGVscGVyID0gZG9tQ2hhbmdlc1RhYmxlRWxlbWVudEZpeChkb2MsIGhlbHBlcik7XG5oZWxwZXIgPSBkb21DaGFuZ2VzU3ZnRWxlbWVudEZpeChkb2MsIGhlbHBlciwgU1ZHX05BTUVTUEFDRSk7XG5leHBvcnQgZGVmYXVsdCBoZWxwZXI7XG5leHBvcnQgY29uc3QgRE9NVHJlZUNvbnN0cnVjdGlvbiA9IERPTS5ET01UcmVlQ29uc3RydWN0aW9uOyJdfQ==

7

dist/types/lib/dom/helper.d.ts

@@ -12,5 +12,6 @@ import { Bounds } from '../bounds';

constructor(document: Document);
protected setupUselessElement(): void;
createElement(tag: string, context?: Simple.Element): Simple.Element;
insertBefore(parent: Element, node: Node, reference: Option<Node>): void;
insertHTMLBefore(_parent: Element, nextSibling: Node, html: string): Bounds;
insertBefore(parent: Simple.Element, node: Simple.Node, reference: Option<Simple.Node>): void;
insertHTMLBefore(_parent: Simple.Element, nextSibling: Simple.Node, html: string): Bounds;
createTextNode(text: string): Text;

@@ -47,3 +48,3 @@ createComment(data: string): Simple.Comment;

}
export declare function insertHTMLBefore(this: void, _useless: Simple.HTMLElement, _parent: Simple.Element, _nextSibling: Option<Simple.Node>, html: string): Bounds;
export declare function insertHTMLBefore(this: void, _useless: Simple.Element, _parent: Simple.Element, _nextSibling: Option<Simple.Node>, html: string): Bounds;
declare let helper: typeof DOMChanges;

@@ -50,0 +51,0 @@ export default helper;

{
"name": "@glimmer/runtime",
"version": "0.24.0-beta.2",
"version": "0.24.0-beta.3",
"description": "Minimal runtime needed to render Glimmer templates",

@@ -8,8 +8,8 @@ "repository": "https://github.com/glimmerjs/glimmer-vm/tree/master/packages/@glimmer/runtime",

"dependencies": {
"@glimmer/util": "^0.24.0-beta.2",
"@glimmer/reference": "^0.24.0-beta.2",
"@glimmer/object": "^0.24.0-beta.2",
"@glimmer/object-reference": "^0.24.0-beta.2",
"@glimmer/wire-format": "^0.24.0-beta.2",
"@glimmer/interfaces": "^0.24.0-beta.2"
"@glimmer/util": "^0.24.0-beta.3",
"@glimmer/reference": "^0.24.0-beta.3",
"@glimmer/object": "^0.24.0-beta.3",
"@glimmer/object-reference": "^0.24.0-beta.3",
"@glimmer/wire-format": "^0.24.0-beta.3",
"@glimmer/interfaces": "^0.24.0-beta.3"
},

@@ -16,0 +16,0 @@ "devDependencies": {

Sorry, the diff of this file is too big to display

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc