blinx
Version:
The Scalable JavaScript Application Framework
1 lines • 101 kB
JavaScript
!function(n,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.Truss=t():n.Truss=t()}(this,function(){return function(n){function t(r){if(e[r])return e[r].exports;var i=e[r]={i:r,l:!1,exports:{}};return n[r].call(i.exports,i,i.exports,t),i.l=!0,i.exports}var e={};return t.m=n,t.c=e,t.d=function(n,e,r){t.o(n,e)||Object.defineProperty(n,e,{configurable:!1,enumerable:!0,get:r})},t.n=function(n){var e=n&&n.__esModule?function(){return n.default}:function(){return n};return t.d(e,"a",e),e},t.o=function(n,t){return Object.prototype.hasOwnProperty.call(n,t)},t.p="",t(t.s=1)}([function(n,t,e){var r=e(2).runInContext();n.exports=e(5)(r,r)},function(n,t,e){"use strict";function r(n,t){for(var e=-1,r=n.length;++e<r&&t.indexOf(n.charAt(e))>-1;);return e}function i(n,t){for(var e=n.length;e--&&t.indexOf(n.charAt(e))>-1;);return e}function u(n,t){if(!(n instanceof t))throw new TypeError("Cannot call a class as a function")}function o(n,t){if(!(n instanceof t))throw new TypeError("Cannot call a class as a function")}function a(n,t){if(!n)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?n:t}function f(n,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);n.prototype=Object.create(t&&t.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(n,t):n.__proto__=t)}function c(n){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:window;if(Array.isArray(n)){var e=[];return n.forEach(function(n){e.push(c(n))}),e}var r=void 0;return r="string"==typeof n?v.findInstance(n):n.meta?v.findInstance(n.meta.id):v.findInstance(null,n.name),r.forEach(function(n){n[P.MODULE_EVENTS.destroy]&&n[P.MODULE_EVENTS.destroy]();var e=t.document.querySelector("#"+n.getUniqueId());if(e&&(e.remove(),e=null),n.getAllSubscriptions().forEach(function(t){n.unsubscribe(t.eventName,t.callback)}),n.meta.children&&n.meta.children.length){var r=n.meta.children.map(function(n){return n.pointer});n.meta.children=[],r.forEach(function(n){c(n)})}v.deleteInstance(n.meta.id)}),!0}function l(n,t){if(n=B.merge({},n),d.configValidator(n)){v.filter(function(t){return t.instanceConfig.container===n.instanceConfig.container}).forEach(function(n){c(n)});var e=[],r=[];return Z.call(this,n.moduleName,n,n.module,n.instanceConfig,r,t),K.call(this,r,e),new Promise(function(n,t){Promise.all(e).then(n).catch(t)})}}function s(n){b.push(n)}Object.defineProperty(t,"__esModule",{value:!0});var p="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(n){return typeof n}:function(n){return n&&"function"==typeof Symbol&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},h=-1,d={getNextUniqueId:function(){return"blinx-wrapper-"+ ++h},pick:function(n,t){var e={};return t.forEach(function(t){e[t]=n[t]}),e},length:function(n){return Array.isArray(n)?n.length:"object"===(void 0===n?"undefined":p(n))?Object.keys(n).length:"string"==typeof n?n.length:0},trim:function(n,t){return n.slice(r(n,t),i(n,t)+1)},clearSlashes:function(n){return this.trim(n,"/")},partial:function(n){var t=Array.prototype.slice,e=t.call(arguments,1);return function(){return n.apply(this,e.concat(t.call(arguments,0)))}},getCSSSelector:function(n,t){try{for(var e=""+n.instanceConfig.container,r=n.meta.parent&&n.meta.parent.pointer?n.meta.parent.pointer:void 0;r;)e=r.instanceConfig.container+" "+e,r=r.meta.parent&&r.meta.parent.pointer?r.meta.parent.pointer:void 0;return e}catch(n){return""}},configValidator:function(n){var t=!0;return n||(console.error("Config is mandatory to create instance of any module."),t=!1),n.moduleName||(console.error("moduleName property on config is require field to create instance of any module."),t=!1),"string"!=typeof n.moduleName&&(console.error("moduleName property on config should be string."),t=!1),n.module&&"object"===p(n.module)||(console.error("module property on config is mandatory and should be object"),t=!1),(!n.instanceConfig||n.instanceConfig&&!n.instanceConfig.container)&&(console.error("instanceConfig property and instanceConfig.container is mandatory"),t=!1),t||console.dirxml(n),t}},g=Object.assign||function(n){for(var t=1;arguments.length>t;t++){var e=arguments[t];for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r])}return n},v=g([],{insertInstance:function(n){this.push(n)},deleteInstance:function(n){for(var t=this.length-1;t>=0;t--)if(this[t].meta.id===n){this.splice(t,1);break}},findInstance:function(n,t){return n?this.filter(function(t){if(t.meta.id===n)return t}):t?this.filter(function(n){if(n.name===t)return n}):[]}}),y={},_={store:[]},b=[],m=function(){function n(n,t){for(var e=0;t.length>e;e++){var r=t[e];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(n,r.key,r)}}return function(t,e,r){return e&&n(t.prototype,e),r&&n(t,r),t}}(),x=function(n,t){console.group("Event Subscribed"),console.info(n),console.dirxml(t),console.groupEnd()},E=function(n,t){console.group("Event Published"),console.info(n),console.dirxml(t),console.groupEnd()},j=function(n,t){console.group("Event UnSubscribed"),console.info(n),console.dirxml(t),console.groupEnd()},A=function(n){return n&&n.lifeCycleFlags&&1==n.lifeCycleFlags.rendered},w=function(n,t){return n&&n.instanceConfig&&n.instanceConfig.initOn&&n.instanceConfig.initOn.eventName==t},C=function(n){return n&&"PUBSUB"==n.getInstanceName()},O=function(){function n(){u(this,n)}return m(n,[{key:"subscribe",value:function(n){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:n.eventName;y[t]||(y[t]=[]);var e=d.pick(n,["callback","context","eventSubscriber","eventPublisher","once","type"]);e.moduleContext=this,y[t].push(e),x(t,n)}},{key:"publish",value:function(n,t){var e="";3===arguments.length?(e=arguments[0]||"",n=arguments[1],t=arguments[2]):e=d.getCSSSelector(this);var r=y[n];if(E(n,{eventName:n,message:t,publisher:e,subscription:r}),r){r.filter(function(n){if("RE_PLAY"===n.type)return n}).length&&_.store.push({eventName:n,message:t,publisher:e}),r&&r.length&&r.forEach(function(r){var i=r.callback,u=r.context,o=r.once,a=r.moduleContext,f=!1;if(!i||"function"!=typeof i)return void console.error("The callback for the event is invalid");if(r.eventPublisher){if(RegExp(r.eventPublisher+"$").test(e))f=!0;else{for(var c=e.split(" "),l=r.eventPublisher.split(" "),s=c.length,p=l.length;c.length&&l.length;)s=c.length,p=l.length,c[s-1]===l[p-1]?(c.pop(),l.pop()):c.pop();l.length||(f=!0)}}if(!r.eventPublisher||f){var h=t;(A(a)||w(a,n)||C(a)||"KEEP_ON"==r.type)&&i.call(u||null,h),o&&(y[n]=y[n].filter(function(n){return n.eventSubscriber!==r.eventSubscriber&&n.eventName!==r.eventName}))}})}}},{key:"unsubscribe",value:function(n,t,e){var r=y[t];if(r){var i=r.filter(function(n){if("RE_PLAY"===n.type)return n});y[t]=r.filter(function(t){return!(t.callback===e&&t.eventSubscriber===n)}),j(t,r),i.length&&(y[t].length||(_.store=_.store.filter(function(n){if(n.eventName!==t)return n})))}}},{key:"getInstanceName",value:function(){return"PUBSUB"}}]),n}(),S=O,I=e(0),R=(e.n(I),Object.assign||function(n){for(var t=1;arguments.length>t;t++){var e=arguments[t];for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r])}return n}),k="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(n){return typeof n}:function(n){return n&&"function"==typeof Symbol&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},W=function n(t,e,r){null===t&&(t=Function.prototype);var i=Object.getOwnPropertyDescriptor(t,e);if(void 0===i){var u=Object.getPrototypeOf(t);return null===u?void 0:n(u,e,r)}if("value"in i)return i.value;var o=i.get;if(void 0!==o)return o.call(r)},N=function(){function n(n,t){for(var e=0;t.length>e;e++){var r=t[e];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(n,r.key,r)}}return function(t,e,r){return e&&n(t.prototype,e),r&&n(t,r),t}}(),L=function(){var n=new WeakMap;return function(t){function e(t,r,i,u,f,c){o(this,e);var s=a(this,(e.__proto__||Object.getPrototypeOf(e)).call(this));s.moduleName=r,s.name=t,s.lifeCycleFlags=R({},i),s.instanceConfig=u,s.modulePlaceholders=s.instanceConfig.placeholders,s.createChildInstance=l.bind(s),s.meta=c;for(var p in f)s[p]=f[p];return n.set(s,{moduleSubscriptions:[],uniqueId:c.id}),b.forEach(function(n){R(s,n(s))}),s.$_observerFns=[],s.observe_For&&s.observe_For.forEach(function(n){if(!s[n]||"function"!=typeof s[n])return void console.error("{fnName} is not available over module. Can be observed.");var t={fn:s[n],deps:e.getDependencies(s[n]+"")};s.$_observerFns.push(t)}),s._=new Proxy({},s.$proxyHandler()),s}return f(e,t),N(e,[{key:"$proxyHandler",value:function(){var n=this,t=function(){setTimeout(function(){n.$_observerFns.forEach(function(t){if(Array.isArray(t.deps)){var e=path.split("=");t.deps.find(function(n){var t=n.split(".");if(I.isEqual(t,e))return!0;if(t.length>e.length){var r=e.length-1;if(I.isEqual(e[r],t[r]))return!0}return e.length>t.length?void 0:e.find(function(n,e){return t[e]!==n})})&&t.fn.call(n)}else t.fn.call(n)})})};return{get:function(n,t,r){try{return e.isObject(n[t])&&"__value"in n[t]?n[t].__value:n[t]}catch(n){return}},set:function(r,i,u){if(Array.isArray(r)&&"length"===i)return r.length=u,r;var o=void 0;return"__path"===i||"__value"===i?(r[i]=u,r):(o=r.__path?r.__path+"="+i:i,r[i]=e.isObject(u)?new Proxy(u,n.$proxyHandler()):{__value:u},Object.defineProperty(r[i],"__path",{enumerable:!1,value:o}),t(),r)},deleteProperty:function(n,r){var i=void 0;return(e.isObject(n)||Array.isArray(n))&&(i=delete n[r]),t(),i},has:function(n,t){try{return(e.isObject(n)||Array.isArray(n))&&n[t]}catch(n){return!1}}}}}],[{key:"isObject",value:function(n){return null!=n&&"object"===(void 0===n?"undefined":k(n))}},{key:"getDependencies",value:function(n){if(n.match(/\._[^.]/g))return"*";var t=n.match(/\._\.((\S)*[a-zA-Z0-9_$])/g);return t&&0!==t.length?(t=t.map(function(n){var t=n.split("._.");return t[1]||t[0]}),t.find(function(n){return n.startsWith("._[")})?"*":t=t.map(function(n){return n.split("[")[0]})):"*"}}]),N(e,[{key:"render",value:function(n){var t=this.getUniqueId(),e=n||this.instanceConfig.placeholders;this.template&&(document.querySelector("#"+t).innerHTML=this.template(e))}},{key:"getAllSubscriptions",value:function(){return n.get(this).moduleSubscriptions}},{key:"getUniqueId",value:function(){return n.get(this).uniqueId}},{key:"getParentInstanceId",value:function(){return this.meta.parent?this.meta.parent.id:""}},{key:"getModuleContainer",value:function(){return"#"+this.getUniqueId()}},{key:"getModuleName",value:function(){return this.moduleName}},{key:"getInstanceConfig",value:function(){return this.instanceConfig.placeholders}},{key:"getCSSSelector",value:function(){return d.getCSSSelector(this,v)}},{key:"destroy",value:function(){}},{key:"subscribe",value:function(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:t.eventName;t.eventSubscriber=this.getModuleContainer(),n.get(this).moduleSubscriptions.push(t),W(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"subscribe",this).call(this,t,r)}},{key:"publish",value:function(n,t){W(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"publish",this).call(this,n,t)}},{key:"dequeueEvents",value:function(){var n=this.getAllSubscriptions();_.store.forEach(function(t){n.filter(function(n){if(t.eventName===n.eventName&&"RE_PLAY"===n.type)return n}).forEach(function(n){n.callback&&n.callback.call(n.context?n.context:null,t.message)})})}},{key:"unsubscribe",value:function(n,t){"object"===(void 0===n?"undefined":k(n))&&(t=n.callback,n=n.eventName),W(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"unsubscribe",this).call(this,this.getModuleContainer(),n,t)}},{key:"getInstanceName",value:function(){return"MODULE"}}],[{key:"createModuleArena",value:function(n,t){var e="";return e=n.instanceConfig.moduleClassName?n.instanceConfig.theme?n.instanceConfig.moduleClassName+"-"+n.instanceConfig.theme:n.instanceConfig.moduleClassName+"-default":n.instanceConfig.theme?n.moduleName+"-"+n.instanceConfig.theme:n.moduleName+"-default","string"!=typeof t?void(document.querySelector(n.instanceConfig.container).innerHTML='<div id="'+n.getUniqueId()+'" class="'+e+' play-arena"></div>'):(""===t.trim()&&(t='<div id="'+n.getUniqueId()+'"></div>'),t)}}]),e}(S)}(),T=L,P={EVENT_ENUM:{keepOn:"KEEP_ON",replay:"RE_PLAY",playAfterRender:"PLAY_AFTER_RENDER"},MODULE_EVENTS:{resolveRenderOn:"resolveRenderOn",render:"render",onRenderComplete:"onRenderComplete",onStatusChange:"__onStatusChange",destroy:"destroy"},onStatusChange_EVENTS:{onCreate:"LIFECYCLE:CREATED",keepOnReplaySubscribed:"LIFECYCLE:KEEP_ON_&_REPLAY_SUBSCRIBED",initOnSubscribed:"LIFECYCLE:INIT_ON_SUBSCRIBED",resolveRenderOnCalled:"LIFECYCLE:RESOLVE_RENDER_ON_CALLED",listensToPlayAfterRenderSubscribed:"LIFECYCLE:LISTENS_TO_PLAY_AFTER_RENDER_SUBSCRIBED",renderCalled:"LIFECYCLE:ON_RENDER_CALLED",onRenderCompleteCalled:"LIFECYCLE:ON_RENDER_CAOMPLETE_CALLED"},lifeCycleFlags:{booted:!0,preRenderResolved:!1,rendered:!1}},M=function(n){document.addEventListener("content-script-to-blinx",function(t){var e=void 0;switch(t.detail.eventId){case"GET_MODULES":e={eventId:"GET_MODULES_REPONSE",data:function(){var t=[];return n().forEach(function(n,e){var r={moduleName:n.moduleName,moduleConfig:{container:n.instanceConfig.container,listensTo:n.instanceConfig.listensTo,placeholders:JSON.stringify(n.instanceConfig.placeholders)},subModules:function n(t){if(!t.config||!t.config.modules)return[];var e=[];return t.config.modules.forEach(function(t,r){e.push({moduleName:t.moduleName,moduleConfig:{container:t.instanceConfig.container,listensTo:t.instanceConfig.listensTo,placeholders:JSON.stringify(t.instanceConfig.placeholders)},subModules:n(t),moduleInstanceConfig:JSON.stringify(t.instanceConfig)})}),e}(n),moduleInstanceConfig:JSON.stringify(n.instanceConfig)};t.push(r)}),t}()}}var t=new CustomEvent("blinx-to-content-script",{bubbles:!0,detail:e});document.dispatchEvent(t)})},D={attachListener:M},B=e(0),F=(e.n(B),function(n,t){n[P.MODULE_EVENTS.onStatusChange]&&n[P.MODULE_EVENTS.onStatusChange](t)}),U=function(n,t){n.publish(""+n.getModuleName()+t,{moduleInstanceId:n.getUniqueId()})},z=function(n){return n.instanceConfig.initOn||n.lifeCycleFlags.rendered?Promise.resolve(n.path):q(n)},q=function(n,t){if(T.createModuleArena(n),n[P.MODULE_EVENTS.resolveRenderOn]){var e=n[P.MODULE_EVENTS.resolveRenderOn](t);if(e&&e.then&&"function"==typeof e.then){var r=function(t){return n.lifeCycleFlags.preRenderResolved=!0,F(n,P.onStatusChange_EVENTS.resolveRenderOnCalled),V(n,t)};return e.then(r).catch(r)}return F(n,P.onStatusChange_EVENTS.resolveRenderOnCalled),V(n,e)}return F(n,P.onStatusChange_EVENTS.resolveRenderOnCalled),V(n,t)},V=function(n,t){return n.instanceConfig.listensTo&&n.instanceConfig.listensTo.length&&n.instanceConfig.listensTo.filter(function(n){if(n.type===P.EVENT_ENUM.playAfterRender||!n.type)return n}).forEach(function(t){n.subscribe({eventName:t.eventName,callback:n[t.callback],context:n,eventPublisher:t.eventPublisher,once:t.once})}),F(n,P.onStatusChange_EVENTS.listensToPlayAfterRenderSubscribed),$(n,t)},$=function(n,t){return new Promise(function(e,r){F(n,P.onStatusChange_EVENTS.renderCalled);var i=n[P.MODULE_EVENTS.render](t,i);n.lifeCycleFlags.rendered=!0,U(n,"_READY"),F(n,P.onStatusChange_EVENTS.onRenderCompleteCalled),n[P.MODULE_EVENTS.onRenderComplete]&&n[P.MODULE_EVENTS.onRenderComplete](),e(),n.dequeueEvents()})},K=function n(t,e){var r=t.filter(function(n){return!n.meta.parent.id});r.length||(r=[t[0]]),r.forEach(function(t){var r=new Promise(function(r,i){z(t).then(function(){t.meta.children&&t.meta.children.length&&t.meta.children&&t.meta.children.forEach(function(t){t.pointer.lifeCycleFlags.rendered||n([t.pointer],e)}),r(t.meta.id)})});e.push(r)})},Y=function(n){n.instanceConfig.initOn&&n.subscribe({eventName:n.instanceConfig.initOn.eventName,eventPublisher:n.instanceConfig.initOn.eventPublisher,context:n.instanceConfig,callback:d.partial(q,n),once:!0}),F(n,P.onStatusChange_EVENTS.initOnSubscribed),n.instanceConfig.listensTo&&n.instanceConfig.listensTo.length&&n.instanceConfig.listensTo.filter(function(n){if(n.type===P.EVENT_ENUM.keepOn||n.type===P.EVENT_ENUM.replay)return n}).forEach(function(t){n.subscribe({eventName:t.eventName,callback:n[t.callback],context:n,eventPublisher:t.eventPublisher,once:t.once,type:t.type})}),F(n,P.onStatusChange_EVENTS.keepOnReplaySubscribed)},Z=function n(t,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:e.module,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:e.instanceConfig,u=arguments.length>4&&void 0!==arguments[4]?arguments[4]:[],o=arguments[5],a=arguments.length>6&&void 0!==arguments[6]?arguments[6]:o&&o.meta;"string"==typeof o&&(o=v.find(function(n){return n.name===o}),a=o&&o.meta);var f=e.name?e.name.split("."):void 0,c=void 0;if(o&&o.instanceConfig&&o.instanceConfig.modules&&o.instanceConfig.modules.length){var l=o.instanceConfig.modules.filter(function(n){return n.moduleName===t});if(l&&l.length){var s=l[0].instanceConfig||{};i.placeholders=s.placeholders||i.placeholders,i.listensTo=s.listensTo||i.listensTo}}if(i.placeholders&&r&&r.config&&r.config.placeholders&&(i.placeholders=B.merge(r.config.placeholders,i.placeholders)),this instanceof T){var p=this.getUniqueId();c=v.filter(function(n){return n.meta.id===p})}else!o&&f&&2===f.length&&(c=v.filter(function(n){return n.name===f[0]}));c&&c.length&&(o=c[0],a=o.meta);var h={id:d.getNextUniqueId(),parent:{id:a&&a.id?a.id:void 0,pointer:o},children:[],siblings:a?[].concat(a.children):[]},g=new T(e.name,t,P.lifeCycleFlags,i,r,h);if(v.insertInstance(g),u.push(g),Y(g),U(g,"_CREATED"),F(g,P.onStatusChange_EVENTS.onCreate),a&&(h.siblings=[].concat(a.children),a.children.push({id:h.id,pointer:g})),!(r.config&&r.config.modules&&r.config.modules.length))return u;r.config.modules.forEach(function(t){n(t.moduleName,t,t.module,t.instanceConfig,u,g)})},H=c;D.attachListener(function(){return v});e.d(t,"PubSubHelper",function(){return G});var G=new S;t.default={createInstance:l,destroyInstance:H,destroyModuleInstance:c,use:s}},function(n,t,e){(function(n,r){var i;(function(){function u(n,t){return n.set(t[0],t[1]),n}function o(n,t){return n.add(t),n}function a(n,t,e){switch(e.length){case 0:return n.call(t);case 1:return n.call(t,e[0]);case 2:return n.call(t,e[0],e[1]);case 3:return n.call(t,e[0],e[1],e[2])}return n.apply(t,e)}function f(n,t,e,r){for(var i=-1,u=null==n?0:n.length;++i<u;){var o=n[i];t(r,o,e(o),n)}return r}function c(n,t){for(var e=-1,r=null==n?0:n.length;++e<r&&!1!==t(n[e],e,n););return n}function l(n,t){for(var e=null==n?0:n.length;e--&&!1!==t(n[e],e,n););return n}function s(n,t){for(var e=-1,r=null==n?0:n.length;++e<r;)if(!t(n[e],e,n))return!1;return!0}function p(n,t){for(var e=-1,r=null==n?0:n.length,i=0,u=[];++e<r;){var o=n[e];t(o,e,n)&&(u[i++]=o)}return u}function h(n,t){return!(null==n||!n.length)&&E(n,t,0)>-1}function d(n,t,e){for(var r=-1,i=null==n?0:n.length;++r<i;)if(e(t,n[r]))return!0;return!1}function g(n,t){for(var e=-1,r=null==n?0:n.length,i=Array(r);++e<r;)i[e]=t(n[e],e,n);return i}function v(n,t){for(var e=-1,r=t.length,i=n.length;++e<r;)n[i+e]=t[e];return n}function y(n,t,e,r){var i=-1,u=null==n?0:n.length;for(r&&u&&(e=n[++i]);++i<u;)e=t(e,n[i],i,n);return e}function _(n,t,e,r){var i=null==n?0:n.length;for(r&&i&&(e=n[--i]);i--;)e=t(e,n[i],i,n);return e}function b(n,t){for(var e=-1,r=null==n?0:n.length;++e<r;)if(t(n[e],e,n))return!0;return!1}function m(n,t,e){var r;return e(n,function(n,e,i){if(t(n,e,i))return r=e,!1}),r}function x(n,t,e,r){var i=n.length;for(e+=r?1:-1;r?e--:++e<i;)if(t(n[e],e,n))return e;return-1}function E(n,t,e){if(t===t)n:{--e;for(var r=n.length;++e<r;)if(n[e]===t){n=e;break n}n=-1}else n=x(n,A,e);return n}function j(n,t,e,r){--e;for(var i=n.length;++e<i;)if(r(n[e],t))return e;return-1}function A(n){return n!==n}function w(n,t){var e=null==n?0:n.length;return e?R(n,t)/e:Z}function C(n){return function(t){return null==t?K:t[n]}}function O(n){return function(t){return null==n?K:n[t]}}function S(n,t,e,r,i){return i(n,function(n,i,u){e=r?(r=!1,n):t(e,n,i,u)}),e}function I(n,t){var e=n.length;for(n.sort(t);e--;)n[e]=n[e].c;return n}function R(n,t){for(var e,r=-1,i=n.length;++r<i;){var u=t(n[r]);u!==K&&(e=e===K?u:e+u)}return e}function k(n,t){for(var e=-1,r=Array(n);++e<n;)r[e]=t(e);return r}function W(n,t){return g(t,function(t){return[t,n[t]]})}function N(n){return function(t){return n(t)}}function L(n,t){return g(t,function(t){return n[t]})}function T(n,t){return n.has(t)}function P(n,t){for(var e=-1,r=n.length;++e<r&&E(t,n[e],0)>-1;);return e}function M(n,t){for(var e=n.length;e--&&E(t,n[e],0)>-1;);return e}function D(n){return"\\"+zn[n]}function B(n){var t=-1,e=Array(n.size);return n.forEach(function(n,r){e[++t]=[r,n]}),e}function F(n,t){return function(e){return n(t(e))}}function U(n,t){for(var e=-1,r=n.length,i=0,u=[];++e<r;){var o=n[e];o!==t&&"__lodash_placeholder__"!==o||(n[e]="__lodash_placeholder__",u[i++]=e)}return u}function z(n){var t=-1,e=Array(n.size);return n.forEach(function(n){e[++t]=n}),e}function q(n){var t=-1,e=Array(n.size);return n.forEach(function(n){e[++t]=[n,n]}),e}function V(n){if(Pn.test(n)){for(var t=Ln.lastIndex=0;Ln.test(n);)++t;n=t}else n=it(n);return n}function $(n){return Pn.test(n)?n.match(Ln)||[]:n.split("")}var K,Y=1/0,Z=NaN,H=[["ary",128],["bind",1],["bindKey",2],["curry",8],["curryRight",16],["flip",512],["partial",32],["partialRight",64],["rearg",256]],G=/\b__p\+='';/g,J=/\b(__p\+=)''\+/g,Q=/(__e\(.*?\)|\b__t\))\+'';/g,X=/&(?:amp|lt|gt|quot|#39);/g,nn=/[&<>"']/g,tn=RegExp(X.source),en=RegExp(nn.source),rn=/<%-([\s\S]+?)%>/g,un=/<%([\s\S]+?)%>/g,on=/<%=([\s\S]+?)%>/g,an=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,fn=/^\w*$/,cn=/^\./,ln=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,sn=/[\\^$.*+?()[\]{}|]/g,pn=RegExp(sn.source),hn=/^\s+|\s+$/g,dn=/^\s+/,gn=/\s+$/,vn=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,yn=/\{\n\/\* \[wrapped with (.+)\] \*/,_n=/,? & /,bn=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,mn=/\\(\\)?/g,xn=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,En=/\w*$/,jn=/^[-+]0x[0-9a-f]+$/i,An=/^0b[01]+$/i,wn=/^\[object .+?Constructor\]$/,Cn=/^0o[0-7]+$/i,On=/^(?:0|[1-9]\d*)$/,Sn=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,In=/($^)/,Rn=/['\n\r\u2028\u2029\\]/g,kn="[\\ufe0e\\ufe0f]?(?:[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|\\ud83c[\\udffb-\\udfff])?(?:\\u200d(?:[^\\ud800-\\udfff]|(?:\\ud83c[\\udde6-\\uddff]){2}|[\\ud800-\\udbff][\\udc00-\\udfff])[\\ufe0e\\ufe0f]?(?:[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|\\ud83c[\\udffb-\\udfff])?)*",Wn=RegExp("['’]","g"),Nn=RegExp("[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]","g"),Ln=RegExp("\\ud83c[\\udffb-\\udfff](?=\\ud83c[\\udffb-\\udfff])|(?:[^\\ud800-\\udfff][\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]?|[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|(?:\\ud83c[\\udde6-\\uddff]){2}|[\\ud800-\\udbff][\\udc00-\\udfff]|[\\ud800-\\udfff])"+kn,"g"),Tn=RegExp("[A-Z\\xc0-\\xd6\\xd8-\\xde]?[a-z\\xdf-\\xf6\\xf8-\\xff]+(?:['’](?:d|ll|m|re|s|t|ve))?(?=[\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000]|[A-Z\\xc0-\\xd6\\xd8-\\xde]|$)|(?:[A-Z\\xc0-\\xd6\\xd8-\\xde]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])+(?:['’](?:D|LL|M|RE|S|T|VE))?(?=[\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000]|[A-Z\\xc0-\\xd6\\xd8-\\xde](?:[a-z\\xdf-\\xf6\\xf8-\\xff]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])|$)|[A-Z\\xc0-\\xd6\\xd8-\\xde]?(?:[a-z\\xdf-\\xf6\\xf8-\\xff]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])+(?:['’](?:d|ll|m|re|s|t|ve))?|[A-Z\\xc0-\\xd6\\xd8-\\xde]+(?:['’](?:D|LL|M|RE|S|T|VE))?|\\d*(?:(?:1ST|2ND|3RD|(?![123])\\dTH)\\b)|\\d*(?:(?:1st|2nd|3rd|(?![123])\\dth)\\b)|\\d+|(?:[\\u2700-\\u27bf]|(?:\\ud83c[\\udde6-\\uddff]){2}|[\\ud800-\\udbff][\\udc00-\\udfff])[\\ufe0e\\ufe0f]?(?:[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|\\ud83c[\\udffb-\\udfff])?(?:\\u200d(?:[^\\ud800-\\udfff]|(?:\\ud83c[\\udde6-\\uddff]){2}|[\\ud800-\\udbff][\\udc00-\\udfff])[\\ufe0e\\ufe0f]?(?:[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|\\ud83c[\\udffb-\\udfff])?)*","g"),Pn=RegExp("[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\ufe0e\\ufe0f]"),Mn=/[a-z][A-Z]|[A-Z]{2,}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,Dn="Array Buffer DataView Date Error Float32Array Float64Array Function Int8Array Int16Array Int32Array Map Math Object Promise RegExp Set String Symbol TypeError Uint8Array Uint8ClampedArray Uint16Array Uint32Array WeakMap _ clearTimeout isFinite parseInt setTimeout".split(" "),Bn={};Bn["[object Float32Array]"]=Bn["[object Float64Array]"]=Bn["[object Int8Array]"]=Bn["[object Int16Array]"]=Bn["[object Int32Array]"]=Bn["[object Uint8Array]"]=Bn["[object Uint8ClampedArray]"]=Bn["[object Uint16Array]"]=Bn["[object Uint32Array]"]=!0,Bn["[object Arguments]"]=Bn["[object Array]"]=Bn["[object ArrayBuffer]"]=Bn["[object Boolean]"]=Bn["[object DataView]"]=Bn["[object Date]"]=Bn["[object Error]"]=Bn["[object Function]"]=Bn["[object Map]"]=Bn["[object Number]"]=Bn["[object Object]"]=Bn["[object RegExp]"]=Bn["[object Set]"]=Bn["[object String]"]=Bn["[object WeakMap]"]=!1;var Fn={};Fn["[object Arguments]"]=Fn["[object Array]"]=Fn["[object ArrayBuffer]"]=Fn["[object DataView]"]=Fn["[object Boolean]"]=Fn["[object Date]"]=Fn["[object Float32Array]"]=Fn["[object Float64Array]"]=Fn["[object Int8Array]"]=Fn["[object Int16Array]"]=Fn["[object Int32Array]"]=Fn["[object Map]"]=Fn["[object Number]"]=Fn["[object Object]"]=Fn["[object RegExp]"]=Fn["[object Set]"]=Fn["[object String]"]=Fn["[object Symbol]"]=Fn["[object Uint8Array]"]=Fn["[object Uint8ClampedArray]"]=Fn["[object Uint16Array]"]=Fn["[object Uint32Array]"]=!0,Fn["[object Error]"]=Fn["[object Function]"]=Fn["[object WeakMap]"]=!1;var Un,zn={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},qn=parseFloat,Vn=parseInt,$n="object"==typeof n&&n&&n.Object===Object&&n,Kn="object"==typeof self&&self&&self.Object===Object&&self,Yn=$n||Kn||Function("return this")(),Zn="object"==typeof t&&t&&!t.nodeType&&t,Hn=Zn&&"object"==typeof r&&r&&!r.nodeType&&r,Gn=Hn&&Hn.exports===Zn,Jn=Gn&&$n.process;n:{try{Un=Jn&&Jn.binding&&Jn.binding("util");break n}catch(u){}Un=void 0}var Qn=Un&&Un.isArrayBuffer,Xn=Un&&Un.isDate,nt=Un&&Un.isMap,tt=Un&&Un.isRegExp,et=Un&&Un.isSet,rt=Un&&Un.isTypedArray,it=C("length"),ut=O({"À":"A","Á":"A","Â":"A","Ã":"A","Ä":"A","Å":"A","à":"a","á":"a","â":"a","ã":"a","ä":"a","å":"a","Ç":"C","ç":"c","Ð":"D","ð":"d","È":"E","É":"E","Ê":"E","Ë":"E","è":"e","é":"e","ê":"e","ë":"e","Ì":"I","Í":"I","Î":"I","Ï":"I","ì":"i","í":"i","î":"i","ï":"i","Ñ":"N","ñ":"n","Ò":"O","Ó":"O","Ô":"O","Õ":"O","Ö":"O","Ø":"O","ò":"o","ó":"o","ô":"o","õ":"o","ö":"o","ø":"o","Ù":"U","Ú":"U","Û":"U","Ü":"U","ù":"u","ú":"u","û":"u","ü":"u","Ý":"Y","ý":"y","ÿ":"y","Æ":"Ae","æ":"ae","Þ":"Th","þ":"th","ß":"ss","Ā":"A","Ă":"A","Ą":"A","ā":"a","ă":"a","ą":"a","Ć":"C","Ĉ":"C","Ċ":"C","Č":"C","ć":"c","ĉ":"c","ċ":"c","č":"c","Ď":"D","Đ":"D","ď":"d","đ":"d","Ē":"E","Ĕ":"E","Ė":"E","Ę":"E","Ě":"E","ē":"e","ĕ":"e","ė":"e","ę":"e","ě":"e","Ĝ":"G","Ğ":"G","Ġ":"G","Ģ":"G","ĝ":"g","ğ":"g","ġ":"g","ģ":"g","Ĥ":"H","Ħ":"H","ĥ":"h","ħ":"h","Ĩ":"I","Ī":"I","Ĭ":"I","Į":"I","İ":"I","ĩ":"i","ī":"i","ĭ":"i","į":"i","ı":"i","Ĵ":"J","ĵ":"j","Ķ":"K","ķ":"k","ĸ":"k","Ĺ":"L","Ļ":"L","Ľ":"L","Ŀ":"L","Ł":"L","ĺ":"l","ļ":"l","ľ":"l","ŀ":"l","ł":"l","Ń":"N","Ņ":"N","Ň":"N","Ŋ":"N","ń":"n","ņ":"n","ň":"n","ŋ":"n","Ō":"O","Ŏ":"O","Ő":"O","ō":"o","ŏ":"o","ő":"o","Ŕ":"R","Ŗ":"R","Ř":"R","ŕ":"r","ŗ":"r","ř":"r","Ś":"S","Ŝ":"S","Ş":"S","Š":"S","ś":"s","ŝ":"s","ş":"s","š":"s","Ţ":"T","Ť":"T","Ŧ":"T","ţ":"t","ť":"t","ŧ":"t","Ũ":"U","Ū":"U","Ŭ":"U","Ů":"U","Ű":"U","Ų":"U","ũ":"u","ū":"u","ŭ":"u","ů":"u","ű":"u","ų":"u","Ŵ":"W","ŵ":"w","Ŷ":"Y","ŷ":"y","Ÿ":"Y","Ź":"Z","Ż":"Z","Ž":"Z","ź":"z","ż":"z","ž":"z","IJ":"IJ","ij":"ij","Œ":"Oe","œ":"oe","ʼn":"'n","ſ":"s"}),ot=O({"&":"&","<":"<",">":">",'"':""","'":"'"}),at=O({"&":"&","<":"<",">":">",""":'"',"'":"'"}),ft=function n(t){function e(n){if(bi(n)&&!aa(n)&&!(n instanceof O)){if(n instanceof i)return n;if(au.call(n,"__wrapped__"))return zr(n)}return new i(n)}function r(){}function i(n,t){this.__wrapped__=n,this.__actions__=[],this.__chain__=!!t,this.__index__=0,this.__values__=K}function O(n){this.__wrapped__=n,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=4294967295,this.__views__=[]}function kn(n){var t=-1,e=null==n?0:n.length;for(this.clear();++t<e;){var r=n[t];this.set(r[0],r[1])}}function Ln(n){var t=-1,e=null==n?0:n.length;for(this.clear();++t<e;){var r=n[t];this.set(r[0],r[1])}}function Un(n){var t=-1,e=null==n?0:n.length;for(this.clear();++t<e;){var r=n[t];this.set(r[0],r[1])}}function zn(n){var t=-1,e=null==n?0:n.length;for(this.__data__=new Un;++t<e;)this.add(n[t])}function $n(n){this.size=(this.__data__=new Ln(n)).size}function Kn(n,t){var e,r=aa(n),i=!r&&oa(n),u=!r&&!i&&ca(n),o=!r&&!i&&!u&&da(n),i=(r=r||i||u||o)?k(n.length,tu):[],a=i.length;for(e in n)!t&&!au.call(n,e)||r&&("length"==e||u&&("offset"==e||"parent"==e)||o&&("buffer"==e||"byteLength"==e||"byteOffset"==e)||Sr(e,a))||i.push(e);return i}function Zn(n){var t=n.length;return t?n[ce(0,t-1)]:K}function Hn(n,t){return Dr(Be(n),yt(t,0,n.length))}function Jn(n){return Dr(Be(n))}function it(n,t,e,r){return n===K||si(n,iu[e])&&!au.call(r,e)?t:n}function ct(n,t,e){(e===K||si(n[t],e))&&(e!==K||t in n)||gt(n,t,e)}function lt(n,t,e){var r=n[t];au.call(n,t)&&si(r,e)&&(e!==K||t in n)||gt(n,t,e)}function st(n,t){for(var e=n.length;e--;)if(si(n[e][0],t))return e;return-1}function pt(n,t,e,r){return uo(n,function(n,i,u){t(r,n,e(n),u)}),r}function ht(n,t){return n&&Fe(t,Ni(t),n)}function dt(n,t){return n&&Fe(t,Li(t),n)}function gt(n,t,e){"__proto__"==t&&wu?wu(n,t,{configurable:!0,enumerable:!0,value:e,writable:!0}):n[t]=e}function vt(n,t){for(var e=-1,r=t.length,i=Zi(r),u=null==n;++e<r;)i[e]=u?K:ki(n,t[e]);return i}function yt(n,t,e){return n===n&&(e!==K&&(n=n>e?e:n),t!==K&&(n=t>n?t:n)),n}function _t(n,t,e,r,i,u){var o,a=1&t,f=2&t,l=4&t;if(e&&(o=i?e(n,r,i,u):e(n)),o!==K)return o;if(!_i(n))return n;if(r=aa(n)){if(o=Ar(n),!a)return Be(n,o)}else{var s=yo(n),p="[object Function]"==s||"[object GeneratorFunction]"==s;if(ca(n))return Ne(n,a);if("[object Object]"==s||"[object Arguments]"==s||p&&!i){if(o=f||p?{}:wr(n),!a)return f?ze(n,dt(o,n)):Ue(n,ht(o,n))}else{if(!Fn[s])return i?n:{};o=Cr(n,s,_t,a)}}if(u||(u=new $n),i=u.get(n))return i;u.set(n,o);var f=l?f?vr:gr:f?Li:Ni,h=r?K:f(n);return c(h||n,function(r,i){h&&(i=r,r=n[i]),lt(o,i,_t(r,t,e,i,n,u))}),o}function bt(n){var t=Ni(n);return function(e){return mt(e,n,t)}}function mt(n,t,e){var r=e.length;if(null==n)return!r;for(n=Xi(n);r--;){var i=e[r],u=t[i],o=n[i];if(o===K&&!(i in n)||!u(o))return!1}return!0}function xt(n,t,e){if("function"!=typeof n)throw new eu("Expected a function");return mo(function(){n.apply(K,e)},t)}function Et(n,t,e,r){var i=-1,u=h,o=!0,a=n.length,f=[],c=t.length;if(!a)return f;e&&(t=g(t,N(e))),r?(u=d,o=!1):t.length>=200&&(u=T,o=!1,t=new zn(t));n:for(;++i<a;){var l=n[i],s=null==e?l:e(l),l=r||0!==l?l:0;if(o&&s===s){for(var p=c;p--;)if(t[p]===s)continue n;f.push(l)}else u(t,s,r)||f.push(l)}return f}function jt(n,t){var e=!0;return uo(n,function(n,r,i){return e=!!t(n,r,i)}),e}function At(n,t,e){for(var r=-1,i=n.length;++r<i;){var u=n[r],o=t(u);if(null!=o&&(a===K?o===o&&!ji(o):e(o,a)))var a=o,f=u}return f}function wt(n,t){var e=[];return uo(n,function(n,r,i){t(n,r,i)&&e.push(n)}),e}function Ct(n,t,e,r,i){var u=-1,o=n.length;for(e||(e=Or),i||(i=[]);++u<o;){var a=n[u];t>0&&e(a)?t>1?Ct(a,t-1,e,r,i):v(i,a):r||(i[i.length]=a)}return i}function Ot(n,t){return n&&ao(n,t,Ni)}function St(n,t){return n&&fo(n,t,Ni)}function It(n,t){return p(t,function(t){return gi(n[t])})}function Rt(n,t){t=ke(t,n);for(var e=0,r=t.length;null!=n&&r>e;)n=n[Br(t[e++])];return e&&e==r?n:K}function kt(n,t,e){return t=t(n),aa(n)?t:v(t,e(n))}function Wt(n){if(null==n)return n===K?"[object Undefined]":"[object Null]";n=Xi(n);var t;if(Au&&Au in n){var e=au.call(n,Au),r=n[Au];try{n[Au]=K,t=!0}catch(n){}var i=lu.call(n);t&&(e?n[Au]=r:delete n[Au]),t=i}else t=lu.call(n);return t}function Nt(n,t){return n>t}function Lt(n,t){return null!=n&&au.call(n,t)}function Tt(n,t){return null!=n&&t in Xi(n)}function Pt(n,t,e){for(var r=e?d:h,i=n[0].length,u=n.length,o=u,a=Zi(u),f=1/0,c=[];o--;){var l=n[o];o&&t&&(l=g(l,N(t))),f=Mu(l.length,f),a[o]=e||!t&&(120>i||120>l.length)?K:new zn(o&&l)}var l=n[0],s=-1,p=a[0];n:for(;++s<i&&f>c.length;){var v=l[s],y=t?t(v):v,v=e||0!==v?v:0;if(p?!T(p,y):!r(c,y,e)){for(o=u;--o;){var _=a[o];if(_?!T(_,y):!r(n[o],y,e))continue n}p&&p.push(y),c.push(v)}}return c}function Mt(n,t,e){var r={};return Ot(n,function(n,i,u){t(r,e(n),i,u)}),r}function Dt(n,t,e){return t=ke(t,n),n=2>t.length?n:Rt(n,ve(t,0,-1)),t=null==n?n:n[Br(Yr(t))],null==t?K:a(t,n,e)}function Bt(n){return bi(n)&&"[object Arguments]"==Wt(n)}function Ft(n){return bi(n)&&"[object ArrayBuffer]"==Wt(n)}function Ut(n){return bi(n)&&"[object Date]"==Wt(n)}function zt(n,t,e,r,i){if(n===t)t=!0;else if(null==n||null==t||!_i(n)&&!bi(t))t=n!==n&&t!==t;else n:{var u=aa(n),o=aa(t),a="[object Array]",f="[object Array]";u||(a=yo(n),a="[object Arguments]"==a?"[object Object]":a),o||(f=yo(t),f="[object Arguments]"==f?"[object Object]":f);var c="[object Object]"==a,o="[object Object]"==f;if((f=a==f)&&ca(n)){if(!ca(t)){t=!1;break n}u=!0,c=!1}if(f&&!c)i||(i=new $n),t=u||da(n)?pr(n,t,e,r,zt,i):hr(n,t,a,e,r,zt,i);else{if(!(1&e)&&(u=c&&au.call(n,"__wrapped__"),a=o&&au.call(t,"__wrapped__"),u||a)){n=u?n.value():n,t=a?t.value():t,i||(i=new $n),t=zt(n,t,e,r,i);break n}if(f)t:if(i||(i=new $n),u=1&e,a=Ni(n),o=a.length,f=Ni(t).length,o==f||u){for(c=o;c--;){var l=a[c];if(!(u?l in t:au.call(t,l))){t=!1;break t}}if((f=i.get(n))&&i.get(t))t=f==t;else{f=!0,i.set(n,t),i.set(t,n);for(var s=u;++c<o;){var l=a[c],p=n[l],h=t[l];if(r)var d=u?r(h,p,l,t,n,i):r(p,h,l,n,t,i);if(d===K?p!==h&&!zt(p,h,e,r,i):!d){f=!1;break}s||(s="constructor"==l)}f&&!s&&(e=n.constructor,r=t.constructor,e!=r&&"constructor"in n&&"constructor"in t&&!("function"==typeof e&&e instanceof e&&"function"==typeof r&&r instanceof r)&&(f=!1)),i.delete(n),i.delete(t),t=f}}else t=!1;else t=!1}}return t}function qt(n){return bi(n)&&"[object Map]"==yo(n)}function Vt(n,t,e,r){var i=e.length,u=i,o=!r;if(null==n)return!u;for(n=Xi(n);i--;){var a=e[i];if(o&&a[2]?a[1]!==n[a[0]]:!(a[0]in n))return!1}for(;++i<u;){var a=e[i],f=a[0],c=n[f],l=a[1];if(o&&a[2]){if(c===K&&!(f in n))return!1}else{if(a=new $n,r)var s=r(c,l,f,n,t,a);if(s===K?!zt(l,c,3,r,a):!s)return!1}}return!0}function $t(n){return!(!_i(n)||cu&&cu in n)&&(gi(n)?hu:wn).test(Fr(n))}function Kt(n){return bi(n)&&"[object RegExp]"==Wt(n)}function Yt(n){return bi(n)&&"[object Set]"==yo(n)}function Zt(n){return bi(n)&&yi(n.length)&&!!Bn[Wt(n)]}function Ht(n){return"function"==typeof n?n:null==n?Ui:"object"==typeof n?aa(n)?ne(n[0],n[1]):Xt(n):$i(n)}function Gt(n){if(!Wr(n))return Tu(n);var t,e=[];for(t in Xi(n))au.call(n,t)&&"constructor"!=t&&e.push(t);return e}function Jt(n,t){return t>n}function Qt(n,t){var e=-1,r=pi(n)?Zi(n.length):[];return uo(n,function(n,i,u){r[++e]=t(n,i,u)}),r}function Xt(n){var t=xr(n);return 1==t.length&&t[0][2]?Nr(t[0][0],t[0][1]):function(e){return e===n||Vt(e,n,t)}}function ne(n,t){return Rr(n)&&t===t&&!_i(t)?Nr(Br(n),t):function(e){var r=ki(e,n);return r===K&&r===t?Wi(e,n):zt(t,r,3)}}function te(n,t,e,r,i){n!==t&&ao(t,function(u,o){if(_i(u)){i||(i=new $n);var a=i,f=n[o],c=t[o],l=a.get(c);if(l)ct(n,o,l);else{var l=r?r(f,c,o+"",n,t,a):K,s=l===K;if(s){var p=aa(c),h=!p&&ca(c),d=!p&&!h&&da(c),l=c;p||h||d?aa(f)?l=f:hi(f)?l=Be(f):h?(s=!1,l=Ne(c,!0)):d?(s=!1,l=Te(c,!0)):l=[]:xi(c)||oa(c)?(l=f,oa(f)?l=Ii(f):(!_i(f)||e&&gi(f))&&(l=wr(c))):s=!1}s&&(a.set(c,l),te(l,c,e,r,a),a.delete(c)),ct(n,o,l)}}else a=r?r(n[o],u,o+"",n,t,i):K,a===K&&(a=u),ct(n,o,a)},Li)}function ee(n,t){var e=n.length;if(e)return t+=0>t?e:0,Sr(t,e)?n[t]:K}function re(n,t,e){var r=-1;return t=g(t.length?t:[Ui],N(br())),n=Qt(n,function(n){return{a:g(t,function(t){return t(n)}),b:++r,c:n}}),I(n,function(n,t){var r;n:{r=-1;for(var i=n.a,u=t.a,o=i.length,a=e.length;++r<o;){var f=Pe(i[r],u[r]);if(f){r=a>r?f*("desc"==e[r]?-1:1):f;break n}}r=n.b-t.b}return r})}function ie(n,t){return n=Xi(n),ue(n,t,function(t,e){return Wi(n,e)})}function ue(n,t,e){for(var r=-1,i=t.length,u={};++r<i;){var o=t[r],a=Rt(n,o);e(a,o)&&de(u,ke(o,n),a)}return u}function oe(n){return function(t){return Rt(t,n)}}function ae(n,t,e,r){var i=r?j:E,u=-1,o=t.length,a=n;for(n===t&&(t=Be(t)),e&&(a=g(n,N(e)));++u<o;)for(var f=0,c=t[u],c=e?e(c):c;(f=i(a,c,f,r))>-1;)a!==n&&xu.call(a,f,1),xu.call(n,f,1);return n}function fe(n,t){for(var e=n?t.length:0,r=e-1;e--;){var i=t[e];if(e==r||i!==u){var u=i;Sr(i)?xu.call(n,i,1):Ae(n,i)}}}function ce(n,t){return n+Ru(Fu()*(t-n+1))}function le(n,t){var e="";if(!n||1>t||t>9007199254740991)return e;do{t%2&&(e+=n),(t=Ru(t/2))&&(n+=n)}while(t);return e}function se(n,t){return xo(Tr(n,t,Ui),n+"")}function pe(n){return Zn(Pi(n))}function he(n,t){var e=Pi(n);return Dr(e,yt(t,0,e.length))}function de(n,t,e,r){if(!_i(n))return n;t=ke(t,n);for(var i=-1,u=t.length,o=u-1,a=n;null!=a&&++i<u;){var f=Br(t[i]),c=e;if(i!=o){var l=a[f],c=r?r(l,f,a):K;c===K&&(c=_i(l)?l:Sr(t[i+1])?[]:{})}lt(a,f,c),a=a[f]}return n}function ge(n){return Dr(Pi(n))}function ve(n,t,e){var r=-1,i=n.length;for(0>t&&(t=-t>i?0:i+t),e=e>i?i:e,0>e&&(e+=i),i=t>e?0:e-t>>>0,t>>>=0,e=Zi(i);++r<i;)e[r]=n[r+t];return e}function ye(n,t){var e;return uo(n,function(n,r,i){return!(e=t(n,r,i))}),!!e}function _e(n,t,e){var r=0,i=null==n?r:n.length;if("number"==typeof t&&t===t&&2147483647>=i){for(;i>r;){var u=r+i>>>1,o=n[u];null===o||ji(o)||(e?o>t:o>=t)?i=u:r=u+1}return i}return be(n,t,Ui,e)}function be(n,t,e,r){t=e(t);for(var i=0,u=null==n?0:n.length,o=t!==t,a=null===t,f=ji(t),c=t===K;u>i;){var l=Ru((i+u)/2),s=e(n[l]),p=s!==K,h=null===s,d=s===s,g=ji(s);(o?r||d:c?d&&(r||p):a?d&&p&&(r||!h):f?d&&p&&!h&&(r||!g):h||g?0:r?t>=s:t>s)?i=l+1:u=l}return Mu(u,4294967294)}function me(n,t){for(var e=-1,r=n.length,i=0,u=[];++e<r;){var o=n[e],a=t?t(o):o;if(!e||!si(a,f)){var f=a;u[i++]=0===o?0:o}}return u}function xe(n){return"number"==typeof n?n:ji(n)?Z:+n}function Ee(n){if("string"==typeof n)return n;if(aa(n))return g(n,Ee)+"";if(ji(n))return ro?ro.call(n):"";var t=n+"";return"0"==t&&1/n==-Y?"-0":t}function je(n,t,e){var r=-1,i=h,u=n.length,o=!0,a=[],f=a;if(e)o=!1,i=d;else if(u<200)f=t?[]:a;else{if(i=t?null:po(n))return z(i);o=!1,i=T,f=new zn}n:for(;++r<u;){var c=n[r],l=t?t(c):c,c=e||0!==c?c:0;if(o&&l===l){for(var s=f.length;s--;)if(f[s]===l)continue n;t&&f.push(l),a.push(c)}else i(f,l,e)||(f!==a&&f.push(l),a.push(c))}return a}function Ae(n,t){return t=ke(t,n),null==(n=2>t.length?n:Rt(n,ve(t,0,-1)))||delete n[Br(Yr(t))]}function we(n,t,e,r){for(var i=n.length,u=r?i:-1;(r?u--:++u<i)&&t(n[u],u,n););return e?ve(n,r?0:u,r?u+1:i):ve(n,r?u+1:0,r?i:u)}function Ce(n,t){var e=n;return e instanceof O&&(e=e.value()),y(t,function(n,t){return t.func.apply(t.thisArg,v([n],t.args))},e)}function Oe(n,t,e){var r=n.length;if(2>r)return r?je(n[0]):[];for(var i=-1,u=Zi(r);++i<r;)for(var o=n[i],a=-1;++a<r;)a!=i&&(u[i]=Et(u[i]||o,n[a],t,e));return je(Ct(u,1),t,e)}function Se(n,t,e){for(var r=-1,i=n.length,u=t.length,o={};++r<i;)e(o,n[r],u>r?t[r]:K);return o}function Ie(n){return hi(n)?n:[]}function Re(n){return"function"==typeof n?n:Ui}function ke(n,t){return aa(n)?n:Rr(n,t)?[n]:Eo(Ri(n))}function We(n,t,e){var r=n.length;return e=e===K?r:e,t||r>e?ve(n,t,e):n}function Ne(n,t){if(t)return n.slice();var e=n.length,e=yu?yu(e):new n.constructor(e);return n.copy(e),e}function Le(n){var t=new n.constructor(n.byteLength);return new vu(t).set(new vu(n)),t}function Te(n,t){return new n.constructor(t?Le(n.buffer):n.buffer,n.byteOffset,n.length)}function Pe(n,t){if(n!==t){var e=n!==K,r=null===n,i=n===n,u=ji(n),o=t!==K,a=null===t,f=t===t,c=ji(t);if(!a&&!c&&!u&&n>t||u&&o&&f&&!a&&!c||r&&o&&f||!e&&f||!i)return 1;if(!r&&!u&&!c&&t>n||c&&e&&i&&!r&&!u||a&&e&&i||!o&&i||!f)return-1}return 0}function Me(n,t,e,r){var i=-1,u=n.length,o=e.length,a=-1,f=t.length,c=Pu(u-o,0),l=Zi(f+c);for(r=!r;++a<f;)l[a]=t[a];for(;++i<o;)(r||u>i)&&(l[e[i]]=n[i]);for(;c--;)l[a++]=n[i++];return l}function De(n,t,e,r){var i=-1,u=n.length,o=-1,a=e.length,f=-1,c=t.length,l=Pu(u-a,0),s=Zi(l+c);for(r=!r;++i<l;)s[i]=n[i];for(l=i;++f<c;)s[l+f]=t[f];for(;++o<a;)(r||u>i)&&(s[l+e[o]]=n[i++]);return s}function Be(n,t){var e=-1,r=n.length;for(t||(t=Zi(r));++e<r;)t[e]=n[e];return t}function Fe(n,t,e,r){var i=!e;e||(e={});for(var u=-1,o=t.length;++u<o;){var a=t[u],f=r?r(e[a],n[a],a,e,n):K;f===K&&(f=n[a]),i?gt(e,a,f):lt(e,a,f)}return e}function Ue(n,t){return Fe(n,go(n),t)}function ze(n,t){return Fe(n,vo(n),t)}function qe(n,t){return function(e,r){var i=aa(e)?f:pt,u=t?t():{};return i(e,n,br(r,2),u)}}function Ve(n){return se(function(t,e){var r=-1,i=e.length,u=i>1?e[i-1]:K,o=i>2?e[2]:K,u=n.length>3&&"function"==typeof u?(i--,u):K;for(o&&Ir(e[0],e[1],o)&&(u=3>i?K:u,i=1),t=Xi(t);++r<i;)(o=e[r])&&n(t,o,r,u);return t})}function $e(n,t){return function(e,r){if(null==e)return e;if(!pi(e))return n(e,r);for(var i=e.length,u=t?i:-1,o=Xi(e);(t?u--:++u<i)&&!1!==r(o[u],u,o););return e}}function Ke(n){return function(t,e,r){var i=-1,u=Xi(t);r=r(t);for(var o=r.length;o--;){var a=r[n?o:++i];if(!1===e(u[a],a,u))break}return t}}function Ye(n,t,e){function r(){return(this&&this!==Yn&&this instanceof r?u:n).apply(i?e:this,arguments)}var i=1&t,u=Ge(n);return r}function Ze(n){return function(t){t=Ri(t);var e=Pn.test(t)?$(t):K,r=e?e[0]:t.charAt(0);return t=e?We(e,1).join(""):t.slice(1),r[n]()+t}}function He(n){return function(t){return y(Bi(Di(t).replace(Wn,"")),n,"")}}function Ge(n){return function(){var t=arguments;switch(t.length){case 0:return new n;case 1:return new n(t[0]);case 2:return new n(t[0],t[1]);case 3:return new n(t[0],t[1],t[2]);case 4:return new n(t[0],t[1],t[2],t[3]);case 5:return new n(t[0],t[1],t[2],t[3],t[4]);case 6:return new n(t[0],t[1],t[2],t[3],t[4],t[5]);case 7:return new n(t[0],t[1],t[2],t[3],t[4],t[5],t[6])}var e=io(n.prototype),t=n.apply(e,t);return _i(t)?t:e}}function Je(n,t,e){function r(){for(var u=arguments.length,o=Zi(u),f=u,c=_r(r);f--;)o[f]=arguments[f];return f=3>u&&o[0]!==c&&o[u-1]!==c?[]:U(o,c),u-=f.length,e>u?fr(n,t,nr,r.placeholder,K,o,f,K,K,e-u):a(this&&this!==Yn&&this instanceof r?i:n,this,o)}var i=Ge(n);return r}function Qe(n){return function(t,e,r){var i=Xi(t);if(!pi(t)){var u=br(e,3);t=Ni(t),e=function(n){return u(i[n],n,i)}}return e=n(t,e,r),e>-1?i[u?t[e]:e]:K}}function Xe(n){return dr(function(t){var e=t.length,r=e,u=i.prototype.thru;for(n&&t.reverse();r--;){var o=t[r];if("function"!=typeof o)throw new eu("Expected a function");if(u&&!a&&"wrapper"==yr(o))var a=new i([],!0)}for(r=a?r:e;++r<e;)var o=t[r],u=yr(o),f="wrapper"==u?ho(o):K,a=f&&kr(f[0])&&424==f[1]&&!f[4].length&&1==f[9]?a[yr(f[0])].apply(a,f[3]):1==o.length&&kr(o)?a[u]():a.thru(o);return function(){var n=arguments,r=n[0];if(a&&1==n.length&&aa(r)&&r.length>=200)return a.plant(r).value();for(var i=0,n=e?t[i].apply(this,n):r;++i<e;)n=t[i].call(this,n);return n}})}function nr(n,t,e,r,i,u,o,a,f,c){function l(){for(var y=arguments.length,_=Zi(y),b=y;b--;)_[b]=arguments[b];if(d){var m,x=_r(l),b=_.length;for(m=0;b--;)_[b]===x&&++m}if(r&&(_=Me(_,r,i,d)),u&&(_=De(_,u,o,d)),y-=m,d&&c>y)return x=U(_,x),fr(n,t,nr,l.placeholder,e,_,x,a,f,c-y);if(x=p?e:this,b=h?x[n]:n,y=_.length,a){m=_.length;for(var E=Mu(a.length,m),j=Be(_);E--;){var A=a[E];_[E]=Sr(A,m)?j[A]:K}}else g&&y>1&&_.reverse();return s&&y>f&&(_.length=f),this&&this!==Yn&&this instanceof l&&(b=v||Ge(b)),b.apply(x,_)}var s=128&t,p=1&t,h=2&t,d=24&t,g=512&t,v=h?K:Ge(n);return l}function tr(n,t){return function(e,r){return Mt(e,n,t(r))}}function er(n,t){return function(e,r){var i;if(e===K&&r===K)return t;if(e!==K&&(i=e),r!==K){if(i===K)return r;"string"==typeof e||"string"==typeof r?(e=Ee(e),r=Ee(r)):(e=xe(e),r=xe(r)),i=n(e,r)}return i}}function rr(n){return dr(function(t){return t=g(t,N(br())),se(function(e){var r=this;return n(t,function(n){return a(n,r,e)})})})}function ir(n,t){t=t===K?" ":Ee(t);var e=t.length;return 2>e?e?le(t,n):t:(e=le(t,Iu(n/V(t))),Pn.test(t)?We($(e),0,n).join(""):e.slice(0,n))}function ur(n,t,e,r){function i(){for(var t=-1,f=arguments.length,c=-1,l=r.length,s=Zi(l+f),p=this&&this!==Yn&&this instanceof i?o:n;++c<l;)s[c]=r[c];for(;f--;)s[c++]=arguments[++t];return a(p,u?e:this,s)}var u=1&t,o=Ge(n);return i}function or(n){return function(t,e,r){r&&"number"!=typeof r&&Ir(t,e,r)&&(e=r=K),t=wi(t),e===K?(e=t,t=0):e=wi(e),r=r===K?e>t?1:-1:wi(r);var i=-1;e=Pu(Iu((e-t)/(r||1)),0);for(var u=Zi(e);e--;)u[n?e:++i]=t,t+=r;return u}}function ar(n){return function(t,e){return"string"==typeof t&&"string"==typeof e||(t=Si(t),e=Si(e)),n(t,e)}}function fr(n,t,e,r,i,u,o,a,f,c){var l=8&t,s=l?o:K;o=l?K:o;var p=l?u:K;return u=l?K:u,t=(t|(l?32:64))&~(l?64:32),4&t||(t&=-4),i=[n,t,i,p,s,u,o,a,f,c],e=e.apply(K,i),kr(n)&&bo(e,i),e.placeholder=r,Pr(e,n,t)}function cr(n){var t=Qi[n];return function(n,e){if(n=Si(n),e=Mu(Ci(e),292)){var r=(Ri(n)+"e").split("e"),r=t(r[0]+"e"+(+r[1]+e)),r=(Ri(r)+"e").split("e");return+(r[0]+"e"+(+r[1]-e))}return t(n)}}function lr(n){return function(t){var e=yo(t);return"[object Map]"==e?B(t):"[object Set]"==e?q(t):W(t,n(t))}}function sr(n,t,e,r,i,u,o,a){var f=2&t;if(!f&&"function"!=typeof n)throw new eu("Expected a function");var c=r?r.length:0;if(c||(t&=-97,r=i=K),o=o===K?o:Pu(Ci(o),0),a=a===K?a:Ci(a),c-=i?i.length:0,64&t){var l=r,s=i;r=i=K}var p=f?K:ho(n);return u=[n,t,e,r,i,l,s,u,o,a],p&&(e=u[1],n=p[1],t=e|n,r=128==n&&8==e||128==n&&256==e&&p[8]>=u[7].length||384==n&&p[8]>=p[7].length&&8==e,131>t||r)&&(1&n&&(u[2]=p[2],t|=1&e?0:4),(e=p[3])&&(r=u[3],u[3]=r?Me(r,e,p[4]):e,u[4]=r?U(u[3],"__lodash_placeholder__"):p[4]),(e=p[5])&&(r=u[5],u[5]=r?De(r,e,p[6]):e,u[6]=r?U(u[5],"__lodash_placeholder__"):p[6]),(e=p[7])&&(u[7]=e),128&n&&(u[8]=null==u[8]?p[8]:Mu(u[8],p[8])),null==u[9]&&(u[9]=p[9]),u[0]=p[0],u[1]=t),n=u[0],t=u[1],e=u[2],r=u[3],i=u[4],a=u[9]=null==u[9]?f?0:n.length:Pu(u[9]-c,0),!a&&24&t&&(t&=-25),Pr((p?co:bo)(t&&1!=t?8==t||16==t?Je(n,t,a):32!=t&&33!=t||i.length?nr.apply(K,u):ur(n,t,e,r):Ye(n,t,e),u),n,t)}function pr(n,t,e,r,i,u){var o=1&e,a=n.length,f=t.length;if(!(a==f||o&&f>a))return!1;if((f=u.get(n))&&u.get(t))return f==t;var f=-1,c=!0,l=2&e?new zn:K;for(u.set(n,t),u.set(t,n);++f<a;){var s=n[f],p=t[f];if(r)var h=o?r(p,s,f,t,n,u):r(s,p,f,n,t,u);if(h!==K){if(h)continue;c=!1;break}if(l){if(!b(t,function(n,t){if(!T(l,t)&&(s===n||i(s,n,e,r,u)))return l.push(t)})){c=!1;break}}else if(s!==p&&!i(s,p,e,r,u)){c=!1;break}}return u.delete(n),u.delete(t),c}function hr(n,t,e,r,i,u,o){switch(e){case"[object DataView]":if(n.byteLength!=t.byteLength||n.byteOffset!=t.byteOffset)break;n=n.buffer,t=t.buffer;case"[object ArrayBuffer]":if(n.byteLength!=t.byteLength||!u(new vu(n),new vu(t)))break;return!0;case"[object Boolean]":case"[object Date]":case"[object Number]":return si(+n,+t);case"[object Error]":return n.name==t.name&&n.message==t.message;case"[object RegExp]":case"[object String]":return n==t+"";case"[object Map]":var a=B;case"[object Set]":if(a||(a=z),n.size!=t.size&&!(1&r))break;return(e=o.get(n))?e==t:(r|=2,o.set(n,t),t=pr(a(n),a(t),r,i,u,o),o.delete(n),t);case"[object Symbol]":if(eo)return eo.call(n)==eo.call(t)}return!1}function dr(n){return xo(Tr(n,K,$r),n+"")}function gr(n){return kt(n,Ni,go)}function vr(n){return kt(n,Li,vo)}function yr(n){for(var t=n.name+"",e=Hu[t],r=au.call(Hu,t)?e.length:0;r--;){var i=e[r],u=i.func;if(null==u||u==n)return i.name}return t}function _r(n){return(au.call(e,"placeholder")?e:n).placeholder}function br(){var n=e.iteratee||zi,n=n===zi?Ht:n;return arguments.length?n(arguments[0],arguments[1]):n}function mr(n,t){var e=n.__data__,r=typeof t;return("string"==r||"number"==r||"symbol"==r||"boolean"==r?"__proto__"!==t:null===t)?e["string"==typeof t?"string":"hash"]:e.map}function xr(n){for(var t=Ni(n),e=t.length;e--;){var r=t[e],i=n[r];t[e]=[r,i,i===i&&!_i(i)]}return t}function Er(n,t){var e=null==n?K:n[t];return $t(e)?e:K}function jr(n,t,e){t=ke(t,n);for(var r=-1,i=t.length,u=!1;++r<i;){var o=Br(t[r]);if(!(u=null!=n&&e(n,o)))break;n=n[o]}return u||++r!=i?u:!!(i=null==n?0:n.length)&&yi(i)&&Sr(o,i)&&(aa(n)||oa(n))}function Ar(n){var t=n.length,e=n.constructor(t);return t&&"string"==typeof n[0]&&au.call(n,"index")&&(e.index=n.index,e.input=n.input),e}function wr(n){return"function"!=typeof n