From e04a02d2bf475b3cb8f387b0a671a7cb801cd21f Mon Sep 17 00:00:00 2001 From: UnKnoWn Date: Tue, 1 Oct 2019 03:46:25 +0800 Subject: [PATCH] (1) Upgraded dependencies; (2) Vue component events are now emitted with raw param from typed.js events; and (3) Rebuilt Signed-off-by: UnKnoWn --- dist/vue-typed-js.browser.js | 6 +- dist/vue-typed-js.common.js | 154 +------ package-lock.json | 579 ++++++++++++--------------- package.json | 8 +- src/config/typed-component.config.js | 24 +- 5 files changed, 294 insertions(+), 477 deletions(-) diff --git a/dist/vue-typed-js.browser.js b/dist/vue-typed-js.browser.js index ca209fa..5e537cd 100644 --- a/dist/vue-typed-js.browser.js +++ b/dist/vue-typed-js.browser.js @@ -1,10 +1,10 @@ -!function(root,factory){"object"==typeof exports&&"object"==typeof module?module.exports=factory():"function"==typeof define&&define.amd?define([],factory):"object"==typeof exports?exports.VueTypedJs=factory():root.VueTypedJs=factory()}(this,function(){return function(modules){function __webpack_require__(moduleId){if(installedModules[moduleId])return installedModules[moduleId].exports;var module=installedModules[moduleId]={i:moduleId,l:!1,exports:{}};return modules[moduleId].call(module.exports,module,module.exports,__webpack_require__),module.l=!0,module.exports}var installedModules={};return __webpack_require__.m=modules,__webpack_require__.c=installedModules,__webpack_require__.i=function(value){return value},__webpack_require__.d=function(exports,name,getter){__webpack_require__.o(exports,name)||Object.defineProperty(exports,name,{configurable:!1,enumerable:!0,get:getter})},__webpack_require__.n=function(module){var getter=module&&module.__esModule?function(){return module.default}:function(){return module};return __webpack_require__.d(getter,"a",getter),getter},__webpack_require__.o=function(object,property){return Object.prototype.hasOwnProperty.call(object,property)},__webpack_require__.p="",__webpack_require__(__webpack_require__.s=3)}([function(module,exports){var g,_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(obj){return typeof obj}:function(obj){return obj&&"function"==typeof Symbol&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj};g=function(){return this}();try{g=g||Function("return this")()||(0,eval)("this")}catch(e){"object"===("undefined"==typeof window?"undefined":_typeof(window))&&(g=window)}module.exports=g},function(module,exports,__webpack_require__){__webpack_require__(7);var Component=__webpack_require__(8)(__webpack_require__(5),__webpack_require__(9),null,null);module.exports=Component.exports},function(module,__webpack_exports__,__webpack_require__){"use strict";__webpack_require__.d(__webpack_exports__,"a",function(){return props}),__webpack_require__.d(__webpack_exports__,"b",function(){return getEventHandlers});var props={strings:{type:Array,required:!1,default:function(){return["Hello World!"]}},stringsElement:{type:String,required:!1,default:null},typeSpeed:{type:Number,required:!1,default:50},startDelay:{type:Number,required:!1,default:0},backSpeed:{type:Number,required:!1,default:0},smartBackspace:{type:Boolean,required:!1,default:!0},shuffle:{type:Boolean,required:!1,default:!1},backDelay:{type:Number,required:!1,default:700},fadeOut:{type:Boolean,required:!1,default:!1},fadeOutClass:{type:String,required:!1,default:"typed-fade-out"},fadeOutDelay:{type:Number,required:!1,default:500},loop:{type:Boolean,required:!1,default:!1},loopCount:{type:Number,required:!1,default:1/0},showCursor:{type:Boolean,required:!1,default:!0},cursorChar:{type:String,required:!1,default:"|"},autoInsertCss:{type:Boolean,required:!1,default:!0},attr:{type:String,required:!1,default:null},bindInputFocusEvents:{type:Boolean,required:!1,default:!1},contentType:{type:String,required:!1,default:"html"}},getEventHandlers=function(context,typedConfig){return typedConfig.onComplete=function(){context.$emit("onComplete")},typedConfig.preStringTyped=function(){context.$emit("preStringTyped")},typedConfig.onStringTyped=function(){context.$emit("onStringTyped")},typedConfig.onLastStringBackspaced=function(){context.$emit("onLastStringBackspaced")},typedConfig.onTypingPaused=function(){context.$emit("onTypingPaused")},typedConfig.onTypingResumed=function(){context.$emit("onTypingResumed")},typedConfig.onReset=function(){context.$emit("onReset")},typedConfig.onStop=function(){context.$emit("onStop")},typedConfig.onStart=function(){context.$emit("onStart")},typedConfig.onDestroy=function(){context.$emit("onDestroy")},typedConfig}},function(module,__webpack_exports__,__webpack_require__){"use strict";Object.defineProperty(__webpack_exports__,"__esModule",{value:!0}),function(global){function install(Vue){Vue.component("vue-typed-js",__WEBPACK_IMPORTED_MODULE_0__components_VueTypedJs_vue___default.a)}__webpack_exports__.install=install;var __WEBPACK_IMPORTED_MODULE_0__components_VueTypedJs_vue__=__webpack_require__(1),__WEBPACK_IMPORTED_MODULE_0__components_VueTypedJs_vue___default=__webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__components_VueTypedJs_vue__);__webpack_require__.d(__webpack_exports__,"VueTypedJs",function(){return __WEBPACK_IMPORTED_MODULE_0__components_VueTypedJs_vue___default.a});var plugin={version:"0.1.2",install:install};__webpack_exports__.default=plugin;var GlobalVue=null;"undefined"!=typeof window?GlobalVue=window.Vue:void 0!==global&&(GlobalVue=global.Vue),GlobalVue&&GlobalVue.use(plugin)}.call(__webpack_exports__,__webpack_require__(0))},function(module,exports,__webpack_require__){(function(module){var __WEBPACK_AMD_DEFINE_FACTORY__,__WEBPACK_AMD_DEFINE_ARRAY__,__WEBPACK_AMD_DEFINE_RESULT__,_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(obj){return typeof obj}:function(obj){return obj&&"function"==typeof Symbol&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj};/*! +!function(root,factory){"object"==typeof exports&&"object"==typeof module?module.exports=factory():"function"==typeof define&&define.amd?define([],factory):"object"==typeof exports?exports.VueTypedJs=factory():root.VueTypedJs=factory()}(this,function(){return function(modules){function __webpack_require__(moduleId){if(installedModules[moduleId])return installedModules[moduleId].exports;var module=installedModules[moduleId]={i:moduleId,l:!1,exports:{}};return modules[moduleId].call(module.exports,module,module.exports,__webpack_require__),module.l=!0,module.exports}var installedModules={};return __webpack_require__.m=modules,__webpack_require__.c=installedModules,__webpack_require__.i=function(value){return value},__webpack_require__.d=function(exports,name,getter){__webpack_require__.o(exports,name)||Object.defineProperty(exports,name,{configurable:!1,enumerable:!0,get:getter})},__webpack_require__.n=function(module){var getter=module&&module.__esModule?function(){return module.default}:function(){return module};return __webpack_require__.d(getter,"a",getter),getter},__webpack_require__.o=function(object,property){return Object.prototype.hasOwnProperty.call(object,property)},__webpack_require__.p="",__webpack_require__(__webpack_require__.s=3)}([function(module,exports){var g,_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(obj){return typeof obj}:function(obj){return obj&&"function"==typeof Symbol&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj};g=function(){return this}();try{g=g||Function("return this")()||(0,eval)("this")}catch(e){"object"===("undefined"==typeof window?"undefined":_typeof(window))&&(g=window)}module.exports=g},function(module,exports,__webpack_require__){__webpack_require__(7);var Component=__webpack_require__(8)(__webpack_require__(5),__webpack_require__(9),null,null);module.exports=Component.exports},function(module,__webpack_exports__,__webpack_require__){"use strict";__webpack_require__.d(__webpack_exports__,"a",function(){return props}),__webpack_require__.d(__webpack_exports__,"b",function(){return getEventHandlers});var props={strings:{type:Array,required:!1,default:function(){return["Hello World!"]}},stringsElement:{type:String,required:!1,default:null},typeSpeed:{type:Number,required:!1,default:50},startDelay:{type:Number,required:!1,default:0},backSpeed:{type:Number,required:!1,default:0},smartBackspace:{type:Boolean,required:!1,default:!0},shuffle:{type:Boolean,required:!1,default:!1},backDelay:{type:Number,required:!1,default:700},fadeOut:{type:Boolean,required:!1,default:!1},fadeOutClass:{type:String,required:!1,default:"typed-fade-out"},fadeOutDelay:{type:Number,required:!1,default:500},loop:{type:Boolean,required:!1,default:!1},loopCount:{type:Number,required:!1,default:1/0},showCursor:{type:Boolean,required:!1,default:!0},cursorChar:{type:String,required:!1,default:"|"},autoInsertCss:{type:Boolean,required:!1,default:!0},attr:{type:String,required:!1,default:null},bindInputFocusEvents:{type:Boolean,required:!1,default:!1},contentType:{type:String,required:!1,default:"html"}},getEventHandlers=function(context,typedConfig){return typedConfig.onComplete=function(){context.$emit("onComplete")},typedConfig.preStringTyped=function(arrayPos){context.$emit("preStringTyped",arrayPos)},typedConfig.onStringTyped=function(arrayPos){context.$emit("onStringTyped",arrayPos)},typedConfig.onLastStringBackspaced=function(){context.$emit("onLastStringBackspaced")},typedConfig.onTypingPaused=function(arrayPos){context.$emit("onTypingPaused",arrayPos)},typedConfig.onTypingResumed=function(arrayPos){context.$emit("onTypingResumed",arrayPos)},typedConfig.onReset=function(){context.$emit("onReset")},typedConfig.onStop=function(arrayPos){context.$emit("onStop",arrayPos)},typedConfig.onStart=function(arrayPos){context.$emit("onStart",arrayPos)},typedConfig.onDestroy=function(){context.$emit("onDestroy")},typedConfig}},function(module,__webpack_exports__,__webpack_require__){"use strict";Object.defineProperty(__webpack_exports__,"__esModule",{value:!0}),function(global){function install(Vue){Vue.component("vue-typed-js",__WEBPACK_IMPORTED_MODULE_0__components_VueTypedJs_vue___default.a)}__webpack_exports__.install=install;var __WEBPACK_IMPORTED_MODULE_0__components_VueTypedJs_vue__=__webpack_require__(1),__WEBPACK_IMPORTED_MODULE_0__components_VueTypedJs_vue___default=__webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__components_VueTypedJs_vue__);__webpack_require__.d(__webpack_exports__,"VueTypedJs",function(){return __WEBPACK_IMPORTED_MODULE_0__components_VueTypedJs_vue___default.a});var plugin={version:"0.2.0",install:install};__webpack_exports__.default=plugin;var GlobalVue=null;"undefined"!=typeof window?GlobalVue=window.Vue:void 0!==global&&(GlobalVue=global.Vue),GlobalVue&&GlobalVue.use(plugin)}.call(__webpack_exports__,__webpack_require__(0))},function(module,exports,__webpack_require__){(function(module){var __WEBPACK_AMD_DEFINE_FACTORY__,__WEBPACK_AMD_DEFINE_ARRAY__,__WEBPACK_AMD_DEFINE_RESULT__,_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(obj){return typeof obj}:function(obj){return obj&&"function"==typeof Symbol&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj};/*! * * typed.js - A JavaScript Typing Animation Library * Author: Matt Boldt - * Version: v2.0.9 + * Version: v2.0.11 * Url: https://github.com/mattboldt/typed.js * License(s): MIT * */ -!function(root,factory){"object"===_typeof(exports)&&"object"===_typeof(module)?module.exports=factory():(__WEBPACK_AMD_DEFINE_ARRAY__=[],__WEBPACK_AMD_DEFINE_FACTORY__=factory,void 0!==(__WEBPACK_AMD_DEFINE_RESULT__="function"==typeof __WEBPACK_AMD_DEFINE_FACTORY__?__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports,__WEBPACK_AMD_DEFINE_ARRAY__):__WEBPACK_AMD_DEFINE_FACTORY__)&&(module.exports=__WEBPACK_AMD_DEFINE_RESULT__))}(0,function(){return function(modules){function __webpack_require__(moduleId){if(installedModules[moduleId])return installedModules[moduleId].exports;var module=installedModules[moduleId]={exports:{},id:moduleId,loaded:!1};return modules[moduleId].call(module.exports,module,module.exports,__webpack_require__),module.loaded=!0,module.exports}var installedModules={};return __webpack_require__.m=modules,__webpack_require__.c=installedModules,__webpack_require__.p="",__webpack_require__(0)}([function(module,exports,__webpack_require__){"use strict";function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(exports,"__esModule",{value:!0});var _createClass=function(){function defineProperties(target,props){for(var i=0;icurString.length)););var stringBeforeSkip=curString.substring(0,curStrPos),stringSkipped=curString.substring(stringBeforeSkip.length+1,curStrPos+numChars),stringAfterSkip=curString.substring(curStrPos+numChars+1);curString=stringBeforeSkip+stringSkipped+stringAfterSkip,numChars--}_this2.timeout=setTimeout(function(){_this2.toggleBlinking(!1),curStrPos>=curString.length?_this2.doneTyping(curString,curStrPos):_this2.keepTyping(curString,curStrPos,numChars),_this2.temporaryPause&&(_this2.temporaryPause=!1,_this2.options.onTypingResumed(_this2.arrayPos,_this2))},pauseTime)},humanize)}},{key:"keepTyping",value:function(curString,curStrPos,numChars){0===curStrPos&&(this.toggleBlinking(!1),this.options.preStringTyped(this.arrayPos,this)),curStrPos+=numChars;var nextString=curString.substr(0,curStrPos);this.replaceText(nextString),this.typewrite(curString,curStrPos)}},{key:"doneTyping",value:function(curString,curStrPos){var _this3=this;this.options.onStringTyped(this.arrayPos,this),this.toggleBlinking(!0),this.arrayPos===this.strings.length-1&&(this.complete(),!1===this.loop||this.curLoop===this.loopCount)||(this.timeout=setTimeout(function(){_this3.backspace(curString,curStrPos)},this.backDelay))}},{key:"backspace",value:function(curString,curStrPos){var _this4=this;if(!0===this.pause.status)return void this.setPauseStatus(curString,curStrPos,!0);if(this.fadeOut)return this.initFadeOut();this.toggleBlinking(!1);var humanize=this.humanizer(this.backSpeed);this.timeout=setTimeout(function(){curStrPos=_htmlParserJs.htmlParser.backSpaceHtmlChars(curString,curStrPos,_this4);var curStringAtPosition=curString.substr(0,curStrPos);if(_this4.replaceText(curStringAtPosition),_this4.smartBackspace){var nextString=_this4.strings[_this4.arrayPos+1];nextString&&curStringAtPosition===nextString.substr(0,curStrPos)?_this4.stopNum=curStrPos:_this4.stopNum=0}curStrPos>_this4.stopNum?(curStrPos--,_this4.backspace(curString,curStrPos)):curStrPos<=_this4.stopNum&&(_this4.arrayPos++,_this4.arrayPos===_this4.strings.length?(_this4.arrayPos=0,_this4.options.onLastStringBackspaced(),_this4.shuffleStringsIfNeeded(),_this4.begin()):_this4.typewrite(_this4.strings[_this4.sequence[_this4.arrayPos]],curStrPos))},humanize)}},{key:"complete",value:function(){this.options.onComplete(this),this.loop?this.curLoop++:this.typingComplete=!0}},{key:"setPauseStatus",value:function(curString,curStrPos,isTyping){this.pause.typewrite=isTyping,this.pause.curString=curString,this.pause.curStrPos=curStrPos}},{key:"toggleBlinking",value:function(isBlinking){this.cursor&&(this.pause.status||this.cursorBlinking!==isBlinking&&(this.cursorBlinking=isBlinking,isBlinking?this.cursor.classList.add("typed-cursor--blink"):this.cursor.classList.remove("typed-cursor--blink")))}},{key:"humanizer",value:function(speed){return Math.round(Math.random()*speed/2)+speed}},{key:"shuffleStringsIfNeeded",value:function(){this.shuffle&&(this.sequence=this.sequence.sort(function(){return Math.random()-.5}))}},{key:"initFadeOut",value:function(){var _this5=this;return this.el.className+=" "+this.fadeOutClass,this.cursor&&(this.cursor.className+=" "+this.fadeOutClass),setTimeout(function(){_this5.arrayPos++,_this5.replaceText(""),_this5.strings.length>_this5.arrayPos?_this5.typewrite(_this5.strings[_this5.sequence[_this5.arrayPos]],0):(_this5.typewrite(_this5.strings[0],0),_this5.arrayPos=0)},this.fadeOutDelay)}},{key:"replaceText",value:function(str){this.attr?this.el.setAttribute(this.attr,str):this.isInput?this.el.value=str:"html"===this.contentType?this.el.innerHTML=str:this.el.textContent=str}},{key:"bindFocusEvents",value:function(){var _this6=this;this.isInput&&(this.el.addEventListener("focus",function(e){_this6.stop()}),this.el.addEventListener("blur",function(e){_this6.el.value&&0!==_this6.el.value.length||_this6.start()}))}},{key:"insertCursor",value:function(){this.showCursor&&(this.cursor||(this.cursor=document.createElement("span"),this.cursor.className="typed-cursor",this.cursor.innerHTML=this.cursorChar,this.el.parentNode&&this.el.parentNode.insertBefore(this.cursor,this.el.nextSibling)))}}]),Typed}();exports.default=Typed,module.exports=exports.default},function(module,exports,__webpack_require__){"use strict";function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(exports,"__esModule",{value:!0});var _extends=Object.assign||function(target){for(var i=1;i":";";curString.substr(curStrPos+1).charAt(0)!==endTag&&!(++curStrPos+1>curString.length););curStrPos++}return curStrPos}},{key:"backSpaceHtmlChars",value:function(curString,curStrPos,self){if("html"!==self.contentType)return curStrPos;var curChar=curString.substr(curStrPos).charAt(0);if(">"===curChar||";"===curChar){var endTag="";for(endTag=">"===curChar?"<":"&";curString.substr(curStrPos-1).charAt(0)!==endTag&&!(--curStrPos<0););curStrPos--}return curStrPos}}]),HTMLParser}();exports.default=HTMLParser;var htmlParser=new HTMLParser;exports.htmlParser=htmlParser}])})}).call(exports,__webpack_require__(6)(module))},function(module,__webpack_exports__,__webpack_require__){"use strict";Object.defineProperty(__webpack_exports__,"__esModule",{value:!0});var __WEBPACK_IMPORTED_MODULE_0_typed_js__=__webpack_require__(4),__WEBPACK_IMPORTED_MODULE_0_typed_js___default=__webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_typed_js__),__WEBPACK_IMPORTED_MODULE_1__config_typed_component_config__=__webpack_require__(2);__webpack_exports__.default={name:"vue-typed-js",props:__WEBPACK_IMPORTED_MODULE_1__config_typed_component_config__.a,data:function(){return{typedObj:null}},methods:{throwError:function(message){throw new TypeError(message)},initTypedJS:function(){var $typed=this.$refs.typedElement.querySelector(".typing");if(this.$slots.default.length>1)this.throwError("Just one child element allowed inside <"+this.$options.name+"> component.");else if(1===this.$slots.default.length){var typedConfig=this.$props;typedConfig=__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__config_typed_component_config__.b)(this,typedConfig),this.typedObj=new __WEBPACK_IMPORTED_MODULE_0_typed_js___default.a($typed,typedConfig)}}},mounted:function(){this.initTypedJS()},destroyed:function(){this.typedObj.destroy()}}},function(module,exports){module.exports=function(module){return module.webpackPolyfill||(module.deprecate=function(){},module.paths=[],module.children||(module.children=[]),Object.defineProperty(module,"loaded",{enumerable:!0,get:function(){return module.l}}),Object.defineProperty(module,"id",{enumerable:!0,get:function(){return module.i}}),module.webpackPolyfill=1),module}},function(module,exports){},function(module,exports){module.exports=function(rawScriptExports,compiledTemplate,scopeId,cssModules){var esModule,scriptExports=rawScriptExports=rawScriptExports||{},type=typeof rawScriptExports.default;"object"!==type&&"function"!==type||(esModule=rawScriptExports,scriptExports=rawScriptExports.default);var options="function"==typeof scriptExports?scriptExports.options:scriptExports;if(compiledTemplate&&(options.render=compiledTemplate.render,options.staticRenderFns=compiledTemplate.staticRenderFns),scopeId&&(options._scopeId=scopeId),cssModules){var computed=options.computed||(options.computed={});Object.keys(cssModules).forEach(function(key){var module=cssModules[key];computed[key]=function(){return module}})}return{esModule:esModule,exports:scriptExports,options:options}}},function(module,exports){module.exports={render:function(){var _vm=this,_h=_vm.$createElement;return(_vm._self._c||_h)("div",{ref:"typedElement",staticClass:"typed-element"},[_vm._t("default")],2)},staticRenderFns:[]}}])}); \ No newline at end of file +!function(root,factory){"object"===_typeof(exports)&&"object"===_typeof(module)?module.exports=factory():(__WEBPACK_AMD_DEFINE_ARRAY__=[],__WEBPACK_AMD_DEFINE_FACTORY__=factory,void 0!==(__WEBPACK_AMD_DEFINE_RESULT__="function"==typeof __WEBPACK_AMD_DEFINE_FACTORY__?__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports,__WEBPACK_AMD_DEFINE_ARRAY__):__WEBPACK_AMD_DEFINE_FACTORY__)&&(module.exports=__WEBPACK_AMD_DEFINE_RESULT__))}(0,function(){return function(modules){function __webpack_require__(moduleId){if(installedModules[moduleId])return installedModules[moduleId].exports;var module=installedModules[moduleId]={exports:{},id:moduleId,loaded:!1};return modules[moduleId].call(module.exports,module,module.exports,__webpack_require__),module.loaded=!0,module.exports}var installedModules={};return __webpack_require__.m=modules,__webpack_require__.c=installedModules,__webpack_require__.p="",__webpack_require__(0)}([function(module,exports,__webpack_require__){"use strict";function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(exports,"__esModule",{value:!0});var _createClass=function(){function defineProperties(target,props){for(var i=0;icurString.length)););var stringBeforeSkip=curString.substring(0,curStrPos),stringSkipped=curString.substring(stringBeforeSkip.length+1,curStrPos+numChars),stringAfterSkip=curString.substring(curStrPos+numChars+1);curString=stringBeforeSkip+stringSkipped+stringAfterSkip,numChars--}_this2.timeout=setTimeout(function(){_this2.toggleBlinking(!1),curStrPos>=curString.length?_this2.doneTyping(curString,curStrPos):_this2.keepTyping(curString,curStrPos,numChars),_this2.temporaryPause&&(_this2.temporaryPause=!1,_this2.options.onTypingResumed(_this2.arrayPos,_this2))},pauseTime)},humanize)}},{key:"keepTyping",value:function(curString,curStrPos,numChars){0===curStrPos&&(this.toggleBlinking(!1),this.options.preStringTyped(this.arrayPos,this)),curStrPos+=numChars;var nextString=curString.substr(0,curStrPos);this.replaceText(nextString),this.typewrite(curString,curStrPos)}},{key:"doneTyping",value:function(curString,curStrPos){var _this3=this;this.options.onStringTyped(this.arrayPos,this),this.toggleBlinking(!0),this.arrayPos===this.strings.length-1&&(this.complete(),!1===this.loop||this.curLoop===this.loopCount)||(this.timeout=setTimeout(function(){_this3.backspace(curString,curStrPos)},this.backDelay))}},{key:"backspace",value:function(curString,curStrPos){var _this4=this;if(!0===this.pause.status)return void this.setPauseStatus(curString,curStrPos,!0);if(this.fadeOut)return this.initFadeOut();this.toggleBlinking(!1);var humanize=this.humanizer(this.backSpeed);this.timeout=setTimeout(function(){curStrPos=_htmlParserJs.htmlParser.backSpaceHtmlChars(curString,curStrPos,_this4);var curStringAtPosition=curString.substr(0,curStrPos);if(_this4.replaceText(curStringAtPosition),_this4.smartBackspace){var nextString=_this4.strings[_this4.arrayPos+1];nextString&&curStringAtPosition===nextString.substr(0,curStrPos)?_this4.stopNum=curStrPos:_this4.stopNum=0}curStrPos>_this4.stopNum?(curStrPos--,_this4.backspace(curString,curStrPos)):curStrPos<=_this4.stopNum&&(_this4.arrayPos++,_this4.arrayPos===_this4.strings.length?(_this4.arrayPos=0,_this4.options.onLastStringBackspaced(),_this4.shuffleStringsIfNeeded(),_this4.begin()):_this4.typewrite(_this4.strings[_this4.sequence[_this4.arrayPos]],curStrPos))},humanize)}},{key:"complete",value:function(){this.options.onComplete(this),this.loop?this.curLoop++:this.typingComplete=!0}},{key:"setPauseStatus",value:function(curString,curStrPos,isTyping){this.pause.typewrite=isTyping,this.pause.curString=curString,this.pause.curStrPos=curStrPos}},{key:"toggleBlinking",value:function(isBlinking){this.cursor&&(this.pause.status||this.cursorBlinking!==isBlinking&&(this.cursorBlinking=isBlinking,isBlinking?this.cursor.classList.add("typed-cursor--blink"):this.cursor.classList.remove("typed-cursor--blink")))}},{key:"humanizer",value:function(speed){return Math.round(Math.random()*speed/2)+speed}},{key:"shuffleStringsIfNeeded",value:function(){this.shuffle&&(this.sequence=this.sequence.sort(function(){return Math.random()-.5}))}},{key:"initFadeOut",value:function(){var _this5=this;return this.el.className+=" "+this.fadeOutClass,this.cursor&&(this.cursor.className+=" "+this.fadeOutClass),setTimeout(function(){_this5.arrayPos++,_this5.replaceText(""),_this5.strings.length>_this5.arrayPos?_this5.typewrite(_this5.strings[_this5.sequence[_this5.arrayPos]],0):(_this5.typewrite(_this5.strings[0],0),_this5.arrayPos=0)},this.fadeOutDelay)}},{key:"replaceText",value:function(str){this.attr?this.el.setAttribute(this.attr,str):this.isInput?this.el.value=str:"html"===this.contentType?this.el.innerHTML=str:this.el.textContent=str}},{key:"bindFocusEvents",value:function(){var _this6=this;this.isInput&&(this.el.addEventListener("focus",function(e){_this6.stop()}),this.el.addEventListener("blur",function(e){_this6.el.value&&0!==_this6.el.value.length||_this6.start()}))}},{key:"insertCursor",value:function(){this.showCursor&&(this.cursor||(this.cursor=document.createElement("span"),this.cursor.className="typed-cursor",this.cursor.innerHTML=this.cursorChar,this.el.parentNode&&this.el.parentNode.insertBefore(this.cursor,this.el.nextSibling)))}}]),Typed}();exports.default=Typed,module.exports=exports.default},function(module,exports,__webpack_require__){"use strict";function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(exports,"__esModule",{value:!0});var _extends=Object.assign||function(target){for(var i=1;i":";";curString.substr(curStrPos+1).charAt(0)!==endTag&&!(++curStrPos+1>curString.length););curStrPos++}return curStrPos}},{key:"backSpaceHtmlChars",value:function(curString,curStrPos,self){if("html"!==self.contentType)return curStrPos;var curChar=curString.substr(curStrPos).charAt(0);if(">"===curChar||";"===curChar){var endTag="";for(endTag=">"===curChar?"<":"&";curString.substr(curStrPos-1).charAt(0)!==endTag&&!(--curStrPos<0););curStrPos--}return curStrPos}}]),HTMLParser}();exports.default=HTMLParser;var htmlParser=new HTMLParser;exports.htmlParser=htmlParser}])})}).call(exports,__webpack_require__(6)(module))},function(module,__webpack_exports__,__webpack_require__){"use strict";Object.defineProperty(__webpack_exports__,"__esModule",{value:!0});var __WEBPACK_IMPORTED_MODULE_0_typed_js__=__webpack_require__(4),__WEBPACK_IMPORTED_MODULE_0_typed_js___default=__webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_typed_js__),__WEBPACK_IMPORTED_MODULE_1__config_typed_component_config__=__webpack_require__(2);__webpack_exports__.default={name:"vue-typed-js",props:__WEBPACK_IMPORTED_MODULE_1__config_typed_component_config__.a,data:function(){return{typedObj:null}},methods:{throwError:function(message){throw new TypeError(message)},initTypedJS:function(){var $typed=this.$refs.typedElement.querySelector(".typing");if(this.$slots.default.length>1)this.throwError("Just one child element allowed inside <"+this.$options.name+"> component.");else if(1===this.$slots.default.length){var typedConfig=this.$props;typedConfig=__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__config_typed_component_config__.b)(this,typedConfig),this.typedObj=new __WEBPACK_IMPORTED_MODULE_0_typed_js___default.a($typed,typedConfig)}}},mounted:function(){this.initTypedJS()},destroyed:function(){this.typedObj.destroy()}}},function(module,exports){module.exports=function(module){return module.webpackPolyfill||(module.deprecate=function(){},module.paths=[],module.children||(module.children=[]),Object.defineProperty(module,"loaded",{enumerable:!0,get:function(){return module.l}}),Object.defineProperty(module,"id",{enumerable:!0,get:function(){return module.i}}),module.webpackPolyfill=1),module}},function(module,exports){},function(module,exports){module.exports=function(rawScriptExports,compiledTemplate,scopeId,cssModules){var esModule,scriptExports=rawScriptExports=rawScriptExports||{},type=typeof rawScriptExports.default;"object"!==type&&"function"!==type||(esModule=rawScriptExports,scriptExports=rawScriptExports.default);var options="function"==typeof scriptExports?scriptExports.options:scriptExports;if(compiledTemplate&&(options.render=compiledTemplate.render,options.staticRenderFns=compiledTemplate.staticRenderFns),scopeId&&(options._scopeId=scopeId),cssModules){var computed=options.computed||(options.computed={});Object.keys(cssModules).forEach(function(key){var module=cssModules[key];computed[key]=function(){return module}})}return{esModule:esModule,exports:scriptExports,options:options}}},function(module,exports){module.exports={render:function(){var _vm=this,_h=_vm.$createElement;return(_vm._self._c||_h)("div",{ref:"typedElement",staticClass:"typed-element"},[_vm._t("default")],2)},staticRenderFns:[]}}])}); \ No newline at end of file diff --git a/dist/vue-typed-js.common.js b/dist/vue-typed-js.common.js index f4bcd39..b53791d 100644 --- a/dist/vue-typed-js.common.js +++ b/dist/vue-typed-js.common.js @@ -1,144 +1,10 @@ -(function webpackUniversalModuleDefinition(root, factory) { - if(typeof exports === 'object' && typeof module === 'object') - module.exports = factory(); - else if(typeof define === 'function' && define.amd) - define([], factory); - else if(typeof exports === 'object') - exports["VueTypedJs"] = factory(); - else - root["VueTypedJs"] = factory(); -})(this, function() { -return /******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) { -/******/ return installedModules[moduleId].exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ i: moduleId, -/******/ l: false, -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); -/******/ -/******/ // Flag the module as loaded -/******/ module.l = true; -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; -/******/ -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; -/******/ -/******/ // identity function for calling harmony imports with the correct context -/******/ __webpack_require__.i = function(value) { return value; }; -/******/ -/******/ // define getter function for harmony exports -/******/ __webpack_require__.d = function(exports, name, getter) { -/******/ if(!__webpack_require__.o(exports, name)) { -/******/ Object.defineProperty(exports, name, { -/******/ configurable: false, -/******/ enumerable: true, -/******/ get: getter -/******/ }); -/******/ } -/******/ }; -/******/ -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = function(module) { -/******/ var getter = module && module.__esModule ? -/******/ function getDefault() { return module['default']; } : -/******/ function getModuleExports() { return module; }; -/******/ __webpack_require__.d(getter, 'a', getter); -/******/ return getter; -/******/ }; -/******/ -/******/ // Object.prototype.hasOwnProperty.call -/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; -/******/ -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; -/******/ -/******/ // Load entry module and return exports -/******/ return __webpack_require__(__webpack_require__.s = 3); -/******/ }) -/************************************************************************/ -/******/ ([ -/* 0 */ -/***/ (function(module, exports) { - -eval("var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar g;\n\n// This works in non-strict mode\ng = function () {\n\treturn this;\n}();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || Function(\"return this\")() || (1, eval)(\"this\");\n} catch (e) {\n\t// This works if the window reference is available\n\tif ((typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vKHdlYnBhY2spL2J1aWxkaW4vZ2xvYmFsLmpzPzM2OTgiXSwibmFtZXMiOlsiZyIsIkZ1bmN0aW9uIiwiZXZhbCIsImUiLCJ3aW5kb3ciLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiOztBQUFBLElBQUlBLENBQUo7O0FBRUE7QUFDQUEsSUFBSyxZQUFXO0FBQ2YsUUFBTyxJQUFQO0FBQ0EsQ0FGRyxFQUFKOztBQUlBLElBQUk7QUFDSDtBQUNBQSxLQUFJQSxLQUFLQyxTQUFTLGFBQVQsR0FBTCxJQUFrQyxDQUFDLEdBQUVDLElBQUgsRUFBUyxNQUFULENBQXRDO0FBQ0EsQ0FIRCxDQUdFLE9BQU1DLENBQU4sRUFBUztBQUNWO0FBQ0EsS0FBRyxRQUFPQyxNQUFQLHlDQUFPQSxNQUFQLE9BQWtCLFFBQXJCLEVBQ0NKLElBQUlJLE1BQUo7QUFDRDs7QUFFRDtBQUNBO0FBQ0E7O0FBRUFDLE9BQU9DLE9BQVAsR0FBaUJOLENBQWpCIiwiZmlsZSI6IjAuanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgZztcclxuXHJcbi8vIFRoaXMgd29ya3MgaW4gbm9uLXN0cmljdCBtb2RlXHJcbmcgPSAoZnVuY3Rpb24oKSB7XHJcblx0cmV0dXJuIHRoaXM7XHJcbn0pKCk7XHJcblxyXG50cnkge1xyXG5cdC8vIFRoaXMgd29ya3MgaWYgZXZhbCBpcyBhbGxvd2VkIChzZWUgQ1NQKVxyXG5cdGcgPSBnIHx8IEZ1bmN0aW9uKFwicmV0dXJuIHRoaXNcIikoKSB8fCAoMSxldmFsKShcInRoaXNcIik7XHJcbn0gY2F0Y2goZSkge1xyXG5cdC8vIFRoaXMgd29ya3MgaWYgdGhlIHdpbmRvdyByZWZlcmVuY2UgaXMgYXZhaWxhYmxlXHJcblx0aWYodHlwZW9mIHdpbmRvdyA9PT0gXCJvYmplY3RcIilcclxuXHRcdGcgPSB3aW5kb3c7XHJcbn1cclxuXHJcbi8vIGcgY2FuIHN0aWxsIGJlIHVuZGVmaW5lZCwgYnV0IG5vdGhpbmcgdG8gZG8gYWJvdXQgaXQuLi5cclxuLy8gV2UgcmV0dXJuIHVuZGVmaW5lZCwgaW5zdGVhZCBvZiBub3RoaW5nIGhlcmUsIHNvIGl0J3NcclxuLy8gZWFzaWVyIHRvIGhhbmRsZSB0aGlzIGNhc2UuIGlmKCFnbG9iYWwpIHsgLi4ufVxyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBnO1xyXG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gKHdlYnBhY2spL2J1aWxkaW4vZ2xvYmFsLmpzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///0\n"); - -/***/ }), -/* 1 */ -/***/ (function(module, exports, __webpack_require__) { - -eval("\n/* styles */\n__webpack_require__(7)\n\nvar Component = __webpack_require__(8)(\n /* script */\n __webpack_require__(5),\n /* template */\n __webpack_require__(9),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\nComponent.options.__file = \"/Users/orlando/Desktop/contributions/play/vue-typed-js/src/components/VueTypedJs.vue\"\nif (Component.esModule && Object.keys(Component.esModule).some(function (key) {return key !== \"default\" && key !== \"__esModule\"})) {console.error(\"named exports are not supported in *.vue files.\")}\nif (Component.options.functional) {console.error(\"[vue-loader] VueTypedJs.vue: functional components are not supported with templates, they should use render functions.\")}\n\n/* hot reload */\nif (false) {(function () {\n var hotAPI = require(\"vue-hot-reload-api\")\n hotAPI.install(require(\"vue\"), false)\n if (!hotAPI.compatible) return\n module.hot.accept()\n if (!module.hot.data) {\n hotAPI.createRecord(\"data-v-1de4642d\", Component.options)\n } else {\n hotAPI.reload(\"data-v-1de4642d\", Component.options)\n }\n})()}\n\nmodule.exports = Component.exports\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9WdWVUeXBlZEpzLnZ1ZT9iZWQ2Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQTtBQUNBLHFCQUFnRzs7QUFFaEc7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLCtFQUErRSxpREFBaUQsSUFBSTtBQUNwSSxtQ0FBbUM7O0FBRW5DO0FBQ0EsWUFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQSxDQUFDOztBQUVEIiwiZmlsZSI6IjEuanMiLCJzb3VyY2VzQ29udGVudCI6WyJcbi8qIHN0eWxlcyAqL1xucmVxdWlyZShcIiEhLi4vLi4vbm9kZV9tb2R1bGVzL2V4dHJhY3QtdGV4dC13ZWJwYWNrLXBsdWdpbi9sb2FkZXIuanM/e1xcXCJvbWl0XFxcIjowLFxcXCJyZW1vdmVcXFwiOnRydWV9IWNzcy1sb2FkZXIhLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3N0eWxlLXJld3JpdGVyP2lkPWRhdGEtdi0xZGU0NjQyZCFzYXNzLWxvYWRlciEuLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvc2VsZWN0b3I/dHlwZT1zdHlsZXMmaW5kZXg9MCEuL1Z1ZVR5cGVkSnMudnVlXCIpXG5cbnZhciBDb21wb25lbnQgPSByZXF1aXJlKFwiIS4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9jb21wb25lbnQtbm9ybWFsaXplclwiKShcbiAgLyogc2NyaXB0ICovXG4gIHJlcXVpcmUoXCIhIWJhYmVsLWxvYWRlciEuLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvc2VsZWN0b3I/dHlwZT1zY3JpcHQmaW5kZXg9MCEuL1Z1ZVR5cGVkSnMudnVlXCIpLFxuICAvKiB0ZW1wbGF0ZSAqL1xuICByZXF1aXJlKFwiISEuLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvdGVtcGxhdGUtY29tcGlsZXI/aWQ9ZGF0YS12LTFkZTQ2NDJkIS4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9zZWxlY3Rvcj90eXBlPXRlbXBsYXRlJmluZGV4PTAhLi9WdWVUeXBlZEpzLnZ1ZVwiKSxcbiAgLyogc2NvcGVJZCAqL1xuICBudWxsLFxuICAvKiBjc3NNb2R1bGVzICovXG4gIG51bGxcbilcbkNvbXBvbmVudC5vcHRpb25zLl9fZmlsZSA9IFwiL1VzZXJzL29ybGFuZG8vRGVza3RvcC9jb250cmlidXRpb25zL3BsYXkvdnVlLXR5cGVkLWpzL3NyYy9jb21wb25lbnRzL1Z1ZVR5cGVkSnMudnVlXCJcbmlmIChDb21wb25lbnQuZXNNb2R1bGUgJiYgT2JqZWN0LmtleXMoQ29tcG9uZW50LmVzTW9kdWxlKS5zb21lKGZ1bmN0aW9uIChrZXkpIHtyZXR1cm4ga2V5ICE9PSBcImRlZmF1bHRcIiAmJiBrZXkgIT09IFwiX19lc01vZHVsZVwifSkpIHtjb25zb2xlLmVycm9yKFwibmFtZWQgZXhwb3J0cyBhcmUgbm90IHN1cHBvcnRlZCBpbiAqLnZ1ZSBmaWxlcy5cIil9XG5pZiAoQ29tcG9uZW50Lm9wdGlvbnMuZnVuY3Rpb25hbCkge2NvbnNvbGUuZXJyb3IoXCJbdnVlLWxvYWRlcl0gVnVlVHlwZWRKcy52dWU6IGZ1bmN0aW9uYWwgY29tcG9uZW50cyBhcmUgbm90IHN1cHBvcnRlZCB3aXRoIHRlbXBsYXRlcywgdGhleSBzaG91bGQgdXNlIHJlbmRlciBmdW5jdGlvbnMuXCIpfVxuXG4vKiBob3QgcmVsb2FkICovXG5pZiAobW9kdWxlLmhvdCkgeyhmdW5jdGlvbiAoKSB7XG4gIHZhciBob3RBUEkgPSByZXF1aXJlKFwidnVlLWhvdC1yZWxvYWQtYXBpXCIpXG4gIGhvdEFQSS5pbnN0YWxsKHJlcXVpcmUoXCJ2dWVcIiksIGZhbHNlKVxuICBpZiAoIWhvdEFQSS5jb21wYXRpYmxlKSByZXR1cm5cbiAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICBpZiAoIW1vZHVsZS5ob3QuZGF0YSkge1xuICAgIGhvdEFQSS5jcmVhdGVSZWNvcmQoXCJkYXRhLXYtMWRlNDY0MmRcIiwgQ29tcG9uZW50Lm9wdGlvbnMpXG4gIH0gZWxzZSB7XG4gICAgaG90QVBJLnJlbG9hZChcImRhdGEtdi0xZGU0NjQyZFwiLCBDb21wb25lbnQub3B0aW9ucylcbiAgfVxufSkoKX1cblxubW9kdWxlLmV4cG9ydHMgPSBDb21wb25lbnQuZXhwb3J0c1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9zcmMvY29tcG9uZW50cy9WdWVUeXBlZEpzLnZ1ZVxuLy8gbW9kdWxlIGlkID0gMVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///1\n"); - -/***/ }), -/* 2 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -eval("/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return props; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return getEventHandlers; });\nvar props = {\n strings: {\n type: Array,\n required: false,\n default: function _default() {\n return ['Hello World!'];\n }\n },\n stringsElement: {\n type: String,\n required: false,\n default: null\n },\n typeSpeed: {\n type: Number,\n required: false,\n default: 50\n },\n startDelay: {\n type: Number,\n required: false,\n default: 0\n },\n backSpeed: {\n type: Number,\n required: false,\n default: 0\n },\n smartBackspace: {\n type: Boolean,\n required: false,\n default: true\n },\n shuffle: {\n type: Boolean,\n required: false,\n default: false\n },\n backDelay: {\n type: Number,\n required: false,\n default: 700\n },\n fadeOut: {\n type: Boolean,\n required: false,\n default: false\n },\n fadeOutClass: {\n type: String,\n required: false,\n default: 'typed-fade-out'\n },\n fadeOutDelay: {\n type: Number,\n required: false,\n default: 500\n },\n loop: {\n type: Boolean,\n required: false,\n default: false\n },\n loopCount: {\n type: Number,\n required: false,\n default: Infinity\n },\n showCursor: {\n type: Boolean,\n required: false,\n default: true\n },\n cursorChar: {\n type: String,\n required: false,\n default: '|'\n },\n autoInsertCss: {\n type: Boolean,\n required: false,\n default: true\n },\n attr: {\n type: String,\n required: false,\n default: null\n },\n bindInputFocusEvents: {\n type: Boolean,\n required: false,\n default: false\n },\n contentType: {\n type: String,\n required: false,\n default: 'html'\n }\n};\n\nvar getEventHandlers = function getEventHandlers(context, typedConfig) {\n typedConfig.onComplete = function () {\n context.$emit('onComplete');\n };\n\n typedConfig.preStringTyped = function () {\n context.$emit('preStringTyped');\n };\n\n typedConfig.onStringTyped = function () {\n context.$emit('onStringTyped');\n };\n\n typedConfig.onLastStringBackspaced = function () {\n context.$emit('onLastStringBackspaced');\n };\n\n typedConfig.onTypingPaused = function () {\n context.$emit('onTypingPaused');\n };\n\n typedConfig.onTypingResumed = function () {\n context.$emit('onTypingResumed');\n };\n\n typedConfig.onReset = function () {\n context.$emit('onReset');\n };\n\n typedConfig.onStop = function () {\n context.$emit('onStop');\n };\n\n typedConfig.onStart = function () {\n context.$emit('onStart');\n };\n\n typedConfig.onDestroy = function () {\n context.$emit('onDestroy');\n };\n\n return typedConfig;\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvY29uZmlnL3R5cGVkLWNvbXBvbmVudC5jb25maWcuanM/ZTQyNiJdLCJuYW1lcyI6WyJwcm9wcyIsInN0cmluZ3MiLCJ0eXBlIiwiQXJyYXkiLCJyZXF1aXJlZCIsImRlZmF1bHQiLCJzdHJpbmdzRWxlbWVudCIsIlN0cmluZyIsInR5cGVTcGVlZCIsIk51bWJlciIsInN0YXJ0RGVsYXkiLCJiYWNrU3BlZWQiLCJzbWFydEJhY2tzcGFjZSIsIkJvb2xlYW4iLCJzaHVmZmxlIiwiYmFja0RlbGF5IiwiZmFkZU91dCIsImZhZGVPdXRDbGFzcyIsImZhZGVPdXREZWxheSIsImxvb3AiLCJsb29wQ291bnQiLCJJbmZpbml0eSIsInNob3dDdXJzb3IiLCJjdXJzb3JDaGFyIiwiYXV0b0luc2VydENzcyIsImF0dHIiLCJiaW5kSW5wdXRGb2N1c0V2ZW50cyIsImNvbnRlbnRUeXBlIiwiZ2V0RXZlbnRIYW5kbGVycyIsImNvbnRleHQiLCJ0eXBlZENvbmZpZyIsIm9uQ29tcGxldGUiLCIkZW1pdCIsInByZVN0cmluZ1R5cGVkIiwib25TdHJpbmdUeXBlZCIsIm9uTGFzdFN0cmluZ0JhY2tzcGFjZWQiLCJvblR5cGluZ1BhdXNlZCIsIm9uVHlwaW5nUmVzdW1lZCIsIm9uUmVzZXQiLCJvblN0b3AiLCJvblN0YXJ0Iiwib25EZXN0cm95Il0sIm1hcHBpbmdzIjoiOztBQUFPLElBQU1BLFFBQVE7QUFDbkJDLFdBQVM7QUFDUEMsVUFBTUMsS0FEQztBQUVQQyxjQUFVLEtBRkg7QUFHUEMsYUFBUyxvQkFBWTtBQUNuQixhQUFPLENBQUUsY0FBRixDQUFQO0FBQ0Q7QUFMTSxHQURVO0FBUW5CQyxrQkFBZ0I7QUFDZEosVUFBTUssTUFEUTtBQUVkSCxjQUFVLEtBRkk7QUFHZEMsYUFBUztBQUhLLEdBUkc7QUFhbkJHLGFBQVc7QUFDVE4sVUFBTU8sTUFERztBQUVUTCxjQUFVLEtBRkQ7QUFHVEMsYUFBUztBQUhBLEdBYlE7QUFrQm5CSyxjQUFZ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QixZQUFNO0FBQzVCWixZQUFRRyxLQUFSLENBQWMsV0FBZDtBQUNELEdBRkQ7O0FBSUEsU0FBT0YsV0FBUDtBQUNELENBMUNNIiwiZmlsZSI6IjIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgcHJvcHMgPSB7XG4gIHN0cmluZ3M6IHtcbiAgICB0eXBlOiBBcnJheSxcbiAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgZGVmYXVsdDogZnVuY3Rpb24gKCkge1xuICAgICAgcmV0dXJuIFsgJ0hlbGxvIFdvcmxkIScgXVxuICAgIH0sXG4gIH0sXG4gIHN0cmluZ3NFbGVtZW50OiB7XG4gICAgdHlwZTogU3RyaW5nLFxuICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICBkZWZhdWx0OiBudWxsLFxuICB9LFxuICB0eXBlU3BlZWQ6IHtcbiAgICB0eXBlOiBOdW1iZXIsXG4gICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgIGRlZmF1bHQ6IDUwLFxuICB9LFxuICBzdGFydERlbGF5OiB7XG4gICAgdHlwZTogTnVtYmVyLFxuICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICBkZWZhdWx0OiAwLFxuICB9LFxuICBiYWNrU3BlZWQ6IHtcbiAgICB0eXBlOiBOdW1iZXIsXG4gICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgIGRlZmF1bHQ6IDAsXG4gIH0sXG4gIHNtYXJ0QmFja3NwYWNlOiB7XG4gICAgdHlwZTogQm9vbGVhbixcbiAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgZGVmYXVsdDogdHJ1ZSxcbiAgfSxcbiAgc2h1ZmZsZToge1xuICAgIHR5cGU6IEJvb2xlYW4sXG4gICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgIGRlZmF1bHQ6IGZhbHNlLFxuICB9LFxuICBiYWNrRGVsYXk6IHtcbiAgICB0eXBlOiBOdW1iZXIsXG4gICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgIGRlZmF1bHQ6IDcwMCxcbiAgfSxcbiAgZmFkZU91dDoge1xuICAgIHR5cGU6IEJvb2xlYW4sXG4gICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgIGRlZmF1bHQ6IGZhbHNlLFxuICB9LFxuICBmYWRlT3V0Q2xhc3M6IHtcbiAgICB0eXBlOiBTdHJpbmcsXG4gICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgIGRlZmF1bHQ6ICd0eXBlZC1mYWRlLW91dCcsXG4gIH0sXG4gIGZhZGVPdXREZWxheToge1xuICAgIHR5cGU6IE51bWJlcixcbiAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgZGVmYXVsdDogNTAwLFxuICB9LFxuICBsb29wOiB7XG4gICAgdHlwZTogQm9vbGVhbixcbiAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgZGVmYXVsdDogZmFsc2UsXG4gIH0sXG4gIGxvb3BDb3VudDoge1xuICAgIHR5cGU6IE51bWJlcixcbiAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgZGVmYXVsdDogSW5maW5pdHksXG4gIH0sXG4gIHNob3dDdXJzb3I6IHtcbiAgICB0eXBlOiBCb29sZWFuLFxuICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICBkZWZhdWx0OiB0cnVlLFxuICB9LFxuICBjdXJzb3JDaGFyOiB7XG4gICAgdHlwZTogU3RyaW5nLFxuICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICBkZWZhdWx0OiAnfCcsXG4gIH0sXG4gIGF1dG9JbnNlcnRDc3M6IHtcbiAgICB0eXBlOiBCb29sZWFuLFxuICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICBkZWZhdWx0OiB0cnVlLFxuICB9LFxuICBhdHRyOiB7XG4gICAgdHlwZTogU3RyaW5nLFxuICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICBkZWZhdWx0OiBudWxsLFxuICB9LFxuICBiaW5kSW5wdXRGb2N1c0V2ZW50czoge1xuICAgIHR5cGU6IEJvb2xlYW4sXG4gICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgIGRlZmF1bHQ6IGZhbHNlLFxuICB9LFxuICBjb250ZW50VHlwZToge1xuICAgIHR5cGU6IFN0cmluZyxcbiAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgZGVmYXVsdDogJ2h0bWwnLFxuICB9LFxufVxuXG5leHBvcnQgY29uc3QgZ2V0RXZlbnRIYW5kbGVycyA9IChjb250ZXh0LCB0eXBlZENvbmZpZykgPT4ge1xuICB0eXBlZENvbmZpZy5vbkNvbXBsZXRlID0gKCkgPT4ge1xuICAgIGNvbnRleHQuJGVtaXQoJ29uQ29tcGxldGUnKVxuICB9XG5cbiAgdHlwZWRDb25maWcucHJlU3RyaW5nVHlwZWQgPSAoKSA9PiB7XG4gICAgY29udGV4dC4kZW1pdCgncHJlU3RyaW5nVHlwZWQnKVxuICB9XG5cbiAgdHlwZWRDb25maWcub25TdHJpbmdUeXBlZCA9ICgpID0+IHtcbiAgICBjb250ZXh0LiRlbWl0KCdvblN0cmluZ1R5cGVkJylcbiAgfVxuXG4gIHR5cGVkQ29uZmlnLm9uTGFzdFN0cmluZ0JhY2tzcGFjZWQgPSAoKSA9PiB7XG4gICAgY29udGV4dC4kZW1pdCgnb25MYXN0U3RyaW5nQmFja3NwYWNlZCcpXG4gIH1cblxuICB0eXBlZENvbmZpZy5vblR5cGluZ1BhdXNlZCA9ICgpID0+IHtcbiAgICBjb250ZXh0LiRlbWl0KCdvblR5cGluZ1BhdXNlZCcpXG4gIH1cblxuICB0eXBlZENvbmZpZy5vblR5cGluZ1Jlc3VtZWQgPSAoKSA9PiB7XG4gICAgY29udGV4dC4kZW1pdCgnb25UeXBpbmdSZXN1bWVkJylcbiAgfVxuXG4gIHR5cGVkQ29uZmlnLm9uUmVzZXQgPSAoKSA9PiB7XG4gICAgY29udGV4dC4kZW1pdCgnb25SZXNldCcpXG4gIH1cblxuICB0eXBlZENvbmZpZy5vblN0b3AgPSAoKSA9PiB7XG4gICAgY29udGV4dC4kZW1pdCgnb25TdG9wJylcbiAgfVxuXG4gIHR5cGVkQ29uZmlnLm9uU3RhcnQgPSAoKSA9PiB7XG4gICAgY29udGV4dC4kZW1pdCgnb25TdGFydCcpXG4gIH1cblxuICB0eXBlZENvbmZpZy5vbkRlc3Ryb3kgPSAoKSA9PiB7XG4gICAgY29udGV4dC4kZW1pdCgnb25EZXN0cm95JylcbiAgfVxuXG4gIHJldHVybiB0eXBlZENvbmZpZ1xufVxuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL2NvbmZpZy90eXBlZC1jb21wb25lbnQuY29uZmlnLmpzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///2\n"); - -/***/ }), -/* 3 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -eval("Object.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* WEBPACK VAR INJECTION */(function(global) {/* harmony export (immutable) */ __webpack_exports__[\"install\"] = install;\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__components_VueTypedJs_vue__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__components_VueTypedJs_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__components_VueTypedJs_vue__);\n/* harmony reexport (default from non-hamory) */ __webpack_require__.d(__webpack_exports__, \"VueTypedJs\", function() { return __WEBPACK_IMPORTED_MODULE_0__components_VueTypedJs_vue___default.a; });\n\n\n// Install the components\nfunction install(Vue) {\n Vue.component('vue-typed-js', __WEBPACK_IMPORTED_MODULE_0__components_VueTypedJs_vue___default.a);\n}\n\n// Expose the components\n\n\n// Plugin\nvar plugin = {\n /* eslint-disable no-undef */\n version: \"0.1.2\",\n install: install\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (plugin);\n\n// Auto-install\nvar GlobalVue = null;\nif (typeof window !== 'undefined') {\n GlobalVue = window.Vue;\n} else if (typeof global !== 'undefined') {\n GlobalVue = global.Vue;\n}\nif (GlobalVue) {\n GlobalVue.use(plugin);\n}\n/* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__(0)))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvaW5kZXguanM/OTU1MiJdLCJuYW1lcyI6WyJpbnN0YWxsIiwiVnVlIiwiY29tcG9uZW50IiwicGx1Z2luIiwidmVyc2lvbiIsIkdsb2JhbFZ1ZSIsIndpbmRvdyIsImdsb2JhbCIsInVzZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQTs7QUFFQTtBQUNPLFNBQVNBLE9BQVQsQ0FBa0JDLEdBQWxCLEVBQXVCO0FBQzVCQSxNQUFJQyxTQUFKLENBQWMsY0FBZCxFQUE4QixrRUFBOUI7QUFDRDs7QUFFRDtBQUNBOztBQUlBO0FBQ0EsSUFBTUMsU0FBUztBQUNiO0FBQ0FDLFdBQVMsT0FGSTtBQUdiSjtBQUhhLENBQWY7O0FBTUEsK0RBQWVHLE1BQWY7O0FBRUE7QUFDQSxJQUFJRSxZQUFZLElBQWhCO0FBQ0EsSUFBSSxPQUFPQyxNQUFQLEtBQWtCLFdBQXRCLEVBQW1DO0FBQ2pDRCxjQUFZQyxPQUFPTCxHQUFuQjtBQUNELENBRkQsTUFFTyxJQUFJLE9BQU9NLE1BQVAsS0FBa0IsV0FBdEIsRUFBbUM7QUFDeENGLGNBQVlFLE9BQU9OLEdBQW5CO0FBQ0Q7QUFDRCxJQUFJSSxTQUFKLEVBQWU7QUFDYkEsWUFBVUcsR0FBVixDQUFjTCxNQUFkO0FBQ0QsQyIsImZpbGUiOiIzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFZ1ZVR5cGVkSnMgZnJvbSAnLi9jb21wb25lbnRzL1Z1ZVR5cGVkSnMudnVlJ1xuXG4vLyBJbnN0YWxsIHRoZSBjb21wb25lbnRzXG5leHBvcnQgZnVuY3Rpb24gaW5zdGFsbCAoVnVlKSB7XG4gIFZ1ZS5jb21wb25lbnQoJ3Z1ZS10eXBlZC1qcycsIFZ1ZVR5cGVkSnMpXG59XG5cbi8vIEV4cG9zZSB0aGUgY29tcG9uZW50c1xuZXhwb3J0IHtcbiAgVnVlVHlwZWRKcyxcbn1cblxuLy8gUGx1Z2luXG5jb25zdCBwbHVnaW4gPSB7XG4gIC8qIGVzbGludC1kaXNhYmxlIG5vLXVuZGVmICovXG4gIHZlcnNpb246IFZFUlNJT04sXG4gIGluc3RhbGwsXG59XG5cbmV4cG9ydCBkZWZhdWx0IHBsdWdpblxuXG4vLyBBdXRvLWluc3RhbGxcbmxldCBHbG9iYWxWdWUgPSBudWxsXG5pZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgR2xvYmFsVnVlID0gd2luZG93LlZ1ZVxufSBlbHNlIGlmICh0eXBlb2YgZ2xvYmFsICE9PSAndW5kZWZpbmVkJykge1xuICBHbG9iYWxWdWUgPSBnbG9iYWwuVnVlXG59XG5pZiAoR2xvYmFsVnVlKSB7XG4gIEdsb2JhbFZ1ZS51c2UocGx1Z2luKVxufVxuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL2luZGV4LmpzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///3\n"); - -/***/ }), -/* 4 */ -/***/ (function(module, exports, __webpack_require__) { - -eval("/* WEBPACK VAR INJECTION */(function(module) {var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\n/*!\n * \n * typed.js - A JavaScript Typing Animation Library\n * Author: Matt Boldt \n * Version: v2.0.9\n * Url: https://github.com/mattboldt/typed.js\n * License(s): MIT\n * \n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif (( false ? 'undefined' : _typeof(exports)) === 'object' && ( false ? 'undefined' : _typeof(module)) === 'object') module.exports = factory();else if (true) !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));else if ((typeof exports === 'undefined' ? 'undefined' : _typeof(exports)) === 'object') exports[\"Typed\"] = factory();else root[\"Typed\"] = factory();\n})(this, function () {\n\treturn (/******/function (modules) {\n\t\t\t// webpackBootstrap\n\t\t\t/******/ // The module cache\n\t\t\t/******/var installedModules = {};\n\t\t\t/******/\n\t\t\t/******/ // The require function\n\t\t\t/******/function __webpack_require__(moduleId) {\n\t\t\t\t/******/\n\t\t\t\t/******/ // Check if module is in cache\n\t\t\t\t/******/if (installedModules[moduleId])\n\t\t\t\t\t/******/return installedModules[moduleId].exports;\n\t\t\t\t/******/\n\t\t\t\t/******/ // Create a new module (and put it into the cache)\n\t\t\t\t/******/var module = installedModules[moduleId] = {\n\t\t\t\t\t/******/exports: {},\n\t\t\t\t\t/******/id: moduleId,\n\t\t\t\t\t/******/loaded: false\n\t\t\t\t\t/******/ };\n\t\t\t\t/******/\n\t\t\t\t/******/ // Execute the module function\n\t\t\t\t/******/modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\t\t\t\t/******/\n\t\t\t\t/******/ // Flag the module as loaded\n\t\t\t\t/******/module.loaded = true;\n\t\t\t\t/******/\n\t\t\t\t/******/ // Return the exports of the module\n\t\t\t\t/******/return module.exports;\n\t\t\t\t/******/\n\t\t\t}\n\t\t\t/******/\n\t\t\t/******/\n\t\t\t/******/ // expose the modules object (__webpack_modules__)\n\t\t\t/******/__webpack_require__.m = modules;\n\t\t\t/******/\n\t\t\t/******/ // expose the module cache\n\t\t\t/******/__webpack_require__.c = installedModules;\n\t\t\t/******/\n\t\t\t/******/ // __webpack_public_path__\n\t\t\t/******/__webpack_require__.p = \"\";\n\t\t\t/******/\n\t\t\t/******/ // Load entry module and return exports\n\t\t\t/******/return __webpack_require__(0);\n\t\t\t/******/\n\t\t}(\n\t\t/************************************************************************/\n\t\t/******/[\n\t\t/* 0 */\n\t\t/***/function (module, exports, __webpack_require__) {\n\n\t\t\t'use strict';\n\n\t\t\tObject.defineProperty(exports, '__esModule', {\n\t\t\t\tvalue: true\n\t\t\t});\n\n\t\t\tvar _createClass = function () {\n\t\t\t\tfunction defineProperties(target, props) {\n\t\t\t\t\tfor (var i = 0; i < props.length; i++) {\n\t\t\t\t\t\tvar descriptor = props[i];descriptor.enumerable = descriptor.enumerable || false;descriptor.configurable = true;if ('value' in descriptor) descriptor.writable = true;Object.defineProperty(target, descriptor.key, descriptor);\n\t\t\t\t\t}\n\t\t\t\t}return function (Constructor, protoProps, staticProps) {\n\t\t\t\t\tif (protoProps) defineProperties(Constructor.prototype, protoProps);if (staticProps) defineProperties(Constructor, staticProps);return Constructor;\n\t\t\t\t};\n\t\t\t}();\n\n\t\t\tfunction _classCallCheck(instance, Constructor) {\n\t\t\t\tif (!(instance instanceof Constructor)) {\n\t\t\t\t\tthrow new TypeError('Cannot call a class as a function');\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tvar _initializerJs = __webpack_require__(1);\n\n\t\t\tvar _htmlParserJs = __webpack_require__(3);\n\n\t\t\t/**\n * Welcome to Typed.js!\n * @param {string} elementId HTML element ID _OR_ HTML element\n * @param {object} options options object\n * @returns {object} a new Typed object\n */\n\n\t\t\tvar Typed = function () {\n\t\t\t\tfunction Typed(elementId, options) {\n\t\t\t\t\t_classCallCheck(this, Typed);\n\n\t\t\t\t\t// Initialize it up\n\t\t\t\t\t_initializerJs.initializer.load(this, options, elementId);\n\t\t\t\t\t// All systems go!\n\t\t\t\t\tthis.begin();\n\t\t\t\t}\n\n\t\t\t\t/**\n * Toggle start() and stop() of the Typed instance\n * @public\n */\n\n\t\t\t\t_createClass(Typed, [{\n\t\t\t\t\tkey: 'toggle',\n\t\t\t\t\tvalue: function toggle() {\n\t\t\t\t\t\tthis.pause.status ? this.start() : this.stop();\n\t\t\t\t\t}\n\n\t\t\t\t\t/**\n * Stop typing / backspacing and enable cursor blinking\n * @public\n */\n\t\t\t\t}, {\n\t\t\t\t\tkey: 'stop',\n\t\t\t\t\tvalue: function stop() {\n\t\t\t\t\t\tif (this.typingComplete) return;\n\t\t\t\t\t\tif (this.pause.status) return;\n\t\t\t\t\t\tthis.toggleBlinking(true);\n\t\t\t\t\t\tthis.pause.status = true;\n\t\t\t\t\t\tthis.options.onStop(this.arrayPos, this);\n\t\t\t\t\t}\n\n\t\t\t\t\t/**\n * Start typing / backspacing after being stopped\n * @public\n */\n\t\t\t\t}, {\n\t\t\t\t\tkey: 'start',\n\t\t\t\t\tvalue: function start() {\n\t\t\t\t\t\tif (this.typingComplete) return;\n\t\t\t\t\t\tif (!this.pause.status) return;\n\t\t\t\t\t\tthis.pause.status = false;\n\t\t\t\t\t\tif (this.pause.typewrite) {\n\t\t\t\t\t\t\tthis.typewrite(this.pause.curString, this.pause.curStrPos);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tthis.backspace(this.pause.curString, this.pause.curStrPos);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthis.options.onStart(this.arrayPos, this);\n\t\t\t\t\t}\n\n\t\t\t\t\t/**\n * Destroy this instance of Typed\n * @public\n */\n\t\t\t\t}, {\n\t\t\t\t\tkey: 'destroy',\n\t\t\t\t\tvalue: function destroy() {\n\t\t\t\t\t\tthis.reset(false);\n\t\t\t\t\t\tthis.options.onDestroy(this);\n\t\t\t\t\t}\n\n\t\t\t\t\t/**\n * Reset Typed and optionally restarts\n * @param {boolean} restart\n * @public\n */\n\t\t\t\t}, {\n\t\t\t\t\tkey: 'reset',\n\t\t\t\t\tvalue: function reset() {\n\t\t\t\t\t\tvar restart = arguments.length <= 0 || arguments[0] === undefined ? true : arguments[0];\n\n\t\t\t\t\t\tclearInterval(this.timeout);\n\t\t\t\t\t\tthis.replaceText('');\n\t\t\t\t\t\tif (this.cursor && this.cursor.parentNode) {\n\t\t\t\t\t\t\tthis.cursor.parentNode.removeChild(this.cursor);\n\t\t\t\t\t\t\tthis.cursor = null;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthis.strPos = 0;\n\t\t\t\t\t\tthis.arrayPos = 0;\n\t\t\t\t\t\tthis.curLoop = 0;\n\t\t\t\t\t\tif (restart) {\n\t\t\t\t\t\t\tthis.insertCursor();\n\t\t\t\t\t\t\tthis.options.onReset(this);\n\t\t\t\t\t\t\tthis.begin();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t/**\n * Begins the typing animation\n * @private\n */\n\t\t\t\t}, {\n\t\t\t\t\tkey: 'begin',\n\t\t\t\t\tvalue: function begin() {\n\t\t\t\t\t\tvar _this = this;\n\n\t\t\t\t\t\tthis.typingComplete = false;\n\t\t\t\t\t\tthis.shuffleStringsIfNeeded(this);\n\t\t\t\t\t\tthis.insertCursor();\n\t\t\t\t\t\tif (this.bindInputFocusEvents) this.bindFocusEvents();\n\t\t\t\t\t\tthis.timeout = setTimeout(function () {\n\t\t\t\t\t\t\t// Check if there is some text in the element, if yes start by backspacing the default message\n\t\t\t\t\t\t\tif (!_this.currentElContent || _this.currentElContent.length === 0) {\n\t\t\t\t\t\t\t\t_this.typewrite(_this.strings[_this.sequence[_this.arrayPos]], _this.strPos);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t// Start typing\n\t\t\t\t\t\t\t\t_this.backspace(_this.currentElContent, _this.currentElContent.length);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}, this.startDelay);\n\t\t\t\t\t}\n\n\t\t\t\t\t/**\n * Called for each character typed\n * @param {string} curString the current string in the strings array\n * @param {number} curStrPos the current position in the curString\n * @private\n */\n\t\t\t\t}, {\n\t\t\t\t\tkey: 'typewrite',\n\t\t\t\t\tvalue: function typewrite(curString, curStrPos) {\n\t\t\t\t\t\tvar _this2 = this;\n\n\t\t\t\t\t\tif (this.fadeOut && this.el.classList.contains(this.fadeOutClass)) {\n\t\t\t\t\t\t\tthis.el.classList.remove(this.fadeOutClass);\n\t\t\t\t\t\t\tif (this.cursor) this.cursor.classList.remove(this.fadeOutClass);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tvar humanize = this.humanizer(this.typeSpeed);\n\t\t\t\t\t\tvar numChars = 1;\n\n\t\t\t\t\t\tif (this.pause.status === true) {\n\t\t\t\t\t\t\tthis.setPauseStatus(curString, curStrPos, true);\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// contain typing function in a timeout humanize'd delay\n\t\t\t\t\t\tthis.timeout = setTimeout(function () {\n\t\t\t\t\t\t\t// skip over any HTML chars\n\t\t\t\t\t\t\tcurStrPos = _htmlParserJs.htmlParser.typeHtmlChars(curString, curStrPos, _this2);\n\n\t\t\t\t\t\t\tvar pauseTime = 0;\n\t\t\t\t\t\t\tvar substr = curString.substr(curStrPos);\n\t\t\t\t\t\t\t// check for an escape character before a pause value\n\t\t\t\t\t\t\t// format: \\^\\d+ .. eg: ^1000 .. should be able to print the ^ too using ^^\n\t\t\t\t\t\t\t// single ^ are removed from string\n\t\t\t\t\t\t\tif (substr.charAt(0) === '^') {\n\t\t\t\t\t\t\t\tif (/^\\^\\d+/.test(substr)) {\n\t\t\t\t\t\t\t\t\tvar skip = 1; // skip at least 1\n\t\t\t\t\t\t\t\t\tsubstr = /\\d+/.exec(substr)[0];\n\t\t\t\t\t\t\t\t\tskip += substr.length;\n\t\t\t\t\t\t\t\t\tpauseTime = parseInt(substr);\n\t\t\t\t\t\t\t\t\t_this2.temporaryPause = true;\n\t\t\t\t\t\t\t\t\t_this2.options.onTypingPaused(_this2.arrayPos, _this2);\n\t\t\t\t\t\t\t\t\t// strip out the escape character and pause value so they're not printed\n\t\t\t\t\t\t\t\t\tcurString = curString.substring(0, curStrPos) + curString.substring(curStrPos + skip);\n\t\t\t\t\t\t\t\t\t_this2.toggleBlinking(true);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// check for skip characters formatted as\n\t\t\t\t\t\t\t// \"this is a `string to print NOW` ...\"\n\t\t\t\t\t\t\tif (substr.charAt(0) === '`') {\n\t\t\t\t\t\t\t\twhile (curString.substr(curStrPos + numChars).charAt(0) !== '`') {\n\t\t\t\t\t\t\t\t\tnumChars++;\n\t\t\t\t\t\t\t\t\tif (curStrPos + numChars > curString.length) break;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// strip out the escape characters and append all the string in between\n\t\t\t\t\t\t\t\tvar stringBeforeSkip = curString.substring(0, curStrPos);\n\t\t\t\t\t\t\t\tvar stringSkipped = curString.substring(stringBeforeSkip.length + 1, curStrPos + numChars);\n\t\t\t\t\t\t\t\tvar stringAfterSkip = curString.substring(curStrPos + numChars + 1);\n\t\t\t\t\t\t\t\tcurString = stringBeforeSkip + stringSkipped + stringAfterSkip;\n\t\t\t\t\t\t\t\tnumChars--;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// timeout for any pause after a character\n\t\t\t\t\t\t\t_this2.timeout = setTimeout(function () {\n\t\t\t\t\t\t\t\t// Accounts for blinking while paused\n\t\t\t\t\t\t\t\t_this2.toggleBlinking(false);\n\n\t\t\t\t\t\t\t\t// We're done with this sentence!\n\t\t\t\t\t\t\t\tif (curStrPos >= curString.length) {\n\t\t\t\t\t\t\t\t\t_this2.doneTyping(curString, curStrPos);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t_this2.keepTyping(curString, curStrPos, numChars);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// end of character pause\n\t\t\t\t\t\t\t\tif (_this2.temporaryPause) {\n\t\t\t\t\t\t\t\t\t_this2.temporaryPause = false;\n\t\t\t\t\t\t\t\t\t_this2.options.onTypingResumed(_this2.arrayPos, _this2);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}, pauseTime);\n\n\t\t\t\t\t\t\t// humanized value for typing\n\t\t\t\t\t\t}, humanize);\n\t\t\t\t\t}\n\n\t\t\t\t\t/**\n * Continue to the next string & begin typing\n * @param {string} curString the current string in the strings array\n * @param {number} curStrPos the current position in the curString\n * @private\n */\n\t\t\t\t}, {\n\t\t\t\t\tkey: 'keepTyping',\n\t\t\t\t\tvalue: function keepTyping(curString, curStrPos, numChars) {\n\t\t\t\t\t\t// call before functions if applicable\n\t\t\t\t\t\tif (curStrPos === 0) {\n\t\t\t\t\t\t\tthis.toggleBlinking(false);\n\t\t\t\t\t\t\tthis.options.preStringTyped(this.arrayPos, this);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// start typing each new char into existing string\n\t\t\t\t\t\t// curString: arg, this.el.html: original text inside element\n\t\t\t\t\t\tcurStrPos += numChars;\n\t\t\t\t\t\tvar nextString = curString.substr(0, curStrPos);\n\t\t\t\t\t\tthis.replaceText(nextString);\n\t\t\t\t\t\t// loop the function\n\t\t\t\t\t\tthis.typewrite(curString, curStrPos);\n\t\t\t\t\t}\n\n\t\t\t\t\t/**\n * We're done typing all strings\n * @param {string} curString the current string in the strings array\n * @param {number} curStrPos the current position in the curString\n * @private\n */\n\t\t\t\t}, {\n\t\t\t\t\tkey: 'doneTyping',\n\t\t\t\t\tvalue: function doneTyping(curString, curStrPos) {\n\t\t\t\t\t\tvar _this3 = this;\n\n\t\t\t\t\t\t// fires callback function\n\t\t\t\t\t\tthis.options.onStringTyped(this.arrayPos, this);\n\t\t\t\t\t\tthis.toggleBlinking(true);\n\t\t\t\t\t\t// is this the final string\n\t\t\t\t\t\tif (this.arrayPos === this.strings.length - 1) {\n\t\t\t\t\t\t\t// callback that occurs on the last typed string\n\t\t\t\t\t\t\tthis.complete();\n\t\t\t\t\t\t\t// quit if we wont loop back\n\t\t\t\t\t\t\tif (this.loop === false || this.curLoop === this.loopCount) {\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthis.timeout = setTimeout(function () {\n\t\t\t\t\t\t\t_this3.backspace(curString, curStrPos);\n\t\t\t\t\t\t}, this.backDelay);\n\t\t\t\t\t}\n\n\t\t\t\t\t/**\n * Backspaces 1 character at a time\n * @param {string} curString the current string in the strings array\n * @param {number} curStrPos the current position in the curString\n * @private\n */\n\t\t\t\t}, {\n\t\t\t\t\tkey: 'backspace',\n\t\t\t\t\tvalue: function backspace(curString, curStrPos) {\n\t\t\t\t\t\tvar _this4 = this;\n\n\t\t\t\t\t\tif (this.pause.status === true) {\n\t\t\t\t\t\t\tthis.setPauseStatus(curString, curStrPos, true);\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (this.fadeOut) return this.initFadeOut();\n\n\t\t\t\t\t\tthis.toggleBlinking(false);\n\t\t\t\t\t\tvar humanize = this.humanizer(this.backSpeed);\n\n\t\t\t\t\t\tthis.timeout = setTimeout(function () {\n\t\t\t\t\t\t\tcurStrPos = _htmlParserJs.htmlParser.backSpaceHtmlChars(curString, curStrPos, _this4);\n\t\t\t\t\t\t\t// replace text with base text + typed characters\n\t\t\t\t\t\t\tvar curStringAtPosition = curString.substr(0, curStrPos);\n\t\t\t\t\t\t\t_this4.replaceText(curStringAtPosition);\n\n\t\t\t\t\t\t\t// if smartBack is enabled\n\t\t\t\t\t\t\tif (_this4.smartBackspace) {\n\t\t\t\t\t\t\t\t// the remaining part of the current string is equal of the same part of the new string\n\t\t\t\t\t\t\t\tvar nextString = _this4.strings[_this4.arrayPos + 1];\n\t\t\t\t\t\t\t\tif (nextString && curStringAtPosition === nextString.substr(0, curStrPos)) {\n\t\t\t\t\t\t\t\t\t_this4.stopNum = curStrPos;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t_this4.stopNum = 0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// if the number (id of character in current string) is\n\t\t\t\t\t\t\t// less than the stop number, keep going\n\t\t\t\t\t\t\tif (curStrPos > _this4.stopNum) {\n\t\t\t\t\t\t\t\t// subtract characters one by one\n\t\t\t\t\t\t\t\tcurStrPos--;\n\t\t\t\t\t\t\t\t// loop the function\n\t\t\t\t\t\t\t\t_this4.backspace(curString, curStrPos);\n\t\t\t\t\t\t\t} else if (curStrPos <= _this4.stopNum) {\n\t\t\t\t\t\t\t\t// if the stop number has been reached, increase\n\t\t\t\t\t\t\t\t// array position to next string\n\t\t\t\t\t\t\t\t_this4.arrayPos++;\n\t\t\t\t\t\t\t\t// When looping, begin at the beginning after backspace complete\n\t\t\t\t\t\t\t\tif (_this4.arrayPos === _this4.strings.length) {\n\t\t\t\t\t\t\t\t\t_this4.arrayPos = 0;\n\t\t\t\t\t\t\t\t\t_this4.options.onLastStringBackspaced();\n\t\t\t\t\t\t\t\t\t_this4.shuffleStringsIfNeeded();\n\t\t\t\t\t\t\t\t\t_this4.begin();\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t_this4.typewrite(_this4.strings[_this4.sequence[_this4.arrayPos]], curStrPos);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// humanized value for typing\n\t\t\t\t\t\t}, humanize);\n\t\t\t\t\t}\n\n\t\t\t\t\t/**\n * Full animation is complete\n * @private\n */\n\t\t\t\t}, {\n\t\t\t\t\tkey: 'complete',\n\t\t\t\t\tvalue: function complete() {\n\t\t\t\t\t\tthis.options.onComplete(this);\n\t\t\t\t\t\tif (this.loop) {\n\t\t\t\t\t\t\tthis.curLoop++;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tthis.typingComplete = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t/**\n * Has the typing been stopped\n * @param {string} curString the current string in the strings array\n * @param {number} curStrPos the current position in the curString\n * @param {boolean} isTyping\n * @private\n */\n\t\t\t\t}, {\n\t\t\t\t\tkey: 'setPauseStatus',\n\t\t\t\t\tvalue: function setPauseStatus(curString, curStrPos, isTyping) {\n\t\t\t\t\t\tthis.pause.typewrite = isTyping;\n\t\t\t\t\t\tthis.pause.curString = curString;\n\t\t\t\t\t\tthis.pause.curStrPos = curStrPos;\n\t\t\t\t\t}\n\n\t\t\t\t\t/**\n * Toggle the blinking cursor\n * @param {boolean} isBlinking\n * @private\n */\n\t\t\t\t}, {\n\t\t\t\t\tkey: 'toggleBlinking',\n\t\t\t\t\tvalue: function toggleBlinking(isBlinking) {\n\t\t\t\t\t\tif (!this.cursor) return;\n\t\t\t\t\t\t// if in paused state, don't toggle blinking a 2nd time\n\t\t\t\t\t\tif (this.pause.status) return;\n\t\t\t\t\t\tif (this.cursorBlinking === isBlinking) return;\n\t\t\t\t\t\tthis.cursorBlinking = isBlinking;\n\t\t\t\t\t\tif (isBlinking) {\n\t\t\t\t\t\t\tthis.cursor.classList.add('typed-cursor--blink');\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tthis.cursor.classList.remove('typed-cursor--blink');\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t/**\n * Speed in MS to type\n * @param {number} speed\n * @private\n */\n\t\t\t\t}, {\n\t\t\t\t\tkey: 'humanizer',\n\t\t\t\t\tvalue: function humanizer(speed) {\n\t\t\t\t\t\treturn Math.round(Math.random() * speed / 2) + speed;\n\t\t\t\t\t}\n\n\t\t\t\t\t/**\n * Shuffle the sequence of the strings array\n * @private\n */\n\t\t\t\t}, {\n\t\t\t\t\tkey: 'shuffleStringsIfNeeded',\n\t\t\t\t\tvalue: function shuffleStringsIfNeeded() {\n\t\t\t\t\t\tif (!this.shuffle) return;\n\t\t\t\t\t\tthis.sequence = this.sequence.sort(function () {\n\t\t\t\t\t\t\treturn Math.random() - 0.5;\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\n\t\t\t\t\t/**\n * Adds a CSS class to fade out current string\n * @private\n */\n\t\t\t\t}, {\n\t\t\t\t\tkey: 'initFadeOut',\n\t\t\t\t\tvalue: function initFadeOut() {\n\t\t\t\t\t\tvar _this5 = this;\n\n\t\t\t\t\t\tthis.el.className += ' ' + this.fadeOutClass;\n\t\t\t\t\t\tif (this.cursor) this.cursor.className += ' ' + this.fadeOutClass;\n\t\t\t\t\t\treturn setTimeout(function () {\n\t\t\t\t\t\t\t_this5.arrayPos++;\n\t\t\t\t\t\t\t_this5.replaceText('');\n\n\t\t\t\t\t\t\t// Resets current string if end of loop reached\n\t\t\t\t\t\t\tif (_this5.strings.length > _this5.arrayPos) {\n\t\t\t\t\t\t\t\t_this5.typewrite(_this5.strings[_this5.sequence[_this5.arrayPos]], 0);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t_this5.typewrite(_this5.strings[0], 0);\n\t\t\t\t\t\t\t\t_this5.arrayPos = 0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}, this.fadeOutDelay);\n\t\t\t\t\t}\n\n\t\t\t\t\t/**\n * Replaces current text in the HTML element\n * depending on element type\n * @param {string} str\n * @private\n */\n\t\t\t\t}, {\n\t\t\t\t\tkey: 'replaceText',\n\t\t\t\t\tvalue: function replaceText(str) {\n\t\t\t\t\t\tif (this.attr) {\n\t\t\t\t\t\t\tthis.el.setAttribute(this.attr, str);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tif (this.isInput) {\n\t\t\t\t\t\t\t\tthis.el.value = str;\n\t\t\t\t\t\t\t} else if (this.contentType === 'html') {\n\t\t\t\t\t\t\t\tthis.el.innerHTML = str;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthis.el.textContent = str;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t/**\n * If using input elements, bind focus in order to\n * start and stop the animation\n * @private\n */\n\t\t\t\t}, {\n\t\t\t\t\tkey: 'bindFocusEvents',\n\t\t\t\t\tvalue: function bindFocusEvents() {\n\t\t\t\t\t\tvar _this6 = this;\n\n\t\t\t\t\t\tif (!this.isInput) return;\n\t\t\t\t\t\tthis.el.addEventListener('focus', function (e) {\n\t\t\t\t\t\t\t_this6.stop();\n\t\t\t\t\t\t});\n\t\t\t\t\t\tthis.el.addEventListener('blur', function (e) {\n\t\t\t\t\t\t\tif (_this6.el.value && _this6.el.value.length !== 0) {\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t_this6.start();\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\n\t\t\t\t\t/**\n * On init, insert the cursor element\n * @private\n */\n\t\t\t\t}, {\n\t\t\t\t\tkey: 'insertCursor',\n\t\t\t\t\tvalue: function insertCursor() {\n\t\t\t\t\t\tif (!this.showCursor) return;\n\t\t\t\t\t\tif (this.cursor) return;\n\t\t\t\t\t\tthis.cursor = document.createElement('span');\n\t\t\t\t\t\tthis.cursor.className = 'typed-cursor';\n\t\t\t\t\t\tthis.cursor.innerHTML = this.cursorChar;\n\t\t\t\t\t\tthis.el.parentNode && this.el.parentNode.insertBefore(this.cursor, this.el.nextSibling);\n\t\t\t\t\t}\n\t\t\t\t}]);\n\n\t\t\t\treturn Typed;\n\t\t\t}();\n\n\t\t\texports['default'] = Typed;\n\t\t\tmodule.exports = exports['default'];\n\n\t\t\t/***/\n\t\t},\n\t\t/* 1 */\n\t\t/***/function (module, exports, __webpack_require__) {\n\n\t\t\t'use strict';\n\n\t\t\tObject.defineProperty(exports, '__esModule', {\n\t\t\t\tvalue: true\n\t\t\t});\n\n\t\t\tvar _extends = Object.assign || function (target) {\n\t\t\t\tfor (var i = 1; i < arguments.length; i++) {\n\t\t\t\t\tvar source = arguments[i];for (var key in source) {\n\t\t\t\t\t\tif (Object.prototype.hasOwnProperty.call(source, key)) {\n\t\t\t\t\t\t\ttarget[key] = source[key];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}return target;\n\t\t\t};\n\n\t\t\tvar _createClass = function () {\n\t\t\t\tfunction defineProperties(target, props) {\n\t\t\t\t\tfor (var i = 0; i < props.length; i++) {\n\t\t\t\t\t\tvar descriptor = props[i];descriptor.enumerable = descriptor.enumerable || false;descriptor.configurable = true;if ('value' in descriptor) descriptor.writable = true;Object.defineProperty(target, descriptor.key, descriptor);\n\t\t\t\t\t}\n\t\t\t\t}return function (Constructor, protoProps, staticProps) {\n\t\t\t\t\tif (protoProps) defineProperties(Constructor.prototype, protoProps);if (staticProps) defineProperties(Constructor, staticProps);return Constructor;\n\t\t\t\t};\n\t\t\t}();\n\n\t\t\tfunction _interopRequireDefault(obj) {\n\t\t\t\treturn obj && obj.__esModule ? obj : { 'default': obj };\n\t\t\t}\n\n\t\t\tfunction _classCallCheck(instance, Constructor) {\n\t\t\t\tif (!(instance instanceof Constructor)) {\n\t\t\t\t\tthrow new TypeError('Cannot call a class as a function');\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tvar _defaultsJs = __webpack_require__(2);\n\n\t\t\tvar _defaultsJs2 = _interopRequireDefault(_defaultsJs);\n\n\t\t\t/**\n * Initialize the Typed object\n */\n\n\t\t\tvar Initializer = function () {\n\t\t\t\tfunction Initializer() {\n\t\t\t\t\t_classCallCheck(this, Initializer);\n\t\t\t\t}\n\n\t\t\t\t_createClass(Initializer, [{\n\t\t\t\t\tkey: 'load',\n\n\t\t\t\t\t/**\n * Load up defaults & options on the Typed instance\n * @param {Typed} self instance of Typed\n * @param {object} options options object\n * @param {string} elementId HTML element ID _OR_ instance of HTML element\n * @private\n */\n\n\t\t\t\t\tvalue: function load(self, options, elementId) {\n\t\t\t\t\t\t// chosen element to manipulate text\n\t\t\t\t\t\tif (typeof elementId === 'string') {\n\t\t\t\t\t\t\tself.el = document.querySelector(elementId);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tself.el = elementId;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tself.options = _extends({}, _defaultsJs2['default'], options);\n\n\t\t\t\t\t\t// attribute to type into\n\t\t\t\t\t\tself.isInput = self.el.tagName.toLowerCase() === 'input';\n\t\t\t\t\t\tself.attr = self.options.attr;\n\t\t\t\t\t\tself.bindInputFocusEvents = self.options.bindInputFocusEvents;\n\n\t\t\t\t\t\t// show cursor\n\t\t\t\t\t\tself.showCursor = self.isInput ? false : self.options.showCursor;\n\n\t\t\t\t\t\t// custom cursor\n\t\t\t\t\t\tself.cursorChar = self.options.cursorChar;\n\n\t\t\t\t\t\t// Is the cursor blinking\n\t\t\t\t\t\tself.cursorBlinking = true;\n\n\t\t\t\t\t\t// text content of element\n\t\t\t\t\t\tself.elContent = self.attr ? self.el.getAttribute(self.attr) : self.el.textContent;\n\n\t\t\t\t\t\t// html or plain text\n\t\t\t\t\t\tself.contentType = self.options.contentType;\n\n\t\t\t\t\t\t// typing speed\n\t\t\t\t\t\tself.typeSpeed = self.options.typeSpeed;\n\n\t\t\t\t\t\t// add a delay before typing starts\n\t\t\t\t\t\tself.startDelay = self.options.startDelay;\n\n\t\t\t\t\t\t// backspacing speed\n\t\t\t\t\t\tself.backSpeed = self.options.backSpeed;\n\n\t\t\t\t\t\t// only backspace what doesn't match the previous string\n\t\t\t\t\t\tself.smartBackspace = self.options.smartBackspace;\n\n\t\t\t\t\t\t// amount of time to wait before backspacing\n\t\t\t\t\t\tself.backDelay = self.options.backDelay;\n\n\t\t\t\t\t\t// Fade out instead of backspace\n\t\t\t\t\t\tself.fadeOut = self.options.fadeOut;\n\t\t\t\t\t\tself.fadeOutClass = self.options.fadeOutClass;\n\t\t\t\t\t\tself.fadeOutDelay = self.options.fadeOutDelay;\n\n\t\t\t\t\t\t// variable to check whether typing is currently paused\n\t\t\t\t\t\tself.isPaused = false;\n\n\t\t\t\t\t\t// input strings of text\n\t\t\t\t\t\tself.strings = self.options.strings.map(function (s) {\n\t\t\t\t\t\t\treturn s.trim();\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\t// div containing strings\n\t\t\t\t\t\tif (typeof self.options.stringsElement === 'string') {\n\t\t\t\t\t\t\tself.stringsElement = document.querySelector(self.options.stringsElement);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tself.stringsElement = self.options.stringsElement;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (self.stringsElement) {\n\t\t\t\t\t\t\tself.strings = [];\n\t\t\t\t\t\t\tself.stringsElement.style.display = 'none';\n\t\t\t\t\t\t\tvar strings = Array.prototype.slice.apply(self.stringsElement.children);\n\t\t\t\t\t\t\tvar stringsLength = strings.length;\n\n\t\t\t\t\t\t\tif (stringsLength) {\n\t\t\t\t\t\t\t\tfor (var i = 0; i < stringsLength; i += 1) {\n\t\t\t\t\t\t\t\t\tvar stringEl = strings[i];\n\t\t\t\t\t\t\t\t\tself.strings.push(stringEl.innerHTML.trim());\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// character number position of current string\n\t\t\t\t\t\tself.strPos = 0;\n\n\t\t\t\t\t\t// current array position\n\t\t\t\t\t\tself.arrayPos = 0;\n\n\t\t\t\t\t\t// index of string to stop backspacing on\n\t\t\t\t\t\tself.stopNum = 0;\n\n\t\t\t\t\t\t// Looping logic\n\t\t\t\t\t\tself.loop = self.options.loop;\n\t\t\t\t\t\tself.loopCount = self.options.loopCount;\n\t\t\t\t\t\tself.curLoop = 0;\n\n\t\t\t\t\t\t// shuffle the strings\n\t\t\t\t\t\tself.shuffle = self.options.shuffle;\n\t\t\t\t\t\t// the order of strings\n\t\t\t\t\t\tself.sequence = [];\n\n\t\t\t\t\t\tself.pause = {\n\t\t\t\t\t\t\tstatus: false,\n\t\t\t\t\t\t\ttypewrite: true,\n\t\t\t\t\t\t\tcurString: '',\n\t\t\t\t\t\t\tcurStrPos: 0\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\t// When the typing is complete (when not looped)\n\t\t\t\t\t\tself.typingComplete = false;\n\n\t\t\t\t\t\t// Set the order in which the strings are typed\n\t\t\t\t\t\tfor (var i in self.strings) {\n\t\t\t\t\t\t\tself.sequence[i] = i;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// If there is some text in the element\n\t\t\t\t\t\tself.currentElContent = this.getCurrentElContent(self);\n\n\t\t\t\t\t\tself.autoInsertCss = self.options.autoInsertCss;\n\n\t\t\t\t\t\tthis.appendAnimationCss(self);\n\t\t\t\t\t}\n\t\t\t\t}, {\n\t\t\t\t\tkey: 'getCurrentElContent',\n\t\t\t\t\tvalue: function getCurrentElContent(self) {\n\t\t\t\t\t\tvar elContent = '';\n\t\t\t\t\t\tif (self.attr) {\n\t\t\t\t\t\t\telContent = self.el.getAttribute(self.attr);\n\t\t\t\t\t\t} else if (self.isInput) {\n\t\t\t\t\t\t\telContent = self.el.value;\n\t\t\t\t\t\t} else if (self.contentType === 'html') {\n\t\t\t\t\t\t\telContent = self.el.innerHTML;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\telContent = self.el.textContent;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn elContent;\n\t\t\t\t\t}\n\t\t\t\t}, {\n\t\t\t\t\tkey: 'appendAnimationCss',\n\t\t\t\t\tvalue: function appendAnimationCss(self) {\n\t\t\t\t\t\tvar cssDataName = 'data-typed-js-css';\n\t\t\t\t\t\tif (!self.autoInsertCss) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (!self.showCursor && !self.fadeOut) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (document.querySelector('[' + cssDataName + ']')) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tvar css = document.createElement('style');\n\t\t\t\t\t\tcss.type = 'text/css';\n\t\t\t\t\t\tcss.setAttribute(cssDataName, true);\n\n\t\t\t\t\t\tvar innerCss = '';\n\t\t\t\t\t\tif (self.showCursor) {\n\t\t\t\t\t\t\tinnerCss += '\\n .typed-cursor{\\n opacity: 1;\\n }\\n .typed-cursor.typed-cursor--blink{\\n animation: typedjsBlink 0.7s infinite;\\n -webkit-animation: typedjsBlink 0.7s infinite;\\n animation: typedjsBlink 0.7s infinite;\\n }\\n @keyframes typedjsBlink{\\n 50% { opacity: 0.0; }\\n }\\n @-webkit-keyframes typedjsBlink{\\n 0% { opacity: 1; }\\n 50% { opacity: 0.0; }\\n 100% { opacity: 1; }\\n }\\n ';\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (self.fadeOut) {\n\t\t\t\t\t\t\tinnerCss += '\\n .typed-fade-out{\\n opacity: 0;\\n transition: opacity .25s;\\n }\\n .typed-cursor.typed-cursor--blink.typed-fade-out{\\n -webkit-animation: 0;\\n animation: 0;\\n }\\n ';\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (css.length === 0) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcss.innerHTML = innerCss;\n\t\t\t\t\t\tdocument.body.appendChild(css);\n\t\t\t\t\t}\n\t\t\t\t}]);\n\n\t\t\t\treturn Initializer;\n\t\t\t}();\n\n\t\t\texports['default'] = Initializer;\n\t\t\tvar initializer = new Initializer();\n\t\t\texports.initializer = initializer;\n\n\t\t\t/***/\n\t\t},\n\t\t/* 2 */\n\t\t/***/function (module, exports) {\n\n\t\t\t/**\n * Defaults & options\n * @returns {object} Typed defaults & options\n * @public\n */\n\n\t\t\t'use strict';\n\n\t\t\tObject.defineProperty(exports, '__esModule', {\n\t\t\t\tvalue: true\n\t\t\t});\n\t\t\tvar defaults = {\n\t\t\t\t/**\n * @property {array} strings strings to be typed\n * @property {string} stringsElement ID of element containing string children\n */\n\t\t\t\tstrings: ['These are the default values...', 'You know what you should do?', 'Use your own!', 'Have a great day!'],\n\t\t\t\tstringsElement: null,\n\n\t\t\t\t/**\n * @property {number} typeSpeed type speed in milliseconds\n */\n\t\t\t\ttypeSpeed: 0,\n\n\t\t\t\t/**\n * @property {number} startDelay time before typing starts in milliseconds\n */\n\t\t\t\tstartDelay: 0,\n\n\t\t\t\t/**\n * @property {number} backSpeed backspacing speed in milliseconds\n */\n\t\t\t\tbackSpeed: 0,\n\n\t\t\t\t/**\n * @property {boolean} smartBackspace only backspace what doesn't match the previous string\n */\n\t\t\t\tsmartBackspace: true,\n\n\t\t\t\t/**\n * @property {boolean} shuffle shuffle the strings\n */\n\t\t\t\tshuffle: false,\n\n\t\t\t\t/**\n * @property {number} backDelay time before backspacing in milliseconds\n */\n\t\t\t\tbackDelay: 700,\n\n\t\t\t\t/**\n * @property {boolean} fadeOut Fade out instead of backspace\n * @property {string} fadeOutClass css class for fade animation\n * @property {boolean} fadeOutDelay Fade out delay in milliseconds\n */\n\t\t\t\tfadeOut: false,\n\t\t\t\tfadeOutClass: 'typed-fade-out',\n\t\t\t\tfadeOutDelay: 500,\n\n\t\t\t\t/**\n * @property {boolean} loop loop strings\n * @property {number} loopCount amount of loops\n */\n\t\t\t\tloop: false,\n\t\t\t\tloopCount: Infinity,\n\n\t\t\t\t/**\n * @property {boolean} showCursor show cursor\n * @property {string} cursorChar character for cursor\n * @property {boolean} autoInsertCss insert CSS for cursor and fadeOut into HTML \n */\n\t\t\t\tshowCursor: true,\n\t\t\t\tcursorChar: '|',\n\t\t\t\tautoInsertCss: true,\n\n\t\t\t\t/**\n * @property {string} attr attribute for typing\n * Ex: input placeholder, value, or just HTML text\n */\n\t\t\t\tattr: null,\n\n\t\t\t\t/**\n * @property {boolean} bindInputFocusEvents bind to focus and blur if el is text input\n */\n\t\t\t\tbindInputFocusEvents: false,\n\n\t\t\t\t/**\n * @property {string} contentType 'html' or 'null' for plaintext\n */\n\t\t\t\tcontentType: 'html',\n\n\t\t\t\t/**\n * All typing is complete\n * @param {Typed} self\n */\n\t\t\t\tonComplete: function onComplete(self) {},\n\n\t\t\t\t/**\n * Before each string is typed\n * @param {number} arrayPos\n * @param {Typed} self\n */\n\t\t\t\tpreStringTyped: function preStringTyped(arrayPos, self) {},\n\n\t\t\t\t/**\n * After each string is typed\n * @param {number} arrayPos\n * @param {Typed} self\n */\n\t\t\t\tonStringTyped: function onStringTyped(arrayPos, self) {},\n\n\t\t\t\t/**\n * During looping, after last string is typed\n * @param {Typed} self\n */\n\t\t\t\tonLastStringBackspaced: function onLastStringBackspaced(self) {},\n\n\t\t\t\t/**\n * Typing has been stopped\n * @param {number} arrayPos\n * @param {Typed} self\n */\n\t\t\t\tonTypingPaused: function onTypingPaused(arrayPos, self) {},\n\n\t\t\t\t/**\n * Typing has been started after being stopped\n * @param {number} arrayPos\n * @param {Typed} self\n */\n\t\t\t\tonTypingResumed: function onTypingResumed(arrayPos, self) {},\n\n\t\t\t\t/**\n * After reset\n * @param {Typed} self\n */\n\t\t\t\tonReset: function onReset(self) {},\n\n\t\t\t\t/**\n * After stop\n * @param {number} arrayPos\n * @param {Typed} self\n */\n\t\t\t\tonStop: function onStop(arrayPos, self) {},\n\n\t\t\t\t/**\n * After start\n * @param {number} arrayPos\n * @param {Typed} self\n */\n\t\t\t\tonStart: function onStart(arrayPos, self) {},\n\n\t\t\t\t/**\n * After destroy\n * @param {Typed} self\n */\n\t\t\t\tonDestroy: function onDestroy(self) {}\n\t\t\t};\n\n\t\t\texports['default'] = defaults;\n\t\t\tmodule.exports = exports['default'];\n\n\t\t\t/***/\n\t\t},\n\t\t/* 3 */\n\t\t/***/function (module, exports) {\n\n\t\t\t/**\n * TODO: These methods can probably be combined somehow\n * Parse HTML tags & HTML Characters\n */\n\n\t\t\t'use strict';\n\n\t\t\tObject.defineProperty(exports, '__esModule', {\n\t\t\t\tvalue: true\n\t\t\t});\n\n\t\t\tvar _createClass = function () {\n\t\t\t\tfunction defineProperties(target, props) {\n\t\t\t\t\tfor (var i = 0; i < props.length; i++) {\n\t\t\t\t\t\tvar descriptor = props[i];descriptor.enumerable = descriptor.enumerable || false;descriptor.configurable = true;if ('value' in descriptor) descriptor.writable = true;Object.defineProperty(target, descriptor.key, descriptor);\n\t\t\t\t\t}\n\t\t\t\t}return function (Constructor, protoProps, staticProps) {\n\t\t\t\t\tif (protoProps) defineProperties(Constructor.prototype, protoProps);if (staticProps) defineProperties(Constructor, staticProps);return Constructor;\n\t\t\t\t};\n\t\t\t}();\n\n\t\t\tfunction _classCallCheck(instance, Constructor) {\n\t\t\t\tif (!(instance instanceof Constructor)) {\n\t\t\t\t\tthrow new TypeError('Cannot call a class as a function');\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tvar HTMLParser = function () {\n\t\t\t\tfunction HTMLParser() {\n\t\t\t\t\t_classCallCheck(this, HTMLParser);\n\t\t\t\t}\n\n\t\t\t\t_createClass(HTMLParser, [{\n\t\t\t\t\tkey: 'typeHtmlChars',\n\n\t\t\t\t\t/**\n * Type HTML tags & HTML Characters\n * @param {string} curString Current string\n * @param {number} curStrPos Position in current string\n * @param {Typed} self instance of Typed\n * @returns {number} a new string position\n * @private\n */\n\n\t\t\t\t\tvalue: function typeHtmlChars(curString, curStrPos, self) {\n\t\t\t\t\t\tif (self.contentType !== 'html') return curStrPos;\n\t\t\t\t\t\tvar curChar = curString.substr(curStrPos).charAt(0);\n\t\t\t\t\t\tif (curChar === '<' || curChar === '&') {\n\t\t\t\t\t\t\tvar endTag = '';\n\t\t\t\t\t\t\tif (curChar === '<') {\n\t\t\t\t\t\t\t\tendTag = '>';\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tendTag = ';';\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\twhile (curString.substr(curStrPos + 1).charAt(0) !== endTag) {\n\t\t\t\t\t\t\t\tcurStrPos++;\n\t\t\t\t\t\t\t\tif (curStrPos + 1 > curString.length) {\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tcurStrPos++;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn curStrPos;\n\t\t\t\t\t}\n\n\t\t\t\t\t/**\n * Backspace HTML tags and HTML Characters\n * @param {string} curString Current string\n * @param {number} curStrPos Position in current string\n * @param {Typed} self instance of Typed\n * @returns {number} a new string position\n * @private\n */\n\t\t\t\t}, {\n\t\t\t\t\tkey: 'backSpaceHtmlChars',\n\t\t\t\t\tvalue: function backSpaceHtmlChars(curString, curStrPos, self) {\n\t\t\t\t\t\tif (self.contentType !== 'html') return curStrPos;\n\t\t\t\t\t\tvar curChar = curString.substr(curStrPos).charAt(0);\n\t\t\t\t\t\tif (curChar === '>' || curChar === ';') {\n\t\t\t\t\t\t\tvar endTag = '';\n\t\t\t\t\t\t\tif (curChar === '>') {\n\t\t\t\t\t\t\t\tendTag = '<';\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tendTag = '&';\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\twhile (curString.substr(curStrPos - 1).charAt(0) !== endTag) {\n\t\t\t\t\t\t\t\tcurStrPos--;\n\t\t\t\t\t\t\t\tif (curStrPos < 0) {\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tcurStrPos--;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn curStrPos;\n\t\t\t\t\t}\n\t\t\t\t}]);\n\n\t\t\t\treturn HTMLParser;\n\t\t\t}();\n\n\t\t\texports['default'] = HTMLParser;\n\t\t\tvar htmlParser = new HTMLParser();\n\t\t\texports.htmlParser = htmlParser;\n\n\t\t\t/***/\n\t\t}]\n\t\t/******/)\n\t);\n});\n;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(6)(module)))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9+L3R5cGVkLmpzL2xpYi90eXBlZC5qcz9kOTdkIl0sIm5hbWVzIjpbIndlYnBhY2tVbml2ZXJzYWxNb2R1bGVEZWZpbml0aW9uIiwicm9vdCIsImZhY3RvcnkiLCJleHBvcnRzIiwibW9kdWxlIiwibW9kdWxlcyIsImluc3RhbGxlZE1vZHVsZXMiLCJfX3dlYnBhY2tfcmVxdWlyZV9fIiwibW9kdWxlSWQiLCJpZCIsImxvYWRlZCIsImNhbGwiLCJtIiwiYyIsInAiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsInZhbHVlIiwiX2NyZWF0ZUNsYXNzIiwiZGVmaW5lUHJvcGVydGllcyIsInRhcmdldCIsInByb3BzIiwiaSIsImxlbmd0aCIsImRlc2NyaXB0b3IiLCJlbnVtZXJhYmxlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJrZXkiLCJDb25zdHJ1Y3RvciIsInByb3RvUHJvcHMiLCJzdGF0aWNQcm9wcyIsInByb3RvdHlwZSIsIl9jbGFzc0NhbGxDaGVjayIsImluc3RhbmNlIiwiVHlwZUVycm9yIiwiX2luaXRpYWxpemVySnMiLCJfaHRtbFBhcnNlckpzIiwiVHlwZWQiLCJlbGVtZW50SWQiLCJvcHRpb25zIiwiaW5pdGlhbGl6ZXIiLCJsb2FkIiwiYmVnaW4iLCJ0b2dnbGUiLCJwYXVzZSIsInN0YXR1cyIsInN0YXJ0Iiwic3RvcCIsInR5cGluZ0NvbXBsZXRlIiwidG9nZ2xlQmxpbmtpbmciLCJvblN0b3AiLCJhcnJheVBvcyIsInR5cGV3cml0ZSIsImN1clN0cmluZyIsImN1clN0clBvcyIsImJhY2tzcGFjZSIsIm9uU3RhcnQiLCJkZXN0cm95IiwicmVzZXQiLCJvbkRlc3Ryb3kiLCJyZXN0YXJ0IiwiYXJndW1lbnRzIiwidW5kZWZpbmVkIiwiY2xlYXJJbnRlcnZhbCIsInRpbWVvdXQiLCJyZXBsYWNlVGV4dCIsImN1cnNvciIsInBhcmVudE5vZGUiLCJyZW1vdmVDaGlsZCIsInN0clBvcyIsImN1ckxvb3AiLCJpbnNlcnRDdXJzb3IiLCJvblJlc2V0IiwiX3RoaXMiLCJzaHVmZmxlU3RyaW5nc0lmTmVlZGVkIiwiYmluZElucHV0Rm9jdXNFdmVudHMiLCJiaW5kRm9jdXNFdmVudHMiLCJzZXRUaW1lb3V0IiwiY3VycmVudEVsQ29udGVudCIsInN0cmluZ3MiLCJzZXF1ZW5jZSIsInN0YXJ0RGVsYXkiLCJfdGhpczIiLCJmYWRlT3V0IiwiZWwiLCJjbGFzc0xpc3QiLCJjb250YWlucyIsImZhZGVPdXRDbGFzcyIsInJlbW92ZSIsImh1bWFuaXplIiwiaHVtYW5pemVyIiwidHlwZVNwZWVkIiwibnVtQ2hhcnMiLCJzZXRQYXVzZVN0YXR1cyIsImh0bWxQYXJzZXIiLCJ0eXBlSHRtbENoYXJzIiwicGF1c2VUaW1lIiwic3Vic3RyIiwiY2hhckF0IiwidGVzdCIsInNraXAiLCJleGVjIiwicGFyc2VJbnQiLCJ0ZW1wb3JhcnlQYXVzZSIsIm9uVHlwaW5nUGF1c2VkIiwic3Vic3RyaW5nIiwic3RyaW5nQmVmb3JlU2tpcCIsInN0cmluZ1NraXBwZWQiLCJzdHJpbmdBZnRlclNraXAiLCJkb25lVHlwaW5nIiwia2VlcFR5cGluZyIsIm9uVHlwaW5nUmVzdW1lZCIsInByZVN0cmluZ1R5cGVkIiwibmV4dFN0cmluZyIsIl90aGlzMyIsIm9uU3RyaW5nVHlwZWQiLCJjb21wbGV0ZSIsImxvb3AiLCJsb29wQ291bnQiLCJiYWNrRGVsYXkiLCJfdGhpczQiLCJpbml0RmFkZU91dCIsImJhY2tTcGVlZCIsImJhY2tTcGFjZUh0bWxDaGFycyIsImN1clN0cmluZ0F0UG9zaXRpb24iLCJzbWFydEJhY2tzcGFjZSIsInN0b3BOdW0iLCJvbkxhc3RTdHJpbmdCYWNrc3BhY2VkIiwib25Db21wbGV0ZSIsImlzVHlwaW5nIiwiaXNCbGlua2luZyIsImN1cnNvckJsaW5raW5nIiwiYWRkIiwic3BlZWQiLCJNYXRoIiwicm91bmQiLCJyYW5kb20iLCJzaHVmZmxlIiwic29ydCIsIl90aGlzNSIsImNsYXNzTmFtZSIsImZhZGVPdXREZWxheSIsInN0ciIsImF0dHIiLCJzZXRBdHRyaWJ1dGUiLCJpc0lucHV0IiwiY29udGVudFR5cGUiLCJpbm5lckhUTUwiLCJ0ZXh0Q29udGVudCIsIl90aGlzNiIsImFkZEV2ZW50TGlzdGVuZXIiLCJlIiwic2hvd0N1cnNvciIsImRvY3VtZW50IiwiY3JlYXRlRWxlbWVudCIsImN1cnNvckNoYXIiLCJpbnNlcnRCZWZvcmUiLCJuZXh0U2libGluZyIsIl9leHRlbmRzIiwiYXNzaWduIiwic291cmNlIiwiaGFzT3duUHJvcGVydHkiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0Iiwib2JqIiwiX19lc01vZHVsZSIsIl9kZWZhdWx0c0pzIiwiX2RlZmF1bHRzSnMyIiwiSW5pdGlhbGl6ZXIiLCJzZWxmIiwicXVlcnlTZWxlY3RvciIsInRhZ05hbWUiLCJ0b0xvd2VyQ2FzZSIsImVsQ29udGVudCIsImdldEF0dHJpYnV0ZSIsImlzUGF1c2VkIiwibWFwIiwicyIsInRyaW0iLCJzdHJpbmdzRWxlbWVudCIsInN0eWxlIiwiZGlzcGxheSIsIkFycmF5Iiwic2xpY2UiLCJhcHBseSIsImNoaWxkcmVuIiwic3RyaW5nc0xlbmd0aCIsInN0cmluZ0VsIiwicHVzaCIsImdldEN1cnJlbnRFbENvbnRlbnQiLCJhdXRvSW5zZXJ0Q3NzIiwiYXBwZW5kQW5pbWF0aW9uQ3NzIiwiY3NzRGF0YU5hbWUiLCJjc3MiLCJ0eXBlIiwiaW5uZXJDc3MiLCJib2R5IiwiYXBwZW5kQ2hpbGQiLCJkZWZhdWx0cyIsIkluZmluaXR5IiwiSFRNTFBhcnNlciIsImN1ckNoYXIiLCJlbmRUYWciXSwibWFwcGluZ3MiOiI7O0FBQUE7Ozs7Ozs7OztBQVNBLENBQUMsU0FBU0EsZ0NBQVQsQ0FBMENDLElBQTFDLEVBQWdEQyxPQUFoRCxFQUF5RDtBQUN6RCxLQUFHLGdDQUFPQyxPQUFQLE9BQW1CLFFBQW5CLElBQStCLGdDQUFPQyxNQUFQLE9BQWtCLFFBQXBELEVBQ0NBLE9BQU9ELE9BQVAsR0FBaUJELFNBQWpCLENBREQsS0FFSyxJQUFHLElBQUgsRUFDSixpQ0FBTyxFQUFQLG9DQUFXQSxPQUFYO0FBQUE7QUFBQTtBQUFBLHFHQURJLEtBRUEsSUFBRyxRQUFPQyxPQUFQLHlDQUFPQSxPQUFQLE9BQW1CLFFBQXRCLEVBQ0pBLFFBQVEsT0FBUixJQUFtQkQsU0FBbkIsQ0FESSxLQUdKRCxLQUFLLE9BQUwsSUFBZ0JDLFNBQWhCO0FBQ0QsQ0FURCxFQVNHLElBVEgsRUFTUyxZQUFXO0FBQ3BCLFFBQU8sU0FBVSxVQUFTRyxPQUFULEVBQWtCO0FBQUU7QUFDckMsV0FEbUMsQ0FDekI7QUFDVixXQUFVLElBQUlDLG1CQUFtQixFQUF2QjtBQUNWO0FBQ0EsV0FKbUMsQ0FJekI7QUFDVixXQUFVLFNBQVNDLG1CQUFULENBQTZCQyxRQUE3QixFQUF1QztBQUNqRDtBQUNBLFlBRmlELENBRXRDO0FBQ1gsWUFBVyxJQUFHRixpQkFBaUJFLFFBQWpCLENBQUg7QUFDWCxhQUFZLE9BQU9GLGlCQUFpQkUsUUFBakIsRUFBMkJMLE9BQWxDO0FBQ1o7QUFDQSxZQU5pRCxDQU10QztBQUNYLFlBQVcsSUFBSUMsU0FBU0UsaUJBQWlCRSxRQUFqQixJQUE2QjtBQUNyRCxhQUFZTCxTQUFTLEVBRGdDO0FBRXJELGFBQVlNLElBQUlELFFBRnFDO0FBR3JELGFBQVlFLFFBQVE7QUFDcEIsYUFKcUQsRUFBMUM7QUFLWDtBQUNBLFlBYmlELENBYXRDO0FBQ1gsWUFBV0wsUUFBUUcsUUFBUixFQUFrQkcsSUFBbEIsQ0FBdUJQLE9BQU9ELE9BQTlCLEVBQXVDQyxNQUF2QyxFQUErQ0EsT0FBT0QsT0FBdEQsRUFBK0RJLG1CQUEvRDtBQUNYO0FBQ0EsWUFoQmlELENBZ0J0QztBQUNYLFlBQVdILE9BQU9NLE1BQVAsR0FBZ0IsSUFBaEI7QUFDWDtBQUNBLFlBbkJpRCxDQW1CdEM7QUFDWCxZQUFXLE9BQU9OLE9BQU9ELE9BQWQ7QUFDWDtBQUFXO0FBQ1g7QUFDQTtBQUNBLFdBN0JtQyxDQTZCekI7QUFDVixXQUFVSSxvQkFBb0JLLENBQXBCLEdBQXdCUCxPQUF4QjtBQUNWO0FBQ0EsV0FoQ21DLENBZ0N6QjtBQUNWLFdBQVVFLG9CQUFvQk0sQ0FBcEIsR0FBd0JQLGdCQUF4QjtBQUNWO0FBQ0EsV0FuQ21DLENBbUN6QjtBQUNWLFdBQVVDLG9CQUFvQk8sQ0FBcEIsR0FBd0IsRUFBeEI7QUFDVjtBQUNBLFdBdENtQyxDQXNDekI7QUFDVixXQUFVLE9BQU9QLG9CQUFvQixDQUFwQixDQUFQO0FBQ1Y7QUFBVSxHQXhDTTtBQXlDaEI7QUFDQSxVQUFVO0FBQ1Y7QUFDQSxPQUFPLFVBQVNILE1BQVQsRUFBaUJELE9BQWpCLEVBQTBCSSxtQkFBMUIsRUFBK0M7O0FBRXJEOztBQUVBUSxVQUFPQyxjQUFQLENBQXNCYixPQUF0QixFQUErQixZQUEvQixFQUE2QztBQUMzQ2MsV0FBTztBQURvQyxJQUE3Qzs7QUFJQSxPQUFJQyxlQUFnQixZQUFZO0FBQUUsYUFBU0MsZ0JBQVQsQ0FBMEJDLE1BQTFCLEVBQWtDQyxLQUFsQyxFQUF5QztBQUFFLFVBQUssSUFBSUMsSUFBSSxDQUFiLEVBQWdCQSxJQUFJRCxNQUFNRSxNQUExQixFQUFrQ0QsR0FBbEMsRUFBdUM7QUFBRSxVQUFJRSxhQUFhSCxNQUFNQyxDQUFOLENBQWpCLENBQTJCRSxXQUFXQyxVQUFYLEdBQXdCRCxXQUFXQyxVQUFYLElBQXlCLEtBQWpELENBQXdERCxXQUFXRSxZQUFYLEdBQTBCLElBQTFCLENBQWdDLElBQUksV0FBV0YsVUFBZixFQUEyQkEsV0FBV0csUUFBWCxHQUFzQixJQUF0QixDQUE0QlosT0FBT0MsY0FBUCxDQUFzQkksTUFBdEIsRUFBOEJJLFdBQVdJLEdBQXpDLEVBQThDSixVQUE5QztBQUE0RDtBQUFFLEtBQUMsT0FBTyxVQUFVSyxXQUFWLEVBQXVCQyxVQUF2QixFQUFtQ0MsV0FBbkMsRUFBZ0Q7QUFBRSxTQUFJRCxVQUFKLEVBQWdCWCxpQkFBaUJVLFlBQVlHLFNBQTdCLEVBQXdDRixVQUF4QyxFQUFxRCxJQUFJQyxXQUFKLEVBQWlCWixpQkFBaUJVLFdBQWpCLEVBQThCRSxXQUE5QixFQUE0QyxPQUFPRixXQUFQO0FBQXFCLEtBQWhOO0FBQW1OLElBQS9oQixFQUFuQjs7QUFFQSxZQUFTSSxlQUFULENBQXlCQyxRQUF6QixFQUFtQ0wsV0FBbkMsRUFBZ0Q7QUFBRSxRQUFJLEVBQUVLLG9CQUFvQkwsV0FBdEIsQ0FBSixFQUF3QztBQUFFLFdBQU0sSUFBSU0sU0FBSixDQUFjLG1DQUFkLENBQU47QUFBMkQ7QUFBRTs7QUFFekosT0FBSUMsaUJBQWlCN0Isb0JBQW9CLENBQXBCLENBQXJCOztBQUVBLE9BQUk4QixnQkFBZ0I5QixvQkFBb0IsQ0FBcEIsQ0FBcEI7O0FBRUE7Ozs7Ozs7QUFPQSxPQUFJK0IsUUFBUyxZQUFZO0FBQ3ZCLGFBQVNBLEtBQVQsQ0FBZUMsU0FBZixFQUEwQkMsT0FBMUIsRUFBbUM7QUFDakNQLHFCQUFnQixJQUFoQixFQUFzQkssS0FBdEI7O0FBRUE7QUFDQUYsb0JBQWVLLFdBQWYsQ0FBMkJDLElBQTNCLENBQWdDLElBQWhDLEVBQXNDRixPQUF0QyxFQUErQ0QsU0FBL0M7QUFDQTtBQUNBLFVBQUtJLEtBQUw7QUFDRDs7QUFFRDs7Ozs7QUFLQXpCLGlCQUFhb0IsS0FBYixFQUFvQixDQUFDO0FBQ25CVixVQUFLLFFBRGM7QUFFbkJYLFlBQU8sU0FBUzJCLE1BQVQsR0FBa0I7QUFDdkIsV0FBS0MsS0FBTCxDQUFXQyxNQUFYLEdBQW9CLEtBQUtDLEtBQUwsRUFBcEIsR0FBbUMsS0FBS0MsSUFBTCxFQUFuQztBQUNEOztBQUVEOzs7O0FBTm1CLEtBQUQsRUFVakI7QUFDRHBCLFVBQUssTUFESjtBQUVEWCxZQUFPLFNBQVMrQixJQUFULEdBQWdCO0FBQ3JCLFVBQUksS0FBS0MsY0FBVCxFQUF5QjtBQUN6QixVQUFJLEtBQUtKLEtBQUwsQ0FBV0MsTUFBZixFQUF1QjtBQUN2QixXQUFLSSxjQUFMLENBQW9CLElBQXBCO0FBQ0EsV0FBS0wsS0FBTCxDQUFXQyxNQUFYLEdBQW9CLElBQXBCO0FBQ0EsV0FBS04sT0FBTCxDQUFhVyxNQUFiLENBQW9CLEtBQUtDLFFBQXpCLEVBQW1DLElBQW5DO0FBQ0Q7O0FBRUQ7Ozs7QUFWQyxLQVZpQixFQXdCakI7QUFDRHhCLFVBQUssT0FESjtBQUVEWCxZQUFPLFNBQVM4QixLQUFULEdBQWlCO0FBQ3RCLFVBQUksS0FBS0UsY0FBVCxFQUF5QjtBQUN6QixVQUFJLENBQUMsS0FBS0osS0FBTCxDQUFXQyxNQUFoQixFQUF3QjtBQUN4QixXQUFLRCxLQUFMLENBQVdDLE1BQVgsR0FBb0IsS0FBcEI7QUFDQSxVQUFJLEtBQUtELEtBQUwsQ0FBV1EsU0FBZixFQUEwQjtBQUN4QixZQUFLQSxTQUFMLENBQWUsS0FBS1IsS0FBTCxDQUFXUyxTQUExQixFQUFxQyxLQUFLVCxLQUFMLENBQVdVLFNBQWhEO0FBQ0QsT0FGRCxNQUVPO0FBQ0wsWUFBS0MsU0FBTCxDQUFlLEtBQUtYLEtBQUwsQ0FBV1MsU0FBMUIsRUFBcUMsS0FBS1QsS0FBTCxDQUFXVSxTQUFoRDtBQUNEO0FBQ0QsV0FBS2YsT0FBTCxDQUFhaUIsT0FBYixDQUFxQixLQUFLTCxRQUExQixFQUFvQyxJQUFwQztBQUNEOztBQUVEOzs7O0FBZEMsS0F4QmlCLEVBMENqQjtBQUNEeEIsVUFBSyxTQURKO0FBRURYLFlBQU8sU0FBU3lDLE9BQVQsR0FBbUI7QUFDeEIsV0FBS0MsS0FBTCxDQUFXLEtBQVg7QUFDQSxXQUFLbkIsT0FBTCxDQUFhb0IsU0FBYixDQUF1QixJQUF2QjtBQUNEOztBQUVEOzs7OztBQVBDLEtBMUNpQixFQXNEakI7QUFDRGhDLFVBQUssT0FESjtBQUVEWCxZQUFPLFNBQVMwQyxLQUFULEdBQWlCO0FBQ3RCLFVBQUlFLFVBQVVDLFVBQVV2QyxNQUFWLElBQW9CLENBQXBCLElBQXlCdUMsVUFBVSxDQUFWLE1BQWlCQyxTQUExQyxHQUFzRCxJQUF0RCxHQUE2REQsVUFBVSxDQUFWLENBQTNFOztBQUVBRSxvQkFBYyxLQUFLQyxPQUFuQjtBQUNBLFdBQUtDLFdBQUwsQ0FBaUIsRUFBakI7QUFDQSxVQUFJLEtBQUtDLE1BQUwsSUFBZSxLQUFLQSxNQUFMLENBQVlDLFVBQS9CLEVBQTJDO0FBQ3pDLFlBQUtELE1BQUwsQ0FBWUMsVUFBWixDQUF1QkMsV0FBdkIsQ0FBbUMsS0FBS0YsTUFBeEM7QUFDQSxZQUFLQSxNQUFMLEdBQWMsSUFBZDtBQUNEO0FBQ0QsV0FBS0csTUFBTCxHQUFjLENBQWQ7QUFDQSxXQUFLbEIsUUFBTCxHQUFnQixDQUFoQjtBQUNBLFdBQUttQixPQUFMLEdBQWUsQ0FBZjtBQUNBLFVBQUlWLE9BQUosRUFBYTtBQUNYLFlBQUtXLFlBQUw7QUFDQSxZQUFLaEMsT0FBTCxDQUFhaUMsT0FBYixDQUFxQixJQUFyQjtBQUNBLFlBQUs5QixLQUFMO0FBQ0Q7QUFDRjs7QUFFRDs7OztBQXJCQyxLQXREaUIsRUErRWpCO0FBQ0RmLFVBQUssT0FESjtBQUVEWCxZQUFPLFNBQVMwQixLQUFULEdBQWlCO0FBQ3RCLFVBQUkrQixRQUFRLElBQVo7O0FBRUEsV0FBS3pCLGNBQUwsR0FBc0IsS0FBdEI7QUFDQSxXQUFLMEIsc0JBQUwsQ0FBNEIsSUFBNUI7QUFDQSxXQUFLSCxZQUFMO0FBQ0EsVUFBSSxLQUFLSSxvQkFBVCxFQUErQixLQUFLQyxlQUFMO0FBQy9CLFdBQUtaLE9BQUwsR0FBZWEsV0FBVyxZQUFZO0FBQ3BDO0FBQ0EsV0FBSSxDQUFDSixNQUFNSyxnQkFBUCxJQUEyQkwsTUFBTUssZ0JBQU4sQ0FBdUJ4RCxNQUF2QixLQUFrQyxDQUFqRSxFQUFvRTtBQUNsRW1ELGNBQU1yQixTQUFOLENBQWdCcUIsTUFBTU0sT0FBTixDQUFjTixNQUFNTyxRQUFOLENBQWVQLE1BQU10QixRQUFyQixDQUFkLENBQWhCLEVBQStEc0IsTUFBTUosTUFBckU7QUFDRCxRQUZELE1BRU87QUFDTDtBQUNBSSxjQUFNbEIsU0FBTixDQUFnQmtCLE1BQU1LLGdCQUF0QixFQUF3Q0wsTUFBTUssZ0JBQU4sQ0FBdUJ4RCxNQUEvRDtBQUNEO0FBQ0YsT0FSYyxFQVFaLEtBQUsyRCxVQVJPLENBQWY7QUFTRDs7QUFFRDs7Ozs7O0FBcEJDLEtBL0VpQixFQXlHakI7QUFDRHRELFVBQUssV0FESjtBQUVEWCxZQUFPLFNBQVNvQyxTQUFULENBQW1CQyxTQUFuQixFQUE4QkMsU0FBOUIsRUFBeUM7QUFDOUMsVUFBSTRCLFNBQVMsSUFBYjs7QUFFQSxVQUFJLEtBQUtDLE9BQUwsSUFBZ0IsS0FBS0MsRUFBTCxDQUFRQyxTQUFSLENBQWtCQyxRQUFsQixDQUEyQixLQUFLQyxZQUFoQyxDQUFwQixFQUFtRTtBQUNqRSxZQUFLSCxFQUFMLENBQVFDLFNBQVIsQ0FBa0JHLE1BQWxCLENBQXlCLEtBQUtELFlBQTlCO0FBQ0EsV0FBSSxLQUFLckIsTUFBVCxFQUFpQixLQUFLQSxNQUFMLENBQVltQixTQUFaLENBQXNCRyxNQUF0QixDQUE2QixLQUFLRCxZQUFsQztBQUNsQjs7QUFFRCxVQUFJRSxXQUFXLEtBQUtDLFNBQUwsQ0FBZSxLQUFLQyxTQUFwQixDQUFmO0FBQ0EsVUFBSUMsV0FBVyxDQUFmOztBQUVBLFVBQUksS0FBS2hELEtBQUwsQ0FBV0MsTUFBWCxLQUFzQixJQUExQixFQUFnQztBQUM5QixZQUFLZ0QsY0FBTCxDQUFvQnhDLFNBQXBCLEVBQStCQyxTQUEvQixFQUEwQyxJQUExQztBQUNBO0FBQ0Q7O0FBRUQ7QUFDQSxXQUFLVSxPQUFMLEdBQWVhLFdBQVcsWUFBWTtBQUNwQztBQUNBdkIsbUJBQVlsQixjQUFjMEQsVUFBZCxDQUF5QkMsYUFBekIsQ0FBdUMxQyxTQUF2QyxFQUFrREMsU0FBbEQsRUFBNkQ0QixNQUE3RCxDQUFaOztBQUVBLFdBQUljLFlBQVksQ0FBaEI7QUFDQSxXQUFJQyxTQUFTNUMsVUFBVTRDLE1BQVYsQ0FBaUIzQyxTQUFqQixDQUFiO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBSTJDLE9BQU9DLE1BQVAsQ0FBYyxDQUFkLE1BQXFCLEdBQXpCLEVBQThCO0FBQzVCLFlBQUksU0FBU0MsSUFBVCxDQUFjRixNQUFkLENBQUosRUFBMkI7QUFDekIsYUFBSUcsT0FBTyxDQUFYLENBRHlCLENBQ1g7QUFDZEgsa0JBQVMsTUFBTUksSUFBTixDQUFXSixNQUFYLEVBQW1CLENBQW5CLENBQVQ7QUFDQUcsaUJBQVFILE9BQU8zRSxNQUFmO0FBQ0EwRSxxQkFBWU0sU0FBU0wsTUFBVCxDQUFaO0FBQ0FmLGdCQUFPcUIsY0FBUCxHQUF3QixJQUF4QjtBQUNBckIsZ0JBQU8zQyxPQUFQLENBQWVpRSxjQUFmLENBQThCdEIsT0FBTy9CLFFBQXJDLEVBQStDK0IsTUFBL0M7QUFDQTtBQUNBN0IscUJBQVlBLFVBQVVvRCxTQUFWLENBQW9CLENBQXBCLEVBQXVCbkQsU0FBdkIsSUFBb0NELFVBQVVvRCxTQUFWLENBQW9CbkQsWUFBWThDLElBQWhDLENBQWhEO0FBQ0FsQixnQkFBT2pDLGNBQVAsQ0FBc0IsSUFBdEI7QUFDRDtBQUNGOztBQUVEO0FBQ0E7QUFDQSxXQUFJZ0QsT0FBT0MsTUFBUCxDQUFjLENBQWQsTUFBcUIsR0FBekIsRUFBOEI7QUFDNUIsZUFBTzdDLFVBQVU0QyxNQUFWLENBQWlCM0MsWUFBWXNDLFFBQTdCLEVBQXVDTSxNQUF2QyxDQUE4QyxDQUE5QyxNQUFxRCxHQUE1RCxFQUFpRTtBQUMvRE47QUFDQSxhQUFJdEMsWUFBWXNDLFFBQVosR0FBdUJ2QyxVQUFVL0IsTUFBckMsRUFBNkM7QUFDOUM7QUFDRDtBQUNBLFlBQUlvRixtQkFBbUJyRCxVQUFVb0QsU0FBVixDQUFvQixDQUFwQixFQUF1Qm5ELFNBQXZCLENBQXZCO0FBQ0EsWUFBSXFELGdCQUFnQnRELFVBQVVvRCxTQUFWLENBQW9CQyxpQkFBaUJwRixNQUFqQixHQUEwQixDQUE5QyxFQUFpRGdDLFlBQVlzQyxRQUE3RCxDQUFwQjtBQUNBLFlBQUlnQixrQkFBa0J2RCxVQUFVb0QsU0FBVixDQUFvQm5ELFlBQVlzQyxRQUFaLEdBQXVCLENBQTNDLENBQXRCO0FBQ0F2QyxvQkFBWXFELG1CQUFtQkMsYUFBbkIsR0FBbUNDLGVBQS9DO0FBQ0FoQjtBQUNEOztBQUVEO0FBQ0FWLGNBQU9sQixPQUFQLEdBQWlCYSxXQUFXLFlBQVk7QUFDdEM7QUFDQUssZUFBT2pDLGNBQVAsQ0FBc0IsS0FBdEI7O0FBRUE7QUFDQSxZQUFJSyxhQUFhRCxVQUFVL0IsTUFBM0IsRUFBbUM7QUFDakM0RCxnQkFBTzJCLFVBQVAsQ0FBa0J4RCxTQUFsQixFQUE2QkMsU0FBN0I7QUFDRCxTQUZELE1BRU87QUFDTDRCLGdCQUFPNEIsVUFBUCxDQUFrQnpELFNBQWxCLEVBQTZCQyxTQUE3QixFQUF3Q3NDLFFBQXhDO0FBQ0Q7QUFDRDtBQUNBLFlBQUlWLE9BQU9xQixjQUFYLEVBQTJCO0FBQ3pCckIsZ0JBQU9xQixjQUFQLEdBQXdCLEtBQXhCO0FBQ0FyQixnQkFBTzNDLE9BQVAsQ0FBZXdFLGVBQWYsQ0FBK0I3QixPQUFPL0IsUUFBdEMsRUFBZ0QrQixNQUFoRDtBQUNEO0FBQ0YsUUFmZ0IsRUFlZGMsU0FmYyxDQUFqQjs7QUFpQkE7QUFDRCxPQXpEYyxFQXlEWlAsUUF6RFksQ0FBZjtBQTBERDs7QUFFRDs7Ozs7O0FBL0VDLEtBekdpQixFQThMakI7QUFDRDlELFVBQUssWUFESjtBQUVEWCxZQUFPLFNBQVM4RixVQUFULENBQW9CekQsU0FBcEIsRUFBK0JDLFNBQS9CLEVBQTBDc0MsUUFBMUMsRUFBb0Q7QUFDekQ7QUFDQSxVQUFJdEMsY0FBYyxDQUFsQixFQUFxQjtBQUNuQixZQUFLTCxjQUFMLENBQW9CLEtBQXBCO0FBQ0EsWUFBS1YsT0FBTCxDQUFheUUsY0FBYixDQUE0QixLQUFLN0QsUUFBakMsRUFBMkMsSUFBM0M7QUFDRDtBQUNEO0FBQ0E7QUFDQUcsbUJBQWFzQyxRQUFiO0FBQ0EsVUFBSXFCLGFBQWE1RCxVQUFVNEMsTUFBVixDQUFpQixDQUFqQixFQUFvQjNDLFNBQXBCLENBQWpCO0FBQ0EsV0FBS1csV0FBTCxDQUFpQmdELFVBQWpCO0FBQ0E7QUFDQSxXQUFLN0QsU0FBTCxDQUFlQyxTQUFmLEVBQTBCQyxTQUExQjtBQUNEOztBQUVEOzs7Ozs7QUFqQkMsS0E5TGlCLEVBcU5qQjtBQUNEM0IsVUFBSyxZQURKO0FBRURYLFlBQU8sU0FBUzZGLFVBQVQsQ0FBb0J4RCxTQUFwQixFQUErQkMsU0FBL0IsRUFBMEM7QUFDL0MsVUFBSTRELFNBQVMsSUFBYjs7QUFFQTtBQUNBLFdBQUszRSxPQUFMLENBQWE0RSxhQUFiLENBQTJCLEtBQUtoRSxRQUFoQyxFQUEwQyxJQUExQztBQUNBLFdBQUtGLGNBQUwsQ0FBb0IsSUFBcEI7QUFDQTtBQUNBLFVBQUksS0FBS0UsUUFBTCxLQUFrQixLQUFLNEIsT0FBTCxDQUFhekQsTUFBYixHQUFzQixDQUE1QyxFQUErQztBQUM3QztBQUNBLFlBQUs4RixRQUFMO0FBQ0E7QUFDQSxXQUFJLEtBQUtDLElBQUwsS0FBYyxLQUFkLElBQXVCLEtBQUsvQyxPQUFMLEtBQWlCLEtBQUtnRCxTQUFqRCxFQUE0RDtBQUMxRDtBQUNEO0FBQ0Y7QUFDRCxXQUFLdEQsT0FBTCxHQUFlYSxXQUFXLFlBQVk7QUFDcENxQyxjQUFPM0QsU0FBUCxDQUFpQkYsU0FBakIsRUFBNEJDLFNBQTVCO0FBQ0QsT0FGYyxFQUVaLEtBQUtpRSxTQUZPLENBQWY7QUFHRDs7QUFFRDs7Ozs7O0FBdEJDLEtBck5pQixFQWlQakI7QUFDRDVGLFVBQUssV0FESjtBQUVEWCxZQUFPLFNBQVN1QyxTQUFULENBQW1CRixTQUFuQixFQUE4QkMsU0FBOUIsRUFBeUM7QUFDOUMsVUFBSWtFLFNBQVMsSUFBYjs7QUFFQSxVQUFJLEtBQUs1RSxLQUFMLENBQVdDLE1BQVgsS0FBc0IsSUFBMUIsRUFBZ0M7QUFDOUIsWUFBS2dELGNBQUwsQ0FBb0J4QyxTQUFwQixFQUErQkMsU0FBL0IsRUFBMEMsSUFBMUM7QUFDQTtBQUNEO0FBQ0QsVUFBSSxLQUFLNkIsT0FBVCxFQUFrQixPQUFPLEtBQUtzQyxXQUFMLEVBQVA7O0FBRWxCLFdBQUt4RSxjQUFMLENBQW9CLEtBQXBCO0FBQ0EsVUFBSXdDLFdBQVcsS0FBS0MsU0FBTCxDQUFlLEtBQUtnQyxTQUFwQixDQUFmOztBQUVBLFdBQUsxRCxPQUFMLEdBQWVhLFdBQVcsWUFBWTtBQUNwQ3ZCLG1CQUFZbEIsY0FBYzBELFVBQWQsQ0FBeUI2QixrQkFBekIsQ0FBNEN0RSxTQUE1QyxFQUF1REMsU0FBdkQsRUFBa0VrRSxNQUFsRSxDQUFaO0FBQ0E7QUFDQSxXQUFJSSxzQkFBc0J2RSxVQUFVNEMsTUFBVixDQUFpQixDQUFqQixFQUFvQjNDLFNBQXBCLENBQTFCO0FBQ0FrRSxjQUFPdkQsV0FBUCxDQUFtQjJELG1CQUFuQjs7QUFFQTtBQUNBLFdBQUlKLE9BQU9LLGNBQVgsRUFBMkI7QUFDekI7QUFDQSxZQUFJWixhQUFhTyxPQUFPekMsT0FBUCxDQUFleUMsT0FBT3JFLFFBQVAsR0FBa0IsQ0FBakMsQ0FBakI7QUFDQSxZQUFJOEQsY0FBY1csd0JBQXdCWCxXQUFXaEIsTUFBWCxDQUFrQixDQUFsQixFQUFxQjNDLFNBQXJCLENBQTFDLEVBQTJFO0FBQ3pFa0UsZ0JBQU9NLE9BQVAsR0FBaUJ4RSxTQUFqQjtBQUNELFNBRkQsTUFFTztBQUNMa0UsZ0JBQU9NLE9BQVAsR0FBaUIsQ0FBakI7QUFDRDtBQUNGOztBQUVEO0FBQ0E7QUFDQSxXQUFJeEUsWUFBWWtFLE9BQU9NLE9BQXZCLEVBQWdDO0FBQzlCO0FBQ0F4RTtBQUNBO0FBQ0FrRSxlQUFPakUsU0FBUCxDQUFpQkYsU0FBakIsRUFBNEJDLFNBQTVCO0FBQ0QsUUFMRCxNQUtPLElBQUlBLGFBQWFrRSxPQUFPTSxPQUF4QixFQUFpQztBQUN0QztBQUNBO0FBQ0FOLGVBQU9yRSxRQUFQO0FBQ0E7QUFDQSxZQUFJcUUsT0FBT3JFLFFBQVAsS0FBb0JxRSxPQUFPekMsT0FBUCxDQUFlekQsTUFBdkMsRUFBK0M7QUFDN0NrRyxnQkFBT3JFLFFBQVAsR0FBa0IsQ0FBbEI7QUFDQXFFLGdCQUFPakYsT0FBUCxDQUFld0Ysc0JBQWY7QUFDQVAsZ0JBQU85QyxzQkFBUDtBQUNBOEMsZ0JBQU85RSxLQUFQO0FBQ0QsU0FMRCxNQUtPO0FBQ0w4RSxnQkFBT3BFLFNBQVAsQ0FBaUJvRSxPQUFPekMsT0FBUCxDQUFleUMsT0FBT3hDLFFBQVAsQ0FBZ0J3QyxPQUFPckUsUUFBdkIsQ0FBZixDQUFqQixFQUFtRUcsU0FBbkU7QUFDRDtBQUNGO0FBQ0Q7QUFDRCxPQXZDYyxFQXVDWm1DLFFBdkNZLENBQWY7QUF3Q0Q7O0FBRUQ7Ozs7QUF4REMsS0FqUGlCLEVBNlNqQjtBQUNEOUQsVUFBSyxVQURKO0FBRURYLFlBQU8sU0FBU29HLFFBQVQsR0FBb0I7QUFDekIsV0FBSzdFLE9BQUwsQ0FBYXlGLFVBQWIsQ0FBd0IsSUFBeEI7QUFDQSxVQUFJLEtBQUtYLElBQVQsRUFBZTtBQUNiLFlBQUsvQyxPQUFMO0FBQ0QsT0FGRCxNQUVPO0FBQ0wsWUFBS3RCLGNBQUwsR0FBc0IsSUFBdEI7QUFDRDtBQUNGOztBQUVEOzs7Ozs7O0FBWEMsS0E3U2lCLEVBK1RqQjtBQUNEckIsVUFBSyxnQkFESjtBQUVEWCxZQUFPLFNBQVM2RSxjQUFULENBQXdCeEMsU0FBeEIsRUFBbUNDLFNBQW5DLEVBQThDMkUsUUFBOUMsRUFBd0Q7QUFDN0QsV0FBS3JGLEtBQUwsQ0FBV1EsU0FBWCxHQUF1QjZFLFFBQXZCO0FBQ0EsV0FBS3JGLEtBQUwsQ0FBV1MsU0FBWCxHQUF1QkEsU0FBdkI7QUFDQSxXQUFLVCxLQUFMLENBQVdVLFNBQVgsR0FBdUJBLFNBQXZCO0FBQ0Q7O0FBRUQ7Ozs7O0FBUkMsS0EvVGlCLEVBNFVqQjtBQUNEM0IsVUFBSyxnQkFESjtBQUVEWCxZQUFPLFNBQVNpQyxjQUFULENBQXdCaUYsVUFBeEIsRUFBb0M7QUFDekMsVUFBSSxDQUFDLEtBQUtoRSxNQUFWLEVBQWtCO0FBQ2xCO0FBQ0EsVUFBSSxLQUFLdEIsS0FBTCxDQUFXQyxNQUFmLEVBQXVCO0FBQ3ZCLFVBQUksS0FBS3NGLGNBQUwsS0FBd0JELFVBQTVCLEVBQXdDO0FBQ3hDLFdBQUtDLGNBQUwsR0FBc0JELFVBQXRCO0FBQ0EsVUFBSUEsVUFBSixFQUFnQjtBQUNkLFlBQUtoRSxNQUFMLENBQVltQixTQUFaLENBQXNCK0MsR0FBdEIsQ0FBMEIscUJBQTFCO0FBQ0QsT0FGRCxNQUVPO0FBQ0wsWUFBS2xFLE1BQUwsQ0FBWW1CLFNBQVosQ0FBc0JHLE1BQXRCLENBQTZCLHFCQUE3QjtBQUNEO0FBQ0Y7O0FBRUQ7Ozs7O0FBZkMsS0E1VWlCLEVBZ1dqQjtBQUNEN0QsVUFBSyxXQURKO0FBRURYLFlBQU8sU0FBUzBFLFNBQVQsQ0FBbUIyQyxLQUFuQixFQUEwQjtBQUMvQixhQUFPQyxLQUFLQyxLQUFMLENBQVdELEtBQUtFLE1BQUwsS0FBZ0JILEtBQWhCLEdBQXdCLENBQW5DLElBQXdDQSxLQUEvQztBQUNEOztBQUVEOzs7O0FBTkMsS0FoV2lCLEVBMFdqQjtBQUNEMUcsVUFBSyx3QkFESjtBQUVEWCxZQUFPLFNBQVMwRCxzQkFBVCxHQUFrQztBQUN2QyxVQUFJLENBQUMsS0FBSytELE9BQVYsRUFBbUI7QUFDbkIsV0FBS3pELFFBQUwsR0FBZ0IsS0FBS0EsUUFBTCxDQUFjMEQsSUFBZCxDQUFtQixZQUFZO0FBQzdDLGNBQU9KLEtBQUtFLE1BQUwsS0FBZ0IsR0FBdkI7QUFDRCxPQUZlLENBQWhCO0FBR0Q7O0FBRUQ7Ozs7QUFUQyxLQTFXaUIsRUF1WGpCO0FBQ0Q3RyxVQUFLLGFBREo7QUFFRFgsWUFBTyxTQUFTeUcsV0FBVCxHQUF1QjtBQUM1QixVQUFJa0IsU0FBUyxJQUFiOztBQUVBLFdBQUt2RCxFQUFMLENBQVF3RCxTQUFSLElBQXFCLE1BQU0sS0FBS3JELFlBQWhDO0FBQ0EsVUFBSSxLQUFLckIsTUFBVCxFQUFpQixLQUFLQSxNQUFMLENBQVkwRSxTQUFaLElBQXlCLE1BQU0sS0FBS3JELFlBQXBDO0FBQ2pCLGFBQU9WLFdBQVcsWUFBWTtBQUM1QjhELGNBQU94RixRQUFQO0FBQ0F3RixjQUFPMUUsV0FBUCxDQUFtQixFQUFuQjs7QUFFQTtBQUNBLFdBQUkwRSxPQUFPNUQsT0FBUCxDQUFlekQsTUFBZixHQUF3QnFILE9BQU94RixRQUFuQyxFQUE2QztBQUMzQ3dGLGVBQU92RixTQUFQLENBQWlCdUYsT0FBTzVELE9BQVAsQ0FBZTRELE9BQU8zRCxRQUFQLENBQWdCMkQsT0FBT3hGLFFBQXZCLENBQWYsQ0FBakIsRUFBbUUsQ0FBbkU7QUFDRCxRQUZELE1BRU87QUFDTHdGLGVBQU92RixTQUFQLENBQWlCdUYsT0FBTzVELE9BQVAsQ0FBZSxDQUFmLENBQWpCLEVBQW9DLENBQXBDO0FBQ0E0RCxlQUFPeEYsUUFBUCxHQUFrQixDQUFsQjtBQUNEO0FBQ0YsT0FYTSxFQVdKLEtBQUswRixZQVhELENBQVA7QUFZRDs7QUFFRDs7Ozs7O0FBckJDLEtBdlhpQixFQWtaakI7QUFDRGxILFVBQUssYUFESjtBQUVEWCxZQUFPLFNBQVNpRCxXQUFULENBQXFCNkUsR0FBckIsRUFBMEI7QUFDL0IsVUFBSSxLQUFLQyxJQUFULEVBQWU7QUFDYixZQUFLM0QsRUFBTCxDQUFRNEQsWUFBUixDQUFxQixLQUFLRCxJQUExQixFQUFnQ0QsR0FBaEM7QUFDRCxPQUZELE1BRU87QUFDTCxXQUFJLEtBQUtHLE9BQVQsRUFBa0I7QUFDaEIsYUFBSzdELEVBQUwsQ0FBUXBFLEtBQVIsR0FBZ0I4SCxHQUFoQjtBQUNELFFBRkQsTUFFTyxJQUFJLEtBQUtJLFdBQUwsS0FBcUIsTUFBekIsRUFBaUM7QUFDdEMsYUFBSzlELEVBQUwsQ0FBUStELFNBQVIsR0FBb0JMLEdBQXBCO0FBQ0QsUUFGTSxNQUVBO0FBQ0wsYUFBSzFELEVBQUwsQ0FBUWdFLFdBQVIsR0FBc0JOLEdBQXRCO0FBQ0Q7QUFDRjtBQUNGOztBQUVEOzs7OztBQWhCQyxLQWxaaUIsRUF1YWpCO0FBQ0RuSCxVQUFLLGlCQURKO0FBRURYLFlBQU8sU0FBUzRELGVBQVQsR0FBMkI7QUFDaEMsVUFBSXlFLFNBQVMsSUFBYjs7QUFFQSxVQUFJLENBQUMsS0FBS0osT0FBVixFQUFtQjtBQUNuQixXQUFLN0QsRUFBTCxDQUFRa0UsZ0JBQVIsQ0FBeUIsT0FBekIsRUFBa0MsVUFBVUMsQ0FBVixFQUFhO0FBQzdDRixjQUFPdEcsSUFBUDtBQUNELE9BRkQ7QUFHQSxXQUFLcUMsRUFBTCxDQUFRa0UsZ0JBQVIsQ0FBeUIsTUFBekIsRUFBaUMsVUFBVUMsQ0FBVixFQUFhO0FBQzVDLFdBQUlGLE9BQU9qRSxFQUFQLENBQVVwRSxLQUFWLElBQW1CcUksT0FBT2pFLEVBQVAsQ0FBVXBFLEtBQVYsQ0FBZ0JNLE1BQWhCLEtBQTJCLENBQWxELEVBQXFEO0FBQ25EO0FBQ0Q7QUFDRCtILGNBQU92RyxLQUFQO0FBQ0QsT0FMRDtBQU1EOztBQUVEOzs7O0FBakJDLEtBdmFpQixFQTRiakI7QUFDRG5CLFVBQUssY0FESjtBQUVEWCxZQUFPLFNBQVN1RCxZQUFULEdBQXdCO0FBQzdCLFVBQUksQ0FBQyxLQUFLaUYsVUFBVixFQUFzQjtBQUN0QixVQUFJLEtBQUt0RixNQUFULEVBQWlCO0FBQ2pCLFdBQUtBLE1BQUwsR0FBY3VGLFNBQVNDLGFBQVQsQ0FBdUIsTUFBdkIsQ0FBZDtBQUNBLFdBQUt4RixNQUFMLENBQVkwRSxTQUFaLEdBQXdCLGNBQXhCO0FBQ0EsV0FBSzFFLE1BQUwsQ0FBWWlGLFNBQVosR0FBd0IsS0FBS1EsVUFBN0I7QUFDQSxXQUFLdkUsRUFBTCxDQUFRakIsVUFBUixJQUFzQixLQUFLaUIsRUFBTCxDQUFRakIsVUFBUixDQUFtQnlGLFlBQW5CLENBQWdDLEtBQUsxRixNQUFyQyxFQUE2QyxLQUFLa0IsRUFBTCxDQUFReUUsV0FBckQsQ0FBdEI7QUFDRDtBQVRBLEtBNWJpQixDQUFwQjs7QUF3Y0EsV0FBT3hILEtBQVA7QUFDRCxJQXhkVyxFQUFaOztBQTBkQW5DLFdBQVEsU0FBUixJQUFxQm1DLEtBQXJCO0FBQ0FsQyxVQUFPRCxPQUFQLEdBQWlCQSxRQUFRLFNBQVIsQ0FBakI7O0FBRUQ7QUFBTyxHQXRmRztBQXVmVjtBQUNBLE9BQU8sVUFBU0MsTUFBVCxFQUFpQkQsT0FBakIsRUFBMEJJLG1CQUExQixFQUErQzs7QUFFckQ7O0FBRUFRLFVBQU9DLGNBQVAsQ0FBc0JiLE9BQXRCLEVBQStCLFlBQS9CLEVBQTZDO0FBQzNDYyxXQUFPO0FBRG9DLElBQTdDOztBQUlBLE9BQUk4SSxXQUFXaEosT0FBT2lKLE1BQVAsSUFBaUIsVUFBVTVJLE1BQVYsRUFBa0I7QUFBRSxTQUFLLElBQUlFLElBQUksQ0FBYixFQUFnQkEsSUFBSXdDLFVBQVV2QyxNQUE5QixFQUFzQ0QsR0FBdEMsRUFBMkM7QUFBRSxTQUFJMkksU0FBU25HLFVBQVV4QyxDQUFWLENBQWIsQ0FBMkIsS0FBSyxJQUFJTSxHQUFULElBQWdCcUksTUFBaEIsRUFBd0I7QUFBRSxVQUFJbEosT0FBT2lCLFNBQVAsQ0FBaUJrSSxjQUFqQixDQUFnQ3ZKLElBQWhDLENBQXFDc0osTUFBckMsRUFBNkNySSxHQUE3QyxDQUFKLEVBQXVEO0FBQUVSLGNBQU9RLEdBQVAsSUFBY3FJLE9BQU9ySSxHQUFQLENBQWQ7QUFBNEI7QUFBRTtBQUFFLEtBQUMsT0FBT1IsTUFBUDtBQUFnQixJQUFoUTs7QUFFQSxPQUFJRixlQUFnQixZQUFZO0FBQUUsYUFBU0MsZ0JBQVQsQ0FBMEJDLE1BQTFCLEVBQWtDQyxLQUFsQyxFQUF5QztBQUFFLFVBQUssSUFBSUMsSUFBSSxDQUFiLEVBQWdCQSxJQUFJRCxNQUFNRSxNQUExQixFQUFrQ0QsR0FBbEMsRUFBdUM7QUFBRSxVQUFJRSxhQUFhSCxNQUFNQyxDQUFOLENBQWpCLENBQTJCRSxXQUFXQyxVQUFYLEdBQXdCRCxXQUFXQyxVQUFYLElBQXlCLEtBQWpELENBQXdERCxXQUFXRSxZQUFYLEdBQTBCLElBQTFCLENBQWdDLElBQUksV0FBV0YsVUFBZixFQUEyQkEsV0FBV0csUUFBWCxHQUFzQixJQUF0QixDQUE0QlosT0FBT0MsY0FBUCxDQUFzQkksTUFBdEIsRUFBOEJJLFdBQVdJLEdBQXpDLEVBQThDSixVQUE5QztBQUE0RDtBQUFFLEtBQUMsT0FBTyxVQUFVSyxXQUFWLEVBQXVCQyxVQUF2QixFQUFtQ0MsV0FBbkMsRUFBZ0Q7QUFBRSxTQUFJRCxVQUFKLEVBQWdCWCxpQkFBaUJVLFlBQVlHLFNBQTdCLEVBQXdDRixVQUF4QyxFQUFxRCxJQUFJQyxXQUFKLEVBQWlCWixpQkFBaUJVLFdBQWpCLEVBQThCRSxXQUE5QixFQUE0QyxPQUFPRixXQUFQO0FBQXFCLEtBQWhOO0FBQW1OLElBQS9oQixFQUFuQjs7QUFFQSxZQUFTc0ksc0JBQVQsQ0FBZ0NDLEdBQWhDLEVBQXFDO0FBQUUsV0FBT0EsT0FBT0EsSUFBSUMsVUFBWCxHQUF3QkQsR0FBeEIsR0FBOEIsRUFBRSxXQUFXQSxHQUFiLEVBQXJDO0FBQTBEOztBQUVqRyxZQUFTbkksZUFBVCxDQUF5QkMsUUFBekIsRUFBbUNMLFdBQW5DLEVBQWdEO0FBQUUsUUFBSSxFQUFFSyxvQkFBb0JMLFdBQXRCLENBQUosRUFBd0M7QUFBRSxXQUFNLElBQUlNLFNBQUosQ0FBYyxtQ0FBZCxDQUFOO0FBQTJEO0FBQUU7O0FBRXpKLE9BQUltSSxjQUFjL0osb0JBQW9CLENBQXBCLENBQWxCOztBQUVBLE9BQUlnSyxlQUFlSix1QkFBdUJHLFdBQXZCLENBQW5COztBQUVBOzs7O0FBSUEsT0FBSUUsY0FBZSxZQUFZO0FBQzdCLGFBQVNBLFdBQVQsR0FBdUI7QUFDckJ2SSxxQkFBZ0IsSUFBaEIsRUFBc0J1SSxXQUF0QjtBQUNEOztBQUVEdEosaUJBQWFzSixXQUFiLEVBQTBCLENBQUM7QUFDekI1SSxVQUFLLE1BRG9COztBQUd6Qjs7Ozs7Ozs7QUFRQVgsWUFBTyxTQUFTeUIsSUFBVCxDQUFjK0gsSUFBZCxFQUFvQmpJLE9BQXBCLEVBQTZCRCxTQUE3QixFQUF3QztBQUM3QztBQUNBLFVBQUksT0FBT0EsU0FBUCxLQUFxQixRQUF6QixFQUFtQztBQUNqQ2tJLFlBQUtwRixFQUFMLEdBQVVxRSxTQUFTZ0IsYUFBVCxDQUF1Qm5JLFNBQXZCLENBQVY7QUFDRCxPQUZELE1BRU87QUFDTGtJLFlBQUtwRixFQUFMLEdBQVU5QyxTQUFWO0FBQ0Q7O0FBRURrSSxXQUFLakksT0FBTCxHQUFldUgsU0FBUyxFQUFULEVBQWFRLGFBQWEsU0FBYixDQUFiLEVBQXNDL0gsT0FBdEMsQ0FBZjs7QUFFQTtBQUNBaUksV0FBS3ZCLE9BQUwsR0FBZXVCLEtBQUtwRixFQUFMLENBQVFzRixPQUFSLENBQWdCQyxXQUFoQixPQUFrQyxPQUFqRDtBQUNBSCxXQUFLekIsSUFBTCxHQUFZeUIsS0FBS2pJLE9BQUwsQ0FBYXdHLElBQXpCO0FBQ0F5QixXQUFLN0Ysb0JBQUwsR0FBNEI2RixLQUFLakksT0FBTCxDQUFhb0Msb0JBQXpDOztBQUVBO0FBQ0E2RixXQUFLaEIsVUFBTCxHQUFrQmdCLEtBQUt2QixPQUFMLEdBQWUsS0FBZixHQUF1QnVCLEtBQUtqSSxPQUFMLENBQWFpSCxVQUF0RDs7QUFFQTtBQUNBZ0IsV0FBS2IsVUFBTCxHQUFrQmEsS0FBS2pJLE9BQUwsQ0FBYW9ILFVBQS9COztBQUVBO0FBQ0FhLFdBQUtyQyxjQUFMLEdBQXNCLElBQXRCOztBQUVBO0FBQ0FxQyxXQUFLSSxTQUFMLEdBQWlCSixLQUFLekIsSUFBTCxHQUFZeUIsS0FBS3BGLEVBQUwsQ0FBUXlGLFlBQVIsQ0FBcUJMLEtBQUt6QixJQUExQixDQUFaLEdBQThDeUIsS0FBS3BGLEVBQUwsQ0FBUWdFLFdBQXZFOztBQUVBO0FBQ0FvQixXQUFLdEIsV0FBTCxHQUFtQnNCLEtBQUtqSSxPQUFMLENBQWEyRyxXQUFoQzs7QUFFQTtBQUNBc0IsV0FBSzdFLFNBQUwsR0FBaUI2RSxLQUFLakksT0FBTCxDQUFhb0QsU0FBOUI7O0FBRUE7QUFDQTZFLFdBQUt2RixVQUFMLEdBQWtCdUYsS0FBS2pJLE9BQUwsQ0FBYTBDLFVBQS9COztBQUVBO0FBQ0F1RixXQUFLOUMsU0FBTCxHQUFpQjhDLEtBQUtqSSxPQUFMLENBQWFtRixTQUE5Qjs7QUFFQTtBQUNBOEMsV0FBSzNDLGNBQUwsR0FBc0IyQyxLQUFLakksT0FBTCxDQUFhc0YsY0FBbkM7O0FBRUE7QUFDQTJDLFdBQUtqRCxTQUFMLEdBQWlCaUQsS0FBS2pJLE9BQUwsQ0FBYWdGLFNBQTlCOztBQUVBO0FBQ0FpRCxXQUFLckYsT0FBTCxHQUFlcUYsS0FBS2pJLE9BQUwsQ0FBYTRDLE9BQTVCO0FBQ0FxRixXQUFLakYsWUFBTCxHQUFvQmlGLEtBQUtqSSxPQUFMLENBQWFnRCxZQUFqQztBQUNBaUYsV0FBSzNCLFlBQUwsR0FBb0IyQixLQUFLakksT0FBTCxDQUFhc0csWUFBakM7O0FBRUE7QUFDQTJCLFdBQUtNLFFBQUwsR0FBZ0IsS0FBaEI7O0FBRUE7QUFDQU4sV0FBS3pGLE9BQUwsR0FBZXlGLEtBQUtqSSxPQUFMLENBQWF3QyxPQUFiLENBQXFCZ0csR0FBckIsQ0FBeUIsVUFBVUMsQ0FBVixFQUFhO0FBQ25ELGNBQU9BLEVBQUVDLElBQUYsRUFBUDtBQUNELE9BRmMsQ0FBZjs7QUFJQTtBQUNBLFVBQUksT0FBT1QsS0FBS2pJLE9BQUwsQ0FBYTJJLGNBQXBCLEtBQXVDLFFBQTNDLEVBQXFEO0FBQ25EVixZQUFLVSxjQUFMLEdBQXNCekIsU0FBU2dCLGFBQVQsQ0FBdUJELEtBQUtqSSxPQUFMLENBQWEySSxjQUFwQyxDQUF0QjtBQUNELE9BRkQsTUFFTztBQUNMVixZQUFLVSxjQUFMLEdBQXNCVixLQUFLakksT0FBTCxDQUFhMkksY0FBbkM7QUFDRDs7QUFFRCxVQUFJVixLQUFLVSxjQUFULEVBQXlCO0FBQ3ZCVixZQUFLekYsT0FBTCxHQUFlLEVBQWY7QUFDQXlGLFlBQUtVLGNBQUwsQ0FBb0JDLEtBQXBCLENBQTBCQyxPQUExQixHQUFvQyxNQUFwQztBQUNBLFdBQUlyRyxVQUFVc0csTUFBTXRKLFNBQU4sQ0FBZ0J1SixLQUFoQixDQUFzQkMsS0FBdEIsQ0FBNEJmLEtBQUtVLGNBQUwsQ0FBb0JNLFFBQWhELENBQWQ7QUFDQSxXQUFJQyxnQkFBZ0IxRyxRQUFRekQsTUFBNUI7O0FBRUEsV0FBSW1LLGFBQUosRUFBbUI7QUFDakIsYUFBSyxJQUFJcEssSUFBSSxDQUFiLEVBQWdCQSxJQUFJb0ssYUFBcEIsRUFBbUNwSyxLQUFLLENBQXhDLEVBQTJDO0FBQ3pDLGFBQUlxSyxXQUFXM0csUUFBUTFELENBQVIsQ0FBZjtBQUNBbUosY0FBS3pGLE9BQUwsQ0FBYTRHLElBQWIsQ0FBa0JELFNBQVN2QyxTQUFULENBQW1COEIsSUFBbkIsRUFBbEI7QUFDRDtBQUNGO0FBQ0Y7O0FBRUQ7QUFDQVQsV0FBS25HLE1BQUwsR0FBYyxDQUFkOztBQUVBO0FBQ0FtRyxXQUFLckgsUUFBTCxHQUFnQixDQUFoQjs7QUFFQTtBQUNBcUgsV0FBSzFDLE9BQUwsR0FBZSxDQUFmOztBQUVBO0FBQ0EwQyxXQUFLbkQsSUFBTCxHQUFZbUQsS0FBS2pJLE9BQUwsQ0FBYThFLElBQXpCO0FBQ0FtRCxXQUFLbEQsU0FBTCxHQUFpQmtELEtBQUtqSSxPQUFMLENBQWErRSxTQUE5QjtBQUNBa0QsV0FBS2xHLE9BQUwsR0FBZSxDQUFmOztBQUVBO0FBQ0FrRyxXQUFLL0IsT0FBTCxHQUFlK0IsS0FBS2pJLE9BQUwsQ0FBYWtHLE9BQTVCO0FBQ0E7QUFDQStCLFdBQUt4RixRQUFMLEdBQWdCLEVBQWhCOztBQUVBd0YsV0FBSzVILEtBQUwsR0FBYTtBQUNYQyxlQUFRLEtBREc7QUFFWE8sa0JBQVcsSUFGQTtBQUdYQyxrQkFBVyxFQUhBO0FBSVhDLGtCQUFXO0FBSkEsT0FBYjs7QUFPQTtBQUNBa0gsV0FBS3hILGNBQUwsR0FBc0IsS0FBdEI7O0FBRUE7QUFDQSxXQUFLLElBQUkzQixDQUFULElBQWNtSixLQUFLekYsT0FBbkIsRUFBNEI7QUFDMUJ5RixZQUFLeEYsUUFBTCxDQUFjM0QsQ0FBZCxJQUFtQkEsQ0FBbkI7QUFDRDs7QUFFRDtBQUNBbUosV0FBSzFGLGdCQUFMLEdBQXdCLEtBQUs4RyxtQkFBTCxDQUF5QnBCLElBQXpCLENBQXhCOztBQUVBQSxXQUFLcUIsYUFBTCxHQUFxQnJCLEtBQUtqSSxPQUFMLENBQWFzSixhQUFsQzs7QUFFQSxXQUFLQyxrQkFBTCxDQUF3QnRCLElBQXhCO0FBQ0Q7QUFsSXdCLEtBQUQsRUFtSXZCO0FBQ0Q3SSxVQUFLLHFCQURKO0FBRURYLFlBQU8sU0FBUzRLLG1CQUFULENBQTZCcEIsSUFBN0IsRUFBbUM7QUFDeEMsVUFBSUksWUFBWSxFQUFoQjtBQUNBLFVBQUlKLEtBQUt6QixJQUFULEVBQWU7QUFDYjZCLG1CQUFZSixLQUFLcEYsRUFBTCxDQUFReUYsWUFBUixDQUFxQkwsS0FBS3pCLElBQTFCLENBQVo7QUFDRCxPQUZELE1BRU8sSUFBSXlCLEtBQUt2QixPQUFULEVBQWtCO0FBQ3ZCMkIsbUJBQVlKLEtBQUtwRixFQUFMLENBQVFwRSxLQUFwQjtBQUNELE9BRk0sTUFFQSxJQUFJd0osS0FBS3RCLFdBQUwsS0FBcUIsTUFBekIsRUFBaUM7QUFDdEMwQixtQkFBWUosS0FBS3BGLEVBQUwsQ0FBUStELFNBQXBCO0FBQ0QsT0FGTSxNQUVBO0FBQ0x5QixtQkFBWUosS0FBS3BGLEVBQUwsQ0FBUWdFLFdBQXBCO0FBQ0Q7QUFDRCxhQUFPd0IsU0FBUDtBQUNEO0FBZEEsS0FuSXVCLEVBa0p2QjtBQUNEakosVUFBSyxvQkFESjtBQUVEWCxZQUFPLFNBQVM4SyxrQkFBVCxDQUE0QnRCLElBQTVCLEVBQWtDO0FBQ3ZDLFVBQUl1QixjQUFjLG1CQUFsQjtBQUNBLFVBQUksQ0FBQ3ZCLEtBQUtxQixhQUFWLEVBQXlCO0FBQ3ZCO0FBQ0Q7QUFDRCxVQUFJLENBQUNyQixLQUFLaEIsVUFBTixJQUFvQixDQUFDZ0IsS0FBS3JGLE9BQTlCLEVBQXVDO0FBQ3JDO0FBQ0Q7QUFDRCxVQUFJc0UsU0FBU2dCLGFBQVQsQ0FBdUIsTUFBTXNCLFdBQU4sR0FBb0IsR0FBM0MsQ0FBSixFQUFxRDtBQUNuRDtBQUNEOztBQUVELFVBQUlDLE1BQU12QyxTQUFTQyxhQUFULENBQXVCLE9BQXZCLENBQVY7QUFDQXNDLFVBQUlDLElBQUosR0FBVyxVQUFYO0FBQ0FELFVBQUloRCxZQUFKLENBQWlCK0MsV0FBakIsRUFBOEIsSUFBOUI7O0FBRUEsVUFBSUcsV0FBVyxFQUFmO0FBQ0EsVUFBSTFCLEtBQUtoQixVQUFULEVBQXFCO0FBQ25CMEMsbUJBQVksbWdCQUFaO0FBQ0Q7QUFDRCxVQUFJMUIsS0FBS3JGLE9BQVQsRUFBa0I7QUFDaEIrRyxtQkFBWSwyT0FBWjtBQUNEO0FBQ0QsVUFBSUYsSUFBSTFLLE1BQUosS0FBZSxDQUFuQixFQUFzQjtBQUNwQjtBQUNEO0FBQ0QwSyxVQUFJN0MsU0FBSixHQUFnQitDLFFBQWhCO0FBQ0F6QyxlQUFTMEMsSUFBVCxDQUFjQyxXQUFkLENBQTBCSixHQUExQjtBQUNEO0FBOUJBLEtBbEp1QixDQUExQjs7QUFtTEEsV0FBT3pCLFdBQVA7QUFDRCxJQXpMaUIsRUFBbEI7O0FBMkxBckssV0FBUSxTQUFSLElBQXFCcUssV0FBckI7QUFDQSxPQUFJL0gsY0FBYyxJQUFJK0gsV0FBSixFQUFsQjtBQUNBckssV0FBUXNDLFdBQVIsR0FBc0JBLFdBQXRCOztBQUVEO0FBQU8sR0Evc0JHO0FBZ3RCVjtBQUNBLE9BQU8sVUFBU3JDLE1BQVQsRUFBaUJELE9BQWpCLEVBQTBCOztBQUVoQzs7Ozs7O0FBTUE7O0FBRUFZLFVBQU9DLGNBQVAsQ0FBc0JiLE9BQXRCLEVBQStCLFlBQS9CLEVBQTZDO0FBQzNDYyxXQUFPO0FBRG9DLElBQTdDO0FBR0EsT0FBSXFMLFdBQVc7QUFDYjs7OztBQUlBdEgsYUFBUyxDQUFDLGlDQUFELEVBQW9DLDhCQUFwQyxFQUFvRSxlQUFwRSxFQUFxRixtQkFBckYsQ0FMSTtBQU1ibUcsb0JBQWdCLElBTkg7O0FBUWI7OztBQUdBdkYsZUFBVyxDQVhFOztBQWFiOzs7QUFHQVYsZ0JBQVksQ0FoQkM7O0FBa0JiOzs7QUFHQXlDLGVBQVcsQ0FyQkU7O0FBdUJiOzs7QUFHQUcsb0JBQWdCLElBMUJIOztBQTRCYjs7O0FBR0FZLGFBQVMsS0EvQkk7O0FBaUNiOzs7QUFHQWxCLGVBQVcsR0FwQ0U7O0FBc0NiOzs7OztBQUtBcEMsYUFBUyxLQTNDSTtBQTRDYkksa0JBQWMsZ0JBNUNEO0FBNkNic0Qsa0JBQWMsR0E3Q0Q7O0FBK0NiOzs7O0FBSUF4QixVQUFNLEtBbkRPO0FBb0RiQyxlQUFXZ0YsUUFwREU7O0FBc0RiOzs7OztBQUtBOUMsZ0JBQVksSUEzREM7QUE0RGJHLGdCQUFZLEdBNURDO0FBNkRia0MsbUJBQWUsSUE3REY7O0FBK0RiOzs7O0FBSUE5QyxVQUFNLElBbkVPOztBQXFFYjs7O0FBR0FwRSwwQkFBc0IsS0F4RVQ7O0FBMEViOzs7QUFHQXVFLGlCQUFhLE1BN0VBOztBQStFYjs7OztBQUlBbEIsZ0JBQVksU0FBU0EsVUFBVCxDQUFvQndDLElBQXBCLEVBQTBCLENBQUUsQ0FuRjNCOztBQXFGYjs7Ozs7QUFLQXhELG9CQUFnQixTQUFTQSxjQUFULENBQXdCN0QsUUFBeEIsRUFBa0NxSCxJQUFsQyxFQUF3QyxDQUFFLENBMUY3Qzs7QUE0RmI7Ozs7O0FBS0FyRCxtQkFBZSxTQUFTQSxhQUFULENBQXVCaEUsUUFBdkIsRUFBaUNxSCxJQUFqQyxFQUF1QyxDQUFFLENBakczQzs7QUFtR2I7Ozs7QUFJQXpDLDRCQUF3QixTQUFTQSxzQkFBVCxDQUFnQ3lDLElBQWhDLEVBQXNDLENBQUUsQ0F2R25EOztBQXlHYjs7Ozs7QUFLQWhFLG9CQUFnQixTQUFTQSxjQUFULENBQXdCckQsUUFBeEIsRUFBa0NxSCxJQUFsQyxFQUF3QyxDQUFFLENBOUc3Qzs7QUFnSGI7Ozs7O0FBS0F6RCxxQkFBaUIsU0FBU0EsZUFBVCxDQUF5QjVELFFBQXpCLEVBQW1DcUgsSUFBbkMsRUFBeUMsQ0FBRSxDQXJIL0M7O0FBdUhiOzs7O0FBSUFoRyxhQUFTLFNBQVNBLE9BQVQsQ0FBaUJnRyxJQUFqQixFQUF1QixDQUFFLENBM0hyQjs7QUE2SGI7Ozs7O0FBS0F0SCxZQUFRLFNBQVNBLE1BQVQsQ0FBZ0JDLFFBQWhCLEVBQTBCcUgsSUFBMUIsRUFBZ0MsQ0FBRSxDQWxJN0I7O0FBb0liOzs7OztBQUtBaEgsYUFBUyxTQUFTQSxPQUFULENBQWlCTCxRQUFqQixFQUEyQnFILElBQTNCLEVBQWlDLENBQUUsQ0F6SS9COztBQTJJYjs7OztBQUlBN0csZUFBVyxTQUFTQSxTQUFULENBQW1CNkcsSUFBbkIsRUFBeUIsQ0FBRTtBQS9JekIsSUFBZjs7QUFrSkF0SyxXQUFRLFNBQVIsSUFBcUJtTSxRQUFyQjtBQUNBbE0sVUFBT0QsT0FBUCxHQUFpQkEsUUFBUSxTQUFSLENBQWpCOztBQUVEO0FBQU8sR0FuM0JHO0FBbzNCVjtBQUNBLE9BQU8sVUFBU0MsTUFBVCxFQUFpQkQsT0FBakIsRUFBMEI7O0FBR2hDOzs7OztBQUtBOztBQUVBWSxVQUFPQyxjQUFQLENBQXNCYixPQUF0QixFQUErQixZQUEvQixFQUE2QztBQUMzQ2MsV0FBTztBQURvQyxJQUE3Qzs7QUFJQSxPQUFJQyxlQUFnQixZQUFZO0FBQUUsYUFBU0MsZ0JBQVQsQ0FBMEJDLE1BQTFCLEVBQWtDQyxLQUFsQyxFQUF5QztBQUFFLFVBQUssSUFBSUMsSUFBSSxDQUFiLEVBQWdCQSxJQUFJRCxNQUFNRSxNQUExQixFQUFrQ0QsR0FBbEMsRUFBdUM7QUFBRSxVQUFJRSxhQUFhSCxNQUFNQyxDQUFOLENBQWpCLENBQTJCRSxXQUFXQyxVQUFYLEdBQXdCRCxXQUFXQyxVQUFYLElBQXlCLEtBQWpELENBQXdERCxXQUFXRSxZQUFYLEdBQTBCLElBQTFCLENBQWdDLElBQUksV0FBV0YsVUFBZixFQUEyQkEsV0FBV0csUUFBWCxHQUFzQixJQUF0QixDQUE0QlosT0FBT0MsY0FBUCxDQUFzQkksTUFBdEIsRUFBOEJJLFdBQVdJLEdBQXpDLEVBQThDSixVQUE5QztBQUE0RDtBQUFFLEtBQUMsT0FBTyxVQUFVSyxXQUFWLEVBQXVCQyxVQUF2QixFQUFtQ0MsV0FBbkMsRUFBZ0Q7QUFBRSxTQUFJRCxVQUFKLEVBQWdCWCxpQkFBaUJVLFlBQVlHLFNBQTdCLEVBQXdDRixVQUF4QyxFQUFxRCxJQUFJQyxXQUFKLEVBQWlCWixpQkFBaUJVLFdBQWpCLEVBQThCRSxXQUE5QixFQUE0QyxPQUFPRixXQUFQO0FBQXFCLEtBQWhOO0FBQW1OLElBQS9oQixFQUFuQjs7QUFFQSxZQUFTSSxlQUFULENBQXlCQyxRQUF6QixFQUFtQ0wsV0FBbkMsRUFBZ0Q7QUFBRSxRQUFJLEVBQUVLLG9CQUFvQkwsV0FBdEIsQ0FBSixFQUF3QztBQUFFLFdBQU0sSUFBSU0sU0FBSixDQUFjLG1DQUFkLENBQU47QUFBMkQ7QUFBRTs7QUFFekosT0FBSXFLLGFBQWMsWUFBWTtBQUM1QixhQUFTQSxVQUFULEdBQXNCO0FBQ3BCdksscUJBQWdCLElBQWhCLEVBQXNCdUssVUFBdEI7QUFDRDs7QUFFRHRMLGlCQUFhc0wsVUFBYixFQUF5QixDQUFDO0FBQ3hCNUssVUFBSyxlQURtQjs7QUFHeEI7Ozs7Ozs7OztBQVNBWCxZQUFPLFNBQVMrRSxhQUFULENBQXVCMUMsU0FBdkIsRUFBa0NDLFNBQWxDLEVBQTZDa0gsSUFBN0MsRUFBbUQ7QUFDeEQsVUFBSUEsS0FBS3RCLFdBQUwsS0FBcUIsTUFBekIsRUFBaUMsT0FBTzVGLFNBQVA7QUFDakMsVUFBSWtKLFVBQVVuSixVQUFVNEMsTUFBVixDQUFpQjNDLFNBQWpCLEVBQTRCNEMsTUFBNUIsQ0FBbUMsQ0FBbkMsQ0FBZDtBQUNBLFVBQUlzRyxZQUFZLEdBQVosSUFBbUJBLFlBQVksR0FBbkMsRUFBd0M7QUFDdEMsV0FBSUMsU0FBUyxFQUFiO0FBQ0EsV0FBSUQsWUFBWSxHQUFoQixFQUFxQjtBQUNuQkMsaUJBQVMsR0FBVDtBQUNELFFBRkQsTUFFTztBQUNMQSxpQkFBUyxHQUFUO0FBQ0Q7QUFDRCxjQUFPcEosVUFBVTRDLE1BQVYsQ0FBaUIzQyxZQUFZLENBQTdCLEVBQWdDNEMsTUFBaEMsQ0FBdUMsQ0FBdkMsTUFBOEN1RyxNQUFyRCxFQUE2RDtBQUMzRG5KO0FBQ0EsWUFBSUEsWUFBWSxDQUFaLEdBQWdCRCxVQUFVL0IsTUFBOUIsRUFBc0M7QUFDcEM7QUFDRDtBQUNGO0FBQ0RnQztBQUNEO0FBQ0QsYUFBT0EsU0FBUDtBQUNEOztBQUVEOzs7Ozs7OztBQWpDd0IsS0FBRCxFQXlDdEI7QUFDRDNCLFVBQUssb0JBREo7QUFFRFgsWUFBTyxTQUFTMkcsa0JBQVQsQ0FBNEJ0RSxTQUE1QixFQUF1Q0MsU0FBdkMsRUFBa0RrSCxJQUFsRCxFQUF3RDtBQUM3RCxVQUFJQSxLQUFLdEIsV0FBTCxLQUFxQixNQUF6QixFQUFpQyxPQUFPNUYsU0FBUDtBQUNqQyxVQUFJa0osVUFBVW5KLFVBQVU0QyxNQUFWLENBQWlCM0MsU0FBakIsRUFBNEI0QyxNQUE1QixDQUFtQyxDQUFuQyxDQUFkO0FBQ0EsVUFBSXNHLFlBQVksR0FBWixJQUFtQkEsWUFBWSxHQUFuQyxFQUF3QztBQUN0QyxXQUFJQyxTQUFTLEVBQWI7QUFDQSxXQUFJRCxZQUFZLEdBQWhCLEVBQXFCO0FBQ25CQyxpQkFBUyxHQUFUO0FBQ0QsUUFGRCxNQUVPO0FBQ0xBLGlCQUFTLEdBQVQ7QUFDRDtBQUNELGNBQU9wSixVQUFVNEMsTUFBVixDQUFpQjNDLFlBQVksQ0FBN0IsRUFBZ0M0QyxNQUFoQyxDQUF1QyxDQUF2QyxNQUE4Q3VHLE1BQXJELEVBQTZEO0FBQzNEbko7QUFDQSxZQUFJQSxZQUFZLENBQWhCLEVBQW1CO0FBQ2pCO0FBQ0Q7QUFDRjtBQUNEQTtBQUNEO0FBQ0QsYUFBT0EsU0FBUDtBQUNEO0FBckJBLEtBekNzQixDQUF6Qjs7QUFpRUEsV0FBT2lKLFVBQVA7QUFDRCxJQXZFZ0IsRUFBakI7O0FBeUVBck0sV0FBUSxTQUFSLElBQXFCcU0sVUFBckI7QUFDQSxPQUFJekcsYUFBYSxJQUFJeUcsVUFBSixFQUFqQjtBQUNBck0sV0FBUTRGLFVBQVIsR0FBcUJBLFVBQXJCOztBQUVEO0FBQU8sR0FwOUJHO0FBcTlCVixVQS8vQmdCO0FBQWhCO0FBZ2dDQyxDQTFnQ0Q7QUEyZ0NBLEMiLCJmaWxlIjoiNC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogXG4gKiAgIHR5cGVkLmpzIC0gQSBKYXZhU2NyaXB0IFR5cGluZyBBbmltYXRpb24gTGlicmFyeVxuICogICBBdXRob3I6IE1hdHQgQm9sZHQgPG1lQG1hdHRib2xkdC5jb20+XG4gKiAgIFZlcnNpb246IHYyLjAuOVxuICogICBVcmw6IGh0dHBzOi8vZ2l0aHViLmNvbS9tYXR0Ym9sZHQvdHlwZWQuanNcbiAqICAgTGljZW5zZShzKTogTUlUXG4gKiBcbiAqL1xuKGZ1bmN0aW9uIHdlYnBhY2tVbml2ZXJzYWxNb2R1bGVEZWZpbml0aW9uKHJvb3QsIGZhY3RvcnkpIHtcblx0aWYodHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgPT09ICdvYmplY3QnKVxuXHRcdG1vZHVsZS5leHBvcnRzID0gZmFjdG9yeSgpO1xuXHRlbHNlIGlmKHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZClcblx0XHRkZWZpbmUoW10sIGZhY3RvcnkpO1xuXHRlbHNlIGlmKHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0Jylcblx0XHRleHBvcnRzW1wiVHlwZWRcIl0gPSBmYWN0b3J5KCk7XG5cdGVsc2Vcblx0XHRyb290W1wiVHlwZWRcIl0gPSBmYWN0b3J5KCk7XG59KSh0aGlzLCBmdW5jdGlvbigpIHtcbnJldHVybiAvKioqKioqLyAoZnVuY3Rpb24obW9kdWxlcykgeyAvLyB3ZWJwYWNrQm9vdHN0cmFwXG4vKioqKioqLyBcdC8vIFRoZSBtb2R1bGUgY2FjaGVcbi8qKioqKiovIFx0dmFyIGluc3RhbGxlZE1vZHVsZXMgPSB7fTtcbi8qKioqKiovXG4vKioqKioqLyBcdC8vIFRoZSByZXF1aXJlIGZ1bmN0aW9uXG4vKioqKioqLyBcdGZ1bmN0aW9uIF9fd2VicGFja19yZXF1aXJlX18obW9kdWxlSWQpIHtcbi8qKioqKiovXG4vKioqKioqLyBcdFx0Ly8gQ2hlY2sgaWYgbW9kdWxlIGlzIGluIGNhY2hlXG4vKioqKioqLyBcdFx0aWYoaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0pXG4vKioqKioqLyBcdFx0XHRyZXR1cm4gaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0uZXhwb3J0cztcbi8qKioqKiovXG4vKioqKioqLyBcdFx0Ly8gQ3JlYXRlIGEgbmV3IG1vZHVsZSAoYW5kIHB1dCBpdCBpbnRvIHRoZSBjYWNoZSlcbi8qKioqKiovIFx0XHR2YXIgbW9kdWxlID0gaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0gPSB7XG4vKioqKioqLyBcdFx0XHRleHBvcnRzOiB7fSxcbi8qKioqKiovIFx0XHRcdGlkOiBtb2R1bGVJZCxcbi8qKioqKiovIFx0XHRcdGxvYWRlZDogZmFsc2Vcbi8qKioqKiovIFx0XHR9O1xuLyoqKioqKi9cbi8qKioqKiovIFx0XHQvLyBFeGVjdXRlIHRoZSBtb2R1bGUgZnVuY3Rpb25cbi8qKioqKiovIFx0XHRtb2R1bGVzW21vZHVsZUlkXS5jYWxsKG1vZHVsZS5leHBvcnRzLCBtb2R1bGUsIG1vZHVsZS5leHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKTtcbi8qKioqKiovXG4vKioqKioqLyBcdFx0Ly8gRmxhZyB0aGUgbW9kdWxlIGFzIGxvYWRlZFxuLyoqKioqKi8gXHRcdG1vZHVsZS5sb2FkZWQgPSB0cnVlO1xuLyoqKioqKi9cbi8qKioqKiovIFx0XHQvLyBSZXR1cm4gdGhlIGV4cG9ydHMgb2YgdGhlIG1vZHVsZVxuLyoqKioqKi8gXHRcdHJldHVybiBtb2R1bGUuZXhwb3J0cztcbi8qKioqKiovIFx0fVxuLyoqKioqKi9cbi8qKioqKiovXG4vKioqKioqLyBcdC8vIGV4cG9zZSB0aGUgbW9kdWxlcyBvYmplY3QgKF9fd2VicGFja19tb2R1bGVzX18pXG4vKioqKioqLyBcdF9fd2VicGFja19yZXF1aXJlX18ubSA9IG1vZHVsZXM7XG4vKioqKioqL1xuLyoqKioqKi8gXHQvLyBleHBvc2UgdGhlIG1vZHVsZSBjYWNoZVxuLyoqKioqKi8gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmMgPSBpbnN0YWxsZWRNb2R1bGVzO1xuLyoqKioqKi9cbi8qKioqKiovIFx0Ly8gX193ZWJwYWNrX3B1YmxpY19wYXRoX19cbi8qKioqKiovIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5wID0gXCJcIjtcbi8qKioqKiovXG4vKioqKioqLyBcdC8vIExvYWQgZW50cnkgbW9kdWxlIGFuZCByZXR1cm4gZXhwb3J0c1xuLyoqKioqKi8gXHRyZXR1cm4gX193ZWJwYWNrX3JlcXVpcmVfXygwKTtcbi8qKioqKiovIH0pXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKi8gKFtcbi8qIDAgKi9cbi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHtcblxuXHQndXNlIHN0cmljdCc7XG5cdFxuXHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgJ19fZXNNb2R1bGUnLCB7XG5cdCAgdmFsdWU6IHRydWVcblx0fSk7XG5cdFxuXHR2YXIgX2NyZWF0ZUNsYXNzID0gKGZ1bmN0aW9uICgpIHsgZnVuY3Rpb24gZGVmaW5lUHJvcGVydGllcyh0YXJnZXQsIHByb3BzKSB7IGZvciAodmFyIGkgPSAwOyBpIDwgcHJvcHMubGVuZ3RoOyBpKyspIHsgdmFyIGRlc2NyaXB0b3IgPSBwcm9wc1tpXTsgZGVzY3JpcHRvci5lbnVtZXJhYmxlID0gZGVzY3JpcHRvci5lbnVtZXJhYmxlIHx8IGZhbHNlOyBkZXNjcmlwdG9yLmNvbmZpZ3VyYWJsZSA9IHRydWU7IGlmICgndmFsdWUnIGluIGRlc2NyaXB0b3IpIGRlc2NyaXB0b3Iud3JpdGFibGUgPSB0cnVlOyBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBkZXNjcmlwdG9yLmtleSwgZGVzY3JpcHRvcik7IH0gfSByZXR1cm4gZnVuY3Rpb24gKENvbnN0cnVjdG9yLCBwcm90b1Byb3BzLCBzdGF0aWNQcm9wcykgeyBpZiAocHJvdG9Qcm9wcykgZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvci5wcm90b3R5cGUsIHByb3RvUHJvcHMpOyBpZiAoc3RhdGljUHJvcHMpIGRlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IsIHN0YXRpY1Byb3BzKTsgcmV0dXJuIENvbnN0cnVjdG9yOyB9OyB9KSgpO1xuXHRcblx0ZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cdFxuXHR2YXIgX2luaXRpYWxpemVySnMgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDEpO1xuXHRcblx0dmFyIF9odG1sUGFyc2VySnMgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDMpO1xuXHRcblx0LyoqXG5cdCAqIFdlbGNvbWUgdG8gVHlwZWQuanMhXG5cdCAqIEBwYXJhbSB7c3RyaW5nfSBlbGVtZW50SWQgSFRNTCBlbGVtZW50IElEIF9PUl8gSFRNTCBlbGVtZW50XG5cdCAqIEBwYXJhbSB7b2JqZWN0fSBvcHRpb25zIG9wdGlvbnMgb2JqZWN0XG5cdCAqIEByZXR1cm5zIHtvYmplY3R9IGEgbmV3IFR5cGVkIG9iamVjdFxuXHQgKi9cblx0XG5cdHZhciBUeXBlZCA9IChmdW5jdGlvbiAoKSB7XG5cdCAgZnVuY3Rpb24gVHlwZWQoZWxlbWVudElkLCBvcHRpb25zKSB7XG5cdCAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgVHlwZWQpO1xuXHRcblx0ICAgIC8vIEluaXRpYWxpemUgaXQgdXBcblx0ICAgIF9pbml0aWFsaXplckpzLmluaXRpYWxpemVyLmxvYWQodGhpcywgb3B0aW9ucywgZWxlbWVudElkKTtcblx0ICAgIC8vIEFsbCBzeXN0ZW1zIGdvIVxuXHQgICAgdGhpcy5iZWdpbigpO1xuXHQgIH1cblx0XG5cdCAgLyoqXG5cdCAgICogVG9nZ2xlIHN0YXJ0KCkgYW5kIHN0b3AoKSBvZiB0aGUgVHlwZWQgaW5zdGFuY2Vcblx0ICAgKiBAcHVibGljXG5cdCAgICovXG5cdFxuXHQgIF9jcmVhdGVDbGFzcyhUeXBlZCwgW3tcblx0ICAgIGtleTogJ3RvZ2dsZScsXG5cdCAgICB2YWx1ZTogZnVuY3Rpb24gdG9nZ2xlKCkge1xuXHQgICAgICB0aGlzLnBhdXNlLnN0YXR1cyA/IHRoaXMuc3RhcnQoKSA6IHRoaXMuc3RvcCgpO1xuXHQgICAgfVxuXHRcblx0ICAgIC8qKlxuXHQgICAgICogU3RvcCB0eXBpbmcgLyBiYWNrc3BhY2luZyBhbmQgZW5hYmxlIGN1cnNvciBibGlua2luZ1xuXHQgICAgICogQHB1YmxpY1xuXHQgICAgICovXG5cdCAgfSwge1xuXHQgICAga2V5OiAnc3RvcCcsXG5cdCAgICB2YWx1ZTogZnVuY3Rpb24gc3RvcCgpIHtcblx0ICAgICAgaWYgKHRoaXMudHlwaW5nQ29tcGxldGUpIHJldHVybjtcblx0ICAgICAgaWYgKHRoaXMucGF1c2Uuc3RhdHVzKSByZXR1cm47XG5cdCAgICAgIHRoaXMudG9nZ2xlQmxpbmtpbmcodHJ1ZSk7XG5cdCAgICAgIHRoaXMucGF1c2Uuc3RhdHVzID0gdHJ1ZTtcblx0ICAgICAgdGhpcy5vcHRpb25zLm9uU3RvcCh0aGlzLmFycmF5UG9zLCB0aGlzKTtcblx0ICAgIH1cblx0XG5cdCAgICAvKipcblx0ICAgICAqIFN0YXJ0IHR5cGluZyAvIGJhY2tzcGFjaW5nIGFmdGVyIGJlaW5nIHN0b3BwZWRcblx0ICAgICAqIEBwdWJsaWNcblx0ICAgICAqL1xuXHQgIH0sIHtcblx0ICAgIGtleTogJ3N0YXJ0Jyxcblx0ICAgIHZhbHVlOiBmdW5jdGlvbiBzdGFydCgpIHtcblx0ICAgICAgaWYgKHRoaXMudHlwaW5nQ29tcGxldGUpIHJldHVybjtcblx0ICAgICAgaWYgKCF0aGlzLnBhdXNlLnN0YXR1cykgcmV0dXJuO1xuXHQgICAgICB0aGlzLnBhdXNlLnN0YXR1cyA9IGZhbHNlO1xuXHQgICAgICBpZiAodGhpcy5wYXVzZS50eXBld3JpdGUpIHtcblx0ICAgICAgICB0aGlzLnR5cGV3cml0ZSh0aGlzLnBhdXNlLmN1clN0cmluZywgdGhpcy5wYXVzZS5jdXJTdHJQb3MpO1xuXHQgICAgICB9IGVsc2Uge1xuXHQgICAgICAgIHRoaXMuYmFja3NwYWNlKHRoaXMucGF1c2UuY3VyU3RyaW5nLCB0aGlzLnBhdXNlLmN1clN0clBvcyk7XG5cdCAgICAgIH1cblx0ICAgICAgdGhpcy5vcHRpb25zLm9uU3RhcnQodGhpcy5hcnJheVBvcywgdGhpcyk7XG5cdCAgICB9XG5cdFxuXHQgICAgLyoqXG5cdCAgICAgKiBEZXN0cm95IHRoaXMgaW5zdGFuY2Ugb2YgVHlwZWRcblx0ICAgICAqIEBwdWJsaWNcblx0ICAgICAqL1xuXHQgIH0sIHtcblx0ICAgIGtleTogJ2Rlc3Ryb3knLFxuXHQgICAgdmFsdWU6IGZ1bmN0aW9uIGRlc3Ryb3koKSB7XG5cdCAgICAgIHRoaXMucmVzZXQoZmFsc2UpO1xuXHQgICAgICB0aGlzLm9wdGlvbnMub25EZXN0cm95KHRoaXMpO1xuXHQgICAgfVxuXHRcblx0ICAgIC8qKlxuXHQgICAgICogUmVzZXQgVHlwZWQgYW5kIG9wdGlvbmFsbHkgcmVzdGFydHNcblx0ICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gcmVzdGFydFxuXHQgICAgICogQHB1YmxpY1xuXHQgICAgICovXG5cdCAgfSwge1xuXHQgICAga2V5OiAncmVzZXQnLFxuXHQgICAgdmFsdWU6IGZ1bmN0aW9uIHJlc2V0KCkge1xuXHQgICAgICB2YXIgcmVzdGFydCA9IGFyZ3VtZW50cy5sZW5ndGggPD0gMCB8fCBhcmd1bWVudHNbMF0gPT09IHVuZGVmaW5lZCA/IHRydWUgOiBhcmd1bWVudHNbMF07XG5cdFxuXHQgICAgICBjbGVhckludGVydmFsKHRoaXMudGltZW91dCk7XG5cdCAgICAgIHRoaXMucmVwbGFjZVRleHQoJycpO1xuXHQgICAgICBpZiAodGhpcy5jdXJzb3IgJiYgdGhpcy5jdXJzb3IucGFyZW50Tm9kZSkge1xuXHQgICAgICAgIHRoaXMuY3Vyc29yLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodGhpcy5jdXJzb3IpO1xuXHQgICAgICAgIHRoaXMuY3Vyc29yID0gbnVsbDtcblx0ICAgICAgfVxuXHQgICAgICB0aGlzLnN0clBvcyA9IDA7XG5cdCAgICAgIHRoaXMuYXJyYXlQb3MgPSAwO1xuXHQgICAgICB0aGlzLmN1ckxvb3AgPSAwO1xuXHQgICAgICBpZiAocmVzdGFydCkge1xuXHQgICAgICAgIHRoaXMuaW5zZXJ0Q3Vyc29yKCk7XG5cdCAgICAgICAgdGhpcy5vcHRpb25zLm9uUmVzZXQodGhpcyk7XG5cdCAgICAgICAgdGhpcy5iZWdpbigpO1xuXHQgICAgICB9XG5cdCAgICB9XG5cdFxuXHQgICAgLyoqXG5cdCAgICAgKiBCZWdpbnMgdGhlIHR5cGluZyBhbmltYXRpb25cblx0ICAgICAqIEBwcml2YXRlXG5cdCAgICAgKi9cblx0ICB9LCB7XG5cdCAgICBrZXk6ICdiZWdpbicsXG5cdCAgICB2YWx1ZTogZnVuY3Rpb24gYmVnaW4oKSB7XG5cdCAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG5cdFxuXHQgICAgICB0aGlzLnR5cGluZ0NvbXBsZXRlID0gZmFsc2U7XG5cdCAgICAgIHRoaXMuc2h1ZmZsZVN0cmluZ3NJZk5lZWRlZCh0aGlzKTtcblx0ICAgICAgdGhpcy5pbnNlcnRDdXJzb3IoKTtcblx0ICAgICAgaWYgKHRoaXMuYmluZElucHV0Rm9jdXNFdmVudHMpIHRoaXMuYmluZEZvY3VzRXZlbnRzKCk7XG5cdCAgICAgIHRoaXMudGltZW91dCA9IHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuXHQgICAgICAgIC8vIENoZWNrIGlmIHRoZXJlIGlzIHNvbWUgdGV4dCBpbiB0aGUgZWxlbWVudCwgaWYgeWVzIHN0YXJ0IGJ5IGJhY2tzcGFjaW5nIHRoZSBkZWZhdWx0IG1lc3NhZ2Vcblx0ICAgICAgICBpZiAoIV90aGlzLmN1cnJlbnRFbENvbnRlbnQgfHwgX3RoaXMuY3VycmVudEVsQ29udGVudC5sZW5ndGggPT09IDApIHtcblx0ICAgICAgICAgIF90aGlzLnR5cGV3cml0ZShfdGhpcy5zdHJpbmdzW190aGlzLnNlcXVlbmNlW190aGlzLmFycmF5UG9zXV0sIF90aGlzLnN0clBvcyk7XG5cdCAgICAgICAgfSBlbHNlIHtcblx0ICAgICAgICAgIC8vIFN0YXJ0IHR5cGluZ1xuXHQgICAgICAgICAgX3RoaXMuYmFja3NwYWNlKF90aGlzLmN1cnJlbnRFbENvbnRlbnQsIF90aGlzLmN1cnJlbnRFbENvbnRlbnQubGVuZ3RoKTtcblx0ICAgICAgICB9XG5cdCAgICAgIH0sIHRoaXMuc3RhcnREZWxheSk7XG5cdCAgICB9XG5cdFxuXHQgICAgLyoqXG5cdCAgICAgKiBDYWxsZWQgZm9yIGVhY2ggY2hhcmFjdGVyIHR5cGVkXG5cdCAgICAgKiBAcGFyYW0ge3N0cmluZ30gY3VyU3RyaW5nIHRoZSBjdXJyZW50IHN0cmluZyBpbiB0aGUgc3RyaW5ncyBhcnJheVxuXHQgICAgICogQHBhcmFtIHtudW1iZXJ9IGN1clN0clBvcyB0aGUgY3VycmVudCBwb3NpdGlvbiBpbiB0aGUgY3VyU3RyaW5nXG5cdCAgICAgKiBAcHJpdmF0ZVxuXHQgICAgICovXG5cdCAgfSwge1xuXHQgICAga2V5OiAndHlwZXdyaXRlJyxcblx0ICAgIHZhbHVlOiBmdW5jdGlvbiB0eXBld3JpdGUoY3VyU3RyaW5nLCBjdXJTdHJQb3MpIHtcblx0ICAgICAgdmFyIF90aGlzMiA9IHRoaXM7XG5cdFxuXHQgICAgICBpZiAodGhpcy5mYWRlT3V0ICYmIHRoaXMuZWwuY2xhc3NMaXN0LmNvbnRhaW5zKHRoaXMuZmFkZU91dENsYXNzKSkge1xuXHQgICAgICAgIHRoaXMuZWwuY2xhc3NMaXN0LnJlbW92ZSh0aGlzLmZhZGVPdXRDbGFzcyk7XG5cdCAgICAgICAgaWYgKHRoaXMuY3Vyc29yKSB0aGlzLmN1cnNvci5jbGFzc0xpc3QucmVtb3ZlKHRoaXMuZmFkZU91dENsYXNzKTtcblx0ICAgICAgfVxuXHRcblx0ICAgICAgdmFyIGh1bWFuaXplID0gdGhpcy5odW1hbml6ZXIodGhpcy50eXBlU3BlZWQpO1xuXHQgICAgICB2YXIgbnVtQ2hhcnMgPSAxO1xuXHRcblx0ICAgICAgaWYgKHRoaXMucGF1c2Uuc3RhdHVzID09PSB0cnVlKSB7XG5cdCAgICAgICAgdGhpcy5zZXRQYXVzZVN0YXR1cyhjdXJTdHJpbmcsIGN1clN0clBvcywgdHJ1ZSk7XG5cdCAgICAgICAgcmV0dXJuO1xuXHQgICAgICB9XG5cdFxuXHQgICAgICAvLyBjb250YWluIHR5cGluZyBmdW5jdGlvbiBpbiBhIHRpbWVvdXQgaHVtYW5pemUnZCBkZWxheVxuXHQgICAgICB0aGlzLnRpbWVvdXQgPSBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcblx0ICAgICAgICAvLyBza2lwIG92ZXIgYW55IEhUTUwgY2hhcnNcblx0ICAgICAgICBjdXJTdHJQb3MgPSBfaHRtbFBhcnNlckpzLmh0bWxQYXJzZXIudHlwZUh0bWxDaGFycyhjdXJTdHJpbmcsIGN1clN0clBvcywgX3RoaXMyKTtcblx0XG5cdCAgICAgICAgdmFyIHBhdXNlVGltZSA9IDA7XG5cdCAgICAgICAgdmFyIHN1YnN0ciA9IGN1clN0cmluZy5zdWJzdHIoY3VyU3RyUG9zKTtcblx0ICAgICAgICAvLyBjaGVjayBmb3IgYW4gZXNjYXBlIGNoYXJhY3RlciBiZWZvcmUgYSBwYXVzZSB2YWx1ZVxuXHQgICAgICAgIC8vIGZvcm1hdDogXFxeXFxkKyAuLiBlZzogXjEwMDAgLi4gc2hvdWxkIGJlIGFibGUgdG8gcHJpbnQgdGhlIF4gdG9vIHVzaW5nIF5eXG5cdCAgICAgICAgLy8gc2luZ2xlIF4gYXJlIHJlbW92ZWQgZnJvbSBzdHJpbmdcblx0ICAgICAgICBpZiAoc3Vic3RyLmNoYXJBdCgwKSA9PT0gJ14nKSB7XG5cdCAgICAgICAgICBpZiAoL15cXF5cXGQrLy50ZXN0KHN1YnN0cikpIHtcblx0ICAgICAgICAgICAgdmFyIHNraXAgPSAxOyAvLyBza2lwIGF0IGxlYXN0IDFcblx0ICAgICAgICAgICAgc3Vic3RyID0gL1xcZCsvLmV4ZWMoc3Vic3RyKVswXTtcblx0ICAgICAgICAgICAgc2tpcCArPSBzdWJzdHIubGVuZ3RoO1xuXHQgICAgICAgICAgICBwYXVzZVRpbWUgPSBwYXJzZUludChzdWJzdHIpO1xuXHQgICAgICAgICAgICBfdGhpczIudGVtcG9yYXJ5UGF1c2UgPSB0cnVlO1xuXHQgICAgICAgICAgICBfdGhpczIub3B0aW9ucy5vblR5cGluZ1BhdXNlZChfdGhpczIuYXJyYXlQb3MsIF90aGlzMik7XG5cdCAgICAgICAgICAgIC8vIHN0cmlwIG91dCB0aGUgZXNjYXBlIGNoYXJhY3RlciBhbmQgcGF1c2UgdmFsdWUgc28gdGhleSdyZSBub3QgcHJpbnRlZFxuXHQgICAgICAgICAgICBjdXJTdHJpbmcgPSBjdXJTdHJpbmcuc3Vic3RyaW5nKDAsIGN1clN0clBvcykgKyBjdXJTdHJpbmcuc3Vic3RyaW5nKGN1clN0clBvcyArIHNraXApO1xuXHQgICAgICAgICAgICBfdGhpczIudG9nZ2xlQmxpbmtpbmcodHJ1ZSk7XG5cdCAgICAgICAgICB9XG5cdCAgICAgICAgfVxuXHRcblx0ICAgICAgICAvLyBjaGVjayBmb3Igc2tpcCBjaGFyYWN0ZXJzIGZvcm1hdHRlZCBhc1xuXHQgICAgICAgIC8vIFwidGhpcyBpcyBhIGBzdHJpbmcgdG8gcHJpbnQgTk9XYCAuLi5cIlxuXHQgICAgICAgIGlmIChzdWJzdHIuY2hhckF0KDApID09PSAnYCcpIHtcblx0ICAgICAgICAgIHdoaWxlIChjdXJTdHJpbmcuc3Vic3RyKGN1clN0clBvcyArIG51bUNoYXJzKS5jaGFyQXQoMCkgIT09ICdgJykge1xuXHQgICAgICAgICAgICBudW1DaGFycysrO1xuXHQgICAgICAgICAgICBpZiAoY3VyU3RyUG9zICsgbnVtQ2hhcnMgPiBjdXJTdHJpbmcubGVuZ3RoKSBicmVhaztcblx0ICAgICAgICAgIH1cblx0ICAgICAgICAgIC8vIHN0cmlwIG91dCB0aGUgZXNjYXBlIGNoYXJhY3RlcnMgYW5kIGFwcGVuZCBhbGwgdGhlIHN0cmluZyBpbiBiZXR3ZWVuXG5cdCAgICAgICAgICB2YXIgc3RyaW5nQmVmb3JlU2tpcCA9IGN1clN0cmluZy5zdWJzdHJpbmcoMCwgY3VyU3RyUG9zKTtcblx0ICAgICAgICAgIHZhciBzdHJpbmdTa2lwcGVkID0gY3VyU3RyaW5nLnN1YnN0cmluZyhzdHJpbmdCZWZvcmVTa2lwLmxlbmd0aCArIDEsIGN1clN0clBvcyArIG51bUNoYXJzKTtcblx0ICAgICAgICAgIHZhciBzdHJpbmdBZnRlclNraXAgPSBjdXJTdHJpbmcuc3Vic3RyaW5nKGN1clN0clBvcyArIG51bUNoYXJzICsgMSk7XG5cdCAgICAgICAgICBjdXJTdHJpbmcgPSBzdHJpbmdCZWZvcmVTa2lwICsgc3RyaW5nU2tpcHBlZCArIHN0cmluZ0FmdGVyU2tpcDtcblx0ICAgICAgICAgIG51bUNoYXJzLS07XG5cdCAgICAgICAgfVxuXHRcblx0ICAgICAgICAvLyB0aW1lb3V0IGZvciBhbnkgcGF1c2UgYWZ0ZXIgYSBjaGFyYWN0ZXJcblx0ICAgICAgICBfdGhpczIudGltZW91dCA9IHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuXHQgICAgICAgICAgLy8gQWNjb3VudHMgZm9yIGJsaW5raW5nIHdoaWxlIHBhdXNlZFxuXHQgICAgICAgICAgX3RoaXMyLnRvZ2dsZUJsaW5raW5nKGZhbHNlKTtcblx0XG5cdCAgICAgICAgICAvLyBXZSdyZSBkb25lIHdpdGggdGhpcyBzZW50ZW5jZSFcblx0ICAgICAgICAgIGlmIChjdXJTdHJQb3MgPj0gY3VyU3RyaW5nLmxlbmd0aCkge1xuXHQgICAgICAgICAgICBfdGhpczIuZG9uZVR5cGluZyhjdXJTdHJpbmcsIGN1clN0clBvcyk7XG5cdCAgICAgICAgICB9IGVsc2Uge1xuXHQgICAgICAgICAgICBfdGhpczIua2VlcFR5cGluZyhjdXJTdHJpbmcsIGN1clN0clBvcywgbnVtQ2hhcnMpO1xuXHQgICAgICAgICAgfVxuXHQgICAgICAgICAgLy8gZW5kIG9mIGNoYXJhY3RlciBwYXVzZVxuXHQgICAgICAgICAgaWYgKF90aGlzMi50ZW1wb3JhcnlQYXVzZSkge1xuXHQgICAgICAgICAgICBfdGhpczIudGVtcG9yYXJ5UGF1c2UgPSBmYWxzZTtcblx0ICAgICAgICAgICAgX3RoaXMyLm9wdGlvbnMub25UeXBpbmdSZXN1bWVkKF90aGlzMi5hcnJheVBvcywgX3RoaXMyKTtcblx0ICAgICAgICAgIH1cblx0ICAgICAgICB9LCBwYXVzZVRpbWUpO1xuXHRcblx0ICAgICAgICAvLyBodW1hbml6ZWQgdmFsdWUgZm9yIHR5cGluZ1xuXHQgICAgICB9LCBodW1hbml6ZSk7XG5cdCAgICB9XG5cdFxuXHQgICAgLyoqXG5cdCAgICAgKiBDb250aW51ZSB0byB0aGUgbmV4dCBzdHJpbmcgJiBiZWdpbiB0eXBpbmdcblx0ICAgICAqIEBwYXJhbSB7c3RyaW5nfSBjdXJTdHJpbmcgdGhlIGN1cnJlbnQgc3RyaW5nIGluIHRoZSBzdHJpbmdzIGFycmF5XG5cdCAgICAgKiBAcGFyYW0ge251bWJlcn0gY3VyU3RyUG9zIHRoZSBjdXJyZW50IHBvc2l0aW9uIGluIHRoZSBjdXJTdHJpbmdcblx0ICAgICAqIEBwcml2YXRlXG5cdCAgICAgKi9cblx0ICB9LCB7XG5cdCAgICBrZXk6ICdrZWVwVHlwaW5nJyxcblx0ICAgIHZhbHVlOiBmdW5jdGlvbiBrZWVwVHlwaW5nKGN1clN0cmluZywgY3VyU3RyUG9zLCBudW1DaGFycykge1xuXHQgICAgICAvLyBjYWxsIGJlZm9yZSBmdW5jdGlvbnMgaWYgYXBwbGljYWJsZVxuXHQgICAgICBpZiAoY3VyU3RyUG9zID09PSAwKSB7XG5cdCAgICAgICAgdGhpcy50b2dnbGVCbGlua2luZyhmYWxzZSk7XG5cdCAgICAgICAgdGhpcy5vcHRpb25zLnByZVN0cmluZ1R5cGVkKHRoaXMuYXJyYXlQb3MsIHRoaXMpO1xuXHQgICAgICB9XG5cdCAgICAgIC8vIHN0YXJ0IHR5cGluZyBlYWNoIG5ldyBjaGFyIGludG8gZXhpc3Rpbmcgc3RyaW5nXG5cdCAgICAgIC8vIGN1clN0cmluZzogYXJnLCB0aGlzLmVsLmh0bWw6IG9yaWdpbmFsIHRleHQgaW5zaWRlIGVsZW1lbnRcblx0ICAgICAgY3VyU3RyUG9zICs9IG51bUNoYXJzO1xuXHQgICAgICB2YXIgbmV4dFN0cmluZyA9IGN1clN0cmluZy5zdWJzdHIoMCwgY3VyU3RyUG9zKTtcblx0ICAgICAgdGhpcy5yZXBsYWNlVGV4dChuZXh0U3RyaW5nKTtcblx0ICAgICAgLy8gbG9vcCB0aGUgZnVuY3Rpb25cblx0ICAgICAgdGhpcy50eXBld3JpdGUoY3VyU3RyaW5nLCBjdXJTdHJQb3MpO1xuXHQgICAgfVxuXHRcblx0ICAgIC8qKlxuXHQgICAgICogV2UncmUgZG9uZSB0eXBpbmcgYWxsIHN0cmluZ3Ncblx0ICAgICAqIEBwYXJhbSB7c3RyaW5nfSBjdXJTdHJpbmcgdGhlIGN1cnJlbnQgc3RyaW5nIGluIHRoZSBzdHJpbmdzIGFycmF5XG5cdCAgICAgKiBAcGFyYW0ge251bWJlcn0gY3VyU3RyUG9zIHRoZSBjdXJyZW50IHBvc2l0aW9uIGluIHRoZSBjdXJTdHJpbmdcblx0ICAgICAqIEBwcml2YXRlXG5cdCAgICAgKi9cblx0ICB9LCB7XG5cdCAgICBrZXk6ICdkb25lVHlwaW5nJyxcblx0ICAgIHZhbHVlOiBmdW5jdGlvbiBkb25lVHlwaW5nKGN1clN0cmluZywgY3VyU3RyUG9zKSB7XG5cdCAgICAgIHZhciBfdGhpczMgPSB0aGlzO1xuXHRcblx0ICAgICAgLy8gZmlyZXMgY2FsbGJhY2sgZnVuY3Rpb25cblx0ICAgICAgdGhpcy5vcHRpb25zLm9uU3RyaW5nVHlwZWQodGhpcy5hcnJheVBvcywgdGhpcyk7XG5cdCAgICAgIHRoaXMudG9nZ2xlQmxpbmtpbmcodHJ1ZSk7XG5cdCAgICAgIC8vIGlzIHRoaXMgdGhlIGZpbmFsIHN0cmluZ1xuXHQgICAgICBpZiAodGhpcy5hcnJheVBvcyA9PT0gdGhpcy5zdHJpbmdzLmxlbmd0aCAtIDEpIHtcblx0ICAgICAgICAvLyBjYWxsYmFjayB0aGF0IG9jY3VycyBvbiB0aGUgbGFzdCB0eXBlZCBzdHJpbmdcblx0ICAgICAgICB0aGlzLmNvbXBsZXRlKCk7XG5cdCAgICAgICAgLy8gcXVpdCBpZiB3ZSB3b250IGxvb3AgYmFja1xuXHQgICAgICAgIGlmICh0aGlzLmxvb3AgPT09IGZhbHNlIHx8IHRoaXMuY3VyTG9vcCA9PT0gdGhpcy5sb29wQ291bnQpIHtcblx0ICAgICAgICAgIHJldHVybjtcblx0ICAgICAgICB9XG5cdCAgICAgIH1cblx0ICAgICAgdGhpcy50aW1lb3V0ID0gc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG5cdCAgICAgICAgX3RoaXMzLmJhY2tzcGFjZShjdXJTdHJpbmcsIGN1clN0clBvcyk7XG5cdCAgICAgIH0sIHRoaXMuYmFja0RlbGF5KTtcblx0ICAgIH1cblx0XG5cdCAgICAvKipcblx0ICAgICAqIEJhY2tzcGFjZXMgMSBjaGFyYWN0ZXIgYXQgYSB0aW1lXG5cdCAgICAgKiBAcGFyYW0ge3N0cmluZ30gY3VyU3RyaW5nIHRoZSBjdXJyZW50IHN0cmluZyBpbiB0aGUgc3RyaW5ncyBhcnJheVxuXHQgICAgICogQHBhcmFtIHtudW1iZXJ9IGN1clN0clBvcyB0aGUgY3VycmVudCBwb3NpdGlvbiBpbiB0aGUgY3VyU3RyaW5nXG5cdCAgICAgKiBAcHJpdmF0ZVxuXHQgICAgICovXG5cdCAgfSwge1xuXHQgICAga2V5OiAnYmFja3NwYWNlJyxcblx0ICAgIHZhbHVlOiBmdW5jdGlvbiBiYWNrc3BhY2UoY3VyU3RyaW5nLCBjdXJTdHJQb3MpIHtcblx0ICAgICAgdmFyIF90aGlzNCA9IHRoaXM7XG5cdFxuXHQgICAgICBpZiAodGhpcy5wYXVzZS5zdGF0dXMgPT09IHRydWUpIHtcblx0ICAgICAgICB0aGlzLnNldFBhdXNlU3RhdHVzKGN1clN0cmluZywgY3VyU3RyUG9zLCB0cnVlKTtcblx0ICAgICAgICByZXR1cm47XG5cdCAgICAgIH1cblx0ICAgICAgaWYgKHRoaXMuZmFkZU91dCkgcmV0dXJuIHRoaXMuaW5pdEZhZGVPdXQoKTtcblx0XG5cdCAgICAgIHRoaXMudG9nZ2xlQmxpbmtpbmcoZmFsc2UpO1xuXHQgICAgICB2YXIgaHVtYW5pemUgPSB0aGlzLmh1bWFuaXplcih0aGlzLmJhY2tTcGVlZCk7XG5cdFxuXHQgICAgICB0aGlzLnRpbWVvdXQgPSBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcblx0ICAgICAgICBjdXJTdHJQb3MgPSBfaHRtbFBhcnNlckpzLmh0bWxQYXJzZXIuYmFja1NwYWNlSHRtbENoYXJzKGN1clN0cmluZywgY3VyU3RyUG9zLCBfdGhpczQpO1xuXHQgICAgICAgIC8vIHJlcGxhY2UgdGV4dCB3aXRoIGJhc2UgdGV4dCArIHR5cGVkIGNoYXJhY3RlcnNcblx0ICAgICAgICB2YXIgY3VyU3RyaW5nQXRQb3NpdGlvbiA9IGN1clN0cmluZy5zdWJzdHIoMCwgY3VyU3RyUG9zKTtcblx0ICAgICAgICBfdGhpczQucmVwbGFjZVRleHQoY3VyU3RyaW5nQXRQb3NpdGlvbik7XG5cdFxuXHQgICAgICAgIC8vIGlmIHNtYXJ0QmFjayBpcyBlbmFibGVkXG5cdCAgICAgICAgaWYgKF90aGlzNC5zbWFydEJhY2tzcGFjZSkge1xuXHQgICAgICAgICAgLy8gdGhlIHJlbWFpbmluZyBwYXJ0IG9mIHRoZSBjdXJyZW50IHN0cmluZyBpcyBlcXVhbCBvZiB0aGUgc2FtZSBwYXJ0IG9mIHRoZSBuZXcgc3RyaW5nXG5cdCAgICAgICAgICB2YXIgbmV4dFN0cmluZyA9IF90aGlzNC5zdHJpbmdzW190aGlzNC5hcnJheVBvcyArIDFdO1xuXHQgICAgICAgICAgaWYgKG5leHRTdHJpbmcgJiYgY3VyU3RyaW5nQXRQb3NpdGlvbiA9PT0gbmV4dFN0cmluZy5zdWJzdHIoMCwgY3VyU3RyUG9zKSkge1xuXHQgICAgICAgICAgICBfdGhpczQuc3RvcE51bSA9IGN1clN0clBvcztcblx0ICAgICAgICAgIH0gZWxzZSB7XG5cdCAgICAgICAgICAgIF90aGlzNC5zdG9wTnVtID0gMDtcblx0ICAgICAgICAgIH1cblx0ICAgICAgICB9XG5cdFxuXHQgICAgICAgIC8vIGlmIHRoZSBudW1iZXIgKGlkIG9mIGNoYXJhY3RlciBpbiBjdXJyZW50IHN0cmluZykgaXNcblx0ICAgICAgICAvLyBsZXNzIHRoYW4gdGhlIHN0b3AgbnVtYmVyLCBrZWVwIGdvaW5nXG5cdCAgICAgICAgaWYgKGN1clN0clBvcyA+IF90aGlzNC5zdG9wTnVtKSB7XG5cdCAgICAgICAgICAvLyBzdWJ0cmFjdCBjaGFyYWN0ZXJzIG9uZSBieSBvbmVcblx0ICAgICAgICAgIGN1clN0clBvcy0tO1xuXHQgICAgICAgICAgLy8gbG9vcCB0aGUgZnVuY3Rpb25cblx0ICAgICAgICAgIF90aGlzNC5iYWNrc3BhY2UoY3VyU3RyaW5nLCBjdXJTdHJQb3MpO1xuXHQgICAgICAgIH0gZWxzZSBpZiAoY3VyU3RyUG9zIDw9IF90aGlzNC5zdG9wTnVtKSB7XG5cdCAgICAgICAgICAvLyBpZiB0aGUgc3RvcCBudW1iZXIgaGFzIGJlZW4gcmVhY2hlZCwgaW5jcmVhc2Vcblx0ICAgICAgICAgIC8vIGFycmF5IHBvc2l0aW9uIHRvIG5leHQgc3RyaW5nXG5cdCAgICAgICAgICBfdGhpczQuYXJyYXlQb3MrKztcblx0ICAgICAgICAgIC8vIFdoZW4gbG9vcGluZywgYmVnaW4gYXQgdGhlIGJlZ2lubmluZyBhZnRlciBiYWNrc3BhY2UgY29tcGxldGVcblx0ICAgICAgICAgIGlmIChfdGhpczQuYXJyYXlQb3MgPT09IF90aGlzNC5zdHJpbmdzLmxlbmd0aCkge1xuXHQgICAgICAgICAgICBfdGhpczQuYXJyYXlQb3MgPSAwO1xuXHQgICAgICAgICAgICBfdGhpczQub3B0aW9ucy5vbkxhc3RTdHJpbmdCYWNrc3BhY2VkKCk7XG5cdCAgICAgICAgICAgIF90aGlzNC5zaHVmZmxlU3RyaW5nc0lmTmVlZGVkKCk7XG5cdCAgICAgICAgICAgIF90aGlzNC5iZWdpbigpO1xuXHQgICAgICAgICAgfSBlbHNlIHtcblx0ICAgICAgICAgICAgX3RoaXM0LnR5cGV3cml0ZShfdGhpczQuc3RyaW5nc1tfdGhpczQuc2VxdWVuY2VbX3RoaXM0LmFycmF5UG9zXV0sIGN1clN0clBvcyk7XG5cdCAgICAgICAgICB9XG5cdCAgICAgICAgfVxuXHQgICAgICAgIC8vIGh1bWFuaXplZCB2YWx1ZSBmb3IgdHlwaW5nXG5cdCAgICAgIH0sIGh1bWFuaXplKTtcblx0ICAgIH1cblx0XG5cdCAgICAvKipcblx0ICAgICAqIEZ1bGwgYW5pbWF0aW9uIGlzIGNvbXBsZXRlXG5cdCAgICAgKiBAcHJpdmF0ZVxuXHQgICAgICovXG5cdCAgfSwge1xuXHQgICAga2V5OiAnY29tcGxldGUnLFxuXHQgICAgdmFsdWU6IGZ1bmN0aW9uIGNvbXBsZXRlKCkge1xuXHQgICAgICB0aGlzLm9wdGlvbnMub25Db21wbGV0ZSh0aGlzKTtcblx0ICAgICAgaWYgKHRoaXMubG9vcCkge1xuXHQgICAgICAgIHRoaXMuY3VyTG9vcCsrO1xuXHQgICAgICB9IGVsc2Uge1xuXHQgICAgICAgIHRoaXMudHlwaW5nQ29tcGxldGUgPSB0cnVlO1xuXHQgICAgICB9XG5cdCAgICB9XG5cdFxuXHQgICAgLyoqXG5cdCAgICAgKiBIYXMgdGhlIHR5cGluZyBiZWVuIHN0b3BwZWRcblx0ICAgICAqIEBwYXJhbSB7c3RyaW5nfSBjdXJTdHJpbmcgdGhlIGN1cnJlbnQgc3RyaW5nIGluIHRoZSBzdHJpbmdzIGFycmF5XG5cdCAgICAgKiBAcGFyYW0ge251bWJlcn0gY3VyU3RyUG9zIHRoZSBjdXJyZW50IHBvc2l0aW9uIGluIHRoZSBjdXJTdHJpbmdcblx0ICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gaXNUeXBpbmdcblx0ICAgICAqIEBwcml2YXRlXG5cdCAgICAgKi9cblx0ICB9LCB7XG5cdCAgICBrZXk6ICdzZXRQYXVzZVN0YXR1cycsXG5cdCAgICB2YWx1ZTogZnVuY3Rpb24gc2V0UGF1c2VTdGF0dXMoY3VyU3RyaW5nLCBjdXJTdHJQb3MsIGlzVHlwaW5nKSB7XG5cdCAgICAgIHRoaXMucGF1c2UudHlwZXdyaXRlID0gaXNUeXBpbmc7XG5cdCAgICAgIHRoaXMucGF1c2UuY3VyU3RyaW5nID0gY3VyU3RyaW5nO1xuXHQgICAgICB0aGlzLnBhdXNlLmN1clN0clBvcyA9IGN1clN0clBvcztcblx0ICAgIH1cblx0XG5cdCAgICAvKipcblx0ICAgICAqIFRvZ2dsZSB0aGUgYmxpbmtpbmcgY3Vyc29yXG5cdCAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IGlzQmxpbmtpbmdcblx0ICAgICAqIEBwcml2YXRlXG5cdCAgICAgKi9cblx0ICB9LCB7XG5cdCAgICBrZXk6ICd0b2dnbGVCbGlua2luZycsXG5cdCAgICB2YWx1ZTogZnVuY3Rpb24gdG9nZ2xlQmxpbmtpbmcoaXNCbGlua2luZykge1xuXHQgICAgICBpZiAoIXRoaXMuY3Vyc29yKSByZXR1cm47XG5cdCAgICAgIC8vIGlmIGluIHBhdXNlZCBzdGF0ZSwgZG9uJ3QgdG9nZ2xlIGJsaW5raW5nIGEgMm5kIHRpbWVcblx0ICAgICAgaWYgKHRoaXMucGF1c2Uuc3RhdHVzKSByZXR1cm47XG5cdCAgICAgIGlmICh0aGlzLmN1cnNvckJsaW5raW5nID09PSBpc0JsaW5raW5nKSByZXR1cm47XG5cdCAgICAgIHRoaXMuY3Vyc29yQmxpbmtpbmcgPSBpc0JsaW5raW5nO1xuXHQgICAgICBpZiAoaXNCbGlua2luZykge1xuXHQgICAgICAgIHRoaXMuY3Vyc29yLmNsYXNzTGlzdC5hZGQoJ3R5cGVkLWN1cnNvci0tYmxpbmsnKTtcblx0ICAgICAgfSBlbHNlIHtcblx0ICAgICAgICB0aGlzLmN1cnNvci5jbGFzc0xpc3QucmVtb3ZlKCd0eXBlZC1jdXJzb3ItLWJsaW5rJyk7XG5cdCAgICAgIH1cblx0ICAgIH1cblx0XG5cdCAgICAvKipcblx0ICAgICAqIFNwZWVkIGluIE1TIHRvIHR5cGVcblx0ICAgICAqIEBwYXJhbSB7bnVtYmVyfSBzcGVlZFxuXHQgICAgICogQHByaXZhdGVcblx0ICAgICAqL1xuXHQgIH0sIHtcblx0ICAgIGtleTogJ2h1bWFuaXplcicsXG5cdCAgICB2YWx1ZTogZnVuY3Rpb24gaHVtYW5pemVyKHNwZWVkKSB7XG5cdCAgICAgIHJldHVybiBNYXRoLnJvdW5kKE1hdGgucmFuZG9tKCkgKiBzcGVlZCAvIDIpICsgc3BlZWQ7XG5cdCAgICB9XG5cdFxuXHQgICAgLyoqXG5cdCAgICAgKiBTaHVmZmxlIHRoZSBzZXF1ZW5jZSBvZiB0aGUgc3RyaW5ncyBhcnJheVxuXHQgICAgICogQHByaXZhdGVcblx0ICAgICAqL1xuXHQgIH0sIHtcblx0ICAgIGtleTogJ3NodWZmbGVTdHJpbmdzSWZOZWVkZWQnLFxuXHQgICAgdmFsdWU6IGZ1bmN0aW9uIHNodWZmbGVTdHJpbmdzSWZOZWVkZWQoKSB7XG5cdCAgICAgIGlmICghdGhpcy5zaHVmZmxlKSByZXR1cm47XG5cdCAgICAgIHRoaXMuc2VxdWVuY2UgPSB0aGlzLnNlcXVlbmNlLnNvcnQoZnVuY3Rpb24gKCkge1xuXHQgICAgICAgIHJldHVybiBNYXRoLnJhbmRvbSgpIC0gMC41O1xuXHQgICAgICB9KTtcblx0ICAgIH1cblx0XG5cdCAgICAvKipcblx0ICAgICAqIEFkZHMgYSBDU1MgY2xhc3MgdG8gZmFkZSBvdXQgY3VycmVudCBzdHJpbmdcblx0ICAgICAqIEBwcml2YXRlXG5cdCAgICAgKi9cblx0ICB9LCB7XG5cdCAgICBrZXk6ICdpbml0RmFkZU91dCcsXG5cdCAgICB2YWx1ZTogZnVuY3Rpb24gaW5pdEZhZGVPdXQoKSB7XG5cdCAgICAgIHZhciBfdGhpczUgPSB0aGlzO1xuXHRcblx0ICAgICAgdGhpcy5lbC5jbGFzc05hbWUgKz0gJyAnICsgdGhpcy5mYWRlT3V0Q2xhc3M7XG5cdCAgICAgIGlmICh0aGlzLmN1cnNvcikgdGhpcy5jdXJzb3IuY2xhc3NOYW1lICs9ICcgJyArIHRoaXMuZmFkZU91dENsYXNzO1xuXHQgICAgICByZXR1cm4gc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG5cdCAgICAgICAgX3RoaXM1LmFycmF5UG9zKys7XG5cdCAgICAgICAgX3RoaXM1LnJlcGxhY2VUZXh0KCcnKTtcblx0XG5cdCAgICAgICAgLy8gUmVzZXRzIGN1cnJlbnQgc3RyaW5nIGlmIGVuZCBvZiBsb29wIHJlYWNoZWRcblx0ICAgICAgICBpZiAoX3RoaXM1LnN0cmluZ3MubGVuZ3RoID4gX3RoaXM1LmFycmF5UG9zKSB7XG5cdCAgICAgICAgICBfdGhpczUudHlwZXdyaXRlKF90aGlzNS5zdHJpbmdzW190aGlzNS5zZXF1ZW5jZVtfdGhpczUuYXJyYXlQb3NdXSwgMCk7XG5cdCAgICAgICAgfSBlbHNlIHtcblx0ICAgICAgICAgIF90aGlzNS50eXBld3JpdGUoX3RoaXM1LnN0cmluZ3NbMF0sIDApO1xuXHQgICAgICAgICAgX3RoaXM1LmFycmF5UG9zID0gMDtcblx0ICAgICAgICB9XG5cdCAgICAgIH0sIHRoaXMuZmFkZU91dERlbGF5KTtcblx0ICAgIH1cblx0XG5cdCAgICAvKipcblx0ICAgICAqIFJlcGxhY2VzIGN1cnJlbnQgdGV4dCBpbiB0aGUgSFRNTCBlbGVtZW50XG5cdCAgICAgKiBkZXBlbmRpbmcgb24gZWxlbWVudCB0eXBlXG5cdCAgICAgKiBAcGFyYW0ge3N0cmluZ30gc3RyXG5cdCAgICAgKiBAcHJpdmF0ZVxuXHQgICAgICovXG5cdCAgfSwge1xuXHQgICAga2V5OiAncmVwbGFjZVRleHQnLFxuXHQgICAgdmFsdWU6IGZ1bmN0aW9uIHJlcGxhY2VUZXh0KHN0cikge1xuXHQgICAgICBpZiAodGhpcy5hdHRyKSB7XG5cdCAgICAgICAgdGhpcy5lbC5zZXRBdHRyaWJ1dGUodGhpcy5hdHRyLCBzdHIpO1xuXHQgICAgICB9IGVsc2Uge1xuXHQgICAgICAgIGlmICh0aGlzLmlzSW5wdXQpIHtcblx0ICAgICAgICAgIHRoaXMuZWwudmFsdWUgPSBzdHI7XG5cdCAgICAgICAgfSBlbHNlIGlmICh0aGlzLmNvbnRlbnRUeXBlID09PSAnaHRtbCcpIHtcblx0ICAgICAgICAgIHRoaXMuZWwuaW5uZXJIVE1MID0gc3RyO1xuXHQgICAgICAgIH0gZWxzZSB7XG5cdCAgICAgICAgICB0aGlzLmVsLnRleHRDb250ZW50ID0gc3RyO1xuXHQgICAgICAgIH1cblx0ICAgICAgfVxuXHQgICAgfVxuXHRcblx0ICAgIC8qKlxuXHQgICAgICogSWYgdXNpbmcgaW5wdXQgZWxlbWVudHMsIGJpbmQgZm9jdXMgaW4gb3JkZXIgdG9cblx0ICAgICAqIHN0YXJ0IGFuZCBzdG9wIHRoZSBhbmltYXRpb25cblx0ICAgICAqIEBwcml2YXRlXG5cdCAgICAgKi9cblx0ICB9LCB7XG5cdCAgICBrZXk6ICdiaW5kRm9jdXNFdmVudHMnLFxuXHQgICAgdmFsdWU6IGZ1bmN0aW9uIGJpbmRGb2N1c0V2ZW50cygpIHtcblx0ICAgICAgdmFyIF90aGlzNiA9IHRoaXM7XG5cdFxuXHQgICAgICBpZiAoIXRoaXMuaXNJbnB1dCkgcmV0dXJuO1xuXHQgICAgICB0aGlzLmVsLmFkZEV2ZW50TGlzdGVuZXIoJ2ZvY3VzJywgZnVuY3Rpb24gKGUpIHtcblx0ICAgICAgICBfdGhpczYuc3RvcCgpO1xuXHQgICAgICB9KTtcblx0ICAgICAgdGhpcy5lbC5hZGRFdmVudExpc3RlbmVyKCdibHVyJywgZnVuY3Rpb24gKGUpIHtcblx0ICAgICAgICBpZiAoX3RoaXM2LmVsLnZhbHVlICYmIF90aGlzNi5lbC52YWx1ZS5sZW5ndGggIT09IDApIHtcblx0ICAgICAgICAgIHJldHVybjtcblx0ICAgICAgICB9XG5cdCAgICAgICAgX3RoaXM2LnN0YXJ0KCk7XG5cdCAgICAgIH0pO1xuXHQgICAgfVxuXHRcblx0ICAgIC8qKlxuXHQgICAgICogT24gaW5pdCwgaW5zZXJ0IHRoZSBjdXJzb3IgZWxlbWVudFxuXHQgICAgICogQHByaXZhdGVcblx0ICAgICAqL1xuXHQgIH0sIHtcblx0ICAgIGtleTogJ2luc2VydEN1cnNvcicsXG5cdCAgICB2YWx1ZTogZnVuY3Rpb24gaW5zZXJ0Q3Vyc29yKCkge1xuXHQgICAgICBpZiAoIXRoaXMuc2hvd0N1cnNvcikgcmV0dXJuO1xuXHQgICAgICBpZiAodGhpcy5jdXJzb3IpIHJldHVybjtcblx0ICAgICAgdGhpcy5jdXJzb3IgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7XG5cdCAgICAgIHRoaXMuY3Vyc29yLmNsYXNzTmFtZSA9ICd0eXBlZC1jdXJzb3InO1xuXHQgICAgICB0aGlzLmN1cnNvci5pbm5lckhUTUwgPSB0aGlzLmN1cnNvckNoYXI7XG5cdCAgICAgIHRoaXMuZWwucGFyZW50Tm9kZSAmJiB0aGlzLmVsLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHRoaXMuY3Vyc29yLCB0aGlzLmVsLm5leHRTaWJsaW5nKTtcblx0ICAgIH1cblx0ICB9XSk7XG5cdFxuXHQgIHJldHVybiBUeXBlZDtcblx0fSkoKTtcblx0XG5cdGV4cG9ydHNbJ2RlZmF1bHQnXSA9IFR5cGVkO1xuXHRtb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcblxuLyoqKi8gfSksXG4vKiAxICovXG4vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7XG5cblx0J3VzZSBzdHJpY3QnO1xuXHRcblx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsICdfX2VzTW9kdWxlJywge1xuXHQgIHZhbHVlOiB0cnVlXG5cdH0pO1xuXHRcblx0dmFyIF9leHRlbmRzID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbiAodGFyZ2V0KSB7IGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7IHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07IGZvciAodmFyIGtleSBpbiBzb3VyY2UpIHsgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2UsIGtleSkpIHsgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTsgfSB9IH0gcmV0dXJuIHRhcmdldDsgfTtcblx0XG5cdHZhciBfY3JlYXRlQ2xhc3MgPSAoZnVuY3Rpb24gKCkgeyBmdW5jdGlvbiBkZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCwgcHJvcHMpIHsgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9wcy5sZW5ndGg7IGkrKykgeyB2YXIgZGVzY3JpcHRvciA9IHByb3BzW2ldOyBkZXNjcmlwdG9yLmVudW1lcmFibGUgPSBkZXNjcmlwdG9yLmVudW1lcmFibGUgfHwgZmFsc2U7IGRlc2NyaXB0b3IuY29uZmlndXJhYmxlID0gdHJ1ZTsgaWYgKCd2YWx1ZScgaW4gZGVzY3JpcHRvcikgZGVzY3JpcHRvci53cml0YWJsZSA9IHRydWU7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGRlc2NyaXB0b3Iua2V5LCBkZXNjcmlwdG9yKTsgfSB9IHJldHVybiBmdW5jdGlvbiAoQ29uc3RydWN0b3IsIHByb3RvUHJvcHMsIHN0YXRpY1Byb3BzKSB7IGlmIChwcm90b1Byb3BzKSBkZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLnByb3RvdHlwZSwgcHJvdG9Qcm9wcyk7IGlmIChzdGF0aWNQcm9wcykgZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvciwgc3RhdGljUHJvcHMpOyByZXR1cm4gQ29uc3RydWN0b3I7IH07IH0pKCk7XG5cdFxuXHRmdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cdFxuXHRmdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblx0XG5cdHZhciBfZGVmYXVsdHNKcyA9IF9fd2VicGFja19yZXF1aXJlX18oMik7XG5cdFxuXHR2YXIgX2RlZmF1bHRzSnMyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfZGVmYXVsdHNKcyk7XG5cdFxuXHQvKipcblx0ICogSW5pdGlhbGl6ZSB0aGUgVHlwZWQgb2JqZWN0XG5cdCAqL1xuXHRcblx0dmFyIEluaXRpYWxpemVyID0gKGZ1bmN0aW9uICgpIHtcblx0ICBmdW5jdGlvbiBJbml0aWFsaXplcigpIHtcblx0ICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBJbml0aWFsaXplcik7XG5cdCAgfVxuXHRcblx0ICBfY3JlYXRlQ2xhc3MoSW5pdGlhbGl6ZXIsIFt7XG5cdCAgICBrZXk6ICdsb2FkJyxcblx0XG5cdCAgICAvKipcblx0ICAgICAqIExvYWQgdXAgZGVmYXVsdHMgJiBvcHRpb25zIG9uIHRoZSBUeXBlZCBpbnN0YW5jZVxuXHQgICAgICogQHBhcmFtIHtUeXBlZH0gc2VsZiBpbnN0YW5jZSBvZiBUeXBlZFxuXHQgICAgICogQHBhcmFtIHtvYmplY3R9IG9wdGlvbnMgb3B0aW9ucyBvYmplY3Rcblx0ICAgICAqIEBwYXJhbSB7c3RyaW5nfSBlbGVtZW50SWQgSFRNTCBlbGVtZW50IElEIF9PUl8gaW5zdGFuY2Ugb2YgSFRNTCBlbGVtZW50XG5cdCAgICAgKiBAcHJpdmF0ZVxuXHQgICAgICovXG5cdFxuXHQgICAgdmFsdWU6IGZ1bmN0aW9uIGxvYWQoc2VsZiwgb3B0aW9ucywgZWxlbWVudElkKSB7XG5cdCAgICAgIC8vIGNob3NlbiBlbGVtZW50IHRvIG1hbmlwdWxhdGUgdGV4dFxuXHQgICAgICBpZiAodHlwZW9mIGVsZW1lbnRJZCA9PT0gJ3N0cmluZycpIHtcblx0ICAgICAgICBzZWxmLmVsID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihlbGVtZW50SWQpO1xuXHQgICAgICB9IGVsc2Uge1xuXHQgICAgICAgIHNlbGYuZWwgPSBlbGVtZW50SWQ7XG5cdCAgICAgIH1cblx0XG5cdCAgICAgIHNlbGYub3B0aW9ucyA9IF9leHRlbmRzKHt9LCBfZGVmYXVsdHNKczJbJ2RlZmF1bHQnXSwgb3B0aW9ucyk7XG5cdFxuXHQgICAgICAvLyBhdHRyaWJ1dGUgdG8gdHlwZSBpbnRvXG5cdCAgICAgIHNlbGYuaXNJbnB1dCA9IHNlbGYuZWwudGFnTmFtZS50b0xvd2VyQ2FzZSgpID09PSAnaW5wdXQnO1xuXHQgICAgICBzZWxmLmF0dHIgPSBzZWxmLm9wdGlvbnMuYXR0cjtcblx0ICAgICAgc2VsZi5iaW5kSW5wdXRGb2N1c0V2ZW50cyA9IHNlbGYub3B0aW9ucy5iaW5kSW5wdXRGb2N1c0V2ZW50cztcblx0XG5cdCAgICAgIC8vIHNob3cgY3Vyc29yXG5cdCAgICAgIHNlbGYuc2hvd0N1cnNvciA9IHNlbGYuaXNJbnB1dCA/IGZhbHNlIDogc2VsZi5vcHRpb25zLnNob3dDdXJzb3I7XG5cdFxuXHQgICAgICAvLyBjdXN0b20gY3Vyc29yXG5cdCAgICAgIHNlbGYuY3Vyc29yQ2hhciA9IHNlbGYub3B0aW9ucy5jdXJzb3JDaGFyO1xuXHRcblx0ICAgICAgLy8gSXMgdGhlIGN1cnNvciBibGlua2luZ1xuXHQgICAgICBzZWxmLmN1cnNvckJsaW5raW5nID0gdHJ1ZTtcblx0XG5cdCAgICAgIC8vIHRleHQgY29udGVudCBvZiBlbGVtZW50XG5cdCAgICAgIHNlbGYuZWxDb250ZW50ID0gc2VsZi5hdHRyID8gc2VsZi5lbC5nZXRBdHRyaWJ1dGUoc2VsZi5hdHRyKSA6IHNlbGYuZWwudGV4dENvbnRlbnQ7XG5cdFxuXHQgICAgICAvLyBodG1sIG9yIHBsYWluIHRleHRcblx0ICAgICAgc2VsZi5jb250ZW50VHlwZSA9IHNlbGYub3B0aW9ucy5jb250ZW50VHlwZTtcblx0XG5cdCAgICAgIC8vIHR5cGluZyBzcGVlZFxuXHQgICAgICBzZWxmLnR5cGVTcGVlZCA9IHNlbGYub3B0aW9ucy50eXBlU3BlZWQ7XG5cdFxuXHQgICAgICAvLyBhZGQgYSBkZWxheSBiZWZvcmUgdHlwaW5nIHN0YXJ0c1xuXHQgICAgICBzZWxmLnN0YXJ0RGVsYXkgPSBzZWxmLm9wdGlvbnMuc3RhcnREZWxheTtcblx0XG5cdCAgICAgIC8vIGJhY2tzcGFjaW5nIHNwZWVkXG5cdCAgICAgIHNlbGYuYmFja1NwZWVkID0gc2VsZi5vcHRpb25zLmJhY2tTcGVlZDtcblx0XG5cdCAgICAgIC8vIG9ubHkgYmFja3NwYWNlIHdoYXQgZG9lc24ndCBtYXRjaCB0aGUgcHJldmlvdXMgc3RyaW5nXG5cdCAgICAgIHNlbGYuc21hcnRCYWNrc3BhY2UgPSBzZWxmLm9wdGlvbnMuc21hcnRCYWNrc3BhY2U7XG5cdFxuXHQgICAgICAvLyBhbW91bnQgb2YgdGltZSB0byB3YWl0IGJlZm9yZSBiYWNrc3BhY2luZ1xuXHQgICAgICBzZWxmLmJhY2tEZWxheSA9IHNlbGYub3B0aW9ucy5iYWNrRGVsYXk7XG5cdFxuXHQgICAgICAvLyBGYWRlIG91dCBpbnN0ZWFkIG9mIGJhY2tzcGFjZVxuXHQgICAgICBzZWxmLmZhZGVPdXQgPSBzZWxmLm9wdGlvbnMuZmFkZU91dDtcblx0ICAgICAgc2VsZi5mYWRlT3V0Q2xhc3MgPSBzZWxmLm9wdGlvbnMuZmFkZU91dENsYXNzO1xuXHQgICAgICBzZWxmLmZhZGVPdXREZWxheSA9IHNlbGYub3B0aW9ucy5mYWRlT3V0RGVsYXk7XG5cdFxuXHQgICAgICAvLyB2YXJpYWJsZSB0byBjaGVjayB3aGV0aGVyIHR5cGluZyBpcyBjdXJyZW50bHkgcGF1c2VkXG5cdCAgICAgIHNlbGYuaXNQYXVzZWQgPSBmYWxzZTtcblx0XG5cdCAgICAgIC8vIGlucHV0IHN0cmluZ3Mgb2YgdGV4dFxuXHQgICAgICBzZWxmLnN0cmluZ3MgPSBzZWxmLm9wdGlvbnMuc3RyaW5ncy5tYXAoZnVuY3Rpb24gKHMpIHtcblx0ICAgICAgICByZXR1cm4gcy50cmltKCk7XG5cdCAgICAgIH0pO1xuXHRcblx0ICAgICAgLy8gZGl2IGNvbnRhaW5pbmcgc3RyaW5nc1xuXHQgICAgICBpZiAodHlwZW9mIHNlbGYub3B0aW9ucy5zdHJpbmdzRWxlbWVudCA9PT0gJ3N0cmluZycpIHtcblx0ICAgICAgICBzZWxmLnN0cmluZ3NFbGVtZW50ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihzZWxmLm9wdGlvbnMuc3RyaW5nc0VsZW1lbnQpO1xuXHQgICAgICB9IGVsc2Uge1xuXHQgICAgICAgIHNlbGYuc3RyaW5nc0VsZW1lbnQgPSBzZWxmLm9wdGlvbnMuc3RyaW5nc0VsZW1lbnQ7XG5cdCAgICAgIH1cblx0XG5cdCAgICAgIGlmIChzZWxmLnN0cmluZ3NFbGVtZW50KSB7XG5cdCAgICAgICAgc2VsZi5zdHJpbmdzID0gW107XG5cdCAgICAgICAgc2VsZi5zdHJpbmdzRWxlbWVudC5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuXHQgICAgICAgIHZhciBzdHJpbmdzID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmFwcGx5KHNlbGYuc3RyaW5nc0VsZW1lbnQuY2hpbGRyZW4pO1xuXHQgICAgICAgIHZhciBzdHJpbmdzTGVuZ3RoID0gc3RyaW5ncy5sZW5ndGg7XG5cdFxuXHQgICAgICAgIGlmIChzdHJpbmdzTGVuZ3RoKSB7XG5cdCAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHN0cmluZ3NMZW5ndGg7IGkgKz0gMSkge1xuXHQgICAgICAgICAgICB2YXIgc3RyaW5nRWwgPSBzdHJpbmdzW2ldO1xuXHQgICAgICAgICAgICBzZWxmLnN0cmluZ3MucHVzaChzdHJpbmdFbC5pbm5lckhUTUwudHJpbSgpKTtcblx0ICAgICAgICAgIH1cblx0ICAgICAgICB9XG5cdCAgICAgIH1cblx0XG5cdCAgICAgIC8vIGNoYXJhY3RlciBudW1iZXIgcG9zaXRpb24gb2YgY3VycmVudCBzdHJpbmdcblx0ICAgICAgc2VsZi5zdHJQb3MgPSAwO1xuXHRcblx0ICAgICAgLy8gY3VycmVudCBhcnJheSBwb3NpdGlvblxuXHQgICAgICBzZWxmLmFycmF5UG9zID0gMDtcblx0XG5cdCAgICAgIC8vIGluZGV4IG9mIHN0cmluZyB0byBzdG9wIGJhY2tzcGFjaW5nIG9uXG5cdCAgICAgIHNlbGYuc3RvcE51bSA9IDA7XG5cdFxuXHQgICAgICAvLyBMb29waW5nIGxvZ2ljXG5cdCAgICAgIHNlbGYubG9vcCA9IHNlbGYub3B0aW9ucy5sb29wO1xuXHQgICAgICBzZWxmLmxvb3BDb3VudCA9IHNlbGYub3B0aW9ucy5sb29wQ291bnQ7XG5cdCAgICAgIHNlbGYuY3VyTG9vcCA9IDA7XG5cdFxuXHQgICAgICAvLyBzaHVmZmxlIHRoZSBzdHJpbmdzXG5cdCAgICAgIHNlbGYuc2h1ZmZsZSA9IHNlbGYub3B0aW9ucy5zaHVmZmxlO1xuXHQgICAgICAvLyB0aGUgb3JkZXIgb2Ygc3RyaW5nc1xuXHQgICAgICBzZWxmLnNlcXVlbmNlID0gW107XG5cdFxuXHQgICAgICBzZWxmLnBhdXNlID0ge1xuXHQgICAgICAgIHN0YXR1czogZmFsc2UsXG5cdCAgICAgICAgdHlwZXdyaXRlOiB0cnVlLFxuXHQgICAgICAgIGN1clN0cmluZzogJycsXG5cdCAgICAgICAgY3VyU3RyUG9zOiAwXG5cdCAgICAgIH07XG5cdFxuXHQgICAgICAvLyBXaGVuIHRoZSB0eXBpbmcgaXMgY29tcGxldGUgKHdoZW4gbm90IGxvb3BlZClcblx0ICAgICAgc2VsZi50eXBpbmdDb21wbGV0ZSA9IGZhbHNlO1xuXHRcblx0ICAgICAgLy8gU2V0IHRoZSBvcmRlciBpbiB3aGljaCB0aGUgc3RyaW5ncyBhcmUgdHlwZWRcblx0ICAgICAgZm9yICh2YXIgaSBpbiBzZWxmLnN0cmluZ3MpIHtcblx0ICAgICAgICBzZWxmLnNlcXVlbmNlW2ldID0gaTtcblx0ICAgICAgfVxuXHRcblx0ICAgICAgLy8gSWYgdGhlcmUgaXMgc29tZSB0ZXh0IGluIHRoZSBlbGVtZW50XG5cdCAgICAgIHNlbGYuY3VycmVudEVsQ29udGVudCA9IHRoaXMuZ2V0Q3VycmVudEVsQ29udGVudChzZWxmKTtcblx0XG5cdCAgICAgIHNlbGYuYXV0b0luc2VydENzcyA9IHNlbGYub3B0aW9ucy5hdXRvSW5zZXJ0Q3NzO1xuXHRcblx0ICAgICAgdGhpcy5hcHBlbmRBbmltYXRpb25Dc3Moc2VsZik7XG5cdCAgICB9XG5cdCAgfSwge1xuXHQgICAga2V5OiAnZ2V0Q3VycmVudEVsQ29udGVudCcsXG5cdCAgICB2YWx1ZTogZnVuY3Rpb24gZ2V0Q3VycmVudEVsQ29udGVudChzZWxmKSB7XG5cdCAgICAgIHZhciBlbENvbnRlbnQgPSAnJztcblx0ICAgICAgaWYgKHNlbGYuYXR0cikge1xuXHQgICAgICAgIGVsQ29udGVudCA9IHNlbGYuZWwuZ2V0QXR0cmlidXRlKHNlbGYuYXR0cik7XG5cdCAgICAgIH0gZWxzZSBpZiAoc2VsZi5pc0lucHV0KSB7XG5cdCAgICAgICAgZWxDb250ZW50ID0gc2VsZi5lbC52YWx1ZTtcblx0ICAgICAgfSBlbHNlIGlmIChzZWxmLmNvbnRlbnRUeXBlID09PSAnaHRtbCcpIHtcblx0ICAgICAgICBlbENvbnRlbnQgPSBzZWxmLmVsLmlubmVySFRNTDtcblx0ICAgICAgfSBlbHNlIHtcblx0ICAgICAgICBlbENvbnRlbnQgPSBzZWxmLmVsLnRleHRDb250ZW50O1xuXHQgICAgICB9XG5cdCAgICAgIHJldHVybiBlbENvbnRlbnQ7XG5cdCAgICB9XG5cdCAgfSwge1xuXHQgICAga2V5OiAnYXBwZW5kQW5pbWF0aW9uQ3NzJyxcblx0ICAgIHZhbHVlOiBmdW5jdGlvbiBhcHBlbmRBbmltYXRpb25Dc3Moc2VsZikge1xuXHQgICAgICB2YXIgY3NzRGF0YU5hbWUgPSAnZGF0YS10eXBlZC1qcy1jc3MnO1xuXHQgICAgICBpZiAoIXNlbGYuYXV0b0luc2VydENzcykge1xuXHQgICAgICAgIHJldHVybjtcblx0ICAgICAgfVxuXHQgICAgICBpZiAoIXNlbGYuc2hvd0N1cnNvciAmJiAhc2VsZi5mYWRlT3V0KSB7XG5cdCAgICAgICAgcmV0dXJuO1xuXHQgICAgICB9XG5cdCAgICAgIGlmIChkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdbJyArIGNzc0RhdGFOYW1lICsgJ10nKSkge1xuXHQgICAgICAgIHJldHVybjtcblx0ICAgICAgfVxuXHRcblx0ICAgICAgdmFyIGNzcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3N0eWxlJyk7XG5cdCAgICAgIGNzcy50eXBlID0gJ3RleHQvY3NzJztcblx0ICAgICAgY3NzLnNldEF0dHJpYnV0ZShjc3NEYXRhTmFtZSwgdHJ1ZSk7XG5cdFxuXHQgICAgICB2YXIgaW5uZXJDc3MgPSAnJztcblx0ICAgICAgaWYgKHNlbGYuc2hvd0N1cnNvcikge1xuXHQgICAgICAgIGlubmVyQ3NzICs9ICdcXG4gICAgICAgIC50eXBlZC1jdXJzb3J7XFxuICAgICAgICAgIG9wYWNpdHk6IDE7XFxuICAgICAgICB9XFxuICAgICAgICAudHlwZWQtY3Vyc29yLnR5cGVkLWN1cnNvci0tYmxpbmt7XFxuICAgICAgICAgIGFuaW1hdGlvbjogdHlwZWRqc0JsaW5rIDAuN3MgaW5maW5pdGU7XFxuICAgICAgICAgIC13ZWJraXQtYW5pbWF0aW9uOiB0eXBlZGpzQmxpbmsgMC43cyBpbmZpbml0ZTtcXG4gICAgICAgICAgICAgICAgICBhbmltYXRpb246IHR5cGVkanNCbGluayAwLjdzIGluZmluaXRlO1xcbiAgICAgICAgfVxcbiAgICAgICAgQGtleWZyYW1lcyB0eXBlZGpzQmxpbmt7XFxuICAgICAgICAgIDUwJSB7IG9wYWNpdHk6IDAuMDsgfVxcbiAgICAgICAgfVxcbiAgICAgICAgQC13ZWJraXQta2V5ZnJhbWVzIHR5cGVkanNCbGlua3tcXG4gICAgICAgICAgMCUgeyBvcGFjaXR5OiAxOyB9XFxuICAgICAgICAgIDUwJSB7IG9wYWNpdHk6IDAuMDsgfVxcbiAgICAgICAgICAxMDAlIHsgb3BhY2l0eTogMTsgfVxcbiAgICAgICAgfVxcbiAgICAgICc7XG5cdCAgICAgIH1cblx0ICAgICAgaWYgKHNlbGYuZmFkZU91dCkge1xuXHQgICAgICAgIGlubmVyQ3NzICs9ICdcXG4gICAgICAgIC50eXBlZC1mYWRlLW91dHtcXG4gICAgICAgICAgb3BhY2l0eTogMDtcXG4gICAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAuMjVzO1xcbiAgICAgICAgfVxcbiAgICAgICAgLnR5cGVkLWN1cnNvci50eXBlZC1jdXJzb3ItLWJsaW5rLnR5cGVkLWZhZGUtb3V0e1xcbiAgICAgICAgICAtd2Via2l0LWFuaW1hdGlvbjogMDtcXG4gICAgICAgICAgYW5pbWF0aW9uOiAwO1xcbiAgICAgICAgfVxcbiAgICAgICc7XG5cdCAgICAgIH1cblx0ICAgICAgaWYgKGNzcy5sZW5ndGggPT09IDApIHtcblx0ICAgICAgICByZXR1cm47XG5cdCAgICAgIH1cblx0ICAgICAgY3NzLmlubmVySFRNTCA9IGlubmVyQ3NzO1xuXHQgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGNzcyk7XG5cdCAgICB9XG5cdCAgfV0pO1xuXHRcblx0ICByZXR1cm4gSW5pdGlhbGl6ZXI7XG5cdH0pKCk7XG5cdFxuXHRleHBvcnRzWydkZWZhdWx0J10gPSBJbml0aWFsaXplcjtcblx0dmFyIGluaXRpYWxpemVyID0gbmV3IEluaXRpYWxpemVyKCk7XG5cdGV4cG9ydHMuaW5pdGlhbGl6ZXIgPSBpbml0aWFsaXplcjtcblxuLyoqKi8gfSksXG4vKiAyICovXG4vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzKSB7XG5cblx0LyoqXG5cdCAqIERlZmF1bHRzICYgb3B0aW9uc1xuXHQgKiBAcmV0dXJucyB7b2JqZWN0fSBUeXBlZCBkZWZhdWx0cyAmIG9wdGlvbnNcblx0ICogQHB1YmxpY1xuXHQgKi9cblx0XG5cdCd1c2Ugc3RyaWN0Jztcblx0XG5cdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCAnX19lc01vZHVsZScsIHtcblx0ICB2YWx1ZTogdHJ1ZVxuXHR9KTtcblx0dmFyIGRlZmF1bHRzID0ge1xuXHQgIC8qKlxuXHQgICAqIEBwcm9wZXJ0eSB7YXJyYXl9IHN0cmluZ3Mgc3RyaW5ncyB0byBiZSB0eXBlZFxuXHQgICAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBzdHJpbmdzRWxlbWVudCBJRCBvZiBlbGVtZW50IGNvbnRhaW5pbmcgc3RyaW5nIGNoaWxkcmVuXG5cdCAgICovXG5cdCAgc3RyaW5nczogWydUaGVzZSBhcmUgdGhlIGRlZmF1bHQgdmFsdWVzLi4uJywgJ1lvdSBrbm93IHdoYXQgeW91IHNob3VsZCBkbz8nLCAnVXNlIHlvdXIgb3duIScsICdIYXZlIGEgZ3JlYXQgZGF5ISddLFxuXHQgIHN0cmluZ3NFbGVtZW50OiBudWxsLFxuXHRcblx0ICAvKipcblx0ICAgKiBAcHJvcGVydHkge251bWJlcn0gdHlwZVNwZWVkIHR5cGUgc3BlZWQgaW4gbWlsbGlzZWNvbmRzXG5cdCAgICovXG5cdCAgdHlwZVNwZWVkOiAwLFxuXHRcblx0ICAvKipcblx0ICAgKiBAcHJvcGVydHkge251bWJlcn0gc3RhcnREZWxheSB0aW1lIGJlZm9yZSB0eXBpbmcgc3RhcnRzIGluIG1pbGxpc2Vjb25kc1xuXHQgICAqL1xuXHQgIHN0YXJ0RGVsYXk6IDAsXG5cdFxuXHQgIC8qKlxuXHQgICAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBiYWNrU3BlZWQgYmFja3NwYWNpbmcgc3BlZWQgaW4gbWlsbGlzZWNvbmRzXG5cdCAgICovXG5cdCAgYmFja1NwZWVkOiAwLFxuXHRcblx0ICAvKipcblx0ICAgKiBAcHJvcGVydHkge2Jvb2xlYW59IHNtYXJ0QmFja3NwYWNlIG9ubHkgYmFja3NwYWNlIHdoYXQgZG9lc24ndCBtYXRjaCB0aGUgcHJldmlvdXMgc3RyaW5nXG5cdCAgICovXG5cdCAgc21hcnRCYWNrc3BhY2U6IHRydWUsXG5cdFxuXHQgIC8qKlxuXHQgICAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gc2h1ZmZsZSBzaHVmZmxlIHRoZSBzdHJpbmdzXG5cdCAgICovXG5cdCAgc2h1ZmZsZTogZmFsc2UsXG5cdFxuXHQgIC8qKlxuXHQgICAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBiYWNrRGVsYXkgdGltZSBiZWZvcmUgYmFja3NwYWNpbmcgaW4gbWlsbGlzZWNvbmRzXG5cdCAgICovXG5cdCAgYmFja0RlbGF5OiA3MDAsXG5cdFxuXHQgIC8qKlxuXHQgICAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gZmFkZU91dCBGYWRlIG91dCBpbnN0ZWFkIG9mIGJhY2tzcGFjZVxuXHQgICAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBmYWRlT3V0Q2xhc3MgY3NzIGNsYXNzIGZvciBmYWRlIGFuaW1hdGlvblxuXHQgICAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gZmFkZU91dERlbGF5IEZhZGUgb3V0IGRlbGF5IGluIG1pbGxpc2Vjb25kc1xuXHQgICAqL1xuXHQgIGZhZGVPdXQ6IGZhbHNlLFxuXHQgIGZhZGVPdXRDbGFzczogJ3R5cGVkLWZhZGUtb3V0Jyxcblx0ICBmYWRlT3V0RGVsYXk6IDUwMCxcblx0XG5cdCAgLyoqXG5cdCAgICogQHByb3BlcnR5IHtib29sZWFufSBsb29wIGxvb3Agc3RyaW5nc1xuXHQgICAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBsb29wQ291bnQgYW1vdW50IG9mIGxvb3BzXG5cdCAgICovXG5cdCAgbG9vcDogZmFsc2UsXG5cdCAgbG9vcENvdW50OiBJbmZpbml0eSxcblx0XG5cdCAgLyoqXG5cdCAgICogQHByb3BlcnR5IHtib29sZWFufSBzaG93Q3Vyc29yIHNob3cgY3Vyc29yXG5cdCAgICogQHByb3BlcnR5IHtzdHJpbmd9IGN1cnNvckNoYXIgY2hhcmFjdGVyIGZvciBjdXJzb3Jcblx0ICAgKiBAcHJvcGVydHkge2Jvb2xlYW59IGF1dG9JbnNlcnRDc3MgaW5zZXJ0IENTUyBmb3IgY3Vyc29yIGFuZCBmYWRlT3V0IGludG8gSFRNTCA8aGVhZD5cblx0ICAgKi9cblx0ICBzaG93Q3Vyc29yOiB0cnVlLFxuXHQgIGN1cnNvckNoYXI6ICd8Jyxcblx0ICBhdXRvSW5zZXJ0Q3NzOiB0cnVlLFxuXHRcblx0ICAvKipcblx0ICAgKiBAcHJvcGVydHkge3N0cmluZ30gYXR0ciBhdHRyaWJ1dGUgZm9yIHR5cGluZ1xuXHQgICAqIEV4OiBpbnB1dCBwbGFjZWhvbGRlciwgdmFsdWUsIG9yIGp1c3QgSFRNTCB0ZXh0XG5cdCAgICovXG5cdCAgYXR0cjogbnVsbCxcblx0XG5cdCAgLyoqXG5cdCAgICogQHByb3BlcnR5IHtib29sZWFufSBiaW5kSW5wdXRGb2N1c0V2ZW50cyBiaW5kIHRvIGZvY3VzIGFuZCBibHVyIGlmIGVsIGlzIHRleHQgaW5wdXRcblx0ICAgKi9cblx0ICBiaW5kSW5wdXRGb2N1c0V2ZW50czogZmFsc2UsXG5cdFxuXHQgIC8qKlxuXHQgICAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBjb250ZW50VHlwZSAnaHRtbCcgb3IgJ251bGwnIGZvciBwbGFpbnRleHRcblx0ICAgKi9cblx0ICBjb250ZW50VHlwZTogJ2h0bWwnLFxuXHRcblx0ICAvKipcblx0ICAgKiBBbGwgdHlwaW5nIGlzIGNvbXBsZXRlXG5cdCAgICogQHBhcmFtIHtUeXBlZH0gc2VsZlxuXHQgICAqL1xuXHQgIG9uQ29tcGxldGU6IGZ1bmN0aW9uIG9uQ29tcGxldGUoc2VsZikge30sXG5cdFxuXHQgIC8qKlxuXHQgICAqIEJlZm9yZSBlYWNoIHN0cmluZyBpcyB0eXBlZFxuXHQgICAqIEBwYXJhbSB7bnVtYmVyfSBhcnJheVBvc1xuXHQgICAqIEBwYXJhbSB7VHlwZWR9IHNlbGZcblx0ICAgKi9cblx0ICBwcmVTdHJpbmdUeXBlZDogZnVuY3Rpb24gcHJlU3RyaW5nVHlwZWQoYXJyYXlQb3MsIHNlbGYpIHt9LFxuXHRcblx0ICAvKipcblx0ICAgKiBBZnRlciBlYWNoIHN0cmluZyBpcyB0eXBlZFxuXHQgICAqIEBwYXJhbSB7bnVtYmVyfSBhcnJheVBvc1xuXHQgICAqIEBwYXJhbSB7VHlwZWR9IHNlbGZcblx0ICAgKi9cblx0ICBvblN0cmluZ1R5cGVkOiBmdW5jdGlvbiBvblN0cmluZ1R5cGVkKGFycmF5UG9zLCBzZWxmKSB7fSxcblx0XG5cdCAgLyoqXG5cdCAgICogRHVyaW5nIGxvb3BpbmcsIGFmdGVyIGxhc3Qgc3RyaW5nIGlzIHR5cGVkXG5cdCAgICogQHBhcmFtIHtUeXBlZH0gc2VsZlxuXHQgICAqL1xuXHQgIG9uTGFzdFN0cmluZ0JhY2tzcGFjZWQ6IGZ1bmN0aW9uIG9uTGFzdFN0cmluZ0JhY2tzcGFjZWQoc2VsZikge30sXG5cdFxuXHQgIC8qKlxuXHQgICAqIFR5cGluZyBoYXMgYmVlbiBzdG9wcGVkXG5cdCAgICogQHBhcmFtIHtudW1iZXJ9IGFycmF5UG9zXG5cdCAgICogQHBhcmFtIHtUeXBlZH0gc2VsZlxuXHQgICAqL1xuXHQgIG9uVHlwaW5nUGF1c2VkOiBmdW5jdGlvbiBvblR5cGluZ1BhdXNlZChhcnJheVBvcywgc2VsZikge30sXG5cdFxuXHQgIC8qKlxuXHQgICAqIFR5cGluZyBoYXMgYmVlbiBzdGFydGVkIGFmdGVyIGJlaW5nIHN0b3BwZWRcblx0ICAgKiBAcGFyYW0ge251bWJlcn0gYXJyYXlQb3Ncblx0ICAgKiBAcGFyYW0ge1R5cGVkfSBzZWxmXG5cdCAgICovXG5cdCAgb25UeXBpbmdSZXN1bWVkOiBmdW5jdGlvbiBvblR5cGluZ1Jlc3VtZWQoYXJyYXlQb3MsIHNlbGYpIHt9LFxuXHRcblx0ICAvKipcblx0ICAgKiBBZnRlciByZXNldFxuXHQgICAqIEBwYXJhbSB7VHlwZWR9IHNlbGZcblx0ICAgKi9cblx0ICBvblJlc2V0OiBmdW5jdGlvbiBvblJlc2V0KHNlbGYpIHt9LFxuXHRcblx0ICAvKipcblx0ICAgKiBBZnRlciBzdG9wXG5cdCAgICogQHBhcmFtIHtudW1iZXJ9IGFycmF5UG9zXG5cdCAgICogQHBhcmFtIHtUeXBlZH0gc2VsZlxuXHQgICAqL1xuXHQgIG9uU3RvcDogZnVuY3Rpb24gb25TdG9wKGFycmF5UG9zLCBzZWxmKSB7fSxcblx0XG5cdCAgLyoqXG5cdCAgICogQWZ0ZXIgc3RhcnRcblx0ICAgKiBAcGFyYW0ge251bWJlcn0gYXJyYXlQb3Ncblx0ICAgKiBAcGFyYW0ge1R5cGVkfSBzZWxmXG5cdCAgICovXG5cdCAgb25TdGFydDogZnVuY3Rpb24gb25TdGFydChhcnJheVBvcywgc2VsZikge30sXG5cdFxuXHQgIC8qKlxuXHQgICAqIEFmdGVyIGRlc3Ryb3lcblx0ICAgKiBAcGFyYW0ge1R5cGVkfSBzZWxmXG5cdCAgICovXG5cdCAgb25EZXN0cm95OiBmdW5jdGlvbiBvbkRlc3Ryb3koc2VsZikge31cblx0fTtcblx0XG5cdGV4cG9ydHNbJ2RlZmF1bHQnXSA9IGRlZmF1bHRzO1xuXHRtb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcblxuLyoqKi8gfSksXG4vKiAzICovXG4vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzKSB7XG5cblx0XG5cdC8qKlxuXHQgKiBUT0RPOiBUaGVzZSBtZXRob2RzIGNhbiBwcm9iYWJseSBiZSBjb21iaW5lZCBzb21laG93XG5cdCAqIFBhcnNlIEhUTUwgdGFncyAmIEhUTUwgQ2hhcmFjdGVyc1xuXHQgKi9cblx0XG5cdCd1c2Ugc3RyaWN0Jztcblx0XG5cdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCAnX19lc01vZHVsZScsIHtcblx0ICB2YWx1ZTogdHJ1ZVxuXHR9KTtcblx0XG5cdHZhciBfY3JlYXRlQ2xhc3MgPSAoZnVuY3Rpb24gKCkgeyBmdW5jdGlvbiBkZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCwgcHJvcHMpIHsgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9wcy5sZW5ndGg7IGkrKykgeyB2YXIgZGVzY3JpcHRvciA9IHByb3BzW2ldOyBkZXNjcmlwdG9yLmVudW1lcmFibGUgPSBkZXNjcmlwdG9yLmVudW1lcmFibGUgfHwgZmFsc2U7IGRlc2NyaXB0b3IuY29uZmlndXJhYmxlID0gdHJ1ZTsgaWYgKCd2YWx1ZScgaW4gZGVzY3JpcHRvcikgZGVzY3JpcHRvci53cml0YWJsZSA9IHRydWU7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGRlc2NyaXB0b3Iua2V5LCBkZXNjcmlwdG9yKTsgfSB9IHJldHVybiBmdW5jdGlvbiAoQ29uc3RydWN0b3IsIHByb3RvUHJvcHMsIHN0YXRpY1Byb3BzKSB7IGlmIChwcm90b1Byb3BzKSBkZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLnByb3RvdHlwZSwgcHJvdG9Qcm9wcyk7IGlmIChzdGF0aWNQcm9wcykgZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvciwgc3RhdGljUHJvcHMpOyByZXR1cm4gQ29uc3RydWN0b3I7IH07IH0pKCk7XG5cdFxuXHRmdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblx0XG5cdHZhciBIVE1MUGFyc2VyID0gKGZ1bmN0aW9uICgpIHtcblx0ICBmdW5jdGlvbiBIVE1MUGFyc2VyKCkge1xuXHQgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIEhUTUxQYXJzZXIpO1xuXHQgIH1cblx0XG5cdCAgX2NyZWF0ZUNsYXNzKEhUTUxQYXJzZXIsIFt7XG5cdCAgICBrZXk6ICd0eXBlSHRtbENoYXJzJyxcblx0XG5cdCAgICAvKipcblx0ICAgICAqIFR5cGUgSFRNTCB0YWdzICYgSFRNTCBDaGFyYWN0ZXJzXG5cdCAgICAgKiBAcGFyYW0ge3N0cmluZ30gY3VyU3RyaW5nIEN1cnJlbnQgc3RyaW5nXG5cdCAgICAgKiBAcGFyYW0ge251bWJlcn0gY3VyU3RyUG9zIFBvc2l0aW9uIGluIGN1cnJlbnQgc3RyaW5nXG5cdCAgICAgKiBAcGFyYW0ge1R5cGVkfSBzZWxmIGluc3RhbmNlIG9mIFR5cGVkXG5cdCAgICAgKiBAcmV0dXJucyB7bnVtYmVyfSBhIG5ldyBzdHJpbmcgcG9zaXRpb25cblx0ICAgICAqIEBwcml2YXRlXG5cdCAgICAgKi9cblx0XG5cdCAgICB2YWx1ZTogZnVuY3Rpb24gdHlwZUh0bWxDaGFycyhjdXJTdHJpbmcsIGN1clN0clBvcywgc2VsZikge1xuXHQgICAgICBpZiAoc2VsZi5jb250ZW50VHlwZSAhPT0gJ2h0bWwnKSByZXR1cm4gY3VyU3RyUG9zO1xuXHQgICAgICB2YXIgY3VyQ2hhciA9IGN1clN0cmluZy5zdWJzdHIoY3VyU3RyUG9zKS5jaGFyQXQoMCk7XG5cdCAgICAgIGlmIChjdXJDaGFyID09PSAnPCcgfHwgY3VyQ2hhciA9PT0gJyYnKSB7XG5cdCAgICAgICAgdmFyIGVuZFRhZyA9ICcnO1xuXHQgICAgICAgIGlmIChjdXJDaGFyID09PSAnPCcpIHtcblx0ICAgICAgICAgIGVuZFRhZyA9ICc+Jztcblx0ICAgICAgICB9IGVsc2Uge1xuXHQgICAgICAgICAgZW5kVGFnID0gJzsnO1xuXHQgICAgICAgIH1cblx0ICAgICAgICB3aGlsZSAoY3VyU3RyaW5nLnN1YnN0cihjdXJTdHJQb3MgKyAxKS5jaGFyQXQoMCkgIT09IGVuZFRhZykge1xuXHQgICAgICAgICAgY3VyU3RyUG9zKys7XG5cdCAgICAgICAgICBpZiAoY3VyU3RyUG9zICsgMSA+IGN1clN0cmluZy5sZW5ndGgpIHtcblx0ICAgICAgICAgICAgYnJlYWs7XG5cdCAgICAgICAgICB9XG5cdCAgICAgICAgfVxuXHQgICAgICAgIGN1clN0clBvcysrO1xuXHQgICAgICB9XG5cdCAgICAgIHJldHVybiBjdXJTdHJQb3M7XG5cdCAgICB9XG5cdFxuXHQgICAgLyoqXG5cdCAgICAgKiBCYWNrc3BhY2UgSFRNTCB0YWdzIGFuZCBIVE1MIENoYXJhY3RlcnNcblx0ICAgICAqIEBwYXJhbSB7c3RyaW5nfSBjdXJTdHJpbmcgQ3VycmVudCBzdHJpbmdcblx0ICAgICAqIEBwYXJhbSB7bnVtYmVyfSBjdXJTdHJQb3MgUG9zaXRpb24gaW4gY3VycmVudCBzdHJpbmdcblx0ICAgICAqIEBwYXJhbSB7VHlwZWR9IHNlbGYgaW5zdGFuY2Ugb2YgVHlwZWRcblx0ICAgICAqIEByZXR1cm5zIHtudW1iZXJ9IGEgbmV3IHN0cmluZyBwb3NpdGlvblxuXHQgICAgICogQHByaXZhdGVcblx0ICAgICAqL1xuXHQgIH0sIHtcblx0ICAgIGtleTogJ2JhY2tTcGFjZUh0bWxDaGFycycsXG5cdCAgICB2YWx1ZTogZnVuY3Rpb24gYmFja1NwYWNlSHRtbENoYXJzKGN1clN0cmluZywgY3VyU3RyUG9zLCBzZWxmKSB7XG5cdCAgICAgIGlmIChzZWxmLmNvbnRlbnRUeXBlICE9PSAnaHRtbCcpIHJldHVybiBjdXJTdHJQb3M7XG5cdCAgICAgIHZhciBjdXJDaGFyID0gY3VyU3RyaW5nLnN1YnN0cihjdXJTdHJQb3MpLmNoYXJBdCgwKTtcblx0ICAgICAgaWYgKGN1ckNoYXIgPT09ICc+JyB8fCBjdXJDaGFyID09PSAnOycpIHtcblx0ICAgICAgICB2YXIgZW5kVGFnID0gJyc7XG5cdCAgICAgICAgaWYgKGN1ckNoYXIgPT09ICc+Jykge1xuXHQgICAgICAgICAgZW5kVGFnID0gJzwnO1xuXHQgICAgICAgIH0gZWxzZSB7XG5cdCAgICAgICAgICBlbmRUYWcgPSAnJic7XG5cdCAgICAgICAgfVxuXHQgICAgICAgIHdoaWxlIChjdXJTdHJpbmcuc3Vic3RyKGN1clN0clBvcyAtIDEpLmNoYXJBdCgwKSAhPT0gZW5kVGFnKSB7XG5cdCAgICAgICAgICBjdXJTdHJQb3MtLTtcblx0ICAgICAgICAgIGlmIChjdXJTdHJQb3MgPCAwKSB7XG5cdCAgICAgICAgICAgIGJyZWFrO1xuXHQgICAgICAgICAgfVxuXHQgICAgICAgIH1cblx0ICAgICAgICBjdXJTdHJQb3MtLTtcblx0ICAgICAgfVxuXHQgICAgICByZXR1cm4gY3VyU3RyUG9zO1xuXHQgICAgfVxuXHQgIH1dKTtcblx0XG5cdCAgcmV0dXJuIEhUTUxQYXJzZXI7XG5cdH0pKCk7XG5cdFxuXHRleHBvcnRzWydkZWZhdWx0J10gPSBIVE1MUGFyc2VyO1xuXHR2YXIgaHRtbFBhcnNlciA9IG5ldyBIVE1MUGFyc2VyKCk7XG5cdGV4cG9ydHMuaHRtbFBhcnNlciA9IGh0bWxQYXJzZXI7XG5cbi8qKiovIH0pXG4vKioqKioqLyBdKVxufSk7XG47XG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vfi90eXBlZC5qcy9saWIvdHlwZWQuanMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///4\n"); - -/***/ }), -/* 5 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -eval("Object.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_typed_js__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_typed_js___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_typed_js__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__config_typed_component_config__ = __webpack_require__(2);\n//\n//\n//\n//\n//\n//\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: 'vue-typed-js',\n props: __WEBPACK_IMPORTED_MODULE_1__config_typed_component_config__[\"a\" /* props */],\n data: function data() {\n return {\n typedObj: null\n };\n },\n\n methods: {\n throwError: function throwError(message) {\n throw new TypeError(message);\n },\n initTypedJS: function initTypedJS() {\n var $typed = this.$refs.typedElement.querySelector('.typing');\n\n if (this.$slots.default.length > 1) {\n this.throwError('Just one child element allowed inside <' + this.$options.name + '> component.');\n } else if (this.$slots.default.length === 1) {\n var typedConfig = this.$props;\n typedConfig = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__config_typed_component_config__[\"b\" /* getEventHandlers */])(this, typedConfig);\n this.typedObj = new __WEBPACK_IMPORTED_MODULE_0_typed_js___default.a($typed, typedConfig);\n }\n }\n },\n mounted: function mounted() {\n this.initTypedJS();\n },\n destroyed: function destroyed() {\n this.typedObj.destroy();\n }\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vVnVlVHlwZWRKcy52dWU/MDVlOSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQU9BO0FBQ0E7O0FBRUE7QUFDQSxzQkFEQTtBQUVBLHNGQUZBO0FBR0EsTUFIQSxrQkFHQTtBQUNBO0FBQ0E7QUFEQTtBQUdBLEdBUEE7O0FBUUE7QUFDQTtBQUNBO0FBQ0EsS0FIQTtBQUlBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLE9BRkEsTUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFkQSxHQVJBO0FBd0JBLFNBeEJBLHFCQXdCQTtBQUNBO0FBQ0EsR0ExQkE7QUEyQkEsV0EzQkEsdUJBMkJBO0FBQ0E7QUFDQTtBQTdCQSIsImZpbGUiOiI1LmpzIiwic291cmNlc0NvbnRlbnQiOlsiPHRlbXBsYXRlPlxuICA8ZGl2IGNsYXNzPVwidHlwZWQtZWxlbWVudFwiIHJlZj1cInR5cGVkRWxlbWVudFwiPlxuICAgIDxzbG90Pjwvc2xvdD5cbiAgPC9kaXY+XG48L3RlbXBsYXRlPlxuXG48c2NyaXB0PlxuaW1wb3J0IFR5cGVkIGZyb20gJ3R5cGVkLmpzJ1xuaW1wb3J0IHsgcHJvcHMsIGdldEV2ZW50SGFuZGxlcnMgfSBmcm9tICcuLi9jb25maWcvdHlwZWQtY29tcG9uZW50LmNvbmZpZydcblxuZXhwb3J0IGRlZmF1bHQge1xuICBuYW1lOiAndnVlLXR5cGVkLWpzJyxcbiAgcHJvcHMsXG4gIGRhdGEgKCkge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlZE9iajogbnVsbCxcbiAgICB9XG4gIH0sXG4gIG1ldGhvZHM6IHtcbiAgICB0aHJvd0Vycm9yOiBmdW5jdGlvbiAobWVzc2FnZSkge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihtZXNzYWdlKVxuICAgIH0sXG4gICAgaW5pdFR5cGVkSlM6IGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0ICR0eXBlZCA9IHRoaXMuJHJlZnMudHlwZWRFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy50eXBpbmcnKVxuXG4gICAgICBpZiAodGhpcy4kc2xvdHMuZGVmYXVsdC5sZW5ndGggPiAxKSB7XG4gICAgICAgIHRoaXMudGhyb3dFcnJvcihgSnVzdCBvbmUgY2hpbGQgZWxlbWVudCBhbGxvd2VkIGluc2lkZSA8JHt0aGlzLiRvcHRpb25zLm5hbWV9PiBjb21wb25lbnQuYClcbiAgICAgIH0gZWxzZSBpZiAodGhpcy4kc2xvdHMuZGVmYXVsdC5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgbGV0IHR5cGVkQ29uZmlnID0gdGhpcy4kcHJvcHNcbiAgICAgICAgdHlwZWRDb25maWcgPSBnZXRFdmVudEhhbmRsZXJzKHRoaXMsIHR5cGVkQ29uZmlnKVxuICAgICAgICB0aGlzLnR5cGVkT2JqID0gbmV3IFR5cGVkKCR0eXBlZCwgdHlwZWRDb25maWcpXG4gICAgICB9XG4gICAgfSxcbiAgfSxcbiAgbW91bnRlZCAoKSB7XG4gICAgdGhpcy5pbml0VHlwZWRKUygpXG4gIH0sXG4gIGRlc3Ryb3llZCAoKSB7XG4gICAgdGhpcy50eXBlZE9iai5kZXN0cm95KClcbiAgfSxcbn1cbjwvc2NyaXB0PlxuXG48c3R5bGUgbGFuZz1cInNjc3NcIj5cbi50eXBlZC1lbGVtZW50IHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAudHlwZWQtY3Vyc29yIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIGFuaW1hdGlvbjogdHlwZWRqc0JsaW5rIDAuN3MgaW5maW5pdGU7XG4gIH1cbn1cblxuQGtleWZyYW1lcyB0eXBlZGpzQmxpbmt7XG4gIDUwJSB7IG9wYWNpdHk6IDAuMDsgfVxufVxuPC9zdHlsZT5cblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyBWdWVUeXBlZEpzLnZ1ZT8yYjM1NjFiMyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///5\n"); - -/***/ }), -/* 6 */ -/***/ (function(module, exports) { - -eval("module.exports = function (module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function () {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function get() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function get() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vKHdlYnBhY2spL2J1aWxkaW4vbW9kdWxlLmpzP2MzYzIiXSwibmFtZXMiOlsibW9kdWxlIiwiZXhwb3J0cyIsIndlYnBhY2tQb2x5ZmlsbCIsImRlcHJlY2F0ZSIsInBhdGhzIiwiY2hpbGRyZW4iLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImVudW1lcmFibGUiLCJnZXQiLCJsIiwiaSJdLCJtYXBwaW5ncyI6IkFBQUFBLE9BQU9DLE9BQVAsR0FBaUIsVUFBU0QsTUFBVCxFQUFpQjtBQUNqQyxLQUFHLENBQUNBLE9BQU9FLGVBQVgsRUFBNEI7QUFDM0JGLFNBQU9HLFNBQVAsR0FBbUIsWUFBVyxDQUFFLENBQWhDO0FBQ0FILFNBQU9JLEtBQVAsR0FBZSxFQUFmO0FBQ0E7QUFDQSxNQUFHLENBQUNKLE9BQU9LLFFBQVgsRUFBcUJMLE9BQU9LLFFBQVAsR0FBa0IsRUFBbEI7QUFDckJDLFNBQU9DLGNBQVAsQ0FBc0JQLE1BQXRCLEVBQThCLFFBQTlCLEVBQXdDO0FBQ3ZDUSxlQUFZLElBRDJCO0FBRXZDQyxRQUFLLGVBQVc7QUFDZixXQUFPVCxPQUFPVSxDQUFkO0FBQ0E7QUFKc0MsR0FBeEM7QUFNQUosU0FBT0MsY0FBUCxDQUFzQlAsTUFBdEIsRUFBOEIsSUFBOUIsRUFBb0M7QUFDbkNRLGVBQVksSUFEdUI7QUFFbkNDLFFBQUssZUFBVztBQUNmLFdBQU9ULE9BQU9XLENBQWQ7QUFDQTtBQUprQyxHQUFwQztBQU1BWCxTQUFPRSxlQUFQLEdBQXlCLENBQXpCO0FBQ0E7QUFDRCxRQUFPRixNQUFQO0FBQ0EsQ0FyQkQiLCJmaWxlIjoiNi5qcyIsInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24obW9kdWxlKSB7XHJcblx0aWYoIW1vZHVsZS53ZWJwYWNrUG9seWZpbGwpIHtcclxuXHRcdG1vZHVsZS5kZXByZWNhdGUgPSBmdW5jdGlvbigpIHt9O1xyXG5cdFx0bW9kdWxlLnBhdGhzID0gW107XHJcblx0XHQvLyBtb2R1bGUucGFyZW50ID0gdW5kZWZpbmVkIGJ5IGRlZmF1bHRcclxuXHRcdGlmKCFtb2R1bGUuY2hpbGRyZW4pIG1vZHVsZS5jaGlsZHJlbiA9IFtdO1xyXG5cdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KG1vZHVsZSwgXCJsb2FkZWRcIiwge1xyXG5cdFx0XHRlbnVtZXJhYmxlOiB0cnVlLFxyXG5cdFx0XHRnZXQ6IGZ1bmN0aW9uKCkge1xyXG5cdFx0XHRcdHJldHVybiBtb2R1bGUubDtcclxuXHRcdFx0fVxyXG5cdFx0fSk7XHJcblx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkobW9kdWxlLCBcImlkXCIsIHtcclxuXHRcdFx0ZW51bWVyYWJsZTogdHJ1ZSxcclxuXHRcdFx0Z2V0OiBmdW5jdGlvbigpIHtcclxuXHRcdFx0XHRyZXR1cm4gbW9kdWxlLmk7XHJcblx0XHRcdH1cclxuXHRcdH0pO1xyXG5cdFx0bW9kdWxlLndlYnBhY2tQb2x5ZmlsbCA9IDE7XHJcblx0fVxyXG5cdHJldHVybiBtb2R1bGU7XHJcbn07XHJcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAod2VicGFjaykvYnVpbGRpbi9tb2R1bGUuanMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///6\n"); - -/***/ }), -/* 7 */ -/***/ (function(module, exports) { - -eval("// removed by extract-text-webpack-plugin//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9WdWVUeXBlZEpzLnZ1ZT9iYzY5Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIiwiZmlsZSI6IjcuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyByZW1vdmVkIGJ5IGV4dHJhY3QtdGV4dC13ZWJwYWNrLXBsdWdpblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vfi9leHRyYWN0LXRleHQtd2VicGFjay1wbHVnaW4vbG9hZGVyLmpzP3tcIm9taXRcIjowLFwicmVtb3ZlXCI6dHJ1ZX0hLi9+L2Nzcy1sb2FkZXIhLi9+L3Z1ZS1sb2FkZXIvbGliL3N0eWxlLXJld3JpdGVyLmpzP2lkPWRhdGEtdi0xZGU0NjQyZCEuL34vc2Fzcy1sb2FkZXIhLi9+L3Z1ZS1sb2FkZXIvbGliL3NlbGVjdG9yLmpzP3R5cGU9c3R5bGVzJmluZGV4PTAhLi9zcmMvY29tcG9uZW50cy9WdWVUeXBlZEpzLnZ1ZVxuLy8gbW9kdWxlIGlkID0gN1xuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///7\n"); - -/***/ }), -/* 8 */ -/***/ (function(module, exports) { - -eval("module.exports = function normalizeComponent (\n rawScriptExports,\n compiledTemplate,\n scopeId,\n cssModules\n) {\n var esModule\n var scriptExports = rawScriptExports = rawScriptExports || {}\n\n // ES6 modules interop\n var type = typeof rawScriptExports.default\n if (type === 'object' || type === 'function') {\n esModule = rawScriptExports\n scriptExports = rawScriptExports.default\n }\n\n // Vue.extend constructor export interop\n var options = typeof scriptExports === 'function'\n ? scriptExports.options\n : scriptExports\n\n // render functions\n if (compiledTemplate) {\n options.render = compiledTemplate.render\n options.staticRenderFns = compiledTemplate.staticRenderFns\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = scopeId\n }\n\n // inject cssModules\n if (cssModules) {\n var computed = options.computed || (options.computed = {})\n Object.keys(cssModules).forEach(function (key) {\n var module = cssModules[key]\n computed[key] = function () { return module }\n })\n }\n\n return {\n esModule: esModule,\n exports: scriptExports,\n options: options\n }\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9+L3Z1ZS1sb2FkZXIvbGliL2NvbXBvbmVudC1ub3JtYWxpemVyLmpzP2Q0ZjMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsNkRBQTZEO0FBQzdEO0FBQ0E7QUFDQSxtQ0FBbUM7QUFDbkMsS0FBSztBQUNMOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsImZpbGUiOiI4LmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBub3JtYWxpemVDb21wb25lbnQgKFxuICByYXdTY3JpcHRFeHBvcnRzLFxuICBjb21waWxlZFRlbXBsYXRlLFxuICBzY29wZUlkLFxuICBjc3NNb2R1bGVzXG4pIHtcbiAgdmFyIGVzTW9kdWxlXG4gIHZhciBzY3JpcHRFeHBvcnRzID0gcmF3U2NyaXB0RXhwb3J0cyA9IHJhd1NjcmlwdEV4cG9ydHMgfHwge31cblxuICAvLyBFUzYgbW9kdWxlcyBpbnRlcm9wXG4gIHZhciB0eXBlID0gdHlwZW9mIHJhd1NjcmlwdEV4cG9ydHMuZGVmYXVsdFxuICBpZiAodHlwZSA9PT0gJ29iamVjdCcgfHwgdHlwZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIGVzTW9kdWxlID0gcmF3U2NyaXB0RXhwb3J0c1xuICAgIHNjcmlwdEV4cG9ydHMgPSByYXdTY3JpcHRFeHBvcnRzLmRlZmF1bHRcbiAgfVxuXG4gIC8vIFZ1ZS5leHRlbmQgY29uc3RydWN0b3IgZXhwb3J0IGludGVyb3BcbiAgdmFyIG9wdGlvbnMgPSB0eXBlb2Ygc2NyaXB0RXhwb3J0cyA9PT0gJ2Z1bmN0aW9uJ1xuICAgID8gc2NyaXB0RXhwb3J0cy5vcHRpb25zXG4gICAgOiBzY3JpcHRFeHBvcnRzXG5cbiAgLy8gcmVuZGVyIGZ1bmN0aW9uc1xuICBpZiAoY29tcGlsZWRUZW1wbGF0ZSkge1xuICAgIG9wdGlvbnMucmVuZGVyID0gY29tcGlsZWRUZW1wbGF0ZS5yZW5kZXJcbiAgICBvcHRpb25zLnN0YXRpY1JlbmRlckZucyA9IGNvbXBpbGVkVGVtcGxhdGUuc3RhdGljUmVuZGVyRm5zXG4gIH1cblxuICAvLyBzY29wZWRJZFxuICBpZiAoc2NvcGVJZCkge1xuICAgIG9wdGlvbnMuX3Njb3BlSWQgPSBzY29wZUlkXG4gIH1cblxuICAvLyBpbmplY3QgY3NzTW9kdWxlc1xuICBpZiAoY3NzTW9kdWxlcykge1xuICAgIHZhciBjb21wdXRlZCA9IG9wdGlvbnMuY29tcHV0ZWQgfHwgKG9wdGlvbnMuY29tcHV0ZWQgPSB7fSlcbiAgICBPYmplY3Qua2V5cyhjc3NNb2R1bGVzKS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHtcbiAgICAgIHZhciBtb2R1bGUgPSBjc3NNb2R1bGVzW2tleV1cbiAgICAgIGNvbXB1dGVkW2tleV0gPSBmdW5jdGlvbiAoKSB7IHJldHVybiBtb2R1bGUgfVxuICAgIH0pXG4gIH1cblxuICByZXR1cm4ge1xuICAgIGVzTW9kdWxlOiBlc01vZHVsZSxcbiAgICBleHBvcnRzOiBzY3JpcHRFeHBvcnRzLFxuICAgIG9wdGlvbnM6IG9wdGlvbnNcbiAgfVxufVxuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9+L3Z1ZS1sb2FkZXIvbGliL2NvbXBvbmVudC1ub3JtYWxpemVyLmpzXG4vLyBtb2R1bGUgaWQgPSA4XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///8\n"); - -/***/ }), -/* 9 */ -/***/ (function(module, exports, __webpack_require__) { - -eval("module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n ref: \"typedElement\",\n staticClass: \"typed-element\"\n }, [_vm._t(\"default\")], 2)\n},staticRenderFns: []}\nmodule.exports.render._withStripped = true\nif (false) {\n module.hot.accept()\n if (module.hot.data) {\n require(\"vue-hot-reload-api\").rerender(\"data-v-1de4642d\", module.exports)\n }\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9WdWVUeXBlZEpzLnZ1ZT9jZjljIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGdCQUFnQixtQkFBbUIsYUFBYSwwQkFBMEI7QUFDMUU7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNILENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsImZpbGUiOiI5LmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHM9e3JlbmRlcjpmdW5jdGlvbiAoKXt2YXIgX3ZtPXRoaXM7dmFyIF9oPV92bS4kY3JlYXRlRWxlbWVudDt2YXIgX2M9X3ZtLl9zZWxmLl9jfHxfaDtcbiAgcmV0dXJuIF9jKCdkaXYnLCB7XG4gICAgcmVmOiBcInR5cGVkRWxlbWVudFwiLFxuICAgIHN0YXRpY0NsYXNzOiBcInR5cGVkLWVsZW1lbnRcIlxuICB9LCBbX3ZtLl90KFwiZGVmYXVsdFwiKV0sIDIpXG59LHN0YXRpY1JlbmRlckZuczogW119XG5tb2R1bGUuZXhwb3J0cy5yZW5kZXIuX3dpdGhTdHJpcHBlZCA9IHRydWVcbmlmIChtb2R1bGUuaG90KSB7XG4gIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgaWYgKG1vZHVsZS5ob3QuZGF0YSkge1xuICAgICByZXF1aXJlKFwidnVlLWhvdC1yZWxvYWQtYXBpXCIpLnJlcmVuZGVyKFwiZGF0YS12LTFkZTQ2NDJkXCIsIG1vZHVsZS5leHBvcnRzKVxuICB9XG59XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9+L3Z1ZS1sb2FkZXIvbGliL3RlbXBsYXRlLWNvbXBpbGVyLmpzP2lkPWRhdGEtdi0xZGU0NjQyZCEuL34vdnVlLWxvYWRlci9saWIvc2VsZWN0b3IuanM/dHlwZT10ZW1wbGF0ZSZpbmRleD0wIS4vc3JjL2NvbXBvbmVudHMvVnVlVHlwZWRKcy52dWVcbi8vIG1vZHVsZSBpZCA9IDlcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///9\n"); - -/***/ }) -/******/ ]); -}); \ No newline at end of file +module.exports=function(modules){function __webpack_require__(moduleId){if(installedModules[moduleId])return installedModules[moduleId].exports;var module=installedModules[moduleId]={i:moduleId,l:!1,exports:{}};return modules[moduleId].call(module.exports,module,module.exports,__webpack_require__),module.l=!0,module.exports}var installedModules={};return __webpack_require__.m=modules,__webpack_require__.c=installedModules,__webpack_require__.i=function(value){return value},__webpack_require__.d=function(exports,name,getter){__webpack_require__.o(exports,name)||Object.defineProperty(exports,name,{configurable:!1,enumerable:!0,get:getter})},__webpack_require__.n=function(module){var getter=module&&module.__esModule?function(){return module.default}:function(){return module};return __webpack_require__.d(getter,"a",getter),getter},__webpack_require__.o=function(object,property){return Object.prototype.hasOwnProperty.call(object,property)},__webpack_require__.p="",__webpack_require__(__webpack_require__.s=2)}([function(module,exports,__webpack_require__){__webpack_require__(6);var Component=__webpack_require__(7)(__webpack_require__(4),__webpack_require__(8),null,null);module.exports=Component.exports},function(module,__webpack_exports__,__webpack_require__){"use strict";__webpack_require__.d(__webpack_exports__,"a",function(){return props}),__webpack_require__.d(__webpack_exports__,"b",function(){return getEventHandlers});var props={strings:{type:Array,required:!1,default:function(){return["Hello World!"]}},stringsElement:{type:String,required:!1,default:null},typeSpeed:{type:Number,required:!1,default:50},startDelay:{type:Number,required:!1,default:0},backSpeed:{type:Number,required:!1,default:0},smartBackspace:{type:Boolean,required:!1,default:!0},shuffle:{type:Boolean,required:!1,default:!1},backDelay:{type:Number,required:!1,default:700},fadeOut:{type:Boolean,required:!1,default:!1},fadeOutClass:{type:String,required:!1,default:"typed-fade-out"},fadeOutDelay:{type:Number,required:!1,default:500},loop:{type:Boolean,required:!1,default:!1},loopCount:{type:Number,required:!1,default:1/0},showCursor:{type:Boolean,required:!1,default:!0},cursorChar:{type:String,required:!1,default:"|"},autoInsertCss:{type:Boolean,required:!1,default:!0},attr:{type:String,required:!1,default:null},bindInputFocusEvents:{type:Boolean,required:!1,default:!1},contentType:{type:String,required:!1,default:"html"}},getEventHandlers=function(context,typedConfig){return typedConfig.onComplete=function(){context.$emit("onComplete")},typedConfig.preStringTyped=function(arrayPos){context.$emit("preStringTyped",arrayPos)},typedConfig.onStringTyped=function(arrayPos){context.$emit("onStringTyped",arrayPos)},typedConfig.onLastStringBackspaced=function(){context.$emit("onLastStringBackspaced")},typedConfig.onTypingPaused=function(arrayPos){context.$emit("onTypingPaused",arrayPos)},typedConfig.onTypingResumed=function(arrayPos){context.$emit("onTypingResumed",arrayPos)},typedConfig.onReset=function(){context.$emit("onReset")},typedConfig.onStop=function(arrayPos){context.$emit("onStop",arrayPos)},typedConfig.onStart=function(arrayPos){context.$emit("onStart",arrayPos)},typedConfig.onDestroy=function(){context.$emit("onDestroy")},typedConfig}},function(module,__webpack_exports__,__webpack_require__){"use strict";function install(Vue){Vue.component("vue-typed-js",__WEBPACK_IMPORTED_MODULE_0__components_VueTypedJs_vue___default.a)}Object.defineProperty(__webpack_exports__,"__esModule",{value:!0}),__webpack_exports__.install=install;var __WEBPACK_IMPORTED_MODULE_0__components_VueTypedJs_vue__=__webpack_require__(0),__WEBPACK_IMPORTED_MODULE_0__components_VueTypedJs_vue___default=__webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__components_VueTypedJs_vue__);__webpack_require__.d(__webpack_exports__,"VueTypedJs",function(){return __WEBPACK_IMPORTED_MODULE_0__components_VueTypedJs_vue___default.a});var plugin={version:"0.2.0",install:install};__webpack_exports__.default=plugin;var GlobalVue=null;"undefined"!=typeof window?GlobalVue=window.Vue:"undefined"!=typeof global&&(GlobalVue=global.Vue),GlobalVue&&GlobalVue.use(plugin)},function(module,exports,__webpack_require__){(function(module){var __WEBPACK_AMD_DEFINE_FACTORY__,__WEBPACK_AMD_DEFINE_ARRAY__,__WEBPACK_AMD_DEFINE_RESULT__,_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(obj){return typeof obj}:function(obj){return obj&&"function"==typeof Symbol&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj};/*! + * + * typed.js - A JavaScript Typing Animation Library + * Author: Matt Boldt + * Version: v2.0.11 + * Url: https://github.com/mattboldt/typed.js + * License(s): MIT + * + */ +!function(root,factory){"object"===_typeof(exports)&&"object"===_typeof(module)?module.exports=factory():(__WEBPACK_AMD_DEFINE_ARRAY__=[],__WEBPACK_AMD_DEFINE_FACTORY__=factory,void 0!==(__WEBPACK_AMD_DEFINE_RESULT__="function"==typeof __WEBPACK_AMD_DEFINE_FACTORY__?__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports,__WEBPACK_AMD_DEFINE_ARRAY__):__WEBPACK_AMD_DEFINE_FACTORY__)&&(module.exports=__WEBPACK_AMD_DEFINE_RESULT__))}(0,function(){return function(modules){function __webpack_require__(moduleId){if(installedModules[moduleId])return installedModules[moduleId].exports;var module=installedModules[moduleId]={exports:{},id:moduleId,loaded:!1};return modules[moduleId].call(module.exports,module,module.exports,__webpack_require__),module.loaded=!0,module.exports}var installedModules={};return __webpack_require__.m=modules,__webpack_require__.c=installedModules,__webpack_require__.p="",__webpack_require__(0)}([function(module,exports,__webpack_require__){"use strict";function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(exports,"__esModule",{value:!0});var _createClass=function(){function defineProperties(target,props){for(var i=0;icurString.length)););var stringBeforeSkip=curString.substring(0,curStrPos),stringSkipped=curString.substring(stringBeforeSkip.length+1,curStrPos+numChars),stringAfterSkip=curString.substring(curStrPos+numChars+1);curString=stringBeforeSkip+stringSkipped+stringAfterSkip,numChars--}_this2.timeout=setTimeout(function(){_this2.toggleBlinking(!1),curStrPos>=curString.length?_this2.doneTyping(curString,curStrPos):_this2.keepTyping(curString,curStrPos,numChars),_this2.temporaryPause&&(_this2.temporaryPause=!1,_this2.options.onTypingResumed(_this2.arrayPos,_this2))},pauseTime)},humanize)}},{key:"keepTyping",value:function(curString,curStrPos,numChars){0===curStrPos&&(this.toggleBlinking(!1),this.options.preStringTyped(this.arrayPos,this)),curStrPos+=numChars;var nextString=curString.substr(0,curStrPos);this.replaceText(nextString),this.typewrite(curString,curStrPos)}},{key:"doneTyping",value:function(curString,curStrPos){var _this3=this;this.options.onStringTyped(this.arrayPos,this),this.toggleBlinking(!0),this.arrayPos===this.strings.length-1&&(this.complete(),!1===this.loop||this.curLoop===this.loopCount)||(this.timeout=setTimeout(function(){_this3.backspace(curString,curStrPos)},this.backDelay))}},{key:"backspace",value:function(curString,curStrPos){var _this4=this;if(!0===this.pause.status)return void this.setPauseStatus(curString,curStrPos,!0);if(this.fadeOut)return this.initFadeOut();this.toggleBlinking(!1);var humanize=this.humanizer(this.backSpeed);this.timeout=setTimeout(function(){curStrPos=_htmlParserJs.htmlParser.backSpaceHtmlChars(curString,curStrPos,_this4);var curStringAtPosition=curString.substr(0,curStrPos);if(_this4.replaceText(curStringAtPosition),_this4.smartBackspace){var nextString=_this4.strings[_this4.arrayPos+1];nextString&&curStringAtPosition===nextString.substr(0,curStrPos)?_this4.stopNum=curStrPos:_this4.stopNum=0}curStrPos>_this4.stopNum?(curStrPos--,_this4.backspace(curString,curStrPos)):curStrPos<=_this4.stopNum&&(_this4.arrayPos++,_this4.arrayPos===_this4.strings.length?(_this4.arrayPos=0,_this4.options.onLastStringBackspaced(),_this4.shuffleStringsIfNeeded(),_this4.begin()):_this4.typewrite(_this4.strings[_this4.sequence[_this4.arrayPos]],curStrPos))},humanize)}},{key:"complete",value:function(){this.options.onComplete(this),this.loop?this.curLoop++:this.typingComplete=!0}},{key:"setPauseStatus",value:function(curString,curStrPos,isTyping){this.pause.typewrite=isTyping,this.pause.curString=curString,this.pause.curStrPos=curStrPos}},{key:"toggleBlinking",value:function(isBlinking){this.cursor&&(this.pause.status||this.cursorBlinking!==isBlinking&&(this.cursorBlinking=isBlinking,isBlinking?this.cursor.classList.add("typed-cursor--blink"):this.cursor.classList.remove("typed-cursor--blink")))}},{key:"humanizer",value:function(speed){return Math.round(Math.random()*speed/2)+speed}},{key:"shuffleStringsIfNeeded",value:function(){this.shuffle&&(this.sequence=this.sequence.sort(function(){return Math.random()-.5}))}},{key:"initFadeOut",value:function(){var _this5=this;return this.el.className+=" "+this.fadeOutClass,this.cursor&&(this.cursor.className+=" "+this.fadeOutClass),setTimeout(function(){_this5.arrayPos++,_this5.replaceText(""),_this5.strings.length>_this5.arrayPos?_this5.typewrite(_this5.strings[_this5.sequence[_this5.arrayPos]],0):(_this5.typewrite(_this5.strings[0],0),_this5.arrayPos=0)},this.fadeOutDelay)}},{key:"replaceText",value:function(str){this.attr?this.el.setAttribute(this.attr,str):this.isInput?this.el.value=str:"html"===this.contentType?this.el.innerHTML=str:this.el.textContent=str}},{key:"bindFocusEvents",value:function(){var _this6=this;this.isInput&&(this.el.addEventListener("focus",function(e){_this6.stop()}),this.el.addEventListener("blur",function(e){_this6.el.value&&0!==_this6.el.value.length||_this6.start()}))}},{key:"insertCursor",value:function(){this.showCursor&&(this.cursor||(this.cursor=document.createElement("span"),this.cursor.className="typed-cursor",this.cursor.innerHTML=this.cursorChar,this.el.parentNode&&this.el.parentNode.insertBefore(this.cursor,this.el.nextSibling)))}}]),Typed}();exports.default=Typed,module.exports=exports.default},function(module,exports,__webpack_require__){"use strict";function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(exports,"__esModule",{value:!0});var _extends=Object.assign||function(target){for(var i=1;i":";";curString.substr(curStrPos+1).charAt(0)!==endTag&&!(++curStrPos+1>curString.length););curStrPos++}return curStrPos}},{key:"backSpaceHtmlChars",value:function(curString,curStrPos,self){if("html"!==self.contentType)return curStrPos;var curChar=curString.substr(curStrPos).charAt(0);if(">"===curChar||";"===curChar){var endTag="";for(endTag=">"===curChar?"<":"&";curString.substr(curStrPos-1).charAt(0)!==endTag&&!(--curStrPos<0););curStrPos--}return curStrPos}}]),HTMLParser}();exports.default=HTMLParser;var htmlParser=new HTMLParser;exports.htmlParser=htmlParser}])})}).call(exports,__webpack_require__(5)(module))},function(module,__webpack_exports__,__webpack_require__){"use strict";Object.defineProperty(__webpack_exports__,"__esModule",{value:!0});var __WEBPACK_IMPORTED_MODULE_0_typed_js__=__webpack_require__(3),__WEBPACK_IMPORTED_MODULE_0_typed_js___default=__webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_typed_js__),__WEBPACK_IMPORTED_MODULE_1__config_typed_component_config__=__webpack_require__(1);__webpack_exports__.default={name:"vue-typed-js",props:__WEBPACK_IMPORTED_MODULE_1__config_typed_component_config__.a,data:function(){return{typedObj:null}},methods:{throwError:function(message){throw new TypeError(message)},initTypedJS:function(){var $typed=this.$refs.typedElement.querySelector(".typing");if(this.$slots.default.length>1)this.throwError("Just one child element allowed inside <"+this.$options.name+"> component.");else if(1===this.$slots.default.length){var typedConfig=this.$props;typedConfig=__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__config_typed_component_config__.b)(this,typedConfig),this.typedObj=new __WEBPACK_IMPORTED_MODULE_0_typed_js___default.a($typed,typedConfig)}}},mounted:function(){this.initTypedJS()},destroyed:function(){this.typedObj.destroy()}}},function(module,exports){module.exports=function(module){return module.webpackPolyfill||(module.deprecate=function(){},module.paths=[],module.children||(module.children=[]),Object.defineProperty(module,"loaded",{enumerable:!0,get:function(){return module.l}}),Object.defineProperty(module,"id",{enumerable:!0,get:function(){return module.i}}),module.webpackPolyfill=1),module}},function(module,exports){},function(module,exports){module.exports=function(rawScriptExports,compiledTemplate,scopeId,cssModules){var esModule,scriptExports=rawScriptExports=rawScriptExports||{},type=typeof rawScriptExports.default;"object"!==type&&"function"!==type||(esModule=rawScriptExports,scriptExports=rawScriptExports.default);var options="function"==typeof scriptExports?scriptExports.options:scriptExports;if(compiledTemplate&&(options.render=compiledTemplate.render,options.staticRenderFns=compiledTemplate.staticRenderFns),scopeId&&(options._scopeId=scopeId),cssModules){var computed=options.computed||(options.computed={});Object.keys(cssModules).forEach(function(key){var module=cssModules[key];computed[key]=function(){return module}})}return{esModule:esModule,exports:scriptExports,options:options}}},function(module,exports){module.exports={render:function(){var _vm=this,_h=_vm.$createElement;return(_vm._self._c||_h)("div",{ref:"typedElement",staticClass:"typed-element"},[_vm._t("default")],2)},staticRenderFns:[]}}]); \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index dff4f31..158fa26 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "vue-typed-js", - "version": "0.1.2", + "version": "0.2.0", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -124,9 +124,9 @@ "dev": true }, "are-we-there-yet": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz", - "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz", + "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", "dev": true, "requires": { "delegates": "^1.0.0", @@ -194,10 +194,13 @@ "dev": true }, "asn1": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", - "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=", - "dev": true + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", + "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "dev": true, + "requires": { + "safer-buffer": "~2.1.0" + } }, "asn1.js": { "version": "4.10.1", @@ -220,9 +223,9 @@ } }, "assert-plus": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", - "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", "dev": true }, "assign-symbols": { @@ -279,15 +282,15 @@ } }, "aws-sign2": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", - "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=", + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", "dev": true }, "aws4": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.7.0.tgz", - "integrity": "sha512-32NDda82rhwD9/JBCCkB+MRYDp0oSvlo2IL6rQWA10PQi7tDUM3eqMSltXmY+Oyl/7N3P3qNtAlv7X0d9bI28w==", + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", + "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==", "dev": true }, "babel-code-frame": { @@ -1206,11 +1209,10 @@ "dev": true }, "bcrypt-pbkdf": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", - "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", "dev": true, - "optional": true, "requires": { "tweetnacl": "^0.14.3" } @@ -1248,15 +1250,6 @@ "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", "dev": true }, - "boom": { - "version": "2.10.1", - "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", - "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", - "dev": true, - "requires": { - "hoek": "2.x.x" - } - }, "brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -1484,9 +1477,9 @@ "dev": true }, "caseless": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz", - "integrity": "sha1-cVuW6phBWTzDMGeSP17GDr2k99c=", + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", "dev": true }, "center-align": { @@ -1696,9 +1689,9 @@ "dev": true }, "combined-stream": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", - "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", "dev": true, "requires": { "delayed-stream": "~1.0.0" @@ -1862,15 +1855,6 @@ "which": "^1.2.9" } }, - "cryptiles": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", - "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", - "dev": true, - "requires": { - "boom": "2.x.x" - } - }, "crypto-browserify": { "version": "3.12.0", "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", @@ -2034,14 +2018,6 @@ "dev": true, "requires": { "assert-plus": "^1.0.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true - } } }, "date-now": { @@ -2252,13 +2228,13 @@ } }, "ecc-jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", - "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", "dev": true, - "optional": true, "requires": { - "jsbn": "~0.1.0" + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" } }, "editorconfig": { @@ -2522,9 +2498,9 @@ } }, "eslint-plugin-promise": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-3.7.0.tgz", - "integrity": "sha512-2WO+ZFh7vxUKRfR0cOIMrWgYKdR6S1AlOezw6pC52B6oYpd5WFghN+QHxvrRdZMtbo8h3dfUZ2o1rWb0UPbKtg==", + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-3.8.0.tgz", + "integrity": "sha512-JiFL9UFR15NKpHyGii1ZcvmtIqa3UTwiDAGb8atSffe43qJ3+1czVGN6UtkklpcJ2DVnqvTMzEKRaJdBkAL2aQ==", "dev": true }, "eslint-plugin-standard": { @@ -2647,9 +2623,9 @@ } }, "extend": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", - "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", "dev": true }, "extend-shallow": { @@ -2745,26 +2721,25 @@ } }, "extract-text-webpack-plugin": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/extract-text-webpack-plugin/-/extract-text-webpack-plugin-2.1.2.tgz", - "integrity": "sha1-dW7076gVXDaBgz+8NNpTuUF0bWw=", + "version": "2.0.0-rc.3", + "resolved": "https://registry.npmjs.org/extract-text-webpack-plugin/-/extract-text-webpack-plugin-2.0.0-rc.3.tgz", + "integrity": "sha1-c4GqeGnOJtSzmnurcc8J5aOEMrI=", "dev": true, "requires": { + "ajv": "^4.11.2", "async": "^2.1.2", - "loader-utils": "^1.0.2", - "schema-utils": "^0.3.0", - "webpack-sources": "^1.0.1" + "loader-utils": "^0.2.16", + "webpack-sources": "^0.1.0" }, "dependencies": { - "loader-utils": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz", - "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=", + "webpack-sources": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-0.1.5.tgz", + "integrity": "sha1-qh86vw8NdNtxEcQOUAuE+WZkB1A=", "dev": true, "requires": { - "big.js": "^3.1.3", - "emojis-list": "^2.0.0", - "json5": "^0.5.0" + "source-list-map": "~0.1.7", + "source-map": "~0.5.3" } } } @@ -2776,9 +2751,9 @@ "dev": true }, "fast-deep-equal": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", - "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", + "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", "dev": true }, "fast-json-stable-stringify": { @@ -2894,13 +2869,13 @@ "dev": true }, "form-data": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", - "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", "dev": true, "requires": { "asynckit": "^0.4.0", - "combined-stream": "^1.0.5", + "combined-stream": "^1.0.6", "mime-types": "^2.1.12" } }, @@ -2939,7 +2914,8 @@ "ansi-regex": { "version": "2.1.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "aproba": { "version": "1.2.0", @@ -2960,12 +2936,14 @@ "balanced-match": { "version": "1.0.0", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "brace-expansion": { "version": "1.1.11", "bundled": true, "dev": true, + "optional": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -2980,17 +2958,20 @@ "code-point-at": { "version": "1.1.0", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "concat-map": { "version": "0.0.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "console-control-strings": { "version": "1.1.0", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "core-util-is": { "version": "1.0.2", @@ -3107,7 +3088,8 @@ "inherits": { "version": "2.0.3", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "ini": { "version": "1.3.5", @@ -3119,6 +3101,7 @@ "version": "1.0.0", "bundled": true, "dev": true, + "optional": true, "requires": { "number-is-nan": "^1.0.0" } @@ -3133,6 +3116,7 @@ "version": "3.0.4", "bundled": true, "dev": true, + "optional": true, "requires": { "brace-expansion": "^1.1.7" } @@ -3140,12 +3124,14 @@ "minimist": { "version": "0.0.8", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "minipass": { "version": "2.2.4", "bundled": true, "dev": true, + "optional": true, "requires": { "safe-buffer": "^5.1.1", "yallist": "^3.0.0" @@ -3164,6 +3150,7 @@ "version": "0.5.1", "bundled": true, "dev": true, + "optional": true, "requires": { "minimist": "0.0.8" } @@ -3244,7 +3231,8 @@ "number-is-nan": { "version": "1.0.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "object-assign": { "version": "4.1.1", @@ -3256,6 +3244,7 @@ "version": "1.4.0", "bundled": true, "dev": true, + "optional": true, "requires": { "wrappy": "1" } @@ -3341,7 +3330,8 @@ "safe-buffer": { "version": "5.1.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "safer-buffer": { "version": "2.1.2", @@ -3377,6 +3367,7 @@ "version": "1.0.2", "bundled": true, "dev": true, + "optional": true, "requires": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", @@ -3396,6 +3387,7 @@ "version": "3.0.1", "bundled": true, "dev": true, + "optional": true, "requires": { "ansi-regex": "^2.0.0" } @@ -3439,19 +3431,21 @@ "wrappy": { "version": "1.0.2", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "yallist": { "version": "3.0.2", "bundled": true, - "dev": true + "dev": true, + "optional": true } } }, "fstream": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz", - "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=", + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz", + "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==", "dev": true, "requires": { "graceful-fs": "^4.1.2", @@ -3483,9 +3477,9 @@ } }, "gaze": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.2.tgz", - "integrity": "sha1-hHIkZ3rbiHDWeSV+0ziP22HkAQU=", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz", + "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==", "dev": true, "requires": { "globule": "^1.0.0" @@ -3531,14 +3525,6 @@ "dev": true, "requires": { "assert-plus": "^1.0.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true - } } }, "glob": { @@ -3597,13 +3583,13 @@ } }, "globule": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/globule/-/globule-1.2.0.tgz", - "integrity": "sha1-HcScaCLdnoovoAuiopUAboZkvQk=", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/globule/-/globule-1.2.1.tgz", + "integrity": "sha512-g7QtgWF4uYSL5/dn71WxubOrS7JVGCnFPEnoeChJmBnyR9Mw8nGoEwOgJL/RC2Te0WhbsEUCejfH8SZNJ+adYQ==", "dev": true, "requires": { "glob": "~7.1.1", - "lodash": "~4.17.4", + "lodash": "~4.17.10", "minimatch": "~3.0.2" } }, @@ -3613,16 +3599,34 @@ "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", "dev": true }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "dev": true + }, "har-validator": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz", - "integrity": "sha1-zcvAgYgmWtEZtqWnyKtw7s+10n0=", + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", + "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", "dev": true, "requires": { - "chalk": "^1.1.1", - "commander": "^2.9.0", - "is-my-json-valid": "^2.12.4", - "pinkie-promise": "^2.0.0" + "ajv": "^6.5.5", + "har-schema": "^2.0.0" + }, + "dependencies": { + "ajv": { + "version": "6.10.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz", + "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==", + "dev": true, + "requires": { + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + } } }, "has": { @@ -3713,22 +3717,10 @@ "minimalistic-assert": "^1.0.0" } }, - "hawk": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", - "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", - "dev": true, - "requires": { - "boom": "2.x.x", - "cryptiles": "2.x.x", - "hoek": "2.x.x", - "sntp": "1.x.x" - } - }, "he": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz", - "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", "dev": true }, "hmac-drbg": { @@ -3742,12 +3734,6 @@ "minimalistic-crypto-utils": "^1.0.1" } }, - "hoek": { - "version": "2.16.3", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", - "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=", - "dev": true - }, "home-or-tmp": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", @@ -3785,12 +3771,12 @@ } }, "http-signature": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", - "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", "dev": true, "requires": { - "assert-plus": "^0.2.0", + "assert-plus": "^1.0.0", "jsprim": "^1.2.2", "sshpk": "^1.7.0" } @@ -4213,8 +4199,7 @@ "version": "0.1.1", "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "dev": true, - "optional": true + "dev": true }, "jsesc": { "version": "1.3.0", @@ -4235,9 +4220,9 @@ "dev": true }, "json-schema-traverse": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", - "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "dev": true }, "json-stable-stringify": { @@ -4283,14 +4268,6 @@ "extsprintf": "1.3.0", "json-schema": "0.2.3", "verror": "1.10.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true - } } }, "kind-of": { @@ -4385,12 +4362,6 @@ "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==", "dev": true }, - "lodash.assign": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz", - "integrity": "sha1-DZnzzNem0mHRm9rrkkUAXShYCOc=", - "dev": true - }, "lodash.camelcase": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", @@ -4605,18 +4576,18 @@ } }, "mime-db": { - "version": "1.33.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz", - "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==", + "version": "1.40.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz", + "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==", "dev": true }, "mime-types": { - "version": "2.1.18", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz", - "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", + "version": "2.1.24", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz", + "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==", "dev": true, "requires": { - "mime-db": "~1.33.0" + "mime-db": "1.40.0" } }, "minimalistic-assert": { @@ -4692,7 +4663,8 @@ "version": "2.10.0", "resolved": "https://registry.npmjs.org/nan/-/nan-2.10.0.tgz", "integrity": "sha512-bAdJv7fBLhWC+/Bls0Oza+mvTaNQtP+1RyhhhvD95pgUJz6XM5IzgmxOkItJ9tkoCiplvAnXI1tNmmUD/eScyA==", - "dev": true + "dev": true, + "optional": true }, "nanomatch": { "version": "1.2.9", @@ -4741,20 +4713,19 @@ "dev": true }, "node-gyp": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.6.2.tgz", - "integrity": "sha1-m/vlRWIoYoSDjnUOrAUpWFP6HGA=", + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz", + "integrity": "sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==", "dev": true, "requires": { "fstream": "^1.0.0", "glob": "^7.0.3", "graceful-fs": "^4.1.2", - "minimatch": "^3.0.2", "mkdirp": "^0.5.0", "nopt": "2 || 3", "npmlog": "0 || 1 || 2 || 3 || 4", "osenv": "0", - "request": "2", + "request": "^2.87.0", "rimraf": "2", "semver": "~5.3.0", "tar": "^2.0.0", @@ -4801,9 +4772,9 @@ } }, "node-sass": { - "version": "4.9.0", - "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.9.0.tgz", - "integrity": "sha512-QFHfrZl6lqRU3csypwviz2XLgGNOoWQbo2GOvtsfQqOfL4cy1BtWnhx/XUeAO9LT3ahBzSRXcEO6DdvAH9DzSg==", + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.12.0.tgz", + "integrity": "sha512-A1Iv4oN+Iel6EPv77/HddXErL2a+gZ4uBeZUy+a8O35CFYTXhgA8MgLCWBtwpGZdCvTvQ9d+bQxX/QC36GDPpQ==", "dev": true, "requires": { "async-foreach": "^0.1.3", @@ -4813,15 +4784,13 @@ "get-stdin": "^4.0.1", "glob": "^7.0.3", "in-publish": "^2.0.0", - "lodash.assign": "^4.2.0", - "lodash.clonedeep": "^4.3.2", - "lodash.mergewith": "^4.6.0", + "lodash": "^4.17.11", "meow": "^3.7.0", "mkdirp": "^0.5.1", - "nan": "^2.10.0", - "node-gyp": "^3.3.1", + "nan": "^2.13.2", + "node-gyp": "^3.8.0", "npmlog": "^4.0.0", - "request": "~2.79.0", + "request": "^2.88.0", "sass-graph": "^2.2.4", "stdout-stream": "^1.4.0", "true-case-path": "^1.0.2" @@ -4836,6 +4805,18 @@ "lru-cache": "^4.0.1", "which": "^1.2.9" } + }, + "lodash": { + "version": "4.17.15", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", + "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", + "dev": true + }, + "nan": { + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz", + "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==", + "dev": true } } }, @@ -4912,9 +4893,9 @@ "dev": true }, "oauth-sign": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", - "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=", + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", "dev": true }, "object-assign": { @@ -5132,6 +5113,12 @@ "sha.js": "^2.4.8" } }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", + "dev": true + }, "pify": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", @@ -5790,6 +5777,12 @@ "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", "dev": true }, + "psl": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.4.0.tgz", + "integrity": "sha512-HZzqCGPecFLyoRj5HLfuDSKYTJkAfB5thKBIkRHtGjWwY7p1dAyveIbXIq4tO0KYfDF2tHqPUgY9SDnGm00uFw==", + "dev": true + }, "public-encrypt": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.2.tgz", @@ -5816,9 +5809,9 @@ "dev": true }, "qs": { - "version": "6.3.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.3.2.tgz", - "integrity": "sha1-51vV9uJoEioqDgvaYwslUMFmUCw=", + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", "dev": true }, "query-string": { @@ -6071,31 +6064,31 @@ } }, "request": { - "version": "2.79.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.79.0.tgz", - "integrity": "sha1-Tf5b9r6LjNw3/Pk+BLZVd3InEN4=", + "version": "2.88.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", + "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", "dev": true, "requires": { - "aws-sign2": "~0.6.0", - "aws4": "^1.2.1", - "caseless": "~0.11.0", - "combined-stream": "~1.0.5", - "extend": "~3.0.0", + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", "forever-agent": "~0.6.1", - "form-data": "~2.1.1", - "har-validator": "~2.0.6", - "hawk": "~3.1.3", - "http-signature": "~1.1.0", + "form-data": "~2.3.2", + "har-validator": "~5.1.0", + "http-signature": "~1.2.0", "is-typedarray": "~1.0.0", "isstream": "~0.1.2", "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.7", - "oauth-sign": "~0.8.1", - "qs": "~6.3.0", - "stringstream": "~0.0.4", - "tough-cookie": "~2.3.0", - "tunnel-agent": "~0.4.1", - "uuid": "^3.0.0" + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.4.3", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" } }, "require-directory": { @@ -6215,6 +6208,12 @@ "ret": "~0.1.10" } }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, "sass-graph": { "version": "2.2.4", "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.4.tgz", @@ -6244,29 +6243,6 @@ "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", "dev": true }, - "schema-utils": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.3.0.tgz", - "integrity": "sha1-9YdyIs4+kx7a4DnxfrNxbnE3+M8=", - "dev": true, - "requires": { - "ajv": "^5.0.0" - }, - "dependencies": { - "ajv": { - "version": "5.5.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", - "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", - "dev": true, - "requires": { - "co": "^4.6.0", - "fast-deep-equal": "^1.0.0", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.3.0" - } - } - } - }, "scss-tokenizer": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz", @@ -6497,15 +6473,6 @@ "kind-of": "^3.2.0" } }, - "sntp": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", - "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", - "dev": true, - "requires": { - "hoek": "2.x.x" - } - }, "sort-keys": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", @@ -6603,9 +6570,9 @@ "dev": true }, "sshpk": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.14.1.tgz", - "integrity": "sha1-Ew9Zde3a2WPx1W+SuaxsUfqfg+s=", + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", + "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", "dev": true, "requires": { "asn1": "~0.2.3", @@ -6615,15 +6582,8 @@ "ecc-jsbn": "~0.1.1", "getpass": "^0.1.1", "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", "tweetnacl": "~0.14.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true - } } }, "static-extend": { @@ -6648,9 +6608,9 @@ } }, "stdout-stream": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.0.tgz", - "integrity": "sha1-osfIWH5U2UJ+qe2zrD8s1SLfN4s=", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.1.tgz", + "integrity": "sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA==", "dev": true, "requires": { "readable-stream": "^2.0.1" @@ -6705,12 +6665,6 @@ "safe-buffer": "~5.1.0" } }, - "stringstream": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", - "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=", - "dev": true - }, "strip-ansi": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", @@ -6816,13 +6770,13 @@ "dev": true }, "tar": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", - "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.2.tgz", + "integrity": "sha512-FCEhQ/4rE1zYv9rYXJw/msRqsnmlje5jHP6huWeBZ704jUTy02c5AZyWujpMR1ax6mVw9NyJMfuK2CMDWVIfgA==", "dev": true, "requires": { "block-stream": "*", - "fstream": "^1.0.2", + "fstream": "^1.0.12", "inherits": "2" } }, @@ -6891,11 +6845,12 @@ } }, "tough-cookie": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz", - "integrity": "sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA==", + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", + "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", "dev": true, "requires": { + "psl": "^1.1.24", "punycode": "^1.4.1" } }, @@ -6912,27 +6867,12 @@ "dev": true }, "true-case-path": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-1.0.2.tgz", - "integrity": "sha1-fskRMJJHZsf1c74wIMNPj9/QDWI=", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-1.0.3.tgz", + "integrity": "sha512-m6s2OdQe5wgpFMC+pAJ+q9djG82O2jcHPOI6RNg1yy9rCYR+WD6Nbpl32fDpfC56nirdRy+opFa/Vk7HYhqaew==", "dev": true, "requires": { - "glob": "^6.0.4" - }, - "dependencies": { - "glob": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz", - "integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=", - "dev": true, - "requires": { - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "2 || 3", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - } + "glob": "^7.1.2" } }, "tty-browserify": { @@ -6942,17 +6882,19 @@ "dev": true }, "tunnel-agent": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz", - "integrity": "sha1-Y3PbdpCf5XDgjXNYM2Xtgop07us=", - "dev": true + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "dev": true, + "requires": { + "safe-buffer": "^5.0.1" + } }, "tweetnacl": { "version": "0.14.5", "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "dev": true, - "optional": true + "dev": true }, "type-check": { "version": "0.3.2", @@ -6964,7 +6906,7 @@ } }, "typed.js": { - "version": "git+https://github.com/mattboldt/typed.js.git#dd852f010af5d55f99854e729b576b0a522967d4", + "version": "git+https://github.com/mattboldt/typed.js.git#a7dbc1c77e8dd9009a6f6b16db6df7f74bee63d5", "from": "git+https://github.com/mattboldt/typed.js.git" }, "typedarray": { @@ -7130,6 +7072,23 @@ "integrity": "sha512-qbKn90aDQ0YEwvXoLqj0oiuUYroLX2lVHZ+b+xwjozFasAOC4GneDq5+OaIG5Zj+jFmbz/uO+f7a9qxjktJQww==", "dev": true }, + "uri-js": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", + "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", + "dev": true, + "requires": { + "punycode": "^2.1.0" + }, + "dependencies": { + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true + } + } + }, "urix": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", @@ -7204,9 +7163,9 @@ "dev": true }, "uuid": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.2.1.tgz", - "integrity": "sha512-jZnMwlb9Iku/O3smGWvZhauCf6cvvpKi4BKRiliS3cxnI+Gz9j5MEpTz2UFuXiKPJocb7gnsLHwiS05ige5BEA==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.3.tgz", + "integrity": "sha512-pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ==", "dev": true }, "validate-npm-package-license": { @@ -7234,14 +7193,6 @@ "assert-plus": "^1.0.0", "core-util-is": "1.0.2", "extsprintf": "^1.2.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true - } } }, "vm-browserify": { @@ -7302,9 +7253,9 @@ } }, "vue-template-compiler": { - "version": "2.5.16", - "resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.5.16.tgz", - "integrity": "sha512-ZbuhCcF/hTYmldoUOVcu2fcbeSAZnfzwDskGduOrnjBiIWHgELAd+R8nAtX80aZkceWDKGQ6N9/0/EUpt+l22A==", + "version": "2.6.10", + "resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.6.10.tgz", + "integrity": "sha512-jVZkw4/I/HT5ZMvRnhv78okGusqe0+qH2A0Em0Cp8aq78+NK9TII263CDVz2QXZsIT+yyV/gZc/j/vlwa+Epyg==", "dev": true, "requires": { "de-indent": "^1.0.2", @@ -7465,12 +7416,12 @@ "dev": true }, "wide-align": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.2.tgz", - "integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", + "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", "dev": true, "requires": { - "string-width": "^1.0.2" + "string-width": "^1.0.2 || 2" } }, "window-size": { diff --git a/package.json b/package.json index faab0c9..a811b9a 100644 --- a/package.json +++ b/package.json @@ -35,13 +35,13 @@ "eslint-config-standard": "^6.2.1", "eslint-loader": "^1.6.1", "eslint-plugin-html": "^1.6.0", - "eslint-plugin-promise": "^3.4.0", + "eslint-plugin-promise": "^3.8.0", "eslint-plugin-standard": "^2.0.1", - "extract-text-webpack-plugin": "^2.0.0-beta.4", - "node-sass": "^4.0.0", + "extract-text-webpack-plugin": "^2.0.0-rc.3", + "node-sass": "^4.12.0", "sass-loader": "^4.1.0", "vue-loader": "^10.0.0", - "vue-template-compiler": "^2.1.6", + "vue-template-compiler": "^2.6.10", "webpack": "^2.1.0-beta.28", "webpack-merge": "^1.1.2" }, diff --git a/src/config/typed-component.config.js b/src/config/typed-component.config.js index 195f888..521ca88 100644 --- a/src/config/typed-component.config.js +++ b/src/config/typed-component.config.js @@ -103,36 +103,36 @@ export const getEventHandlers = (context, typedConfig) => { context.$emit('onComplete') } - typedConfig.preStringTyped = () => { - context.$emit('preStringTyped') + typedConfig.preStringTyped = (arrayPos) => { + context.$emit('preStringTyped', arrayPos) } - typedConfig.onStringTyped = () => { - context.$emit('onStringTyped') + typedConfig.onStringTyped = (arrayPos) => { + context.$emit('onStringTyped', arrayPos) } typedConfig.onLastStringBackspaced = () => { context.$emit('onLastStringBackspaced') } - typedConfig.onTypingPaused = () => { - context.$emit('onTypingPaused') + typedConfig.onTypingPaused = (arrayPos) => { + context.$emit('onTypingPaused', arrayPos) } - typedConfig.onTypingResumed = () => { - context.$emit('onTypingResumed') + typedConfig.onTypingResumed = (arrayPos) => { + context.$emit('onTypingResumed', arrayPos) } typedConfig.onReset = () => { context.$emit('onReset') } - typedConfig.onStop = () => { - context.$emit('onStop') + typedConfig.onStop = (arrayPos) => { + context.$emit('onStop', arrayPos) } - typedConfig.onStart = () => { - context.$emit('onStart') + typedConfig.onStart = (arrayPos) => { + context.$emit('onStart', arrayPos) } typedConfig.onDestroy = () => {