diff --git a/main.5cf04e71.css b/main.5cf04e71.css new file mode 100644 index 0000000..b612d44 --- /dev/null +++ b/main.5cf04e71.css @@ -0,0 +1,3 @@ +*{box-sizing:border-box}body,html{height:100vh;width:100vw}body{background:linear-gradient(90deg,#fc466b,#3f5efb);color:#fff;font-family:Helvetica Neue,Arial,sans-serif}.container,body{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}.container{max-width:500px;width:100%;-ms-flex-direction:column;flex-direction:column;padding:0 20px}.v-tribute{width:100%}.content-editable,input[type=text]{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:#eee;padding:1rem;color:#666;width:100%;border-radius:.25rem;font-size:16px;outline:none}.content-editable:focus,input[type=text]:focus{background:#fff}.content-editable:empty:before{content:attr(placeholder);display:block;color:#666}textarea{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:#eee;padding:1rem;width:100%;border-radius:.25rem;font-size:16px;height:100px;outline:none}textarea:focus{background:#fff}.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;cursor:pointer;margin:20px 0;background:#fc466b;color:#fff;font-size:16px;padding:8px 16px;border-radius:3px;box-shadow:0 1px 3px rgba(0,0,0,.18)}.btn:hover{background:#fc375f}.tribute-container{position:absolute;top:0;left:0;height:auto;max-height:300px;max-width:500px;overflow:auto;display:block;z-index:999999;border-radius:4px;box-shadow:0 1px 4px rgba(0,0,0,.13)}.tribute-container ul{margin:0;margin-top:2px;padding:0;list-style:none;background:#fff;border-radius:4px;border:1px solid rgba(0,0,0,.13);background-clip:padding-box;overflow:hidden}.tribute-container li{color:#3f5efb;padding:5px 10px;cursor:pointer;font-size:14px}.tribute-container li.highlight,.tribute-container li:hover{background:#3f5efb;color:#fff}.tribute-container li span{font-weight:700}.tribute-container li.no-match{cursor:default}.tribute-container .menu-highlighted{font-weight:700} + +/*# sourceMappingURL=main.5cf04e71.css.map*/ \ No newline at end of file diff --git a/main.5cf04e71.css.map b/main.5cf04e71.css.map new file mode 100644 index 0000000..a64f83a --- /dev/null +++ b/main.5cf04e71.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack:///./example/App.vue"],"names":[],"mappings":"AACA,EACE,qBAAuB,CAEzB,UAEE,aACA,WAAa,CAEf,KACE,kDAOA,WACA,2CAAmD,CAErD,gBATE,oBACA,aACA,sBACI,mBACJ,qBACI,sBAAwB,CAgB7B,WAXC,gBACA,WAOA,0BACI,sBACJ,cAAgB,CAElB,WACE,UAAY,CAEd,mCAEE,wBACG,qBACK,gBACR,YACA,gBACA,aACA,WACA,WACA,qBACA,eACA,YAAc,CAEhB,+CAEI,eAAiB,CAErB,+BACE,0BACA,cACA,UAAY,CAEd,SACE,wBACG,qBACK,gBACR,YACA,gBACA,aACA,WACA,qBACA,eACA,aACA,YAAc,CAEhB,eACI,eAAiB,CAErB,KACE,wBACG,qBACK,gBACR,YACA,eACA,cACA,mBACA,WACA,eACA,iBACA,kBACA,oCAA0C,CAE5C,WACI,kBAAoB,CAExB,mBACE,kBACA,MACA,OACA,YACA,iBACA,gBACA,cACA,cACA,eACA,kBACA,oCAA0C,CAE5C,sBACE,SACA,eACA,UACA,gBACA,gBACA,kBACA,iCACA,4BACA,eAAiB,CAEnB,sBACE,cACA,iBACA,eACA,cAAgB,CAElB,4DAEE,mBACA,UAAY,CAEd,2BACE,eAAkB,CAEpB,+BACE,cAAgB,CAElB,qCACE,eAAkB,C","file":"main.5cf04e71.css","sourcesContent":["\n* {\n box-sizing: border-box;\n}\nhtml,\nbody {\n height: 100vh;\n width: 100vw;\n}\nbody {\n background: linear-gradient(to right, #fc466b, #3f5efb);\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: center;\n align-items: center;\n -ms-flex-pack: center;\n justify-content: center;\n color: #fff;\n font-family: 'Helvetica Neue', 'Arial', sans-serif;\n}\n.container {\n max-width: 500px;\n width: 100%;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: center;\n align-items: center;\n -ms-flex-pack: center;\n justify-content: center;\n -ms-flex-direction: column;\n flex-direction: column;\n padding: 0 20px;\n}\n.v-tribute {\n width: 100%;\n}\ninput[type='text'],\n.content-editable {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n border: none;\n background: #eee;\n padding: 1rem 1rem;\n color: #666;\n width: 100%;\n border-radius: 0.25rem;\n font-size: 16px;\n outline: none;\n}\ninput[type='text']:focus,\n .content-editable:focus {\n background: #fff;\n}\n.content-editable:empty:before {\n content: attr(placeholder);\n display: block;\n color: #666;\n}\ntextarea {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n border: none;\n background: #eee;\n padding: 1rem;\n width: 100%;\n border-radius: 0.25rem;\n font-size: 16px;\n height: 100px;\n outline: none;\n}\ntextarea:focus {\n background: #fff;\n}\n.btn {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n border: none;\n cursor: pointer;\n margin: 20px 0;\n background: #fc466b;\n color: #fff;\n font-size: 16px;\n padding: 8px 16px;\n border-radius: 3px;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.18);\n}\n.btn:hover {\n background: #fc375f;\n}\n.tribute-container {\n position: absolute;\n top: 0;\n left: 0;\n height: auto;\n max-height: 300px;\n max-width: 500px;\n overflow: auto;\n display: block;\n z-index: 999999;\n border-radius: 4px;\n box-shadow: 0 1px 4px rgba(0, 0, 0, 0.13);\n}\n.tribute-container ul {\n margin: 0;\n margin-top: 2px;\n padding: 0;\n list-style: none;\n background: #fff;\n border-radius: 4px;\n border: 1px solid rgba(0, 0, 0, 0.13);\n background-clip: padding-box;\n overflow: hidden;\n}\n.tribute-container li {\n color: #3f5efb;\n padding: 5px 10px;\n cursor: pointer;\n font-size: 14px;\n}\n.tribute-container li.highlight,\n.tribute-container li:hover {\n background: #3f5efb;\n color: #fff;\n}\n.tribute-container li span {\n font-weight: bold;\n}\n.tribute-container li.no-match {\n cursor: default;\n}\n.tribute-container .menu-highlighted {\n font-weight: bold;\n}\n"],"sourceRoot":""} \ No newline at end of file diff --git a/main.5cf04e71.js b/main.5cf04e71.js new file mode 100644 index 0000000..1c16786 --- /dev/null +++ b/main.5cf04e71.js @@ -0,0 +1,69 @@ +!function(e){var t={};function n(r){if(t[r])return t[r].exports;var i=t[r]={i:r,l:!1,exports:{}};return e[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:r})},n.r=function(e){Object.defineProperty(e,"__esModule",{value:!0})},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="/vue-tribute/",n(n.s=9)}([ +/*!***********************************!*\ + !*** (webpack)/buildin/global.js ***! + \***********************************/ +/*! no static exports found */ +/*! all exports used */ +/*! ModuleConcatenation bailout: Module is not an ECMAScript module */function(e,t){var n;n=function(){return this}();try{n=n||Function("return this")()||(0,eval)("this")}catch(e){"object"==typeof window&&(n=window)}e.exports=n}, +/*!************************************************!*\ + !*** ./node_modules/tributejs/dist/tribute.js ***! + \************************************************/ +/*! no static exports found */ +/*! exports used: default */ +/*! ModuleConcatenation bailout: Module is not an ECMAScript module */function(e,t,n){var r;e.exports=function e(t,n,i){function o(s,u){if(!n[s]){if(!t[s]){var c="function"==typeof r&&r;if(!u&&c)return r(s,!0);if(a)return a(s,!0);var l=new Error("Cannot find module '"+s+"'");throw l.code="MODULE_NOT_FOUND",l}var f=n[s]={exports:{}};t[s][0].call(f.exports,function(e){var n=t[s][1][e];return o(n||e)},f,f.exports,e,t,n,i)}return n[s].exports}for(var a="function"==typeof r&&r,s=0;sNo match!'}.bind(r)),lookup:w,fillAttr:x,values:o,requireLeadingSpace:I}];else{if(!T)throw new Error("[Tribute] No collection specified.");this.collection=T.map(function(t){return{trigger:t.trigger||h,iframe:t.iframe||c,selectClass:t.selectClass||p,selectTemplate:(t.selectTemplate||e.defaultSelectTemplate).bind(r),menuItemTemplate:(t.menuItemTemplate||e.defaultMenuItemTemplate).bind(r),noMatchTemplate:(n=O,"function"==typeof n?n.bind(r):null),lookup:t.lookup||w,fillAttr:t.fillAttr||x,values:t.values,requireLeadingSpace:t.requireLeadingSpace};var n})}new l.default(this),new a.default(this),new u.default(this),new d.default(this)}return r(e,[{key:"triggers",value:function(){return this.collection.map(function(e){return e.trigger})}},{key:"attach",value:function(e){if(!e)throw new Error("[Tribute] Must pass in a DOM node or NodeList.");if("undefined"!=typeof jQuery&&e instanceof jQuery&&(e=e.get()),e.constructor===NodeList||e.constructor===HTMLCollection||e.constructor===Array)for(var t=e.length,n=0;n",post:"",extract:function(e){if("string"==typeof n.current.collection.lookup)return e[n.current.collection.lookup];if("function"==typeof n.current.collection.lookup)return n.current.collection.lookup(e);throw new Error("Invalid lookup attribute, lookup must be string or function.")}});n.current.filteredItems=r;var i=n.menu.querySelector("ul");if(n.range.positionMenuAtCaret(t),!r.length){var o=new CustomEvent("tribute-no-match",{detail:n.menu});return n.current.element.dispatchEvent(o),void(n.current.collection.noMatchTemplate?i.innerHTML=n.current.collection.noMatchTemplate():n.hideMenu())}i.innerHTML="",r.forEach(function(e,t){var r=n.range.getDocument().createElement("li");r.setAttribute("data-index",t),r.addEventListener("mouseenter",function(e){var t=e.target,r=t.getAttribute("data-index");n.events.setActiveLi(r)}),n.menuSelected===t&&(r.className=n.current.collection.selectClass),r.innerHTML=n.current.collection.menuItemTemplate(e),i.appendChild(r)})}};"function"==typeof this.current.collection.values?this.current.collection.values(this.current.mentionText,r):r(this.current.collection.values)}}},{key:"showMenuForCollection",value:function(e,t){e!==document.activeElement&&this.placeCaretAtEnd(e),this.current.collection=this.collection[t||0],this.current.externalTrigger=!0,this.current.element=e,e.isContentEditable?this.insertTextAtCursor(this.current.collection.trigger):this.insertAtCaret(e,this.current.collection.trigger),this.showMenuFor(e)}},{key:"placeCaretAtEnd",value:function(e){if(e.focus(),void 0!==window.getSelection&&void 0!==document.createRange){var t=document.createRange();t.selectNodeContents(e),t.collapse(!1);var n=window.getSelection();n.removeAllRanges(),n.addRange(t)}else if(void 0!==document.body.createTextRange){var r=document.body.createTextRange();r.moveToElementText(e),r.collapse(!1),r.select()}}},{key:"insertTextAtCursor",value:function(e){var t,n;t=window.getSelection(),(n=t.getRangeAt(0)).deleteContents();var r=document.createTextNode(e);n.insertNode(r),n.selectNodeContents(r),n.collapse(!1),t.removeAllRanges(),t.addRange(n)}},{key:"insertAtCaret",value:function(e,t){var n=e.scrollTop,r=e.selectionStart,i=e.value.substring(0,r),o=e.value.substring(e.selectionEnd,e.value.length);e.value=i+t+o,r+=t.length,e.selectionStart=r,e.selectionEnd=r,e.focus(),e.scrollTop=n}},{key:"hideMenu",value:function(){this.menu&&(this.menu.style.cssText="display: none;",this.isActive=!1,this.menuSelected=0,this.current={})}},{key:"selectItemAtIndex",value:function(e,t){if("number"==typeof(e=parseInt(e))){var n=this.current.filteredItems[e],r=this.current.collection.selectTemplate(n);null!==r&&this.replaceText(r,t,n)}}},{key:"replaceText",value:function(e,t,n){this.range.replaceTriggerText(e,!0,!0,t,n)}},{key:"_append",value:function(e,t,n){if("function"==typeof e.values)throw new Error("Unable to append to values, as it is a function.");e.values=n?t:e.values.concat(t)}},{key:"append",value:function(e,t,n){var r=parseInt(e);if("number"!=typeof r)throw new Error("please provide an index for the collection to update.");var i=this.collection[r];this._append(i,t,n)}},{key:"appendCurrent",value:function(e,t){if(!this.isActive)throw new Error("No active state. Please use append instead and pass an index.");this._append(this.current.collection,e,t)}}],[{key:"defaultSelectTemplate",value:function(e){return void 0===e?null:this.range.isContentEditable(this.current.element)?''+(this.current.collection.trigger+e.original[this.current.collection.fillAttr])+"":this.current.collection.trigger+e.original[this.current.collection.fillAttr]}},{key:"defaultMenuItemTemplate",value:function(e){return e.string}},{key:"inputTypes",value:function(){return["TEXTAREA","INPUT"]}}]),e}();n.default=v,t.exports=n.default},{"./TributeEvents":2,"./TributeMenuEvents":3,"./TributeRange":4,"./TributeSearch":5,"./utils":7}],2:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r=function(){function e(e,t){for(var n=0;n container for the click");n.selectItemAtIndex(r.getAttribute("data-index"),t),n.hideMenu()}else n.current.element&&!n.current.externalTrigger&&(n.current.externalTrigger=!1,setTimeout(function(){return n.hideMenu()}))}},{key:"keyup",value:function(e,t){if(e.inputEvent&&(e.inputEvent=!1),e.updateSelection(this),27!==t.keyCode){if(!e.tribute.isActive){var n=e.getKeyCode(e,this,t);if(isNaN(n)||!n)return;var r=e.tribute.triggers().find(function(e){return e.charCodeAt(0)===n});void 0!==r&&e.callbacks().triggerChar(t,this,r)}(e.tribute.current.trigger&&!1===e.commandEvent||e.tribute.isActive&&8===t.keyCode)&&e.tribute.showMenuFor(this,!0)}}},{key:"shouldDeactivate",value:function(t){if(!this.tribute.isActive)return!1;if(0===this.tribute.current.mentionText.length){var n=!1;return e.keys().forEach(function(e){t.keyCode===e.key&&(n=!0)}),!n}return!1}},{key:"getKeyCode",value:function(e,t,n){var r=e.tribute,i=r.range.getTriggerInfo(!1,!1,!0,r.allowSpaces);return!!i&&i.mentionTriggerChar.charCodeAt(0)}},{key:"updateSelection",value:function(e){this.tribute.current.element=e;var t=this.tribute.range.getTriggerInfo(!1,!1,!0,this.tribute.allowSpaces);t&&(this.tribute.current.selectedPath=t.mentionSelectedPath,this.tribute.current.mentionText=t.mentionText,this.tribute.current.selectedOffset=t.mentionSelectedOffset)}},{key:"callbacks",value:function(){var e=this;return{triggerChar:function(t,n,r){var i=e.tribute;i.current.trigger=r;var o=i.collection.find(function(e){return e.trigger===r});i.current.collection=o,i.inputEvent&&i.showMenuFor(n,!0)},enter:function(t,n){e.tribute.isActive&&(t.preventDefault(),t.stopPropagation(),setTimeout(function(){e.tribute.selectItemAtIndex(e.tribute.menuSelected,t),e.tribute.hideMenu()},0))},escape:function(t,n){e.tribute.isActive&&(t.preventDefault(),t.stopPropagation(),e.tribute.isActive=!1,e.tribute.hideMenu())},tab:function(t,n){e.callbacks().enter(t,n)},up:function(t,n){if(e.tribute.isActive){t.preventDefault(),t.stopPropagation();var r=e.tribute.current.filteredItems.length,i=e.tribute.menuSelected;r>i&&i>0?(e.tribute.menuSelected--,e.setActiveLi()):0===i&&(e.tribute.menuSelected=r-1,e.setActiveLi(),e.tribute.menu.scrollTop=e.tribute.menu.scrollHeight)}},down:function(t,n){if(e.tribute.isActive){t.preventDefault(),t.stopPropagation();var r=e.tribute.current.filteredItems.length-1,i=e.tribute.menuSelected;r>i?(e.tribute.menuSelected++,e.setActiveLi()):r===i&&(e.tribute.menuSelected=0,e.setActiveLi(),e.tribute.menu.scrollTop=0)}},delete:function(t,n){e.tribute.isActive&&e.tribute.current.mentionText.length<1?e.tribute.hideMenu():e.tribute.isActive&&e.tribute.showMenuFor(n)}}}},{key:"setActiveLi",value:function(e){var t=this.tribute.menu.querySelectorAll("li"),n=t.length>>>0,r=this.getFullHeight(this.tribute.menu),i=this.getFullHeight(t[0]);e&&(this.tribute.menuSelected=e);for(var o=0;oc?this.tribute.menu.scrollTop+=i:s=0&&(t=r.substring(0,i))}}else{var o=this.tribute.current.element;if(o){var a=o.selectionStart;o.value&&a>=0&&(t=o.value.substring(0,a))}}return t}},{key:"getTriggerInfo",value:function(e,t,n,r){var i=this,o=this.tribute.current,a=void 0,s=void 0,u=void 0;if(this.isContentEditable(o.element)){var c=this.getContentEditableSelectedPath(o);c&&(a=c.selected,s=c.path,u=c.offset)}else a=this.getDocument().activeElement;var l=this.getTextPrecedingCurrentSelection();if(void 0!==l&&null!==l){var f=-1,d=void 0;if(this.tribute.collection.forEach(function(e){var t=e.trigger,r=e.requireLeadingSpace?i.lastIndexWithLeadingSpace(l,t):l.lastIndexOf(t);r>f&&(f=r,d=t,n=e.requireLeadingSpace)}),f>=0&&(0===f||!n||/[\xA0\s]/g.test(l.substring(f-1,f)))){var p=l.substring(f+1,l.length);d=l.substring(f,f+1);var v=p.substring(0,1),h=p.length>0&&(" "===v||" "===v);t&&(p=p.trim());var m=r?/[^\S ]/g:/[\xA0\s]/g;if(!h&&(e||!m.test(p)))return{mentionPosition:f,mentionText:p,mentionSelectedElement:a,mentionSelectedPath:s,mentionSelectedOffset:u,mentionTriggerChar:d}}}}},{key:"lastIndexWithLeadingSpace",value:function(e,t){for(var n=e.split("").reverse().join(""),r=-1,i=0,o=e.length;iparseInt(o.height)&&(i.overflowY="scroll")):i.overflow="hidden",r.textContent=e.value.substring(0,t),"INPUT"===e.nodeName&&(r.textContent=r.textContent.replace(/\s/g," "));var a=this.getDocument().createElement("span");a.textContent=e.value.substring(t)||".",r.appendChild(a);var s=e.getBoundingClientRect(),u=document.documentElement,c=(window.pageXOffset||u.scrollLeft)-(u.clientLeft||0),l=(window.pageYOffset||u.scrollTop)-(u.clientTop||0),f={top:s.top+l+a.offsetTop+parseInt(o.borderTopWidth)+parseInt(o.fontSize)-e.scrollTop,left:s.left+c+a.offsetLeft+parseInt(o.borderLeftWidth)};return this.getDocument().body.removeChild(r),f}},{key:"getContentEditableCaretPosition",value:function(e){var t=void 0,n="sel_"+(new Date).getTime()+"_"+Math.random().toString().substr(2),r=void 0,i=this.getWindowSelection(),o=i.getRangeAt(0);(r=this.getDocument().createRange()).setStart(i.anchorNode,e),r.setEnd(i.anchorNode,e),r.collapse(!1),(t=this.getDocument().createElement("span")).id=n,t.appendChild(this.getDocument().createTextNode("\ufeff")),r.insertNode(t),i.removeAllRanges(),i.addRange(o);var a=t.getBoundingClientRect(),s=document.documentElement,u=(window.pageXOffset||s.scrollLeft)-(s.clientLeft||0),c=(window.pageYOffset||s.scrollTop)-(s.clientTop||0),l={left:a.left+u,top:a.top+t.offsetHeight+c};return t.parentNode.removeChild(t),l}},{key:"scrollIntoView",value:function(e){var t=void 0,n=this.menu;if(void 0!==n){for(;void 0===t||0===t.height;)if(0===(t=n.getBoundingClientRect()).height&&(void 0===(n=n.childNodes[0])||!n.getBoundingClientRect))return;var r=t.top,i=r+t.height;if(r<0)window.scrollTo(0,window.pageYOffset+t.top-20);else if(i>window.innerHeight){var o=window.pageYOffset+t.top-20;o-window.pageYOffset>100&&(o=window.pageYOffset+100);var a=window.pageYOffset-(window.innerHeight-i);a>o&&(a=o),window.scrollTo(0,a)}}}}]),e}();n.default=i,t.exports=n.default},{}],5:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r=function(){function e(e,t){for(var n=0;ne.length-n)){for(var o=t[r],a=e.indexOf(o,n),s=void 0,u=void 0;a>-1;){if(i.push(a),u=this.traverse(e,t,a+1,r+1,i),i.pop(),!u)return s;(!s||s.score0&&(e[i-1]+1===r?n+=n+1:n=1),t+=n}),t}},{key:"render",value:function(e,t,n,r){var i=e.substring(0,t[0]);return t.forEach(function(o,a){i+=n+e[o]+r+e.substring(o+1,t[a+1]?t[a+1]:e.length)}),i}},{key:"filter",value:function(e,t,n){var r=this;return n=n||{},t.reduce(function(t,i,o,a){var s=i;n.extract&&((s=n.extract(i))||(s=""));var u=r.match(e,s,n);return null!=u&&(t[t.length]={string:u.rendered,score:u.score,index:o,original:i}),t},[]).sort(function(e,t){var n=t.score-e.score;return n||e.index-t.index})}}]),e}();n.default=i,t.exports=n.default},{}],6:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r,i=e("./Tribute"),o=(r=i)&&r.__esModule?r:{default:r};n.default=o.default,t.exports=n.default},{"./Tribute":1}],7:[function(e,t,n){"use strict";if(Array.prototype.find||(Array.prototype.find=function(e){if(null===this)throw new TypeError("Array.prototype.find called on null or undefined");if("function"!=typeof e)throw new TypeError("predicate must be a function");for(var t,n=Object(this),r=n.length>>>0,i=arguments[1],o=0;o=0&&Math.floor(t)===t&&isFinite(e)}function p(e){return null==e?"":"object"==typeof e?JSON.stringify(e,null,2):String(e)}function v(e){var t=parseFloat(e);return isNaN(t)?e:t}function h(e,t){for(var n=Object.create(null),r=e.split(","),i=0;i-1)return e.splice(n,1)}}var y=Object.prototype.hasOwnProperty;function b(e,t){return y.call(e,t)}function _(e){var t=Object.create(null);return function(n){return t[n]||(t[n]=e(n))}}var w=/-(\w)/g,C=_(function(e){return e.replace(w,function(e,t){return t?t.toUpperCase():""})}),x=_(function(e){return e.charAt(0).toUpperCase()+e.slice(1)}),k=/\B([A-Z])/g,T=_(function(e){return e.replace(k,"-$1").toLowerCase()});var A=Function.prototype.bind?function(e,t){return e.bind(t)}:function(e,t){function n(n){var r=arguments.length;return r?r>1?e.apply(t,arguments):e.call(t,n):e.call(t)}return n._length=e.length,n};function E(e,t){t=t||0;for(var n=e.length-t,r=new Array(n);n--;)r[n]=e[n+t];return r}function S(e,t){for(var n in t)e[n]=t[n];return e}function O(e){for(var t={},n=0;n0,G=X&&X.indexOf("edge/")>0,Q=(X&&X.indexOf("android"),X&&/iphone|ipad|ipod|ios/.test(X)||"ios"===q),J=(X&&/chrome\/\d+/.test(X),{}.watch),Z=!1;if(V)try{var ee={};Object.defineProperty(ee,"passive",{get:function(){Z=!0}}),window.addEventListener("test-passive",null,ee)}catch(e){}var te=function(){return void 0===W&&(W=!V&&!z&&void 0!==e&&"server"===e.process.env.VUE_ENV),W},ne=V&&window.__VUE_DEVTOOLS_GLOBAL_HOOK__;function re(e){return"function"==typeof e&&/native code/.test(e.toString())}var ie,oe="undefined"!=typeof Symbol&&re(Symbol)&&"undefined"!=typeof Reflect&&re(Reflect.ownKeys);ie="undefined"!=typeof Set&&re(Set)?Set:function(){function e(){this.set=Object.create(null)}return e.prototype.has=function(e){return!0===this.set[e]},e.prototype.add=function(e){this.set[e]=!0},e.prototype.clear=function(){this.set=Object.create(null)},e}();var ae=$,se=0,ue=function(){this.id=se++,this.subs=[]};ue.prototype.addSub=function(e){this.subs.push(e)},ue.prototype.removeSub=function(e){g(this.subs,e)},ue.prototype.depend=function(){ue.target&&ue.target.addDep(this)},ue.prototype.notify=function(){for(var e=this.subs.slice(),t=0,n=e.length;t-1)if(o&&!b(i,"default"))a=!1;else if(""===a||a===T(e)){var u=He(String,i.type);(u<0||s0&&(ct((c=e(c,(n||"")+"_"+u))[0])&&ct(f)&&(r[l]=he(f.text+c[0].text),c.shift()),r.push.apply(r,c)):s(c)?ct(f)?r[l]=he(f.text+c):""!==c&&r.push(he(c)):ct(c)&&ct(f)?r[l]=he(f.text+c.text):(a(t._isVList)&&o(c.tag)&&i(c.key)&&o(n)&&(c.key="__vlist"+n+"_"+u+"__"),r.push(c)));return r}(e):void 0}function ct(e){return o(e)&&o(e.text)&&!1===e.isComment}function lt(e,t){return(e.__esModule||oe&&"Module"===e[Symbol.toStringTag])&&(e=e.default),u(e)?t.extend(e):e}function ft(e){return e.isComment&&e.asyncFactory}function dt(e){if(Array.isArray(e))for(var t=0;tSt&&xt[n].id>e.id;)n--;xt.splice(n+1,0,e)}else xt.push(e);At||(At=!0,Ze(Ot))}}(this)},It.prototype.run=function(){if(this.active){var e=this.get();if(e!==this.value||u(e)||this.deep){var t=this.value;if(this.value=e,this.user)try{this.cb.call(this.vm,e,t)}catch(e){Ue(e,this.vm,'callback for watcher "'+this.expression+'"')}else this.cb.call(this.vm,e,t)}}},It.prototype.evaluate=function(){this.value=this.get(),this.dirty=!1},It.prototype.depend=function(){for(var e=this.deps.length;e--;)this.deps[e].depend()},It.prototype.teardown=function(){if(this.active){this.vm._isBeingDestroyed||g(this.vm._watchers,this);for(var e=this.deps.length;e--;)this.deps[e].removeSub(this);this.active=!1}};var Mt={enumerable:!0,configurable:!0,get:$,set:$};function Nt(e,t,n){Mt.get=function(){return this[t][n]},Mt.set=function(e){this[t][n]=e},Object.defineProperty(e,n,Mt)}function Lt(e){e._watchers=[];var t=e.$options;t.props&&function(e,t){var n=e.$options.propsData||{},r=e._props={},i=e.$options._propKeys=[];e.$parent&&we(!1);var o=function(o){i.push(o);var a=De(o,t,n,e);Ae(r,o,a),o in e||Nt(e,"_props",o)};for(var a in t)o(a);we(!0)}(e,t.props),t.methods&&function(e,t){e.$options.props;for(var n in t)e[n]=null==t[n]?$:A(t[n],e)}(e,t.methods),t.data?function(e){var t=e.$options.data;l(t=e._data="function"==typeof t?function(e,t){le();try{return e.call(t,t)}catch(e){return Ue(e,t,"data()"),{}}finally{fe()}}(t,e):t||{})||(t={});var n=Object.keys(t),r=e.$options.props,i=(e.$options.methods,n.length);for(;i--;){var o=n[i];0,r&&b(r,o)||(void 0,36!==(a=(o+"").charCodeAt(0))&&95!==a&&Nt(e,"_data",o))}var a;Te(t,!0)}(e):Te(e._data={},!0),t.computed&&function(e,t){var n=e._computedWatchers=Object.create(null),r=te();for(var i in t){var o=t[i],a="function"==typeof o?o:o.get;0,r||(n[i]=new It(e,a||$,$,Pt)),i in e||jt(e,i,o)}}(e,t.computed),t.watch&&t.watch!==J&&function(e,t){for(var n in t){var r=t[n];if(Array.isArray(r))for(var i=0;i=0||n.indexOf(e[i])<0)&&r.push(e[i]);return r}return e}function fn(e){this._init(e)}function dn(e){e.cid=0;var t=1;e.extend=function(e){e=e||{};var n=this,r=n.cid,i=e._Ctor||(e._Ctor={});if(i[r])return i[r];var o=e.name||n.options.name;var a=function(e){this._init(e)};return(a.prototype=Object.create(n.prototype)).constructor=a,a.cid=t++,a.options=Pe(n.options,e),a.super=n,a.options.props&&function(e){var t=e.options.props;for(var n in t)Nt(e.prototype,"_props",n)}(a),a.options.computed&&function(e){var t=e.options.computed;for(var n in t)jt(e.prototype,n,t[n])}(a),a.extend=n.extend,a.mixin=n.mixin,a.use=n.use,D.forEach(function(e){a[e]=n[e]}),o&&(a.options.components[o]=a),a.superOptions=n.options,a.extendOptions=e,a.sealedOptions=S({},a.options),i[r]=a,a}}function pn(e){return e&&(e.Ctor.options.name||e.tag)}function vn(e,t){return Array.isArray(e)?e.indexOf(t)>-1:"string"==typeof e?e.split(",").indexOf(t)>-1:!!f(e)&&e.test(t)}function hn(e,t){var n=e.cache,r=e.keys,i=e._vnode;for(var o in n){var a=n[o];if(a){var s=pn(a.componentOptions);s&&!t(s)&&mn(n,o,r,i)}}}function mn(e,t,n,r){var i=e[t];!i||r&&i.tag===r.tag||i.componentInstance.$destroy(),e[t]=null,g(n,t)}!function(e){e.prototype._init=function(e){var t=this;t._uid=un++,t._isVue=!0,e&&e._isComponent?function(e,t){var n=e.$options=Object.create(e.constructor.options),r=t._parentVnode;n.parent=t.parent,n._parentVnode=r,n._parentElm=t._parentElm,n._refElm=t._refElm;var i=r.componentOptions;n.propsData=i.propsData,n._parentListeners=i.listeners,n._renderChildren=i.children,n._componentTag=i.tag,t.render&&(n.render=t.render,n.staticRenderFns=t.staticRenderFns)}(t,e):t.$options=Pe(cn(t.constructor),e||{},t),t._renderProxy=t,t._self=t,function(e){var t=e.$options,n=t.parent;if(n&&!t.abstract){for(;n.$options.abstract&&n.$parent;)n=n.$parent;n.$children.push(e)}e.$parent=n,e.$root=n?n.$root:e,e.$children=[],e.$refs={},e._watcher=null,e._inactive=null,e._directInactive=!1,e._isMounted=!1,e._isDestroyed=!1,e._isBeingDestroyed=!1}(t),function(e){e._events=Object.create(null),e._hasHookEvent=!1;var t=e.$options._parentListeners;t&&ht(e,t)}(t),function(e){e._vnode=null,e._staticTrees=null;var t=e.$options,n=e.$vnode=t._parentVnode,i=n&&n.context;e.$slots=mt(t._renderChildren,i),e.$scopedSlots=r,e._c=function(t,n,r,i){return sn(e,t,n,r,i,!1)},e.$createElement=function(t,n,r,i){return sn(e,t,n,r,i,!0)};var o=n&&n.data;Ae(e,"$attrs",o&&o.attrs||r,null,!0),Ae(e,"$listeners",t._parentListeners||r,null,!0)}(t),Ct(t,"beforeCreate"),function(e){var t=Ft(e.$options.inject,e);t&&(we(!1),Object.keys(t).forEach(function(n){Ae(e,n,t[n])}),we(!0))}(t),Lt(t),function(e){var t=e.$options.provide;t&&(e._provided="function"==typeof t?t.call(e):t)}(t),Ct(t,"created"),t.$options.el&&t.$mount(t.$options.el)}}(fn),function(e){var t={get:function(){return this._data}},n={get:function(){return this._props}};Object.defineProperty(e.prototype,"$data",t),Object.defineProperty(e.prototype,"$props",n),e.prototype.$set=Ee,e.prototype.$delete=Se,e.prototype.$watch=function(e,t,n){if(l(t))return Rt(this,e,t,n);(n=n||{}).user=!0;var r=new It(this,e,t,n);return n.immediate&&t.call(this,r.value),function(){r.teardown()}}}(fn),function(e){var t=/^hook:/;e.prototype.$on=function(e,n){if(Array.isArray(e))for(var r=0,i=e.length;r1?E(t):t;for(var n=E(arguments,1),r=0,i=t.length;rparseInt(this.max)&&mn(a,s[0],s,this._vnode)),t.data.keepAlive=!0}return t||e&&e[0]}}};!function(e){var t={get:function(){return F}};Object.defineProperty(e,"config",t),e.util={warn:ae,extend:S,mergeOptions:Pe,defineReactive:Ae},e.set=Ee,e.delete=Se,e.nextTick=Ze,e.options=Object.create(null),D.forEach(function(t){e.options[t+"s"]=Object.create(null)}),e.options._base=e,S(e.options.components,yn),function(e){e.use=function(e){var t=this._installedPlugins||(this._installedPlugins=[]);if(t.indexOf(e)>-1)return this;var n=E(arguments,1);return n.unshift(this),"function"==typeof e.install?e.install.apply(e,n):"function"==typeof e&&e.apply(null,n),t.push(e),this}}(e),function(e){e.mixin=function(e){return this.options=Pe(this.options,e),this}}(e),dn(e),function(e){D.forEach(function(t){e[t]=function(e,n){return n?("component"===t&&l(n)&&(n.name=n.name||e,n=this.options._base.extend(n)),"directive"===t&&"function"==typeof n&&(n={bind:n,update:n}),this.options[t+"s"][e]=n,n):this.options[t+"s"][e]}})}(e)}(fn),Object.defineProperty(fn.prototype,"$isServer",{get:te}),Object.defineProperty(fn.prototype,"$ssrContext",{get:function(){return this.$vnode&&this.$vnode.ssrContext}}),Object.defineProperty(fn,"FunctionalRenderContext",{value:Jt}),fn.version="2.5.16";var bn=h("style,class"),_n=h("input,textarea,option,select,progress"),wn=h("contenteditable,draggable,spellcheck"),Cn=h("allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,default,defaultchecked,defaultmuted,defaultselected,defer,disabled,enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,required,reversed,scoped,seamless,selected,sortable,translate,truespeed,typemustmatch,visible"),xn="http://www.w3.org/1999/xlink",kn=function(e){return":"===e.charAt(5)&&"xlink"===e.slice(0,5)},Tn=function(e){return kn(e)?e.slice(6,e.length):""},An=function(e){return null==e||!1===e};function En(e){for(var t=e.data,n=e,r=e;o(r.componentInstance);)(r=r.componentInstance._vnode)&&r.data&&(t=Sn(r.data,t));for(;o(n=n.parent);)n&&n.data&&(t=Sn(t,n.data));return function(e,t){if(o(e)||o(t))return On(e,$n(t));return""}(t.staticClass,t.class)}function Sn(e,t){return{staticClass:On(e.staticClass,t.staticClass),class:o(e.class)?[e.class,t.class]:t.class}}function On(e,t){return e?t?e+" "+t:e:t||""}function $n(e){return Array.isArray(e)?function(e){for(var t,n="",r=0,i=e.length;r-1?Zn(e,t,n):Cn(t)?An(n)?e.removeAttribute(t):(n="allowfullscreen"===t&&"EMBED"===e.tagName?"true":t,e.setAttribute(t,n)):wn(t)?e.setAttribute(t,An(n)||"false"===n?"false":"true"):kn(t)?An(n)?e.removeAttributeNS(xn,Tn(t)):e.setAttributeNS(xn,t,n):Zn(e,t,n)}function Zn(e,t,n){if(An(n))e.removeAttribute(t);else{if(Y&&!K&&"TEXTAREA"===e.tagName&&"placeholder"===t&&!e.__ieph){var r=function(t){t.stopImmediatePropagation(),e.removeEventListener("input",r)};e.addEventListener("input",r),e.__ieph=!0}e.setAttribute(t,n)}}var er={create:Qn,update:Qn};function tr(e,t){var n=t.elm,r=t.data,a=e.data;if(!(i(r.staticClass)&&i(r.class)&&(i(a)||i(a.staticClass)&&i(a.class)))){var s=En(t),u=n._transitionClasses;o(u)&&(s=On(s,$n(u))),s!==n._prevClass&&(n.setAttribute("class",s),n._prevClass=s)}}var nr,rr={create:tr,update:tr},ir="__r",or="__c";function ar(e,t,n,r,i){var o;t=(o=t)._withTask||(o._withTask=function(){Ke=!0;var e=o.apply(null,arguments);return Ke=!1,e}),n&&(t=function(e,t,n){var r=nr;return function i(){null!==e.apply(null,arguments)&&sr(t,i,n,r)}}(t,e,r)),nr.addEventListener(e,t,Z?{capture:r,passive:i}:r)}function sr(e,t,n,r){(r||nr).removeEventListener(e,t._withTask||t,n)}function ur(e,t){if(!i(e.data.on)||!i(t.data.on)){var n=t.data.on||{},r=e.data.on||{};nr=t.elm,function(e){if(o(e[ir])){var t=Y?"change":"input";e[t]=[].concat(e[ir],e[t]||[]),delete e[ir]}o(e[or])&&(e.change=[].concat(e[or],e.change||[]),delete e[or])}(n),ot(n,r,ar,sr,t.context),nr=void 0}}var cr={create:ur,update:ur};function lr(e,t){if(!i(e.data.domProps)||!i(t.data.domProps)){var n,r,a=t.elm,s=e.data.domProps||{},u=t.data.domProps||{};for(n in o(u.__ob__)&&(u=t.data.domProps=S({},u)),s)i(u[n])&&(a[n]="");for(n in u){if(r=u[n],"textContent"===n||"innerHTML"===n){if(t.children&&(t.children.length=0),r===s[n])continue;1===a.childNodes.length&&a.removeChild(a.childNodes[0])}if("value"===n){a._value=r;var c=i(r)?"":String(r);fr(a,c)&&(a.value=c)}else a[n]=r}}}function fr(e,t){return!e.composing&&("OPTION"===e.tagName||function(e,t){var n=!0;try{n=document.activeElement!==e}catch(e){}return n&&e.value!==t}(e,t)||function(e,t){var n=e.value,r=e._vModifiers;if(o(r)){if(r.lazy)return!1;if(r.number)return v(n)!==v(t);if(r.trim)return n.trim()!==t.trim()}return n!==t}(e,t))}var dr={create:lr,update:lr},pr=_(function(e){var t={},n=/:(.+)/;return e.split(/;(?![^(]*\))/g).forEach(function(e){if(e){var r=e.split(n);r.length>1&&(t[r[0].trim()]=r[1].trim())}}),t});function vr(e){var t=hr(e.style);return e.staticStyle?S(e.staticStyle,t):t}function hr(e){return Array.isArray(e)?O(e):"string"==typeof e?pr(e):e}var mr,gr=/^--/,yr=/\s*!important$/,br=function(e,t,n){if(gr.test(t))e.style.setProperty(t,n);else if(yr.test(n))e.style.setProperty(t,n.replace(yr,""),"important");else{var r=wr(t);if(Array.isArray(n))for(var i=0,o=n.length;i-1?t.split(/\s+/).forEach(function(t){return e.classList.add(t)}):e.classList.add(t);else{var n=" "+(e.getAttribute("class")||"")+" ";n.indexOf(" "+t+" ")<0&&e.setAttribute("class",(n+t).trim())}}function Tr(e,t){if(t&&(t=t.trim()))if(e.classList)t.indexOf(" ")>-1?t.split(/\s+/).forEach(function(t){return e.classList.remove(t)}):e.classList.remove(t),e.classList.length||e.removeAttribute("class");else{for(var n=" "+(e.getAttribute("class")||"")+" ",r=" "+t+" ";n.indexOf(r)>=0;)n=n.replace(r," ");(n=n.trim())?e.setAttribute("class",n):e.removeAttribute("class")}}function Ar(e){if(e){if("object"==typeof e){var t={};return!1!==e.css&&S(t,Er(e.name||"v")),S(t,e),t}return"string"==typeof e?Er(e):void 0}}var Er=_(function(e){return{enterClass:e+"-enter",enterToClass:e+"-enter-to",enterActiveClass:e+"-enter-active",leaveClass:e+"-leave",leaveToClass:e+"-leave-to",leaveActiveClass:e+"-leave-active"}}),Sr=V&&!K,Or="transition",$r="animation",Ir="transition",Mr="transitionend",Nr="animation",Lr="animationend";Sr&&(void 0===window.ontransitionend&&void 0!==window.onwebkittransitionend&&(Ir="WebkitTransition",Mr="webkitTransitionEnd"),void 0===window.onanimationend&&void 0!==window.onwebkitanimationend&&(Nr="WebkitAnimation",Lr="webkitAnimationEnd"));var Pr=V?window.requestAnimationFrame?window.requestAnimationFrame.bind(window):setTimeout:function(e){return e()};function jr(e){Pr(function(){Pr(e)})}function Dr(e,t){var n=e._transitionClasses||(e._transitionClasses=[]);n.indexOf(t)<0&&(n.push(t),kr(e,t))}function Rr(e,t){e._transitionClasses&&g(e._transitionClasses,t),Tr(e,t)}function Fr(e,t,n){var r=Ur(e,t),i=r.type,o=r.timeout,a=r.propCount;if(!i)return n();var s=i===Or?Mr:Lr,u=0,c=function(){e.removeEventListener(s,l),n()},l=function(t){t.target===e&&++u>=a&&c()};setTimeout(function(){u0&&(n=Or,l=a,f=o.length):t===$r?c>0&&(n=$r,l=c,f=u.length):f=(n=(l=Math.max(a,c))>0?a>c?Or:$r:null)?n===Or?o.length:u.length:0,{type:n,timeout:l,propCount:f,hasTransform:n===Or&&Hr.test(r[Ir+"Property"])}}function Wr(e,t){for(;e.length1}function Yr(e,t){!0!==t.data.show&&Vr(t)}var Kr=function(e){var t,n,r={},u=e.modules,c=e.nodeOps;for(t=0;tv?b(e,i(n[g+1])?null:n[g+1].elm,n,p,g,r):p>g&&w(0,t,d,v)}(u,p,v,n,s):o(v)?(o(e.text)&&c.setTextContent(u,""),b(u,null,v,0,v.length-1,n)):o(p)?w(0,p,0,p.length-1):o(e.text)&&c.setTextContent(u,""):e.text!==t.text&&c.setTextContent(u,t.text),o(d)&&o(l=d.hook)&&o(l=l.postpatch)&&l(e,t)}}}function T(e,t,n){if(a(n)&&o(e.parent))e.parent.data.pendingInsert=t;else for(var r=0;r-1,a.selected!==o&&(a.selected=o);else if(N(ei(a),r))return void(e.selectedIndex!==s&&(e.selectedIndex=s));i||(e.selectedIndex=-1)}}function Zr(e,t){return t.every(function(t){return!N(t,e)})}function ei(e){return"_value"in e?e._value:e.value}function ti(e){e.target.composing=!0}function ni(e){e.target.composing&&(e.target.composing=!1,ri(e.target,"input"))}function ri(e,t){var n=document.createEvent("HTMLEvents");n.initEvent(t,!0,!0),e.dispatchEvent(n)}function ii(e){return!e.componentInstance||e.data&&e.data.transition?e:ii(e.componentInstance._vnode)}var oi={model:Gr,show:{bind:function(e,t,n){var r=t.value,i=(n=ii(n)).data&&n.data.transition,o=e.__vOriginalDisplay="none"===e.style.display?"":e.style.display;r&&i?(n.data.show=!0,Vr(n,function(){e.style.display=o})):e.style.display=r?o:"none"},update:function(e,t,n){var r=t.value;!r!=!t.oldValue&&((n=ii(n)).data&&n.data.transition?(n.data.show=!0,r?Vr(n,function(){e.style.display=e.__vOriginalDisplay}):zr(n,function(){e.style.display="none"})):e.style.display=r?e.__vOriginalDisplay:"none")},unbind:function(e,t,n,r,i){i||(e.style.display=e.__vOriginalDisplay)}}},ai={name:String,appear:Boolean,css:Boolean,mode:String,type:String,enterClass:String,leaveClass:String,enterToClass:String,leaveToClass:String,enterActiveClass:String,leaveActiveClass:String,appearClass:String,appearActiveClass:String,appearToClass:String,duration:[Number,String,Object]};function si(e){var t=e&&e.componentOptions;return t&&t.Ctor.options.abstract?si(dt(t.children)):e}function ui(e){var t={},n=e.$options;for(var r in n.propsData)t[r]=e[r];var i=n._parentListeners;for(var o in i)t[C(o)]=i[o];return t}function ci(e,t){if(/\d-keep-alive$/.test(t.tag))return e("keep-alive",{props:t.componentOptions.propsData})}var li={name:"transition",props:ai,abstract:!0,render:function(e){var t=this,n=this.$slots.default;if(n&&(n=n.filter(function(e){return e.tag||ft(e)})).length){0;var r=this.mode;0;var i=n[0];if(function(e){for(;e=e.parent;)if(e.data.transition)return!0}(this.$vnode))return i;var o=si(i);if(!o)return i;if(this._leaving)return ci(e,i);var a="__transition-"+this._uid+"-";o.key=null==o.key?o.isComment?a+"comment":a+o.tag:s(o.key)?0===String(o.key).indexOf(a)?o.key:a+o.key:o.key;var u=(o.data||(o.data={})).transition=ui(this),c=this._vnode,l=si(c);if(o.data.directives&&o.data.directives.some(function(e){return"show"===e.name})&&(o.data.show=!0),l&&l.data&&!function(e,t){return t.key===e.key&&t.tag===e.tag}(o,l)&&!ft(l)&&(!l.componentInstance||!l.componentInstance._vnode.isComment)){var f=l.data.transition=S({},u);if("out-in"===r)return this._leaving=!0,at(f,"afterLeave",function(){t._leaving=!1,t.$forceUpdate()}),ci(e,i);if("in-out"===r){if(ft(o))return c;var d,p=function(){d()};at(u,"afterEnter",p),at(u,"enterCancelled",p),at(f,"delayLeave",function(e){d=e})}}return i}}},fi=S({tag:String,moveClass:String},ai);function di(e){e.elm._moveCb&&e.elm._moveCb(),e.elm._enterCb&&e.elm._enterCb()}function pi(e){e.data.newPos=e.elm.getBoundingClientRect()}function vi(e){var t=e.data.pos,n=e.data.newPos,r=t.left-n.left,i=t.top-n.top;if(r||i){e.data.moved=!0;var o=e.elm.style;o.transform=o.WebkitTransform="translate("+r+"px,"+i+"px)",o.transitionDuration="0s"}}delete fi.mode;var hi={Transition:li,TransitionGroup:{props:fi,render:function(e){for(var t=this.tag||this.$vnode.data.tag||"span",n=Object.create(null),r=this.prevChildren=this.children,i=this.$slots.default||[],o=this.children=[],a=ui(this),s=0;s-1?Pn[e]=t.constructor===window.HTMLUnknownElement||t.constructor===window.HTMLElement:Pn[e]=/HTMLUnknownElement/.test(t.toString())},S(fn.options.directives,oi),S(fn.options.components,hi),fn.prototype.__patch__=V?Kr:$,fn.prototype.$mount=function(e,t){return function(e,t,n){return e.$el=t,e.$options.render||(e.$options.render=ve),Ct(e,"beforeMount"),new It(e,function(){e._update(e._render(),n)},$,null,!0),n=!1,null==e.$vnode&&(e._isMounted=!0,Ct(e,"mounted")),e}(this,e=e&&V?function(e){if("string"==typeof e){var t=document.querySelector(e);return t||document.createElement("div")}return e}(e):void 0,t)},V&&setTimeout(function(){F.devtools&&ne&&ne.emit("init",fn)},0),t.a=fn}).call(this,n(/*! ./../../webpack/buildin/global.js */0),n(/*! ./../../timers-browserify/main.js */8).setImmediate)}, +/*!**************************************!*\ + !*** ./example/index.js + 5 modules ***! + \**************************************/ +/*! no exports provided */ +/*! all exports used */ +/*! ModuleConcatenation bailout: Cannot concat with ./node_modules/tributejs/dist/tribute.js (<- Module is not an ECMAScript module) */ +/*! ModuleConcatenation bailout: Cannot concat with ./node_modules/vue/dist/vue.runtime.esm.js (<- Module uses injected variables (global, setImmediate)) */function(e,t,n){"use strict";n.r(t);var r=n(2),i=n(1),o=n.n(i),a={name:"vue-tribute",props:{options:{type:Object,required:!0}},data:function(){return{tribute:null}},mounted:function(){var e=this,t=this.$slots.default[0].elm;this.tribute=new o.a(this.options),this.tribute.attach(t),t.addEventListener("tribute-replaced",function(t){e.$emit("tribute-replaced",t)}),t.addEventListener("tribute-no-match",function(t){e.$emit("tribute-no-match",t)})},render:function(e){return e("div",{staticClass:"v-tribute"},this.$slots.default)}};"undefined"!=typeof window&&window.Vue&&window.Vue.component(a.name,a);var s=function(e,t,n,r,i,o,a,s){var u=typeof(e=e||{}).default;"object"!==u&&"function"!==u||(e=e.default);var c,l="function"==typeof e?e.options:e;if(t&&(l.render=t,l.staticRenderFns=n,l._compiled=!0),r&&(l.functional=!0),o&&(l._scopeId=o),a?(c=function(e){(e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),i&&i.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(a)},l._ssrRegister=c):i&&(c=s?function(){i.call(this,this.$root.$options.shadowRoot)}:i),c)if(l.functional){l._injectStyles=c;var f=l.render;l.render=function(e,t){return c.call(t),f(e,t)}}else{var d=l.beforeCreate;l.beforeCreate=d?[].concat(d,c):[c]}return{exports:e,options:l}}({components:{VueTribute:a},data:function(){return{options:{values:[{key:"Collin Henderson",value:"syropian"},{key:"Sarah Drasner",value:"sarah_edo"},{key:"Evan You",value:"youyuxi"},{key:"Adam Wathan",value:"adamwathan"}]}}},methods:{append:function(){var e=Math.random().toString(36).slice(2);this.options.values.push({key:e,value:e})}}},function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"container"},[n("h1",[e._v("vue-tribute Demo")]),e._v(" "),n("h3",[e._v("Simple text input")]),e._v(" "),n("vue-tribute",{attrs:{options:e.options}},[n("input",{attrs:{type:"text",placeholder:"@..."}})]),e._v(" "),n("br"),e._v(" "),n("h3",[e._v("Textarea")]),e._v(" "),n("vue-tribute",{attrs:{options:e.options}},[n("textarea",{attrs:{placeholder:"@..."}})]),e._v(" "),n("br"),e._v(" "),n("h3",[e._v("contenteditable element")]),e._v(" "),n("vue-tribute",{attrs:{options:e.options}},[n("div",{staticClass:"content-editable",attrs:{contenteditable:"true",placeholder:"@..."}})]),e._v(" "),n("br"),e._v(" "),n("button",{staticClass:"btn",on:{click:e.append}},[e._v("Append New Item")])],1)},[],!1,function(e){n(/*! !../node_modules/mini-css-extract-plugin/dist/loader.js!css-loader?{"autoprefixer":false,"sourceMap":true,"minimize":true}!../node_modules/vue-loader/lib/style-compiler/index?{"optionsId":"0","vue":true,"scoped":false,"sourceMap":false}!sass-loader?{"sourceMap":true}!../node_modules/vue-loader/lib/selector?type=styles&index=0!./App.vue */5)},null,null).exports;new r.a({el:"#app",render:function(e){return e(s)}})}, +/*!******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/mini-css-extract-plugin/dist/loader.js!./node_modules/css-loader?{"autoprefixer":false,"sourceMap":true,"minimize":true}!./node_modules/vue-loader/lib/style-compiler?{"optionsId":"0","vue":true,"scoped":false,"sourceMap":false}!./node_modules/sass-loader/lib/loader.js?{"sourceMap":true}!./node_modules/vue-loader/lib/selector.js?type=styles&index=0!./example/App.vue ***! + \******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/*! no static exports found */ +/*! all exports used */ +/*! ModuleConcatenation bailout: Module is not an ECMAScript module */, +/*!******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/mini-css-extract-plugin/dist/loader.js!./node_modules/css-loader?{"autoprefixer":false,"sourceMap":true,"minimize":true}!./node_modules/vue-loader/lib/style-compiler?{"optionsId":"0","vue":true,"scoped":false,"sourceMap":false}!./node_modules/sass-loader/lib/loader.js?{"sourceMap":true}!./node_modules/vue-loader/lib/selector.js?type=styles&index=0!./example/App.vue ***! + \******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/*! no static exports found */ +/*! all exports used */ +/*! ModuleConcatenation bailout: Module is not an ECMAScript module */function(e,t,n){}, +/*!*****************************************!*\ + !*** ./node_modules/process/browser.js ***! + \*****************************************/ +/*! no static exports found */ +/*! all exports used */ +/*! ModuleConcatenation bailout: Module is not an ECMAScript module */function(e,t){var n,r,i=e.exports={};function o(){throw new Error("setTimeout has not been defined")}function a(){throw new Error("clearTimeout has not been defined")}function s(e){if(n===setTimeout)return setTimeout(e,0);if((n===o||!n)&&setTimeout)return n=setTimeout,setTimeout(e,0);try{return n(e,0)}catch(t){try{return n.call(null,e,0)}catch(t){return n.call(this,e,0)}}}!function(){try{n="function"==typeof setTimeout?setTimeout:o}catch(e){n=o}try{r="function"==typeof clearTimeout?clearTimeout:a}catch(e){r=a}}();var u,c=[],l=!1,f=-1;function d(){l&&u&&(l=!1,u.length?c=u.concat(c):f=-1,c.length&&p())}function p(){if(!l){var e=s(d);l=!0;for(var t=c.length;t;){for(u=c,c=[];++f1)for(var n=1;n=0&&(e._idleTimeoutId=setTimeout(function(){e._onTimeout&&e._onTimeout()},t))},n(/*! setimmediate */7),t.setImmediate="undefined"!=typeof self&&self.setImmediate||void 0!==e&&e.setImmediate||this&&this.setImmediate,t.clearImmediate="undefined"!=typeof self&&self.clearImmediate||void 0!==e&&e.clearImmediate||this&&this.clearImmediate}).call(this,n(/*! ./../webpack/buildin/global.js */0))}, +/*!********************************!*\ + !*** multi ./example/index.js ***! + \********************************/ +/*! no static exports found */ +/*! all exports used */ +/*! ModuleConcatenation bailout: Module is not an ECMAScript module */function(e,t,n){e.exports=n(/*! /Users/sansa/Code/vue-tribute/example/index.js */3)}]); +//# sourceMappingURL=main.5cf04e71.js.map \ No newline at end of file diff --git a/main.5cf04e71.js.map b/main.5cf04e71.js.map new file mode 100644 index 0000000..64ee91f --- /dev/null +++ b/main.5cf04e71.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/tributejs/dist/tribute.js","webpack:///./node_modules/vue/dist/vue.runtime.esm.js","webpack:///./src/index.js","webpack:///./example/App.vue?1ba8","webpack:///./node_modules/vue-loader/lib/runtime/component-normalizer.js","webpack:///example/App.vue","webpack:///./example/App.vue?d12f","webpack:///./example/index.js","webpack:///./node_modules/process/browser.js","webpack:///./node_modules/setimmediate/setImmediate.js","webpack:///./node_modules/timers-browserify/main.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","configurable","enumerable","get","r","value","n","__esModule","object","property","prototype","hasOwnProperty","p","s","g","this","Function","eval","e","window","require","t","u","a","f","Error","code","length","1","_createClass","defineProperties","target","props","descriptor","writable","key","Constructor","protoProps","staticProps","_utils","_TributeEvents","_interopRequireDefault","_TributeEvents2","_TributeMenuEvents","_TributeMenuEvents2","_TributeRange","_TributeRange2","_TributeSearch","_TributeSearch2","obj","default","Tribute","_ref","_this","_ref$values","values","undefined","_ref$iframe","iframe","_ref$selectClass","selectClass","_ref$trigger","trigger","_ref$selectTemplate","selectTemplate","_ref$menuItemTemplate","menuItemTemplate","_ref$lookup","lookup","_ref$fillAttr","fillAttr","_ref$collection","collection","_ref$menuContainer","menuContainer","_ref$noMatchTemplate","noMatchTemplate","_ref$requireLeadingSp","requireLeadingSpace","_ref$allowSpaces","allowSpaces","_ref$replaceTextSuffi","replaceTextSuffix","_ref$positionMenu","positionMenu","instance","TypeError","_classCallCheck","menuSelected","current","inputEvent","isActive","defaultSelectTemplate","bind","defaultMenuItemTemplate","map","item","config","el","jQuery","constructor","NodeList","HTMLCollection","Array","_attach","hasAttribute","console","warn","nodeName","ensureEditable","events","setAttribute","element","inputTypes","indexOf","contentEditable","wrapper","range","getDocument","createElement","ul","className","appendChild","body","scrollTo","_this2","mentionText","currentMentionTextSnapshot","menu","createMenu","menuEvents","processValues","items","search","filter","pre","post","extract","filteredItems","querySelector","positionMenuAtCaret","noMatchEvent","CustomEvent","detail","dispatchEvent","innerHTML","hideMenu","forEach","index","li","addEventListener","getAttribute","setActiveLi","collectionIndex","document","activeElement","placeCaretAtEnd","externalTrigger","isContentEditable","insertTextAtCursor","insertAtCaret","showMenuFor","focus","getSelection","createRange","selectNodeContents","collapse","sel","removeAllRanges","addRange","createTextRange","textRange","moveToElementText","select","text","getRangeAt","deleteContents","textNode","createTextNode","insertNode","textarea","scrollPos","scrollTop","caretPos","selectionStart","front","substring","back","selectionEnd","style","cssText","originalEvent","parseInt","content","replaceText","replaceTriggerText","newValues","replace","concat","_append","original","matchItem","string","./TributeEvents","./TributeMenuEvents","./TributeRange","./TributeSearch","./utils","2","TributeEvents","tribute","keydown","keyup","input","event","shouldDeactivate","commandEvent","keys","keyCode","callbacks","toLowerCase","contains","preventDefault","stopPropagation","parentNode","selectItemAtIndex","setTimeout","updateSelection","getKeyCode","isNaN","triggers","find","charCodeAt","triggerChar","eventKeyPressed","info","getTriggerInfo","mentionTriggerChar","selectedPath","mentionSelectedPath","selectedOffset","mentionSelectedOffset","collectionItem","enter","escape","tab","up","count","selected","scrollHeight","down","delete","lis","querySelectorAll","menuFullHeight","getFullHeight","liHeight","offset","totalScroll","elem","includeMargin","height","getBoundingClientRect","currentStyle","getComputedStyle","parseFloat","marginTop","marginBottom","3","TributeMenuEvents","click","debounce","onscroll","func","wait","immediate","timeout","_arguments","arguments","context","args","callNow","clearTimeout","apply","4","TributeRange","contentWindow","coordinates","getContentEditableCaretPosition","mentionPosition","getTextAreaOrInputUnderlinePosition","top","left","scrollIntoView","targetElement","path","childNodes","nextSibling","previousSibling","getWindowSelection","setStart","setEnd","error","selectElement","hasTrailingSpace","replaceEvent","_textSuffix","pasteHtml","myField","textSuffix","startPos","endPos","html","anchorNode","frag","createDocumentFragment","node","lastNode","firstChild","cloneRange","setStartAfter","ctx","ce","getNodePositionInParent","push","reverse","startOffset","selectedElem","workingNodeContent","textContent","selectStartOffset","textComponent","menuAlreadyActive","selectionInfo","getContentEditableSelectedPath","effectiveRange","getTextPrecedingCurrentSelection","mostRecentTriggerCharPos","idx","lastIndexWithLeadingSpace","lastIndexOf","test","currentTriggerSnippet","firstSnippetChar","leadingSpace","trim","regex","mentionSelectedElement","str","char","reversedStr","split","join","cidx","len","firstChar","match","position","isFirefox","mozInnerScreenX","div","id","computed","whiteSpace","wordWrap","visibility","prop","width","overflowY","overflow","span","rect","doc","documentElement","windowLeft","pageXOffset","scrollLeft","clientLeft","windowTop","pageYOffset","clientTop","offsetTop","borderTopWidth","fontSize","offsetLeft","borderLeftWidth","removeChild","selectedNodePosition","markerEl","markerId","Date","getTime","Math","random","toString","substr","prevRange","offsetHeight","clientRect","elemTop","elemBottom","innerHeight","maxY","targetY","5","TributeSearch","pattern","array","opts","compareString","caseSensitive","patternCache","traverse","rendered","render","cache","score","stringIndex","patternIndex","calculateScore","slice","best","temp","pop","indices","arr","reduce","prev","sort","b","compare","6","_Tribute","_Tribute2","./Tribute","7","predicate","list","thisArg","params","bubbles","cancelable","evt","createEvent","initCustomEvent","Event","global","setImmediate","emptyObject","freeze","isUndef","v","isDef","isTrue","isPrimitive","isObject","_toString","isPlainObject","isRegExp","isValidArrayIndex","val","String","floor","isFinite","JSON","stringify","toNumber","makeMap","expectsLowerCase","create","isReservedAttribute","remove","splice","hasOwn","cached","fn","camelizeRE","camelize","_","toUpperCase","capitalize","charAt","hyphenateRE","hyphenate","boundFn","_length","toArray","start","ret","extend","to","_from","toObject","res","noop","no","identity","looseEqual","isObjectA","isObjectB","isArrayA","isArray","isArrayB","every","keysA","keysB","looseIndexOf","once","called","SSR_ATTR","ASSET_TYPES","LIFECYCLE_HOOKS","optionMergeStrategies","silent","productionTip","devtools","performance","errorHandler","warnHandler","ignoredElements","keyCodes","isReservedTag","isReservedAttr","isUnknownElement","getTagNamespace","parsePlatformTagName","mustUseProp","_lifecycleHooks","def","bailRE","_isServer","hasProto","inBrowser","inWeex","WXEnvironment","platform","weexPlatform","UA","navigator","userAgent","isIE","isIE9","isEdge","isIOS","nativeWatch","watch","supportsPassive","isServerRendering","env","VUE_ENV","__VUE_DEVTOOLS_GLOBAL_HOOK__","isNative","Ctor","_Set","hasSymbol","Symbol","Reflect","ownKeys","Set","set","has","add","clear","uid","Dep","subs","addSub","sub","removeSub","depend","addDep","notify","update","targetStack","pushTarget","_target","popTarget","VNode","tag","data","children","elm","componentOptions","asyncFactory","ns","fnContext","fnOptions","fnScopeId","componentInstance","parent","raw","isStatic","isRootInsert","isComment","isCloned","isOnce","asyncMeta","isAsyncPlaceholder","prototypeAccessors","child","createEmptyVNode","createTextVNode","cloneVNode","vnode","cloned","arrayProto","arrayMethods","method","inserted","result","ob","__ob__","observeArray","dep","arrayKeys","getOwnPropertyNames","shouldObserve","toggleObserving","Observer","vmCount","protoAugment","copyAugment","walk","src","__proto__","observe","asRootData","isExtensible","_isVue","defineReactive","customSetter","shallow","getOwnPropertyDescriptor","setter","childOb","dependArray","newVal","max","del","strats","mergeData","from","toVal","fromVal","mergeDataOrFn","parentVal","childVal","vm","instanceData","defaultData","mergeHook","mergeAssets","hook","type","key$1","methods","inject","provide","defaultStrat","mergeOptions","options","normalizeProps","normalized","normalizeInject","dirs","directives","normalizeDirectives","extendsFrom","extends","mixins","mergeField","strat","resolveAsset","warnMissing","assets","camelizedId","PascalCaseId","validateProp","propOptions","propsData","absent","booleanIndex","getTypeIndex","Boolean","$options","_props","getType","getPropDefaultValue","prevShouldObserve","isSameType","expectedTypes","handleError","err","cur","$parent","hooks","errorCaptured","globalHandleError","logError","microTimerFunc","macroTimerFunc","pending","flushCallbacks","copies","useMacroTask","MessageChannel","channel","port","port2","port1","onmessage","postMessage","Promise","resolve","then","nextTick","cb","_resolve","seenObjects","_traverse","seen","isA","isFrozen","depId","normalizeEvent","passive","once$$1","capture","createFnInvoker","fns","invoker","arguments$1","updateListeners","on","oldOn","remove$$1","old","mergeVNodeHook","hookKey","oldHook","wrappedHook","merged","checkProp","hash","altKey","preserve","normalizeChildren","normalizeArrayChildren","nestedIndex","lastIndex","last","isTextNode","shift","_isVList","ensureCtor","comp","base","toStringTag","getFirstComponentChild","$once","$on","remove$1","$off","updateComponentListeners","listeners","oldListeners","resolveSlots","slots","attrs","slot","name$1","isWhitespace","resolveScopedSlots","activeInstance","isInInactiveTree","_inactive","activateChildComponent","direct","_directInactive","$children","callHook","handlers","j","_hasHookEvent","$emit","queue","activatedChildren","waiting","flushing","flushSchedulerQueue","watcher","run","activatedQueue","updatedQueue","callActivatedHooks","_watcher","_isMounted","callUpdatedHooks","emit","uid$1","Watcher","expOrFn","isRenderWatcher","_watchers","deep","user","lazy","sync","active","dirty","deps","newDeps","depIds","newDepIds","expression","segments","parsePath","cleanupDeps","tmp","queueWatcher","oldValue","evaluate","teardown","_isBeingDestroyed","sharedPropertyDefinition","proxy","sourceKey","initState","propsOptions","_propKeys","loop","initProps","initMethods","_data","getData","initData","watchers","_computedWatchers","isSSR","userDef","computedWatcherOptions","defineComputed","initComputed","handler","createWatcher","initWatch","shouldCache","createComputedGetter","$watch","resolveInject","provideKey","source","_provided","provideDefault","renderList","renderSlot","fallback","bindObject","nodes","scopedSlotFn","$scopedSlots","slotNodes","$slots","_rendered","$createElement","resolveFilter","isKeyNotMatch","expect","actual","checkKeyCodes","eventKeyCode","builtInKeyCode","eventKeyName","builtInKeyName","mappedKeyCode","bindObjectProps","asProp","isSync","domProps","$event","renderStatic","isInFor","_staticTrees","tree","markStatic","staticRenderFns","_renderProxy","markOnce","markStaticNode","bindObjectListeners","existing","ours","installRenderHelpers","_o","_n","_s","_l","_t","_q","_i","_m","_f","_k","_b","_v","_e","_u","_g","FunctionalRenderContext","contextVm","_original","isCompiled","_compiled","needNormalization","injections","scopedSlots","_scopeId","_c","cloneAndMarkFunctionalResult","clone","mergeProps","componentVNodeHooks","init","hydrating","parentElm","refElm","_isDestroyed","keepAlive","mountedNode","prepatch","_isComponent","_parentVnode","_parentElm","_refElm","inlineTemplate","createComponentInstanceForVnode","$mount","oldVnode","parentVnode","renderChildren","hasChildren","_renderChildren","$vnode","_vnode","$attrs","$listeners","propKeys","_parentListeners","$forceUpdate","updateChildComponent","insert","destroy","deactivateChildComponent","$destroy","hooksToMerge","createComponent","baseCtor","_base","cid","factory","errorComp","resolved","loading","loadingComp","contexts","forceRender","reject","reason","component","delay","resolveAsyncComponent","createAsyncPlaceholder","resolveConstructorOptions","model","callback","transformModel","extractPropsFromVNodeData","functional","renderContext","vnodes","createFunctionalComponent","nativeOn","abstract","installComponentHooks","SIMPLE_NORMALIZE","ALWAYS_NORMALIZE","normalizationType","alwaysNormalize","is","simpleNormalizeChildren","applyNS","force","class","registerDeepBindings","_createElement","uid$3","super","superOptions","modifiedOptions","modified","latest","extended","extendOptions","sealed","sealedOptions","dedupe","resolveModifiedOptions","components","Vue","_init","initExtend","Super","SuperId","cachedCtors","_Ctor","Sub","Comp","initProps$1","initComputed$1","mixin","use","getComponentName","matches","pruneCache","keepAliveInstance","cachedNode","pruneCacheEntry","cached$$1","_uid","vnodeComponentOptions","_componentTag","initInternalComponent","_self","$root","$refs","initLifecycle","_events","initEvents","parentData","initRender","initInjections","initProvide","initMixin","dataDef","propsDef","$set","$delete","stateMixin","hookRE","cbs","i$1","eventsMixin","_update","prevEl","$el","prevVnode","prevActiveInstance","__patch__","__vue__","lifecycleMixin","$nextTick","_render","ref","renderMixin","patternTypes","RegExp","builtInComponents","KeepAlive","include","exclude","Number","created","destroyed","mounted","this$1","configDef","util","plugin","installedPlugins","_installedPlugins","unshift","install","initUse","initMixin$1","definition","initAssetRegisters","initGlobalAPI","ssrContext","version","acceptValue","isEnumeratedAttr","isBooleanAttr","xlinkNS","isXlink","getXlinkProp","isFalsyAttrValue","genClassForVnode","childNode","mergeClassData","staticClass","dynamicClass","stringifyClass","renderClass","stringified","stringifyArray","stringifyObject","namespaceMap","svg","math","isHTMLTag","isSVG","unknownElementCache","isTextInputType","nodeOps","tagName","multiple","createElementNS","namespace","createComment","insertBefore","newNode","referenceNode","setTextContent","setStyleScope","scopeId","registerRef","isRemoval","refs","refInFor","emptyNode","sameVnode","typeA","typeB","sameInputType","createKeyToOldIdx","beginIdx","endIdx","updateDirectives","oldDir","dir","isCreate","isDestroy","oldDirs","normalizeDirectives$1","newDirs","dirsWithInsert","dirsWithPostpatch","callHook$1","componentUpdated","callInsert","emptyModifiers","modifiers","getRawDirName","rawName","baseModules","updateAttrs","inheritAttrs","oldAttrs","setAttr","removeAttributeNS","removeAttribute","baseSetAttr","setAttributeNS","__ieph","blocker","stopImmediatePropagation","removeEventListener","updateClass","oldData","cls","transitionClass","_transitionClasses","_prevClass","target$1","klass","RANGE_TOKEN","CHECKBOX_RADIO_TOKEN","add$1","_withTask","onceHandler","remove$2","createOnceHandler","updateDOMListeners","change","normalizeEvents","updateDOMProps","oldProps","_value","strCur","shouldUpdateValue","checkVal","composing","notInFocus","isNotInFocusAndDirty","_vModifiers","number","isDirtyWithModifiers","parseStyleText","propertyDelimiter","normalizeStyleData","normalizeStyleBinding","staticStyle","bindingStyle","emptyStyle","cssVarRE","importantRE","setProp","setProperty","normalizedName","normalize","vendorNames","capName","updateStyle","oldStaticStyle","oldStyleBinding","normalizedStyle","oldStyle","newStyle","checkChild","styleData","getStyle","addClass","classList","removeClass","tar","resolveTransition","css","autoCssTransition","enterClass","enterToClass","enterActiveClass","leaveClass","leaveToClass","leaveActiveClass","hasTransition","TRANSITION","ANIMATION","transitionProp","transitionEndEvent","animationProp","animationEndEvent","ontransitionend","onwebkittransitionend","onanimationend","onwebkitanimationend","raf","requestAnimationFrame","nextFrame","addTransitionClass","transitionClasses","removeTransitionClass","whenTransitionEnds","expectedType","getTransitionInfo","propCount","ended","end","onEnd","transformRE","styles","transitionDelays","transitionDurations","transitionTimeout","getTimeout","animationDelays","animationDurations","animationTimeout","hasTransform","delays","durations","toMs","toggleDisplay","_leaveCb","cancelled","transition","_enterCb","nodeType","appearClass","appearToClass","appearActiveClass","beforeEnter","afterEnter","enterCancelled","beforeAppear","appear","afterAppear","appearCancelled","duration","transitionNode","isAppear","startClass","activeClass","toClass","beforeEnterHook","enterHook","afterEnterHook","enterCancelledHook","explicitEnterDuration","expectsCSS","userWantsControl","getHookArgumentsLength","show","pendingNode","_pending","isValidDuration","leave","rm","beforeLeave","afterLeave","leaveCancelled","delayLeave","explicitLeaveDuration","performLeave","invokerFns","_enter","patch","backend","removeNode","createElm","insertedVnodeQueue","nested","ownerArray","isReactivated","initComponent","innerNode","activate","reactivateComponent","setScope","createChildren","invokeCreateHooks","pendingInsert","isPatchable","ref$$1","ancestor","addVnodes","startIdx","invokeDestroyHook","removeVnodes","ch","removeAndInvokeRemoveHook","childElm","createRmCb","findIdxInOld","oldCh","patchVnode","removeOnly","hydrate","newCh","oldKeyToIdx","idxInOld","vnodeToMove","oldStartIdx","newStartIdx","oldEndIdx","oldStartVnode","oldEndVnode","newEndIdx","newStartVnode","newEndVnode","canMove","updateChildren","postpatch","invokeInsertHook","initial","isRenderedModule","inVPre","hasChildNodes","childrenMatch","fullInvoke","isInitialPatch","isRealElement","oldElm","parentElm$1","patchable","i$2","createPatchFunction","vmodel","directive","binding","_vOptions","setSelected","getValue","onCompositionStart","onCompositionEnd","prevOptions","curOptions","some","hasNoMatchingOption","actuallySetSelected","isMultiple","option","selectedIndex","initEvent","locateNode","platformDirectives","transition$$1","originalDisplay","__vOriginalDisplay","display","unbind","transitionProps","mode","getRealChild","compOptions","extractTransitionData","placeholder","h","rawChild","Transition","hasParentTransition","_leaving","oldRawChild","oldChild","isSameChild","delayedLeave","moveClass","callPendingCbs","_moveCb","recordPosition","newPos","applyTranslation","oldPos","pos","dx","dy","moved","transform","WebkitTransform","transitionDuration","platformComponents","TransitionGroup","prevChildren","rawChildren","transitionData","kept","removed","c$1","beforeUpdate","updated","hasMove","_reflow","propertyName","_hasMove","cloneNode","attr","HTMLUnknownElement","HTMLElement","mountComponent","query","__webpack_exports__","src_VueTribute","required","tribute_default","attach","example_App","scriptExports","functionalTemplate","injectStyles","moduleIdentifier","shadowMode","__VUE_SSR_CONTEXT__","_registeredComponents","_ssrRegister","shadowRoot","_injectStyles","originalRender","beforeCreate","normalizeComponent","VueTribute","kv","_vm","_h","contenteditable","append","vue_runtime_esm","cachedSetTimeout","cachedClearTimeout","process","defaultSetTimout","defaultClearTimeout","runTimeout","fun","currentQueue","draining","queueIndex","cleanUpNextTick","drainQueue","marker","runClearTimeout","Item","title","browser","argv","versions","addListener","off","removeListener","removeAllListeners","prependListener","prependOnceListener","cwd","chdir","umask","registerImmediate","messagePrefix","onGlobalMessage","nextHandle","tasksByHandle","currentlyRunningATask","attachTo","getPrototypeOf","handle","runIfPresent","importScripts","postMessageIsAsynchronous","oldOnMessage","canUsePostMessage","script","onreadystatechange","attachEvent","task","clearImmediate","self","Timeout","clearFn","_id","_clearFn","setInterval","clearInterval","close","unref","enroll","msecs","_idleTimeoutId","_idleTimeout","unenroll","_unrefActive","_onTimeout"],"mappings":"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","file":"main.5cf04e71.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/vue-tribute/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 9);\n","var g;\r\n\r\n// This works in non-strict mode\r\ng = (function() {\r\n\treturn this;\r\n})();\r\n\r\ntry {\r\n\t// This works if eval is allowed (see CSP)\r\n\tg = g || Function(\"return this\")() || (1, eval)(\"this\");\r\n} catch (e) {\r\n\t// This works if the window reference is available\r\n\tif (typeof window === \"object\") g = window;\r\n}\r\n\r\n// g can still be undefined, but nothing to do about it...\r\n// We return undefined, instead of nothing here, so it's\r\n// easier to handle this case. if(!global) { ...}\r\n\r\nmodule.exports = g;\r\n","(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.Tribute = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;oNo match!';\n }.bind(_this);\n }(noMatchTemplate),\n\n // column to search against in the object\n lookup: lookup,\n\n // column that contains the content to insert by default\n fillAttr: fillAttr,\n\n // array of objects or a function returning an array of objects\n values: values,\n\n requireLeadingSpace: requireLeadingSpace\n }];\n } else if (collection) {\n this.collection = collection.map(function (item) {\n return {\n trigger: item.trigger || trigger,\n iframe: item.iframe || iframe,\n selectClass: item.selectClass || selectClass,\n selectTemplate: (item.selectTemplate || Tribute.defaultSelectTemplate).bind(_this),\n menuItemTemplate: (item.menuItemTemplate || Tribute.defaultMenuItemTemplate).bind(_this),\n // function called when menu is empty, disables hiding of menu.\n noMatchTemplate: function (t) {\n if (typeof t === 'function') {\n return t.bind(_this);\n }\n\n return null;\n }(noMatchTemplate),\n lookup: item.lookup || lookup,\n fillAttr: item.fillAttr || fillAttr,\n values: item.values,\n requireLeadingSpace: item.requireLeadingSpace\n };\n });\n } else {\n throw new Error('[Tribute] No collection specified.');\n }\n\n new _TributeRange2.default(this);\n new _TributeEvents2.default(this);\n new _TributeMenuEvents2.default(this);\n new _TributeSearch2.default(this);\n }\n\n _createClass(Tribute, [{\n key: \"triggers\",\n value: function triggers() {\n return this.collection.map(function (config) {\n return config.trigger;\n });\n }\n }, {\n key: \"attach\",\n value: function attach(el) {\n if (!el) {\n throw new Error('[Tribute] Must pass in a DOM node or NodeList.');\n }\n\n // Check if it is a jQuery collection\n if (typeof jQuery !== 'undefined' && el instanceof jQuery) {\n el = el.get();\n }\n\n // Is el an Array/Array-like object?\n if (el.constructor === NodeList || el.constructor === HTMLCollection || el.constructor === Array) {\n var length = el.length;\n for (var i = 0; i < length; ++i) {\n this._attach(el[i]);\n }\n } else {\n this._attach(el);\n }\n }\n }, {\n key: \"_attach\",\n value: function _attach(el) {\n if (el.hasAttribute('data-tribute')) {\n console.warn('Tribute was already bound to ' + el.nodeName);\n }\n\n this.ensureEditable(el);\n this.events.bind(el);\n el.setAttribute('data-tribute', true);\n }\n }, {\n key: \"ensureEditable\",\n value: function ensureEditable(element) {\n if (Tribute.inputTypes().indexOf(element.nodeName) === -1) {\n if (element.contentEditable) {\n element.contentEditable = true;\n } else {\n throw new Error('[Tribute] Cannot bind to ' + element.nodeName);\n }\n }\n }\n }, {\n key: \"createMenu\",\n value: function createMenu() {\n var wrapper = this.range.getDocument().createElement('div'),\n ul = this.range.getDocument().createElement('ul');\n\n wrapper.className = 'tribute-container';\n wrapper.appendChild(ul);\n\n if (this.menuContainer) {\n return this.menuContainer.appendChild(wrapper);\n }\n\n return this.range.getDocument().body.appendChild(wrapper);\n }\n }, {\n key: \"showMenuFor\",\n value: function showMenuFor(element, scrollTo) {\n var _this2 = this;\n\n // Only proceed if menu isn't already shown for the current element & mentionText\n if (this.isActive && this.current.element === element && this.current.mentionText === this.currentMentionTextSnapshot) {\n return;\n }\n this.currentMentionTextSnapshot = this.current.mentionText;\n\n // create the menu if it doesn't exist.\n if (!this.menu) {\n this.menu = this.createMenu();\n this.menuEvents.bind(this.menu);\n }\n\n this.isActive = true;\n this.menuSelected = 0;\n\n if (!this.current.mentionText) {\n this.current.mentionText = '';\n }\n\n var processValues = function processValues(values) {\n // Tribute may not be active any more by the time the value callback returns\n if (!_this2.isActive) {\n return;\n }\n\n var items = _this2.search.filter(_this2.current.mentionText, values, {\n pre: '',\n post: '',\n extract: function extract(el) {\n if (typeof _this2.current.collection.lookup === 'string') {\n return el[_this2.current.collection.lookup];\n } else if (typeof _this2.current.collection.lookup === 'function') {\n return _this2.current.collection.lookup(el);\n } else {\n throw new Error('Invalid lookup attribute, lookup must be string or function.');\n }\n }\n });\n\n _this2.current.filteredItems = items;\n\n var ul = _this2.menu.querySelector('ul');\n\n _this2.range.positionMenuAtCaret(scrollTo);\n\n if (!items.length) {\n var noMatchEvent = new CustomEvent('tribute-no-match', { detail: _this2.menu });\n _this2.current.element.dispatchEvent(noMatchEvent);\n if (!_this2.current.collection.noMatchTemplate) {\n _this2.hideMenu();\n } else {\n ul.innerHTML = _this2.current.collection.noMatchTemplate();\n }\n\n return;\n }\n\n ul.innerHTML = '';\n\n items.forEach(function (item, index) {\n var li = _this2.range.getDocument().createElement('li');\n li.setAttribute('data-index', index);\n li.addEventListener('mouseenter', function (e) {\n var li = e.target;\n var index = li.getAttribute('data-index');\n _this2.events.setActiveLi(index);\n });\n if (_this2.menuSelected === index) {\n li.className = _this2.current.collection.selectClass;\n }\n li.innerHTML = _this2.current.collection.menuItemTemplate(item);\n ul.appendChild(li);\n });\n };\n\n if (typeof this.current.collection.values === 'function') {\n this.current.collection.values(this.current.mentionText, processValues);\n } else {\n processValues(this.current.collection.values);\n }\n }\n }, {\n key: \"showMenuForCollection\",\n value: function showMenuForCollection(element, collectionIndex) {\n if (element !== document.activeElement) {\n this.placeCaretAtEnd(element);\n }\n\n this.current.collection = this.collection[collectionIndex || 0];\n this.current.externalTrigger = true;\n this.current.element = element;\n\n if (element.isContentEditable) this.insertTextAtCursor(this.current.collection.trigger);else this.insertAtCaret(element, this.current.collection.trigger);\n\n this.showMenuFor(element);\n }\n\n // TODO: make sure this works for inputs/textareas\n\n }, {\n key: \"placeCaretAtEnd\",\n value: function placeCaretAtEnd(el) {\n el.focus();\n if (typeof window.getSelection != \"undefined\" && typeof document.createRange != \"undefined\") {\n var range = document.createRange();\n range.selectNodeContents(el);\n range.collapse(false);\n var sel = window.getSelection();\n sel.removeAllRanges();\n sel.addRange(range);\n } else if (typeof document.body.createTextRange != \"undefined\") {\n var textRange = document.body.createTextRange();\n textRange.moveToElementText(el);\n textRange.collapse(false);\n textRange.select();\n }\n }\n\n // for contenteditable\n\n }, {\n key: \"insertTextAtCursor\",\n value: function insertTextAtCursor(text) {\n var sel, range, html;\n sel = window.getSelection();\n range = sel.getRangeAt(0);\n range.deleteContents();\n var textNode = document.createTextNode(text);\n range.insertNode(textNode);\n range.selectNodeContents(textNode);\n range.collapse(false);\n sel.removeAllRanges();\n sel.addRange(range);\n }\n\n // for regular inputs\n\n }, {\n key: \"insertAtCaret\",\n value: function insertAtCaret(textarea, text) {\n var scrollPos = textarea.scrollTop;\n var caretPos = textarea.selectionStart;\n\n var front = textarea.value.substring(0, caretPos);\n var back = textarea.value.substring(textarea.selectionEnd, textarea.value.length);\n textarea.value = front + text + back;\n caretPos = caretPos + text.length;\n textarea.selectionStart = caretPos;\n textarea.selectionEnd = caretPos;\n textarea.focus();\n textarea.scrollTop = scrollPos;\n }\n }, {\n key: \"hideMenu\",\n value: function hideMenu() {\n if (this.menu) {\n this.menu.style.cssText = 'display: none;';\n this.isActive = false;\n this.menuSelected = 0;\n this.current = {};\n }\n }\n }, {\n key: \"selectItemAtIndex\",\n value: function selectItemAtIndex(index, originalEvent) {\n index = parseInt(index);\n if (typeof index !== 'number') return;\n var item = this.current.filteredItems[index];\n var content = this.current.collection.selectTemplate(item);\n if (content !== null) this.replaceText(content, originalEvent, item);\n }\n }, {\n key: \"replaceText\",\n value: function replaceText(content, originalEvent, item) {\n this.range.replaceTriggerText(content, true, true, originalEvent, item);\n }\n }, {\n key: \"_append\",\n value: function _append(collection, newValues, replace) {\n if (typeof collection.values === 'function') {\n throw new Error('Unable to append to values, as it is a function.');\n } else if (!replace) {\n collection.values = collection.values.concat(newValues);\n } else {\n collection.values = newValues;\n }\n }\n }, {\n key: \"append\",\n value: function append(collectionIndex, newValues, replace) {\n var index = parseInt(collectionIndex);\n if (typeof index !== 'number') throw new Error('please provide an index for the collection to update.');\n\n var collection = this.collection[index];\n\n this._append(collection, newValues, replace);\n }\n }, {\n key: \"appendCurrent\",\n value: function appendCurrent(newValues, replace) {\n if (this.isActive) {\n this._append(this.current.collection, newValues, replace);\n } else {\n throw new Error('No active state. Please use append instead and pass an index.');\n }\n }\n }], [{\n key: \"defaultSelectTemplate\",\n value: function defaultSelectTemplate(item) {\n if (typeof item === 'undefined') return null;\n if (this.range.isContentEditable(this.current.element)) {\n return '' + (this.current.collection.trigger + item.original[this.current.collection.fillAttr]) + '';\n }\n\n return this.current.collection.trigger + item.original[this.current.collection.fillAttr];\n }\n }, {\n key: \"defaultMenuItemTemplate\",\n value: function defaultMenuItemTemplate(matchItem) {\n return matchItem.string;\n }\n }, {\n key: \"inputTypes\",\n value: function inputTypes() {\n return ['TEXTAREA', 'INPUT'];\n }\n }]);\n\n return Tribute;\n}();\n\nexports.default = Tribute;\nmodule.exports = exports[\"default\"];\n\n},{\"./TributeEvents\":2,\"./TributeMenuEvents\":3,\"./TributeRange\":4,\"./TributeSearch\":5,\"./utils\":7}],2:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar TributeEvents = function () {\n function TributeEvents(tribute) {\n _classCallCheck(this, TributeEvents);\n\n this.tribute = tribute;\n this.tribute.events = this;\n }\n\n _createClass(TributeEvents, [{\n key: 'bind',\n value: function bind(element) {\n element.addEventListener('keydown', this.keydown.bind(element, this), false);\n element.addEventListener('keyup', this.keyup.bind(element, this), false);\n element.addEventListener('input', this.input.bind(element, this), false);\n }\n }, {\n key: 'keydown',\n value: function keydown(instance, event) {\n if (instance.shouldDeactivate(event)) {\n instance.tribute.isActive = false;\n instance.tribute.hideMenu();\n }\n\n var element = this;\n instance.commandEvent = false;\n\n TributeEvents.keys().forEach(function (o) {\n if (o.key === event.keyCode) {\n instance.commandEvent = true;\n instance.callbacks()[o.value.toLowerCase()](event, element);\n }\n });\n }\n }, {\n key: 'input',\n value: function input(instance, event) {\n instance.inputEvent = true;\n instance.keyup.call(this, instance, event);\n }\n }, {\n key: 'click',\n value: function click(instance, event) {\n var tribute = instance.tribute;\n if (tribute.menu && tribute.menu.contains(event.target)) {\n var li = event.target;\n event.preventDefault();\n event.stopPropagation();\n while (li.nodeName.toLowerCase() !== 'li') {\n li = li.parentNode;\n if (!li || li === tribute.menu) {\n throw new Error('cannot find the
  • container for the click');\n }\n }\n tribute.selectItemAtIndex(li.getAttribute('data-index'), event);\n tribute.hideMenu();\n\n // TODO: should fire with externalTrigger and target is outside of menu\n } else if (tribute.current.element && !tribute.current.externalTrigger) {\n tribute.current.externalTrigger = false;\n setTimeout(function () {\n return tribute.hideMenu();\n });\n }\n }\n }, {\n key: 'keyup',\n value: function keyup(instance, event) {\n if (instance.inputEvent) {\n instance.inputEvent = false;\n }\n instance.updateSelection(this);\n\n if (event.keyCode === 27) return;\n\n if (!instance.tribute.isActive) {\n var keyCode = instance.getKeyCode(instance, this, event);\n\n if (isNaN(keyCode) || !keyCode) return;\n\n var trigger = instance.tribute.triggers().find(function (trigger) {\n return trigger.charCodeAt(0) === keyCode;\n });\n\n if (typeof trigger !== 'undefined') {\n instance.callbacks().triggerChar(event, this, trigger);\n }\n }\n\n if (instance.tribute.current.trigger && instance.commandEvent === false || instance.tribute.isActive && event.keyCode === 8) {\n instance.tribute.showMenuFor(this, true);\n }\n }\n }, {\n key: 'shouldDeactivate',\n value: function shouldDeactivate(event) {\n if (!this.tribute.isActive) return false;\n\n if (this.tribute.current.mentionText.length === 0) {\n var eventKeyPressed = false;\n TributeEvents.keys().forEach(function (o) {\n if (event.keyCode === o.key) eventKeyPressed = true;\n });\n\n return !eventKeyPressed;\n }\n\n return false;\n }\n }, {\n key: 'getKeyCode',\n value: function getKeyCode(instance, el, event) {\n var char = void 0;\n var tribute = instance.tribute;\n var info = tribute.range.getTriggerInfo(false, false, true, tribute.allowSpaces);\n\n if (info) {\n return info.mentionTriggerChar.charCodeAt(0);\n } else {\n return false;\n }\n }\n }, {\n key: 'updateSelection',\n value: function updateSelection(el) {\n this.tribute.current.element = el;\n var info = this.tribute.range.getTriggerInfo(false, false, true, this.tribute.allowSpaces);\n\n if (info) {\n this.tribute.current.selectedPath = info.mentionSelectedPath;\n this.tribute.current.mentionText = info.mentionText;\n this.tribute.current.selectedOffset = info.mentionSelectedOffset;\n }\n }\n }, {\n key: 'callbacks',\n value: function callbacks() {\n var _this = this;\n\n return {\n triggerChar: function triggerChar(e, el, trigger) {\n var tribute = _this.tribute;\n tribute.current.trigger = trigger;\n\n var collectionItem = tribute.collection.find(function (item) {\n return item.trigger === trigger;\n });\n\n tribute.current.collection = collectionItem;\n if (tribute.inputEvent) tribute.showMenuFor(el, true);\n },\n enter: function enter(e, el) {\n // choose selection\n if (_this.tribute.isActive) {\n e.preventDefault();\n e.stopPropagation();\n setTimeout(function () {\n _this.tribute.selectItemAtIndex(_this.tribute.menuSelected, e);\n _this.tribute.hideMenu();\n }, 0);\n }\n },\n escape: function escape(e, el) {\n if (_this.tribute.isActive) {\n e.preventDefault();\n e.stopPropagation();\n _this.tribute.isActive = false;\n _this.tribute.hideMenu();\n }\n },\n tab: function tab(e, el) {\n // choose first match\n _this.callbacks().enter(e, el);\n },\n up: function up(e, el) {\n // navigate up ul\n if (_this.tribute.isActive) {\n e.preventDefault();\n e.stopPropagation();\n var count = _this.tribute.current.filteredItems.length,\n selected = _this.tribute.menuSelected;\n\n if (count > selected && selected > 0) {\n _this.tribute.menuSelected--;\n _this.setActiveLi();\n } else if (selected === 0) {\n _this.tribute.menuSelected = count - 1;\n _this.setActiveLi();\n _this.tribute.menu.scrollTop = _this.tribute.menu.scrollHeight;\n }\n }\n },\n down: function down(e, el) {\n // navigate down ul\n if (_this.tribute.isActive) {\n e.preventDefault();\n e.stopPropagation();\n var count = _this.tribute.current.filteredItems.length - 1,\n selected = _this.tribute.menuSelected;\n\n if (count > selected) {\n _this.tribute.menuSelected++;\n _this.setActiveLi();\n } else if (count === selected) {\n _this.tribute.menuSelected = 0;\n _this.setActiveLi();\n _this.tribute.menu.scrollTop = 0;\n }\n }\n },\n delete: function _delete(e, el) {\n if (_this.tribute.isActive && _this.tribute.current.mentionText.length < 1) {\n _this.tribute.hideMenu();\n } else if (_this.tribute.isActive) {\n _this.tribute.showMenuFor(el);\n }\n }\n };\n }\n }, {\n key: 'setActiveLi',\n value: function setActiveLi(index) {\n var lis = this.tribute.menu.querySelectorAll('li'),\n length = lis.length >>> 0;\n\n // get heights\n var menuFullHeight = this.getFullHeight(this.tribute.menu),\n liHeight = this.getFullHeight(lis[0]);\n\n if (index) this.tribute.menuSelected = index;\n\n for (var i = 0; i < length; i++) {\n var li = lis[i];\n if (i === this.tribute.menuSelected) {\n var offset = liHeight * (i + 1);\n var scrollTop = this.tribute.menu.scrollTop;\n var totalScroll = scrollTop + menuFullHeight;\n\n if (offset > totalScroll) {\n this.tribute.menu.scrollTop += liHeight;\n } else if (offset < totalScroll) {\n this.tribute.menu.scrollTop -= liHeight;\n }\n\n li.className = this.tribute.current.collection.selectClass;\n } else {\n li.className = '';\n }\n }\n }\n }, {\n key: 'getFullHeight',\n value: function getFullHeight(elem, includeMargin) {\n var height = elem.getBoundingClientRect().height;\n\n if (includeMargin) {\n var style = elem.currentStyle || window.getComputedStyle(elem);\n return height + parseFloat(style.marginTop) + parseFloat(style.marginBottom);\n }\n\n return height;\n }\n }], [{\n key: 'keys',\n value: function keys() {\n return [{\n key: 9,\n value: 'TAB'\n }, {\n key: 8,\n value: 'DELETE'\n }, {\n key: 13,\n value: 'ENTER'\n }, {\n key: 27,\n value: 'ESCAPE'\n }, {\n key: 38,\n value: 'UP'\n }, {\n key: 40,\n value: 'DOWN'\n }];\n }\n }]);\n\n return TributeEvents;\n}();\n\nexports.default = TributeEvents;\nmodule.exports = exports['default'];\n\n},{}],3:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar TributeMenuEvents = function () {\n function TributeMenuEvents(tribute) {\n _classCallCheck(this, TributeMenuEvents);\n\n this.tribute = tribute;\n this.tribute.menuEvents = this;\n this.menu = this.tribute.menu;\n }\n\n _createClass(TributeMenuEvents, [{\n key: 'bind',\n value: function bind(menu) {\n var _this = this;\n\n menu.addEventListener('keydown', this.tribute.events.keydown.bind(this.menu, this), false);\n this.tribute.range.getDocument().addEventListener('mousedown', this.tribute.events.click.bind(null, this), false);\n\n // fixes IE11 issues with mousedown\n this.tribute.range.getDocument().addEventListener('MSPointerDown', this.tribute.events.click.bind(null, this), false);\n\n window.addEventListener('resize', this.debounce(function () {\n if (_this.tribute.isActive) {\n _this.tribute.range.positionMenuAtCaret(true);\n }\n }, 300, false));\n\n if (this.menuContainer) {\n this.menuContainer.addEventListener('scroll', this.debounce(function () {\n if (_this.tribute.isActive) {\n _this.tribute.showMenuFor(_this.tribute.current.element, false);\n }\n }, 300, false), false);\n } else {\n window.onscroll = this.debounce(function () {\n if (_this.tribute.isActive) {\n _this.tribute.showMenuFor(_this.tribute.current.element, false);\n }\n }, 300, false);\n }\n }\n }, {\n key: 'debounce',\n value: function debounce(func, wait, immediate) {\n var _this2 = this,\n _arguments = arguments;\n\n var timeout;\n return function () {\n var context = _this2,\n args = _arguments;\n var later = function later() {\n timeout = null;\n if (!immediate) func.apply(context, args);\n };\n var callNow = immediate && !timeout;\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n if (callNow) func.apply(context, args);\n };\n }\n }]);\n\n return TributeMenuEvents;\n}();\n\nexports.default = TributeMenuEvents;\nmodule.exports = exports['default'];\n\n},{}],4:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n// Thanks to https://github.com/jeff-collins/ment.io\nvar TributeRange = function () {\n function TributeRange(tribute) {\n _classCallCheck(this, TributeRange);\n\n this.tribute = tribute;\n this.tribute.range = this;\n }\n\n _createClass(TributeRange, [{\n key: 'getDocument',\n value: function getDocument() {\n var iframe = void 0;\n if (this.tribute.current.collection) {\n iframe = this.tribute.current.collection.iframe;\n }\n\n if (!iframe) {\n return document;\n }\n\n return iframe.contentWindow.document;\n }\n }, {\n key: 'positionMenuAtCaret',\n value: function positionMenuAtCaret(scrollTo) {\n var context = this.tribute.current,\n coordinates = void 0;\n\n var info = this.getTriggerInfo(false, false, true, this.tribute.allowSpaces);\n\n if (typeof info !== 'undefined') {\n\n if (!this.tribute.positionMenu) {\n this.tribute.menu.style.cssText = 'display: block;';\n return;\n }\n\n if (!this.isContentEditable(context.element)) {\n coordinates = this.getTextAreaOrInputUnderlinePosition(this.getDocument().activeElement, info.mentionPosition);\n } else {\n coordinates = this.getContentEditableCaretPosition(info.mentionPosition);\n }\n\n // TODO: flip the dropdown if rendered off of screen edge.\n // let contentWidth = this.tribute.menu.offsetWidth + coordinates.left\n // let parentWidth;\n\n // if (this.tribute.menuContainer) {\n // parentWidth = this.tribute.menuContainer.offsetWidth\n // } else {\n // parentWidth = this.getDocument().body.offsetWidth\n // }\n\n // if (contentWidth > parentWidth) {\n // let diff = contentWidth - parentWidth\n // let removeFromLeft = this.tribute.menu.offsetWidth - diff\n // let newLeft = coordinates.left - removeFromLeft\n\n // if (newLeft > 0) {\n // coordinates.left = newLeft\n // } else {\n // coordinates.left = 0\n // }\n // }\n\n this.tribute.menu.style.cssText = 'top: ' + coordinates.top + 'px;\\n left: ' + coordinates.left + 'px;\\n position: absolute;\\n zIndex: 10000;\\n display: block;';\n\n if (scrollTo) this.scrollIntoView();\n } else {\n this.tribute.menu.style.cssText = 'display: none';\n }\n }\n }, {\n key: 'selectElement',\n value: function selectElement(targetElement, path, offset) {\n var range = void 0;\n var elem = targetElement;\n\n if (path) {\n for (var i = 0; i < path.length; i++) {\n elem = elem.childNodes[path[i]];\n if (elem === undefined) {\n return;\n }\n while (elem.length < offset) {\n offset -= elem.length;\n elem = elem.nextSibling;\n }\n if (elem.childNodes.length === 0 && !elem.length) {\n elem = elem.previousSibling;\n }\n }\n }\n var sel = this.getWindowSelection();\n\n range = this.getDocument().createRange();\n range.setStart(elem, offset);\n range.setEnd(elem, offset);\n range.collapse(true);\n\n try {\n sel.removeAllRanges();\n } catch (error) {}\n\n sel.addRange(range);\n targetElement.focus();\n }\n\n // TODO: this may not be necessary anymore as we are using mouseup instead of click\n\n }, {\n key: 'resetSelection',\n value: function resetSelection(targetElement, path, offset) {\n if (!this.isContentEditable(targetElement)) {\n if (targetElement !== this.getDocument().activeElement) {\n targetElement.focus();\n }\n } else {\n this.selectElement(targetElement, path, offset);\n }\n }\n }, {\n key: 'replaceTriggerText',\n value: function replaceTriggerText(text, requireLeadingSpace, hasTrailingSpace, originalEvent, item) {\n var context = this.tribute.current;\n // TODO: this may not be necessary anymore as we are using mouseup instead of click\n // this.resetSelection(context.element, context.selectedPath, context.selectedOffset)\n\n var info = this.getTriggerInfo(true, hasTrailingSpace, requireLeadingSpace, this.tribute.allowSpaces);\n\n // Create the event\n var replaceEvent = new CustomEvent('tribute-replaced', {\n detail: {\n item: item,\n event: originalEvent\n }\n });\n\n if (info !== undefined) {\n if (!this.isContentEditable(context.element)) {\n var myField = this.getDocument().activeElement;\n var textSuffix = typeof this.tribute.replaceTextSuffix == 'string' ? this.tribute.replaceTextSuffix : ' ';\n text += textSuffix;\n var startPos = info.mentionPosition;\n var endPos = info.mentionPosition + info.mentionText.length + textSuffix.length;\n myField.value = myField.value.substring(0, startPos) + text + myField.value.substring(endPos, myField.value.length);\n myField.selectionStart = startPos + text.length;\n myField.selectionEnd = startPos + text.length;\n } else {\n // add a space to the end of the pasted text\n var _textSuffix = typeof this.tribute.replaceTextSuffix == 'string' ? this.tribute.replaceTextSuffix : '\\xA0';\n text += _textSuffix;\n this.pasteHtml(text, info.mentionPosition, info.mentionPosition + info.mentionText.length + 1);\n }\n\n context.element.dispatchEvent(replaceEvent);\n }\n }\n }, {\n key: 'pasteHtml',\n value: function pasteHtml(html, startPos, endPos) {\n var range = void 0,\n sel = void 0;\n sel = this.getWindowSelection();\n range = this.getDocument().createRange();\n range.setStart(sel.anchorNode, startPos);\n range.setEnd(sel.anchorNode, endPos);\n range.deleteContents();\n\n var el = this.getDocument().createElement('div');\n el.innerHTML = html;\n var frag = this.getDocument().createDocumentFragment(),\n node = void 0,\n lastNode = void 0;\n while (node = el.firstChild) {\n lastNode = frag.appendChild(node);\n }\n range.insertNode(frag);\n\n // Preserve the selection\n if (lastNode) {\n range = range.cloneRange();\n range.setStartAfter(lastNode);\n range.collapse(true);\n sel.removeAllRanges();\n sel.addRange(range);\n }\n }\n }, {\n key: 'getWindowSelection',\n value: function getWindowSelection() {\n if (this.tribute.collection.iframe) {\n return this.tribute.collection.iframe.contentWindow.getSelection();\n }\n\n return window.getSelection();\n }\n }, {\n key: 'getNodePositionInParent',\n value: function getNodePositionInParent(element) {\n if (element.parentNode === null) {\n return 0;\n }\n\n for (var i = 0; i < element.parentNode.childNodes.length; i++) {\n var node = element.parentNode.childNodes[i];\n\n if (node === element) {\n return i;\n }\n }\n }\n }, {\n key: 'getContentEditableSelectedPath',\n value: function getContentEditableSelectedPath(ctx) {\n var sel = this.getWindowSelection();\n var selected = sel.anchorNode;\n var path = [];\n var offset = void 0;\n\n if (selected != null) {\n var i = void 0;\n var ce = selected.contentEditable;\n while (selected !== null && ce !== 'true') {\n i = this.getNodePositionInParent(selected);\n path.push(i);\n selected = selected.parentNode;\n if (selected !== null) {\n ce = selected.contentEditable;\n }\n }\n path.reverse();\n\n // getRangeAt may not exist, need alternative\n offset = sel.getRangeAt(0).startOffset;\n\n return {\n selected: selected,\n path: path,\n offset: offset\n };\n }\n }\n }, {\n key: 'getTextPrecedingCurrentSelection',\n value: function getTextPrecedingCurrentSelection() {\n var context = this.tribute.current,\n text = '';\n\n if (!this.isContentEditable(context.element)) {\n var textComponent = this.tribute.current.element;\n if (textComponent) {\n var startPos = textComponent.selectionStart;\n if (textComponent.value && startPos >= 0) {\n text = textComponent.value.substring(0, startPos);\n }\n }\n } else {\n var selectedElem = this.getWindowSelection().anchorNode;\n\n if (selectedElem != null) {\n var workingNodeContent = selectedElem.textContent;\n var selectStartOffset = this.getWindowSelection().getRangeAt(0).startOffset;\n\n if (workingNodeContent && selectStartOffset >= 0) {\n text = workingNodeContent.substring(0, selectStartOffset);\n }\n }\n }\n\n return text;\n }\n }, {\n key: 'getTriggerInfo',\n value: function getTriggerInfo(menuAlreadyActive, hasTrailingSpace, requireLeadingSpace, allowSpaces) {\n var _this = this;\n\n var ctx = this.tribute.current;\n var selected = void 0,\n path = void 0,\n offset = void 0;\n\n if (!this.isContentEditable(ctx.element)) {\n selected = this.getDocument().activeElement;\n } else {\n var selectionInfo = this.getContentEditableSelectedPath(ctx);\n\n if (selectionInfo) {\n selected = selectionInfo.selected;\n path = selectionInfo.path;\n offset = selectionInfo.offset;\n }\n }\n\n var effectiveRange = this.getTextPrecedingCurrentSelection();\n\n if (effectiveRange !== undefined && effectiveRange !== null) {\n var mostRecentTriggerCharPos = -1;\n var triggerChar = void 0;\n\n this.tribute.collection.forEach(function (config) {\n var c = config.trigger;\n var idx = config.requireLeadingSpace ? _this.lastIndexWithLeadingSpace(effectiveRange, c) : effectiveRange.lastIndexOf(c);\n\n if (idx > mostRecentTriggerCharPos) {\n mostRecentTriggerCharPos = idx;\n triggerChar = c;\n requireLeadingSpace = config.requireLeadingSpace;\n }\n });\n\n if (mostRecentTriggerCharPos >= 0 && (mostRecentTriggerCharPos === 0 || !requireLeadingSpace || /[\\xA0\\s]/g.test(effectiveRange.substring(mostRecentTriggerCharPos - 1, mostRecentTriggerCharPos)))) {\n var currentTriggerSnippet = effectiveRange.substring(mostRecentTriggerCharPos + 1, effectiveRange.length);\n\n triggerChar = effectiveRange.substring(mostRecentTriggerCharPos, mostRecentTriggerCharPos + 1);\n var firstSnippetChar = currentTriggerSnippet.substring(0, 1);\n var leadingSpace = currentTriggerSnippet.length > 0 && (firstSnippetChar === ' ' || firstSnippetChar === '\\xA0');\n if (hasTrailingSpace) {\n currentTriggerSnippet = currentTriggerSnippet.trim();\n }\n\n var regex = allowSpaces ? /[^\\S ]/g : /[\\xA0\\s]/g;\n\n if (!leadingSpace && (menuAlreadyActive || !regex.test(currentTriggerSnippet))) {\n return {\n mentionPosition: mostRecentTriggerCharPos,\n mentionText: currentTriggerSnippet,\n mentionSelectedElement: selected,\n mentionSelectedPath: path,\n mentionSelectedOffset: offset,\n mentionTriggerChar: triggerChar\n };\n }\n }\n }\n }\n }, {\n key: 'lastIndexWithLeadingSpace',\n value: function lastIndexWithLeadingSpace(str, char) {\n var reversedStr = str.split('').reverse().join('');\n var index = -1;\n\n for (var cidx = 0, len = str.length; cidx < len; cidx++) {\n var firstChar = cidx === str.length - 1;\n var leadingSpace = /\\s/.test(reversedStr[cidx + 1]);\n var match = char === reversedStr[cidx];\n\n if (match && (firstChar || leadingSpace)) {\n index = str.length - 1 - cidx;\n break;\n }\n }\n\n return index;\n }\n }, {\n key: 'isContentEditable',\n value: function isContentEditable(element) {\n return element.nodeName !== 'INPUT' && element.nodeName !== 'TEXTAREA';\n }\n }, {\n key: 'getTextAreaOrInputUnderlinePosition',\n value: function getTextAreaOrInputUnderlinePosition(element, position) {\n var properties = ['direction', 'boxSizing', 'width', 'height', 'overflowX', 'overflowY', 'borderTopWidth', 'borderRightWidth', 'borderBottomWidth', 'borderLeftWidth', 'paddingTop', 'paddingRight', 'paddingBottom', 'paddingLeft', 'fontStyle', 'fontVariant', 'fontWeight', 'fontStretch', 'fontSize', 'fontSizeAdjust', 'lineHeight', 'fontFamily', 'textAlign', 'textTransform', 'textIndent', 'textDecoration', 'letterSpacing', 'wordSpacing'];\n\n var isFirefox = window.mozInnerScreenX !== null;\n\n var div = this.getDocument().createElement('div');\n div.id = 'input-textarea-caret-position-mirror-div';\n this.getDocument().body.appendChild(div);\n\n var style = div.style;\n var computed = window.getComputedStyle ? getComputedStyle(element) : element.currentStyle;\n\n style.whiteSpace = 'pre-wrap';\n if (element.nodeName !== 'INPUT') {\n style.wordWrap = 'break-word';\n }\n\n // position off-screen\n style.position = 'absolute';\n style.visibility = 'hidden';\n\n // transfer the element's properties to the div\n properties.forEach(function (prop) {\n style[prop] = computed[prop];\n });\n\n if (isFirefox) {\n style.width = parseInt(computed.width) - 2 + 'px';\n if (element.scrollHeight > parseInt(computed.height)) style.overflowY = 'scroll';\n } else {\n style.overflow = 'hidden';\n }\n\n div.textContent = element.value.substring(0, position);\n\n if (element.nodeName === 'INPUT') {\n div.textContent = div.textContent.replace(/\\s/g, ' ');\n }\n\n var span = this.getDocument().createElement('span');\n span.textContent = element.value.substring(position) || '.';\n div.appendChild(span);\n\n var rect = element.getBoundingClientRect();\n var doc = document.documentElement;\n var windowLeft = (window.pageXOffset || doc.scrollLeft) - (doc.clientLeft || 0);\n var windowTop = (window.pageYOffset || doc.scrollTop) - (doc.clientTop || 0);\n\n var coordinates = {\n top: rect.top + windowTop + span.offsetTop + parseInt(computed.borderTopWidth) + parseInt(computed.fontSize) - element.scrollTop,\n left: rect.left + windowLeft + span.offsetLeft + parseInt(computed.borderLeftWidth)\n };\n\n this.getDocument().body.removeChild(div);\n\n return coordinates;\n }\n }, {\n key: 'getContentEditableCaretPosition',\n value: function getContentEditableCaretPosition(selectedNodePosition) {\n var markerTextChar = '';\n var markerEl = void 0,\n markerId = 'sel_' + new Date().getTime() + '_' + Math.random().toString().substr(2);\n var range = void 0;\n var sel = this.getWindowSelection();\n var prevRange = sel.getRangeAt(0);\n\n range = this.getDocument().createRange();\n range.setStart(sel.anchorNode, selectedNodePosition);\n range.setEnd(sel.anchorNode, selectedNodePosition);\n\n range.collapse(false);\n\n // Create the marker element containing a single invisible character using DOM methods and insert it\n markerEl = this.getDocument().createElement('span');\n markerEl.id = markerId;\n markerEl.appendChild(this.getDocument().createTextNode(markerTextChar));\n range.insertNode(markerEl);\n sel.removeAllRanges();\n sel.addRange(prevRange);\n\n var rect = markerEl.getBoundingClientRect();\n var doc = document.documentElement;\n var windowLeft = (window.pageXOffset || doc.scrollLeft) - (doc.clientLeft || 0);\n var windowTop = (window.pageYOffset || doc.scrollTop) - (doc.clientTop || 0);\n var coordinates = {\n left: rect.left + windowLeft,\n top: rect.top + markerEl.offsetHeight + windowTop\n };\n\n markerEl.parentNode.removeChild(markerEl);\n return coordinates;\n }\n }, {\n key: 'scrollIntoView',\n value: function scrollIntoView(elem) {\n var reasonableBuffer = 20,\n clientRect = void 0;\n var maxScrollDisplacement = 100;\n var e = this.menu;\n\n if (typeof e === 'undefined') return;\n\n while (clientRect === undefined || clientRect.height === 0) {\n clientRect = e.getBoundingClientRect();\n\n if (clientRect.height === 0) {\n e = e.childNodes[0];\n if (e === undefined || !e.getBoundingClientRect) {\n return;\n }\n }\n }\n\n var elemTop = clientRect.top;\n var elemBottom = elemTop + clientRect.height;\n\n if (elemTop < 0) {\n window.scrollTo(0, window.pageYOffset + clientRect.top - reasonableBuffer);\n } else if (elemBottom > window.innerHeight) {\n var maxY = window.pageYOffset + clientRect.top - reasonableBuffer;\n\n if (maxY - window.pageYOffset > maxScrollDisplacement) {\n maxY = window.pageYOffset + maxScrollDisplacement;\n }\n\n var targetY = window.pageYOffset - (window.innerHeight - elemBottom);\n\n if (targetY > maxY) {\n targetY = maxY;\n }\n\n window.scrollTo(0, targetY);\n }\n }\n }]);\n\n return TributeRange;\n}();\n\nexports.default = TributeRange;\nmodule.exports = exports['default'];\n\n},{}],5:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n// Thanks to https://github.com/mattyork/fuzzy\nvar TributeSearch = function () {\n function TributeSearch(tribute) {\n _classCallCheck(this, TributeSearch);\n\n this.tribute = tribute;\n this.tribute.search = this;\n }\n\n _createClass(TributeSearch, [{\n key: 'simpleFilter',\n value: function simpleFilter(pattern, array) {\n var _this = this;\n\n return array.filter(function (string) {\n return _this.test(pattern, string);\n });\n }\n }, {\n key: 'test',\n value: function test(pattern, string) {\n return this.match(pattern, string) !== null;\n }\n }, {\n key: 'match',\n value: function match(pattern, string, opts) {\n opts = opts || {};\n var patternIdx = 0,\n result = [],\n len = string.length,\n totalScore = 0,\n currScore = 0,\n pre = opts.pre || '',\n post = opts.post || '',\n compareString = opts.caseSensitive && string || string.toLowerCase(),\n ch = void 0,\n compareChar = void 0;\n\n pattern = opts.caseSensitive && pattern || pattern.toLowerCase();\n\n var patternCache = this.traverse(compareString, pattern, 0, 0, []);\n if (!patternCache) {\n return null;\n }\n\n return {\n rendered: this.render(string, patternCache.cache, pre, post),\n score: patternCache.score\n };\n }\n }, {\n key: 'traverse',\n value: function traverse(string, pattern, stringIndex, patternIndex, patternCache) {\n // if the pattern search at end\n if (pattern.length === patternIndex) {\n\n // calculate socre and copy the cache containing the indices where it's found\n return {\n score: this.calculateScore(patternCache),\n cache: patternCache.slice()\n };\n }\n\n // if string at end or remaining pattern > remaining string\n if (string.length === stringIndex || pattern.length - patternIndex > string.length - stringIndex) {\n return undefined;\n }\n\n var c = pattern[patternIndex];\n var index = string.indexOf(c, stringIndex);\n var best = void 0,\n temp = void 0;\n\n while (index > -1) {\n patternCache.push(index);\n temp = this.traverse(string, pattern, index + 1, patternIndex + 1, patternCache);\n patternCache.pop();\n\n // if downstream traversal failed, return best answer so far\n if (!temp) {\n return best;\n }\n\n if (!best || best.score < temp.score) {\n best = temp;\n }\n\n index = string.indexOf(c, index + 1);\n }\n\n return best;\n }\n }, {\n key: 'calculateScore',\n value: function calculateScore(patternCache) {\n var score = 0;\n var temp = 1;\n\n patternCache.forEach(function (index, i) {\n if (i > 0) {\n if (patternCache[i - 1] + 1 === index) {\n temp += temp + 1;\n } else {\n temp = 1;\n }\n }\n\n score += temp;\n });\n\n return score;\n }\n }, {\n key: 'render',\n value: function render(string, indices, pre, post) {\n var rendered = string.substring(0, indices[0]);\n\n indices.forEach(function (index, i) {\n rendered += pre + string[index] + post + string.substring(index + 1, indices[i + 1] ? indices[i + 1] : string.length);\n });\n\n return rendered;\n }\n }, {\n key: 'filter',\n value: function filter(pattern, arr, opts) {\n var _this2 = this;\n\n opts = opts || {};\n return arr.reduce(function (prev, element, idx, arr) {\n var str = element;\n\n if (opts.extract) {\n str = opts.extract(element);\n\n if (!str) {\n // take care of undefineds / nulls / etc.\n str = '';\n }\n }\n\n var rendered = _this2.match(pattern, str, opts);\n\n if (rendered != null) {\n prev[prev.length] = {\n string: rendered.rendered,\n score: rendered.score,\n index: idx,\n original: element\n };\n }\n\n return prev;\n }, []).sort(function (a, b) {\n var compare = b.score - a.score;\n if (compare) return compare;\n return a.index - b.index;\n });\n }\n }]);\n\n return TributeSearch;\n}();\n\nexports.default = TributeSearch;\nmodule.exports = exports['default'];\n\n},{}],6:[function(require,module,exports){\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _Tribute = require(\"./Tribute\");\n\nvar _Tribute2 = _interopRequireDefault(_Tribute);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = _Tribute2.default; /**\n * Tribute.js\n * Native ES6 JavaScript @mention Plugin\n **/\n\nmodule.exports = exports[\"default\"];\n\n},{\"./Tribute\":1}],7:[function(require,module,exports){\n'use strict';\n\nif (!Array.prototype.find) {\n Array.prototype.find = function (predicate) {\n if (this === null) {\n throw new TypeError('Array.prototype.find called on null or undefined');\n }\n if (typeof predicate !== 'function') {\n throw new TypeError('predicate must be a function');\n }\n var list = Object(this);\n var length = list.length >>> 0;\n var thisArg = arguments[1];\n var value;\n\n for (var i = 0; i < length; i++) {\n value = list[i];\n if (predicate.call(thisArg, value, i, list)) {\n return value;\n }\n }\n return undefined;\n };\n}\n\nif (window && typeof window.CustomEvent !== \"function\") {\n var CustomEvent = function CustomEvent(event, params) {\n params = params || {\n bubbles: false,\n cancelable: false,\n detail: undefined\n };\n var evt = document.createEvent('CustomEvent');\n evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);\n return evt;\n };\n\n if (typeof window.Event !== 'undefined') {\n CustomEvent.prototype = window.Event.prototype;\n }\n\n window.CustomEvent = CustomEvent;\n}\n\n},{}]},{},[6])(6)\n});\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9icm93c2VyLXBhY2svX3ByZWx1ZGUuanMiLCJzcmMvVHJpYnV0ZS5qcyIsInNyYy9UcmlidXRlRXZlbnRzLmpzIiwic3JjL1RyaWJ1dGVNZW51RXZlbnRzLmpzIiwic3JjL1RyaWJ1dGVSYW5nZS5qcyIsInNyYy9UcmlidXRlU2VhcmNoLmpzIiwic3JjL2luZGV4LmpzIiwic3JjL3V0aWxzLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7QUNBQTs7OztBQUNBOzs7O0FBQ0E7Ozs7QUFDQTs7OztBQUNBOzs7Ozs7OztJQUVNLE87QUFDRiwyQkFnQkc7QUFBQTs7QUFBQSwrQkFmQyxNQWVEO0FBQUEsWUFmQyxNQWVELCtCQWZVLElBZVY7QUFBQSwrQkFkQyxNQWNEO0FBQUEsWUFkQyxNQWNELCtCQWRVLElBY1Y7QUFBQSxvQ0FiQyxXQWFEO0FBQUEsWUFiQyxXQWFELG9DQWJlLFdBYWY7QUFBQSxnQ0FaQyxPQVlEO0FBQUEsWUFaQyxPQVlELGdDQVpXLEdBWVg7QUFBQSx1Q0FYQyxjQVdEO0FBQUEsWUFYQyxjQVdELHVDQVhrQixJQVdsQjtBQUFBLHlDQVZDLGdCQVVEO0FBQUEsWUFWQyxnQkFVRCx5Q0FWb0IsSUFVcEI7QUFBQSwrQkFUQyxNQVNEO0FBQUEsWUFUQyxNQVNELCtCQVRVLEtBU1Y7QUFBQSxpQ0FSQyxRQVFEO0FBQUEsWUFSQyxRQVFELGlDQVJZLE9BUVo7QUFBQSxtQ0FQQyxVQU9EO0FBQUEsWUFQQyxVQU9ELG1DQVBjLElBT2Q7QUFBQSxzQ0FOQyxhQU1EO0FBQUEsWUFOQyxhQU1ELHNDQU5pQixJQU1qQjtBQUFBLHdDQUxDLGVBS0Q7QUFBQSxZQUxDLGVBS0Qsd0NBTG1CLElBS25CO0FBQUEseUNBSkMsbUJBSUQ7QUFBQSxZQUpDLG1CQUlELHlDQUp1QixJQUl2QjtBQUFBLG9DQUhDLFdBR0Q7QUFBQSxZQUhDLFdBR0Qsb0NBSGUsS0FHZjtBQUFBLHlDQUZDLGlCQUVEO0FBQUEsWUFGQyxp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QVMsS0FEUTtBQUVqQix3QkFBWSxLQUZLO0FBR2pCLG9CQUFRO0FBSFMsU0FBbkI7QUFLQSxZQUFJLE1BQU0sU0FBUyxXQUFULENBQXFCLGFBQXJCLENBQVY7QUFDQSxZQUFJLGVBQUosQ0FBb0IsS0FBcEIsRUFBMkIsT0FBTyxPQUFsQyxFQUEyQyxPQUFPLFVBQWxELEVBQThELE9BQU8sTUFBckU7QUFDQSxlQUFPLEdBQVA7QUFDRCxLQVZxRDs7QUFZdkQsUUFBSSxPQUFPLE9BQU8sS0FBZCxLQUF3QixXQUE1QixFQUF5QztBQUN2QyxvQkFBWSxTQUFaLEdBQXdCLE9BQU8sS0FBUCxDQUFhLFNBQXJDO0FBQ0Q7O0FBRUEsV0FBTyxXQUFQLEdBQXFCLFdBQXJCO0FBQ0QiLCJmaWxlIjoiZ2VuZXJhdGVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXNDb250ZW50IjpbIihmdW5jdGlvbiBlKHQsbixyKXtmdW5jdGlvbiBzKG8sdSl7aWYoIW5bb10pe2lmKCF0W29dKXt2YXIgYT10eXBlb2YgcmVxdWlyZT09XCJmdW5jdGlvblwiJiZyZXF1aXJlO2lmKCF1JiZhKXJldHVybiBhKG8sITApO2lmKGkpcmV0dXJuIGkobywhMCk7dmFyIGY9bmV3IEVycm9yKFwiQ2Fubm90IGZpbmQgbW9kdWxlICdcIitvK1wiJ1wiKTt0aHJvdyBmLmNvZGU9XCJNT0RVTEVfTk9UX0ZPVU5EXCIsZn12YXIgbD1uW29dPXtleHBvcnRzOnt9fTt0W29dWzBdLmNhbGwobC5leHBvcnRzLGZ1bmN0aW9uKGUpe3ZhciBuPXRbb11bMV1bZV07cmV0dXJuIHMobj9uOmUpfSxsLGwuZXhwb3J0cyxlLHQsbixyKX1yZXR1cm4gbltvXS5leHBvcnRzfXZhciBpPXR5cGVvZiByZXF1aXJlPT1cImZ1bmN0aW9uXCImJnJlcXVpcmU7Zm9yKHZhciBvPTA7bzxyLmxlbmd0aDtvKyspcyhyW29dKTtyZXR1cm4gc30pIiwiaW1wb3J0IFRyaWJ1dGVVdGlscyBmcm9tIFwiLi91dGlsc1wiO1xuaW1wb3J0IFRyaWJ1dGVFdmVudHMgZnJvbSBcIi4vVHJpYnV0ZUV2ZW50c1wiO1xuaW1wb3J0IFRyaWJ1dGVNZW51RXZlbnRzIGZyb20gXCIuL1RyaWJ1dGVNZW51RXZlbnRzXCI7XG5pbXBvcnQgVHJpYnV0ZVJhbmdlIGZyb20gXCIuL1RyaWJ1dGVSYW5nZVwiO1xuaW1wb3J0IFRyaWJ1dGVTZWFyY2ggZnJvbSBcIi4vVHJpYnV0ZVNlYXJjaFwiO1xuXG5jbGFzcyBUcmlidXRlIHtcbiAgICBjb25zdHJ1Y3Rvcih7XG4gICAgICAgIHZhbHVlcyA9IG51bGwsXG4gICAgICAgIGlmcmFtZSA9IG51bGwsXG4gICAgICAgIHNlbGVjdENsYXNzID0gJ2hpZ2hsaWdodCcsXG4gICAgICAgIHRyaWdnZXIgPSAnQCcsXG4gICAgICAgIHNlbGVjdFRlbXBsYXRlID0gbnVsbCxcbiAgICAgICAgbWVudUl0ZW1UZW1wbGF0ZSA9IG51bGwsXG4gICAgICAgIGxvb2t1cCA9ICdrZXknLFxuICAgICAgICBmaWxsQXR0ciA9ICd2YWx1ZScsXG4gICAgICAgIGNvbGxlY3Rpb24gPSBudWxsLFxuICAgICAgICBtZW51Q29udGFpbmVyID0gbnVsbCxcbiAgICAgICAgbm9NYXRjaFRlbXBsYXRlID0gbnVsbCxcbiAgICAgICAgcmVxdWlyZUxlYWRpbmdTcGFjZSA9IHRydWUsXG4gICAgICAgIGFsbG93U3BhY2VzID0gZmFsc2UsXG4gICAgICAgIHJlcGxhY2VUZXh0U3VmZml4ID0gbnVsbCxcbiAgICAgICAgcG9zaXRpb25NZW51ID0gdHJ1ZSxcbiAgICB9KSB7XG5cbiAgICAgICAgdGhpcy5tZW51U2VsZWN0ZWQgPSAwXG4gICAgICAgIHRoaXMuY3VycmVudCA9IHt9XG4gICAgICAgIHRoaXMuaW5wdXRFdmVudCA9IGZhbHNlXG4gICAgICAgIHRoaXMuaXNBY3RpdmUgPSBmYWxzZVxuICAgICAgICB0aGlzLm1lbnVDb250YWluZXIgPSBtZW51Q29udGFpbmVyXG4gICAgICAgIHRoaXMuYWxsb3dTcGFjZXMgPSBhbGxvd1NwYWNlc1xuICAgICAgICB0aGlzLnJlcGxhY2VUZXh0U3VmZml4ID0gcmVwbGFjZVRleHRTdWZmaXhcbiAgICAgICAgdGhpcy5wb3NpdGlvbk1lbnUgPSBwb3NpdGlvbk1lbnVcblxuICAgICAgICBpZiAodmFsdWVzKSB7XG4gICAgICAgICAgICB0aGlzLmNvbGxlY3Rpb24gPSBbe1xuICAgICAgICAgICAgICAgIC8vIHN5bWJvbCB0aGF0IHN0YXJ0cyB0aGUgbG9va3VwXG4gICAgICAgICAgICAgICAgdHJpZ2dlcjogdHJpZ2dlcixcblxuICAgICAgICAgICAgICAgIGlmcmFtZTogaWZyYW1lLFxuXG4gICAgICAgICAgICAgICAgc2VsZWN0Q2xhc3M6IHNlbGVjdENsYXNzLFxuXG4gICAgICAgICAgICAgICAgLy8gZnVuY3Rpb24gY2FsbGVkIG9uIHNlbGVjdCB0aGF0IHJldHVucyB0aGUgY29udGVudCB0byBpbnNlcnRcbiAgICAgICAgICAgICAgICBzZWxlY3RUZW1wbGF0ZTogKHNlbGVjdFRlbXBsYXRlIHx8IFRyaWJ1dGUuZGVmYXVsdFNlbGVjdFRlbXBsYXRlKS5iaW5kKHRoaXMpLFxuXG4gICAgICAgICAgICAgICAgLy8gZnVuY3Rpb24gY2FsbGVkIHRoYXQgcmV0dXJucyBjb250ZW50IGZvciBhbiBpdGVtXG4gICAgICAgICAgICAgICAgbWVudUl0ZW1UZW1wbGF0ZTogKG1lbnVJdGVtVGVtcGxhdGUgfHwgVHJpYnV0ZS5kZWZhdWx0TWVudUl0ZW1UZW1wbGF0ZSkuYmluZCh0aGlzKSxcblxuICAgICAgICAgICAgICAgIC8vIGZ1bmN0aW9uIGNhbGxlZCB3aGVuIG1lbnUgaXMgZW1wdHksIGRpc2FibGVzIGhpZGluZyBvZiBtZW51LlxuICAgICAgICAgICAgICAgIG5vTWF0Y2hUZW1wbGF0ZTogKHQgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0LmJpbmQodGhpcylcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmdW5jdGlvbiAoKSB7cmV0dXJuICc8bGkgY2xhc3M9XCJuby1tYXRjaFwiPk5vIG1hdGNoITwvbGk+J30uYmluZCh0aGlzKVxuICAgICAgICAgICAgICAgIH0pKG5vTWF0Y2hUZW1wbGF0ZSksXG5cbiAgICAgICAgICAgICAgICAvLyBjb2x1bW4gdG8gc2VhcmNoIGFnYWluc3QgaW4gdGhlIG9iamVjdFxuICAgICAgICAgICAgICAgIGxvb2t1cDogbG9va3VwLFxuXG4gICAgICAgICAgICAgICAgLy8gY29sdW1uIHRoYXQgY29udGFpbnMgdGhlIGNvbnRlbnQgdG8gaW5zZXJ0IGJ5IGRlZmF1bHRcbiAgICAgICAgICAgICAgICBmaWxsQXR0cjogZmlsbEF0dHIsXG5cbiAgICAgICAgICAgICAgICAvLyBhcnJheSBvZiBvYmplY3RzIG9yIGEgZnVuY3Rpb24gcmV0dXJuaW5nIGFuIGFycmF5IG9mIG9iamVjdHNcbiAgICAgICAgICAgICAgICB2YWx1ZXM6IHZhbHVlcyxcblxuICAgICAgICAgICAgICAgIHJlcXVpcmVMZWFkaW5nU3BhY2U6IHJlcXVpcmVMZWFkaW5nU3BhY2UsXG4gICAgICAgICAgICB9XVxuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKGNvbGxlY3Rpb24pIHtcbiAgICAgICAgICAgIHRoaXMuY29sbGVjdGlvbiA9IGNvbGxlY3Rpb24ubWFwKGl0ZW0gPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIHRyaWdnZXI6IGl0ZW0udHJpZ2dlciB8fCB0cmlnZ2VyLFxuICAgICAgICAgICAgICAgICAgICBpZnJhbWU6IGl0ZW0uaWZyYW1lIHx8IGlmcmFtZSxcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0Q2xhc3M6IGl0ZW0uc2VsZWN0Q2xhc3MgfHwgc2VsZWN0Q2xhc3MsXG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdFRlbXBsYXRlOiAoaXRlbS5zZWxlY3RUZW1wbGF0ZSB8fCBUcmlidXRlLmRlZmF1bHRTZWxlY3RUZW1wbGF0ZSkuYmluZCh0aGlzKSxcbiAgICAgICAgICAgICAgICAgICAgbWVudUl0ZW1UZW1wbGF0ZTogKGl0ZW0ubWVudUl0ZW1UZW1wbGF0ZSB8fCBUcmlidXRlLmRlZmF1bHRNZW51SXRlbVRlbXBsYXRlKS5iaW5kKHRoaXMpLFxuICAgICAgICAgICAgICAgICAgICAvLyBmdW5jdGlvbiBjYWxsZWQgd2hlbiBtZW51IGlzIGVtcHR5LCBkaXNhYmxlcyBoaWRpbmcgb2YgbWVudS5cbiAgICAgICAgICAgICAgICAgICAgbm9NYXRjaFRlbXBsYXRlOiAodCA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdC5iaW5kKHRoaXMpXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsXG4gICAgICAgICAgICAgICAgICAgIH0pKG5vTWF0Y2hUZW1wbGF0ZSksXG4gICAgICAgICAgICAgICAgICAgIGxvb2t1cDogaXRlbS5sb29rdXAgfHwgbG9va3VwLFxuICAgICAgICAgICAgICAgICAgICBmaWxsQXR0cjogaXRlbS5maWxsQXR0ciB8fCBmaWxsQXR0cixcbiAgICAgICAgICAgICAgICAgICAgdmFsdWVzOiBpdGVtLnZhbHVlcyxcbiAgICAgICAgICAgICAgICAgICAgcmVxdWlyZUxlYWRpbmdTcGFjZTogaXRlbS5yZXF1aXJlTGVhZGluZ1NwYWNlXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignW1RyaWJ1dGVdIE5vIGNvbGxlY3Rpb24gc3BlY2lmaWVkLicpXG4gICAgICAgIH1cblxuICAgICAgICBuZXcgVHJpYnV0ZVJhbmdlKHRoaXMpXG4gICAgICAgIG5ldyBUcmlidXRlRXZlbnRzKHRoaXMpXG4gICAgICAgIG5ldyBUcmlidXRlTWVudUV2ZW50cyh0aGlzKVxuICAgICAgICBuZXcgVHJpYnV0ZVNlYXJjaCh0aGlzKVxuICAgIH1cblxuICAgIHN0YXRpYyBkZWZhdWx0U2VsZWN0VGVtcGxhdGUoaXRlbSkge1xuICAgICAgaWYgKHR5cGVvZiBpdGVtID09PSAndW5kZWZpbmVkJykgcmV0dXJuIG51bGw7XG4gICAgICBpZiAodGhpcy5yYW5nZS5pc0NvbnRlbnRFZGl0YWJsZSh0aGlzLmN1cnJlbnQuZWxlbWVudCkpIHtcbiAgICAgICAgICByZXR1cm4gJzxzcGFuIGNsYXNzPVwidHJpYnV0ZS1tZW50aW9uXCI+JyArICh0aGlzLmN1cnJlbnQuY29sbGVjdGlvbi50cmlnZ2VyICsgaXRlbS5vcmlnaW5hbFt0aGlzLmN1cnJlbnQuY29sbGVjdGlvbi5maWxsQXR0cl0pICsgJzwvc3Bhbj4nO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdGhpcy5jdXJyZW50LmNvbGxlY3Rpb24udHJpZ2dlciArIGl0ZW0ub3JpZ2luYWxbdGhpcy5jdXJyZW50LmNvbGxlY3Rpb24uZmlsbEF0dHJdO1xuICAgIH1cblxuICAgIHN0YXRpYyBkZWZhdWx0TWVudUl0ZW1UZW1wbGF0ZShtYXRjaEl0ZW0pIHtcbiAgICAgICAgcmV0dXJuIG1hdGNoSXRlbS5zdHJpbmdcbiAgICB9XG5cbiAgICBzdGF0aWMgaW5wdXRUeXBlcygpIHtcbiAgICAgICAgcmV0dXJuIFsnVEVYVEFSRUEnLCAnSU5QVVQnXVxuICAgIH1cblxuICAgIHRyaWdnZXJzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jb2xsZWN0aW9uLm1hcChjb25maWcgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIGNvbmZpZy50cmlnZ2VyXG4gICAgICAgIH0pXG4gICAgfVxuXG4gICAgYXR0YWNoKGVsKSB7XG4gICAgICAgIGlmICghZWwpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignW1RyaWJ1dGVdIE11c3QgcGFzcyBpbiBhIERPTSBub2RlIG9yIE5vZGVMaXN0LicpXG4gICAgICAgIH1cblxuICAgICAgICAvLyBDaGVjayBpZiBpdCBpcyBhIGpRdWVyeSBjb2xsZWN0aW9uXG4gICAgICAgIGlmICh0eXBlb2YgalF1ZXJ5ICE9PSAndW5kZWZpbmVkJyAmJiBlbCBpbnN0YW5jZW9mIGpRdWVyeSkge1xuICAgICAgICAgICAgZWwgPSBlbC5nZXQoKVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gSXMgZWwgYW4gQXJyYXkvQXJyYXktbGlrZSBvYmplY3Q/XG4gICAgICAgIGlmIChlbC5jb25zdHJ1Y3RvciA9PT0gTm9kZUxpc3QgfHwgZWwuY29uc3RydWN0b3IgPT09IEhUTUxDb2xsZWN0aW9uIHx8IGVsLmNvbnN0cnVjdG9yID09PSBBcnJheSkge1xuICAgICAgICAgICAgbGV0IGxlbmd0aCA9IGVsLmxlbmd0aFxuICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW5ndGg7ICsraSkge1xuICAgICAgICAgICAgICAgIHRoaXMuX2F0dGFjaChlbFtpXSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX2F0dGFjaChlbClcbiAgICAgICAgfVxuICAgIH1cblxuICAgIF9hdHRhY2goZWwpIHtcbiAgICAgICAgaWYgKGVsLmhhc0F0dHJpYnV0ZSgnZGF0YS10cmlidXRlJykpIHtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybignVHJpYnV0ZSB3YXMgYWxyZWFkeSBib3VuZCB0byAnICsgZWwubm9kZU5hbWUpXG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmVuc3VyZUVkaXRhYmxlKGVsKVxuICAgICAgICB0aGlzLmV2ZW50cy5iaW5kKGVsKVxuICAgICAgICBlbC5zZXRBdHRyaWJ1dGUoJ2RhdGEtdHJpYnV0ZScsIHRydWUpXG4gICAgfVxuXG4gICAgZW5zdXJlRWRpdGFibGUoZWxlbWVudCkge1xuICAgICAgICBpZiAoVHJpYnV0ZS5pbnB1dFR5cGVzKCkuaW5kZXhPZihlbGVtZW50Lm5vZGVOYW1lKSA9PT0gLTEpIHtcbiAgICAgICAgICAgIGlmIChlbGVtZW50LmNvbnRlbnRFZGl0YWJsZSkge1xuICAgICAgICAgICAgICAgIGVsZW1lbnQuY29udGVudEVkaXRhYmxlID0gdHJ1ZVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1tUcmlidXRlXSBDYW5ub3QgYmluZCB0byAnICsgZWxlbWVudC5ub2RlTmFtZSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNyZWF0ZU1lbnUoKSB7XG4gICAgICAgIGxldCB3cmFwcGVyID0gdGhpcy5yYW5nZS5nZXREb2N1bWVudCgpLmNyZWF0ZUVsZW1lbnQoJ2RpdicpLFxuICAgICAgICAgICAgdWwgPSB0aGlzLnJhbmdlLmdldERvY3VtZW50KCkuY3JlYXRlRWxlbWVudCgndWwnKVxuXG4gICAgICAgIHdyYXBwZXIuY2xhc3NOYW1lID0gJ3RyaWJ1dGUtY29udGFpbmVyJ1xuICAgICAgICB3cmFwcGVyLmFwcGVuZENoaWxkKHVsKVxuXG4gICAgICAgIGlmICh0aGlzLm1lbnVDb250YWluZXIpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm1lbnVDb250YWluZXIuYXBwZW5kQ2hpbGQod3JhcHBlcilcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLnJhbmdlLmdldERvY3VtZW50KCkuYm9keS5hcHBlbmRDaGlsZCh3cmFwcGVyKVxuICAgIH1cblxuICAgIHNob3dNZW51Rm9yKGVsZW1lbnQsIHNjcm9sbFRvKSB7XG4gICAgICAgIC8vIE9ubHkgcHJvY2VlZCBpZiBtZW51IGlzbid0IGFscmVhZHkgc2hvd24gZm9yIHRoZSBjdXJyZW50IGVsZW1lbnQgJiBtZW50aW9uVGV4dFxuICAgICAgICBpZiAodGhpcy5pc0FjdGl2ZSAmJiB0aGlzLmN1cnJlbnQuZWxlbWVudCA9PT0gZWxlbWVudCAmJiB0aGlzLmN1cnJlbnQubWVudGlvblRleHQgPT09IHRoaXMuY3VycmVudE1lbnRpb25UZXh0U25hcHNob3QpIHtcbiAgICAgICAgICByZXR1cm5cbiAgICAgICAgfVxuICAgICAgICB0aGlzLmN1cnJlbnRNZW50aW9uVGV4dFNuYXBzaG90ID0gdGhpcy5jdXJyZW50Lm1lbnRpb25UZXh0XG5cbiAgICAgICAgLy8gY3JlYXRlIHRoZSBtZW51IGlmIGl0IGRvZXNuJ3QgZXhpc3QuXG4gICAgICAgIGlmICghdGhpcy5tZW51KSB7XG4gICAgICAgICAgICB0aGlzLm1lbnUgPSB0aGlzLmNyZWF0ZU1lbnUoKVxuICAgICAgICAgICAgdGhpcy5tZW51RXZlbnRzLmJpbmQodGhpcy5tZW51KVxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5pc0FjdGl2ZSA9IHRydWVcbiAgICAgICAgdGhpcy5tZW51U2VsZWN0ZWQgPSAwXG5cbiAgICAgICAgaWYgKCF0aGlzLmN1cnJlbnQubWVudGlvblRleHQpIHtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudC5tZW50aW9uVGV4dCA9ICcnXG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBwcm9jZXNzVmFsdWVzID0gKHZhbHVlcykgPT4ge1xuICAgICAgICAgICAgLy8gVHJpYnV0ZSBtYXkgbm90IGJlIGFjdGl2ZSBhbnkgbW9yZSBieSB0aGUgdGltZSB0aGUgdmFsdWUgY2FsbGJhY2sgcmV0dXJuc1xuICAgICAgICAgICAgaWYgKCF0aGlzLmlzQWN0aXZlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGxldCBpdGVtcyA9IHRoaXMuc2VhcmNoLmZpbHRlcih0aGlzLmN1cnJlbnQubWVudGlvblRleHQsIHZhbHVlcywge1xuICAgICAgICAgICAgICAgIHByZTogJzxzcGFuPicsXG4gICAgICAgICAgICAgICAgcG9zdDogJzwvc3Bhbj4nLFxuICAgICAgICAgICAgICAgIGV4dHJhY3Q6IChlbCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHRoaXMuY3VycmVudC5jb2xsZWN0aW9uLmxvb2t1cCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBlbFt0aGlzLmN1cnJlbnQuY29sbGVjdGlvbi5sb29rdXBdXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHRoaXMuY3VycmVudC5jb2xsZWN0aW9uLmxvb2t1cCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuY3VycmVudC5jb2xsZWN0aW9uLmxvb2t1cChlbClcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBsb29rdXAgYXR0cmlidXRlLCBsb29rdXAgbXVzdCBiZSBzdHJpbmcgb3IgZnVuY3Rpb24uJylcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pXG5cbiAgICAgICAgICAgIHRoaXMuY3VycmVudC5maWx0ZXJlZEl0ZW1zID0gaXRlbXNcblxuXG4gICAgICAgICAgICBsZXQgdWwgPSB0aGlzLm1lbnUucXVlcnlTZWxlY3RvcigndWwnKVxuXG4gICAgICAgICAgICB0aGlzLnJhbmdlLnBvc2l0aW9uTWVudUF0Q2FyZXQoc2Nyb2xsVG8pXG5cbiAgICAgICAgICAgIGlmICghaXRlbXMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgbGV0IG5vTWF0Y2hFdmVudCA9IG5ldyBDdXN0b21FdmVudCgndHJpYnV0ZS1uby1tYXRjaCcsIHsgZGV0YWlsOiB0aGlzLm1lbnUgfSlcbiAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnQuZWxlbWVudC5kaXNwYXRjaEV2ZW50KG5vTWF0Y2hFdmVudClcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuY3VycmVudC5jb2xsZWN0aW9uLm5vTWF0Y2hUZW1wbGF0ZSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmhpZGVNZW51KClcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB1bC5pbm5lckhUTUwgPSB0aGlzLmN1cnJlbnQuY29sbGVjdGlvbi5ub01hdGNoVGVtcGxhdGUoKVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB1bC5pbm5lckhUTUwgPSAnJ1xuXG4gICAgICAgICAgICBpdGVtcy5mb3JFYWNoKChpdGVtLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgIGxldCBsaSA9IHRoaXMucmFuZ2UuZ2V0RG9jdW1lbnQoKS5jcmVhdGVFbGVtZW50KCdsaScpXG4gICAgICAgICAgICAgICAgbGkuc2V0QXR0cmlidXRlKCdkYXRhLWluZGV4JywgaW5kZXgpXG4gICAgICAgICAgICAgICAgbGkuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VlbnRlcicsIChlKSA9PiB7XG4gICAgICAgICAgICAgICAgICBsZXQgbGkgPSBlLnRhcmdldDtcbiAgICAgICAgICAgICAgICAgIGxldCBpbmRleCA9IGxpLmdldEF0dHJpYnV0ZSgnZGF0YS1pbmRleCcpXG4gICAgICAgICAgICAgICAgICB0aGlzLmV2ZW50cy5zZXRBY3RpdmVMaShpbmRleClcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIGlmICh0aGlzLm1lbnVTZWxlY3RlZCA9PT0gaW5kZXgpIHtcbiAgICAgICAgICAgICAgICAgICAgbGkuY2xhc3NOYW1lID0gdGhpcy5jdXJyZW50LmNvbGxlY3Rpb24uc2VsZWN0Q2xhc3NcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgbGkuaW5uZXJIVE1MID0gdGhpcy5jdXJyZW50LmNvbGxlY3Rpb24ubWVudUl0ZW1UZW1wbGF0ZShpdGVtKVxuICAgICAgICAgICAgICAgIHVsLmFwcGVuZENoaWxkKGxpKVxuICAgICAgICAgICAgfSlcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5jdXJyZW50LmNvbGxlY3Rpb24udmFsdWVzID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnQuY29sbGVjdGlvbi52YWx1ZXModGhpcy5jdXJyZW50Lm1lbnRpb25UZXh0LCBwcm9jZXNzVmFsdWVzKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcHJvY2Vzc1ZhbHVlcyh0aGlzLmN1cnJlbnQuY29sbGVjdGlvbi52YWx1ZXMpXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzaG93TWVudUZvckNvbGxlY3Rpb24oZWxlbWVudCwgY29sbGVjdGlvbkluZGV4KSB7XG4gICAgICAgIGlmIChlbGVtZW50ICE9PSBkb2N1bWVudC5hY3RpdmVFbGVtZW50KSB7XG4gICAgICAgICAgICB0aGlzLnBsYWNlQ2FyZXRBdEVuZChlbGVtZW50KVxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5jdXJyZW50LmNvbGxlY3Rpb24gPSB0aGlzLmNvbGxlY3Rpb25bY29sbGVjdGlvbkluZGV4IHx8IDBdXG4gICAgICAgIHRoaXMuY3VycmVudC5leHRlcm5hbFRyaWdnZXIgPSB0cnVlXG4gICAgICAgIHRoaXMuY3VycmVudC5lbGVtZW50ID0gZWxlbWVudFxuXG4gICAgICAgIGlmIChlbGVtZW50LmlzQ29udGVudEVkaXRhYmxlKVxuICAgICAgICAgICAgdGhpcy5pbnNlcnRUZXh0QXRDdXJzb3IodGhpcy5jdXJyZW50LmNvbGxlY3Rpb24udHJpZ2dlcilcbiAgICAgICAgZWxzZVxuICAgICAgICAgICAgdGhpcy5pbnNlcnRBdENhcmV0KGVsZW1lbnQsIHRoaXMuY3VycmVudC5jb2xsZWN0aW9uLnRyaWdnZXIpXG5cbiAgICAgICAgdGhpcy5zaG93TWVudUZvcihlbGVtZW50KVxuICAgIH1cblxuICAgIC8vIFRPRE86IG1ha2Ugc3VyZSB0aGlzIHdvcmtzIGZvciBpbnB1dHMvdGV4dGFyZWFzXG4gICAgcGxhY2VDYXJldEF0RW5kKGVsKSB7XG4gICAgICAgIGVsLmZvY3VzKCk7XG4gICAgICAgIGlmICh0eXBlb2Ygd2luZG93LmdldFNlbGVjdGlvbiAhPSBcInVuZGVmaW5lZFwiXG4gICAgICAgICAgICAgICAgJiYgdHlwZW9mIGRvY3VtZW50LmNyZWF0ZVJhbmdlICE9IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgICAgIHZhciByYW5nZSA9IGRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7XG4gICAgICAgICAgICByYW5nZS5zZWxlY3ROb2RlQ29udGVudHMoZWwpO1xuICAgICAgICAgICAgcmFuZ2UuY29sbGFwc2UoZmFsc2UpO1xuICAgICAgICAgICAgdmFyIHNlbCA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTtcbiAgICAgICAgICAgIHNlbC5yZW1vdmVBbGxSYW5nZXMoKTtcbiAgICAgICAgICAgIHNlbC5hZGRSYW5nZShyYW5nZSk7XG4gICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIGRvY3VtZW50LmJvZHkuY3JlYXRlVGV4dFJhbmdlICE9IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgICAgIHZhciB0ZXh0UmFuZ2UgPSBkb2N1bWVudC5ib2R5LmNyZWF0ZVRleHRSYW5nZSgpO1xuICAgICAgICAgICAgdGV4dFJhbmdlLm1vdmVUb0VsZW1lbnRUZXh0KGVsKTtcbiAgICAgICAgICAgIHRleHRSYW5nZS5jb2xsYXBzZShmYWxzZSk7XG4gICAgICAgICAgICB0ZXh0UmFuZ2Uuc2VsZWN0KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBmb3IgY29udGVudGVkaXRhYmxlXG4gICAgaW5zZXJ0VGV4dEF0Q3Vyc29yKHRleHQpIHtcbiAgICAgICAgdmFyIHNlbCwgcmFuZ2UsIGh0bWw7XG4gICAgICAgIHNlbCA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTtcbiAgICAgICAgcmFuZ2UgPSBzZWwuZ2V0UmFuZ2VBdCgwKTtcbiAgICAgICAgcmFuZ2UuZGVsZXRlQ29udGVudHMoKTtcbiAgICAgICAgdmFyIHRleHROb2RlID0gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUodGV4dCk7XG4gICAgICAgIHJhbmdlLmluc2VydE5vZGUodGV4dE5vZGUpO1xuICAgICAgICByYW5nZS5zZWxlY3ROb2RlQ29udGVudHModGV4dE5vZGUpXG4gICAgICAgIHJhbmdlLmNvbGxhcHNlKGZhbHNlKVxuICAgICAgICBzZWwucmVtb3ZlQWxsUmFuZ2VzKClcbiAgICAgICAgc2VsLmFkZFJhbmdlKHJhbmdlKVxuICAgIH1cblxuICAgIC8vIGZvciByZWd1bGFyIGlucHV0c1xuICAgIGluc2VydEF0Q2FyZXQodGV4dGFyZWEsIHRleHQpIHtcbiAgICAgICAgdmFyIHNjcm9sbFBvcyA9IHRleHRhcmVhLnNjcm9sbFRvcDtcbiAgICAgICAgdmFyIGNhcmV0UG9zID0gdGV4dGFyZWEuc2VsZWN0aW9uU3RhcnQ7XG5cbiAgICAgICAgdmFyIGZyb250ID0gKHRleHRhcmVhLnZhbHVlKS5zdWJzdHJpbmcoMCwgY2FyZXRQb3MpO1xuICAgICAgICB2YXIgYmFjayA9ICh0ZXh0YXJlYS52YWx1ZSkuc3Vic3RyaW5nKHRleHRhcmVhLnNlbGVjdGlvbkVuZCwgdGV4dGFyZWEudmFsdWUubGVuZ3RoKTtcbiAgICAgICAgdGV4dGFyZWEudmFsdWUgPSBmcm9udCArIHRleHQgKyBiYWNrO1xuICAgICAgICBjYXJldFBvcyA9IGNhcmV0UG9zICsgdGV4dC5sZW5ndGg7XG4gICAgICAgIHRleHRhcmVhLnNlbGVjdGlvblN0YXJ0ID0gY2FyZXRQb3M7XG4gICAgICAgIHRleHRhcmVhLnNlbGVjdGlvbkVuZCA9IGNhcmV0UG9zO1xuICAgICAgICB0ZXh0YXJlYS5mb2N1cygpO1xuICAgICAgICB0ZXh0YXJlYS5zY3JvbGxUb3AgPSBzY3JvbGxQb3M7XG4gICAgfVxuXG4gICAgaGlkZU1lbnUoKSB7XG4gICAgICAgIGlmICh0aGlzLm1lbnUpIHtcbiAgICAgICAgICAgIHRoaXMubWVudS5zdHlsZS5jc3NUZXh0ID0gJ2Rpc3BsYXk6IG5vbmU7J1xuICAgICAgICAgICAgdGhpcy5pc0FjdGl2ZSA9IGZhbHNlXG4gICAgICAgICAgICB0aGlzLm1lbnVTZWxlY3RlZCA9IDBcbiAgICAgICAgICAgIHRoaXMuY3VycmVudCA9IHt9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzZWxlY3RJdGVtQXRJbmRleChpbmRleCwgb3JpZ2luYWxFdmVudCkge1xuICAgICAgICBpbmRleCA9IHBhcnNlSW50KGluZGV4KVxuICAgICAgICBpZiAodHlwZW9mIGluZGV4ICE9PSAnbnVtYmVyJykgcmV0dXJuXG4gICAgICAgIGxldCBpdGVtID0gdGhpcy5jdXJyZW50LmZpbHRlcmVkSXRlbXNbaW5kZXhdXG4gICAgICAgIGxldCBjb250ZW50ID0gdGhpcy5jdXJyZW50LmNvbGxlY3Rpb24uc2VsZWN0VGVtcGxhdGUoaXRlbSlcbiAgICAgICAgaWYgKGNvbnRlbnQgIT09IG51bGwpIHRoaXMucmVwbGFjZVRleHQoY29udGVudCwgb3JpZ2luYWxFdmVudCwgaXRlbSlcbiAgICB9XG5cbiAgICByZXBsYWNlVGV4dChjb250ZW50LCBvcmlnaW5hbEV2ZW50LCBpdGVtKSB7XG4gICAgICAgIHRoaXMucmFuZ2UucmVwbGFjZVRyaWdnZXJUZXh0KGNvbnRlbnQsIHRydWUsIHRydWUsIG9yaWdpbmFsRXZlbnQsIGl0ZW0pXG4gICAgfVxuXG4gICAgX2FwcGVuZChjb2xsZWN0aW9uLCBuZXdWYWx1ZXMsIHJlcGxhY2UpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBjb2xsZWN0aW9uLnZhbHVlcyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdVbmFibGUgdG8gYXBwZW5kIHRvIHZhbHVlcywgYXMgaXQgaXMgYSBmdW5jdGlvbi4nKVxuICAgICAgICB9IGVsc2UgaWYgKCFyZXBsYWNlKSB7XG4gICAgICAgICAgICBjb2xsZWN0aW9uLnZhbHVlcyA9IGNvbGxlY3Rpb24udmFsdWVzLmNvbmNhdChuZXdWYWx1ZXMpXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb2xsZWN0aW9uLnZhbHVlcyA9IG5ld1ZhbHVlc1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgYXBwZW5kKGNvbGxlY3Rpb25JbmRleCwgbmV3VmFsdWVzLCByZXBsYWNlKSB7XG4gICAgICAgIGxldCBpbmRleCA9IHBhcnNlSW50KGNvbGxlY3Rpb25JbmRleClcbiAgICAgICAgaWYgKHR5cGVvZiBpbmRleCAhPT0gJ251bWJlcicpIHRocm93IG5ldyBFcnJvcigncGxlYXNlIHByb3ZpZGUgYW4gaW5kZXggZm9yIHRoZSBjb2xsZWN0aW9uIHRvIHVwZGF0ZS4nKVxuXG4gICAgICAgIGxldCBjb2xsZWN0aW9uID0gdGhpcy5jb2xsZWN0aW9uW2luZGV4XVxuXG4gICAgICAgIHRoaXMuX2FwcGVuZChjb2xsZWN0aW9uLCBuZXdWYWx1ZXMsIHJlcGxhY2UpXG4gICAgfVxuXG4gICAgYXBwZW5kQ3VycmVudChuZXdWYWx1ZXMsIHJlcGxhY2UpIHtcbiAgICAgICAgaWYgKHRoaXMuaXNBY3RpdmUpIHtcbiAgICAgICAgICAgIHRoaXMuX2FwcGVuZCh0aGlzLmN1cnJlbnQuY29sbGVjdGlvbiwgbmV3VmFsdWVzLCByZXBsYWNlKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdObyBhY3RpdmUgc3RhdGUuIFBsZWFzZSB1c2UgYXBwZW5kIGluc3RlYWQgYW5kIHBhc3MgYW4gaW5kZXguJylcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgVHJpYnV0ZTtcbiIsImNsYXNzIFRyaWJ1dGVFdmVudHMge1xuICAgIGNvbnN0cnVjdG9yKHRyaWJ1dGUpIHtcbiAgICAgICAgdGhpcy50cmlidXRlID0gdHJpYnV0ZVxuICAgICAgICB0aGlzLnRyaWJ1dGUuZXZlbnRzID0gdGhpc1xuICAgIH1cblxuICAgIHN0YXRpYyBrZXlzKCkge1xuICAgICAgICByZXR1cm4gW3tcbiAgICAgICAgICAgIGtleTogOSxcbiAgICAgICAgICAgIHZhbHVlOiAnVEFCJ1xuICAgICAgICB9LCB7XG4gICAgICAgICAgICBrZXk6IDgsXG4gICAgICAgICAgICB2YWx1ZTogJ0RFTEVURSdcbiAgICAgICAgfSwge1xuICAgICAgICAgICAga2V5OiAxMyxcbiAgICAgICAgICAgIHZhbHVlOiAnRU5URVInXG4gICAgICAgIH0sIHtcbiAgICAgICAgICAgIGtleTogMjcsXG4gICAgICAgICAgICB2YWx1ZTogJ0VTQ0FQRSdcbiAgICAgICAgfSwge1xuICAgICAgICAgICAga2V5OiAzOCxcbiAgICAgICAgICAgIHZhbHVlOiAnVVAnXG4gICAgICAgIH0sIHtcbiAgICAgICAgICAgIGtleTogNDAsXG4gICAgICAgICAgICB2YWx1ZTogJ0RPV04nXG4gICAgICAgIH1dXG4gICAgfVxuXG4gICAgYmluZChlbGVtZW50KSB7XG4gICAgICAgIGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsXG4gICAgICAgICAgICB0aGlzLmtleWRvd24uYmluZChlbGVtZW50LCB0aGlzKSwgZmFsc2UpXG4gICAgICAgIGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigna2V5dXAnLFxuICAgICAgICAgICAgdGhpcy5rZXl1cC5iaW5kKGVsZW1lbnQsIHRoaXMpLCBmYWxzZSlcbiAgICAgICAgZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdpbnB1dCcsXG4gICAgICAgICAgICB0aGlzLmlucHV0LmJpbmQoZWxlbWVudCwgdGhpcyksIGZhbHNlKVxuICAgIH1cblxuICAgIGtleWRvd24oaW5zdGFuY2UsIGV2ZW50KSB7XG4gICAgICAgIGlmIChpbnN0YW5jZS5zaG91bGREZWFjdGl2YXRlKGV2ZW50KSkge1xuICAgICAgICAgICAgaW5zdGFuY2UudHJpYnV0ZS5pc0FjdGl2ZSA9IGZhbHNlXG4gICAgICAgICAgICBpbnN0YW5jZS50cmlidXRlLmhpZGVNZW51KClcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBlbGVtZW50ID0gdGhpc1xuICAgICAgICBpbnN0YW5jZS5jb21tYW5kRXZlbnQgPSBmYWxzZVxuXG4gICAgICAgIFRyaWJ1dGVFdmVudHMua2V5cygpLmZvckVhY2gobyA9PiB7XG4gICAgICAgICAgICBpZiAoby5rZXkgPT09IGV2ZW50LmtleUNvZGUpIHtcbiAgICAgICAgICAgICAgICBpbnN0YW5jZS5jb21tYW5kRXZlbnQgPSB0cnVlXG4gICAgICAgICAgICAgICAgaW5zdGFuY2UuY2FsbGJhY2tzKClbby52YWx1ZS50b0xvd2VyQ2FzZSgpXShldmVudCwgZWxlbWVudClcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICB9XG5cbiAgICBpbnB1dChpbnN0YW5jZSwgZXZlbnQpIHtcbiAgICAgICAgaW5zdGFuY2UuaW5wdXRFdmVudCA9IHRydWVcbiAgICAgICAgaW5zdGFuY2Uua2V5dXAuY2FsbCh0aGlzLCBpbnN0YW5jZSwgZXZlbnQpXG4gICAgfVxuXG4gICAgY2xpY2soaW5zdGFuY2UsIGV2ZW50KSB7XG4gICAgICAgIGxldCB0cmlidXRlID0gaW5zdGFuY2UudHJpYnV0ZVxuICAgICAgICBpZiAodHJpYnV0ZS5tZW51ICYmIHRyaWJ1dGUubWVudS5jb250YWlucyhldmVudC50YXJnZXQpKSB7XG4gICAgICAgICAgICBsZXQgbGkgPSBldmVudC50YXJnZXRcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXG4gICAgICAgICAgICB3aGlsZSAobGkubm9kZU5hbWUudG9Mb3dlckNhc2UoKSAhPT0gJ2xpJykge1xuICAgICAgICAgICAgICAgIGxpID0gbGkucGFyZW50Tm9kZVxuICAgICAgICAgICAgICAgIGlmICghbGkgfHwgbGkgPT09IHRyaWJ1dGUubWVudSkge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2Nhbm5vdCBmaW5kIHRoZSA8bGk+IGNvbnRhaW5lciBmb3IgdGhlIGNsaWNrJylcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0cmlidXRlLnNlbGVjdEl0ZW1BdEluZGV4KGxpLmdldEF0dHJpYnV0ZSgnZGF0YS1pbmRleCcpLCBldmVudClcbiAgICAgICAgICAgIHRyaWJ1dGUuaGlkZU1lbnUoKVxuXG4gICAgICAgIC8vIFRPRE86IHNob3VsZCBmaXJlIHdpdGggZXh0ZXJuYWxUcmlnZ2VyIGFuZCB0YXJnZXQgaXMgb3V0c2lkZSBvZiBtZW51XG4gICAgICAgIH0gZWxzZSBpZiAodHJpYnV0ZS5jdXJyZW50LmVsZW1lbnQgJiYgIXRyaWJ1dGUuY3VycmVudC5leHRlcm5hbFRyaWdnZXIpIHtcbiAgICAgICAgICAgIHRyaWJ1dGUuY3VycmVudC5leHRlcm5hbFRyaWdnZXIgPSBmYWxzZVxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0cmlidXRlLmhpZGVNZW51KCkpXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBrZXl1cChpbnN0YW5jZSwgZXZlbnQpIHtcbiAgICAgICAgaWYgKGluc3RhbmNlLmlucHV0RXZlbnQpIHtcbiAgICAgICAgICAgIGluc3RhbmNlLmlucHV0RXZlbnQgPSBmYWxzZVxuICAgICAgICB9XG4gICAgICAgIGluc3RhbmNlLnVwZGF0ZVNlbGVjdGlvbih0aGlzKVxuXG4gICAgICAgIGlmIChldmVudC5rZXlDb2RlID09PSAyNykgcmV0dXJuXG5cbiAgICAgICAgaWYgKCFpbnN0YW5jZS50cmlidXRlLmlzQWN0aXZlKSB7XG4gICAgICAgICAgICBsZXQga2V5Q29kZSA9IGluc3RhbmNlLmdldEtleUNvZGUoaW5zdGFuY2UsIHRoaXMsIGV2ZW50KVxuXG4gICAgICAgICAgICBpZiAoaXNOYU4oa2V5Q29kZSkgfHwgIWtleUNvZGUpIHJldHVyblxuXG4gICAgICAgICAgICBsZXQgdHJpZ2dlciA9IGluc3RhbmNlLnRyaWJ1dGUudHJpZ2dlcnMoKS5maW5kKHRyaWdnZXIgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiB0cmlnZ2VyLmNoYXJDb2RlQXQoMCkgPT09IGtleUNvZGVcbiAgICAgICAgICAgIH0pXG5cbiAgICAgICAgICAgIGlmICh0eXBlb2YgdHJpZ2dlciAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgICAgICBpbnN0YW5jZS5jYWxsYmFja3MoKS50cmlnZ2VyQ2hhcihldmVudCwgdGhpcywgdHJpZ2dlcilcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChpbnN0YW5jZS50cmlidXRlLmN1cnJlbnQudHJpZ2dlciAmJiBpbnN0YW5jZS5jb21tYW5kRXZlbnQgPT09IGZhbHNlXG4gICAgICAgICAgICB8fCBpbnN0YW5jZS50cmlidXRlLmlzQWN0aXZlICYmIGV2ZW50LmtleUNvZGUgPT09IDgpIHtcbiAgICAgICAgICBpbnN0YW5jZS50cmlidXRlLnNob3dNZW51Rm9yKHRoaXMsIHRydWUpXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzaG91bGREZWFjdGl2YXRlKGV2ZW50KSB7XG4gICAgICAgIGlmICghdGhpcy50cmlidXRlLmlzQWN0aXZlKSByZXR1cm4gZmFsc2VcblxuICAgICAgICBpZiAodGhpcy50cmlidXRlLmN1cnJlbnQubWVudGlvblRleHQubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICBsZXQgZXZlbnRLZXlQcmVzc2VkID0gZmFsc2VcbiAgICAgICAgICAgIFRyaWJ1dGVFdmVudHMua2V5cygpLmZvckVhY2gobyA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGV2ZW50LmtleUNvZGUgPT09IG8ua2V5KSBldmVudEtleVByZXNzZWQgPSB0cnVlXG4gICAgICAgICAgICB9KVxuXG4gICAgICAgICAgICByZXR1cm4gIWV2ZW50S2V5UHJlc3NlZFxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuXG4gICAgZ2V0S2V5Q29kZShpbnN0YW5jZSwgZWwsIGV2ZW50KSB7XG4gICAgICAgIGxldCBjaGFyXG4gICAgICAgIGxldCB0cmlidXRlID0gaW5zdGFuY2UudHJpYnV0ZVxuICAgICAgICBsZXQgaW5mbyA9IHRyaWJ1dGUucmFuZ2UuZ2V0VHJpZ2dlckluZm8oZmFsc2UsIGZhbHNlLCB0cnVlLCB0cmlidXRlLmFsbG93U3BhY2VzKVxuXG4gICAgICAgIGlmIChpbmZvKSB7XG4gICAgICAgICAgICByZXR1cm4gaW5mby5tZW50aW9uVHJpZ2dlckNoYXIuY2hhckNvZGVBdCgwKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB1cGRhdGVTZWxlY3Rpb24oZWwpIHtcbiAgICAgICAgdGhpcy50cmlidXRlLmN1cnJlbnQuZWxlbWVudCA9IGVsXG4gICAgICAgIGxldCBpbmZvID0gdGhpcy50cmlidXRlLnJhbmdlLmdldFRyaWdnZXJJbmZvKGZhbHNlLCBmYWxzZSwgdHJ1ZSwgdGhpcy50cmlidXRlLmFsbG93U3BhY2VzKVxuXG4gICAgICAgIGlmIChpbmZvKSB7XG4gICAgICAgICAgICB0aGlzLnRyaWJ1dGUuY3VycmVudC5zZWxlY3RlZFBhdGggPSBpbmZvLm1lbnRpb25TZWxlY3RlZFBhdGhcbiAgICAgICAgICAgIHRoaXMudHJpYnV0ZS5jdXJyZW50Lm1lbnRpb25UZXh0ID0gaW5mby5tZW50aW9uVGV4dFxuICAgICAgICAgICAgdGhpcy50cmlidXRlLmN1cnJlbnQuc2VsZWN0ZWRPZmZzZXQgPSBpbmZvLm1lbnRpb25TZWxlY3RlZE9mZnNldFxuICAgICAgICB9XG4gICAgfVxuXG4gICAgY2FsbGJhY2tzKCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdHJpZ2dlckNoYXI6IChlLCBlbCwgdHJpZ2dlcikgPT4ge1xuICAgICAgICAgICAgICAgIGxldCB0cmlidXRlID0gdGhpcy50cmlidXRlXG4gICAgICAgICAgICAgICAgdHJpYnV0ZS5jdXJyZW50LnRyaWdnZXIgPSB0cmlnZ2VyXG5cbiAgICAgICAgICAgICAgICBsZXQgY29sbGVjdGlvbkl0ZW0gPSB0cmlidXRlLmNvbGxlY3Rpb24uZmluZChpdGVtID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGl0ZW0udHJpZ2dlciA9PT0gdHJpZ2dlclxuICAgICAgICAgICAgICAgIH0pXG5cbiAgICAgICAgICAgICAgICB0cmlidXRlLmN1cnJlbnQuY29sbGVjdGlvbiA9IGNvbGxlY3Rpb25JdGVtXG4gICAgICAgICAgICAgICAgaWYgKHRyaWJ1dGUuaW5wdXRFdmVudCkgdHJpYnV0ZS5zaG93TWVudUZvcihlbCwgdHJ1ZSlcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBlbnRlcjogKGUsIGVsKSA9PiB7XG4gICAgICAgICAgICAgICAgLy8gY2hvb3NlIHNlbGVjdGlvblxuICAgICAgICAgICAgICAgIGlmICh0aGlzLnRyaWJ1dGUuaXNBY3RpdmUpIHtcbiAgICAgICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKClcbiAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRyaWJ1dGUuc2VsZWN0SXRlbUF0SW5kZXgodGhpcy50cmlidXRlLm1lbnVTZWxlY3RlZCwgZSlcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudHJpYnV0ZS5oaWRlTWVudSgpXG4gICAgICAgICAgICAgICAgICAgIH0sIDApXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGVzY2FwZTogKGUsIGVsKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMudHJpYnV0ZS5pc0FjdGl2ZSkge1xuICAgICAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKVxuICAgICAgICAgICAgICAgICAgICB0aGlzLnRyaWJ1dGUuaXNBY3RpdmUgPSBmYWxzZVxuICAgICAgICAgICAgICAgICAgICB0aGlzLnRyaWJ1dGUuaGlkZU1lbnUoKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB0YWI6IChlLCBlbCkgPT4ge1xuICAgICAgICAgICAgICAgIC8vIGNob29zZSBmaXJzdCBtYXRjaFxuICAgICAgICAgICAgICAgIHRoaXMuY2FsbGJhY2tzKCkuZW50ZXIoZSwgZWwpXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdXA6IChlLCBlbCkgPT4ge1xuICAgICAgICAgICAgICAgIC8vIG5hdmlnYXRlIHVwIHVsXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMudHJpYnV0ZS5pc0FjdGl2ZSkge1xuICAgICAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKVxuICAgICAgICAgICAgICAgICAgICBsZXQgY291bnQgPSB0aGlzLnRyaWJ1dGUuY3VycmVudC5maWx0ZXJlZEl0ZW1zLmxlbmd0aCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkID0gdGhpcy50cmlidXRlLm1lbnVTZWxlY3RlZFxuXG4gICAgICAgICAgICAgICAgICAgIGlmIChjb3VudCA+IHNlbGVjdGVkICYmIHNlbGVjdGVkID4gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50cmlidXRlLm1lbnVTZWxlY3RlZC0tXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNldEFjdGl2ZUxpKClcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChzZWxlY3RlZCA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICAgIHRoaXMudHJpYnV0ZS5tZW51U2VsZWN0ZWQgPSBjb3VudCAtIDFcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNldEFjdGl2ZUxpKClcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRyaWJ1dGUubWVudS5zY3JvbGxUb3AgPSB0aGlzLnRyaWJ1dGUubWVudS5zY3JvbGxIZWlnaHRcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBkb3duOiAoZSwgZWwpID0+IHtcbiAgICAgICAgICAgICAgICAvLyBuYXZpZ2F0ZSBkb3duIHVsXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMudHJpYnV0ZS5pc0FjdGl2ZSkge1xuICAgICAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKVxuICAgICAgICAgICAgICAgICAgICBsZXQgY291bnQgPSB0aGlzLnRyaWJ1dGUuY3VycmVudC5maWx0ZXJlZEl0ZW1zLmxlbmd0aCAtIDEsXG4gICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZCA9IHRoaXMudHJpYnV0ZS5tZW51U2VsZWN0ZWRcblxuICAgICAgICAgICAgICAgICAgICBpZiAoY291bnQgPiBzZWxlY3RlZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50cmlidXRlLm1lbnVTZWxlY3RlZCsrXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNldEFjdGl2ZUxpKClcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChjb3VudCA9PT0gc2VsZWN0ZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudHJpYnV0ZS5tZW51U2VsZWN0ZWQgPSAwXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNldEFjdGl2ZUxpKClcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudHJpYnV0ZS5tZW51LnNjcm9sbFRvcCA9IDBcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBkZWxldGU6IChlLCBlbCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLnRyaWJ1dGUuaXNBY3RpdmUgJiYgdGhpcy50cmlidXRlLmN1cnJlbnQubWVudGlvblRleHQubGVuZ3RoIDwgMSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnRyaWJ1dGUuaGlkZU1lbnUoKVxuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy50cmlidXRlLmlzQWN0aXZlKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudHJpYnV0ZS5zaG93TWVudUZvcihlbClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzZXRBY3RpdmVMaShpbmRleCkge1xuICAgICAgICBsZXQgbGlzID0gdGhpcy50cmlidXRlLm1lbnUucXVlcnlTZWxlY3RvckFsbCgnbGknKSxcbiAgICAgICAgICAgIGxlbmd0aCA9IGxpcy5sZW5ndGggPj4+IDBcblxuICAgICAgICAvLyBnZXQgaGVpZ2h0c1xuICAgICAgICBsZXQgbWVudUZ1bGxIZWlnaHQgPSB0aGlzLmdldEZ1bGxIZWlnaHQodGhpcy50cmlidXRlLm1lbnUpLFxuICAgICAgICAgICAgbGlIZWlnaHQgPSB0aGlzLmdldEZ1bGxIZWlnaHQobGlzWzBdKVxuXG4gICAgICAgIGlmIChpbmRleCkgdGhpcy50cmlidXRlLm1lbnVTZWxlY3RlZCA9IGluZGV4O1xuXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGxldCBsaSA9IGxpc1tpXVxuICAgICAgICAgICAgaWYgKGkgPT09IHRoaXMudHJpYnV0ZS5tZW51U2VsZWN0ZWQpIHtcbiAgICAgICAgICAgICAgICBsZXQgb2Zmc2V0ID0gbGlIZWlnaHQgKiAoaSsxKVxuICAgICAgICAgICAgICAgIGxldCBzY3JvbGxUb3AgPSB0aGlzLnRyaWJ1dGUubWVudS5zY3JvbGxUb3BcbiAgICAgICAgICAgICAgICBsZXQgdG90YWxTY3JvbGwgPSBzY3JvbGxUb3AgKyBtZW51RnVsbEhlaWdodFxuXG4gICAgICAgICAgICAgICAgaWYgKG9mZnNldCA+IHRvdGFsU2Nyb2xsKSB7XG4gICAgICAgICAgICAgICAgICB0aGlzLnRyaWJ1dGUubWVudS5zY3JvbGxUb3AgKz0gbGlIZWlnaHRcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG9mZnNldCA8IHRvdGFsU2Nyb2xsKSB7XG4gICAgICAgICAgICAgICAgICB0aGlzLnRyaWJ1dGUubWVudS5zY3JvbGxUb3AgLT0gbGlIZWlnaHRcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBsaS5jbGFzc05hbWUgPSB0aGlzLnRyaWJ1dGUuY3VycmVudC5jb2xsZWN0aW9uLnNlbGVjdENsYXNzXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGxpLmNsYXNzTmFtZSA9ICcnXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXRGdWxsSGVpZ2h0KGVsZW0sIGluY2x1ZGVNYXJnaW4pIHtcbiAgICAgIGxldCBoZWlnaHQgPSBlbGVtLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodFxuXG4gICAgICBpZiAoaW5jbHVkZU1hcmdpbikge1xuICAgICAgICBsZXQgc3R5bGUgPSBlbGVtLmN1cnJlbnRTdHlsZSB8fCB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlbGVtKVxuICAgICAgICByZXR1cm4gaGVpZ2h0ICsgcGFyc2VGbG9hdChzdHlsZS5tYXJnaW5Ub3ApICsgcGFyc2VGbG9hdChzdHlsZS5tYXJnaW5Cb3R0b20pXG4gICAgICB9XG5cbiAgICAgIHJldHVybiBoZWlnaHRcbiAgICB9XG5cbn1cblxuZXhwb3J0IGRlZmF1bHQgVHJpYnV0ZUV2ZW50cztcbiIsImNsYXNzIFRyaWJ1dGVNZW51RXZlbnRzIHtcbiAgICBjb25zdHJ1Y3Rvcih0cmlidXRlKSB7XG4gICAgICAgIHRoaXMudHJpYnV0ZSA9IHRyaWJ1dGVcbiAgICAgICAgdGhpcy50cmlidXRlLm1lbnVFdmVudHMgPSB0aGlzXG4gICAgICAgIHRoaXMubWVudSA9IHRoaXMudHJpYnV0ZS5tZW51XG4gICAgfVxuXG4gICAgYmluZChtZW51KSB7XG4gICAgICAgIG1lbnUuYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsXG4gICAgICAgICAgICB0aGlzLnRyaWJ1dGUuZXZlbnRzLmtleWRvd24uYmluZCh0aGlzLm1lbnUsIHRoaXMpLCBmYWxzZSlcbiAgICAgICAgdGhpcy50cmlidXRlLnJhbmdlLmdldERvY3VtZW50KCkuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJyxcbiAgICAgICAgICAgIHRoaXMudHJpYnV0ZS5ldmVudHMuY2xpY2suYmluZChudWxsLCB0aGlzKSwgZmFsc2UpXG5cbiAgICAgICAgLy8gZml4ZXMgSUUxMSBpc3N1ZXMgd2l0aCBtb3VzZWRvd25cbiAgICAgICAgdGhpcy50cmlidXRlLnJhbmdlLmdldERvY3VtZW50KCkuYWRkRXZlbnRMaXN0ZW5lcignTVNQb2ludGVyRG93bicsXG4gICAgICAgICAgICB0aGlzLnRyaWJ1dGUuZXZlbnRzLmNsaWNrLmJpbmQobnVsbCwgdGhpcyksIGZhbHNlKVxuXG4gICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCB0aGlzLmRlYm91bmNlKCgpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLnRyaWJ1dGUuaXNBY3RpdmUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnRyaWJ1dGUucmFuZ2UucG9zaXRpb25NZW51QXRDYXJldCh0cnVlKVxuICAgICAgICAgICAgfVxuICAgICAgICB9LCAzMDAsIGZhbHNlKSlcblxuICAgICAgICBpZiAodGhpcy5tZW51Q29udGFpbmVyKSB7XG4gICAgICAgICAgICB0aGlzLm1lbnVDb250YWluZXIuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgdGhpcy5kZWJvdW5jZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMudHJpYnV0ZS5pc0FjdGl2ZSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnRyaWJ1dGUuc2hvd01lbnVGb3IodGhpcy50cmlidXRlLmN1cnJlbnQuZWxlbWVudCwgZmFsc2UpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSwgMzAwLCBmYWxzZSksIGZhbHNlKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgd2luZG93Lm9uc2Nyb2xsID0gdGhpcy5kZWJvdW5jZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMudHJpYnV0ZS5pc0FjdGl2ZSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnRyaWJ1dGUuc2hvd01lbnVGb3IodGhpcy50cmlidXRlLmN1cnJlbnQuZWxlbWVudCwgZmFsc2UpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSwgMzAwLCBmYWxzZSlcbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgZGVib3VuY2UoZnVuYywgd2FpdCwgaW1tZWRpYXRlKSB7XG4gICAgICAgIHZhciB0aW1lb3V0XG4gICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICB2YXIgY29udGV4dCA9IHRoaXMsXG4gICAgICAgICAgICAgICAgYXJncyA9IGFyZ3VtZW50c1xuICAgICAgICAgICAgdmFyIGxhdGVyID0gKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRpbWVvdXQgPSBudWxsXG4gICAgICAgICAgICAgICAgaWYgKCFpbW1lZGlhdGUpIGZ1bmMuYXBwbHkoY29udGV4dCwgYXJncylcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHZhciBjYWxsTm93ID0gaW1tZWRpYXRlICYmICF0aW1lb3V0XG4gICAgICAgICAgICBjbGVhclRpbWVvdXQodGltZW91dClcbiAgICAgICAgICAgIHRpbWVvdXQgPSBzZXRUaW1lb3V0KGxhdGVyLCB3YWl0KVxuICAgICAgICAgICAgaWYgKGNhbGxOb3cpIGZ1bmMuYXBwbHkoY29udGV4dCwgYXJncylcbiAgICAgICAgfVxuICAgIH1cbn1cblxuXG5leHBvcnQgZGVmYXVsdCBUcmlidXRlTWVudUV2ZW50cztcbiIsIi8vIFRoYW5rcyB0byBodHRwczovL2dpdGh1Yi5jb20vamVmZi1jb2xsaW5zL21lbnQuaW9cbmNsYXNzIFRyaWJ1dGVSYW5nZSB7XG4gICAgY29uc3RydWN0b3IodHJpYnV0ZSkge1xuICAgICAgICB0aGlzLnRyaWJ1dGUgPSB0cmlidXRlXG4gICAgICAgIHRoaXMudHJpYnV0ZS5yYW5nZSA9IHRoaXNcbiAgICB9XG5cbiAgICBnZXREb2N1bWVudCgpIHtcbiAgICAgICAgbGV0IGlmcmFtZVxuICAgICAgICBpZiAodGhpcy50cmlidXRlLmN1cnJlbnQuY29sbGVjdGlvbikge1xuICAgICAgICAgICAgaWZyYW1lID0gdGhpcy50cmlidXRlLmN1cnJlbnQuY29sbGVjdGlvbi5pZnJhbWVcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghaWZyYW1lKSB7XG4gICAgICAgICAgICByZXR1cm4gZG9jdW1lbnRcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBpZnJhbWUuY29udGVudFdpbmRvdy5kb2N1bWVudFxuICAgIH1cblxuICAgIHBvc2l0aW9uTWVudUF0Q2FyZXQoc2Nyb2xsVG8pIHtcbiAgICAgICAgbGV0IGNvbnRleHQgPSB0aGlzLnRyaWJ1dGUuY3VycmVudCxcbiAgICAgICAgICAgIGNvb3JkaW5hdGVzXG5cbiAgICAgICAgbGV0IGluZm8gPSB0aGlzLmdldFRyaWdnZXJJbmZvKGZhbHNlLCBmYWxzZSwgdHJ1ZSwgdGhpcy50cmlidXRlLmFsbG93U3BhY2VzKVxuXG4gICAgICAgIGlmICh0eXBlb2YgaW5mbyAhPT0gJ3VuZGVmaW5lZCcpIHtcblxuICAgICAgICAgICAgaWYoIXRoaXMudHJpYnV0ZS5wb3NpdGlvbk1lbnUpe1xuICAgICAgICAgICAgICAgIHRoaXMudHJpYnV0ZS5tZW51LnN0eWxlLmNzc1RleHQgPSBgZGlzcGxheTogYmxvY2s7YFxuICAgICAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoIXRoaXMuaXNDb250ZW50RWRpdGFibGUoY29udGV4dC5lbGVtZW50KSkge1xuICAgICAgICAgICAgICAgIGNvb3JkaW5hdGVzID0gdGhpcy5nZXRUZXh0QXJlYU9ySW5wdXRVbmRlcmxpbmVQb3NpdGlvbih0aGlzLmdldERvY3VtZW50KCkuYWN0aXZlRWxlbWVudCxcbiAgICAgICAgICAgICAgICAgICAgaW5mby5tZW50aW9uUG9zaXRpb24pXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb29yZGluYXRlcyA9IHRoaXMuZ2V0Q29udGVudEVkaXRhYmxlQ2FyZXRQb3NpdGlvbihpbmZvLm1lbnRpb25Qb3NpdGlvbilcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gVE9ETzogZmxpcCB0aGUgZHJvcGRvd24gaWYgcmVuZGVyZWQgb2ZmIG9mIHNjcmVlbiBlZGdlLlxuICAgICAgICAgICAgLy8gbGV0IGNvbnRlbnRXaWR0aCA9IHRoaXMudHJpYnV0ZS5tZW51Lm9mZnNldFdpZHRoICsgY29vcmRpbmF0ZXMubGVmdFxuICAgICAgICAgICAgLy8gbGV0IHBhcmVudFdpZHRoO1xuXG4gICAgICAgICAgICAvLyBpZiAodGhpcy50cmlidXRlLm1lbnVDb250YWluZXIpIHtcbiAgICAgICAgICAgIC8vICAgICBwYXJlbnRXaWR0aCA9IHRoaXMudHJpYnV0ZS5tZW51Q29udGFpbmVyLm9mZnNldFdpZHRoXG4gICAgICAgICAgICAvLyB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gICAgIHBhcmVudFdpZHRoID0gdGhpcy5nZXREb2N1bWVudCgpLmJvZHkub2Zmc2V0V2lkdGhcbiAgICAgICAgICAgIC8vIH1cblxuICAgICAgICAgICAgLy8gaWYgKGNvbnRlbnRXaWR0aCA+IHBhcmVudFdpZHRoKSB7XG4gICAgICAgICAgICAvLyAgICAgbGV0IGRpZmYgPSBjb250ZW50V2lkdGggLSBwYXJlbnRXaWR0aFxuICAgICAgICAgICAgLy8gICAgIGxldCByZW1vdmVGcm9tTGVmdCA9IHRoaXMudHJpYnV0ZS5tZW51Lm9mZnNldFdpZHRoIC0gZGlmZlxuICAgICAgICAgICAgLy8gICAgIGxldCBuZXdMZWZ0ID0gY29vcmRpbmF0ZXMubGVmdCAtIHJlbW92ZUZyb21MZWZ0XG5cbiAgICAgICAgICAgIC8vICAgICBpZiAobmV3TGVmdCA+IDApIHtcbiAgICAgICAgICAgIC8vICAgICAgICAgY29vcmRpbmF0ZXMubGVmdCA9IG5ld0xlZnRcbiAgICAgICAgICAgIC8vICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gICAgICAgICBjb29yZGluYXRlcy5sZWZ0ID0gMFxuICAgICAgICAgICAgLy8gICAgIH1cbiAgICAgICAgICAgIC8vIH1cblxuICAgICAgICAgICAgdGhpcy50cmlidXRlLm1lbnUuc3R5bGUuY3NzVGV4dCA9IGB0b3A6ICR7Y29vcmRpbmF0ZXMudG9wfXB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQ6ICR7Y29vcmRpbmF0ZXMubGVmdH1weDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgekluZGV4OiAxMDAwMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztgXG5cbiAgICAgICAgICAgIGlmIChzY3JvbGxUbykgdGhpcy5zY3JvbGxJbnRvVmlldygpXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnRyaWJ1dGUubWVudS5zdHlsZS5jc3NUZXh0ID0gJ2Rpc3BsYXk6IG5vbmUnXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzZWxlY3RFbGVtZW50KHRhcmdldEVsZW1lbnQsIHBhdGgsIG9mZnNldCkge1xuICAgICAgICBsZXQgcmFuZ2VcbiAgICAgICAgbGV0IGVsZW0gPSB0YXJnZXRFbGVtZW50XG5cbiAgICAgICAgaWYgKHBhdGgpIHtcbiAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcGF0aC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIGVsZW0gPSBlbGVtLmNoaWxkTm9kZXNbcGF0aFtpXV1cbiAgICAgICAgICAgICAgICBpZiAoZWxlbSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB3aGlsZSAoZWxlbS5sZW5ndGggPCBvZmZzZXQpIHtcbiAgICAgICAgICAgICAgICAgICAgb2Zmc2V0IC09IGVsZW0ubGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgIGVsZW0gPSBlbGVtLm5leHRTaWJsaW5nXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChlbGVtLmNoaWxkTm9kZXMubGVuZ3RoID09PSAwICYmICFlbGVtLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICBlbGVtID0gZWxlbS5wcmV2aW91c1NpYmxpbmdcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgbGV0IHNlbCA9IHRoaXMuZ2V0V2luZG93U2VsZWN0aW9uKClcblxuICAgICAgICByYW5nZSA9IHRoaXMuZ2V0RG9jdW1lbnQoKS5jcmVhdGVSYW5nZSgpXG4gICAgICAgIHJhbmdlLnNldFN0YXJ0KGVsZW0sIG9mZnNldClcbiAgICAgICAgcmFuZ2Uuc2V0RW5kKGVsZW0sIG9mZnNldClcbiAgICAgICAgcmFuZ2UuY29sbGFwc2UodHJ1ZSlcblxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgc2VsLnJlbW92ZUFsbFJhbmdlcygpXG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7fVxuXG4gICAgICAgIHNlbC5hZGRSYW5nZShyYW5nZSlcbiAgICAgICAgdGFyZ2V0RWxlbWVudC5mb2N1cygpXG4gICAgfVxuXG4gICAgLy8gVE9ETzogdGhpcyBtYXkgbm90IGJlIG5lY2Vzc2FyeSBhbnltb3JlIGFzIHdlIGFyZSB1c2luZyBtb3VzZXVwIGluc3RlYWQgb2YgY2xpY2tcbiAgICByZXNldFNlbGVjdGlvbih0YXJnZXRFbGVtZW50LCBwYXRoLCBvZmZzZXQpIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzQ29udGVudEVkaXRhYmxlKHRhcmdldEVsZW1lbnQpKSB7XG4gICAgICAgICAgICBpZiAodGFyZ2V0RWxlbWVudCAhPT0gdGhpcy5nZXREb2N1bWVudCgpLmFjdGl2ZUVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICB0YXJnZXRFbGVtZW50LmZvY3VzKClcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0RWxlbWVudCh0YXJnZXRFbGVtZW50LCBwYXRoLCBvZmZzZXQpXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZXBsYWNlVHJpZ2dlclRleHQodGV4dCwgcmVxdWlyZUxlYWRpbmdTcGFjZSwgaGFzVHJhaWxpbmdTcGFjZSwgb3JpZ2luYWxFdmVudCwgaXRlbSkge1xuICAgICAgICBsZXQgY29udGV4dCA9IHRoaXMudHJpYnV0ZS5jdXJyZW50XG4gICAgICAgIC8vIFRPRE86IHRoaXMgbWF5IG5vdCBiZSBuZWNlc3NhcnkgYW55bW9yZSBhcyB3ZSBhcmUgdXNpbmcgbW91c2V1cCBpbnN0ZWFkIG9mIGNsaWNrXG4gICAgICAgIC8vIHRoaXMucmVzZXRTZWxlY3Rpb24oY29udGV4dC5lbGVtZW50LCBjb250ZXh0LnNlbGVjdGVkUGF0aCwgY29udGV4dC5zZWxlY3RlZE9mZnNldClcblxuICAgICAgICBsZXQgaW5mbyA9IHRoaXMuZ2V0VHJpZ2dlckluZm8odHJ1ZSwgaGFzVHJhaWxpbmdTcGFjZSwgcmVxdWlyZUxlYWRpbmdTcGFjZSwgdGhpcy50cmlidXRlLmFsbG93U3BhY2VzKVxuXG4gICAgICAgIC8vIENyZWF0ZSB0aGUgZXZlbnRcbiAgICAgICAgbGV0IHJlcGxhY2VFdmVudCA9IG5ldyBDdXN0b21FdmVudCgndHJpYnV0ZS1yZXBsYWNlZCcsIHtcbiAgICAgICAgICAgIGRldGFpbDoge1xuICAgICAgICAgICAgICAgIGl0ZW06IGl0ZW0sXG4gICAgICAgICAgICAgICAgZXZlbnQ6IG9yaWdpbmFsRXZlbnRcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSlcblxuICAgICAgICBpZiAoaW5mbyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBpZiAoIXRoaXMuaXNDb250ZW50RWRpdGFibGUoY29udGV4dC5lbGVtZW50KSkge1xuICAgICAgICAgICAgICAgIGxldCBteUZpZWxkID0gdGhpcy5nZXREb2N1bWVudCgpLmFjdGl2ZUVsZW1lbnRcbiAgICAgICAgICAgICAgICBsZXQgdGV4dFN1ZmZpeCA9IHR5cGVvZiB0aGlzLnRyaWJ1dGUucmVwbGFjZVRleHRTdWZmaXggPT0gJ3N0cmluZydcbiAgICAgICAgICAgICAgICAgICAgPyB0aGlzLnRyaWJ1dGUucmVwbGFjZVRleHRTdWZmaXhcbiAgICAgICAgICAgICAgICAgICAgOiAnICdcbiAgICAgICAgICAgICAgICB0ZXh0ICs9IHRleHRTdWZmaXhcbiAgICAgICAgICAgICAgICBsZXQgc3RhcnRQb3MgPSBpbmZvLm1lbnRpb25Qb3NpdGlvblxuICAgICAgICAgICAgICAgIGxldCBlbmRQb3MgPSBpbmZvLm1lbnRpb25Qb3NpdGlvbiArIGluZm8ubWVudGlvblRleHQubGVuZ3RoICsgdGV4dFN1ZmZpeC5sZW5ndGhcbiAgICAgICAgICAgICAgICBteUZpZWxkLnZhbHVlID0gbXlGaWVsZC52YWx1ZS5zdWJzdHJpbmcoMCwgc3RhcnRQb3MpICsgdGV4dCArXG4gICAgICAgICAgICAgICAgICAgIG15RmllbGQudmFsdWUuc3Vic3RyaW5nKGVuZFBvcywgbXlGaWVsZC52YWx1ZS5sZW5ndGgpXG4gICAgICAgICAgICAgICAgbXlGaWVsZC5zZWxlY3Rpb25TdGFydCA9IHN0YXJ0UG9zICsgdGV4dC5sZW5ndGhcbiAgICAgICAgICAgICAgICBteUZpZWxkLnNlbGVjdGlvbkVuZCA9IHN0YXJ0UG9zICsgdGV4dC5sZW5ndGhcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gYWRkIGEgc3BhY2UgdG8gdGhlIGVuZCBvZiB0aGUgcGFzdGVkIHRleHRcbiAgICAgICAgICAgICAgICBsZXQgdGV4dFN1ZmZpeCA9IHR5cGVvZiB0aGlzLnRyaWJ1dGUucmVwbGFjZVRleHRTdWZmaXggPT0gJ3N0cmluZydcbiAgICAgICAgICAgICAgICAgICAgPyB0aGlzLnRyaWJ1dGUucmVwbGFjZVRleHRTdWZmaXhcbiAgICAgICAgICAgICAgICAgICAgOiAnXFx4QTAnXG4gICAgICAgICAgICAgICAgdGV4dCArPSB0ZXh0U3VmZml4XG4gICAgICAgICAgICAgICAgdGhpcy5wYXN0ZUh0bWwodGV4dCwgaW5mby5tZW50aW9uUG9zaXRpb24sXG4gICAgICAgICAgICAgICAgICAgIGluZm8ubWVudGlvblBvc2l0aW9uICsgaW5mby5tZW50aW9uVGV4dC5sZW5ndGggKyAxKVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb250ZXh0LmVsZW1lbnQuZGlzcGF0Y2hFdmVudChyZXBsYWNlRXZlbnQpXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwYXN0ZUh0bWwoaHRtbCwgc3RhcnRQb3MsIGVuZFBvcykge1xuICAgICAgICBsZXQgcmFuZ2UsIHNlbFxuICAgICAgICBzZWwgPSB0aGlzLmdldFdpbmRvd1NlbGVjdGlvbigpXG4gICAgICAgIHJhbmdlID0gdGhpcy5nZXREb2N1bWVudCgpLmNyZWF0ZVJhbmdlKClcbiAgICAgICAgcmFuZ2Uuc2V0U3RhcnQoc2VsLmFuY2hvck5vZGUsIHN0YXJ0UG9zKVxuICAgICAgICByYW5nZS5zZXRFbmQoc2VsLmFuY2hvck5vZGUsIGVuZFBvcylcbiAgICAgICAgcmFuZ2UuZGVsZXRlQ29udGVudHMoKVxuXG4gICAgICAgIGxldCBlbCA9IHRoaXMuZ2V0RG9jdW1lbnQoKS5jcmVhdGVFbGVtZW50KCdkaXYnKVxuICAgICAgICBlbC5pbm5lckhUTUwgPSBodG1sXG4gICAgICAgIGxldCBmcmFnID0gdGhpcy5nZXREb2N1bWVudCgpLmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKSxcbiAgICAgICAgICAgIG5vZGUsIGxhc3ROb2RlXG4gICAgICAgIHdoaWxlICgobm9kZSA9IGVsLmZpcnN0Q2hpbGQpKSB7XG4gICAgICAgICAgICBsYXN0Tm9kZSA9IGZyYWcuYXBwZW5kQ2hpbGQobm9kZSlcbiAgICAgICAgfVxuICAgICAgICByYW5nZS5pbnNlcnROb2RlKGZyYWcpXG5cbiAgICAgICAgLy8gUHJlc2VydmUgdGhlIHNlbGVjdGlvblxuICAgICAgICBpZiAobGFzdE5vZGUpIHtcbiAgICAgICAgICAgIHJhbmdlID0gcmFuZ2UuY2xvbmVSYW5nZSgpXG4gICAgICAgICAgICByYW5nZS5zZXRTdGFydEFmdGVyKGxhc3ROb2RlKVxuICAgICAgICAgICAgcmFuZ2UuY29sbGFwc2UodHJ1ZSlcbiAgICAgICAgICAgIHNlbC5yZW1vdmVBbGxSYW5nZXMoKVxuICAgICAgICAgICAgc2VsLmFkZFJhbmdlKHJhbmdlKVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0V2luZG93U2VsZWN0aW9uKCkge1xuICAgICAgICBpZiAodGhpcy50cmlidXRlLmNvbGxlY3Rpb24uaWZyYW1lKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy50cmlidXRlLmNvbGxlY3Rpb24uaWZyYW1lLmNvbnRlbnRXaW5kb3cuZ2V0U2VsZWN0aW9uKClcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB3aW5kb3cuZ2V0U2VsZWN0aW9uKClcbiAgICB9XG5cbiAgICBnZXROb2RlUG9zaXRpb25JblBhcmVudChlbGVtZW50KSB7XG4gICAgICAgIGlmIChlbGVtZW50LnBhcmVudE5vZGUgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiAwXG4gICAgICAgIH1cblxuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGVsZW1lbnQucGFyZW50Tm9kZS5jaGlsZE5vZGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBsZXQgbm9kZSA9IGVsZW1lbnQucGFyZW50Tm9kZS5jaGlsZE5vZGVzW2ldXG5cbiAgICAgICAgICAgIGlmIChub2RlID09PSBlbGVtZW50KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGlcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldENvbnRlbnRFZGl0YWJsZVNlbGVjdGVkUGF0aChjdHgpIHtcbiAgICAgICAgbGV0IHNlbCA9IHRoaXMuZ2V0V2luZG93U2VsZWN0aW9uKClcbiAgICAgICAgbGV0IHNlbGVjdGVkID0gc2VsLmFuY2hvck5vZGVcbiAgICAgICAgbGV0IHBhdGggPSBbXVxuICAgICAgICBsZXQgb2Zmc2V0XG5cbiAgICAgICAgaWYgKHNlbGVjdGVkICE9IG51bGwpIHtcbiAgICAgICAgICAgIGxldCBpXG4gICAgICAgICAgICBsZXQgY2UgPSBzZWxlY3RlZC5jb250ZW50RWRpdGFibGVcbiAgICAgICAgICAgIHdoaWxlIChzZWxlY3RlZCAhPT0gbnVsbCAmJiBjZSAhPT0gJ3RydWUnKSB7XG4gICAgICAgICAgICAgICAgaSA9IHRoaXMuZ2V0Tm9kZVBvc2l0aW9uSW5QYXJlbnQoc2VsZWN0ZWQpXG4gICAgICAgICAgICAgICAgcGF0aC5wdXNoKGkpXG4gICAgICAgICAgICAgICAgc2VsZWN0ZWQgPSBzZWxlY3RlZC5wYXJlbnROb2RlXG4gICAgICAgICAgICAgICAgaWYgKHNlbGVjdGVkICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIGNlID0gc2VsZWN0ZWQuY29udGVudEVkaXRhYmxlXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcGF0aC5yZXZlcnNlKClcblxuICAgICAgICAgICAgLy8gZ2V0UmFuZ2VBdCBtYXkgbm90IGV4aXN0LCBuZWVkIGFsdGVybmF0aXZlXG4gICAgICAgICAgICBvZmZzZXQgPSBzZWwuZ2V0UmFuZ2VBdCgwKS5zdGFydE9mZnNldFxuXG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHNlbGVjdGVkOiBzZWxlY3RlZCxcbiAgICAgICAgICAgICAgICBwYXRoOiBwYXRoLFxuICAgICAgICAgICAgICAgIG9mZnNldDogb2Zmc2V0XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXRUZXh0UHJlY2VkaW5nQ3VycmVudFNlbGVjdGlvbigpIHtcbiAgICAgICAgbGV0IGNvbnRleHQgPSB0aGlzLnRyaWJ1dGUuY3VycmVudCxcbiAgICAgICAgICAgIHRleHQgPSAnJ1xuXG4gICAgICAgIGlmICghdGhpcy5pc0NvbnRlbnRFZGl0YWJsZShjb250ZXh0LmVsZW1lbnQpKSB7XG4gICAgICAgICAgICBsZXQgdGV4dENvbXBvbmVudCA9IHRoaXMudHJpYnV0ZS5jdXJyZW50LmVsZW1lbnQ7XG4gICAgICAgICAgICBpZiAodGV4dENvbXBvbmVudCkge1xuICAgICAgICAgICAgICAgIGxldCBzdGFydFBvcyA9IHRleHRDb21wb25lbnQuc2VsZWN0aW9uU3RhcnRcbiAgICAgICAgICAgICAgICBpZiAodGV4dENvbXBvbmVudC52YWx1ZSAmJiBzdGFydFBvcyA+PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQgPSB0ZXh0Q29tcG9uZW50LnZhbHVlLnN1YnN0cmluZygwLCBzdGFydFBvcylcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGxldCBzZWxlY3RlZEVsZW0gPSB0aGlzLmdldFdpbmRvd1NlbGVjdGlvbigpLmFuY2hvck5vZGVcblxuICAgICAgICAgICAgaWYgKHNlbGVjdGVkRWxlbSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgbGV0IHdvcmtpbmdOb2RlQ29udGVudCA9IHNlbGVjdGVkRWxlbS50ZXh0Q29udGVudFxuICAgICAgICAgICAgICAgIGxldCBzZWxlY3RTdGFydE9mZnNldCA9IHRoaXMuZ2V0V2luZG93U2VsZWN0aW9uKCkuZ2V0UmFuZ2VBdCgwKS5zdGFydE9mZnNldFxuXG4gICAgICAgICAgICAgICAgaWYgKHdvcmtpbmdOb2RlQ29udGVudCAmJiBzZWxlY3RTdGFydE9mZnNldCA+PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQgPSB3b3JraW5nTm9kZUNvbnRlbnQuc3Vic3RyaW5nKDAsIHNlbGVjdFN0YXJ0T2Zmc2V0KVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0ZXh0XG4gICAgfVxuXG4gICAgZ2V0VHJpZ2dlckluZm8obWVudUFscmVhZHlBY3RpdmUsIGhhc1RyYWlsaW5nU3BhY2UsIHJlcXVpcmVMZWFkaW5nU3BhY2UsIGFsbG93U3BhY2VzKSB7XG4gICAgICAgIGxldCBjdHggPSB0aGlzLnRyaWJ1dGUuY3VycmVudFxuICAgICAgICBsZXQgc2VsZWN0ZWQsIHBhdGgsIG9mZnNldFxuXG4gICAgICAgIGlmICghdGhpcy5pc0NvbnRlbnRFZGl0YWJsZShjdHguZWxlbWVudCkpIHtcbiAgICAgICAgICAgIHNlbGVjdGVkID0gdGhpcy5nZXREb2N1bWVudCgpLmFjdGl2ZUVsZW1lbnRcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGxldCBzZWxlY3Rpb25JbmZvID0gdGhpcy5nZXRDb250ZW50RWRpdGFibGVTZWxlY3RlZFBhdGgoY3R4KVxuXG4gICAgICAgICAgICBpZiAoc2VsZWN0aW9uSW5mbykge1xuICAgICAgICAgICAgICAgIHNlbGVjdGVkID0gc2VsZWN0aW9uSW5mby5zZWxlY3RlZFxuICAgICAgICAgICAgICAgIHBhdGggPSBzZWxlY3Rpb25JbmZvLnBhdGhcbiAgICAgICAgICAgICAgICBvZmZzZXQgPSBzZWxlY3Rpb25JbmZvLm9mZnNldFxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgbGV0IGVmZmVjdGl2ZVJhbmdlID0gdGhpcy5nZXRUZXh0UHJlY2VkaW5nQ3VycmVudFNlbGVjdGlvbigpXG5cbiAgICAgICAgaWYgKGVmZmVjdGl2ZVJhbmdlICE9PSB1bmRlZmluZWQgJiYgZWZmZWN0aXZlUmFuZ2UgIT09IG51bGwpIHtcbiAgICAgICAgICAgIGxldCBtb3N0UmVjZW50VHJpZ2dlckNoYXJQb3MgPSAtMVxuICAgICAgICAgICAgbGV0IHRyaWdnZXJDaGFyXG5cbiAgICAgICAgICAgIHRoaXMudHJpYnV0ZS5jb2xsZWN0aW9uLmZvckVhY2goY29uZmlnID0+IHtcbiAgICAgICAgICAgICAgICBsZXQgYyA9IGNvbmZpZy50cmlnZ2VyXG4gICAgICAgICAgICAgICAgbGV0IGlkeCA9IGNvbmZpZy5yZXF1aXJlTGVhZGluZ1NwYWNlID9cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5sYXN0SW5kZXhXaXRoTGVhZGluZ1NwYWNlKGVmZmVjdGl2ZVJhbmdlLCBjKSA6XG4gICAgICAgICAgICAgICAgICAgIGVmZmVjdGl2ZVJhbmdlLmxhc3RJbmRleE9mKGMpXG5cbiAgICAgICAgICAgICAgICBpZiAoaWR4ID4gbW9zdFJlY2VudFRyaWdnZXJDaGFyUG9zKSB7XG4gICAgICAgICAgICAgICAgICAgIG1vc3RSZWNlbnRUcmlnZ2VyQ2hhclBvcyA9IGlkeFxuICAgICAgICAgICAgICAgICAgICB0cmlnZ2VyQ2hhciA9IGNcbiAgICAgICAgICAgICAgICAgICAgcmVxdWlyZUxlYWRpbmdTcGFjZSA9IGNvbmZpZy5yZXF1aXJlTGVhZGluZ1NwYWNlXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcblxuICAgICAgICAgICAgaWYgKG1vc3RSZWNlbnRUcmlnZ2VyQ2hhclBvcyA+PSAwICYmXG4gICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICBtb3N0UmVjZW50VHJpZ2dlckNoYXJQb3MgPT09IDAgfHxcbiAgICAgICAgICAgICAgICAgICAgIXJlcXVpcmVMZWFkaW5nU3BhY2UgfHxcbiAgICAgICAgICAgICAgICAgICAgL1tcXHhBMFxcc10vZy50ZXN0KFxuICAgICAgICAgICAgICAgICAgICAgICAgZWZmZWN0aXZlUmFuZ2Uuc3Vic3RyaW5nKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vc3RSZWNlbnRUcmlnZ2VyQ2hhclBvcyAtIDEsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9zdFJlY2VudFRyaWdnZXJDaGFyUG9zKVxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgbGV0IGN1cnJlbnRUcmlnZ2VyU25pcHBldCA9IGVmZmVjdGl2ZVJhbmdlLnN1YnN0cmluZyhtb3N0UmVjZW50VHJpZ2dlckNoYXJQb3MgKyAxLFxuICAgICAgICAgICAgICAgICAgICBlZmZlY3RpdmVSYW5nZS5sZW5ndGgpXG5cbiAgICAgICAgICAgICAgICB0cmlnZ2VyQ2hhciA9IGVmZmVjdGl2ZVJhbmdlLnN1YnN0cmluZyhtb3N0UmVjZW50VHJpZ2dlckNoYXJQb3MsIG1vc3RSZWNlbnRUcmlnZ2VyQ2hhclBvcyArIDEpXG4gICAgICAgICAgICAgICAgbGV0IGZpcnN0U25pcHBldENoYXIgPSBjdXJyZW50VHJpZ2dlclNuaXBwZXQuc3Vic3RyaW5nKDAsIDEpXG4gICAgICAgICAgICAgICAgbGV0IGxlYWRpbmdTcGFjZSA9IGN1cnJlbnRUcmlnZ2VyU25pcHBldC5sZW5ndGggPiAwICYmXG4gICAgICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpcnN0U25pcHBldENoYXIgPT09ICcgJyB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgZmlyc3RTbmlwcGV0Q2hhciA9PT0gJ1xceEEwJ1xuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgaWYgKGhhc1RyYWlsaW5nU3BhY2UpIHtcbiAgICAgICAgICAgICAgICAgICAgY3VycmVudFRyaWdnZXJTbmlwcGV0ID0gY3VycmVudFRyaWdnZXJTbmlwcGV0LnRyaW0oKVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGxldCByZWdleCA9IGFsbG93U3BhY2VzID8gL1teXFxTIF0vZyA6IC9bXFx4QTBcXHNdL2c7XG5cbiAgICAgICAgICAgICAgICBpZiAoIWxlYWRpbmdTcGFjZSAmJiAobWVudUFscmVhZHlBY3RpdmUgfHwgIShyZWdleC50ZXN0KGN1cnJlbnRUcmlnZ2VyU25pcHBldCkpKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgbWVudGlvblBvc2l0aW9uOiBtb3N0UmVjZW50VHJpZ2dlckNoYXJQb3MsXG4gICAgICAgICAgICAgICAgICAgICAgICBtZW50aW9uVGV4dDogY3VycmVudFRyaWdnZXJTbmlwcGV0LFxuICAgICAgICAgICAgICAgICAgICAgICAgbWVudGlvblNlbGVjdGVkRWxlbWVudDogc2VsZWN0ZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICBtZW50aW9uU2VsZWN0ZWRQYXRoOiBwYXRoLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWVudGlvblNlbGVjdGVkT2Zmc2V0OiBvZmZzZXQsXG4gICAgICAgICAgICAgICAgICAgICAgICBtZW50aW9uVHJpZ2dlckNoYXI6IHRyaWdnZXJDaGFyXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBsYXN0SW5kZXhXaXRoTGVhZGluZ1NwYWNlIChzdHIsIGNoYXIpIHtcbiAgICAgICAgbGV0IHJldmVyc2VkU3RyID0gc3RyLnNwbGl0KCcnKS5yZXZlcnNlKCkuam9pbignJylcbiAgICAgICAgbGV0IGluZGV4ID0gLTFcblxuICAgICAgICBmb3IgKGxldCBjaWR4ID0gMCwgbGVuID0gc3RyLmxlbmd0aDsgY2lkeCA8IGxlbjsgY2lkeCsrKSB7XG4gICAgICAgICAgICBsZXQgZmlyc3RDaGFyID0gY2lkeCA9PT0gc3RyLmxlbmd0aCAtIDFcbiAgICAgICAgICAgIGxldCBsZWFkaW5nU3BhY2UgPSAvXFxzLy50ZXN0KHJldmVyc2VkU3RyW2NpZHggKyAxXSlcbiAgICAgICAgICAgIGxldCBtYXRjaCA9IGNoYXIgPT09IHJldmVyc2VkU3RyW2NpZHhdXG5cbiAgICAgICAgICAgIGlmIChtYXRjaCAmJiAoZmlyc3RDaGFyIHx8IGxlYWRpbmdTcGFjZSkpIHtcbiAgICAgICAgICAgICAgICBpbmRleCA9IHN0ci5sZW5ndGggLSAxIC0gY2lkeFxuICAgICAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gaW5kZXhcbiAgICB9XG5cbiAgICBpc0NvbnRlbnRFZGl0YWJsZShlbGVtZW50KSB7XG4gICAgICAgIHJldHVybiBlbGVtZW50Lm5vZGVOYW1lICE9PSAnSU5QVVQnICYmIGVsZW1lbnQubm9kZU5hbWUgIT09ICdURVhUQVJFQSdcbiAgICB9XG5cbiAgICBnZXRUZXh0QXJlYU9ySW5wdXRVbmRlcmxpbmVQb3NpdGlvbihlbGVtZW50LCBwb3NpdGlvbikge1xuICAgICAgICBsZXQgcHJvcGVydGllcyA9IFsnZGlyZWN0aW9uJywgJ2JveFNpemluZycsICd3aWR0aCcsICdoZWlnaHQnLCAnb3ZlcmZsb3dYJyxcbiAgICAgICAgICAgICdvdmVyZmxvd1knLCAnYm9yZGVyVG9wV2lkdGgnLCAnYm9yZGVyUmlnaHRXaWR0aCcsXG4gICAgICAgICAgICAnYm9yZGVyQm90dG9tV2lkdGgnLCAnYm9yZGVyTGVmdFdpZHRoJywgJ3BhZGRpbmdUb3AnLFxuICAgICAgICAgICAgJ3BhZGRpbmdSaWdodCcsICdwYWRkaW5nQm90dG9tJywgJ3BhZGRpbmdMZWZ0JyxcbiAgICAgICAgICAgICdmb250U3R5bGUnLCAnZm9udFZhcmlhbnQnLCAnZm9udFdlaWdodCcsICdmb250U3RyZXRjaCcsXG4gICAgICAgICAgICAnZm9udFNpemUnLCAnZm9udFNpemVBZGp1c3QnLCAnbGluZUhlaWdodCcsICdmb250RmFtaWx5JyxcbiAgICAgICAgICAgICd0ZXh0QWxpZ24nLCAndGV4dFRyYW5zZm9ybScsICd0ZXh0SW5kZW50JyxcbiAgICAgICAgICAgICd0ZXh0RGVjb3JhdGlvbicsICdsZXR0ZXJTcGFjaW5nJywgJ3dvcmRTcGFjaW5nJ1xuICAgICAgICBdXG5cbiAgICAgICAgbGV0IGlzRmlyZWZveCA9ICh3aW5kb3cubW96SW5uZXJTY3JlZW5YICE9PSBudWxsKVxuXG4gICAgICAgIGxldCBkaXYgPSB0aGlzLmdldERvY3VtZW50KCkuY3JlYXRlRWxlbWVudCgnZGl2JylcbiAgICAgICAgZGl2LmlkID0gJ2lucHV0LXRleHRhcmVhLWNhcmV0LXBvc2l0aW9uLW1pcnJvci1kaXYnXG4gICAgICAgIHRoaXMuZ2V0RG9jdW1lbnQoKS5ib2R5LmFwcGVuZENoaWxkKGRpdilcblxuICAgICAgICBsZXQgc3R5bGUgPSBkaXYuc3R5bGVcbiAgICAgICAgbGV0IGNvbXB1dGVkID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUgPyBnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQpIDogZWxlbWVudC5jdXJyZW50U3R5bGVcblxuICAgICAgICBzdHlsZS53aGl0ZVNwYWNlID0gJ3ByZS13cmFwJ1xuICAgICAgICBpZiAoZWxlbWVudC5ub2RlTmFtZSAhPT0gJ0lOUFVUJykge1xuICAgICAgICAgICAgc3R5bGUud29yZFdyYXAgPSAnYnJlYWstd29yZCdcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHBvc2l0aW9uIG9mZi1zY3JlZW5cbiAgICAgICAgc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnXG4gICAgICAgIHN0eWxlLnZpc2liaWxpdHkgPSAnaGlkZGVuJ1xuXG4gICAgICAgIC8vIHRyYW5zZmVyIHRoZSBlbGVtZW50J3MgcHJvcGVydGllcyB0byB0aGUgZGl2XG4gICAgICAgIHByb3BlcnRpZXMuZm9yRWFjaChwcm9wID0+IHtcbiAgICAgICAgICAgIHN0eWxlW3Byb3BdID0gY29tcHV0ZWRbcHJvcF1cbiAgICAgICAgfSlcblxuICAgICAgICBpZiAoaXNGaXJlZm94KSB7XG4gICAgICAgICAgICBzdHlsZS53aWR0aCA9IGAkeyhwYXJzZUludChjb21wdXRlZC53aWR0aCkgLSAyKX1weGBcbiAgICAgICAgICAgIGlmIChlbGVtZW50LnNjcm9sbEhlaWdodCA+IHBhcnNlSW50KGNvbXB1dGVkLmhlaWdodCkpXG4gICAgICAgICAgICAgICAgc3R5bGUub3ZlcmZsb3dZID0gJ3Njcm9sbCdcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHN0eWxlLm92ZXJmbG93ID0gJ2hpZGRlbidcbiAgICAgICAgfVxuXG4gICAgICAgIGRpdi50ZXh0Q29udGVudCA9IGVsZW1lbnQudmFsdWUuc3Vic3RyaW5nKDAsIHBvc2l0aW9uKVxuXG4gICAgICAgIGlmIChlbGVtZW50Lm5vZGVOYW1lID09PSAnSU5QVVQnKSB7XG4gICAgICAgICAgICBkaXYudGV4dENvbnRlbnQgPSBkaXYudGV4dENvbnRlbnQucmVwbGFjZSgvXFxzL2csICfCoCcpXG4gICAgICAgIH1cblxuICAgICAgICBsZXQgc3BhbiA9IHRoaXMuZ2V0RG9jdW1lbnQoKS5jcmVhdGVFbGVtZW50KCdzcGFuJylcbiAgICAgICAgc3Bhbi50ZXh0Q29udGVudCA9IGVsZW1lbnQudmFsdWUuc3Vic3RyaW5nKHBvc2l0aW9uKSB8fCAnLidcbiAgICAgICAgZGl2LmFwcGVuZENoaWxkKHNwYW4pXG5cbiAgICAgICAgbGV0IHJlY3QgPSBlbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXG4gICAgICAgIGxldCBkb2MgPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnRcbiAgICAgICAgbGV0IHdpbmRvd0xlZnQgPSAod2luZG93LnBhZ2VYT2Zmc2V0IHx8IGRvYy5zY3JvbGxMZWZ0KSAtIChkb2MuY2xpZW50TGVmdCB8fCAwKVxuICAgICAgICBsZXQgd2luZG93VG9wID0gKHdpbmRvdy5wYWdlWU9mZnNldCB8fCBkb2Muc2Nyb2xsVG9wKSAtIChkb2MuY2xpZW50VG9wIHx8IDApXG5cbiAgICAgICAgbGV0IGNvb3JkaW5hdGVzID0ge1xuICAgICAgICAgICAgdG9wOiByZWN0LnRvcCArIHdpbmRvd1RvcCArIHNwYW4ub2Zmc2V0VG9wICsgcGFyc2VJbnQoY29tcHV0ZWQuYm9yZGVyVG9wV2lkdGgpICsgcGFyc2VJbnQoY29tcHV0ZWQuZm9udFNpemUpIC0gZWxlbWVudC5zY3JvbGxUb3AsXG4gICAgICAgICAgICBsZWZ0OiByZWN0LmxlZnQgKyB3aW5kb3dMZWZ0ICsgc3Bhbi5vZmZzZXRMZWZ0ICsgcGFyc2VJbnQoY29tcHV0ZWQuYm9yZGVyTGVmdFdpZHRoKVxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5nZXREb2N1bWVudCgpLmJvZHkucmVtb3ZlQ2hpbGQoZGl2KVxuXG4gICAgICAgIHJldHVybiBjb29yZGluYXRlc1xuICAgIH1cblxuICAgIGdldENvbnRlbnRFZGl0YWJsZUNhcmV0UG9zaXRpb24oc2VsZWN0ZWROb2RlUG9zaXRpb24pIHtcbiAgICAgICAgbGV0IG1hcmtlclRleHRDaGFyID0gJ++7vydcbiAgICAgICAgbGV0IG1hcmtlckVsLCBtYXJrZXJJZCA9IGBzZWxfJHtuZXcgRGF0ZSgpLmdldFRpbWUoKX1fJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKCkuc3Vic3RyKDIpfWBcbiAgICAgICAgbGV0IHJhbmdlXG4gICAgICAgIGxldCBzZWwgPSB0aGlzLmdldFdpbmRvd1NlbGVjdGlvbigpXG4gICAgICAgIGxldCBwcmV2UmFuZ2UgPSBzZWwuZ2V0UmFuZ2VBdCgwKVxuXG4gICAgICAgIHJhbmdlID0gdGhpcy5nZXREb2N1bWVudCgpLmNyZWF0ZVJhbmdlKClcbiAgICAgICAgcmFuZ2Uuc2V0U3RhcnQoc2VsLmFuY2hvck5vZGUsIHNlbGVjdGVkTm9kZVBvc2l0aW9uKVxuICAgICAgICByYW5nZS5zZXRFbmQoc2VsLmFuY2hvck5vZGUsIHNlbGVjdGVkTm9kZVBvc2l0aW9uKVxuXG4gICAgICAgIHJhbmdlLmNvbGxhcHNlKGZhbHNlKVxuXG4gICAgICAgIC8vIENyZWF0ZSB0aGUgbWFya2VyIGVsZW1lbnQgY29udGFpbmluZyBhIHNpbmdsZSBpbnZpc2libGUgY2hhcmFjdGVyIHVzaW5nIERPTSBtZXRob2RzIGFuZCBpbnNlcnQgaXRcbiAgICAgICAgbWFya2VyRWwgPSB0aGlzLmdldERvY3VtZW50KCkuY3JlYXRlRWxlbWVudCgnc3BhbicpXG4gICAgICAgIG1hcmtlckVsLmlkID0gbWFya2VySWRcbiAgICAgICAgbWFya2VyRWwuYXBwZW5kQ2hpbGQodGhpcy5nZXREb2N1bWVudCgpLmNyZWF0ZVRleHROb2RlKG1hcmtlclRleHRDaGFyKSlcbiAgICAgICAgcmFuZ2UuaW5zZXJ0Tm9kZShtYXJrZXJFbClcbiAgICAgICAgc2VsLnJlbW92ZUFsbFJhbmdlcygpXG4gICAgICAgIHNlbC5hZGRSYW5nZShwcmV2UmFuZ2UpXG5cbiAgICAgICAgbGV0IHJlY3QgPSBtYXJrZXJFbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKVxuICAgICAgICBsZXQgZG9jID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50XG4gICAgICAgIGxldCB3aW5kb3dMZWZ0ID0gKHdpbmRvdy5wYWdlWE9mZnNldCB8fCBkb2Muc2Nyb2xsTGVmdCkgLSAoZG9jLmNsaWVudExlZnQgfHwgMClcbiAgICAgICAgbGV0IHdpbmRvd1RvcCA9ICh3aW5kb3cucGFnZVlPZmZzZXQgfHwgZG9jLnNjcm9sbFRvcCkgLSAoZG9jLmNsaWVudFRvcCB8fCAwKVxuICAgICAgICBsZXQgY29vcmRpbmF0ZXMgPSB7XG4gICAgICAgICAgICBsZWZ0OiByZWN0LmxlZnQgKyB3aW5kb3dMZWZ0LFxuICAgICAgICAgICAgdG9wOiByZWN0LnRvcCArIG1hcmtlckVsLm9mZnNldEhlaWdodCArIHdpbmRvd1RvcFxuICAgICAgICB9XG5cbiAgICAgICAgbWFya2VyRWwucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChtYXJrZXJFbClcbiAgICAgICAgcmV0dXJuIGNvb3JkaW5hdGVzXG4gICAgfVxuXG4gICAgc2Nyb2xsSW50b1ZpZXcoZWxlbSkge1xuICAgICAgICBsZXQgcmVhc29uYWJsZUJ1ZmZlciA9IDIwLFxuICAgICAgICAgICAgY2xpZW50UmVjdFxuICAgICAgICBsZXQgbWF4U2Nyb2xsRGlzcGxhY2VtZW50ID0gMTAwXG4gICAgICAgIGxldCBlID0gdGhpcy5tZW51XG5cbiAgICAgICAgaWYgKHR5cGVvZiBlID09PSAndW5kZWZpbmVkJykgcmV0dXJuO1xuXG4gICAgICAgIHdoaWxlIChjbGllbnRSZWN0ID09PSB1bmRlZmluZWQgfHwgY2xpZW50UmVjdC5oZWlnaHQgPT09IDApIHtcbiAgICAgICAgICAgIGNsaWVudFJlY3QgPSBlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXG5cbiAgICAgICAgICAgIGlmIChjbGllbnRSZWN0LmhlaWdodCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIGUgPSBlLmNoaWxkTm9kZXNbMF1cbiAgICAgICAgICAgICAgICBpZiAoZSA9PT0gdW5kZWZpbmVkIHx8ICFlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgZWxlbVRvcCA9IGNsaWVudFJlY3QudG9wXG4gICAgICAgIGxldCBlbGVtQm90dG9tID0gZWxlbVRvcCArIGNsaWVudFJlY3QuaGVpZ2h0XG5cbiAgICAgICAgaWYgKGVsZW1Ub3AgPCAwKSB7XG4gICAgICAgICAgICB3aW5kb3cuc2Nyb2xsVG8oMCwgd2luZG93LnBhZ2VZT2Zmc2V0ICsgY2xpZW50UmVjdC50b3AgLSByZWFzb25hYmxlQnVmZmVyKVxuICAgICAgICB9IGVsc2UgaWYgKGVsZW1Cb3R0b20gPiB3aW5kb3cuaW5uZXJIZWlnaHQpIHtcbiAgICAgICAgICAgIGxldCBtYXhZID0gd2luZG93LnBhZ2VZT2Zmc2V0ICsgY2xpZW50UmVjdC50b3AgLSByZWFzb25hYmxlQnVmZmVyXG5cbiAgICAgICAgICAgIGlmIChtYXhZIC0gd2luZG93LnBhZ2VZT2Zmc2V0ID4gbWF4U2Nyb2xsRGlzcGxhY2VtZW50KSB7XG4gICAgICAgICAgICAgICAgbWF4WSA9IHdpbmRvdy5wYWdlWU9mZnNldCArIG1heFNjcm9sbERpc3BsYWNlbWVudFxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBsZXQgdGFyZ2V0WSA9IHdpbmRvdy5wYWdlWU9mZnNldCAtICh3aW5kb3cuaW5uZXJIZWlnaHQgLSBlbGVtQm90dG9tKVxuXG4gICAgICAgICAgICBpZiAodGFyZ2V0WSA+IG1heFkpIHtcbiAgICAgICAgICAgICAgICB0YXJnZXRZID0gbWF4WVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB3aW5kb3cuc2Nyb2xsVG8oMCwgdGFyZ2V0WSlcbiAgICAgICAgfVxuICAgIH1cbn1cblxuXG5leHBvcnQgZGVmYXVsdCBUcmlidXRlUmFuZ2U7XG4iLCIvLyBUaGFua3MgdG8gaHR0cHM6Ly9naXRodWIuY29tL21hdHR5b3JrL2Z1enp5XG5jbGFzcyBUcmlidXRlU2VhcmNoIHtcbiAgICBjb25zdHJ1Y3Rvcih0cmlidXRlKSB7XG4gICAgICAgIHRoaXMudHJpYnV0ZSA9IHRyaWJ1dGVcbiAgICAgICAgdGhpcy50cmlidXRlLnNlYXJjaCA9IHRoaXNcbiAgICB9XG5cbiAgICBzaW1wbGVGaWx0ZXIocGF0dGVybiwgYXJyYXkpIHtcbiAgICAgICAgcmV0dXJuIGFycmF5LmZpbHRlcihzdHJpbmcgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMudGVzdChwYXR0ZXJuLCBzdHJpbmcpXG4gICAgICAgIH0pXG4gICAgfVxuXG4gICAgdGVzdChwYXR0ZXJuLCBzdHJpbmcpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubWF0Y2gocGF0dGVybiwgc3RyaW5nKSAhPT0gbnVsbFxuICAgIH1cblxuICAgIG1hdGNoKHBhdHRlcm4sIHN0cmluZywgb3B0cykge1xuICAgICAgICBvcHRzID0gb3B0cyB8fCB7fVxuICAgICAgICBsZXQgcGF0dGVybklkeCA9IDAsXG4gICAgICAgICAgICByZXN1bHQgPSBbXSxcbiAgICAgICAgICAgIGxlbiA9IHN0cmluZy5sZW5ndGgsXG4gICAgICAgICAgICB0b3RhbFNjb3JlID0gMCxcbiAgICAgICAgICAgIGN1cnJTY29yZSA9IDAsXG4gICAgICAgICAgICBwcmUgPSBvcHRzLnByZSB8fCAnJyxcbiAgICAgICAgICAgIHBvc3QgPSBvcHRzLnBvc3QgfHwgJycsXG4gICAgICAgICAgICBjb21wYXJlU3RyaW5nID0gb3B0cy5jYXNlU2Vuc2l0aXZlICYmIHN0cmluZyB8fCBzdHJpbmcudG9Mb3dlckNhc2UoKSxcbiAgICAgICAgICAgIGNoLCBjb21wYXJlQ2hhclxuXG4gICAgICAgIHBhdHRlcm4gPSBvcHRzLmNhc2VTZW5zaXRpdmUgJiYgcGF0dGVybiB8fCBwYXR0ZXJuLnRvTG93ZXJDYXNlKClcblxuICAgICAgICBsZXQgcGF0dGVybkNhY2hlID0gdGhpcy50cmF2ZXJzZShjb21wYXJlU3RyaW5nLCBwYXR0ZXJuLCAwLCAwLCBbXSlcbiAgICAgICAgaWYgKCFwYXR0ZXJuQ2FjaGUpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsXG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgcmVuZGVyZWQ6IHRoaXMucmVuZGVyKHN0cmluZywgcGF0dGVybkNhY2hlLmNhY2hlLCBwcmUsIHBvc3QpLFxuICAgICAgICAgICAgc2NvcmU6IHBhdHRlcm5DYWNoZS5zY29yZVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgdHJhdmVyc2Uoc3RyaW5nLCBwYXR0ZXJuLCBzdHJpbmdJbmRleCwgcGF0dGVybkluZGV4LCBwYXR0ZXJuQ2FjaGUpIHtcbiAgICAgICAgLy8gaWYgdGhlIHBhdHRlcm4gc2VhcmNoIGF0IGVuZFxuICAgICAgICBpZiAocGF0dGVybi5sZW5ndGggPT09IHBhdHRlcm5JbmRleCkge1xuXG4gICAgICAgICAgICAvLyBjYWxjdWxhdGUgc29jcmUgYW5kIGNvcHkgdGhlIGNhY2hlIGNvbnRhaW5pbmcgdGhlIGluZGljZXMgd2hlcmUgaXQncyBmb3VuZFxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBzY29yZTogdGhpcy5jYWxjdWxhdGVTY29yZShwYXR0ZXJuQ2FjaGUpLFxuICAgICAgICAgICAgICAgIGNhY2hlOiBwYXR0ZXJuQ2FjaGUuc2xpY2UoKVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gaWYgc3RyaW5nIGF0IGVuZCBvciByZW1haW5pbmcgcGF0dGVybiA+IHJlbWFpbmluZyBzdHJpbmdcbiAgICAgICAgaWYgKHN0cmluZy5sZW5ndGggPT09IHN0cmluZ0luZGV4IHx8IHBhdHRlcm4ubGVuZ3RoIC0gcGF0dGVybkluZGV4ID4gc3RyaW5nLmxlbmd0aCAtIHN0cmluZ0luZGV4KSB7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgICAgIH1cblxuICAgICAgICBsZXQgYyA9IHBhdHRlcm5bcGF0dGVybkluZGV4XVxuICAgICAgICBsZXQgaW5kZXggPSBzdHJpbmcuaW5kZXhPZihjLCBzdHJpbmdJbmRleClcbiAgICAgICAgbGV0IGJlc3QsIHRlbXBcblxuICAgICAgICB3aGlsZSAoaW5kZXggPiAtMSkge1xuICAgICAgICAgICAgcGF0dGVybkNhY2hlLnB1c2goaW5kZXgpXG4gICAgICAgICAgICB0ZW1wID0gdGhpcy50cmF2ZXJzZShzdHJpbmcsIHBhdHRlcm4sIGluZGV4ICsgMSwgcGF0dGVybkluZGV4ICsgMSwgcGF0dGVybkNhY2hlKVxuICAgICAgICAgICAgcGF0dGVybkNhY2hlLnBvcCgpXG5cbiAgICAgICAgICAgIC8vIGlmIGRvd25zdHJlYW0gdHJhdmVyc2FsIGZhaWxlZCwgcmV0dXJuIGJlc3QgYW5zd2VyIHNvIGZhclxuICAgICAgICAgICAgaWYgKCF0ZW1wKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGJlc3RcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKCFiZXN0IHx8IGJlc3Quc2NvcmUgPCB0ZW1wLnNjb3JlKSB7XG4gICAgICAgICAgICAgICAgYmVzdCA9IHRlbXBcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaW5kZXggPSBzdHJpbmcuaW5kZXhPZihjLCBpbmRleCArIDEpXG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gYmVzdFxuICAgIH1cblxuICAgIGNhbGN1bGF0ZVNjb3JlKHBhdHRlcm5DYWNoZSkge1xuICAgICAgICBsZXQgc2NvcmUgPSAwXG4gICAgICAgIGxldCB0ZW1wID0gMVxuXG4gICAgICAgIHBhdHRlcm5DYWNoZS5mb3JFYWNoKChpbmRleCwgaSkgPT4ge1xuICAgICAgICAgICAgaWYgKGkgPiAwKSB7XG4gICAgICAgICAgICAgICAgaWYgKHBhdHRlcm5DYWNoZVtpIC0gMV0gKyAxID09PSBpbmRleCkge1xuICAgICAgICAgICAgICAgICAgICB0ZW1wICs9IHRlbXAgKyAxXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0ZW1wID0gMVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgc2NvcmUgKz0gdGVtcFxuICAgICAgICB9KVxuXG4gICAgICAgIHJldHVybiBzY29yZVxuICAgIH1cblxuICAgIHJlbmRlcihzdHJpbmcsIGluZGljZXMsIHByZSwgcG9zdCkge1xuICAgICAgICB2YXIgcmVuZGVyZWQgPSBzdHJpbmcuc3Vic3RyaW5nKDAsIGluZGljZXNbMF0pXG5cbiAgICAgICAgaW5kaWNlcy5mb3JFYWNoKChpbmRleCwgaSkgPT4ge1xuICAgICAgICAgICAgcmVuZGVyZWQgKz0gcHJlICsgc3RyaW5nW2luZGV4XSArIHBvc3QgK1xuICAgICAgICAgICAgICAgIHN0cmluZy5zdWJzdHJpbmcoaW5kZXggKyAxLCAoaW5kaWNlc1tpICsgMV0pID8gaW5kaWNlc1tpICsgMV0gOiBzdHJpbmcubGVuZ3RoKVxuICAgICAgICB9KVxuXG4gICAgICAgIHJldHVybiByZW5kZXJlZFxuICAgIH1cblxuICAgIGZpbHRlcihwYXR0ZXJuLCBhcnIsIG9wdHMpIHtcbiAgICAgICAgb3B0cyA9IG9wdHMgfHwge31cbiAgICAgICAgcmV0dXJuIGFyclxuICAgICAgICAgICAgLnJlZHVjZSgocHJldiwgZWxlbWVudCwgaWR4LCBhcnIpID0+IHtcbiAgICAgICAgICAgICAgICBsZXQgc3RyID0gZWxlbWVudFxuXG4gICAgICAgICAgICAgICAgaWYgKG9wdHMuZXh0cmFjdCkge1xuICAgICAgICAgICAgICAgICAgICBzdHIgPSBvcHRzLmV4dHJhY3QoZWxlbWVudClcblxuICAgICAgICAgICAgICAgICAgICBpZiAoIXN0cikgeyAvLyB0YWtlIGNhcmUgb2YgdW5kZWZpbmVkcyAvIG51bGxzIC8gZXRjLlxuICAgICAgICAgICAgICAgICAgICAgICAgc3RyID0gJydcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGxldCByZW5kZXJlZCA9IHRoaXMubWF0Y2gocGF0dGVybiwgc3RyLCBvcHRzKVxuXG4gICAgICAgICAgICAgICAgaWYgKHJlbmRlcmVkICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgcHJldltwcmV2Lmxlbmd0aF0gPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJpbmc6IHJlbmRlcmVkLnJlbmRlcmVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgc2NvcmU6IHJlbmRlcmVkLnNjb3JlLFxuICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXg6IGlkeCxcbiAgICAgICAgICAgICAgICAgICAgICAgIG9yaWdpbmFsOiBlbGVtZW50XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gcHJldlxuICAgICAgICAgICAgfSwgW10pXG5cbiAgICAgICAgLnNvcnQoKGEsIGIpID0+IHtcbiAgICAgICAgICAgIGxldCBjb21wYXJlID0gYi5zY29yZSAtIGEuc2NvcmVcbiAgICAgICAgICAgIGlmIChjb21wYXJlKSByZXR1cm4gY29tcGFyZVxuICAgICAgICAgICAgcmV0dXJuIGEuaW5kZXggLSBiLmluZGV4XG4gICAgICAgIH0pXG4gICAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBUcmlidXRlU2VhcmNoOyIsIi8qKlxuKiBUcmlidXRlLmpzXG4qIE5hdGl2ZSBFUzYgSmF2YVNjcmlwdCBAbWVudGlvbiBQbHVnaW5cbioqL1xuXG5pbXBvcnQgVHJpYnV0ZSBmcm9tIFwiLi9UcmlidXRlXCI7XG5cbmV4cG9ydCBkZWZhdWx0IFRyaWJ1dGU7XG4iLCJpZiAoIUFycmF5LnByb3RvdHlwZS5maW5kKSB7XG4gICAgQXJyYXkucHJvdG90eXBlLmZpbmQgPSBmdW5jdGlvbihwcmVkaWNhdGUpIHtcbiAgICAgICAgaWYgKHRoaXMgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ0FycmF5LnByb3RvdHlwZS5maW5kIGNhbGxlZCBvbiBudWxsIG9yIHVuZGVmaW5lZCcpXG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiBwcmVkaWNhdGUgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ3ByZWRpY2F0ZSBtdXN0IGJlIGEgZnVuY3Rpb24nKVxuICAgICAgICB9XG4gICAgICAgIHZhciBsaXN0ID0gT2JqZWN0KHRoaXMpXG4gICAgICAgIHZhciBsZW5ndGggPSBsaXN0Lmxlbmd0aCA+Pj4gMFxuICAgICAgICB2YXIgdGhpc0FyZyA9IGFyZ3VtZW50c1sxXVxuICAgICAgICB2YXIgdmFsdWVcblxuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICB2YWx1ZSA9IGxpc3RbaV1cbiAgICAgICAgICAgIGlmIChwcmVkaWNhdGUuY2FsbCh0aGlzQXJnLCB2YWx1ZSwgaSwgbGlzdCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWVcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgfVxufVxuXG5pZiAod2luZG93ICYmIHR5cGVvZiB3aW5kb3cuQ3VzdG9tRXZlbnQgIT09IFwiZnVuY3Rpb25cIikge1xuICBmdW5jdGlvbiBDdXN0b21FdmVudChldmVudCwgcGFyYW1zKSB7XG4gICAgcGFyYW1zID0gcGFyYW1zIHx8IHtcbiAgICAgIGJ1YmJsZXM6IGZhbHNlLFxuICAgICAgY2FuY2VsYWJsZTogZmFsc2UsXG4gICAgICBkZXRhaWw6IHVuZGVmaW5lZFxuICAgIH1cbiAgICB2YXIgZXZ0ID0gZG9jdW1lbnQuY3JlYXRlRXZlbnQoJ0N1c3RvbUV2ZW50JylcbiAgICBldnQuaW5pdEN1c3RvbUV2ZW50KGV2ZW50LCBwYXJhbXMuYnViYmxlcywgcGFyYW1zLmNhbmNlbGFibGUsIHBhcmFtcy5kZXRhaWwpXG4gICAgcmV0dXJuIGV2dFxuICB9XG5cbiBpZiAodHlwZW9mIHdpbmRvdy5FdmVudCAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgIEN1c3RvbUV2ZW50LnByb3RvdHlwZSA9IHdpbmRvdy5FdmVudC5wcm90b3R5cGVcbiB9XG5cbiAgd2luZG93LkN1c3RvbUV2ZW50ID0gQ3VzdG9tRXZlbnRcbn0iXX0=\n","/*!\n * Vue.js v2.5.16\n * (c) 2014-2018 Evan You\n * Released under the MIT License.\n */\n/* */\n\nvar emptyObject = Object.freeze({});\n\n// these helpers produces better vm code in JS engines due to their\n// explicitness and function inlining\nfunction isUndef (v) {\n return v === undefined || v === null\n}\n\nfunction isDef (v) {\n return v !== undefined && v !== null\n}\n\nfunction isTrue (v) {\n return v === true\n}\n\nfunction isFalse (v) {\n return v === false\n}\n\n/**\n * Check if value is primitive\n */\nfunction isPrimitive (value) {\n return (\n typeof value === 'string' ||\n typeof value === 'number' ||\n // $flow-disable-line\n typeof value === 'symbol' ||\n typeof value === 'boolean'\n )\n}\n\n/**\n * Quick object check - this is primarily used to tell\n * Objects from primitive values when we know the value\n * is a JSON-compliant type.\n */\nfunction isObject (obj) {\n return obj !== null && typeof obj === 'object'\n}\n\n/**\n * Get the raw type string of a value e.g. [object Object]\n */\nvar _toString = Object.prototype.toString;\n\nfunction toRawType (value) {\n return _toString.call(value).slice(8, -1)\n}\n\n/**\n * Strict object type check. Only returns true\n * for plain JavaScript objects.\n */\nfunction isPlainObject (obj) {\n return _toString.call(obj) === '[object Object]'\n}\n\nfunction isRegExp (v) {\n return _toString.call(v) === '[object RegExp]'\n}\n\n/**\n * Check if val is a valid array index.\n */\nfunction isValidArrayIndex (val) {\n var n = parseFloat(String(val));\n return n >= 0 && Math.floor(n) === n && isFinite(val)\n}\n\n/**\n * Convert a value to a string that is actually rendered.\n */\nfunction toString (val) {\n return val == null\n ? ''\n : typeof val === 'object'\n ? JSON.stringify(val, null, 2)\n : String(val)\n}\n\n/**\n * Convert a input value to a number for persistence.\n * If the conversion fails, return original string.\n */\nfunction toNumber (val) {\n var n = parseFloat(val);\n return isNaN(n) ? val : n\n}\n\n/**\n * Make a map and return a function for checking if a key\n * is in that map.\n */\nfunction makeMap (\n str,\n expectsLowerCase\n) {\n var map = Object.create(null);\n var list = str.split(',');\n for (var i = 0; i < list.length; i++) {\n map[list[i]] = true;\n }\n return expectsLowerCase\n ? function (val) { return map[val.toLowerCase()]; }\n : function (val) { return map[val]; }\n}\n\n/**\n * Check if a tag is a built-in tag.\n */\nvar isBuiltInTag = makeMap('slot,component', true);\n\n/**\n * Check if a attribute is a reserved attribute.\n */\nvar isReservedAttribute = makeMap('key,ref,slot,slot-scope,is');\n\n/**\n * Remove an item from an array\n */\nfunction remove (arr, item) {\n if (arr.length) {\n var index = arr.indexOf(item);\n if (index > -1) {\n return arr.splice(index, 1)\n }\n }\n}\n\n/**\n * Check whether the object has the property.\n */\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nfunction hasOwn (obj, key) {\n return hasOwnProperty.call(obj, key)\n}\n\n/**\n * Create a cached version of a pure function.\n */\nfunction cached (fn) {\n var cache = Object.create(null);\n return (function cachedFn (str) {\n var hit = cache[str];\n return hit || (cache[str] = fn(str))\n })\n}\n\n/**\n * Camelize a hyphen-delimited string.\n */\nvar camelizeRE = /-(\\w)/g;\nvar camelize = cached(function (str) {\n return str.replace(camelizeRE, function (_, c) { return c ? c.toUpperCase() : ''; })\n});\n\n/**\n * Capitalize a string.\n */\nvar capitalize = cached(function (str) {\n return str.charAt(0).toUpperCase() + str.slice(1)\n});\n\n/**\n * Hyphenate a camelCase string.\n */\nvar hyphenateRE = /\\B([A-Z])/g;\nvar hyphenate = cached(function (str) {\n return str.replace(hyphenateRE, '-$1').toLowerCase()\n});\n\n/**\n * Simple bind polyfill for environments that do not support it... e.g.\n * PhantomJS 1.x. Technically we don't need this anymore since native bind is\n * now more performant in most browsers, but removing it would be breaking for\n * code that was able to run in PhantomJS 1.x, so this must be kept for\n * backwards compatibility.\n */\n\n/* istanbul ignore next */\nfunction polyfillBind (fn, ctx) {\n function boundFn (a) {\n var l = arguments.length;\n return l\n ? l > 1\n ? fn.apply(ctx, arguments)\n : fn.call(ctx, a)\n : fn.call(ctx)\n }\n\n boundFn._length = fn.length;\n return boundFn\n}\n\nfunction nativeBind (fn, ctx) {\n return fn.bind(ctx)\n}\n\nvar bind = Function.prototype.bind\n ? nativeBind\n : polyfillBind;\n\n/**\n * Convert an Array-like object to a real Array.\n */\nfunction toArray (list, start) {\n start = start || 0;\n var i = list.length - start;\n var ret = new Array(i);\n while (i--) {\n ret[i] = list[i + start];\n }\n return ret\n}\n\n/**\n * Mix properties into target object.\n */\nfunction extend (to, _from) {\n for (var key in _from) {\n to[key] = _from[key];\n }\n return to\n}\n\n/**\n * Merge an Array of Objects into a single Object.\n */\nfunction toObject (arr) {\n var res = {};\n for (var i = 0; i < arr.length; i++) {\n if (arr[i]) {\n extend(res, arr[i]);\n }\n }\n return res\n}\n\n/**\n * Perform no operation.\n * Stubbing args to make Flow happy without leaving useless transpiled code\n * with ...rest (https://flow.org/blog/2017/05/07/Strict-Function-Call-Arity/)\n */\nfunction noop (a, b, c) {}\n\n/**\n * Always return false.\n */\nvar no = function (a, b, c) { return false; };\n\n/**\n * Return same value\n */\nvar identity = function (_) { return _; };\n\n/**\n * Generate a static keys string from compiler modules.\n */\n\n\n/**\n * Check if two values are loosely equal - that is,\n * if they are plain objects, do they have the same shape?\n */\nfunction looseEqual (a, b) {\n if (a === b) { return true }\n var isObjectA = isObject(a);\n var isObjectB = isObject(b);\n if (isObjectA && isObjectB) {\n try {\n var isArrayA = Array.isArray(a);\n var isArrayB = Array.isArray(b);\n if (isArrayA && isArrayB) {\n return a.length === b.length && a.every(function (e, i) {\n return looseEqual(e, b[i])\n })\n } else if (!isArrayA && !isArrayB) {\n var keysA = Object.keys(a);\n var keysB = Object.keys(b);\n return keysA.length === keysB.length && keysA.every(function (key) {\n return looseEqual(a[key], b[key])\n })\n } else {\n /* istanbul ignore next */\n return false\n }\n } catch (e) {\n /* istanbul ignore next */\n return false\n }\n } else if (!isObjectA && !isObjectB) {\n return String(a) === String(b)\n } else {\n return false\n }\n}\n\nfunction looseIndexOf (arr, val) {\n for (var i = 0; i < arr.length; i++) {\n if (looseEqual(arr[i], val)) { return i }\n }\n return -1\n}\n\n/**\n * Ensure a function is called only once.\n */\nfunction once (fn) {\n var called = false;\n return function () {\n if (!called) {\n called = true;\n fn.apply(this, arguments);\n }\n }\n}\n\nvar SSR_ATTR = 'data-server-rendered';\n\nvar ASSET_TYPES = [\n 'component',\n 'directive',\n 'filter'\n];\n\nvar LIFECYCLE_HOOKS = [\n 'beforeCreate',\n 'created',\n 'beforeMount',\n 'mounted',\n 'beforeUpdate',\n 'updated',\n 'beforeDestroy',\n 'destroyed',\n 'activated',\n 'deactivated',\n 'errorCaptured'\n];\n\n/* */\n\nvar config = ({\n /**\n * Option merge strategies (used in core/util/options)\n */\n // $flow-disable-line\n optionMergeStrategies: Object.create(null),\n\n /**\n * Whether to suppress warnings.\n */\n silent: false,\n\n /**\n * Show production mode tip message on boot?\n */\n productionTip: process.env.NODE_ENV !== 'production',\n\n /**\n * Whether to enable devtools\n */\n devtools: process.env.NODE_ENV !== 'production',\n\n /**\n * Whether to record perf\n */\n performance: false,\n\n /**\n * Error handler for watcher errors\n */\n errorHandler: null,\n\n /**\n * Warn handler for watcher warns\n */\n warnHandler: null,\n\n /**\n * Ignore certain custom elements\n */\n ignoredElements: [],\n\n /**\n * Custom user key aliases for v-on\n */\n // $flow-disable-line\n keyCodes: Object.create(null),\n\n /**\n * Check if a tag is reserved so that it cannot be registered as a\n * component. This is platform-dependent and may be overwritten.\n */\n isReservedTag: no,\n\n /**\n * Check if an attribute is reserved so that it cannot be used as a component\n * prop. This is platform-dependent and may be overwritten.\n */\n isReservedAttr: no,\n\n /**\n * Check if a tag is an unknown element.\n * Platform-dependent.\n */\n isUnknownElement: no,\n\n /**\n * Get the namespace of an element\n */\n getTagNamespace: noop,\n\n /**\n * Parse the real tag name for the specific platform.\n */\n parsePlatformTagName: identity,\n\n /**\n * Check if an attribute must be bound using property, e.g. value\n * Platform-dependent.\n */\n mustUseProp: no,\n\n /**\n * Exposed for legacy reasons\n */\n _lifecycleHooks: LIFECYCLE_HOOKS\n})\n\n/* */\n\n/**\n * Check if a string starts with $ or _\n */\nfunction isReserved (str) {\n var c = (str + '').charCodeAt(0);\n return c === 0x24 || c === 0x5F\n}\n\n/**\n * Define a property.\n */\nfunction def (obj, key, val, enumerable) {\n Object.defineProperty(obj, key, {\n value: val,\n enumerable: !!enumerable,\n writable: true,\n configurable: true\n });\n}\n\n/**\n * Parse simple path.\n */\nvar bailRE = /[^\\w.$]/;\nfunction parsePath (path) {\n if (bailRE.test(path)) {\n return\n }\n var segments = path.split('.');\n return function (obj) {\n for (var i = 0; i < segments.length; i++) {\n if (!obj) { return }\n obj = obj[segments[i]];\n }\n return obj\n }\n}\n\n/* */\n\n// can we use __proto__?\nvar hasProto = '__proto__' in {};\n\n// Browser environment sniffing\nvar inBrowser = typeof window !== 'undefined';\nvar inWeex = typeof WXEnvironment !== 'undefined' && !!WXEnvironment.platform;\nvar weexPlatform = inWeex && WXEnvironment.platform.toLowerCase();\nvar UA = inBrowser && window.navigator.userAgent.toLowerCase();\nvar isIE = UA && /msie|trident/.test(UA);\nvar isIE9 = UA && UA.indexOf('msie 9.0') > 0;\nvar isEdge = UA && UA.indexOf('edge/') > 0;\nvar isAndroid = (UA && UA.indexOf('android') > 0) || (weexPlatform === 'android');\nvar isIOS = (UA && /iphone|ipad|ipod|ios/.test(UA)) || (weexPlatform === 'ios');\nvar isChrome = UA && /chrome\\/\\d+/.test(UA) && !isEdge;\n\n// Firefox has a \"watch\" function on Object.prototype...\nvar nativeWatch = ({}).watch;\n\nvar supportsPassive = false;\nif (inBrowser) {\n try {\n var opts = {};\n Object.defineProperty(opts, 'passive', ({\n get: function get () {\n /* istanbul ignore next */\n supportsPassive = true;\n }\n })); // https://github.com/facebook/flow/issues/285\n window.addEventListener('test-passive', null, opts);\n } catch (e) {}\n}\n\n// this needs to be lazy-evaled because vue may be required before\n// vue-server-renderer can set VUE_ENV\nvar _isServer;\nvar isServerRendering = function () {\n if (_isServer === undefined) {\n /* istanbul ignore if */\n if (!inBrowser && !inWeex && typeof global !== 'undefined') {\n // detect presence of vue-server-renderer and avoid\n // Webpack shimming the process\n _isServer = global['process'].env.VUE_ENV === 'server';\n } else {\n _isServer = false;\n }\n }\n return _isServer\n};\n\n// detect devtools\nvar devtools = inBrowser && window.__VUE_DEVTOOLS_GLOBAL_HOOK__;\n\n/* istanbul ignore next */\nfunction isNative (Ctor) {\n return typeof Ctor === 'function' && /native code/.test(Ctor.toString())\n}\n\nvar hasSymbol =\n typeof Symbol !== 'undefined' && isNative(Symbol) &&\n typeof Reflect !== 'undefined' && isNative(Reflect.ownKeys);\n\nvar _Set;\n/* istanbul ignore if */ // $flow-disable-line\nif (typeof Set !== 'undefined' && isNative(Set)) {\n // use native Set when available.\n _Set = Set;\n} else {\n // a non-standard Set polyfill that only works with primitive keys.\n _Set = (function () {\n function Set () {\n this.set = Object.create(null);\n }\n Set.prototype.has = function has (key) {\n return this.set[key] === true\n };\n Set.prototype.add = function add (key) {\n this.set[key] = true;\n };\n Set.prototype.clear = function clear () {\n this.set = Object.create(null);\n };\n\n return Set;\n }());\n}\n\n/* */\n\nvar warn = noop;\nvar tip = noop;\nvar generateComponentTrace = (noop); // work around flow check\nvar formatComponentName = (noop);\n\nif (process.env.NODE_ENV !== 'production') {\n var hasConsole = typeof console !== 'undefined';\n var classifyRE = /(?:^|[-_])(\\w)/g;\n var classify = function (str) { return str\n .replace(classifyRE, function (c) { return c.toUpperCase(); })\n .replace(/[-_]/g, ''); };\n\n warn = function (msg, vm) {\n var trace = vm ? generateComponentTrace(vm) : '';\n\n if (config.warnHandler) {\n config.warnHandler.call(null, msg, vm, trace);\n } else if (hasConsole && (!config.silent)) {\n console.error((\"[Vue warn]: \" + msg + trace));\n }\n };\n\n tip = function (msg, vm) {\n if (hasConsole && (!config.silent)) {\n console.warn(\"[Vue tip]: \" + msg + (\n vm ? generateComponentTrace(vm) : ''\n ));\n }\n };\n\n formatComponentName = function (vm, includeFile) {\n if (vm.$root === vm) {\n return ''\n }\n var options = typeof vm === 'function' && vm.cid != null\n ? vm.options\n : vm._isVue\n ? vm.$options || vm.constructor.options\n : vm || {};\n var name = options.name || options._componentTag;\n var file = options.__file;\n if (!name && file) {\n var match = file.match(/([^/\\\\]+)\\.vue$/);\n name = match && match[1];\n }\n\n return (\n (name ? (\"<\" + (classify(name)) + \">\") : \"\") +\n (file && includeFile !== false ? (\" at \" + file) : '')\n )\n };\n\n var repeat = function (str, n) {\n var res = '';\n while (n) {\n if (n % 2 === 1) { res += str; }\n if (n > 1) { str += str; }\n n >>= 1;\n }\n return res\n };\n\n generateComponentTrace = function (vm) {\n if (vm._isVue && vm.$parent) {\n var tree = [];\n var currentRecursiveSequence = 0;\n while (vm) {\n if (tree.length > 0) {\n var last = tree[tree.length - 1];\n if (last.constructor === vm.constructor) {\n currentRecursiveSequence++;\n vm = vm.$parent;\n continue\n } else if (currentRecursiveSequence > 0) {\n tree[tree.length - 1] = [last, currentRecursiveSequence];\n currentRecursiveSequence = 0;\n }\n }\n tree.push(vm);\n vm = vm.$parent;\n }\n return '\\n\\nfound in\\n\\n' + tree\n .map(function (vm, i) { return (\"\" + (i === 0 ? '---> ' : repeat(' ', 5 + i * 2)) + (Array.isArray(vm)\n ? ((formatComponentName(vm[0])) + \"... (\" + (vm[1]) + \" recursive calls)\")\n : formatComponentName(vm))); })\n .join('\\n')\n } else {\n return (\"\\n\\n(found in \" + (formatComponentName(vm)) + \")\")\n }\n };\n}\n\n/* */\n\n\nvar uid = 0;\n\n/**\n * A dep is an observable that can have multiple\n * directives subscribing to it.\n */\nvar Dep = function Dep () {\n this.id = uid++;\n this.subs = [];\n};\n\nDep.prototype.addSub = function addSub (sub) {\n this.subs.push(sub);\n};\n\nDep.prototype.removeSub = function removeSub (sub) {\n remove(this.subs, sub);\n};\n\nDep.prototype.depend = function depend () {\n if (Dep.target) {\n Dep.target.addDep(this);\n }\n};\n\nDep.prototype.notify = function notify () {\n // stabilize the subscriber list first\n var subs = this.subs.slice();\n for (var i = 0, l = subs.length; i < l; i++) {\n subs[i].update();\n }\n};\n\n// the current target watcher being evaluated.\n// this is globally unique because there could be only one\n// watcher being evaluated at any time.\nDep.target = null;\nvar targetStack = [];\n\nfunction pushTarget (_target) {\n if (Dep.target) { targetStack.push(Dep.target); }\n Dep.target = _target;\n}\n\nfunction popTarget () {\n Dep.target = targetStack.pop();\n}\n\n/* */\n\nvar VNode = function VNode (\n tag,\n data,\n children,\n text,\n elm,\n context,\n componentOptions,\n asyncFactory\n) {\n this.tag = tag;\n this.data = data;\n this.children = children;\n this.text = text;\n this.elm = elm;\n this.ns = undefined;\n this.context = context;\n this.fnContext = undefined;\n this.fnOptions = undefined;\n this.fnScopeId = undefined;\n this.key = data && data.key;\n this.componentOptions = componentOptions;\n this.componentInstance = undefined;\n this.parent = undefined;\n this.raw = false;\n this.isStatic = false;\n this.isRootInsert = true;\n this.isComment = false;\n this.isCloned = false;\n this.isOnce = false;\n this.asyncFactory = asyncFactory;\n this.asyncMeta = undefined;\n this.isAsyncPlaceholder = false;\n};\n\nvar prototypeAccessors = { child: { configurable: true } };\n\n// DEPRECATED: alias for componentInstance for backwards compat.\n/* istanbul ignore next */\nprototypeAccessors.child.get = function () {\n return this.componentInstance\n};\n\nObject.defineProperties( VNode.prototype, prototypeAccessors );\n\nvar createEmptyVNode = function (text) {\n if ( text === void 0 ) text = '';\n\n var node = new VNode();\n node.text = text;\n node.isComment = true;\n return node\n};\n\nfunction createTextVNode (val) {\n return new VNode(undefined, undefined, undefined, String(val))\n}\n\n// optimized shallow clone\n// used for static nodes and slot nodes because they may be reused across\n// multiple renders, cloning them avoids errors when DOM manipulations rely\n// on their elm reference.\nfunction cloneVNode (vnode) {\n var cloned = new VNode(\n vnode.tag,\n vnode.data,\n vnode.children,\n vnode.text,\n vnode.elm,\n vnode.context,\n vnode.componentOptions,\n vnode.asyncFactory\n );\n cloned.ns = vnode.ns;\n cloned.isStatic = vnode.isStatic;\n cloned.key = vnode.key;\n cloned.isComment = vnode.isComment;\n cloned.fnContext = vnode.fnContext;\n cloned.fnOptions = vnode.fnOptions;\n cloned.fnScopeId = vnode.fnScopeId;\n cloned.isCloned = true;\n return cloned\n}\n\n/*\n * not type checking this file because flow doesn't play well with\n * dynamically accessing methods on Array prototype\n */\n\nvar arrayProto = Array.prototype;\nvar arrayMethods = Object.create(arrayProto);\n\nvar methodsToPatch = [\n 'push',\n 'pop',\n 'shift',\n 'unshift',\n 'splice',\n 'sort',\n 'reverse'\n];\n\n/**\n * Intercept mutating methods and emit events\n */\nmethodsToPatch.forEach(function (method) {\n // cache original method\n var original = arrayProto[method];\n def(arrayMethods, method, function mutator () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n var result = original.apply(this, args);\n var ob = this.__ob__;\n var inserted;\n switch (method) {\n case 'push':\n case 'unshift':\n inserted = args;\n break\n case 'splice':\n inserted = args.slice(2);\n break\n }\n if (inserted) { ob.observeArray(inserted); }\n // notify change\n ob.dep.notify();\n return result\n });\n});\n\n/* */\n\nvar arrayKeys = Object.getOwnPropertyNames(arrayMethods);\n\n/**\n * In some cases we may want to disable observation inside a component's\n * update computation.\n */\nvar shouldObserve = true;\n\nfunction toggleObserving (value) {\n shouldObserve = value;\n}\n\n/**\n * Observer class that is attached to each observed\n * object. Once attached, the observer converts the target\n * object's property keys into getter/setters that\n * collect dependencies and dispatch updates.\n */\nvar Observer = function Observer (value) {\n this.value = value;\n this.dep = new Dep();\n this.vmCount = 0;\n def(value, '__ob__', this);\n if (Array.isArray(value)) {\n var augment = hasProto\n ? protoAugment\n : copyAugment;\n augment(value, arrayMethods, arrayKeys);\n this.observeArray(value);\n } else {\n this.walk(value);\n }\n};\n\n/**\n * Walk through each property and convert them into\n * getter/setters. This method should only be called when\n * value type is Object.\n */\nObserver.prototype.walk = function walk (obj) {\n var keys = Object.keys(obj);\n for (var i = 0; i < keys.length; i++) {\n defineReactive(obj, keys[i]);\n }\n};\n\n/**\n * Observe a list of Array items.\n */\nObserver.prototype.observeArray = function observeArray (items) {\n for (var i = 0, l = items.length; i < l; i++) {\n observe(items[i]);\n }\n};\n\n// helpers\n\n/**\n * Augment an target Object or Array by intercepting\n * the prototype chain using __proto__\n */\nfunction protoAugment (target, src, keys) {\n /* eslint-disable no-proto */\n target.__proto__ = src;\n /* eslint-enable no-proto */\n}\n\n/**\n * Augment an target Object or Array by defining\n * hidden properties.\n */\n/* istanbul ignore next */\nfunction copyAugment (target, src, keys) {\n for (var i = 0, l = keys.length; i < l; i++) {\n var key = keys[i];\n def(target, key, src[key]);\n }\n}\n\n/**\n * Attempt to create an observer instance for a value,\n * returns the new observer if successfully observed,\n * or the existing observer if the value already has one.\n */\nfunction observe (value, asRootData) {\n if (!isObject(value) || value instanceof VNode) {\n return\n }\n var ob;\n if (hasOwn(value, '__ob__') && value.__ob__ instanceof Observer) {\n ob = value.__ob__;\n } else if (\n shouldObserve &&\n !isServerRendering() &&\n (Array.isArray(value) || isPlainObject(value)) &&\n Object.isExtensible(value) &&\n !value._isVue\n ) {\n ob = new Observer(value);\n }\n if (asRootData && ob) {\n ob.vmCount++;\n }\n return ob\n}\n\n/**\n * Define a reactive property on an Object.\n */\nfunction defineReactive (\n obj,\n key,\n val,\n customSetter,\n shallow\n) {\n var dep = new Dep();\n\n var property = Object.getOwnPropertyDescriptor(obj, key);\n if (property && property.configurable === false) {\n return\n }\n\n // cater for pre-defined getter/setters\n var getter = property && property.get;\n if (!getter && arguments.length === 2) {\n val = obj[key];\n }\n var setter = property && property.set;\n\n var childOb = !shallow && observe(val);\n Object.defineProperty(obj, key, {\n enumerable: true,\n configurable: true,\n get: function reactiveGetter () {\n var value = getter ? getter.call(obj) : val;\n if (Dep.target) {\n dep.depend();\n if (childOb) {\n childOb.dep.depend();\n if (Array.isArray(value)) {\n dependArray(value);\n }\n }\n }\n return value\n },\n set: function reactiveSetter (newVal) {\n var value = getter ? getter.call(obj) : val;\n /* eslint-disable no-self-compare */\n if (newVal === value || (newVal !== newVal && value !== value)) {\n return\n }\n /* eslint-enable no-self-compare */\n if (process.env.NODE_ENV !== 'production' && customSetter) {\n customSetter();\n }\n if (setter) {\n setter.call(obj, newVal);\n } else {\n val = newVal;\n }\n childOb = !shallow && observe(newVal);\n dep.notify();\n }\n });\n}\n\n/**\n * Set a property on an object. Adds the new property and\n * triggers change notification if the property doesn't\n * already exist.\n */\nfunction set (target, key, val) {\n if (process.env.NODE_ENV !== 'production' &&\n (isUndef(target) || isPrimitive(target))\n ) {\n warn((\"Cannot set reactive property on undefined, null, or primitive value: \" + ((target))));\n }\n if (Array.isArray(target) && isValidArrayIndex(key)) {\n target.length = Math.max(target.length, key);\n target.splice(key, 1, val);\n return val\n }\n if (key in target && !(key in Object.prototype)) {\n target[key] = val;\n return val\n }\n var ob = (target).__ob__;\n if (target._isVue || (ob && ob.vmCount)) {\n process.env.NODE_ENV !== 'production' && warn(\n 'Avoid adding reactive properties to a Vue instance or its root $data ' +\n 'at runtime - declare it upfront in the data option.'\n );\n return val\n }\n if (!ob) {\n target[key] = val;\n return val\n }\n defineReactive(ob.value, key, val);\n ob.dep.notify();\n return val\n}\n\n/**\n * Delete a property and trigger change if necessary.\n */\nfunction del (target, key) {\n if (process.env.NODE_ENV !== 'production' &&\n (isUndef(target) || isPrimitive(target))\n ) {\n warn((\"Cannot delete reactive property on undefined, null, or primitive value: \" + ((target))));\n }\n if (Array.isArray(target) && isValidArrayIndex(key)) {\n target.splice(key, 1);\n return\n }\n var ob = (target).__ob__;\n if (target._isVue || (ob && ob.vmCount)) {\n process.env.NODE_ENV !== 'production' && warn(\n 'Avoid deleting properties on a Vue instance or its root $data ' +\n '- just set it to null.'\n );\n return\n }\n if (!hasOwn(target, key)) {\n return\n }\n delete target[key];\n if (!ob) {\n return\n }\n ob.dep.notify();\n}\n\n/**\n * Collect dependencies on array elements when the array is touched, since\n * we cannot intercept array element access like property getters.\n */\nfunction dependArray (value) {\n for (var e = (void 0), i = 0, l = value.length; i < l; i++) {\n e = value[i];\n e && e.__ob__ && e.__ob__.dep.depend();\n if (Array.isArray(e)) {\n dependArray(e);\n }\n }\n}\n\n/* */\n\n/**\n * Option overwriting strategies are functions that handle\n * how to merge a parent option value and a child option\n * value into the final value.\n */\nvar strats = config.optionMergeStrategies;\n\n/**\n * Options with restrictions\n */\nif (process.env.NODE_ENV !== 'production') {\n strats.el = strats.propsData = function (parent, child, vm, key) {\n if (!vm) {\n warn(\n \"option \\\"\" + key + \"\\\" can only be used during instance \" +\n 'creation with the `new` keyword.'\n );\n }\n return defaultStrat(parent, child)\n };\n}\n\n/**\n * Helper that recursively merges two data objects together.\n */\nfunction mergeData (to, from) {\n if (!from) { return to }\n var key, toVal, fromVal;\n var keys = Object.keys(from);\n for (var i = 0; i < keys.length; i++) {\n key = keys[i];\n toVal = to[key];\n fromVal = from[key];\n if (!hasOwn(to, key)) {\n set(to, key, fromVal);\n } else if (isPlainObject(toVal) && isPlainObject(fromVal)) {\n mergeData(toVal, fromVal);\n }\n }\n return to\n}\n\n/**\n * Data\n */\nfunction mergeDataOrFn (\n parentVal,\n childVal,\n vm\n) {\n if (!vm) {\n // in a Vue.extend merge, both should be functions\n if (!childVal) {\n return parentVal\n }\n if (!parentVal) {\n return childVal\n }\n // when parentVal & childVal are both present,\n // we need to return a function that returns the\n // merged result of both functions... no need to\n // check if parentVal is a function here because\n // it has to be a function to pass previous merges.\n return function mergedDataFn () {\n return mergeData(\n typeof childVal === 'function' ? childVal.call(this, this) : childVal,\n typeof parentVal === 'function' ? parentVal.call(this, this) : parentVal\n )\n }\n } else {\n return function mergedInstanceDataFn () {\n // instance merge\n var instanceData = typeof childVal === 'function'\n ? childVal.call(vm, vm)\n : childVal;\n var defaultData = typeof parentVal === 'function'\n ? parentVal.call(vm, vm)\n : parentVal;\n if (instanceData) {\n return mergeData(instanceData, defaultData)\n } else {\n return defaultData\n }\n }\n }\n}\n\nstrats.data = function (\n parentVal,\n childVal,\n vm\n) {\n if (!vm) {\n if (childVal && typeof childVal !== 'function') {\n process.env.NODE_ENV !== 'production' && warn(\n 'The \"data\" option should be a function ' +\n 'that returns a per-instance value in component ' +\n 'definitions.',\n vm\n );\n\n return parentVal\n }\n return mergeDataOrFn(parentVal, childVal)\n }\n\n return mergeDataOrFn(parentVal, childVal, vm)\n};\n\n/**\n * Hooks and props are merged as arrays.\n */\nfunction mergeHook (\n parentVal,\n childVal\n) {\n return childVal\n ? parentVal\n ? parentVal.concat(childVal)\n : Array.isArray(childVal)\n ? childVal\n : [childVal]\n : parentVal\n}\n\nLIFECYCLE_HOOKS.forEach(function (hook) {\n strats[hook] = mergeHook;\n});\n\n/**\n * Assets\n *\n * When a vm is present (instance creation), we need to do\n * a three-way merge between constructor options, instance\n * options and parent options.\n */\nfunction mergeAssets (\n parentVal,\n childVal,\n vm,\n key\n) {\n var res = Object.create(parentVal || null);\n if (childVal) {\n process.env.NODE_ENV !== 'production' && assertObjectType(key, childVal, vm);\n return extend(res, childVal)\n } else {\n return res\n }\n}\n\nASSET_TYPES.forEach(function (type) {\n strats[type + 's'] = mergeAssets;\n});\n\n/**\n * Watchers.\n *\n * Watchers hashes should not overwrite one\n * another, so we merge them as arrays.\n */\nstrats.watch = function (\n parentVal,\n childVal,\n vm,\n key\n) {\n // work around Firefox's Object.prototype.watch...\n if (parentVal === nativeWatch) { parentVal = undefined; }\n if (childVal === nativeWatch) { childVal = undefined; }\n /* istanbul ignore if */\n if (!childVal) { return Object.create(parentVal || null) }\n if (process.env.NODE_ENV !== 'production') {\n assertObjectType(key, childVal, vm);\n }\n if (!parentVal) { return childVal }\n var ret = {};\n extend(ret, parentVal);\n for (var key$1 in childVal) {\n var parent = ret[key$1];\n var child = childVal[key$1];\n if (parent && !Array.isArray(parent)) {\n parent = [parent];\n }\n ret[key$1] = parent\n ? parent.concat(child)\n : Array.isArray(child) ? child : [child];\n }\n return ret\n};\n\n/**\n * Other object hashes.\n */\nstrats.props =\nstrats.methods =\nstrats.inject =\nstrats.computed = function (\n parentVal,\n childVal,\n vm,\n key\n) {\n if (childVal && process.env.NODE_ENV !== 'production') {\n assertObjectType(key, childVal, vm);\n }\n if (!parentVal) { return childVal }\n var ret = Object.create(null);\n extend(ret, parentVal);\n if (childVal) { extend(ret, childVal); }\n return ret\n};\nstrats.provide = mergeDataOrFn;\n\n/**\n * Default strategy.\n */\nvar defaultStrat = function (parentVal, childVal) {\n return childVal === undefined\n ? parentVal\n : childVal\n};\n\n/**\n * Validate component names\n */\nfunction checkComponents (options) {\n for (var key in options.components) {\n validateComponentName(key);\n }\n}\n\nfunction validateComponentName (name) {\n if (!/^[a-zA-Z][\\w-]*$/.test(name)) {\n warn(\n 'Invalid component name: \"' + name + '\". Component names ' +\n 'can only contain alphanumeric characters and the hyphen, ' +\n 'and must start with a letter.'\n );\n }\n if (isBuiltInTag(name) || config.isReservedTag(name)) {\n warn(\n 'Do not use built-in or reserved HTML elements as component ' +\n 'id: ' + name\n );\n }\n}\n\n/**\n * Ensure all props option syntax are normalized into the\n * Object-based format.\n */\nfunction normalizeProps (options, vm) {\n var props = options.props;\n if (!props) { return }\n var res = {};\n var i, val, name;\n if (Array.isArray(props)) {\n i = props.length;\n while (i--) {\n val = props[i];\n if (typeof val === 'string') {\n name = camelize(val);\n res[name] = { type: null };\n } else if (process.env.NODE_ENV !== 'production') {\n warn('props must be strings when using array syntax.');\n }\n }\n } else if (isPlainObject(props)) {\n for (var key in props) {\n val = props[key];\n name = camelize(key);\n res[name] = isPlainObject(val)\n ? val\n : { type: val };\n }\n } else if (process.env.NODE_ENV !== 'production') {\n warn(\n \"Invalid value for option \\\"props\\\": expected an Array or an Object, \" +\n \"but got \" + (toRawType(props)) + \".\",\n vm\n );\n }\n options.props = res;\n}\n\n/**\n * Normalize all injections into Object-based format\n */\nfunction normalizeInject (options, vm) {\n var inject = options.inject;\n if (!inject) { return }\n var normalized = options.inject = {};\n if (Array.isArray(inject)) {\n for (var i = 0; i < inject.length; i++) {\n normalized[inject[i]] = { from: inject[i] };\n }\n } else if (isPlainObject(inject)) {\n for (var key in inject) {\n var val = inject[key];\n normalized[key] = isPlainObject(val)\n ? extend({ from: key }, val)\n : { from: val };\n }\n } else if (process.env.NODE_ENV !== 'production') {\n warn(\n \"Invalid value for option \\\"inject\\\": expected an Array or an Object, \" +\n \"but got \" + (toRawType(inject)) + \".\",\n vm\n );\n }\n}\n\n/**\n * Normalize raw function directives into object format.\n */\nfunction normalizeDirectives (options) {\n var dirs = options.directives;\n if (dirs) {\n for (var key in dirs) {\n var def = dirs[key];\n if (typeof def === 'function') {\n dirs[key] = { bind: def, update: def };\n }\n }\n }\n}\n\nfunction assertObjectType (name, value, vm) {\n if (!isPlainObject(value)) {\n warn(\n \"Invalid value for option \\\"\" + name + \"\\\": expected an Object, \" +\n \"but got \" + (toRawType(value)) + \".\",\n vm\n );\n }\n}\n\n/**\n * Merge two option objects into a new one.\n * Core utility used in both instantiation and inheritance.\n */\nfunction mergeOptions (\n parent,\n child,\n vm\n) {\n if (process.env.NODE_ENV !== 'production') {\n checkComponents(child);\n }\n\n if (typeof child === 'function') {\n child = child.options;\n }\n\n normalizeProps(child, vm);\n normalizeInject(child, vm);\n normalizeDirectives(child);\n var extendsFrom = child.extends;\n if (extendsFrom) {\n parent = mergeOptions(parent, extendsFrom, vm);\n }\n if (child.mixins) {\n for (var i = 0, l = child.mixins.length; i < l; i++) {\n parent = mergeOptions(parent, child.mixins[i], vm);\n }\n }\n var options = {};\n var key;\n for (key in parent) {\n mergeField(key);\n }\n for (key in child) {\n if (!hasOwn(parent, key)) {\n mergeField(key);\n }\n }\n function mergeField (key) {\n var strat = strats[key] || defaultStrat;\n options[key] = strat(parent[key], child[key], vm, key);\n }\n return options\n}\n\n/**\n * Resolve an asset.\n * This function is used because child instances need access\n * to assets defined in its ancestor chain.\n */\nfunction resolveAsset (\n options,\n type,\n id,\n warnMissing\n) {\n /* istanbul ignore if */\n if (typeof id !== 'string') {\n return\n }\n var assets = options[type];\n // check local registration variations first\n if (hasOwn(assets, id)) { return assets[id] }\n var camelizedId = camelize(id);\n if (hasOwn(assets, camelizedId)) { return assets[camelizedId] }\n var PascalCaseId = capitalize(camelizedId);\n if (hasOwn(assets, PascalCaseId)) { return assets[PascalCaseId] }\n // fallback to prototype chain\n var res = assets[id] || assets[camelizedId] || assets[PascalCaseId];\n if (process.env.NODE_ENV !== 'production' && warnMissing && !res) {\n warn(\n 'Failed to resolve ' + type.slice(0, -1) + ': ' + id,\n options\n );\n }\n return res\n}\n\n/* */\n\nfunction validateProp (\n key,\n propOptions,\n propsData,\n vm\n) {\n var prop = propOptions[key];\n var absent = !hasOwn(propsData, key);\n var value = propsData[key];\n // boolean casting\n var booleanIndex = getTypeIndex(Boolean, prop.type);\n if (booleanIndex > -1) {\n if (absent && !hasOwn(prop, 'default')) {\n value = false;\n } else if (value === '' || value === hyphenate(key)) {\n // only cast empty string / same name to boolean if\n // boolean has higher priority\n var stringIndex = getTypeIndex(String, prop.type);\n if (stringIndex < 0 || booleanIndex < stringIndex) {\n value = true;\n }\n }\n }\n // check default value\n if (value === undefined) {\n value = getPropDefaultValue(vm, prop, key);\n // since the default value is a fresh copy,\n // make sure to observe it.\n var prevShouldObserve = shouldObserve;\n toggleObserving(true);\n observe(value);\n toggleObserving(prevShouldObserve);\n }\n if (\n process.env.NODE_ENV !== 'production' &&\n // skip validation for weex recycle-list child component props\n !(false && isObject(value) && ('@binding' in value))\n ) {\n assertProp(prop, key, value, vm, absent);\n }\n return value\n}\n\n/**\n * Get the default value of a prop.\n */\nfunction getPropDefaultValue (vm, prop, key) {\n // no default, return undefined\n if (!hasOwn(prop, 'default')) {\n return undefined\n }\n var def = prop.default;\n // warn against non-factory defaults for Object & Array\n if (process.env.NODE_ENV !== 'production' && isObject(def)) {\n warn(\n 'Invalid default value for prop \"' + key + '\": ' +\n 'Props with type Object/Array must use a factory function ' +\n 'to return the default value.',\n vm\n );\n }\n // the raw prop value was also undefined from previous render,\n // return previous default value to avoid unnecessary watcher trigger\n if (vm && vm.$options.propsData &&\n vm.$options.propsData[key] === undefined &&\n vm._props[key] !== undefined\n ) {\n return vm._props[key]\n }\n // call factory function for non-Function types\n // a value is Function if its prototype is function even across different execution context\n return typeof def === 'function' && getType(prop.type) !== 'Function'\n ? def.call(vm)\n : def\n}\n\n/**\n * Assert whether a prop is valid.\n */\nfunction assertProp (\n prop,\n name,\n value,\n vm,\n absent\n) {\n if (prop.required && absent) {\n warn(\n 'Missing required prop: \"' + name + '\"',\n vm\n );\n return\n }\n if (value == null && !prop.required) {\n return\n }\n var type = prop.type;\n var valid = !type || type === true;\n var expectedTypes = [];\n if (type) {\n if (!Array.isArray(type)) {\n type = [type];\n }\n for (var i = 0; i < type.length && !valid; i++) {\n var assertedType = assertType(value, type[i]);\n expectedTypes.push(assertedType.expectedType || '');\n valid = assertedType.valid;\n }\n }\n if (!valid) {\n warn(\n \"Invalid prop: type check failed for prop \\\"\" + name + \"\\\".\" +\n \" Expected \" + (expectedTypes.map(capitalize).join(', ')) +\n \", got \" + (toRawType(value)) + \".\",\n vm\n );\n return\n }\n var validator = prop.validator;\n if (validator) {\n if (!validator(value)) {\n warn(\n 'Invalid prop: custom validator check failed for prop \"' + name + '\".',\n vm\n );\n }\n }\n}\n\nvar simpleCheckRE = /^(String|Number|Boolean|Function|Symbol)$/;\n\nfunction assertType (value, type) {\n var valid;\n var expectedType = getType(type);\n if (simpleCheckRE.test(expectedType)) {\n var t = typeof value;\n valid = t === expectedType.toLowerCase();\n // for primitive wrapper objects\n if (!valid && t === 'object') {\n valid = value instanceof type;\n }\n } else if (expectedType === 'Object') {\n valid = isPlainObject(value);\n } else if (expectedType === 'Array') {\n valid = Array.isArray(value);\n } else {\n valid = value instanceof type;\n }\n return {\n valid: valid,\n expectedType: expectedType\n }\n}\n\n/**\n * Use function string name to check built-in types,\n * because a simple equality check will fail when running\n * across different vms / iframes.\n */\nfunction getType (fn) {\n var match = fn && fn.toString().match(/^\\s*function (\\w+)/);\n return match ? match[1] : ''\n}\n\nfunction isSameType (a, b) {\n return getType(a) === getType(b)\n}\n\nfunction getTypeIndex (type, expectedTypes) {\n if (!Array.isArray(expectedTypes)) {\n return isSameType(expectedTypes, type) ? 0 : -1\n }\n for (var i = 0, len = expectedTypes.length; i < len; i++) {\n if (isSameType(expectedTypes[i], type)) {\n return i\n }\n }\n return -1\n}\n\n/* */\n\nfunction handleError (err, vm, info) {\n if (vm) {\n var cur = vm;\n while ((cur = cur.$parent)) {\n var hooks = cur.$options.errorCaptured;\n if (hooks) {\n for (var i = 0; i < hooks.length; i++) {\n try {\n var capture = hooks[i].call(cur, err, vm, info) === false;\n if (capture) { return }\n } catch (e) {\n globalHandleError(e, cur, 'errorCaptured hook');\n }\n }\n }\n }\n }\n globalHandleError(err, vm, info);\n}\n\nfunction globalHandleError (err, vm, info) {\n if (config.errorHandler) {\n try {\n return config.errorHandler.call(null, err, vm, info)\n } catch (e) {\n logError(e, null, 'config.errorHandler');\n }\n }\n logError(err, vm, info);\n}\n\nfunction logError (err, vm, info) {\n if (process.env.NODE_ENV !== 'production') {\n warn((\"Error in \" + info + \": \\\"\" + (err.toString()) + \"\\\"\"), vm);\n }\n /* istanbul ignore else */\n if ((inBrowser || inWeex) && typeof console !== 'undefined') {\n console.error(err);\n } else {\n throw err\n }\n}\n\n/* */\n/* globals MessageChannel */\n\nvar callbacks = [];\nvar pending = false;\n\nfunction flushCallbacks () {\n pending = false;\n var copies = callbacks.slice(0);\n callbacks.length = 0;\n for (var i = 0; i < copies.length; i++) {\n copies[i]();\n }\n}\n\n// Here we have async deferring wrappers using both microtasks and (macro) tasks.\n// In < 2.4 we used microtasks everywhere, but there are some scenarios where\n// microtasks have too high a priority and fire in between supposedly\n// sequential events (e.g. #4521, #6690) or even between bubbling of the same\n// event (#6566). However, using (macro) tasks everywhere also has subtle problems\n// when state is changed right before repaint (e.g. #6813, out-in transitions).\n// Here we use microtask by default, but expose a way to force (macro) task when\n// needed (e.g. in event handlers attached by v-on).\nvar microTimerFunc;\nvar macroTimerFunc;\nvar useMacroTask = false;\n\n// Determine (macro) task defer implementation.\n// Technically setImmediate should be the ideal choice, but it's only available\n// in IE. The only polyfill that consistently queues the callback after all DOM\n// events triggered in the same loop is by using MessageChannel.\n/* istanbul ignore if */\nif (typeof setImmediate !== 'undefined' && isNative(setImmediate)) {\n macroTimerFunc = function () {\n setImmediate(flushCallbacks);\n };\n} else if (typeof MessageChannel !== 'undefined' && (\n isNative(MessageChannel) ||\n // PhantomJS\n MessageChannel.toString() === '[object MessageChannelConstructor]'\n)) {\n var channel = new MessageChannel();\n var port = channel.port2;\n channel.port1.onmessage = flushCallbacks;\n macroTimerFunc = function () {\n port.postMessage(1);\n };\n} else {\n /* istanbul ignore next */\n macroTimerFunc = function () {\n setTimeout(flushCallbacks, 0);\n };\n}\n\n// Determine microtask defer implementation.\n/* istanbul ignore next, $flow-disable-line */\nif (typeof Promise !== 'undefined' && isNative(Promise)) {\n var p = Promise.resolve();\n microTimerFunc = function () {\n p.then(flushCallbacks);\n // in problematic UIWebViews, Promise.then doesn't completely break, but\n // it can get stuck in a weird state where callbacks are pushed into the\n // microtask queue but the queue isn't being flushed, until the browser\n // needs to do some other work, e.g. handle a timer. Therefore we can\n // \"force\" the microtask queue to be flushed by adding an empty timer.\n if (isIOS) { setTimeout(noop); }\n };\n} else {\n // fallback to macro\n microTimerFunc = macroTimerFunc;\n}\n\n/**\n * Wrap a function so that if any code inside triggers state change,\n * the changes are queued using a (macro) task instead of a microtask.\n */\nfunction withMacroTask (fn) {\n return fn._withTask || (fn._withTask = function () {\n useMacroTask = true;\n var res = fn.apply(null, arguments);\n useMacroTask = false;\n return res\n })\n}\n\nfunction nextTick (cb, ctx) {\n var _resolve;\n callbacks.push(function () {\n if (cb) {\n try {\n cb.call(ctx);\n } catch (e) {\n handleError(e, ctx, 'nextTick');\n }\n } else if (_resolve) {\n _resolve(ctx);\n }\n });\n if (!pending) {\n pending = true;\n if (useMacroTask) {\n macroTimerFunc();\n } else {\n microTimerFunc();\n }\n }\n // $flow-disable-line\n if (!cb && typeof Promise !== 'undefined') {\n return new Promise(function (resolve) {\n _resolve = resolve;\n })\n }\n}\n\n/* */\n\n/* not type checking this file because flow doesn't play well with Proxy */\n\nvar initProxy;\n\nif (process.env.NODE_ENV !== 'production') {\n var allowedGlobals = makeMap(\n 'Infinity,undefined,NaN,isFinite,isNaN,' +\n 'parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,' +\n 'Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,' +\n 'require' // for Webpack/Browserify\n );\n\n var warnNonPresent = function (target, key) {\n warn(\n \"Property or method \\\"\" + key + \"\\\" is not defined on the instance but \" +\n 'referenced during render. Make sure that this property is reactive, ' +\n 'either in the data option, or for class-based components, by ' +\n 'initializing the property. ' +\n 'See: https://vuejs.org/v2/guide/reactivity.html#Declaring-Reactive-Properties.',\n target\n );\n };\n\n var hasProxy =\n typeof Proxy !== 'undefined' && isNative(Proxy);\n\n if (hasProxy) {\n var isBuiltInModifier = makeMap('stop,prevent,self,ctrl,shift,alt,meta,exact');\n config.keyCodes = new Proxy(config.keyCodes, {\n set: function set (target, key, value) {\n if (isBuiltInModifier(key)) {\n warn((\"Avoid overwriting built-in modifier in config.keyCodes: .\" + key));\n return false\n } else {\n target[key] = value;\n return true\n }\n }\n });\n }\n\n var hasHandler = {\n has: function has (target, key) {\n var has = key in target;\n var isAllowed = allowedGlobals(key) || key.charAt(0) === '_';\n if (!has && !isAllowed) {\n warnNonPresent(target, key);\n }\n return has || !isAllowed\n }\n };\n\n var getHandler = {\n get: function get (target, key) {\n if (typeof key === 'string' && !(key in target)) {\n warnNonPresent(target, key);\n }\n return target[key]\n }\n };\n\n initProxy = function initProxy (vm) {\n if (hasProxy) {\n // determine which proxy handler to use\n var options = vm.$options;\n var handlers = options.render && options.render._withStripped\n ? getHandler\n : hasHandler;\n vm._renderProxy = new Proxy(vm, handlers);\n } else {\n vm._renderProxy = vm;\n }\n };\n}\n\n/* */\n\nvar seenObjects = new _Set();\n\n/**\n * Recursively traverse an object to evoke all converted\n * getters, so that every nested property inside the object\n * is collected as a \"deep\" dependency.\n */\nfunction traverse (val) {\n _traverse(val, seenObjects);\n seenObjects.clear();\n}\n\nfunction _traverse (val, seen) {\n var i, keys;\n var isA = Array.isArray(val);\n if ((!isA && !isObject(val)) || Object.isFrozen(val) || val instanceof VNode) {\n return\n }\n if (val.__ob__) {\n var depId = val.__ob__.dep.id;\n if (seen.has(depId)) {\n return\n }\n seen.add(depId);\n }\n if (isA) {\n i = val.length;\n while (i--) { _traverse(val[i], seen); }\n } else {\n keys = Object.keys(val);\n i = keys.length;\n while (i--) { _traverse(val[keys[i]], seen); }\n }\n}\n\nvar mark;\nvar measure;\n\nif (process.env.NODE_ENV !== 'production') {\n var perf = inBrowser && window.performance;\n /* istanbul ignore if */\n if (\n perf &&\n perf.mark &&\n perf.measure &&\n perf.clearMarks &&\n perf.clearMeasures\n ) {\n mark = function (tag) { return perf.mark(tag); };\n measure = function (name, startTag, endTag) {\n perf.measure(name, startTag, endTag);\n perf.clearMarks(startTag);\n perf.clearMarks(endTag);\n perf.clearMeasures(name);\n };\n }\n}\n\n/* */\n\nvar normalizeEvent = cached(function (name) {\n var passive = name.charAt(0) === '&';\n name = passive ? name.slice(1) : name;\n var once$$1 = name.charAt(0) === '~'; // Prefixed last, checked first\n name = once$$1 ? name.slice(1) : name;\n var capture = name.charAt(0) === '!';\n name = capture ? name.slice(1) : name;\n return {\n name: name,\n once: once$$1,\n capture: capture,\n passive: passive\n }\n});\n\nfunction createFnInvoker (fns) {\n function invoker () {\n var arguments$1 = arguments;\n\n var fns = invoker.fns;\n if (Array.isArray(fns)) {\n var cloned = fns.slice();\n for (var i = 0; i < cloned.length; i++) {\n cloned[i].apply(null, arguments$1);\n }\n } else {\n // return handler return value for single handlers\n return fns.apply(null, arguments)\n }\n }\n invoker.fns = fns;\n return invoker\n}\n\nfunction updateListeners (\n on,\n oldOn,\n add,\n remove$$1,\n vm\n) {\n var name, def, cur, old, event;\n for (name in on) {\n def = cur = on[name];\n old = oldOn[name];\n event = normalizeEvent(name);\n /* istanbul ignore if */\n if (isUndef(cur)) {\n process.env.NODE_ENV !== 'production' && warn(\n \"Invalid handler for event \\\"\" + (event.name) + \"\\\": got \" + String(cur),\n vm\n );\n } else if (isUndef(old)) {\n if (isUndef(cur.fns)) {\n cur = on[name] = createFnInvoker(cur);\n }\n add(event.name, cur, event.once, event.capture, event.passive, event.params);\n } else if (cur !== old) {\n old.fns = cur;\n on[name] = old;\n }\n }\n for (name in oldOn) {\n if (isUndef(on[name])) {\n event = normalizeEvent(name);\n remove$$1(event.name, oldOn[name], event.capture);\n }\n }\n}\n\n/* */\n\nfunction mergeVNodeHook (def, hookKey, hook) {\n if (def instanceof VNode) {\n def = def.data.hook || (def.data.hook = {});\n }\n var invoker;\n var oldHook = def[hookKey];\n\n function wrappedHook () {\n hook.apply(this, arguments);\n // important: remove merged hook to ensure it's called only once\n // and prevent memory leak\n remove(invoker.fns, wrappedHook);\n }\n\n if (isUndef(oldHook)) {\n // no existing hook\n invoker = createFnInvoker([wrappedHook]);\n } else {\n /* istanbul ignore if */\n if (isDef(oldHook.fns) && isTrue(oldHook.merged)) {\n // already a merged invoker\n invoker = oldHook;\n invoker.fns.push(wrappedHook);\n } else {\n // existing plain hook\n invoker = createFnInvoker([oldHook, wrappedHook]);\n }\n }\n\n invoker.merged = true;\n def[hookKey] = invoker;\n}\n\n/* */\n\nfunction extractPropsFromVNodeData (\n data,\n Ctor,\n tag\n) {\n // we are only extracting raw values here.\n // validation and default values are handled in the child\n // component itself.\n var propOptions = Ctor.options.props;\n if (isUndef(propOptions)) {\n return\n }\n var res = {};\n var attrs = data.attrs;\n var props = data.props;\n if (isDef(attrs) || isDef(props)) {\n for (var key in propOptions) {\n var altKey = hyphenate(key);\n if (process.env.NODE_ENV !== 'production') {\n var keyInLowerCase = key.toLowerCase();\n if (\n key !== keyInLowerCase &&\n attrs && hasOwn(attrs, keyInLowerCase)\n ) {\n tip(\n \"Prop \\\"\" + keyInLowerCase + \"\\\" is passed to component \" +\n (formatComponentName(tag || Ctor)) + \", but the declared prop name is\" +\n \" \\\"\" + key + \"\\\". \" +\n \"Note that HTML attributes are case-insensitive and camelCased \" +\n \"props need to use their kebab-case equivalents when using in-DOM \" +\n \"templates. You should probably use \\\"\" + altKey + \"\\\" instead of \\\"\" + key + \"\\\".\"\n );\n }\n }\n checkProp(res, props, key, altKey, true) ||\n checkProp(res, attrs, key, altKey, false);\n }\n }\n return res\n}\n\nfunction checkProp (\n res,\n hash,\n key,\n altKey,\n preserve\n) {\n if (isDef(hash)) {\n if (hasOwn(hash, key)) {\n res[key] = hash[key];\n if (!preserve) {\n delete hash[key];\n }\n return true\n } else if (hasOwn(hash, altKey)) {\n res[key] = hash[altKey];\n if (!preserve) {\n delete hash[altKey];\n }\n return true\n }\n }\n return false\n}\n\n/* */\n\n// The template compiler attempts to minimize the need for normalization by\n// statically analyzing the template at compile time.\n//\n// For plain HTML markup, normalization can be completely skipped because the\n// generated render function is guaranteed to return Array. There are\n// two cases where extra normalization is needed:\n\n// 1. When the children contains components - because a functional component\n// may return an Array instead of a single root. In this case, just a simple\n// normalization is needed - if any child is an Array, we flatten the whole\n// thing with Array.prototype.concat. It is guaranteed to be only 1-level deep\n// because functional components already normalize their own children.\nfunction simpleNormalizeChildren (children) {\n for (var i = 0; i < children.length; i++) {\n if (Array.isArray(children[i])) {\n return Array.prototype.concat.apply([], children)\n }\n }\n return children\n}\n\n// 2. When the children contains constructs that always generated nested Arrays,\n// e.g.