autemaliquam
Version:
A simple, maximally extensible, dependency minimized framework for building modern Ethereum dApps
14 lines • 54.1 kB
JavaScript
(window["webpackJsonp_N_E"] = window["webpackJsonp_N_E"] || []).push([[8],{
/***/ "./node_modules/fortmatic/lib/fortmatic.js":
/*!*************************************************!*\
!*** ./node_modules/fortmatic/lib/fortmatic.js ***!
\*************************************************/
/*! no static exports found */
/***/ (function(module, exports) {
eval("module.exports=function(e){var t={};function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&\"object\"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,\"default\",{enumerable:!0,value:e}),2&t&&\"string\"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,\"a\",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p=\"\",r(r.s=3)}([function(e,t){e.exports=function(e){return e&&e.__esModule?e:{default:e}}},function(e,t){e.exports=function(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}},function(e,t,r){\"use strict\";function n(){return Math.floor(9e4*Math.random())+1e4}Object.defineProperty(t,\"__esModule\",{value:!0}),t.sendAsyncWrapper=function(e,t){var r=this;return new Promise(function(o,a){r.sendAsync({jsonrpc:\"2.0\",id:n(),method:e,params:t||[]},function(e,t){e?a(e):o(t.result)})})},t.sendFortmaticAsyncWrapper=function(e){var t=this;return new Promise(function(r,n){t.getProvider().sendFortmaticAsync(e,function(e,t){e?n(e):r(t?t.result:{})})})},t.randomId=n,t.findExistingResponse=function(e,t){for(var r=0;r<e.length;r++)if(e[r].id===t)return e[r];return null}},function(e,t,r){e.exports=r(4)},function(e,t,r){\"use strict\";var n=r(0),o=n(r(1)),a=n(r(5)),i=r(2),s=\"fm_composeSend\",c=\"fm_logout\",u=\"fm_get_balances\",l=\"fm_get_transactions\",f=\"fm_is_logged_in\",d=\"fm_accountSettings\",h=\"fm_deposit\",p=\"fm_get_user\",m=\"fm_configure\",y={};e.exports=function e(t,r,n){var g=this;if((0,o.default)(this,e),this.fortmaticClient=\"https://x2.fortmatic.com\",!t)throw new Error(\"Please provide a Fortmatic API key that you acquired from the developer dashboard.\");this.apiKey=t,this.options=n,this.ethNetwork=r,this.queryParams=btoa(JSON.stringify({API_KEY:t,ETH_NETWORK:r})),this.transactions={send:function(e,t){var r=new v(s,{to:e.to,value:e.amount});g.getProvider().sendFortmaticAsync(r,t)}},this.getProvider=function(){return y[\"fortmatic-\".concat(g.queryParams)]||(y[\"fortmatic-\".concat(g.queryParams)]=new a.default(g.fortmaticClient,{API_KEY:t,ETH_NETWORK:r})),y[\"fortmatic-\".concat(g.queryParams)]},this.user={login:function(){return g.getProvider().enable()},logout:function(){g.getProvider().account=null,g.getProvider().network=null;var e=new v(c);return i.sendFortmaticAsyncWrapper.call(g,e)},getUser:function(){var e=new v(p);return i.sendFortmaticAsyncWrapper.call(g,e)},getBalances:function(){var e=new v(u);return i.sendFortmaticAsyncWrapper.call(g,e)},getTransactions:function(){var e=new v(l);return i.sendFortmaticAsyncWrapper.call(g,e)},isLoggedIn:function(){var e=new v(f);return i.sendFortmaticAsyncWrapper.call(g,e)},settings:function(){var e=new v(d);return i.sendFortmaticAsyncWrapper.call(g,e)},deposit:function(e){var t=new v(h,e);return i.sendFortmaticAsyncWrapper.call(g,t)}},this.configure=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=new v(m);return t.params=[e],i.sendFortmaticAsyncWrapper.call(g,t)}};var v=function e(t,r){(0,o.default)(this,e),this.id=(0,i.randomId)(),this.method=t,this.params=r?[r]:[{}]}},function(e,t,r){\"use strict\";var n=r(0);Object.defineProperty(t,\"__esModule\",{value:!0}),t.default=void 0;var o=n(r(6)),a=n(r(9)),i=n(r(1)),s=n(r(10)),c=r(11),u=n(r(12)),l=r(2),f=function(){function e(t,r){if((0,i.default)(this,e),this.fortmaticClient=t,this.requests={},this.queue=[],this.account=null,this.network=null,this.isFortmatic=!0,this.overlayReady=!1,this.isLoggedIn=!1,this.postMessages={FORTMATIC_HANDLE_BATCH_REQUEST:\"FORTMATIC_HANDLE_BATCH_REQUEST\",FORTMATIC_HANDLE_REQUEST:\"FORTMATIC_HANDLE_REQUEST\",FORTMATIC_HANDLE_FORTMATIC_REQUEST:\"FORTMATIC_HANDLE_FORTMATIC_REQUEST\",FORTMATIC_HANDLE_RESPONSE:\"FORTMATIC_HANDLE_RESPONSE\",FORTMATIC_OVERLAY_READY:\"FORTMATIC_OVERLAY_READY\",FORTMATIC_SHOW_OVERLAY:\"FORTMATIC_SHOW_OVERLAY\",FORTMATIC_HIDE_OVERLAY:\"FORTMATIC_HIDE_OVERLAY\",FORTMATIC_USER_DENIED:\"FORTMATIC_USER_DENIED\",FORTMATIC_USER_LOGOUT:\"FORTMATIC_USER_LOGOUT\",FORTMATIC_UNAUTHORIZED_API_KEY:\"FORTMATIC_UNAUTHORIZED_API_KEY\"},!r.API_KEY)throw new Error(\"Please provide a Fortmatic API key that you acquired from the developer dashboard.\");this.options={API_KEY:r.API_KEY,ETH_NETWORK:r.ETH_NETWORK,DOMAIN_ORIGIN:window.location?window.location.origin:\"\",version:c.version},this.queryParams=btoa(JSON.stringify(this.options)),this.constructPostMessage(),this.overlay=this.createOverlay(),this.listenMessage()}return(0,s.default)(e,[{key:\"constructPostMessage\",value:function(){var e=this;Object.keys(this.postMessages).map(function(t){e.postMessages[t]+=\"-\".concat(e.queryParams)})}},{key:\"createOverlay\",value:function(){var e=this;return new Promise(function(t,r){var n=function(){if(function(){var t=!0,r=!1,n=void 0;try{for(var o,a=document.getElementsByClassName(\"fortmatic-iframe\")[Symbol.iterator]();!(t=(o=a.next()).done);t=!0)if(o.value.src.includes(e.queryParams))return!1}catch(e){r=!0,n=e}finally{try{t||null==a.return||a.return()}finally{if(r)throw n}}return!0}()){var r=document.createElement(\"style\");r.innerHTML=u.default.css,r.type=\"text/css\",document.head.appendChild(r);var n=document.createElement(\"iframe\");n.className=\"fortmatic-iframe\",n.src=\"\".concat(e.fortmaticClient,\"/send?params=\").concat(e.queryParams),document.body.appendChild(n);var o=document.createElement(\"img\");o.src=\"https://static.fortmatic.com/assets/trans.gif\",document.body.appendChild(o),t({iframe:n})}else console.error(\"Fortmatic: Duplicate instances found.\")};[\"loaded\",\"interactive\",\"complete\"].indexOf(document.readyState)>-1?n():window.addEventListener(\"load\",n.bind(e),!1)})}},{key:\"showOverlay\",value:function(){var e=(0,a.default)(o.default.mark(function e(){return o.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.overlay;case 2:e.sent.iframe.style.display=\"block\";case 4:case\"end\":return e.stop()}},e,this)}));return function(){return e.apply(this,arguments)}}()},{key:\"hideOverlay\",value:function(){var e=(0,a.default)(o.default.mark(function e(){return o.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.overlay;case 2:e.sent.iframe.style.display=\"none\";case 4:case\"end\":return e.stop()}},e,this)}));return function(){return e.apply(this,arguments)}}()},{key:\"sendAsync\",value:function(e,t){e.length>0?this.enqueue({payload:{id:(0,l.randomId)(),batch:e.map(function(e){return e.id=(0,l.randomId)(),e}),method:\"eth_batchRequest\"},cb:t}):this.enqueue({payload:e,cb:t})}},{key:\"sendFortmaticAsync\",value:function(e,t){this.enqueue({payload:e,cb:t,isNative:!0})}},{key:\"send\",value:function(e,t){if(\"string\"==typeof e)return l.sendAsyncWrapper.call(this,e,t);if(!t){console.warn(\"Non-async web3 methods will be deprecated in web3 > 1.0, and are not supported by the Fortmatic provider. An async method to be used instead.\"),this.sendAsync(e,function(){});var r={};switch(e.method){case\"eth_accounts\":r=this.account?[this.account]:[];break;case\"eth_coinbase\":r=this.account;break;case\"net_version\":r=this.network||(this.options.API_KEY.startsWith(\"pk_live\")?1:4);break;case\"eth_uninstallFilter\":r=!0;break;default:r={}}return{id:e.id,jsonrpc:e.jsonrpc,result:r}}this.sendAsync(e,t)}},{key:\"enqueue\",value:function(e){this.queue.push(e),this.overlayReady&&this.dequeue()}},{key:\"dequeue\",value:function(){var e=(0,a.default)(o.default.mark(function e(){var t,r,n,a=this;return o.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(0!==this.queue.length){e.next=2;break}return e.abrupt(\"return\");case 2:if(!(t=this.queue.shift())){e.next=11;break}return r=t.payload,n=t.cb,r.id=(0,l.randomId)(),e.next=9,this.postMessage(t.isNative?this.postMessages.FORTMATIC_HANDLE_FORTMATIC_REQUEST:this.postMessages.FORTMATIC_HANDLE_REQUEST,t.payload);case 9:r.batch&&r.batch.length>0?(r.batch.forEach(function(e){a.requests[e.id]={parentId:r.id,payload:e,cb:function(e,t){var n=a.requests[r.id].batchResponse;if(e&&e.response&&!(0,l.findExistingResponse)(n,e.response.id))throw n.push({jsonrpc:\"2.0\",id:e.response.id,error:{code:e.response.code,message:e.response.message}}),a.requests[r.id].cb(null,n),e.response;if(t&&t.result&&!(0,l.findExistingResponse)(n,t.id))return n.push(t);throw new Error(\"Fortmatic: unexpected callback behavior\")}}}),this.requests[r.id]={payload:r,cb:n,batchResponse:[]}):this.requests[r.id]={payload:r,cb:n},this.dequeue();case 11:case\"end\":return e.stop()}},e,this)}));return function(){return e.apply(this,arguments)}}()},{key:\"postMessage\",value:function(){var e=(0,a.default)(o.default.mark(function e(t,r){var n;return o.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.overlay;case 2:if(!(n=e.sent).iframe.contentWindow){e.next=7;break}n.iframe.contentWindow.postMessage({msgType:t,payload:r},\"*\"),e.next=8;break;case 7:throw new Error(\"Fortmatic: Modal is not ready.\");case 8:case\"end\":return e.stop()}},e,this)}));return function(t,r){return e.apply(this,arguments)}}()},{key:\"enable\",value:function(){return l.sendAsyncWrapper.call(this,\"eth_accounts\")}},{key:\"listenMessage\",value:function(){var e=this;window.addEventListener(\"message\",function(t){if(t.origin===e.fortmaticClient){var r=t.data.response?t.data.response.id:null;switch(t.data.msgType){case e.postMessages.FORTMATIC_OVERLAY_READY:e.overlayReady=!0,e.dequeue();break;case e.postMessages.FORTMATIC_HANDLE_RESPONSE:try{e.requests[r].cb(null,t.data.response);var n=e.requests[r].parentId;n&&e.requests[n].payload.batch.length===e.requests[n].batchResponse.length&&e.requests[n].cb(null,e.requests[n].batchResponse),\"eth_accounts\"===e.requests[r].payload.method?e.account=t.data.response.result[0]:\"eth_coinbase\"===e.requests[r].payload.method?e.account=t.data.response.result:\"net_version\"===e.requests[r].payload.method&&(e.network=t.data.response.result)}catch(e){}e.isLoggedIn=!0,e.dequeue();break;case e.postMessages.FORTMATIC_HIDE_OVERLAY:e.hideOverlay();break;case e.postMessages.FORTMATIC_SHOW_OVERLAY:e.showOverlay();break;case e.postMessages.FORTMATIC_USER_LOGOUT:e.account=null,e.network=null,e.isLoggedIn=!1;break;case e.postMessages.FORTMATIC_UNAUTHORIZED_API_KEY:throw e.overlayReady=!1,new Error(\"Given API key is not authorized to access the resource.\");case e.postMessages.FORTMATIC_USER_DENIED:if(r){var o=t.data.response&&t.data.response.message?t.data.response.message:\"Fortmatic: Modal was closed without executing action!\",a=t.data.response&&t.data.response.code?t.data.response.code:1;e.requests[r].cb({message:o,code:a,response:t.data.response})}else e.queue.forEach(function(e){return e.cb({message:\"Fortmatic: Modal was closed without executing action!\",code:1})});e.dequeue()}}})}}]),e}();t.default=f},function(e,t,r){e.exports=r(7)},function(e,t,r){var n=function(){return this||\"object\"==typeof self&&self}()||Function(\"return this\")(),o=n.regeneratorRuntime&&Object.getOwnPropertyNames(n).indexOf(\"regeneratorRuntime\")>=0,a=o&&n.regeneratorRuntime;if(n.regeneratorRuntime=void 0,e.exports=r(8),o)n.regeneratorRuntime=a;else try{delete n.regeneratorRuntime}catch(e){n.regeneratorRuntime=void 0}},function(e,t){!function(t){\"use strict\";var r,n=Object.prototype,o=n.hasOwnProperty,a=\"function\"==typeof Symbol?Symbol:{},i=a.iterator||\"@@iterator\",s=a.asyncIterator||\"@@asyncIterator\",c=a.toStringTag||\"@@toStringTag\",u=\"object\"==typeof e,l=t.regeneratorRuntime;if(l)u&&(e.exports=l);else{(l=t.regeneratorRuntime=u?e.exports:{}).wrap=_;var f=\"suspendedStart\",d=\"suspendedYield\",h=\"executing\",p=\"completed\",m={},y={};y[i]=function(){return this};var v=Object.getPrototypeOf,g=v&&v(v(L([])));g&&g!==n&&o.call(g,i)&&(y=g);var b=A.prototype=w.prototype=Object.create(y);T.prototype=b.constructor=A,A.constructor=T,A[c]=T.displayName=\"GeneratorFunction\",l.isGeneratorFunction=function(e){var t=\"function\"==typeof e&&e.constructor;return!!t&&(t===T||\"GeneratorFunction\"===(t.displayName||t.name))},l.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,A):(e.__proto__=A,c in e||(e[c]=\"GeneratorFunction\")),e.prototype=Object.create(b),e},l.awrap=function(e){return{__await:e}},O(R.prototype),R.prototype[s]=function(){return this},l.AsyncIterator=R,l.async=function(e,t,r,n){var o=new R(_(e,t,r,n));return l.isGeneratorFunction(t)?o:o.next().then(function(e){return e.done?e.value:o.next()})},O(b),b[c]=\"Generator\",b[i]=function(){return this},b.toString=function(){return\"[object Generator]\"},l.keys=function(e){var t=[];for(var r in e)t.push(r);return t.reverse(),function r(){for(;t.length;){var n=t.pop();if(n in e)return r.value=n,r.done=!1,r}return r.done=!0,r}},l.values=L,F.prototype={constructor:F,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=r,this.done=!1,this.delegate=null,this.method=\"next\",this.arg=r,this.tryEntries.forEach(M),!e)for(var t in this)\"t\"===t.charAt(0)&&o.call(this,t)&&!isNaN(+t.slice(1))&&(this[t]=r)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if(\"throw\"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var t=this;function n(n,o){return s.type=\"throw\",s.arg=e,t.next=n,o&&(t.method=\"next\",t.arg=r),!!o}for(var a=this.tryEntries.length-1;a>=0;--a){var i=this.tryEntries[a],s=i.completion;if(\"root\"===i.tryLoc)return n(\"end\");if(i.tryLoc<=this.prev){var c=o.call(i,\"catchLoc\"),u=o.call(i,\"finallyLoc\");if(c&&u){if(this.prev<i.catchLoc)return n(i.catchLoc,!0);if(this.prev<i.finallyLoc)return n(i.finallyLoc)}else if(c){if(this.prev<i.catchLoc)return n(i.catchLoc,!0)}else{if(!u)throw new Error(\"try statement without catch or finally\");if(this.prev<i.finallyLoc)return n(i.finallyLoc)}}}},abrupt:function(e,t){for(var r=this.tryEntries.length-1;r>=0;--r){var n=this.tryEntries[r];if(n.tryLoc<=this.prev&&o.call(n,\"finallyLoc\")&&this.prev<n.finallyLoc){var a=n;break}}a&&(\"break\"===e||\"continue\"===e)&&a.tryLoc<=t&&t<=a.finallyLoc&&(a=null);var i=a?a.completion:{};return i.type=e,i.arg=t,a?(this.method=\"next\",this.next=a.finallyLoc,m):this.complete(i)},complete:function(e,t){if(\"throw\"===e.type)throw e.arg;return\"break\"===e.type||\"continue\"===e.type?this.next=e.arg:\"return\"===e.type?(this.rval=this.arg=e.arg,this.method=\"return\",this.next=\"end\"):\"normal\"===e.type&&t&&(this.next=t),m},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),M(r),m}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var n=r.completion;if(\"throw\"===n.type){var o=n.arg;M(r)}return o}}throw new Error(\"illegal catch attempt\")},delegateYield:function(e,t,n){return this.delegate={iterator:L(e),resultName:t,nextLoc:n},\"next\"===this.method&&(this.arg=r),m}}}function _(e,t,r,n){var o=t&&t.prototype instanceof w?t:w,a=Object.create(o.prototype),i=new F(n||[]);return a._invoke=function(e,t,r){var n=f;return function(o,a){if(n===h)throw new Error(\"Generator is already running\");if(n===p){if(\"throw\"===o)throw a;return k()}for(r.method=o,r.arg=a;;){var i=r.delegate;if(i){var s=I(i,r);if(s){if(s===m)continue;return s}}if(\"next\"===r.method)r.sent=r._sent=r.arg;else if(\"throw\"===r.method){if(n===f)throw n=p,r.arg;r.dispatchException(r.arg)}else\"return\"===r.method&&r.abrupt(\"return\",r.arg);n=h;var c=E(e,t,r);if(\"normal\"===c.type){if(n=r.done?p:d,c.arg===m)continue;return{value:c.arg,done:r.done}}\"throw\"===c.type&&(n=p,r.method=\"throw\",r.arg=c.arg)}}}(e,r,i),a}function E(e,t,r){try{return{type:\"normal\",arg:e.call(t,r)}}catch(e){return{type:\"throw\",arg:e}}}function w(){}function T(){}function A(){}function O(e){[\"next\",\"throw\",\"return\"].forEach(function(t){e[t]=function(e){return this._invoke(t,e)}})}function R(e){var t;this._invoke=function(r,n){function a(){return new Promise(function(t,a){!function t(r,n,a,i){var s=E(e[r],e,n);if(\"throw\"!==s.type){var c=s.arg,u=c.value;return u&&\"object\"==typeof u&&o.call(u,\"__await\")?Promise.resolve(u.__await).then(function(e){t(\"next\",e,a,i)},function(e){t(\"throw\",e,a,i)}):Promise.resolve(u).then(function(e){c.value=e,a(c)},function(e){return t(\"throw\",e,a,i)})}i(s.arg)}(r,n,t,a)})}return t=t?t.then(a,a):a()}}function I(e,t){var n=e.iterator[t.method];if(n===r){if(t.delegate=null,\"throw\"===t.method){if(e.iterator.return&&(t.method=\"return\",t.arg=r,I(e,t),\"throw\"===t.method))return m;t.method=\"throw\",t.arg=new TypeError(\"The iterator does not provide a 'throw' method\")}return m}var o=E(n,e.iterator,t.arg);if(\"throw\"===o.type)return t.method=\"throw\",t.arg=o.arg,t.delegate=null,m;var a=o.arg;return a?a.done?(t[e.resultName]=a.value,t.next=e.nextLoc,\"return\"!==t.method&&(t.method=\"next\",t.arg=r),t.delegate=null,m):a:(t.method=\"throw\",t.arg=new TypeError(\"iterator result is not an object\"),t.delegate=null,m)}function x(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function M(e){var t=e.completion||{};t.type=\"normal\",delete t.arg,e.completion=t}function F(e){this.tryEntries=[{tryLoc:\"root\"}],e.forEach(x,this),this.reset(!0)}function L(e){if(e){var t=e[i];if(t)return t.call(e);if(\"function\"==typeof e.next)return e;if(!isNaN(e.length)){var n=-1,a=function t(){for(;++n<e.length;)if(o.call(e,n))return t.value=e[n],t.done=!1,t;return t.value=r,t.done=!0,t};return a.next=a}}return{next:k}}function k(){return{value:r,done:!0}}}(function(){return this||\"object\"==typeof self&&self}()||Function(\"return this\")())},function(e,t){function r(e,t,r,n,o,a,i){try{var s=e[a](i),c=s.value}catch(e){return void r(e)}s.done?t(c):Promise.resolve(c).then(n,o)}e.exports=function(e){return function(){var t=this,n=arguments;return new Promise(function(o,a){var i=e.apply(t,n);function s(e){r(i,o,a,s,c,\"next\",e)}function c(e){r(i,o,a,s,c,\"throw\",e)}s(void 0)})}}},function(e,t){function r(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}e.exports=function(e,t,n){return t&&r(e.prototype,t),n&&r(e,n),e}},function(e){e.exports={name:\"fortmatic\",version:\"1.1.3\",description:\"Fortmatic Javascript SDK\",main:\"lib/fortmatic.js\",scripts:{build:\"WEBPACK_ENV=production webpack\",\"build:dev\":\"WEBPACK_ENV=development BABEL_ENV=development webpack --progress --colors --watch\",test:\"nyc --reporter=lcov --reporter=text-summary ava\"},author:\"Fortmatic <team@fortmatic.com> (https://fortmatic.com/)\",license:\"MIT\",repository:{type:\"git\",url:\"https://github.com/fortmatic/fortmatic-js\"},keywords:[\"Auth\",\"Login\",\"Web3\",\"Crypto\",\"Ethereum\",\"MetaMask\",\"Wallet\",\"Blockchain\",\"Dapp\"],homepage:\"https://www.fortmatic.com\",ava:{require:[\"@babel/register\"],files:[\"test/**/*.spec.js\"],babel:{testOptions:{presets:[\"@babel/env\"],plugins:[\"@babel/plugin-proposal-function-bind\",\"@babel/plugin-transform-runtime\"]}},verbose:!0},nyc:{all:!1,\"check-coverage\":!0,\"per-file\":!0,lines:80,statements:80,functions:80,branches:80,include:[\"src/**/*.js\"],exclude:[\"*/style.js\"],require:[],reporter:[\"html\",\"lcov\"]},dependencies:{\"@babel/runtime\":\"7.3.4\"},devDependencies:{\"@babel/core\":\"7.3.4\",\"@babel/plugin-proposal-function-bind\":\"7.2.0\",\"@babel/plugin-transform-modules-commonjs\":\"7.2.0\",\"@babel/plugin-transform-runtime\":\"7.3.4\",\"@babel/preset-env\":\"7.3.4\",\"@babel/register\":\"7.0.0\",ava:\"2.2.0\",\"babel-eslint\":\"10.0.1\",\"babel-loader\":\"8.0.5\",eslint:\"5.9.0\",lodash:\"4.17.11\",nyc:\"13.1.0\",sinon:\"7.1.1\",webpack:\"4.26.1\",\"webpack-cli\":\"3.1.2\"}}},function(e,t,r){\"use strict\";t.css=\"\\n .fortmatic-iframe {\\n display: none;\\n position: fixed;\\n top: 0;\\n right: 0;\\n width: 100%;\\n height: 100%;\\n border: none;\\n border-radius: 0;\\n z-index: 2147483647;\\n }\\n\"}]);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2ZvcnRtYXRpYy9saWIvZm9ydG1hdGljLmpzPzRkZWMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsMkJBQTJCLFNBQVMsY0FBYyw0QkFBNEIsWUFBWSxxQkFBcUIsMkRBQTJELHVDQUF1QyxxQ0FBcUMsb0JBQW9CLEVBQUUsaUJBQWlCLDRGQUE0RixlQUFlLHdDQUF3QyxTQUFTLEVBQUUsbUJBQW1CLDhCQUE4QixxREFBcUQsMEJBQTBCLDZDQUE2QyxzQkFBc0IsNkRBQTZELFlBQVksZUFBZSxTQUFTLGlCQUFpQixpQ0FBaUMsaUJBQWlCLFlBQVksVUFBVSxzQkFBc0IsbUJBQW1CLGlEQUFpRCxpQkFBaUIsZ0JBQWdCLHNCQUFzQiwwQkFBMEIsWUFBWSxlQUFlLHdCQUF3QiwrRUFBK0UsaUJBQWlCLGFBQWEsYUFBYSx5Q0FBeUMsc0NBQXNDLFNBQVMsbUNBQW1DLFdBQVcsaUNBQWlDLGFBQWEsMkNBQTJDLGVBQWUsbUJBQW1CLEVBQUUsRUFBRSx5Q0FBeUMsV0FBVyxpQ0FBaUMsbURBQW1ELHNCQUFzQixFQUFFLEVBQUUsRUFBRSxtREFBbUQsWUFBWSxXQUFXLCtCQUErQixhQUFhLGlCQUFpQixlQUFlLGlCQUFpQixhQUFhLG1OQUFtTiw0QkFBNEIsV0FBVyxrTEFBa0wscUZBQXFGLHdCQUF3QixzQkFBc0IsbUJBQW1CLGVBQWUsdUJBQXVCLEVBQUUseUNBQXlDLDZCQUE2QixzSEFBc0gsd0JBQXdCLHlDQUF5QyxZQUFZLGlCQUFpQixnQ0FBZ0MsbUJBQW1CLDBEQUEwRCxlQUFlLDZDQUE2QyxvQkFBb0IsZUFBZSw2Q0FBNkMsd0JBQXdCLGVBQWUsNkNBQTZDLDRCQUE0QixlQUFlLDZDQUE2Qyx1QkFBdUIsZUFBZSw2Q0FBNkMscUJBQXFCLGVBQWUsNkNBQTZDLHFCQUFxQixpQkFBaUIsOENBQThDLDJCQUEyQiwrREFBK0QsWUFBWSw0REFBNEQsc0JBQXNCLGtGQUFrRixHQUFHLGlCQUFpQixh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QUFhLGdEQUFnRCw4QkFBOEIsaUJBQWlCLE9BQU8sUUFBUSxhQUFhLE9BQU8sa0JBQWtCLFlBQVkseUNBQXlDLCtCQUErQixlQUFlLDBCQUEwQixJQUFJLHdCQUF3QixTQUFTLGlCQUFpQix5Q0FBeUMsc0JBQXNCLGtCQUFrQix1QkFBdUIsaUNBQWlDLG1CQUFtQixjQUFjLHNCQUFzQixjQUFjLHVCQUF1QixVQUFVLElBQUksZUFBZSxnQkFBZ0IsWUFBWSxXQUFXLEtBQUssV0FBVywrR0FBK0csMEJBQTBCLHdDQUF3QyxhQUFhLFdBQVcseUdBQXlHLDhMQUE4TCw0RkFBNEYsMkRBQTJELHdJQUF3SSwrREFBK0QsYUFBYSwyR0FBMkcsWUFBWSxNQUFNLDRLQUE0SyxlQUFlLHlCQUF5QixrQkFBa0IsdVhBQXVYLGlCQUFpQixhQUFhLDhCQUE4QixvQkFBb0Isc0JBQXNCLGFBQWEsZUFBZSxrQkFBa0IsbUJBQW1CLG1CQUFtQix1QkFBdUIsMEJBQTBCLEtBQUssSUFBSSIsImZpbGUiOiIuL25vZGVfbW9kdWxlcy9mb3J0bWF0aWMvbGliL2ZvcnRtYXRpYy5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3ZhciB0PXt9O2Z1bmN0aW9uIHIobil7aWYodFtuXSlyZXR1cm4gdFtuXS5leHBvcnRzO3ZhciBvPXRbbl09e2k6bixsOiExLGV4cG9ydHM6e319O3JldHVybiBlW25dLmNhbGwoby5leHBvcnRzLG8sby5leHBvcnRzLHIpLG8ubD0hMCxvLmV4cG9ydHN9cmV0dXJuIHIubT1lLHIuYz10LHIuZD1mdW5jdGlvbihlLHQsbil7ci5vKGUsdCl8fE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQse2VudW1lcmFibGU6ITAsZ2V0Om59KX0sci5yPWZ1bmN0aW9uKGUpe1widW5kZWZpbmVkXCIhPXR5cGVvZiBTeW1ib2wmJlN5bWJvbC50b1N0cmluZ1RhZyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsU3ltYm9sLnRvU3RyaW5nVGFnLHt2YWx1ZTpcIk1vZHVsZVwifSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSl9LHIudD1mdW5jdGlvbihlLHQpe2lmKDEmdCYmKGU9cihlKSksOCZ0KXJldHVybiBlO2lmKDQmdCYmXCJvYmplY3RcIj09dHlwZW9mIGUmJmUmJmUuX19lc01vZHVsZSlyZXR1cm4gZTt2YXIgbj1PYmplY3QuY3JlYXRlKG51bGwpO2lmKHIucihuKSxPYmplY3QuZGVmaW5lUHJvcGVydHkobixcImRlZmF1bHRcIix7ZW51bWVyYWJsZTohMCx2YWx1ZTplfSksMiZ0JiZcInN0cmluZ1wiIT10eXBlb2YgZSlmb3IodmFyIG8gaW4gZSlyLmQobixvLGZ1bmN0aW9uKHQpe3JldHVybiBlW3RdfS5iaW5kKG51bGwsbykpO3JldHVybiBufSxyLm49ZnVuY3Rpb24oZSl7dmFyIHQ9ZSYmZS5fX2VzTW9kdWxlP2Z1bmN0aW9uKCl7cmV0dXJuIGUuZGVmYXVsdH06ZnVuY3Rpb24oKXtyZXR1cm4gZX07cmV0dXJuIHIuZCh0LFwiYVwiLHQpLHR9LHIubz1mdW5jdGlvbihlLHQpe3JldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSx0KX0sci5wPVwiXCIscihyLnM9Myl9KFtmdW5jdGlvbihlLHQpe2UuZXhwb3J0cz1mdW5jdGlvbihlKXtyZXR1cm4gZSYmZS5fX2VzTW9kdWxlP2U6e2RlZmF1bHQ6ZX19fSxmdW5jdGlvbihlLHQpe2UuZXhwb3J0cz1mdW5jdGlvbihlLHQpe2lmKCEoZSBpbnN0YW5jZW9mIHQpKXRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb25cIil9fSxmdW5jdGlvbihlLHQscil7XCJ1c2Ugc3RyaWN0XCI7ZnVuY3Rpb24gbigpe3JldHVybiBNYXRoLmZsb29yKDllNCpNYXRoLnJhbmRvbSgpKSsxZTR9T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSksdC5zZW5kQXN5bmNXcmFwcGVyPWZ1bmN0aW9uKGUsdCl7dmFyIHI9dGhpcztyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24obyxhKXtyLnNlbmRBc3luYyh7anNvbnJwYzpcIjIuMFwiLGlkOm4oKSxtZXRob2Q6ZSxwYXJhbXM6dHx8W119LGZ1bmN0aW9uKGUsdCl7ZT9hKGUpOm8odC5yZXN1bHQpfSl9KX0sdC5zZW5kRm9ydG1hdGljQXN5bmNXcmFwcGVyPWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXM7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHIsbil7dC5nZXRQcm92aWRlcigpLnNlbmRGb3J0bWF0aWNBc3luYyhlLGZ1bmN0aW9uKGUsdCl7ZT9uKGUpOnIodD90LnJlc3VsdDp7fSl9KX0pfSx0LnJhbmRvbUlkPW4sdC5maW5kRXhpc3RpbmdSZXNwb25zZT1mdW5jdGlvbihlLHQpe2Zvcih2YXIgcj0wO3I8ZS5sZW5ndGg7cisrKWlmKGVbcl0uaWQ9PT10KXJldHVybiBlW3JdO3JldHVybiBudWxsfX0sZnVuY3Rpb24oZSx0LHIpe2UuZXhwb3J0cz1yKDQpfSxmdW5jdGlvbihlLHQscil7XCJ1c2Ugc3RyaWN0XCI7dmFyIG49cigwKSxvPW4ocigxKSksYT1uKHIoNSkpLGk9cigyKSxzPVwiZm1fY29tcG9zZVNlbmRcIixjPVwiZm1fbG9nb3V0XCIsdT1cImZtX2dldF9iYWxhbmNlc1wiLGw9XCJmbV9nZXRfdHJhbnNhY3Rpb25zXCIsZj1cImZtX2lzX2xvZ2dlZF9pblwiLGQ9XCJmbV9hY2NvdW50U2V0dGluZ3NcIixoPVwiZm1fZGVwb3NpdFwiLHA9XCJmbV9nZXRfdXNlclwiLG09XCJmbV9jb25maWd1cmVcIix5PXt9O2UuZXhwb3J0cz1mdW5jdGlvbiBlKHQscixuKXt2YXIgZz10aGlzO2lmKCgwLG8uZGVmYXVsdCkodGhpcyxlKSx0aGlzLmZvcnRtYXRpY0NsaWVudD1cImh0dHBzOi8veDIuZm9ydG1hdGljLmNvbVwiLCF0KXRocm93IG5ldyBFcnJvcihcIlBsZWFzZSBwcm92aWRlIGEgRm9ydG1hdGljIEFQSSBrZXkgdGhhdCB5b3UgYWNxdWlyZWQgZnJvbSB0aGUgZGV2ZWxvcGVyIGRhc2hib2FyZC5cIik7dGhpcy5hcGlLZXk9dCx0aGlzLm9wdGlvbnM9bix0aGlzLmV0aE5ldHdvcms9cix0aGlzLnF1ZXJ5UGFyYW1zPWJ0b2EoSlNPTi5zdHJpbmdpZnkoe0FQSV9LRVk6dCxFVEhfTkVUV09SSzpyfSkpLHRoaXMudHJhbnNhY3Rpb25zPXtzZW5kOmZ1bmN0aW9uKGUsdCl7dmFyIHI9bmV3IHYocyx7dG86ZS50byx2YWx1ZTplLmFtb3VudH0pO2cuZ2V0UHJvdmlkZXIoKS5zZW5kRm9ydG1hdGljQXN5bmMocix0KX19LHRoaXMuZ2V0UHJvdmlkZXI9ZnVuY3Rpb24oKXtyZXR1cm4geVtcImZvcnRtYXRpYy1cIi5jb25jYXQoZy5xdWVyeVBhcmFtcyldfHwoeVtcImZvcnRtYXRpYy1cIi5jb25jYXQoZy5xdWVyeVBhcmFtcyldPW5ldyBhLmRlZmF1bHQoZy5mb3J0bWF0aWNDbGllbnQse0FQSV9LRVk6dCxFVEhfTkVUV09SSzpyfSkpLHlbXCJmb3J0bWF0aWMtXCIuY29uY2F0KGcucXVlcnlQYXJhbXMpXX0sdGhpcy51c2VyPXtsb2dpbjpmdW5jdGlvbigpe3JldHVybiBnLmdldFByb3ZpZGVyKCkuZW5hYmxlKCl9LGxvZ291dDpmdW5jdGlvbigpe2cuZ2V0UHJvdmlkZXIoKS5hY2NvdW50PW51bGwsZy5nZXRQcm92aWRlcigpLm5ldHdvcms9bnVsbDt2YXIgZT1uZXcgdihjKTtyZXR1cm4gaS5zZW5kRm9ydG1hdGljQXN5bmNXcmFwcGVyLmNhbGwoZyxlKX0sZ2V0VXNlcjpmdW5jdGlvbigpe3ZhciBlPW5ldyB2KHApO3JldHVybiBpLnNlbmRGb3J0bWF0aWNBc3luY1dyYXBwZXIuY2FsbChnLGUpfSxnZXRCYWxhbmNlczpmdW5jdGlvbigpe3ZhciBlPW5ldyB2KHUpO3JldHVybiBpLnNlbmRGb3J0bWF0aWNBc3luY1dyYXBwZXIuY2FsbChnLGUpfSxnZXRUcmFuc2FjdGlvbnM6ZnVuY3Rpb24oKXt2YXIgZT1uZXcgdihsKTtyZXR1cm4gaS5zZW5kRm9ydG1hdGljQXN5bmNXcmFwcGVyLmNhbGwoZyxlKX0saXNMb2dnZWRJbjpmdW5jdGlvbigpe3ZhciBlPW5ldyB2KGYpO3JldHVybiBpLnNlbmRGb3J0bWF0aWNBc3luY1dyYXBwZXIuY2FsbChnLGUpfSxzZXR0aW5nczpmdW5jdGlvbigpe3ZhciBlPW5ldyB2KGQpO3JldHVybiBpLnNlbmRGb3J0bWF0aWNBc3luY1dyYXBwZXIuY2FsbChnLGUpfSxkZXBvc2l0OmZ1bmN0aW9uKGUpe3ZhciB0PW5ldyB2KGgsZSk7cmV0dXJuIGkuc2VuZEZvcnRtYXRpY0FzeW5jV3JhcHBlci5jYWxsKGcsdCl9fSx0aGlzLmNvbmZpZ3VyZT1mdW5jdGlvbigpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp7fSx0PW5ldyB2KG0pO3JldHVybiB0LnBhcmFtcz1bZV0saS5zZW5kRm9ydG1hdGljQXN5bmNXcmFwcGVyLmNhbGwoZyx0KX19O3ZhciB2PWZ1bmN0aW9uIGUodCxyKXsoMCxvLmRlZmF1bHQpKHRoaXMsZSksdGhpcy5pZD0oMCxpLnJhbmRvbUlkKSgpLHRoaXMubWV0aG9kPXQsdGhpcy5wYXJhbXM9cj9bcl06W3t9XX19LGZ1bmN0aW9uKGUsdCxyKXtcInVzZSBzdHJpY3RcIjt2YXIgbj1yKDApO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG89bihyKDYpKSxhPW4ocig5KSksaT1uKHIoMSkpLHM9bihyKDEwKSksYz1yKDExKSx1PW4ocigxMikpLGw9cigyKSxmPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZSh0LHIpe2lmKCgwLGkuZGVmYXVsdCkodGhpcyxlKSx0aGlzLmZvcnRtYXRpY0NsaWVudD10LHRoaXMucmVxdWVzdHM9e30sdGhpcy5xdWV1ZT1bXSx0aGlzLmFjY291bnQ9bnVsbCx0aGlzLm5ldHdvcms9bnVsbCx0aGlzLmlzRm9ydG1hdGljPSEwLHRoaXMub3ZlcmxheVJlYWR5PSExLHRoaXMuaXNMb2dnZWRJbj0hMSx0aGlzLnBvc3RNZXNzYWdlcz17Rk9SVE1BVElDX0hBTkRMRV9CQVRDSF9SRVFVRVNUOlwiRk9SVE1BVElDX0hBTkRMRV9CQVRDSF9SRVFVRVNUXCIsRk9SVE1BVElDX0hBTkRMRV9SRVFVRVNUOlwiRk9SVE1BVElDX0hBTkRMRV9SRVFVRVNUXCIsRk9SVE1BVElDX0hBTkRMRV9GT1JUTUFUSUNfUkVRVUVTVDpcIkZPUlRNQVRJQ19IQU5ETEVfRk9SVE1BVElDX1JFUVVFU1RcIixGT1JUTUFUSUNfSEFORExFX1JFU1BPTlNFOlwiRk9SVE1BVElDX0hBTkRMRV9SRVNQT05TRVwiLEZPUlRNQVRJQ19PVkVSTEFZX1JFQURZOlwiRk9SVE1BVElDX09WRVJMQVlfUkVBRFlcIixGT1JUTUFUSUNfU0hPV19PVkVSTEFZOlwiRk9SVE1BVElDX1NIT1dfT1ZFUkxBWVwiLEZPUlRNQVRJQ19ISURFX09WRVJMQVk6XCJGT1JUTUFUSUNfSElERV9PVkVSTEFZXCIsRk9SVE1BVElDX1VTRVJfREVOSUVEOlwiRk9SVE1BVElDX1VTRVJfREVOSUVEXCIsRk9SVE1BVElDX1VTRVJfTE9HT1VUOlwiRk9SVE1BVElDX1VTRVJfTE9HT1VUXCIsRk9SVE1BVElDX1VOQVVUSE9SSVpFRF9BUElfS0VZOlwiRk9SVE1BVElDX1VOQVVUSE9SSVpFRF9BUElfS0VZXCJ9LCFyLkFQSV9LRVkpdGhyb3cgbmV3IEVycm9yKFwiUGxlYXNlIHByb3ZpZGUgYSBGb3J0bWF0aWMgQVBJIGtleSB0aGF0IHlvdSBhY3F1aXJlZCBmcm9tIHRoZSBkZXZlbG9wZXIgZGFzaGJvYXJkLlwiKTt0aGlzLm9wdGlvbnM9e0FQSV9LRVk6ci5BUElfS0VZLEVUSF9ORVRXT1JLOnIuRVRIX05FVFdPUkssRE9NQUlOX09SSUdJTjp3aW5kb3cubG9jYXRpb24/d2luZG93LmxvY2F0aW9uLm9yaWdpbjpcIlwiLHZlcnNpb246Yy52ZXJzaW9ufSx0aGlzLnF1ZXJ5UGFyYW1zPWJ0b2EoSlNPTi5zdHJpbmdpZnkodGhpcy5vcHRpb25zKSksdGhpcy5jb25zdHJ1Y3RQb3N0TWVzc2FnZSgpLHRoaXMub3ZlcmxheT10aGlzLmNyZWF0ZU92ZXJsYXkoKSx0aGlzLmxpc3Rlbk1lc3NhZ2UoKX1yZXR1cm4oMCxzLmRlZmF1bHQpKGUsW3trZXk6XCJjb25zdHJ1Y3RQb3N0TWVzc2FnZVwiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcztPYmplY3Qua2V5cyh0aGlzLnBvc3RNZXNzYWdlcykubWFwKGZ1bmN0aW9uKHQpe2UucG9zdE1lc3NhZ2VzW3RdKz1cIi1cIi5jb25jYXQoZS5xdWVyeVBhcmFtcyl9KX19LHtrZXk6XCJjcmVhdGVPdmVybGF5XCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbih0LHIpe3ZhciBuPWZ1bmN0aW9uKCl7aWYoZnVuY3Rpb24oKXt2YXIgdD0hMCxyPSExLG49dm9pZCAwO3RyeXtmb3IodmFyIG8sYT1kb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKFwiZm9ydG1hdGljLWlmcmFtZVwiKVtTeW1ib2wuaXRlcmF0b3JdKCk7ISh0PShvPWEubmV4dCgpKS5kb25lKTt0PSEwKWlmKG8udmFsdWUuc3JjLmluY2x1ZGVzKGUucXVlcnlQYXJhbXMpKXJldHVybiExfWNhdGNoKGUpe3I9ITAsbj1lfWZpbmFsbHl7dHJ5e3R8fG51bGw9PWEucmV0dXJufHxhLnJldHVybigpfWZpbmFsbHl7aWYocil0aHJvdyBufX1yZXR1cm4hMH0oKSl7dmFyIHI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcInN0eWxlXCIpO3IuaW5uZXJIVE1MPXUuZGVmYXVsdC5jc3Msci50eXBlPVwidGV4dC9jc3NcIixkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHIpO3ZhciBuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJpZnJhbWVcIik7bi5jbGFzc05hbWU9XCJmb3J0bWF0aWMtaWZyYW1lXCIsbi5zcmM9XCJcIi5jb25jYXQoZS5mb3J0bWF0aWNDbGllbnQsXCIvc2VuZD9wYXJhbXM9XCIpLmNvbmNhdChlLnF1ZXJ5UGFyYW1zKSxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKG4pO3ZhciBvPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJpbWdcIik7by5zcmM9XCJodHRwczovL3N0YXRpYy5mb3J0bWF0aWMuY29tL2Fzc2V0cy90cmFucy5naWZcIixkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKG8pLHQoe2lmcmFtZTpufSl9ZWxzZSBjb25zb2xlLmVycm9yKFwiRm9ydG1hdGljOiBEdXBsaWNhdGUgaW5zdGFuY2VzIGZvdW5kLlwiKX07W1wibG9hZGVkXCIsXCJpbnRlcmFjdGl2ZVwiLFwiY29tcGxldGVcIl0uaW5kZXhPZihkb2N1bWVudC5yZWFkeVN0YXRlKT4tMT9uKCk6d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJsb2FkXCIsbi5iaW5kKGUpLCExKX0pfX0se2tleTpcInNob3dPdmVybGF5XCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgZT0oMCxhLmRlZmF1bHQpKG8uZGVmYXVsdC5tYXJrKGZ1bmN0aW9uIGUoKXtyZXR1cm4gby5kZWZhdWx0LndyYXAoZnVuY3Rpb24oZSl7Zm9yKDs7KXN3aXRjaChlLnByZXY9ZS5uZXh0KXtjYXNlIDA6cmV0dXJuIGUubmV4dD0yLHRoaXMub3ZlcmxheTtjYXNlIDI6ZS5zZW50LmlmcmFtZS5zdHlsZS5kaXNwbGF5PVwiYmxvY2tcIjtjYXNlIDQ6Y2FzZVwiZW5kXCI6cmV0dXJuIGUuc3RvcCgpfX0sZSx0aGlzKX0pKTtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpfSx7a2V5OlwiaGlkZU92ZXJsYXlcIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBlPSgwLGEuZGVmYXVsdCkoby5kZWZhdWx0Lm1hcmsoZnVuY3Rpb24gZSgpe3JldHVybiBvLmRlZmF1bHQud3JhcChmdW5jdGlvbihlKXtmb3IoOzspc3dpdGNoKGUucHJldj1lLm5leHQpe2Nhc2UgMDpyZXR1cm4gZS5uZXh0PTIsdGhpcy5vdmVybGF5O2Nhc2UgMjplLnNlbnQuaWZyYW1lLnN0eWxlLmRpc3BsYXk9XCJub25lXCI7Y2FzZSA0OmNhc2VcImVuZFwiOnJldHVybiBlLnN0b3AoKX19LGUsdGhpcyl9KSk7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGUuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKX0se2tleTpcInNlbmRBc3luY1wiLHZhbHVlOmZ1bmN0aW9uKGUsdCl7ZS5sZW5ndGg+MD90aGlzLmVucXVldWUoe3BheWxvYWQ6e2lkOigwLGwucmFuZG9tSWQpKCksYmF0Y2g6ZS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIGUuaWQ9KDAsbC5yYW5kb21JZCkoKSxlfSksbWV0aG9kOlwiZXRoX2JhdGNoUmVxdWVzdFwifSxjYjp0fSk6dGhpcy5lbnF1ZXVlKHtwYXlsb2FkOmUsY2I6dH0pfX0se2tleTpcInNlbmRGb3J0bWF0aWNBc3luY1wiLHZhbHVlOmZ1bmN0aW9uKGUsdCl7dGhpcy5lbnF1ZXVlKHtwYXlsb2FkOmUsY2I6dCxpc05hdGl2ZTohMH0pfX0se2tleTpcInNlbmRcIix2YWx1ZTpmdW5jdGlvbihlLHQpe2lmKFwic3RyaW5nXCI9PXR5cGVvZiBlKXJldHVybiBsLnNlbmRBc3luY1dyYXBwZXIuY2FsbCh0aGlzLGUsdCk7aWYoIXQpe2NvbnNvbGUud2FybihcIk5vbi1hc3luYyB3ZWIzIG1ldGhvZHMgd2lsbCBiZSBkZXByZWNhdGVkIGluIHdlYjMgPiAxLjAsIGFuZCBhcmUgbm90IHN1cHBvcnRlZCBieSB0aGUgRm9ydG1hdGljIHByb3ZpZGVyLiBBbiBhc3luYyBtZXRob2QgdG8gYmUgdXNlZCBpbnN0ZWFkLlwiKSx0aGlzLnNlbmRBc3luYyhlLGZ1bmN0aW9uKCl7fSk7dmFyIHI9e307c3dpdGNoKGUubWV0aG9kKXtjYXNlXCJldGhfYWNjb3VudHNcIjpyPXRoaXMuYWNjb3VudD9bdGhpcy5hY2NvdW50XTpbXTticmVhaztjYXNlXCJldGhfY29pbmJhc2VcIjpyPXRoaXMuYWNjb3VudDticmVhaztjYXNlXCJuZXRfdmVyc2lvblwiOnI9dGhpcy5uZXR3b3JrfHwodGhpcy5vcHRpb25zLkFQSV9LRVkuc3RhcnRzV2l0aChcInBrX2xpdmVcIik/MTo0KTticmVhaztjYXNlXCJldGhfdW5pbnN0YWxsRmlsdGVyXCI6cj0hMDticmVhaztkZWZhdWx0OnI9e319cmV0dXJue2lkOmUuaWQsanNvbnJwYzplLmpzb25ycGMscmVzdWx0OnJ9fXRoaXMuc2VuZEFzeW5jKGUsdCl9fSx7a2V5OlwiZW5xdWV1ZVwiLHZhbHVlOmZ1bmN0aW9uKGUpe3RoaXMucXVldWUucHVzaChlKSx0aGlzLm92ZXJsYXlSZWFkeSYmdGhpcy5kZXF1ZXVlKCl9fSx7a2V5OlwiZGVxdWV1ZVwiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGU9KDAsYS5kZWZhdWx0KShvLmRlZmF1bHQubWFyayhmdW5jdGlvbiBlKCl7dmFyIHQscixuLGE9dGhpcztyZXR1cm4gby5kZWZhdWx0LndyYXAoZnVuY3Rpb24oZSl7Zm9yKDs7KXN3aXRjaChlLnByZXY9ZS5uZXh0KXtjYXNlIDA6aWYoMCE9PXRoaXMucXVldWUubGVuZ3RoKXtlLm5leHQ9MjticmVha31yZXR1cm4gZS5hYnJ1cHQoXCJyZXR1cm5cIik7Y2FzZSAyOmlmKCEodD10aGlzLnF1ZXVlLnNoaWZ0KCkpKXtlLm5leHQ9MTE7YnJlYWt9cmV0dXJuIHI9dC5wYXlsb2FkLG49dC5jYixyLmlkPSgwLGwucmFuZG9tSWQpKCksZS5uZXh0PTksdGhpcy5wb3N0TWVzc2FnZSh0LmlzTmF0aXZlP3RoaXMucG9zdE1lc3NhZ2VzLkZPUlRNQVRJQ19IQU5ETEVfRk9SVE1BVElDX1JFUVVFU1Q6dGhpcy5wb3N0TWVzc2FnZXMuRk9SVE1BVElDX0hBTkRMRV9SRVFVRVNULHQucGF5bG9hZCk7Y2FzZSA5OnIuYmF0Y2gmJnIuYmF0Y2gubGVuZ3RoPjA/KHIuYmF0Y2guZm9yRWFjaChmdW5jdGlvbihlKXthLnJlcXVlc3RzW2UuaWRdPXtwYXJlbnRJZDpyLmlkLHBheWxvYWQ6ZSxjYjpmdW5jdGlvbihlLHQpe3ZhciBuPWEucmVxdWVzdHNbci5pZF0uYmF0Y2hSZXNwb25zZTtpZihlJiZlLnJlc3BvbnNlJiYhKDAsbC5maW5kRXhpc3RpbmdSZXNwb25zZSkobixlLnJlc3BvbnNlLmlkKSl0aHJvdyBuLnB1c2goe2pzb25ycGM6XCIyLjBcIixpZDplLnJlc3BvbnNlLmlkLGVycm9yOntjb2RlOmUucmVzcG9uc2UuY29kZSxtZXNzYWdlOmUucmVzcG9uc2UubWVzc2FnZX19KSxhLnJlcXVlc3RzW3IuaWRdLmNiKG51bGwsbiksZS5yZXNwb25zZTtpZih0JiZ0LnJlc3VsdCYmISgwLGwuZmluZEV4aXN0aW5nUmVzcG9uc2UpKG4sdC5pZCkpcmV0dXJuIG4ucHVzaCh0KTt0aHJvdyBuZXcgRXJyb3IoXCJGb3J0bWF0aWM6IHVuZXhwZWN0ZWQgY2FsbGJhY2sgYmVoYXZpb3JcIil9fX0pLHRoaXMucmVxdWVzdHNbci5pZF09e3BheWxvYWQ6cixjYjpuLGJhdGNoUmVzcG9uc2U6W119KTp0aGlzLnJlcXVlc3RzW3IuaWRdPXtwYXlsb2FkOnIsY2I6bn0sdGhpcy5kZXF1ZXVlKCk7Y2FzZSAxMTpjYXNlXCJlbmRcIjpyZXR1cm4gZS5zdG9wKCl9fSxlLHRoaXMpfSkpO3JldHVybiBmdW5jdGlvbigpe3JldHVybiBlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCl9LHtrZXk6XCJwb3N0TWVzc2FnZVwiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGU9KDAsYS5kZWZhdWx0KShvLmRlZmF1bHQubWFyayhmdW5jdGlvbiBlKHQscil7dmFyIG47cmV0dXJuIG8uZGVmYXVsdC53cmFwKGZ1bmN0aW9uKGUpe2Zvcig7Oylzd2l0Y2goZS5wcmV2PWUubmV4dCl7Y2FzZSAwOnJldHVybiBlLm5leHQ9Mix0aGlzLm92ZXJsYXk7Y2FzZSAyOmlmKCEobj1lLnNlbnQpLmlmcmFtZS5jb250ZW50V2luZG93KXtlLm5leHQ9NzticmVha31uLmlmcmFtZS5jb250ZW50V2luZG93LnBvc3RNZXNzYWdlKHttc2dUeXBlOnQscGF5bG9hZDpyfSxcIipcIiksZS5uZXh0PTg7YnJlYWs7Y2FzZSA3OnRocm93IG5ldyBFcnJvcihcIkZvcnRtYXRpYzogTW9kYWwgaXMgbm90IHJlYWR5LlwiKTtjYXNlIDg6Y2FzZVwiZW5kXCI6cmV0dXJuIGUuc3RvcCgpfX0sZSx0aGlzKX0pKTtyZXR1cm4gZnVuY3Rpb24odCxyKXtyZXR1cm4gZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpfSx7a2V5OlwiZW5hYmxlXCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gbC5zZW5kQXN5bmNXcmFwcGVyLmNhbGwodGhpcyxcImV0aF9hY2NvdW50c1wiKX19LHtrZXk6XCJsaXN0ZW5NZXNzYWdlXCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwibWVzc2FnZVwiLGZ1bmN0aW9uKHQpe2lmKHQub3JpZ2luPT09ZS5mb3J0bWF0aWNDbGllbnQpe3ZhciByPXQuZGF0YS5yZXNwb25zZT90LmRhdGEucmVzcG9uc2UuaWQ6bnVsbDtzd2l0Y2godC5kYXRhLm1zZ1R5cGUpe2Nhc2UgZS5wb3N0TWVzc2FnZXMuRk9SVE1BVElDX09WRVJMQVlfUkVBRFk6ZS5vdmVybGF5UmVhZHk9ITAsZS5kZXF1ZXVlKCk7YnJlYWs7Y2FzZSBlLnBvc3RNZXNzYWdlcy5GT1JUTUFUSUNfSEFORExFX1JFU1BPTlNFOnRyeXtlLnJlcXVlc3RzW3JdLmNiKG51bGwsdC5kYXRhLnJlc3BvbnNlKTt2YXIgbj1lLnJlcXVlc3RzW3JdLnBhcmVudElkO24mJmUucmVxdWVzdHNbbl0ucGF5bG9hZC5iYXRjaC5sZW5ndGg9PT1lLnJlcXVlc3RzW25dLmJhdGNoUmVzcG9uc2UubGVuZ3RoJiZlLnJlcXVlc3RzW25dLmNiKG51bGwsZS5yZXF1ZXN0c1tuXS5iYXRjaFJlc3BvbnNlKSxcImV0aF9hY2NvdW50c1wiPT09ZS5yZXF1ZXN0c1tyXS5wYXlsb2FkLm1ldGhvZD9lLmFjY291bnQ9dC5kYXRhLnJlc3BvbnNlLnJlc3VsdFswXTpcImV0aF9jb2luYmFzZVwiPT09ZS5yZXF1ZXN0c1tyXS5wYXlsb2FkLm1ldGhvZD9lLmFjY291bnQ9dC5kYXRhLnJlc3BvbnNlLnJlc3VsdDpcIm5ldF92ZXJzaW9uXCI9PT1lLnJlcXVlc3RzW3JdLnBheWxvYWQubWV0aG9kJiYoZS5uZXR3b3JrPXQuZGF0YS5yZXNwb25zZS5yZXN1bHQpfWNhdGNoKGUpe31lLmlzTG9nZ2VkSW49ITAsZS5kZXF1ZXVlKCk7YnJlYWs7Y2FzZSBlLnBvc3RNZXNzYWdlcy5GT1JUTUFUSUNfSElERV9PVkVSTEFZOmUuaGlkZU92ZXJsYXkoKTticmVhaztjYXNlIGUucG9zdE1lc3NhZ2VzLkZPUlRNQVRJQ19TSE9XX09WRVJMQVk6ZS5zaG93T3ZlcmxheSgpO2JyZWFrO2Nhc2UgZS5wb3N0TWVzc2FnZXMuRk9SVE1BVElDX1VTRVJfTE9HT1VUOmUuYWNjb3VudD1udWxsLGUubmV0d29yaz1udWxsLGUuaXNMb2dnZWRJbj0hMTticmVhaztjYXNlIGUucG9zdE1lc3NhZ2VzLkZPUlRNQVRJQ19VTkFVVEhPUklaRURfQVBJX0tFWTp0aHJvdyBlLm92ZXJsYXlSZWFkeT0hMSxuZXcgRXJyb3IoXCJHaXZlbiBBUEkga2V5IGlzIG5vdCBhdXRob3JpemVkIHRvIGFjY2VzcyB0aGUgcmVzb3VyY2UuXCIpO2Nhc2UgZS5wb3N0TWVzc2FnZXMuRk9SVE1BVElDX1VTRVJfREVOSUVEOmlmKHIpe3ZhciBvPXQuZGF0YS5yZXNwb25zZSYmdC5kYXRhLnJlc3BvbnNlLm1lc3NhZ2U/dC5kYXRhLnJlc3BvbnNlLm1lc3NhZ2U6XCJGb3J0bWF0aWM6IE1vZGFsIHdhcyBjbG9zZWQgd2l0aG91dCBleGVjdXRpbmcgYWN0aW9uIVwiLGE9dC5kYXRhLnJlc3BvbnNlJiZ0LmRhdGEucmVzcG9uc2UuY29kZT90LmRhdGEucmVzcG9uc2UuY29kZToxO2UucmVxdWVzdHNbcl0uY2Ioe21lc3NhZ2U6byxjb2RlOmEscmVzcG9uc2U6dC5kYXRhLnJlc3BvbnNlfSl9ZWxzZSBlLnF1ZXVlLmZvckVhY2goZnVuY3Rpb24oZSl7cmV0dXJuIGUuY2Ioe21lc3NhZ2U6XCJGb3J0bWF0aWM6IE1vZGFsIHdhcyBjbG9zZWQgd2l0aG91dCBleGVjdXRpbmcgYWN0aW9uIVwiLGNvZGU6MX0pfSk7ZS5kZXF1ZXVlKCl9fX0pfX1dKSxlfSgpO3QuZGVmYXVsdD1mfSxmdW5jdGlvbihlLHQscil7ZS5leHBvcnRzPXIoNyl9LGZ1bmN0aW9uKGUsdCxyKXt2YXIgbj1mdW5jdGlvbigpe3JldHVybiB0aGlzfHxcIm9iamVjdFwiPT10eXBlb2Ygc2VsZiYmc2VsZn0oKXx8RnVuY3Rpb24oXCJyZXR1cm4gdGhpc1wiKSgpLG89bi5yZWdlbmVyYXRvclJ1bnRpbWUmJk9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKG4pLmluZGV4T2YoXCJyZWdlbmVyYXRvclJ1bnRpbWVcIik+PTAsYT1vJiZuLnJlZ2VuZXJhdG9yUnVudGltZTtpZihuLnJlZ2VuZXJhdG9yUnVudGltZT12b2lkIDAsZS5leHBvcnRzPXIoOCksbyluLnJlZ2VuZXJhdG9yUnVudGltZT1hO2Vsc2UgdHJ5e2RlbGV0ZSBuLnJlZ2VuZXJhdG9yUnVudGltZX1jYXRjaChlKXtuLnJlZ2VuZXJhdG9yUnVudGltZT12b2lkIDB9fSxmdW5jdGlvbihlLHQpeyFmdW5jdGlvbih0KXtcInVzZSBzdHJpY3RcIjt2YXIgcixuPU9iamVjdC5wcm90b3R5cGUsbz1uLmhhc093blByb3BlcnR5LGE9XCJmdW5jdGlvblwiPT10eXBlb2YgU3ltYm9sP1N5bWJvbDp7fSxpPWEuaXRlcmF0b3J8fFwiQEBpdGVyYXRvclwiLHM9YS5hc3luY0l0ZXJhdG9yfHxcIkBAYXN5bmNJdGVyYXRvclwiLGM9YS50b1N0cmluZ1RhZ3x8XCJAQHRvU3RyaW5nVGFnXCIsdT1cIm9iamVjdFwiPT10eXBlb2YgZSxsPXQucmVnZW5lcmF0b3JSdW50aW1lO2lmKGwpdSYmKGUuZXhwb3J0cz1sKTtlbHNleyhsPXQucmVnZW5lcmF0b3JSdW50aW1lPXU/ZS5leHBvcnRzOnt9KS53cmFwPV87dmFyIGY9XCJzdXNwZW5kZWRTdGFydFwiLGQ9XCJzdXNwZW5kZWRZaWVsZFwiLGg9XCJleGVjdXRpbmdcIixwPVwiY29tcGxldGVkXCIsbT17fSx5PXt9O3lbaV09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc307dmFyIHY9T2JqZWN0LmdldFByb3RvdHlwZU9mLGc9diYmdih2KEwoW10pKSk7ZyYmZyE9PW4mJm8uY2FsbChnLGkpJiYoeT1nKTt2YXIgYj1BLnByb3RvdHlwZT13LnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHkpO1QucHJvdG90eXBlPWIuY29uc3RydWN0b3I9QSxBLmNvbnN0cnVjdG9yPVQsQVtjXT1ULmRpc3BsYXlOYW1lPVwiR2VuZXJhdG9yRnVuY3Rpb25cIixsLmlzR2VuZXJhdG9yRnVuY3Rpb249ZnVuY3Rpb24oZSl7dmFyIHQ9XCJmdW5jdGlvblwiPT10eXBlb2YgZSYmZS5jb25zdHJ1Y3RvcjtyZXR1cm4hIXQmJih0PT09VHx8XCJHZW5lcmF0b3JGdW5jdGlvblwiPT09KHQuZGlzcGxheU5hbWV8fHQubmFtZSkpfSxsLm1hcms9ZnVuY3Rpb24oZSl7cmV0dXJuIE9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YoZSxBKTooZS5fX3Byb3RvX189QSxjIGluIGV8fChlW2NdPVwiR2VuZXJhdG9yRnVuY3Rpb25cIikpLGUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoYiksZX0sbC5hd3JhcD1mdW5jdGlvbihlKXtyZXR1cm57X19hd2FpdDplfX0sTyhSLnByb3RvdHlwZSksUi5wcm90b3R5cGVbc109ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30sbC5Bc3luY0l0ZXJhdG9yPVIsbC5hc3luYz1mdW5jdGlvbihlLHQscixuKXt2YXIgbz1uZXcgUihfKGUsdCxyLG4pKTtyZXR1cm4gbC5pc0dlbmVyYXRvckZ1bmN0aW9uKHQpP286by5uZXh0KCkudGhlbihmdW5jdGlvbihlKXtyZXR1cm4gZS5kb25lP2UudmFsdWU6by5uZXh0KCl9KX0sTyhiKSxiW2NdPVwiR2VuZXJhdG9yXCIsYltpXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSxiLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuXCJbb2JqZWN0IEdlbmVyYXRvcl1cIn0sbC5rZXlzPWZ1bmN0aW9uKGUpe3ZhciB0PVtdO2Zvcih2YXIgciBpbiBlKXQucHVzaChyKTtyZXR1cm4gdC5yZXZlcnNlKCksZnVuY3Rpb24gcigpe2Zvcig7dC5sZW5ndGg7KXt2YXIgbj10LnBvcCgpO2lmKG4gaW4gZSlyZXR1cm4gci52YWx1ZT1uLHIuZG9uZT0hMSxyfXJldHVybiByLmRvbmU9ITAscn19LGwudmFsdWVzPUwsRi5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOkYscmVzZXQ6ZnVuY3Rpb24oZSl7aWYodGhpcy5wcmV2PTAsdGhpcy5uZXh0PTAsdGhpcy5zZW50PXRoaXMuX3NlbnQ9cix0aGlzLmRvbmU9ITEsdGhpcy5kZWxlZ2F0ZT1udWxsLHRoaXMubWV0aG9kPVwibmV4dFwiLHRoaXMuYXJnPXIsdGhpcy50cnlFbnRyaWVzLmZvckVhY2goTSksIWUpZm9yKHZhciB0IGluIHRoaXMpXCJ0XCI9PT10LmNoYXJBdCgwKSYmby5jYWxsKHRoaXMsdCkmJiFpc05hTigrdC5zbGljZSgxKSkmJih0aGlzW3RdPXIpfSxzdG9wOmZ1bmN0aW9uKCl7dGhpcy5kb25lPSEwO3ZhciBlPXRoaXMudHJ5RW50cmllc1swXS5jb21wbGV0aW9uO2lmKFwidGhyb3dcIj09PWUudHlwZSl0aHJvdyBlLmFyZztyZXR1cm4gdGhpcy5ydmFsfSxkaXNwYXRjaEV4Y2VwdGlvbjpmdW5jdGlvbihlKXtpZih0aGlzLmRvbmUpdGhyb3cgZTt2YXIgdD10aGlzO2Z1bmN0aW9uIG4obixvKXtyZXR1cm4gcy50eXBlPVwidGhyb3dcIixzLmFyZz1lLHQubmV4dD1uLG8mJih0Lm1ldGhvZD1cIm5leHRcIix0LmFyZz1yKSwhIW99Zm9yKHZhciBhPXRoaXMudHJ5RW50cmllcy5sZW5ndGgtMTthPj0wOy0tYSl7dmFyIGk9dGhpcy50cnlFbnRyaWVzW2FdLHM9aS5jb21wbGV0aW9uO2lmKFwicm9vdFwiPT09aS50cnlMb2MpcmV0dXJuIG4oXCJlbmRcIik7aWYoaS50cnlMb2M8PXRoaXMucHJldil7dmFyIGM9by5jYWxsKGksXCJjYXRjaExvY1wiKSx1PW8uY2FsbChpLFwiZmluYWxseUxvY1wiKTtpZihjJiZ1KXtpZih0aGlzLnByZXY8aS5jYXRjaExvYylyZXR1cm4gbihpLmNhdGNoTG9jLCEwKTtpZih0aGlzLnByZXY8aS5maW5hbGx5TG9jKXJldHVybiBuKGkuZmluYWxseUxvYyl9ZWxzZSBpZihjKXtpZih0aGlzLnByZXY8aS5jYXRjaExvYylyZXR1cm4gbihpLmNhdGNoTG9jLCEwKX1lbHNle2lmKCF1KXRocm93IG5ldyBFcnJvcihcInRyeSBzdGF0ZW1lbnQgd2l0aG91dCBjYXRjaCBvciBmaW5hbGx5XCIpO2lmKHRoaXMucHJldjxpLmZpbmFsbHlMb2MpcmV0dXJuIG4oaS5maW5hbGx5TG9jKX19fX0sYWJydXB0OmZ1bmN0aW9uKGUsdCl7Zm9yKHZhciByPXRoaXMudHJ5RW50cmllcy5sZW5ndGgtMTtyPj0wOy0tcil7dmFyIG49dGhpcy50cnlFbnRyaWVzW3JdO2lmKG4udHJ5TG9jPD10aGlzLnByZXYmJm8uY2FsbChuLFwiZmluYWxseUxvY1wiKSYmdGhpcy5wcmV2PG4uZmluYWxseUxvYyl7dmFyIGE9bjticmVha319YSYmKFwiYnJlYWtcIj09PWV8fFwiY29udGludWVcIj09PWUpJiZhLnRyeUxvYzw9dCYmdDw9YS5maW5hbGx5TG9jJiYoYT1udWxsKTt2YXIgaT1hP2EuY29tcGxldGlvbjp7fTtyZXR1cm4gaS50eXBlPWUsaS5hcmc9dCxhPyh0aGlzLm1ldGhvZD1cIm5leHRcIix0aGlzLm5leHQ9YS5maW5hbGx5TG9jLG0pOnRoaXMuY29tcGxldGUoaSl9LGNvbXBsZXRlOmZ1bmN0aW9uKGUsdCl7aWYoXCJ0aHJvd1wiPT09ZS50eXBlKXRocm93IGUuYXJnO3JldHVyblwiYnJlYWtcIj09PWUudHlwZXx8XCJjb250aW51ZVwiPT09ZS50eXBlP3RoaXMubmV4dD1lLmFyZzpcInJldHVyblwiPT09ZS50eXBlPyh0aGlzLnJ2YWw9dGhpcy5hcmc9ZS5hcmcsdGhpcy5tZXRob2Q9XCJyZXR1cm5cIix0aGlzLm5leHQ9XCJlbmRcIik6XCJub3JtYWxcIj09PWUudHlwZSYmdCYmKHRoaXMubmV4dD10KSxtfSxmaW5pc2g6ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PXRoaXMudHJ5RW50cmllcy5sZW5ndGgtMTt0Pj0wOy0tdCl7dmFyIHI9dGhpcy50cnlFbnRyaWVzW3RdO2lmKHIuZmluYWxseUxvYz09PWUpcmV0dXJuIHRoaXMuY29tcGxldGUoci5jb21wbGV0aW9uLHIuYWZ0ZXJMb2MpLE0ociksbX19LGNhdGNoOmZ1bmN0aW9uKGUpe2Zvcih2YXIgdD10aGlzLnRyeUVudHJpZXMubGVuZ3RoLTE7dD49MDstLXQpe3ZhciByPXRoaXMudHJ5RW50cmllc1t0XTtpZihyLnRyeUxvYz09PWUpe3ZhciBuPXIuY29tcGxldGlvbjtpZihcInRocm93XCI9PT1uLnR5cGUpe3ZhciBvPW4uYXJnO00ocil9cmV0dXJuIG99fXRocm93IG5ldyBFcnJvcihcImlsbGVnYWwgY2F0Y2ggYXR0ZW1wdFwiKX0sZGVsZWdhdGVZaWVsZDpmdW5jdGlvbihlLHQsbil7cmV0dXJuIHRoaXMuZGVsZWdhdGU9e2l0ZXJhdG9yOkwoZSkscmVzdWx0TmFtZTp0LG5leHRMb2M6bn0sXCJuZXh0XCI9PT10aGlzLm1ldGhvZCYmKHRoaXMuYXJnPXIpLG19fX1mdW5jdGlvbiBfKGUsdCxyLG4pe3ZhciBvPXQmJnQucHJvdG90eXBlIGluc3RhbmNlb2Ygdz90OncsYT1PYmplY3QuY3JlYXRlKG8ucHJvdG90eXBlKSxpPW5ldyBGKG58fFtdKTtyZXR1cm4gYS5faW52b2tlPWZ1bmN0aW9uKGUsdCxyKXt2YXIgbj1mO3JldHVybiBmdW5jdGlvbihvLGEpe2lmKG49PT1oKXRocm93IG5ldyBFcnJvcihcIkdlbmVyYXRvciBpcyBhbHJlYWR5IHJ1bm5pbmdcIik7aWYobj09PXApe2lmKFwidGhyb3dcIj09PW8pdGhyb3cgYTtyZXR1cm4gaygpfWZvcihyLm1ldGhvZD1vLHIuYXJnPWE7Oyl7dmFyIGk9ci5kZWxlZ2F0ZTtpZihpKXt2YXIgcz1JKGkscik7aWYocyl7aWYocz09PW0pY29udGludWU7cmV0dXJuIHN9fWlmKFwibmV4dFwiPT09ci5tZXRob2Qpci5zZW50PXIuX3NlbnQ9ci5hcmc7ZWxzZSBpZihcInRocm93XCI9PT1yLm1ldGhvZCl7aWYobj09PWYpdGhyb3cgbj1wLHIuYXJnO3IuZGlzcGF0Y2hFeGNlcHRpb24oci5hcmcpfWVsc2VcInJldHVyblwiPT09ci5tZXRob2QmJnIuYWJydXB0KFwicmV0dXJuXCIsci5hcmcpO249aDt2YXIgYz1FKGUsdCxyKTtpZihcIm5vcm1hbFwiPT09Yy50eXBlKXtpZihuPXIuZG9uZT9wOmQsYy5hcmc9PT1tKWNvbnRpbnVlO3JldHVybnt2YWx1ZTpjLmFyZyxkb25lOnIuZG9uZX19XCJ0aHJvd1wiPT09Yy50eXBlJiYobj1wLHIubWV0aG9kPVwidGhyb3dcIixyLmFyZz1jLmFyZyl9fX0oZSxyLGkpLGF9ZnVuY3Rpb24gRShlLHQscil7dHJ5e3JldHVybnt0eXBlOlwibm9ybWFsXCIsYXJnOmUuY2FsbCh0LHIpfX1jYXRjaChlKXtyZXR1cm57dHlwZTpcInRocm93XCIsYXJnOmV9fX1mdW5jdGlvbiB3KCl7fWZ1bmN0aW9uIFQoKXt9ZnVuY3Rpb24gQSgpe31mdW5jdGlvbiBPKGUpe1tcIm5leHRcIixcInRocm93XCIsXCJyZXR1cm5cIl0uZm9yRWFjaChmdW5jdGlvbih0KXtlW3RdPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLl9pbnZva2UodCxlKX19KX1mdW5jdGlvbiBSKGUpe3ZhciB0O3RoaXMuX2ludm9rZT1mdW5jdGlvbihyLG4pe2Z1bmN0aW9uIGEoKXtyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24odCxhKXshZnVuY3Rpb24gdChyLG4sYSxpKXt2YXIgcz1FKGVbcl0sZSxuKTtpZihcInRocm93XCIhPT1zLnR5cGUpe3ZhciBjPXMuYXJnLHU9Yy52YWx1ZTtyZXR1cm4gdSYmXCJvYmplY3RcIj09dHlwZW9mIHUmJm8uY2FsbCh1LFwiX19hd2FpdFwiKT9Qcm9taXNlLnJlc29sdmUodS5fX2F3YWl0KS50aGVuKGZ1bmN0aW9uKGUpe3QoXCJuZXh0XCIsZSxhLGkpfSxmdW5jdGlvbihlKXt0KFwidGhyb3dcIixlLGEsaSl9KTpQcm9taXNlLnJlc29sdmUodSkudGhlbihmdW5jdGlvbihlKXtjLnZhbHVlPWUsYShjKX0sZnVuY3Rpb24oZSl7cmV0dXJuIHQoXCJ0aHJvd1wiLGUsYSxpKX0pfWkocy5hcmcpfShyLG4sdCxhKX0pfXJldHVybiB0PXQ/dC50aGVuKGEsYSk6YSgpfX1mdW5jdGlvbiBJKGUsdCl7dmFyIG49ZS5pdGVyYXRvclt0Lm1ldGhvZF07aWYobj09PXIpe2lmKHQuZGVsZWdhdGU9bnVsbCxcInRocm93XCI9PT10Lm1ldGhvZCl7aWYoZS5pdGVyYXRvci5yZXR1cm4mJih0Lm1ldGhvZD1cInJldHVyblwiLHQuYXJnPXIsSShlLHQpLFwidGhyb3dcIj09PXQubWV0aG9kKSlyZXR1cm4gbTt0Lm1ldGhvZD1cInRocm93XCIsdC5hcmc9bmV3IFR5cGVFcnJvcihcIlRoZSBpdGVyYXRvciBkb2VzIG5vdCBwcm92aWRlIGEgJ3Rocm93JyBtZXRob2RcIil9cmV0dXJuIG19dmFyIG89RShuLGUuaXRlcmF0b3IsdC5hcmcpO2lmKFwidGhyb3dcIj09PW8udHlwZSlyZXR1cm4gdC5tZXRob2Q9XCJ0aHJvd1wiLHQuYXJnPW8uYXJnLHQuZGVsZWdhdGU9bnVsbCxtO3ZhciBhPW8uYXJnO3JldHVybiBhP2EuZG9uZT8odFtlLnJlc3VsdE5hbWVdPWEudmFsdWUsdC5uZXh0PWUubmV4dExvYyxcInJldHVyblwiIT09dC5tZXRob2QmJih0Lm1ldGhvZD1cIm5leHRcIix0LmFyZz1yKSx0LmRlbGVnYXRlPW51bGwsbSk6YToodC5tZXRob2Q9XCJ0aHJvd1wiLHQuYXJnPW5ldyBUeXBlRXJyb3IoXCJpdGVyYXRvciByZXN1bHQgaXMgbm90IGFuIG9iamVjdFwiKSx0LmRlbGVnYXRlPW51bGwsbSl9ZnVuY3Rpb24geChlKXt2YXIgdD17dHJ5TG9jOmVbMF19OzEgaW4gZSYmKHQuY2F0Y2hMb2M9ZVsxXSksMiBpbiBlJiYodC5maW5hbGx5TG9jPWVbMl0sdC5hZnRlckxvYz1lWzNdKSx0aGlzLnRyeUVudHJpZXMucHVzaCh0KX1mdW5jdGlvbiBNKGUpe3ZhciB0PWUuY29tcGxldGlvbnx8e307dC50eXBlPVwibm9ybWFsXCIsZGVsZXRlIHQuYXJnLGUuY29tcGxldGlvbj10fWZ1bmN0aW9uIEYoZSl7dGhpcy50cnlFbnRyaWVzPVt7dHJ5TG9jOlwicm9vdFwifV0sZS5mb3JFYWNoKHgsdGhpcyksdGhpcy5yZXNldCghMCl9ZnVuY3Rpb24gTChlKXtpZihlKXt2YXIgdD1lW2ldO2lmKHQpcmV0dXJuIHQuY2FsbChlKTtpZihcImZ1bmN0aW9uXCI9PXR5cGVvZiBlLm5leHQpcmV0dXJuIGU7aWYoIWlzTmFOKGUubGVuZ3RoKSl7dmFyIG49LTEsYT1mdW5jdGlvbiB0KCl7Zm9yKDsrK248ZS5sZW5ndGg7KWlmKG8uY2FsbChlLG4pKXJldHVybiB0LnZhbHVlPWVbbl0sdC5kb25lPSExLHQ7cmV0dXJuIHQudmFsdWU9cix0LmRvbmU9ITAsdH07cmV0dXJuIGEubmV4dD1hfX1yZXR1cm57bmV4dDprfX1mdW5jdGlvbiBrKCl7cmV0dXJue3ZhbHVlOnIsZG9uZTohMH19fShmdW5jdGlvbigpe3JldHVybiB0aGlzfHxcIm9iamVjdFwiPT10eXBlb2Ygc2VsZiYmc2VsZn0oKXx8RnVuY3Rpb24oXCJyZXR1cm4gdGhpc1wiKSgpKX0sZnVuY3Rpb24oZSx0KXtmdW5jdGlvbiByKGUsdCxyLG4sbyxhLGkpe3RyeXt2YXIgcz1lW2FdKGkpLGM9cy52YWx1ZX1jYXRjaChlKXtyZXR1cm4gdm9pZCByKGUpfXMuZG9uZT90KGMpOlByb21pc2UucmVzb2x2ZShjKS50aGVuKG4sbyl9ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbigpe3ZhciB0PXRoaXMsbj1hcmd1bWVudHM7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKG8sYSl7dmFyIGk9ZS5hcHBseSh0LG4pO2Z1bmN0aW9uIHMoZSl7cihpLG8sYSxzLGMsXCJuZXh0XCIsZSl9ZnVuY3Rpb24gYyhlKXtyKGksbyxhLHMsYyxcInRocm93XCIsZSl9cyh2b2lkIDApfSl9fX0sZnVuY3Rpb24oZSx0KXtmdW5jdGlvbiByKGUsdCl7Zm9yKHZhciByPTA7cjx0Lmxlbmd0aDtyKyspe3ZhciBuPXRbcl07bi5lbnVtZXJhYmxlPW4uZW51bWVyYWJsZXx8ITEsbi5jb25maWd1cmFibGU9ITAsXCJ2YWx1ZVwiaW4gbiYmKG4ud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLG4ua2V5LG4pfX1lLmV4cG9ydHM9ZnVuY3Rpb24oZSx0LG4pe3JldHVybiB0JiZyKGUucHJvdG90eXBlLHQpLG4mJnIoZSxuKSxlfX0sZnVuY3Rpb24oZSl7ZS5leHBvcnRzPXtuYW1lOlwiZm9ydG1hdGljXCIsdmVyc2lvbjpcIjEuMS4zXCIsZGVzY3JpcHRpb246XCJGb3J0bWF0aWMgSmF2YXNjcmlwdCBTREtcIixtYWluOlwibGliL2ZvcnRtYXRpYy5qc1wiLHNjcmlwdHM6e2J1aWxkOlwiV0VCUEFDS19FTlY9cHJvZHVjdGlvbiB3ZWJwYWNrXCIsXCJidWlsZDpkZXZcIjpcIldFQlBBQ0tfRU5WPWRldmVsb3BtZW50IEJBQkVMX0VOVj1kZXZlbG9wbWVudCB3ZWJwYWNrIC0tcHJvZ3Jlc3MgLS1jb2xvcnMgLS13YXRjaFwiLHRlc3Q6XCJueWMgLS1yZXBvcnRlcj1sY292IC0tcmVwb3J0ZXI9dGV4dC1zdW1tYXJ5IGF2YVwifSxhdXRob3I6XCJGb3J0bWF0aWMgPHRlYW1AZm9ydG1hdGljLmNvbT4gKGh0dHBzOi8vZm9ydG1hdGljLmNvbS8pXCIsbGljZW5zZTpcIk1JVFwiLHJlcG9zaXRvcnk6e3R5cGU6XCJnaXRcIix1cmw6XCJodHRwczovL2dpdGh1Yi5jb20vZm9ydG1hdGljL2ZvcnRtYXRpYy1qc1wifSxrZXl3b3JkczpbXCJBdXRoXCIsXCJMb2dpblwiLFwiV2ViM1wiLFwiQ3J5cHRvXCIsXCJFdGhlcmV1bVwiLFwiTWV0YU1hc2tcIixcIldhbGxldFwiLFwiQmxvY2tjaGFpblwiLFwiRGFwcFwiXSxob21lcGFnZTpcImh0dHBzOi8vd3d3LmZvcnRtYXRpYy5jb21cIixhdmE6e3JlcXVpcmU6W1wiQGJhYmVsL3JlZ2lzdGVyXCJdLGZpbGVzOltcInRlc3QvKiovKi5zcGVjLmpzXCJdLGJhYmVsOnt0ZXN0T3B0aW9uczp7cHJlc2V0czpbXCJAYmFiZWwvZW52XCJdLHBsdWdpbnM6W1wiQGJhYmVsL3BsdWdpbi1wcm9wb3NhbC1mdW5jdGlvbi1iaW5kXCIsXCJAYmFiZWwvcGx1Z2luLXRyYW5zZm9ybS1ydW50aW1lXCJdfX0sdmVyYm9zZTohMH0sbnljOnthbGw6ITEsXCJjaGVjay1jb3ZlcmFnZVwiOiEwLFwicGVyLWZpbGVcIjohMCxsaW5lczo4MCxzdGF0ZW1lbnRzOjgwLGZ1bmN0aW9uczo4MCxicmFuY2hlczo4MCxpbmNsdWRlOltcInNyYy8qKi8qLmpzXCJdLGV4Y2x1ZGU6W1wiKi9zdHlsZS5qc1wiXSxyZXF1aXJlOltdLHJlcG9ydGVyOltcImh0bWxcIixcImxjb3ZcIl19LGRlcGVuZGVuY2llczp7XCJAYmFiZWwvcnVudGltZVwiOlwiNy4zLjRcIn0sZGV2RGVwZW5kZW5jaWVzOntcIkBiYWJlbC9jb3JlXCI6XCI3LjMuNFwiLFwiQGJhYmVsL3BsdWdpbi1wcm9wb3NhbC1mdW5jdGlvbi1iaW5kXCI6XCI3LjIuMFwiLFwiQGJhYmVsL3BsdWdpbi10cmFuc2Zvcm0tbW9kdWxlcy1jb21tb25qc1wiOlwiNy4yLjBcIixcIkBiYWJlbC9wbHVnaW4tdHJhbnNmb3JtLXJ1bnRpbWVcIjpcIjcuMy40XCIsXCJAYmFiZWwvcHJlc2V0LWVudlwiOlwiNy4zLjRcIixcIkBiYWJlbC9yZWdpc3RlclwiOlwiNy4wLjBcIixhdmE6XCIyLjIuMFwiLFwiYmFiZWwtZXNsaW50XCI6XCIxMC4wLjFcIixcImJhYmVsLWxvYWRlclwiOlwiOC4wLjVcIixlc2xpbnQ6XCI1LjkuMFwiLGxvZGFzaDpcIjQuMTcuMTFcIixueWM6XCIxMy4xLjBcIixzaW5vbjpcIjcuMS4xXCIsd2VicGFjazpcIjQuMjYuMVwiLFwid2VicGFjay1jbGlcIjpcIjMuMS4yXCJ9fX0sZnVuY3Rpb24oZSx0LHIpe1widXNlIHN0cmljdFwiO3QuY3NzPVwiXFxuICAuZm9ydG1hdGljLWlmcmFtZSB7XFxuICAgIGRpc3BsYXk6IG5vbmU7XFxuICAgIHBvc2l0aW9uOiBmaXhlZDtcXG4gICAgdG9wOiAwO1xcbiAgICByaWdodDogMDtcXG4gICAgd2lkdGg6IDEwMCU7XFxuICAgIGhlaWdodDogMTAwJTtcXG4gICAgYm9yZGVyOiBub25lO1xcbiAgICBib3JkZXItcmFkaXVzOiAwO1xcbiAgICB6LWluZGV4OiAyMTQ3NDgzNjQ3O1xcbiAgfVxcblwifV0pOyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/fortmatic/lib/fortmatic.js\n");
/***/ })
}]);