diff --git a/.idea/workspace.xml b/.idea/workspace.xml new file mode 100644 index 0000000..0d7d6f1 --- /dev/null +++ b/.idea/workspace.xml @@ -0,0 +1,376 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + true + DEFINITION_ORDER + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + project + + + + + + + + + + + + + + + + project + + + true + + + + DIRECTORY + + false + + + + + + + + + 1514385648883 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dist/editable.js b/dist/editable.js index 14b379d..c337b22 100644 --- a/dist/editable.js +++ b/dist/editable.js @@ -1,17 +1,17 @@ -!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("Editable",[],t):"object"==typeof exports?exports.Editable=t():e.Editable=t()}(this,function(){return function(e){function t(r){if(n[r])return n[r].exports;var o=n[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,t),o.l=!0,o.exports}var n={};return t.m=e,t.c=n,t.i=function(e){return e},t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s=189)}([function(e,t,n){"use strict";e.exports=n(39)},function(e,t,n){"use strict";t.__esModule=!0,t.default=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var o=n(192),i=r(o),a=n(191),s=r(a),u=n(69),l=r(u);t.default=function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+(void 0===t?"undefined":(0,l.default)(t)));e.prototype=(0,s.default)(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(i.default?(0,i.default)(e,t):e.__proto__=t)}},function(e,t,n){"use strict";t.__esModule=!0;var r=n(69),o=function(e){return e&&e.__esModule?e:{default:e}}(r);t.default=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==(void 0===t?"undefined":(0,o.default)(t))&&"function"!=typeof t?e:t}},function(e,t,n){"use strict";t.__esModule=!0;var r=n(108),o=function(e){return e&&e.__esModule?e:{default:e}}(r);t.default=o.default||function(e){for(var t=1;t=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}},function(e,t,n){var r,o;/*! +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("Editable",[],t):"object"==typeof exports?exports.Editable=t():e.Editable=t()}(this,function(){return function(e){function t(r){if(n[r])return n[r].exports;var o=n[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,t),o.l=!0,o.exports}var n={};return t.m=e,t.c=n,t.i=function(e){return e},t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s=190)}([function(e,t,n){"use strict";e.exports=n(41)},function(e,t,n){"use strict";t.__esModule=!0,t.default=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var o=n(193),i=r(o),a=n(192),s=r(a),u=n(72),l=r(u);t.default=function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+(void 0===t?"undefined":(0,l.default)(t)));e.prototype=(0,s.default)(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(i.default?(0,i.default)(e,t):e.__proto__=t)}},function(e,t,n){"use strict";t.__esModule=!0;var r=n(72),o=function(e){return e&&e.__esModule?e:{default:e}}(r);t.default=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==(void 0===t?"undefined":(0,o.default)(t))&&"function"!=typeof t?e:t}},function(e,t,n){"use strict";t.__esModule=!0;var r=n(108),o=function(e){return e&&e.__esModule?e:{default:e}}(r);t.default=o.default||function(e){for(var t=1;t=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}},function(e,t,n){var r,o;/*! Copyright (c) 2016 Jed Watson. Licensed under the MIT License (MIT), see http://jedwatson.github.io/classnames */ -!function(){"use strict";function n(){for(var e=[],t=0;t1?t-1:0),r=1;r1?t-1:0),r=1;r1){for(var h=Array(d),v=0;v1){for(var y=Array(m),g=0;g>",s=i||n;if(null==t[n])return new Error("The "+o+" `"+s+"` is required to make `"+a+"` accessible for users of assistive technologies such as screen readers.");for(var u=arguments.length,l=Array(u>5?u-5:0),c=5;c>",u=a||r;if(null==n[r])return t?new Error("Required "+i+" `"+u+"` was not specified in `"+s+"`."):null;for(var l=arguments.length,c=Array(l>6?l-6:0),p=6;p]/;e.exports=o},function(e,t,n){"use strict";var r,o=n(17),i=n(91),a=/^[ \r\n\t\f]/,s=/<(!--|link|noscript|meta|script|style)[ \r\n\t\f\/>]/,u=n(99),l=u(function(e,t){if(e.namespaceURI!==i.svg||"innerHTML"in e)e.innerHTML=t;else{r=r||document.createElement("div"),r.innerHTML=""+t+"";for(var n=r.firstChild;n.firstChild;)e.appendChild(n.firstChild)}});if(o.canUseDOM){var c=document.createElement("div");c.innerHTML=" ",""===c.innerHTML&&(l=function(e,t){if(e.parentNode&&e.parentNode.replaceChild(e,e),a.test(t)||"<"===t[0]&&s.test(t)){e.innerHTML=String.fromCharCode(65279)+t;var n=e.firstChild;1===n.data.length?e.removeChild(n):n.deleteData(0,1)}else e.innerHTML=t}),c=null}e.exports=l},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var o=n(194),i=r(o),a=n(193),s=r(a),u="function"==typeof s.default&&"symbol"==typeof i.default?function(e){return typeof e}:function(e){return e&&"function"==typeof s.default&&e.constructor===s.default&&e!==s.default.prototype?"symbol":typeof e};t.default="function"==typeof s.default&&"symbol"===u(i.default)?function(e){return void 0===e?"undefined":u(e)}:function(e){return e&&"function"==typeof s.default&&e.constructor===s.default&&e!==s.default.prototype?"symbol":void 0===e?"undefined":u(e)}},function(e,t,n){var r=n(112);e.exports=function(e){if(!r(e))throw TypeError(e+" is not an object!");return e}},function(e,t){var n={}.toString;e.exports=function(e){return n.call(e).slice(8,-1)}},function(e,t,n){var r=n(203);e.exports=function(e,t,n){if(r(e),void 0===t)return e;switch(n){case 1:return function(n){return e.call(t,n)};case 2:return function(n,r){return e.call(t,n,r)};case 3:return function(n,r,o){return e.call(t,n,r,o)}}return function(){return e.apply(t,arguments)}}},function(e,t){e.exports=function(e){if(void 0==e)throw TypeError("Can't call method on "+e);return e}},function(e,t){e.exports=function(e){try{return!!e()}catch(e){return!0}}},function(e,t){var n={}.hasOwnProperty;e.exports=function(e,t){return n.call(e,t)}},function(e,t,n){var r=n(20),o=n(77);e.exports=n(110)?function(e,t,n){return r.setDesc(e,t,o(1,n))}:function(e,t,n){return e[t]=n,e}},function(e,t){e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},function(e,t,n){var r=n(20).setDesc,o=n(75),i=n(26)("toStringTag");e.exports=function(e,t,n){e&&!o(e=n?e:e.prototype,i)&&r(e,i,{configurable:!0,value:t})}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(30),o=function(e){return e&&e.__esModule?e:{default:e}}(r),i=function(){};o.default&&(i=function(){return document.addEventListener?function(e,t,n,r){return e.removeEventListener(t,n,r||!1)}:document.attachEvent?function(e,t,n){return e.detachEvent("on"+t,n)}:void 0}()),t.default=i,e.exports=t.default},function(e,t,n){"use strict";function r(e,t){return e===t?0!==e||0!==t||1/e==1/t:e!==e&&t!==t}function o(e,t){if(r(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;var n=Object.keys(e),o=Object.keys(t);if(n.length!==o.length)return!1;for(var a=0;a1){for(var h=Array(d),v=0;v1){for(var y=Array(m),g=0;g>",s=i||n;if(null==t[n])return new Error("The "+o+" `"+s+"` is required to make `"+a+"` accessible for users of assistive technologies such as screen readers.");for(var u=arguments.length,l=Array(u>5?u-5:0),c=5;c>",u=a||r;if(null==n[r])return t?new Error("Required "+i+" `"+u+"` was not specified in `"+s+"`."):null;for(var l=arguments.length,c=Array(l>6?l-6:0),p=6;p]/;e.exports=o},function(e,t,n){"use strict";var r,o=n(18),i=n(92),a=/^[ \r\n\t\f]/,s=/<(!--|link|noscript|meta|script|style)[ \r\n\t\f\/>]/,u=n(100),l=u(function(e,t){if(e.namespaceURI!==i.svg||"innerHTML"in e)e.innerHTML=t;else{r=r||document.createElement("div"),r.innerHTML=""+t+"";for(var n=r.firstChild;n.firstChild;)e.appendChild(n.firstChild)}});if(o.canUseDOM){var c=document.createElement("div");c.innerHTML=" ",""===c.innerHTML&&(l=function(e,t){if(e.parentNode&&e.parentNode.replaceChild(e,e),a.test(t)||"<"===t[0]&&s.test(t)){e.innerHTML=String.fromCharCode(65279)+t;var n=e.firstChild;1===n.data.length?e.removeChild(n):n.deleteData(0,1)}else e.innerHTML=t}),c=null}e.exports=l},function(e,t,n){"use strict";function r(e,t){return e="function"==typeof e?e():e,i.default.findDOMNode(e)||t}t.__esModule=!0,t.default=r;var o=n(17),i=function(e){return e&&e.__esModule?e:{default:e}}(o);e.exports=t.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var o=n(195),i=r(o),a=n(194),s=r(a),u="function"==typeof s.default&&"symbol"==typeof i.default?function(e){return typeof e}:function(e){return e&&"function"==typeof s.default&&e.constructor===s.default&&e!==s.default.prototype?"symbol":typeof e};t.default="function"==typeof s.default&&"symbol"===u(i.default)?function(e){return void 0===e?"undefined":u(e)}:function(e){return e&&"function"==typeof s.default&&e.constructor===s.default&&e!==s.default.prototype?"symbol":void 0===e?"undefined":u(e)}},function(e,t,n){var r=n(112);e.exports=function(e){if(!r(e))throw TypeError(e+" is not an object!");return e}},function(e,t){var n={}.toString;e.exports=function(e){return n.call(e).slice(8,-1)}},function(e,t,n){var r=n(204);e.exports=function(e,t,n){if(r(e),void 0===t)return e;switch(n){case 1:return function(n){return e.call(t,n)};case 2:return function(n,r){return e.call(t,n,r)};case 3:return function(n,r,o){return e.call(t,n,r,o)}}return function(){return e.apply(t,arguments)}}},function(e,t){e.exports=function(e){if(void 0==e)throw TypeError("Can't call method on "+e);return e}},function(e,t){e.exports=function(e){try{return!!e()}catch(e){return!0}}},function(e,t){var n={}.hasOwnProperty;e.exports=function(e,t){return n.call(e,t)}},function(e,t,n){var r=n(20),o=n(80);e.exports=n(110)?function(e,t,n){return r.setDesc(e,t,o(1,n))}:function(e,t,n){return e[t]=n,e}},function(e,t){e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},function(e,t,n){var r=n(20).setDesc,o=n(78),i=n(26)("toStringTag");e.exports=function(e,t,n){e&&!o(e=n?e:e.prototype,i)&&r(e,i,{configurable:!0,value:t})}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(30),o=function(e){return e&&e.__esModule?e:{default:e}}(r),i=function(){};o.default&&(i=function(){return document.addEventListener?function(e,t,n,r){return e.removeEventListener(t,n,r||!1)}:document.attachEvent?function(e,t,n){return e.detachEvent("on"+t,n)}:void 0}()),t.default=i,e.exports=t.default},function(e,t,n){"use strict";function r(e,t){return e===t?0!==e||0!==t||1/e==1/t:e!==e&&t!==t}function o(e,t){if(r(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;var n=Object.keys(e),o=Object.keys(t);if(n.length!==o.length)return!1;for(var a=0;a1?n-1:0),o=1;o-1||a("96",e),!l.plugins[n]){t.extractEvents||a("97",e),l.plugins[n]=t;var r=t.eventTypes;for(var i in r)o(r[i],t,i)||a("98",i,e)}}}function o(e,t,n){l.eventNameDispatchConfigs.hasOwnProperty(n)&&a("99",n),l.eventNameDispatchConfigs[n]=e;var r=e.phasedRegistrationNames;if(r){for(var o in r)if(r.hasOwnProperty(o)){var s=r[o];i(s,t,n)}return!0}return!!e.registrationName&&(i(e.registrationName,t,n),!0)}function i(e,t,n){l.registrationNameModules[e]&&a("100",e),l.registrationNameModules[e]=t,l.registrationNameDependencies[e]=t.eventTypes[n].dependencies}var a=n(11),s=(n(9),null),u={},l={plugins:[],eventNameDispatchConfigs:{},registrationNameModules:{},registrationNameDependencies:{},possibleRegistrationNames:null,injectEventPluginOrder:function(e){s&&a("101"),s=Array.prototype.slice.call(e),r()},injectEventPluginsByName:function(e){var t=!1;for(var n in e)if(e.hasOwnProperty(n)){var o=e[n];u.hasOwnProperty(n)&&u[n]===o||(u[n]&&a("102",n),u[n]=o,t=!0)}t&&r()},getPluginModuleForEvent:function(e){var t=e.dispatchConfig;if(t.registrationName)return l.registrationNameModules[t.registrationName]||null;if(void 0!==t.phasedRegistrationNames){var n=t.phasedRegistrationNames;for(var r in n)if(n.hasOwnProperty(r)){var o=l.registrationNameModules[n[r]];if(o)return o}}return null},_resetEventPlugins:function(){s=null;for(var e in u)u.hasOwnProperty(e)&&delete u[e];l.plugins.length=0;var t=l.eventNameDispatchConfigs;for(var n in t)t.hasOwnProperty(n)&&delete t[n];var r=l.registrationNameModules;for(var o in r)r.hasOwnProperty(o)&&delete r[o]}};e.exports=l},function(e,t,n){"use strict";function r(e){return"topMouseUp"===e||"topTouchEnd"===e||"topTouchCancel"===e}function o(e){return"topMouseMove"===e||"topTouchMove"===e}function i(e){return"topMouseDown"===e||"topTouchStart"===e}function a(e,t,n,r){var o=e.type||"unknown-event";e.currentTarget=y.getNodeFromInstance(r),t?v.invokeGuardedCallbackWithCatch(o,n,e):v.invokeGuardedCallback(o,n,e),e.currentTarget=null}function s(e,t){var n=e._dispatchListeners,r=e._dispatchInstances;if(Array.isArray(n))for(var o=0;o0&&r.length<20?n+" (keys: "+r.join(", ")+")":n}function i(e,t){var n=s.get(e);if(!n){return null}return n}var a=n(11),s=(n(28),n(47)),u=(n(23),n(25)),l=(n(9),n(10),{isMounted:function(e){var t=s.get(e);return!!t&&!!t._renderedComponent},enqueueCallback:function(e,t,n){l.validateCallback(t,n);var o=i(e);if(!o)return null;o._pendingCallbacks?o._pendingCallbacks.push(t):o._pendingCallbacks=[t],r(o)},enqueueCallbackInternal:function(e,t){e._pendingCallbacks?e._pendingCallbacks.push(t):e._pendingCallbacks=[t],r(e)},enqueueForceUpdate:function(e){var t=i(e,"forceUpdate");t&&(t._pendingForceUpdate=!0,r(t))},enqueueReplaceState:function(e,t,n){var o=i(e,"replaceState");o&&(o._pendingStateQueue=[t],o._pendingReplaceState=!0,void 0!==n&&null!==n&&(l.validateCallback(n,"replaceState"),o._pendingCallbacks?o._pendingCallbacks.push(n):o._pendingCallbacks=[n]),r(o))},enqueueSetState:function(e,t){var n=i(e,"setState");if(n){(n._pendingStateQueue||(n._pendingStateQueue=[])).push(t),r(n)}},enqueueElementInternal:function(e,t,n){e._pendingElement=t,e._context=n,r(e)},validateCallback:function(e,t){e&&"function"!=typeof e&&a("122",t,o(e))}});e.exports=l},function(e,t,n){"use strict";var r=function(e){return"undefined"!=typeof MSApp&&MSApp.execUnsafeLocalFunction?function(t,n,r,o){MSApp.execUnsafeLocalFunction(function(){return e(t,n,r,o)})}:e};e.exports=r},function(e,t,n){"use strict";function r(e){var t,n=e.keyCode;return"charCode"in e?0===(t=e.charCode)&&13===n&&(t=13):t=n,t>=32||13===t?t:0}e.exports=r},function(e,t,n){"use strict";function r(e){var t=this,n=t.nativeEvent;if(n.getModifierState)return n.getModifierState(e);var r=i[e];return!!r&&!!n[r]}function o(e){return r}var i={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};e.exports=o},function(e,t,n){"use strict";function r(e){var t=e.target||e.srcElement||window;return t.correspondingUseElement&&(t=t.correspondingUseElement),3===t.nodeType?t.parentNode:t}e.exports=r},function(e,t,n){"use strict";/** +for(o=97;o<123;o++)n[String.fromCharCode(o)]=o-32;for(var o=48;o<58;o++)n[o-48]=o;for(o=1;o<13;o++)n["f"+o]=o+111;for(o=0;o<10;o++)n["numpad "+o]=o+96;var i=t.names=t.title={};for(o in n)i[n[o]]=o;for(var a in r)n[a]=r[a]},function(e,t,n){"use strict";var r=n(4),o=n.n(r),i=n(5),a=n.n(i),s=n(1),u=n.n(s),l=n(3),c=n.n(l),p=n(2),f=n.n(p),d=n(6),h=n.n(d),v=n(0),m=n.n(v),y=n(7),g=n.n(y),b=n(58),_=n.n(b),C=n(45),E=n(8),x={vertical:g.a.bool,justified:g.a.bool,block:_()(g.a.bool,function(e){var t=e.block,n=e.vertical;return t&&!n?new Error("`block` requires `vertical` to be set to have any effect"):null})},w={block:!1,justified:!1,vertical:!1},T=function(e){function t(){return u()(this,t),c()(this,e.apply(this,arguments))}return f()(t,e),t.prototype.render=function(){var e,t=this.props,r=t.block,i=t.justified,s=t.vertical,u=t.className,l=a()(t,["block","justified","vertical","className"]),c=n.i(E.splitBsProps)(l),p=c[0],f=c[1],d=o()({},n.i(E.getClassSet)(p),(e={},e[n.i(E.prefix)(p)]=!s,e[n.i(E.prefix)(p,"vertical")]=s,e[n.i(E.prefix)(p,"justified")]=i,e[n.i(E.prefix)(C.a.defaultProps,"block")]=r,e));return m.a.createElement("div",o()({},f,{className:h()(u,d)}))},t}(m.a.Component);T.propTypes=x,T.defaultProps=w,t.a=n.i(E.bsClass)("btn-group",T)},function(e,t,n){"use strict";var r=n(1),o=n.n(r),i=n(3),a=n.n(i),s=n(2),u=n.n(s),l=n(7),c=n.n(l),p=n(0),f=n.n(p),d={label:c.a.string.isRequired,onClick:c.a.func},h={label:"Close"},v=function(e){function t(){return o()(this,t),a()(this,e.apply(this,arguments))}return u()(t,e),t.prototype.render=function(){var e=this.props,t=e.label,n=e.onClick;return f.a.createElement("button",{type:"button",className:"close",onClick:n},f.a.createElement("span",{"aria-hidden":"true"},"×"),f.a.createElement("span",{className:"sr-only"},t))},t}(f.a.Component);v.propTypes=d,v.defaultProps=h,t.a=v},function(e,t,n){"use strict";function r(e){e.offsetHeight}function o(e,t){var r=t["offset"+n.i(T.a)(e)],o=N[e];return r+parseInt(g()(t,o[0]),10)+parseInt(g()(t,o[1]),10)}var i=n(4),a=n.n(i),s=n(5),u=n.n(s),l=n(1),c=n.n(l),p=n(3),f=n.n(p),d=n(2),h=n.n(d),v=n(6),m=n.n(v),y=n(55),g=n.n(y),b=n(0),_=n.n(b),C=n(7),E=n.n(C),x=n(177),w=n.n(x),T=n(153),O=n(15),N={height:["marginTop","marginBottom"],width:["marginLeft","marginRight"]},S={in:E.a.bool,mountOnEnter:E.a.bool,unmountOnExit:E.a.bool,transitionAppear:E.a.bool,timeout:E.a.number,onEnter:E.a.func,onEntering:E.a.func,onEntered:E.a.func,onExit:E.a.func,onExiting:E.a.func,onExited:E.a.func,dimension:E.a.oneOfType([E.a.oneOf(["height","width"]),E.a.func]),getDimensionValue:E.a.func,role:E.a.string},k={in:!1,timeout:300,mountOnEnter:!1,unmountOnExit:!1,transitionAppear:!1,dimension:"height",getDimensionValue:o},P=function(e){function t(n,r){c()(this,t);var o=f()(this,e.call(this,n,r));return o.handleEnter=o.handleEnter.bind(o),o.handleEntering=o.handleEntering.bind(o),o.handleEntered=o.handleEntered.bind(o),o.handleExit=o.handleExit.bind(o),o.handleExiting=o.handleExiting.bind(o),o}return h()(t,e),t.prototype._dimension=function(){return"function"==typeof this.props.dimension?this.props.dimension():this.props.dimension},t.prototype._getScrollDimensionValue=function(e,t){return e["scroll"+n.i(T.a)(t)]+"px"},t.prototype.handleEnter=function(e){var t=this._dimension();e.style[t]="0"},t.prototype.handleEntered=function(e){var t=this._dimension();e.style[t]=null},t.prototype.handleEntering=function(e){var t=this._dimension();e.style[t]=this._getScrollDimensionValue(e,t)},t.prototype.handleExit=function(e){var t=this._dimension();e.style[t]=this.props.getDimensionValue(t,e)+"px",r(e)},t.prototype.handleExiting=function(e){var t=this._dimension();e.style[t]="0"},t.prototype.render=function(){var e=this.props,t=e.onEnter,r=e.onEntering,o=e.onEntered,i=e.onExit,s=e.onExiting,l=e.className,c=u()(e,["onEnter","onEntering","onEntered","onExit","onExiting","className"]);delete c.dimension,delete c.getDimensionValue;var p=n.i(O.a)(this.handleEnter,t),f=n.i(O.a)(this.handleEntering,r),d=n.i(O.a)(this.handleEntered,o),h=n.i(O.a)(this.handleExit,i),v=n.i(O.a)(this.handleExiting,s),y={width:"width"===this._dimension()};return _.a.createElement(w.a,a()({},c,{"aria-expanded":c.role?c.in:null,className:m()(l,y),exitedClassName:"collapse",exitingClassName:"collapsing",enteredClassName:"collapse in",enteringClassName:"collapsing",onEnter:p,onEntering:f,onEntered:d,onExit:h,onExiting:v}))},t}(_.a.Component);P.propTypes=S,P.defaultProps=k,t.a=P},function(e,t,n){"use strict";var r=n(4),o=n.n(r),i=n(5),a=n.n(i),s=n(1),u=n.n(s),l=n(3),c=n.n(l),p=n(2),f=n.n(p),d=n(6),h=n.n(d),v=n(0),m=n.n(v),y=n(7),g=n.n(y),b=n(8),_={glyph:g.a.string.isRequired},C=function(e){function t(){return u()(this,t),c()(this,e.apply(this,arguments))}return f()(t,e),t.prototype.render=function(){var e,t=this.props,r=t.glyph,i=t.className,s=a()(t,["glyph","className"]),u=n.i(b.splitBsProps)(s),l=u[0],c=u[1],p=o()({},n.i(b.getClassSet)(l),(e={},e[n.i(b.prefix)(l,r)]=!0,e));return m.a.createElement("span",o()({},c,{className:h()(i,p)}))},t}(m.a.Component);C.propTypes=_,t.a=n.i(b.bsClass)("glyphicon",C)},function(e,t,n){"use strict";var r=n(5),o=n.n(r),i=n(1),a=n.n(i),s=n(3),u=n.n(s),l=n(2),c=n.n(l),p=n(0),f=n.n(p),d=n(7),h=n.n(d),v=n(51),m=n.n(v),y=h.a.oneOfType([h.a.string,h.a.number]),g={id:function(e){var t=null;if(!e.generateChildId){for(var n=arguments.length,r=Array(n>1?n-1:0),o=1;o-1||a("96",e),!l.plugins[n]){t.extractEvents||a("97",e),l.plugins[n]=t;var r=t.eventTypes;for(var i in r)o(r[i],t,i)||a("98",i,e)}}}function o(e,t,n){l.eventNameDispatchConfigs.hasOwnProperty(n)&&a("99",n),l.eventNameDispatchConfigs[n]=e;var r=e.phasedRegistrationNames;if(r){for(var o in r)if(r.hasOwnProperty(o)){var s=r[o];i(s,t,n)}return!0}return!!e.registrationName&&(i(e.registrationName,t,n),!0)}function i(e,t,n){l.registrationNameModules[e]&&a("100",e),l.registrationNameModules[e]=t,l.registrationNameDependencies[e]=t.eventTypes[n].dependencies}var a=n(11),s=(n(9),null),u={},l={plugins:[],eventNameDispatchConfigs:{},registrationNameModules:{},registrationNameDependencies:{},possibleRegistrationNames:null,injectEventPluginOrder:function(e){s&&a("101"),s=Array.prototype.slice.call(e),r()},injectEventPluginsByName:function(e){var t=!1;for(var n in e)if(e.hasOwnProperty(n)){var o=e[n];u.hasOwnProperty(n)&&u[n]===o||(u[n]&&a("102",n),u[n]=o,t=!0)}t&&r()},getPluginModuleForEvent:function(e){var t=e.dispatchConfig;if(t.registrationName)return l.registrationNameModules[t.registrationName]||null;if(void 0!==t.phasedRegistrationNames){var n=t.phasedRegistrationNames;for(var r in n)if(n.hasOwnProperty(r)){var o=l.registrationNameModules[n[r]];if(o)return o}}return null},_resetEventPlugins:function(){s=null;for(var e in u)u.hasOwnProperty(e)&&delete u[e];l.plugins.length=0;var t=l.eventNameDispatchConfigs;for(var n in t)t.hasOwnProperty(n)&&delete t[n];var r=l.registrationNameModules;for(var o in r)r.hasOwnProperty(o)&&delete r[o]}};e.exports=l},function(e,t,n){"use strict";function r(e){return"topMouseUp"===e||"topTouchEnd"===e||"topTouchCancel"===e}function o(e){return"topMouseMove"===e||"topTouchMove"===e}function i(e){return"topMouseDown"===e||"topTouchStart"===e}function a(e,t,n,r){var o=e.type||"unknown-event";e.currentTarget=y.getNodeFromInstance(r),t?v.invokeGuardedCallbackWithCatch(o,n,e):v.invokeGuardedCallback(o,n,e),e.currentTarget=null}function s(e,t){var n=e._dispatchListeners,r=e._dispatchInstances;if(Array.isArray(n))for(var o=0;o0&&r.length<20?n+" (keys: "+r.join(", ")+")":n}function i(e,t){var n=s.get(e);if(!n){return null}return n}var a=n(11),s=(n(28),n(48)),u=(n(23),n(25)),l=(n(9),n(10),{isMounted:function(e){var t=s.get(e);return!!t&&!!t._renderedComponent},enqueueCallback:function(e,t,n){l.validateCallback(t,n);var o=i(e);if(!o)return null;o._pendingCallbacks?o._pendingCallbacks.push(t):o._pendingCallbacks=[t],r(o)},enqueueCallbackInternal:function(e,t){e._pendingCallbacks?e._pendingCallbacks.push(t):e._pendingCallbacks=[t],r(e)},enqueueForceUpdate:function(e){var t=i(e,"forceUpdate");t&&(t._pendingForceUpdate=!0,r(t))},enqueueReplaceState:function(e,t,n){var o=i(e,"replaceState");o&&(o._pendingStateQueue=[t],o._pendingReplaceState=!0,void 0!==n&&null!==n&&(l.validateCallback(n,"replaceState"),o._pendingCallbacks?o._pendingCallbacks.push(n):o._pendingCallbacks=[n]),r(o))},enqueueSetState:function(e,t){var n=i(e,"setState");if(n){(n._pendingStateQueue||(n._pendingStateQueue=[])).push(t),r(n)}},enqueueElementInternal:function(e,t,n){e._pendingElement=t,e._context=n,r(e)},validateCallback:function(e,t){e&&"function"!=typeof e&&a("122",t,o(e))}});e.exports=l},function(e,t,n){"use strict";var r=function(e){return"undefined"!=typeof MSApp&&MSApp.execUnsafeLocalFunction?function(t,n,r,o){MSApp.execUnsafeLocalFunction(function(){return e(t,n,r,o)})}:e};e.exports=r},function(e,t,n){"use strict";function r(e){var t,n=e.keyCode;return"charCode"in e?0===(t=e.charCode)&&13===n&&(t=13):t=n,t>=32||13===t?t:0}e.exports=r},function(e,t,n){"use strict";function r(e){var t=this,n=t.nativeEvent;if(n.getModifierState)return n.getModifierState(e);var r=i[e];return!!r&&!!n[r]}function o(e){return r}var i={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};e.exports=o},function(e,t,n){"use strict";function r(e){var t=e.target||e.srcElement||window;return t.correspondingUseElement&&(t=t.correspondingUseElement),3===t.nodeType?t.parentNode:t}e.exports=r},function(e,t,n){"use strict";/** * Checks if an event is supported in the current execution environment. * * NOTE: This will not work correctly for non-generic events such as `change`, @@ -25,4 +25,4 @@ for(o=97;o<123;o++)n[String.fromCharCode(o)]=o-32;for(var o=48;o<58;o++)n[o-48]= * @internal * @license Modernizr 3.0.0pre (Custom Build) | MIT */ -function r(e,t){if(!i.canUseDOM||t&&!("addEventListener"in document))return!1;var n="on"+e,r=n in document;if(!r){var a=document.createElement("div");a.setAttribute(n,"return;"),r="function"==typeof a[n]}return!r&&o&&"wheel"===e&&(r=document.implementation.hasFeature("Events.wheel","3.0")),r}var o,i=n(17);i.canUseDOM&&(o=document.implementation&&document.implementation.hasFeature&&!0!==document.implementation.hasFeature("","")),e.exports=r},function(e,t,n){"use strict";function r(e,t){var n=null===e||!1===e,r=null===t||!1===t;if(n||r)return n===r;var o=typeof e,i=typeof t;return"string"===o||"number"===o?"string"===i||"number"===i:"object"===i&&e.type===t.type&&e.key===t.key}e.exports=r},function(e,t,n){"use strict";var r=(n(13),n(21)),o=(n(10),r);e.exports=o},function(e,t,n){"use strict";function r(e,t){return e="function"==typeof e?e():e,i.default.findDOMNode(e)||t}t.__esModule=!0,t.default=r;var o=n(19),i=function(e){return e&&e.__esModule?e:{default:e}}(o);e.exports=t.default},function(e,t,n){(function(e,r){var o;(function(){function i(e,t){return e.set(t[0],t[1]),e}function a(e,t){return e.add(t),e}function s(e,t,n){switch(n.length){case 0:return e.call(t);case 1:return e.call(t,n[0]);case 2:return e.call(t,n[0],n[1]);case 3:return e.call(t,n[0],n[1],n[2])}return e.apply(t,n)}function u(e,t,n,r){for(var o=-1,i=null==e?0:e.length;++o-1}function h(e,t,n){for(var r=-1,o=null==e?0:e.length;++r-1;);return n}function B(e,t){for(var n=e.length;n--&&w(t,e[n],0)>-1;);return n}function F(e,t){for(var n=e.length,r=0;n--;)e[n]===t&&++r;return r}function V(e){return"\\"+Sn[e]}function K(e,t){return null==e?oe:e[t]}function W(e){return bn.test(e)}function H(e){return _n.test(e)}function z(e){for(var t,n=[];!(t=e.next()).done;)n.push(t.value);return n}function q(e){var t=-1,n=Array(e.size);return e.forEach(function(e,r){n[++t]=[r,e]}),n}function $(e,t){return function(n){return e(t(n))}}function Y(e,t){for(var n=-1,r=e.length,o=0,i=[];++n>>1,Be=[["ary",xe],["bind",me],["bindKey",ye],["curry",be],["curryRight",_e],["flip",Te],["partial",Ce],["partialRight",Ee],["rearg",we]],Fe="[object Arguments]",Ve="[object Array]",Ke="[object AsyncFunction]",We="[object Boolean]",He="[object Date]",ze="[object DOMException]",qe="[object Error]",$e="[object Function]",Ye="[object GeneratorFunction]",Ge="[object Map]",Xe="[object Number]",Qe="[object Null]",Ze="[object Object]",Je="[object Proxy]",et="[object RegExp]",tt="[object Set]",nt="[object String]",rt="[object Symbol]",ot="[object Undefined]",it="[object WeakMap]",at="[object WeakSet]",st="[object ArrayBuffer]",ut="[object DataView]",lt="[object Float32Array]",ct="[object Float64Array]",pt="[object Int8Array]",ft="[object Int16Array]",dt="[object Int32Array]",ht="[object Uint8Array]",vt="[object Uint8ClampedArray]",mt="[object Uint16Array]",yt="[object Uint32Array]",gt=/\b__p \+= '';/g,bt=/\b(__p \+=) '' \+/g,_t=/(__e\(.*?\)|\b__t\)) \+\n'';/g,Ct=/&(?:amp|lt|gt|quot|#39);/g,Et=/[&<>"']/g,xt=RegExp(Ct.source),wt=RegExp(Et.source),Tt=/<%-([\s\S]+?)%>/g,Ot=/<%([\s\S]+?)%>/g,Nt=/<%=([\s\S]+?)%>/g,St=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,kt=/^\w*$/,Pt=/^\./,Mt=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,It=/[\\^$.*+?()[\]{}|]/g,At=RegExp(It.source),Rt=/^\s+|\s+$/g,Dt=/^\s+/,Lt=/\s+$/,jt=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,Ut=/\{\n\/\* \[wrapped with (.+)\] \*/,Bt=/,? & /,Ft=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,Vt=/\\(\\)?/g,Kt=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,Wt=/\w*$/,Ht=/^[-+]0x[0-9a-f]+$/i,zt=/^0b[01]+$/i,qt=/^\[object .+?Constructor\]$/,$t=/^0o[0-7]+$/i,Yt=/^(?:0|[1-9]\d*)$/,Gt=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,Xt=/($^)/,Qt=/['\n\r\u2028\u2029\\]/g,Zt="\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff",Jt="\\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",en="["+Jt+"]",tn="["+Zt+"]",nn="[a-z\\xdf-\\xf6\\xf8-\\xff]",rn="[^\\ud800-\\udfff"+Jt+"\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde]",on="\\ud83c[\\udffb-\\udfff]",an="(?:\\ud83c[\\udde6-\\uddff]){2}",sn="[\\ud800-\\udbff][\\udc00-\\udfff]",un="[A-Z\\xc0-\\xd6\\xd8-\\xde]",ln="(?:"+nn+"|"+rn+")",cn="(?:[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|\\ud83c[\\udffb-\\udfff])?",pn="(?:\\u200d(?:"+["[^\\ud800-\\udfff]",an,sn].join("|")+")[\\ufe0e\\ufe0f]?"+cn+")*",fn="[\\ufe0e\\ufe0f]?"+cn+pn,dn="(?:"+["[\\u2700-\\u27bf]",an,sn].join("|")+")"+fn,hn="(?:"+["[^\\ud800-\\udfff]"+tn+"?",tn,an,sn,"[\\ud800-\\udfff]"].join("|")+")",vn=RegExp("['’]","g"),mn=RegExp(tn,"g"),yn=RegExp(on+"(?="+on+")|"+hn+fn,"g"),gn=RegExp([un+"?"+nn+"+(?:['’](?:d|ll|m|re|s|t|ve))?(?="+[en,un,"$"].join("|")+")","(?:[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))?(?="+[en,un+ln,"$"].join("|")+")",un+"?"+ln+"+(?:['’](?:d|ll|m|re|s|t|ve))?",un+"+(?:['’](?:D|LL|M|RE|S|T|VE))?","\\d*(?:(?:1ST|2ND|3RD|(?![123])\\dTH)\\b)","\\d*(?:(?:1st|2nd|3rd|(?![123])\\dth)\\b)","\\d+",dn].join("|"),"g"),bn=RegExp("[\\u200d\\ud800-\\udfff"+Zt+"\\ufe0e\\ufe0f]"),_n=/[a-z][A-Z]|[A-Z]{2,}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,Cn=["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"],En=-1,xn={};xn[lt]=xn[ct]=xn[pt]=xn[ft]=xn[dt]=xn[ht]=xn[vt]=xn[mt]=xn[yt]=!0,xn[Fe]=xn[Ve]=xn[st]=xn[We]=xn[ut]=xn[He]=xn[qe]=xn[$e]=xn[Ge]=xn[Xe]=xn[Ze]=xn[et]=xn[tt]=xn[nt]=xn[it]=!1;var wn={};wn[Fe]=wn[Ve]=wn[st]=wn[ut]=wn[We]=wn[He]=wn[lt]=wn[ct]=wn[pt]=wn[ft]=wn[dt]=wn[Ge]=wn[Xe]=wn[Ze]=wn[et]=wn[tt]=wn[nt]=wn[rt]=wn[ht]=wn[vt]=wn[mt]=wn[yt]=!0,wn[qe]=wn[$e]=wn[it]=!1;var Tn={"À":"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"},On={"&":"&","<":"<",">":">",'"':""","'":"'"},Nn={"&":"&","<":"<",">":">",""":'"',"'":"'"},Sn={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},kn=parseFloat,Pn=parseInt,Mn="object"==typeof e&&e&&e.Object===Object&&e,In="object"==typeof self&&self&&self.Object===Object&&self,An=Mn||In||Function("return this")(),Rn="object"==typeof t&&t&&!t.nodeType&&t,Dn=Rn&&"object"==typeof r&&r&&!r.nodeType&&r,Ln=Dn&&Dn.exports===Rn,jn=Ln&&Mn.process,Un=function(){try{return jn&&jn.binding&&jn.binding("util")}catch(e){}}(),Bn=Un&&Un.isArrayBuffer,Fn=Un&&Un.isDate,Vn=Un&&Un.isMap,Kn=Un&&Un.isRegExp,Wn=Un&&Un.isSet,Hn=Un&&Un.isTypedArray,zn=S("length"),qn=k(Tn),$n=k(On),Yn=k(Nn),Gn=function e(t){function n(e){if(iu(e)&&!yf(e)&&!(e instanceof _)){if(e instanceof o)return e;if(mc.call(e,"__wrapped__"))return na(e)}return new o(e)}function r(){}function o(e,t){this.__wrapped__=e,this.__actions__=[],this.__chain__=!!t,this.__index__=0,this.__values__=oe}function _(e){this.__wrapped__=e,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=Le,this.__views__=[]}function k(){var e=new _(this.__wrapped__);return e.__actions__=Uo(this.__actions__),e.__dir__=this.__dir__,e.__filtered__=this.__filtered__,e.__iteratees__=Uo(this.__iteratees__),e.__takeCount__=this.__takeCount__,e.__views__=Uo(this.__views__),e}function Q(){if(this.__filtered__){var e=new _(this);e.__dir__=-1,e.__filtered__=!0}else e=this.clone(),e.__dir__*=-1;return e}function te(){var e=this.__wrapped__.value(),t=this.__dir__,n=yf(e),r=t<0,o=n?e.length:0,i=Ni(0,o,this.__views__),a=i.start,s=i.end,u=s-a,l=r?s:a-1,c=this.__iteratees__,p=c.length,f=0,d=qc(u,this.__takeCount__);if(!n||!r&&o==u&&d==u)return bo(e,this.__actions__);var h=[];e:for(;u--&&f-1}function un(e,t){var n=this.__data__,r=Xn(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this}function ln(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t=t?e:t)),e}function rr(e,t,n,r,o,i){var a,s=t&pe,u=t&fe,c=t&de;if(n&&(a=o?n(e,r,o,i):n(e)),a!==oe)return a;if(!ou(e))return e;var p=yf(e);if(p){if(a=Pi(e),!s)return Uo(e,a)}else{var f=Op(e),d=f==$e||f==Ye;if(bf(e))return Oo(e,s);if(f==Ze||f==Fe||d&&!o){if(a=u||d?{}:Mi(e),!s)return u?Vo(e,Jn(a,e)):Fo(e,Zn(a,e))}else{if(!wn[f])return o?e:{};a=Ii(e,f,rr,s)}}i||(i=new _n);var h=i.get(e);if(h)return h;i.set(e,a);var v=c?u?bi:gi:u?Vu:Fu,m=p?oe:v(e);return l(m||e,function(r,o){m&&(o=r,r=e[o]),zn(a,o,rr(r,t,n,o,e,i))}),a}function or(e){var t=Fu(e);return function(n){return ir(n,e,t)}}function ir(e,t,n){var r=n.length;if(null==e)return!r;for(e=sc(e);r--;){var o=n[r],i=t[o],a=e[o];if(a===oe&&!(o in e)||!i(a))return!1}return!0}function ar(e,t,n){if("function"!=typeof e)throw new cc(se);return kp(function(){e.apply(oe,n)},t)}function sr(e,t,n,r){var o=-1,i=d,a=!0,s=e.length,u=[],l=t.length;if(!s)return u;n&&(t=v(t,D(n))),r?(i=h,a=!1):t.length>=ie&&(i=j,a=!1,t=new yn(t));e:for(;++oo?0:o+n),r=r===oe||r>o?o:Eu(r),r<0&&(r+=o),r=n>r?0:xu(r);n0&&n(s)?t>1?fr(s,t-1,n,r,o):m(o,s):r||(o[o.length]=s)}return o}function dr(e,t){return e&&mp(e,t,Fu)}function hr(e,t){return e&&yp(e,t,Fu)}function vr(e,t){return f(t,function(t){return tu(e[t])})}function mr(e,t){t=wo(t,e);for(var n=0,r=t.length;null!=e&&nt}function _r(e,t){return null!=e&&mc.call(e,t)}function Cr(e,t){return null!=e&&t in sc(e)}function Er(e,t,n){return e>=qc(t,n)&&e=120&&c.length>=120)?new yn(a&&c):oe}c=e[0];var p=-1,f=s[0];e:for(;++p-1;)s!==e&&Pc.call(s,u,1),Pc.call(e,u,1);return e}function Zr(e,t){for(var n=e?t.length:0,r=n-1;n--;){var o=t[n];if(n==r||o!==i){var i=o;Di(o)?Pc.call(e,o,1):mo(e,o)}}return e}function Jr(e,t){return e+Bc(Gc()*(t-e+1))}function eo(e,t,n,r){for(var o=-1,i=zc(Uc((t-e)/(n||1)),0),a=nc(i);i--;)a[r?i:++o]=e,e+=n;return a}function to(e,t){var n="";if(!e||t<1||t>Ae)return n;do{t%2&&(n+=e),(t=Bc(t/2))&&(e+=e)}while(t);return n}function no(e,t){return Pp($i(e,t,Pl),e+"")}function ro(e){return Rn(Ju(e))}function oo(e,t){var n=Ju(e);return Zi(n,nr(t,0,n.length))}function io(e,t,n,r){if(!ou(e))return e;t=wo(t,e);for(var o=-1,i=t.length,a=i-1,s=e;null!=s&&++oo?0:o+t),n=n>o?o:n,n<0&&(n+=o),o=t>n?0:n-t>>>0,t>>>=0;for(var i=nc(o);++r>>1,a=e[i];null!==a&&!mu(a)&&(n?a<=t:a=ie){var l=t?null:Ep(e);if(l)return G(l);a=!1,o=j,u=new yn}else u=t?[]:s;e:for(;++r=r?e:so(e,t,n)}function Oo(e,t){if(t)return e.slice();var n=e.length,r=Oc?Oc(n):new e.constructor(n);return e.copy(r),r}function No(e){var t=new e.constructor(e.byteLength);return new Tc(t).set(new Tc(e)),t}function So(e,t){var n=t?No(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.byteLength)}function ko(e,t,n){return y(t?n(q(e),pe):q(e),i,new e.constructor)}function Po(e){var t=new e.constructor(e.source,Wt.exec(e));return t.lastIndex=e.lastIndex,t}function Mo(e,t,n){return y(t?n(G(e),pe):G(e),a,new e.constructor)}function Io(e){return pp?sc(pp.call(e)):{}}function Ao(e,t){var n=t?No(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.length)}function Ro(e,t){if(e!==t){var n=e!==oe,r=null===e,o=e===e,i=mu(e),a=t!==oe,s=null===t,u=t===t,l=mu(t);if(!s&&!l&&!i&&e>t||i&&a&&u&&!s&&!l||r&&a&&u||!n&&u||!o)return 1;if(!r&&!i&&!l&&e=s)return u;return u*("desc"==n[r]?-1:1)}}return e.index-t.index}function Lo(e,t,n,r){for(var o=-1,i=e.length,a=n.length,s=-1,u=t.length,l=zc(i-a,0),c=nc(u+l),p=!r;++s1?n[o-1]:oe,a=o>2?n[2]:oe;for(i=e.length>3&&"function"==typeof i?(o--,i):oe,a&&Li(n[0],n[1],a)&&(i=o<3?oe:i,o=1),t=sc(t);++r-1?o[i?t[a]:a]:oe}}function Zo(e){return yi(function(t){var n=t.length,r=n,i=o.prototype.thru;for(e&&t.reverse();r--;){var a=t[r];if("function"!=typeof a)throw new cc(se);if(i&&!s&&"wrapper"==_i(a))var s=new o([],!0)}for(r=s?r:n;++r1&&g.reverse(),p&&us))return!1;var l=i.get(e);if(l&&i.get(t))return l==t;var c=-1,p=!0,f=n&ve?new yn:oe;for(i.set(e,t),i.set(t,e);++c1?"& ":"")+t[r],t=t.join(n>2?", ":" "),e.replace(jt,"{\n/* [wrapped with "+t+"] */\n")}function Ri(e){return yf(e)||mf(e)||!!(Mc&&e&&e[Mc])}function Di(e,t){return!!(t=null==t?Ae:t)&&("number"==typeof e||Yt.test(e))&&e>-1&&e%1==0&&e0){if(++t>=Se)return arguments[0]}else t=0;return e.apply(oe,arguments)}}function Zi(e,t){var n=-1,r=e.length,o=r-1;for(t=t===oe?r:t;++n=this.__values__.length;return{done:e,value:e?oe:this.__values__[this.__index__++]}}function ns(){return this}function rs(e){for(var t,n=this;n instanceof r;){var o=na(n);o.__index__=0,o.__values__=oe,t?i.__wrapped__=o:t=o;var i=o;n=n.__wrapped__}return i.__wrapped__=e,t}function os(){var e=this.__wrapped__;if(e instanceof _){var t=e;return this.__actions__.length&&(t=new _(this)),t=t.reverse(),t.__actions__.push({func:Za,args:[Sa],thisArg:oe}),new o(t,this.__chain__)}return this.thru(Sa)}function is(){return bo(this.__wrapped__,this.__actions__)}function as(e,t,n){var r=yf(e)?p:ur;return n&&Li(e,t,n)&&(t=oe),r(e,Ei(t,3))}function ss(e,t){return(yf(e)?f:pr)(e,Ei(t,3))}function us(e,t){return fr(hs(e,t),1)}function ls(e,t){return fr(hs(e,t),Ie)}function cs(e,t,n){return n=n===oe?1:Eu(n),fr(hs(e,t),n)}function ps(e,t){return(yf(e)?l:hp)(e,Ei(t,3))}function fs(e,t){return(yf(e)?c:vp)(e,Ei(t,3))}function ds(e,t,n,r){e=qs(e)?e:Ju(e),n=n&&!r?Eu(n):0;var o=e.length;return n<0&&(n=zc(o+n,0)),vu(e)?n<=o&&e.indexOf(t,n)>-1:!!o&&w(e,t,n)>-1}function hs(e,t){return(yf(e)?v:Vr)(e,Ei(t,3))}function vs(e,t,n,r){return null==e?[]:(yf(t)||(t=null==t?[]:[t]),n=r?oe:n,yf(n)||(n=null==n?[]:[n]),$r(e,t,n))}function ms(e,t,n){var r=yf(e)?y:P,o=arguments.length<3;return r(e,Ei(t,4),n,o,hp)}function ys(e,t,n){var r=yf(e)?g:P,o=arguments.length<3;return r(e,Ei(t,4),n,o,vp)}function gs(e,t){return(yf(e)?f:pr)(e,Is(Ei(t,3)))}function bs(e){return(yf(e)?Rn:ro)(e)}function _s(e,t,n){return t=(n?Li(e,t,n):t===oe)?1:Eu(t),(yf(e)?Dn:oo)(e,t)}function Cs(e){return(yf(e)?jn:ao)(e)}function Es(e){if(null==e)return 0;if(qs(e))return vu(e)?J(e):e.length;var t=Op(e);return t==Ge||t==tt?e.size:Ur(e).length}function xs(e,t,n){var r=yf(e)?b:uo;return n&&Li(e,t,n)&&(t=oe),r(e,Ei(t,3))}function ws(e,t){if("function"!=typeof t)throw new cc(se);return e=Eu(e),function(){if(--e<1)return t.apply(this,arguments)}}function Ts(e,t,n){return t=n?oe:t,t=e&&null==t?e.length:t,ci(e,xe,oe,oe,oe,oe,t)}function Os(e,t){var n;if("function"!=typeof t)throw new cc(se);return e=Eu(e),function(){return--e>0&&(n=t.apply(this,arguments)),e<=1&&(t=oe),n}}function Ns(e,t,n){t=n?oe:t;var r=ci(e,be,oe,oe,oe,oe,oe,t);return r.placeholder=Ns.placeholder,r}function Ss(e,t,n){t=n?oe:t;var r=ci(e,_e,oe,oe,oe,oe,oe,t);return r.placeholder=Ss.placeholder,r}function ks(e,t,n){function r(t){var n=f,r=d;return f=d=oe,g=t,v=e.apply(r,n)}function o(e){return g=e,m=kp(s,t),b?r(e):v}function i(e){var n=e-y,r=e-g,o=t-n;return _?qc(o,h-r):o}function a(e){var n=e-y,r=e-g;return y===oe||n>=t||n<0||_&&r>=h}function s(){var e=of();if(a(e))return u(e);m=kp(s,i(e))}function u(e){return m=oe,C&&f?r(e):(f=d=oe,v)}function l(){m!==oe&&Cp(m),g=0,f=y=d=m=oe}function c(){return m===oe?v:u(of())}function p(){var e=of(),n=a(e);if(f=arguments,d=this,y=e,n){if(m===oe)return o(y);if(_)return m=kp(s,t),r(y)}return m===oe&&(m=kp(s,t)),v}var f,d,h,v,m,y,g=0,b=!1,_=!1,C=!0;if("function"!=typeof e)throw new cc(se);return t=wu(t)||0,ou(n)&&(b=!!n.leading,_="maxWait"in n,h=_?zc(wu(n.maxWait)||0,t):h,C="trailing"in n?!!n.trailing:C),p.cancel=l,p.flush=c,p}function Ps(e){return ci(e,Te)}function Ms(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new cc(se);var n=function(){var r=arguments,o=t?t.apply(this,r):r[0],i=n.cache;if(i.has(o))return i.get(o);var a=e.apply(this,r);return n.cache=i.set(o,a)||i,a};return n.cache=new(Ms.Cache||ln),n}function Is(e){if("function"!=typeof e)throw new cc(se);return function(){var t=arguments;switch(t.length){case 0:return!e.call(this);case 1:return!e.call(this,t[0]);case 2:return!e.call(this,t[0],t[1]);case 3:return!e.call(this,t[0],t[1],t[2])}return!e.apply(this,t)}}function As(e){return Os(2,e)}function Rs(e,t){if("function"!=typeof e)throw new cc(se);return t=t===oe?t:Eu(t),no(e,t)}function Ds(e,t){if("function"!=typeof e)throw new cc(se);return t=null==t?0:zc(Eu(t),0),no(function(n){var r=n[t],o=To(n,0,t);return r&&m(o,r),s(e,this,o)})}function Ls(e,t,n){var r=!0,o=!0;if("function"!=typeof e)throw new cc(se);return ou(n)&&(r="leading"in n?!!n.leading:r,o="trailing"in n?!!n.trailing:o),ks(e,t,{leading:r,maxWait:t,trailing:o})}function js(e){return Ts(e,1)}function Us(e,t){return pf(xo(t),e)}function Bs(){if(!arguments.length)return[];var e=arguments[0];return yf(e)?e:[e]}function Fs(e){return rr(e,de)}function Vs(e,t){return t="function"==typeof t?t:oe,rr(e,de,t)}function Ks(e){return rr(e,pe|de)}function Ws(e,t){return t="function"==typeof t?t:oe,rr(e,pe|de,t)}function Hs(e,t){return null==t||ir(e,t,Fu(t))}function zs(e,t){return e===t||e!==e&&t!==t}function qs(e){return null!=e&&ru(e.length)&&!tu(e)}function $s(e){return iu(e)&&qs(e)}function Ys(e){return!0===e||!1===e||iu(e)&&gr(e)==We}function Gs(e){return iu(e)&&1===e.nodeType&&!du(e)}function Xs(e){if(null==e)return!0;if(qs(e)&&(yf(e)||"string"==typeof e||"function"==typeof e.splice||bf(e)||wf(e)||mf(e)))return!e.length;var t=Op(e);if(t==Ge||t==tt)return!e.size;if(Vi(e))return!Ur(e).length;for(var n in e)if(mc.call(e,n))return!1;return!0}function Qs(e,t){return kr(e,t)}function Zs(e,t,n){n="function"==typeof n?n:oe;var r=n?n(e,t):oe;return r===oe?kr(e,t,oe,n):!!r}function Js(e){if(!iu(e))return!1;var t=gr(e);return t==qe||t==ze||"string"==typeof e.message&&"string"==typeof e.name&&!du(e)}function eu(e){return"number"==typeof e&&Kc(e)}function tu(e){if(!ou(e))return!1;var t=gr(e);return t==$e||t==Ye||t==Ke||t==Je}function nu(e){return"number"==typeof e&&e==Eu(e)}function ru(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=Ae}function ou(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}function iu(e){return null!=e&&"object"==typeof e}function au(e,t){return e===t||Ir(e,t,wi(t))}function su(e,t,n){return n="function"==typeof n?n:oe,Ir(e,t,wi(t),n)}function uu(e){return fu(e)&&e!=+e}function lu(e){if(Np(e))throw new oc(ae);return Ar(e)}function cu(e){return null===e}function pu(e){return null==e}function fu(e){return"number"==typeof e||iu(e)&&gr(e)==Xe}function du(e){if(!iu(e)||gr(e)!=Ze)return!1;var t=Nc(e);if(null===t)return!0;var n=mc.call(t,"constructor")&&t.constructor;return"function"==typeof n&&n instanceof n&&vc.call(n)==_c}function hu(e){return nu(e)&&e>=-Ae&&e<=Ae}function vu(e){return"string"==typeof e||!yf(e)&&iu(e)&&gr(e)==nt}function mu(e){return"symbol"==typeof e||iu(e)&&gr(e)==rt}function yu(e){return e===oe}function gu(e){return iu(e)&&Op(e)==it}function bu(e){return iu(e)&&gr(e)==at}function _u(e){if(!e)return[];if(qs(e))return vu(e)?ee(e):Uo(e);if(Ic&&e[Ic])return z(e[Ic]());var t=Op(e);return(t==Ge?q:t==tt?G:Ju)(e)}function Cu(e){if(!e)return 0===e?e:0;if((e=wu(e))===Ie||e===-Ie){return(e<0?-1:1)*Re}return e===e?e:0}function Eu(e){var t=Cu(e),n=t%1;return t===t?n?t-n:t:0}function xu(e){return e?nr(Eu(e),0,Le):0}function wu(e){if("number"==typeof e)return e;if(mu(e))return De;if(ou(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=ou(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(Rt,"");var n=zt.test(e);return n||$t.test(e)?Pn(e.slice(2),n?2:8):Ht.test(e)?De:+e}function Tu(e){return Bo(e,Vu(e))}function Ou(e){return e?nr(Eu(e),-Ae,Ae):0===e?e:0}function Nu(e){return null==e?"":ho(e)}function Su(e,t){var n=dp(e);return null==t?n:Zn(n,t)}function ku(e,t){return E(e,Ei(t,3),dr)}function Pu(e,t){return E(e,Ei(t,3),hr)}function Mu(e,t){return null==e?e:mp(e,Ei(t,3),Vu)}function Iu(e,t){return null==e?e:yp(e,Ei(t,3),Vu)}function Au(e,t){return e&&dr(e,Ei(t,3))}function Ru(e,t){return e&&hr(e,Ei(t,3))}function Du(e){return null==e?[]:vr(e,Fu(e))}function Lu(e){return null==e?[]:vr(e,Vu(e))}function ju(e,t,n){var r=null==e?oe:mr(e,t);return r===oe?n:r}function Uu(e,t){return null!=e&&ki(e,t,_r)}function Bu(e,t){return null!=e&&ki(e,t,Cr)}function Fu(e){return qs(e)?In(e):Ur(e)}function Vu(e){return qs(e)?In(e,!0):Br(e)}function Ku(e,t){var n={};return t=Ei(t,3),dr(e,function(e,r,o){er(n,t(e,r,o),e)}),n}function Wu(e,t){var n={};return t=Ei(t,3),dr(e,function(e,r,o){er(n,r,t(e,r,o))}),n}function Hu(e,t){return zu(e,Is(Ei(t)))}function zu(e,t){if(null==e)return{};var n=v(bi(e),function(e){return[e]});return t=Ei(t),Gr(e,n,function(e,n){return t(e,n[0])})}function qu(e,t,n){t=wo(t,e);var r=-1,o=t.length;for(o||(o=1,e=oe);++rt){var r=e;e=t,t=r}if(n||e%1||t%1){var o=Gc();return qc(e+o*(t-e+kn("1e-"+((o+"").length-1))),t)}return Jr(e,t)}function ol(e){return Xf(Nu(e).toLowerCase())}function il(e){return(e=Nu(e))&&e.replace(Gt,qn).replace(mn,"")}function al(e,t,n){e=Nu(e),t=ho(t);var r=e.length;n=n===oe?r:nr(Eu(n),0,r);var o=n;return(n-=t.length)>=0&&e.slice(n,o)==t}function sl(e){return e=Nu(e),e&&wt.test(e)?e.replace(Et,$n):e}function ul(e){return e=Nu(e),e&&At.test(e)?e.replace(It,"\\$&"):e}function ll(e,t,n){e=Nu(e),t=Eu(t);var r=t?J(e):0;if(!t||r>=t)return e;var o=(t-r)/2;return ri(Bc(o),n)+e+ri(Uc(o),n)}function cl(e,t,n){e=Nu(e),t=Eu(t);var r=t?J(e):0;return t&&r>>0)?(e=Nu(e),e&&("string"==typeof t||null!=t&&!Ef(t))&&!(t=ho(t))&&W(e)?To(ee(e),0,n):e.split(t,n)):[]}function ml(e,t,n){return e=Nu(e),n=null==n?0:nr(Eu(n),0,e.length),t=ho(t),e.slice(n,n+t.length)==t}function yl(e,t,r){var o=n.templateSettings;r&&Li(e,t,r)&&(t=oe),e=Nu(e),t=kf({},t,o,pi);var i,a,s=kf({},t.imports,o.imports,pi),u=Fu(s),l=L(s,u),c=0,p=t.interpolate||Xt,f="__p += '",d=uc((t.escape||Xt).source+"|"+p.source+"|"+(p===Nt?Kt:Xt).source+"|"+(t.evaluate||Xt).source+"|$","g"),h="//# sourceURL="+("sourceURL"in t?t.sourceURL:"lodash.templateSources["+ ++En+"]")+"\n";e.replace(d,function(t,n,r,o,s,u){return r||(r=o),f+=e.slice(c,u).replace(Qt,V),n&&(i=!0,f+="' +\n__e("+n+") +\n'"),s&&(a=!0,f+="';\n"+s+";\n__p += '"),r&&(f+="' +\n((__t = ("+r+")) == null ? '' : __t) +\n'"),c=u+t.length,t}),f+="';\n";var v=t.variable;v||(f="with (obj) {\n"+f+"\n}\n"),f=(a?f.replace(gt,""):f).replace(bt,"$1").replace(_t,"$1;"),f="function("+(v||"obj")+") {\n"+(v?"":"obj || (obj = {});\n")+"var __t, __p = ''"+(i?", __e = _.escape":"")+(a?", __j = Array.prototype.join;\nfunction print() { __p += __j.call(arguments, '') }\n":";\n")+f+"return __p\n}";var m=Qf(function(){return ic(u,h+"return "+f).apply(oe,l)});if(m.source=f,Js(m))throw m;return m}function gl(e){return Nu(e).toLowerCase()}function bl(e){return Nu(e).toUpperCase()}function _l(e,t,n){if((e=Nu(e))&&(n||t===oe))return e.replace(Rt,"");if(!e||!(t=ho(t)))return e;var r=ee(e),o=ee(t);return To(r,U(r,o),B(r,o)+1).join("")}function Cl(e,t,n){if((e=Nu(e))&&(n||t===oe))return e.replace(Lt,"");if(!e||!(t=ho(t)))return e;var r=ee(e);return To(r,0,B(r,ee(t))+1).join("")}function El(e,t,n){if((e=Nu(e))&&(n||t===oe))return e.replace(Dt,"");if(!e||!(t=ho(t)))return e;var r=ee(e);return To(r,U(r,ee(t))).join("")}function xl(e,t){var n=Oe,r=Ne;if(ou(t)){var o="separator"in t?t.separator:o;n="length"in t?Eu(t.length):n,r="omission"in t?ho(t.omission):r}e=Nu(e);var i=e.length;if(W(e)){var a=ee(e);i=a.length}if(n>=i)return e;var s=n-J(r);if(s<1)return r;var u=a?To(a,0,s).join(""):e.slice(0,s);if(o===oe)return u+r;if(a&&(s+=u.length-s),Ef(o)){if(e.slice(s).search(o)){var l,c=u;for(o.global||(o=uc(o.source,Nu(Wt.exec(o))+"g")),o.lastIndex=0;l=o.exec(c);)var p=l.index;u=u.slice(0,p===oe?s:p)}}else if(e.indexOf(ho(o),s)!=s){var f=u.lastIndexOf(o);f>-1&&(u=u.slice(0,f))}return u+r}function wl(e){return e=Nu(e),e&&xt.test(e)?e.replace(Ct,Yn):e}function Tl(e,t,n){return e=Nu(e),t=n?oe:t,t===oe?H(e)?re(e):C(e):e.match(t)||[]}function Ol(e){var t=null==e?0:e.length,n=Ei();return e=t?v(e,function(e){if("function"!=typeof e[1])throw new cc(se);return[n(e[0]),e[1]]}):[],no(function(n){for(var r=-1;++rAe)return[];var n=Le,r=qc(e,Le);t=Ei(t),e-=Le;for(var o=A(r,t);++n1?e[t-1]:oe;return n="function"==typeof n?(e.pop(),n):oe,$a(e,n)}),Gp=yi(function(e){var t=e.length,n=t?e[0]:0,r=this.__wrapped__,i=function(t){return tr(t,e)};return!(t>1||this.__actions__.length)&&r instanceof _&&Di(n)?(r=r.slice(n,+n+(t?1:0)),r.__actions__.push({func:Za,args:[i],thisArg:oe}),new o(r,this.__chain__).thru(function(e){return t&&!e.length&&e.push(oe),e})):this.thru(i)}),Xp=Ko(function(e,t,n){mc.call(e,n)?++e[n]:er(e,n,1)}),Qp=Qo(pa),Zp=Qo(fa),Jp=Ko(function(e,t,n){mc.call(e,n)?e[n].push(t):er(e,n,[t])}),ef=no(function(e,t,n){var r=-1,o="function"==typeof t,i=qs(e)?nc(e.length):[];return hp(e,function(e){i[++r]=o?s(t,e,n):Tr(e,t,n)}),i}),tf=Ko(function(e,t,n){er(e,n,t)}),nf=Ko(function(e,t,n){e[n?0:1].push(t)},function(){return[[],[]]}),rf=no(function(e,t){if(null==e)return[];var n=t.length;return n>1&&Li(e,t[0],t[1])?t=[]:n>2&&Li(t[0],t[1],t[2])&&(t=[t[0]]),$r(e,fr(t,1),[])}),of=Lc||function(){return An.Date.now()},af=no(function(e,t,n){var r=me;if(n.length){var o=Y(n,Ci(af));r|=Ce}return ci(e,r,t,n,o)}),sf=no(function(e,t,n){var r=me|ye;if(n.length){var o=Y(n,Ci(sf));r|=Ce}return ci(t,r,e,n,o)}),uf=no(function(e,t){return ar(e,1,t)}),lf=no(function(e,t,n){return ar(e,wu(t)||0,n)});Ms.Cache=ln;var cf=_p(function(e,t){t=1==t.length&&yf(t[0])?v(t[0],D(Ei())):v(fr(t,1),D(Ei()));var n=t.length;return no(function(r){for(var o=-1,i=qc(r.length,n);++o=t}),mf=Or(function(){return arguments}())?Or:function(e){return iu(e)&&mc.call(e,"callee")&&!kc.call(e,"callee")},yf=nc.isArray,gf=Bn?D(Bn):Nr,bf=Vc||Vl,_f=Fn?D(Fn):Sr,Cf=Vn?D(Vn):Mr,Ef=Kn?D(Kn):Rr,xf=Wn?D(Wn):Dr,wf=Hn?D(Hn):Lr,Tf=ai(Fr),Of=ai(function(e,t){return e<=t}),Nf=Wo(function(e,t){if(Vi(t)||qs(t))return void Bo(t,Fu(t),e);for(var n in t)mc.call(t,n)&&zn(e,n,t[n])}),Sf=Wo(function(e,t){Bo(t,Vu(t),e)}),kf=Wo(function(e,t,n,r){Bo(t,Vu(t),e,r)}),Pf=Wo(function(e,t,n,r){Bo(t,Fu(t),e,r)}),Mf=yi(tr),If=no(function(e){return e.push(oe,pi),s(kf,oe,e)}),Af=no(function(e){return e.push(oe,fi),s(Uf,oe,e)}),Rf=ei(function(e,t,n){e[t]=n},Sl(Pl)),Df=ei(function(e,t,n){mc.call(e,t)?e[t].push(n):e[t]=[n]},Ei),Lf=no(Tr),jf=Wo(function(e,t,n){Hr(e,t,n)}),Uf=Wo(function(e,t,n,r){Hr(e,t,n,r)}),Bf=yi(function(e,t){var n={};if(null==e)return n;var r=!1;t=v(t,function(t){return t=wo(t,e),r||(r=t.length>1),t}),Bo(e,bi(e),n),r&&(n=rr(n,pe|fe|de,di));for(var o=t.length;o--;)mo(n,t[o]);return n}),Ff=yi(function(e,t){return null==e?{}:Yr(e,t)}),Vf=li(Fu),Kf=li(Vu),Wf=Yo(function(e,t,n){return t=t.toLowerCase(),e+(n?ol(t):t)}),Hf=Yo(function(e,t,n){return e+(n?"-":"")+t.toLowerCase()}),zf=Yo(function(e,t,n){return e+(n?" ":"")+t.toLowerCase()}),qf=$o("toLowerCase"),$f=Yo(function(e,t,n){return e+(n?"_":"")+t.toLowerCase()}),Yf=Yo(function(e,t,n){return e+(n?" ":"")+Xf(t)}),Gf=Yo(function(e,t,n){return e+(n?" ":"")+t.toUpperCase()}),Xf=$o("toUpperCase"),Qf=no(function(e,t){try{return s(e,oe,t)}catch(e){return Js(e)?e:new oc(e)}}),Zf=yi(function(e,t){return l(t,function(t){t=Ji(t),er(e,t,af(e[t],e))}),e}),Jf=Zo(),ed=Zo(!0),td=no(function(e,t){return function(n){return Tr(n,e,t)}}),nd=no(function(e,t){return function(n){return Tr(e,n,t)}}),rd=ni(v),od=ni(p),id=ni(b),ad=ii(),sd=ii(!0),ud=ti(function(e,t){return e+t},0),ld=ui("ceil"),cd=ti(function(e,t){return e/t},1),pd=ui("floor"),fd=ti(function(e,t){return e*t},1),dd=ui("round"),hd=ti(function(e,t){return e-t},0);return n.after=ws,n.ary=Ts,n.assign=Nf,n.assignIn=Sf,n.assignInWith=kf,n.assignWith=Pf,n.at=Mf,n.before=Os,n.bind=af,n.bindAll=Zf,n.bindKey=sf,n.castArray=Bs,n.chain=Xa,n.chunk=ra,n.compact=oa,n.concat=ia,n.cond=Ol,n.conforms=Nl,n.constant=Sl,n.countBy=Xp,n.create=Su,n.curry=Ns,n.curryRight=Ss,n.debounce=ks,n.defaults=If,n.defaultsDeep=Af,n.defer=uf,n.delay=lf,n.difference=Ip,n.differenceBy=Ap,n.differenceWith=Rp,n.drop=aa,n.dropRight=sa,n.dropRightWhile=ua,n.dropWhile=la,n.fill=ca,n.filter=ss,n.flatMap=us,n.flatMapDeep=ls,n.flatMapDepth=cs,n.flatten=da,n.flattenDeep=ha,n.flattenDepth=va,n.flip=Ps,n.flow=Jf,n.flowRight=ed,n.fromPairs=ma,n.functions=Du,n.functionsIn=Lu,n.groupBy=Jp,n.initial=ba,n.intersection=Dp,n.intersectionBy=Lp,n.intersectionWith=jp,n.invert=Rf,n.invertBy=Df,n.invokeMap=ef,n.iteratee=Ml,n.keyBy=tf,n.keys=Fu,n.keysIn=Vu,n.map=hs,n.mapKeys=Ku,n.mapValues=Wu,n.matches=Il,n.matchesProperty=Al,n.memoize=Ms,n.merge=jf,n.mergeWith=Uf,n.method=td,n.methodOf=nd,n.mixin=Rl,n.negate=Is,n.nthArg=jl,n.omit=Bf,n.omitBy=Hu,n.once=As,n.orderBy=vs,n.over=rd,n.overArgs=cf,n.overEvery=od,n.overSome=id,n.partial=pf,n.partialRight=ff,n.partition=nf,n.pick=Ff,n.pickBy=zu,n.property=Ul,n.propertyOf=Bl,n.pull=Up,n.pullAll=wa,n.pullAllBy=Ta,n.pullAllWith=Oa,n.pullAt=Bp,n.range=ad,n.rangeRight=sd,n.rearg=df,n.reject=gs,n.remove=Na,n.rest=Rs,n.reverse=Sa,n.sampleSize=_s,n.set=$u,n.setWith=Yu,n.shuffle=Cs,n.slice=ka,n.sortBy=rf,n.sortedUniq=La,n.sortedUniqBy=ja,n.split=vl,n.spread=Ds,n.tail=Ua,n.take=Ba,n.takeRight=Fa,n.takeRightWhile=Va,n.takeWhile=Ka,n.tap=Qa,n.throttle=Ls,n.thru=Za,n.toArray=_u,n.toPairs=Vf,n.toPairsIn=Kf,n.toPath=ql,n.toPlainObject=Tu,n.transform=Gu,n.unary=js,n.union=Fp,n.unionBy=Vp,n.unionWith=Kp,n.uniq=Wa,n.uniqBy=Ha,n.uniqWith=za,n.unset=Xu,n.unzip=qa,n.unzipWith=$a,n.update=Qu,n.updateWith=Zu,n.values=Ju,n.valuesIn=el,n.without=Wp,n.words=Tl,n.wrap=Us,n.xor=Hp,n.xorBy=zp,n.xorWith=qp,n.zip=$p,n.zipObject=Ya,n.zipObjectDeep=Ga,n.zipWith=Yp,n.entries=Vf,n.entriesIn=Kf,n.extend=Sf,n.extendWith=kf,Rl(n,n),n.add=ud,n.attempt=Qf,n.camelCase=Wf,n.capitalize=ol,n.ceil=ld,n.clamp=tl,n.clone=Fs,n.cloneDeep=Ks,n.cloneDeepWith=Ws,n.cloneWith=Vs,n.conformsTo=Hs,n.deburr=il,n.defaultTo=kl,n.divide=cd,n.endsWith=al,n.eq=zs,n.escape=sl,n.escapeRegExp=ul,n.every=as,n.find=Qp,n.findIndex=pa,n.findKey=ku,n.findLast=Zp,n.findLastIndex=fa,n.findLastKey=Pu,n.floor=pd,n.forEach=ps,n.forEachRight=fs,n.forIn=Mu,n.forInRight=Iu,n.forOwn=Au,n.forOwnRight=Ru,n.get=ju,n.gt=hf,n.gte=vf,n.has=Uu,n.hasIn=Bu,n.head=ya,n.identity=Pl,n.includes=ds,n.indexOf=ga,n.inRange=nl,n.invoke=Lf,n.isArguments=mf,n.isArray=yf,n.isArrayBuffer=gf,n.isArrayLike=qs,n.isArrayLikeObject=$s,n.isBoolean=Ys,n.isBuffer=bf,n.isDate=_f,n.isElement=Gs,n.isEmpty=Xs,n.isEqual=Qs,n.isEqualWith=Zs,n.isError=Js,n.isFinite=eu,n.isFunction=tu,n.isInteger=nu,n.isLength=ru,n.isMap=Cf,n.isMatch=au,n.isMatchWith=su,n.isNaN=uu,n.isNative=lu,n.isNil=pu,n.isNull=cu,n.isNumber=fu,n.isObject=ou,n.isObjectLike=iu,n.isPlainObject=du,n.isRegExp=Ef,n.isSafeInteger=hu,n.isSet=xf,n.isString=vu,n.isSymbol=mu,n.isTypedArray=wf,n.isUndefined=yu,n.isWeakMap=gu,n.isWeakSet=bu,n.join=_a,n.kebabCase=Hf,n.last=Ca,n.lastIndexOf=Ea,n.lowerCase=zf,n.lowerFirst=qf,n.lt=Tf,n.lte=Of,n.max=Yl,n.maxBy=Gl,n.mean=Xl,n.meanBy=Ql,n.min=Zl,n.minBy=Jl,n.stubArray=Fl,n.stubFalse=Vl,n.stubObject=Kl,n.stubString=Wl,n.stubTrue=Hl,n.multiply=fd,n.nth=xa,n.noConflict=Dl,n.noop=Ll,n.now=of,n.pad=ll,n.padEnd=cl,n.padStart=pl,n.parseInt=fl,n.random=rl,n.reduce=ms,n.reduceRight=ys,n.repeat=dl,n.replace=hl,n.result=qu,n.round=dd,n.runInContext=e,n.sample=bs,n.size=Es,n.snakeCase=$f,n.some=xs,n.sortedIndex=Pa,n.sortedIndexBy=Ma,n.sortedIndexOf=Ia,n.sortedLastIndex=Aa,n.sortedLastIndexBy=Ra,n.sortedLastIndexOf=Da,n.startCase=Yf,n.startsWith=ml,n.subtract=hd,n.sum=ec,n.sumBy=tc,n.template=yl,n.times=zl,n.toFinite=Cu,n.toInteger=Eu,n.toLength=xu,n.toLower=gl,n.toNumber=wu,n.toSafeInteger=Ou,n.toString=Nu,n.toUpper=bl,n.trim=_l,n.trimEnd=Cl,n.trimStart=El,n.truncate=xl,n.unescape=wl,n.uniqueId=$l,n.upperCase=Gf,n.upperFirst=Xf,n.each=ps,n.eachRight=fs,n.first=ya,Rl(n,function(){var e={};return dr(n,function(t,r){mc.call(n.prototype,r)||(e[r]=t)}),e}(),{chain:!1}),n.VERSION="4.17.4",l(["bind","bindKey","curry","curryRight","partial","partialRight"],function(e){n[e].placeholder=n}),l(["drop","take"],function(e,t){_.prototype[e]=function(n){n=n===oe?1:zc(Eu(n),0);var r=this.__filtered__&&!t?new _(this):this.clone();return r.__filtered__?r.__takeCount__=qc(n,r.__takeCount__):r.__views__.push({size:qc(n,Le),type:e+(r.__dir__<0?"Right":"")}),r},_.prototype[e+"Right"]=function(t){return this.reverse()[e](t).reverse()}}),l(["filter","map","takeWhile"],function(e,t){var n=t+1,r=n==Pe||3==n;_.prototype[e]=function(e){var t=this.clone();return t.__iteratees__.push({iteratee:Ei(e,3),type:n}),t.__filtered__=t.__filtered__||r,t}}),l(["head","last"],function(e,t){var n="take"+(t?"Right":"");_.prototype[e]=function(){return this[n](1).value()[0]}}),l(["initial","tail"],function(e,t){var n="drop"+(t?"":"Right");_.prototype[e]=function(){return this.__filtered__?new _(this):this[n](1)}}),_.prototype.compact=function(){return this.filter(Pl)},_.prototype.find=function(e){return this.filter(e).head()},_.prototype.findLast=function(e){return this.reverse().find(e)},_.prototype.invokeMap=no(function(e,t){return"function"==typeof e?new _(this):this.map(function(n){return Tr(n,e,t)})}),_.prototype.reject=function(e){return this.filter(Is(Ei(e)))},_.prototype.slice=function(e,t){e=Eu(e);var n=this;return n.__filtered__&&(e>0||t<0)?new _(n):(e<0?n=n.takeRight(-e):e&&(n=n.drop(e)),t!==oe&&(t=Eu(t),n=t<0?n.dropRight(-t):n.take(t-e)),n)},_.prototype.takeRightWhile=function(e){return this.reverse().takeWhile(e).reverse()},_.prototype.toArray=function(){return this.take(Le)},dr(_.prototype,function(e,t){var r=/^(?:filter|find|map|reject)|While$/.test(t),i=/^(?:head|last)$/.test(t),a=n[i?"take"+("last"==t?"Right":""):t],s=i||/^find/.test(t);a&&(n.prototype[t]=function(){var t=this.__wrapped__,u=i?[1]:arguments,l=t instanceof _,c=u[0],p=l||yf(t),f=function(e){var t=a.apply(n,m([e],u));return i&&d?t[0]:t};p&&r&&"function"==typeof c&&1!=c.length&&(l=p=!1);var d=this.__chain__,h=!!this.__actions__.length,v=s&&!d,y=l&&!h;if(!s&&p){t=y?t:new _(this);var g=e.apply(t,u);return g.__actions__.push({func:Za,args:[f],thisArg:oe}),new o(g,d)}return v&&y?e.apply(this,u):(g=this.thru(f),v?i?g.value()[0]:g.value():g)})}),l(["pop","push","shift","sort","splice","unshift"],function(e){var t=pc[e],r=/^(?:push|sort|unshift)$/.test(e)?"tap":"thru",o=/^(?:pop|shift)$/.test(e);n.prototype[e]=function(){var e=arguments;if(o&&!this.__chain__){var n=this.value();return t.apply(yf(n)?n:[],e)}return this[r](function(n){return t.apply(yf(n)?n:[],e)})}}),dr(_.prototype,function(e,t){var r=n[t];if(r){var o=r.name+"";(op[o]||(op[o]=[])).push({name:t,func:r})}}),op[Jo(oe,ye).name]=[{name:"wrapper",func:oe}],_.prototype.clone=k,_.prototype.reverse=Q,_.prototype.value=te,n.prototype.at=Gp,n.prototype.chain=Ja,n.prototype.commit=es,n.prototype.next=ts,n.prototype.plant=rs,n.prototype.reverse=os,n.prototype.toJSON=n.prototype.valueOf=n.prototype.value=is,n.prototype.first=n.prototype.head,Ic&&(n.prototype[Ic]=ns),n}();An._=Gn,(o=function(){return Gn}.call(t,n,t,r))!==oe&&(r.exports=o)}).call(this)}).call(t,n(410),n(411)(e))},function(e,t,n){e.exports={default:n(196),__esModule:!0}},function(e,t,n){e.exports={default:n(198),__esModule:!0}},function(e,t,n){e.exports=!n(74)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},function(e,t,n){var r=n(71);e.exports=Object("z").propertyIsEnumerable(0)?Object:function(e){return"String"==r(e)?e.split(""):Object(e)}},function(e,t){e.exports=function(e){return"object"==typeof e?null!==e:"function"==typeof e}},function(e,t,n){"use strict";var r=n(114),o=n(31),i=n(116),a=n(76),s=n(75),u=n(42),l=n(211),c=n(78),p=n(20).getProto,f=n(26)("iterator"),d=!([].keys&&"next"in[].keys()),h=function(){return this};e.exports=function(e,t,n,v,m,y,g){l(n,t,v);var b,_,C=function(e){if(!d&&e in T)return T[e];switch(e){case"keys":case"values":return function(){return new n(this,e)}}return function(){return new n(this,e)}},E=t+" Iterator",x="values"==m,w=!1,T=e.prototype,O=T[f]||T["@@iterator"]||m&&T[m],N=O||C(m);if(O){var S=p(N.call(new e));c(S,E,!0),!r&&s(T,"@@iterator")&&a(S,f,h),x&&"values"!==O.name&&(w=!0,N=function(){return O.call(this)})}if(r&&!g||!d&&!w&&T[f]||a(T,f,N),u[t]=N,u[E]=h,m)if(b={values:x?N:C("values"),keys:y?N:C("keys"),entries:x?C("entries"):N},g)for(_ in b)_ in T||i(T,_,b[_]);else o(o.P+o.F*(d||w),t,b);return b}},function(e,t){e.exports=!0},function(e,t,n){var r=n(20),o=n(43),i=r.isEnum;e.exports=function(e){return function(t){for(var n,a=o(t),s=r.getKeys(a),u=s.length,l=0,c=[];u>l;)i.call(a,n=s[l++])&&c.push(e?[n,a[n]]:a[n]);return c}}},function(e,t,n){e.exports=n(76)},function(e,t,n){var r=n(52),o=r["__core-js_shared__"]||(r["__core-js_shared__"]={});e.exports=function(e){return o[e]||(o[e]={})}},function(e,t){var n=Math.ceil,r=Math.floor;e.exports=function(e){return isNaN(e=+e)?0:(e>0?r:n)(e)}},function(e,t,n){var r=n(73);e.exports=function(e){return Object(r(e))}},function(e,t){var n=0,r=Math.random();e.exports=function(e){return"Symbol(".concat(void 0===e?"":e,")_",(++n+r).toString(36))}},function(e,t,n){"use strict";var r=n(217)(!0);n(113)(String,"String",function(e){this._t=String(e),this._i=0},function(){var e,t=this._t,n=this._i;return n>=t.length?{value:void 0,done:!0}:(e=r(t,n),this._i+=e.length,{value:e,done:!1})})},function(e,t,n){"use strict";function r(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:(0,i.default)();try{return e.activeElement}catch(e){}}Object.defineProperty(t,"__esModule",{value:!0}),t.default=r;var o=n(34),i=function(e){return e&&e.__esModule?e:{default:e}}(o);e.exports=t.default},function(e,t,n){"use strict";function r(e,t){return e.classList?!!t&&e.classList.contains(t):-1!==(" "+e.className+" ").indexOf(" "+t+" ")}Object.defineProperty(t,"__esModule",{value:!0}),t.default=r,e.exports=t.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e){var t=(0,c.default)(e),n=(0,u.default)(t),r=t&&t.documentElement,o={top:0,left:0,height:0,width:0};if(t)return(0,a.default)(r,e)?(void 0!==e.getBoundingClientRect&&(o=e.getBoundingClientRect()),o={top:o.top+(n.pageYOffset||r.scrollTop)-(r.clientTop||0),left:o.left+(n.pageXOffset||r.scrollLeft)-(r.clientLeft||0),width:(null==o.width?e.offsetWidth:o.width)||0,height:(null==o.height?e.offsetHeight:o.height)||0}):o}Object.defineProperty(t,"__esModule",{value:!0}),t.default=o;var i=n(35),a=r(i),s=n(54),u=r(s),l=n(34),c=r(l);e.exports=t.default},function(e,t,n){"use strict";function r(e,t){var n=(0,i.default)(e);if(void 0===t)return n?"pageYOffset"in n?n.pageYOffset:n.document.documentElement.scrollTop:e.scrollTop;n?n.scrollTo("pageXOffset"in n?n.pageXOffset:n.document.documentElement.scrollLeft,t):e.scrollTop=t}Object.defineProperty(t,"__esModule",{value:!0}),t.default=r;var o=n(54),i=function(e){return e&&e.__esModule?e:{default:e}}(o);e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.animationEnd=t.animationDelay=t.animationTiming=t.animationDuration=t.animationName=t.transitionEnd=t.transitionDuration=t.transitionDelay=t.transitionTiming=t.transitionProperty=t.transform=void 0;var r=n(30),o=function(e){return e&&e.__esModule?e:{default:e}}(r),i="transform",a=void 0,s=void 0,u=void 0,l=void 0,c=void 0,p=void 0,f=void 0,d=void 0,h=void 0,v=void 0,m=void 0;if(o.default){var y=function(){for(var e=document.createElement("div").style,t={O:function(e){return"o"+e.toLowerCase()},Moz:function(e){return e.toLowerCase()},Webkit:function(e){return"webkit"+e},ms:function(e){return"MS"+e}},n=Object.keys(t),r=void 0,o=void 0,i="",a=0;a1)for(var n=1;n=c?l=0:l<0&&(l=c-1),r[l]},t.prototype.getActiveProps=function(){var e=this.context.$bs_tabContainer;return e||this.props},t.prototype.isActive=function(e,t,n){var r=e.props;return!!(r.active||null!=t&&r.eventKey===t||n&&r.href===n)||r.active},t.prototype.getTabProps=function(e,t,r,o,i){var a=this;if(!t&&"tablist"!==r)return null;var s=e.props,u=s.id,l=s["aria-controls"],c=s.eventKey,p=s.role,f=s.onKeyDown,d=s.tabIndex;return t&&(u=t.getTabId(c),l=t.getPaneId(c)),"tablist"===r&&(p=p||"tab",f=n.i(N.a)(function(e){return a.handleTabKeyDown(i,e)},f),d=o?d:-1),{id:u,role:p,onKeyDown:f,"aria-controls":l,tabIndex:d}},t.prototype.render=function(){var e,t=this,r=this.props,i=r.stacked,s=r.justified,u=r.onSelect,l=r.role,c=r.navbar,p=r.pullRight,f=r.pullLeft,d=r.className,v=r.children,m=a()(r,["stacked","justified","onSelect","role","navbar","pullRight","pullLeft","className","children"]),b=this.context.$bs_tabContainer,_=l||(b?"tablist":null),C=this.getActiveProps(),E=C.activeKey,x=C.activeHref;delete m.activeKey,delete m.activeHref;var w=n.i(O.splitBsProps)(m),T=w[0],k=w[1],P=o()({},n.i(O.getClassSet)(T),(e={},e[n.i(O.prefix)(T,"stacked")]=i,e[n.i(O.prefix)(T,"justified")]=s,e)),M=null!=c?c:this.context.$bs_navbar,I=void 0,A=void 0;if(M){var R=this.context.$bs_navbar||{bsClass:"navbar"};P[n.i(O.prefix)(R,"nav")]=!0,A=n.i(O.prefix)(R,"right"),I=n.i(O.prefix)(R,"left")}else A="pull-right",I="pull-left";return P[A]=p,P[I]=f,g.a.createElement("ul",o()({},k,{role:_,className:h()(d,P)}),S.a.map(v,function(e){var r=t.isActive(e,E,x),i=n.i(N.a)(e.props.onSelect,u,M&&M.onSelect,b&&b.onSelect);return n.i(y.cloneElement)(e,o()({},t.getTabProps(e,b,_,r,i),{active:r,activeKey:E,activeHref:x,onSelect:i}))}))},t}(g.a.Component);I.propTypes=k,I.defaultProps=P,I.contextTypes=M,t.a=n.i(O.bsClass)("nav",n.i(O.bsStyles)(["tabs","pills"],I))},function(e,t,n){"use strict";var r=n(4),o=n.n(r),i=n(5),a=n.n(i),s=n(1),u=n.n(s),l=n(3),c=n.n(l),p=n(2),f=n.n(p),d=n(6),h=n.n(d),v=n(0),m=n.n(v),y=n(7),g=n.n(y),b=n(24),_=n(15),C={active:g.a.bool,disabled:g.a.bool,role:g.a.string,href:g.a.string,onClick:g.a.func,onSelect:g.a.func,eventKey:g.a.any},E={active:!1,disabled:!1},x=function(e){function t(n,r){u()(this,t);var o=c()(this,e.call(this,n,r));return o.handleClick=o.handleClick.bind(o),o}return f()(t,e),t.prototype.handleClick=function(e){this.props.onSelect&&(e.preventDefault(),this.props.disabled||this.props.onSelect(this.props.eventKey,e))},t.prototype.render=function(){var e=this.props,t=e.active,r=e.disabled,i=e.onClick,s=e.className,u=e.style,l=a()(e,["active","disabled","onClick","className","style"]);return delete l.onSelect,delete l.eventKey,delete l.activeKey,delete l.activeHref,l.role?"tab"===l.role&&(l["aria-selected"]=t):"#"===l.href&&(l.role="button"),m.a.createElement("li",{role:"presentation",className:h()(s,{active:t,disabled:r}),style:u},m.a.createElement(b.a,o()({},l,{disabled:r,onClick:n.i(_.a)(i,this.handleClick)})))},t}(m.a.Component);x.propTypes=C,x.defaultProps=E,t.a=x},function(e,t,n){"use strict";var r=n(4),o=n.n(r),i=n(5),a=n.n(i),s=n(1),u=n.n(s),l=n(3),c=n.n(l),p=n(2),f=n.n(p),d=n(6),h=n.n(d),v=n(0),m=n.n(v),y=n(7),g=n.n(y),b=n(8),_={$bs_navbar:g.a.shape({bsClass:g.a.string})},C=function(e){function t(){return u()(this,t),c()(this,e.apply(this,arguments))}return f()(t,e),t.prototype.render=function(){var e=this.props,t=e.className,r=e.children,i=a()(e,["className","children"]),s=this.context.$bs_navbar||{bsClass:"navbar"},u=n.i(b.prefix)(s,"brand");return m.a.isValidElement(r)?m.a.cloneElement(r,{className:h()(r.props.className,t,u)}):m.a.createElement("span",o()({},i,{className:h()(t,u)}),r)},t}(m.a.Component);C.contextTypes=_,t.a=C},function(e,t,n){"use strict";var r=n(5),o=n.n(r),i=n(1),a=n.n(i),s=n(3),u=n.n(s),l=n(2),c=n.n(l),p=n(4),f=n.n(p),d=n(6),h=n.n(d),v=n(0),m=n.n(v),y=n(7),g=n.n(y),b=n(391),_=n.n(b),C=n(12),E=n.n(C),x=n(62),w=f()({},_.a.propTypes,{show:g.a.bool,rootClose:g.a.bool,onHide:g.a.func,animation:g.a.oneOfType([g.a.bool,E.a]),onEnter:g.a.func,onEntering:g.a.func,onEntered:g.a.func,onExit:g.a.func,onExiting:g.a.func,onExited:g.a.func,placement:g.a.oneOf(["top","right","bottom","left"])}),T={animation:x.a,rootClose:!1,show:!1,placement:"right"},O=function(e){function t(){return a()(this,t),u()(this,e.apply(this,arguments))}return c()(t,e),t.prototype.render=function(){var e=this.props,t=e.animation,r=e.children,i=o()(e,["animation","children"]),a=!0===t?x.a:t||null,s=void 0;return s=a?r:n.i(v.cloneElement)(r,{className:h()(r.props.className,"in")}),m.a.createElement(_.a,f()({},i,{transition:a}),s)},t}(m.a.Component);O.propTypes=w,O.defaultProps=T,t.a=O},function(e,t,n){"use strict";var r=n(4),o=n.n(r),i=n(5),a=n.n(i),s=n(1),u=n.n(s),l=n(3),c=n.n(l),p=n(2),f=n.n(p),d=n(6),h=n.n(d),v=n(0),m=n.n(v),y=n(7),g=n.n(y),b=n(24),_=n(15),C={disabled:g.a.bool,previous:g.a.bool,next:g.a.bool,onClick:g.a.func,onSelect:g.a.func,eventKey:g.a.any},E={disabled:!1,previous:!1,next:!1},x=function(e){function t(n,r){u()(this,t);var o=c()(this,e.call(this,n,r));return o.handleSelect=o.handleSelect.bind(o),o}return f()(t,e),t.prototype.handleSelect=function(e){var t=this.props,n=t.disabled,r=t.onSelect,o=t.eventKey;(r||n)&&e.preventDefault(),n||r&&r(o,e)},t.prototype.render=function(){var e=this.props,t=e.disabled,r=e.previous,i=e.next,s=e.onClick,u=e.className,l=e.style,c=a()(e,["disabled","previous","next","onClick","className","style"]);return delete c.onSelect,delete c.eventKey,m.a.createElement("li",{className:h()(u,{disabled:t,previous:r,next:i}),style:l},m.a.createElement(b.a,o()({},c,{disabled:t,onClick:n.i(_.a)(s,this.handleSelect)})))},t}(m.a.Component);x.propTypes=C,x.defaultProps=E,t.a=x},function(e,t,n){"use strict";var r=n(4),o=n.n(r),i=n(5),a=n.n(i),s=n(1),u=n.n(s),l=n(3),c=n.n(l),p=n(2),f=n.n(p),d=n(6),h=n.n(d),v=n(0),m=n.n(v),y=n(7),g=n.n(y),b=n(12),_=n.n(b),C=n(24),E=n(15),x={componentClass:_.a,className:g.a.string,eventKey:g.a.any,onSelect:g.a.func,disabled:g.a.bool,active:g.a.bool,onClick:g.a.func},w={componentClass:C.a,active:!1,disabled:!1},T=function(e){function t(n,r){u()(this,t);var o=c()(this,e.call(this,n,r));return o.handleClick=o.handleClick.bind(o),o}return f()(t,e),t.prototype.handleClick=function(e){var t=this.props,n=t.disabled,r=t.onSelect,o=t.eventKey;n||r&&r(o,e)},t.prototype.render=function(){var e=this.props,t=e.componentClass,r=e.active,i=e.disabled,s=e.onClick,u=e.className,l=e.style,c=a()(e,["componentClass","active","disabled","onClick","className","style"]);return t===C.a&&delete c.eventKey,delete c.onSelect,m.a.createElement("li",{className:h()(u,{active:r,disabled:i}),style:l},m.a.createElement(t,o()({},c,{disabled:i,onClick:n.i(E.a)(s,this.handleClick)})))},t}(m.a.Component);T.propTypes=x,T.defaultProps=w,t.a=T},function(e,t,n){"use strict";var r=n(4),o=n.n(r),i=n(108),a=n.n(i),s=n(5),u=n.n(s),l=n(1),c=n.n(l),p=n(3),f=n.n(p),d=n(2),h=n.n(d),v=n(6),m=n.n(v),y=n(0),g=n.n(y),b=n(7),_=n.n(b),C=n(8),E=n(15),x=n(18),w={accordion:_.a.bool,activeKey:_.a.any,defaultActiveKey:_.a.any,onSelect:_.a.func,role:_.a.string},T={accordion:!1},O=function(e){function t(n,r){c()(this,t);var o=f()(this,e.call(this,n,r));return o.handleSelect=o.handleSelect.bind(o),o.state={activeKey:n.defaultActiveKey},o}return h()(t,e),t.prototype.handleSelect=function(e,t){t.preventDefault(),this.props.onSelect&&this.props.onSelect(e,t),this.state.activeKey===e&&(e=null),this.setState({activeKey:e})},t.prototype.render=function(){var e=this,t=this.props,r=t.accordion,i=t.activeKey,s=t.className,l=t.children,c=u()(t,["accordion","activeKey","className","children"]),p=n.i(C.splitBsPropsAndOmit)(c,["defaultActiveKey","onSelect"]),f=p[0],d=p[1],h=void 0;r&&(h=null!=i?i:this.state.activeKey,d.role=d.role||"tablist");var v=n.i(C.getClassSet)(f);return g.a.createElement("div",o()({},d,{className:m()(s,v)}),x.a.map(l,function(t){var o={bsStyle:t.props.bsStyle||f.bsStyle};return r&&a()(o,{headerRole:"tab",panelRole:"tabpanel",collapsible:!0,expanded:t.props.eventKey===h,onSelect:n.i(E.a)(e.handleSelect,t.props.onSelect)}),n.i(y.cloneElement)(t,o)}))},t}(g.a.Component);O.propTypes=w,O.defaultProps=T,t.a=n.i(C.bsClass)("panel-group",O)},function(e,t,n){"use strict";var r=n(4),o=n.n(r),i=n(5),a=n.n(i),s=n(1),u=n.n(s),l=n(3),c=n.n(l),p=n(2),f=n.n(p),d=n(6),h=n.n(d),v=n(0),m=n.n(v),y=n(7),g=n.n(y),b=n(12),_=n.n(b),C=n(22),E=(n.n(C),n(8)),x=n(15),w=n(62),T={eventKey:g.a.any,animation:g.a.oneOfType([g.a.bool,_.a]),id:g.a.string,"aria-labelledby":g.a.string,bsClass:g.a.string,onEnter:g.a.func,onEntering:g.a.func,onEntered:g.a.func,onExit:g.a.func,onExiting:g.a.func,onExited:g.a.func,mountOnEnter:g.a.bool,unmountOnExit:g.a.bool},O={$bs_tabContainer:g.a.shape({getTabId:g.a.func,getPaneId:g.a.func}),$bs_tabContent:g.a.shape({bsClass:g.a.string,animation:g.a.oneOfType([g.a.bool,_.a]),activeKey:g.a.any,mountOnEnter:g.a.bool,unmountOnExit:g.a.bool,onPaneEnter:g.a.func.isRequired,onPaneExited:g.a.func.isRequired,exiting:g.a.bool.isRequired})},N={$bs_tabContainer:g.a.oneOf([null])},S=function(e){function t(n,r){u()(this,t);var o=c()(this,e.call(this,n,r));return o.handleEnter=o.handleEnter.bind(o),o.handleExited=o.handleExited.bind(o),o.in=!1,o}return f()(t,e),t.prototype.getChildContext=function(){return{$bs_tabContainer:null}},t.prototype.componentDidMount=function(){this.shouldBeIn()&&this.handleEnter()},t.prototype.componentDidUpdate=function(){this.in?this.shouldBeIn()||this.handleExited():this.shouldBeIn()&&this.handleEnter()},t.prototype.componentWillUnmount=function(){this.in&&this.handleExited()},t.prototype.handleEnter=function(){var e=this.context.$bs_tabContent;e&&(this.in=e.onPaneEnter(this,this.props.eventKey))},t.prototype.handleExited=function(){var e=this.context.$bs_tabContent;e&&(e.onPaneExited(this),this.in=!1)},t.prototype.getAnimation=function(){if(null!=this.props.animation)return this.props.animation;var e=this.context.$bs_tabContent;return e&&e.animation},t.prototype.isActive=function(){var e=this.context.$bs_tabContent,t=e&&e.activeKey;return this.props.eventKey===t},t.prototype.shouldBeIn=function(){return this.getAnimation()&&this.isActive()},t.prototype.render=function(){var e=this.props,t=e.eventKey,r=e.className,i=e.onEnter,s=e.onEntering,u=e.onEntered,l=e.onExit,c=e.onExiting,p=e.onExited,f=e.mountOnEnter,d=e.unmountOnExit,v=a()(e,["eventKey","className","onEnter","onEntering","onEntered","onExit","onExiting","onExited","mountOnEnter","unmountOnExit"]),y=this.context,g=y.$bs_tabContent,b=y.$bs_tabContainer,_=n.i(E.splitBsPropsAndOmit)(v,["animation"]),C=_[0],T=_[1],O=this.isActive(),N=this.getAnimation(),S=null!=f?f:g&&g.mountOnEnter,k=null!=d?d:g&&g.unmountOnExit;if(!O&&!N&&k)return null;var P=!0===N?w.a:N||null;g&&(C.bsClass=n.i(E.prefix)(g,"pane"));var M=o()({},n.i(E.getClassSet)(C),{active:O});b&&(T.id=b.getPaneId(t),T["aria-labelledby"]=b.getTabId(t));var I=m.a.createElement("div",o()({},T,{role:"tabpanel","aria-hidden":!O,className:h()(r,M)}));if(P){var A=g&&g.exiting;return m.a.createElement(P,{in:O&&!A,onEnter:n.i(x.a)(this.handleEnter,i),onEntering:s,onEntered:u,onExit:l,onExiting:c,onExited:n.i(x.a)(this.handleExited,p),mountOnEnter:S,unmountOnExit:k},I)}return I},t}(m.a.Component);S.propTypes=T,S.contextTypes=O,S.childContextTypes=N,t.a=n.i(E.bsClass)("tab-pane",S)},function(e,t,n){"use strict";var r=n(4),o=n.n(r),i=n(5),a=n.n(i),s=n(1),u=n.n(s),l=n(3),c=n.n(l),p=n(2),f=n.n(p),d=n(7),h=n.n(d),v=n(0),m=n.n(v),y=n(44),g={type:h.a.oneOf(["checkbox","radio"]),name:h.a.string,checked:h.a.bool,disabled:h.a.bool,onChange:h.a.func,value:h.a.any.isRequired},b=function(e){function t(){return u()(this,t),c()(this,e.apply(this,arguments))}return f()(t,e),t.prototype.render=function(){var e=this.props,t=e.children,n=e.name,r=e.checked,i=e.type,s=e.onChange,u=e.value,l=a()(e,["children","name","checked","type","onChange","value"]),c=l.disabled;return m.a.createElement(y.a,o()({},l,{active:!!r,componentClass:"label"}),m.a.createElement("input",{name:n,type:i,autoComplete:"off",value:u,checked:!!r,disabled:!!c,onChange:s}),t)},t}(m.a.Component);b.propTypes=g,t.a=b},function(e,t,n){"use strict";function r(e){return""+e.charAt(0).toUpperCase()+e.slice(1)}t.a=r},function(e,t,n){"use strict";function r(e,t){return e+t.charAt(0).toUpperCase()+t.substring(1)}var o={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},i=["Webkit","ms","Moz","O"];Object.keys(o).forEach(function(e){i.forEach(function(t){o[r(t,e)]=o[e]})});var a={background:{backgroundAttachment:!0,backgroundColor:!0,backgroundImage:!0,backgroundPositionX:!0,backgroundPositionY:!0,backgroundRepeat:!0},backgroundPosition:{backgroundPositionX:!0,backgroundPositionY:!0},border:{borderWidth:!0,borderStyle:!0,borderColor:!0},borderBottom:{borderBottomWidth:!0,borderBottomStyle:!0,borderBottomColor:!0},borderLeft:{borderLeftWidth:!0,borderLeftStyle:!0,borderLeftColor:!0},borderRight:{borderRightWidth:!0,borderRightStyle:!0,borderRightColor:!0},borderTop:{borderTopWidth:!0,borderTopStyle:!0,borderTopColor:!0},font:{fontStyle:!0,fontVariant:!0,fontWeight:!0,fontSize:!0,lineHeight:!0,fontFamily:!0},outline:{outlineWidth:!0,outlineStyle:!0,outlineColor:!0}},s={isUnitlessNumber:o,shorthandPropertyExpansions:a};e.exports=s},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var o=n(11),i=n(32),a=(n(9),function(){function e(t){r(this,e),this._callbacks=null,this._contexts=null,this._arg=t}return e.prototype.enqueue=function(e,t){this._callbacks=this._callbacks||[],this._callbacks.push(e),this._contexts=this._contexts||[],this._contexts.push(t)},e.prototype.notifyAll=function(){var e=this._callbacks,t=this._contexts,n=this._arg;if(e&&t){e.length!==t.length&&o("24"),this._callbacks=null,this._contexts=null;for(var r=0;r.":"function"==typeof t?" Instead of passing a class like Foo, pass React.createElement(Foo) or .":null!=t&&void 0!==t.props?" This may be caused by unintentionally loading two independent copies of React.":"");var a,s=m.createElement(U,{child:t});if(e){var u=E.get(e);a=u._processChildContext(u._context)}else a=N;var c=f(n);if(c){var p=c._currentElement,h=p.props.child;if(P(h,t)){var v=c._renderedComponent.getPublicInstance(),y=r&&function(){r.call(v)};return B._updateRootComponent(c,s,a,n,y),v}B.unmountComponentAtNode(n)}var g=o(n),b=g&&!!i(g),_=l(n),C=b&&!c&&!_,x=B._renderNewRootComponent(s,n,C,a)._renderedComponent.getPublicInstance();return r&&r.call(x),x},render:function(e,t,n){return B._renderSubtreeIntoContainer(null,e,t,n)},unmountComponentAtNode:function(e){c(e)||d("40");var t=f(e);if(!t){l(e),1===e.nodeType&&e.hasAttribute(I);return!1}return delete L[t._instance.rootID],O.batchedUpdates(u,t,e,!1),!0},_mountImageIntoNode:function(e,t,n,i,a){if(c(t)||d("41"),i){var s=o(t);if(x.canReuseMarkup(e,s))return void g.precacheNode(n,s);var u=s.getAttribute(x.CHECKSUM_ATTR_NAME);s.removeAttribute(x.CHECKSUM_ATTR_NAME);var l=s.outerHTML;s.setAttribute(x.CHECKSUM_ATTR_NAME,u);var p=e,f=r(p,l),v=" (client) "+p.substring(f-20,f+20)+"\n (server) "+l.substring(f-20,f+20);t.nodeType===R&&d("42",v)}if(t.nodeType===R&&d("43"),a.useCreateElement){for(;t.lastChild;)t.removeChild(t.lastChild);h.insertTreeBefore(t,e,null)}else k(t,e),g.precacheNode(n,t.firstChild)}};e.exports=B},function(e,t,n){"use strict";var r=n(11),o=n(39),i=(n(9),{HOST:0,COMPOSITE:1,EMPTY:2,getType:function(e){return null===e||!1===e?i.EMPTY:o.isValidElement(e)?"function"==typeof e.type?i.COMPOSITE:i.HOST:void r("26",e)}});e.exports=i},function(e,t,n){"use strict";var r={currentScrollLeft:0,currentScrollTop:0,refreshScrollValues:function(e){r.currentScrollLeft=e.x,r.currentScrollTop=e.y}};e.exports=r},function(e,t,n){"use strict";function r(e,t){return null==t&&o("30"),null==e?t:Array.isArray(e)?Array.isArray(t)?(e.push.apply(e,t),e):(e.push(t),e):Array.isArray(t)?[e].concat(t):[e,t]}var o=n(11);n(9);e.exports=r},function(e,t,n){"use strict";function r(e,t,n){Array.isArray(e)?e.forEach(t,n):e&&t.call(n,e)}e.exports=r},function(e,t,n){"use strict";function r(e){for(var t;(t=e._renderedNodeType)===o.COMPOSITE;)e=e._renderedComponent;return t===o.HOST?e._renderedComponent:t===o.EMPTY?null:void 0}var o=n(164);e.exports=r},function(e,t,n){"use strict";function r(){return!i&&o.canUseDOM&&(i="textContent"in document.documentElement?"textContent":"innerText"),i}var o=n(17),i=null;e.exports=r},function(e,t,n){"use strict";function r(e){var t=e.type,n=e.nodeName;return n&&"input"===n.toLowerCase()&&("checkbox"===t||"radio"===t)}function o(e){return e._wrapperState.valueTracker}function i(e,t){e._wrapperState.valueTracker=t}function a(e){e._wrapperState.valueTracker=null}function s(e){var t;return e&&(t=r(e)?""+e.checked:e.value),t}var u=n(14),l={_getTrackerFromNode:function(e){return o(u.getInstanceFromNode(e))},track:function(e){if(!o(e)){var t=u.getNodeFromInstance(e),n=r(t)?"checked":"value",s=Object.getOwnPropertyDescriptor(t.constructor.prototype,n),l=""+t[n];t.hasOwnProperty(n)||"function"!=typeof s.get||"function"!=typeof s.set||(Object.defineProperty(t,n,{enumerable:s.enumerable,configurable:!0,get:function(){return s.get.call(this)},set:function(e){l=""+e,s.set.call(this,e)}}),i(e,{getValue:function(){return l},setValue:function(e){l=""+e},stopTracking:function(){a(e),delete t[n]}}))}},updateValueIfChanged:function(e){if(!e)return!1;var t=o(e);if(!t)return l.track(e),!0;var n=t.getValue(),r=s(u.getNodeFromInstance(e));return r!==n&&(t.setValue(r),!0)},stopTracking:function(e){var t=o(e);t&&t.stopTracking()}};e.exports=l},function(e,t,n){"use strict";function r(e){if(e){var t=e.getName();if(t)return" Check the render method of `"+t+"`."}return""}function o(e){return"function"==typeof e&&void 0!==e.prototype&&"function"==typeof e.prototype.mountComponent&&"function"==typeof e.prototype.receiveComponent}function i(e,t){var n;if(null===e||!1===e)n=l.create(i);else if("object"==typeof e){var s=e,u=s.type;if("function"!=typeof u&&"string"!=typeof u){var f="";f+=r(s._owner),a("130",null==u?u:typeof u,f)}"string"==typeof s.type?n=c.createInternalComponent(s):o(s.type)?(n=new s.type(s),n.getHostNode||(n.getHostNode=n.getNativeNode)):n=new p(s)}else"string"==typeof e||"number"==typeof e?n=c.createInstanceForText(e):a("131",typeof e);return n._mountIndex=0,n._mountImage=null,n}var a=n(11),s=n(13),u=n(338),l=n(159),c=n(161),p=(n(404),n(9),n(10),function(e){this.construct(e)});s(p.prototype,u,{_instantiateReactComponent:i}),e.exports=i},function(e,t,n){"use strict";function r(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return"input"===t?!!o[e.type]:"textarea"===t}var o={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};e.exports=r},function(e,t,n){"use strict";var r=n(17),o=n(67),i=n(68),a=function(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&3===n.nodeType)return void(n.nodeValue=t)}e.textContent=t};r.canUseDOM&&("textContent"in document.documentElement||(a=function(e,t){if(3===e.nodeType)return void(e.nodeValue=t);i(e,o(t))})),e.exports=a},function(e,t,n){"use strict";function r(e,t){return e&&"object"==typeof e&&null!=e.key?l.escape(e.key):t.toString(36)}function o(e,t,n,i){var f=typeof e;if("undefined"!==f&&"boolean"!==f||(e=null),null===e||"string"===f||"number"===f||"object"===f&&e.$$typeof===s)return n(i,e,""===t?c+r(e,0):t),1;var d,h,v=0,m=""===t?c:t+p;if(Array.isArray(e))for(var y=0;y=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function u(){}t.__esModule=!0,t.EXITING=t.ENTERED=t.ENTERING=t.EXITED=t.UNMOUNTED=void 0;var l=Object.assign||function(e){for(var t=1;te.clientHeight}t.__esModule=!0,t.default=a;var s=n(54),u=r(s),l=n(34),c=r(l);e.exports=t.default},function(e,t,n){"use strict";function r(e,t,n){this.props=e,this.context=t,this.refs=l,this.updater=n||u}function o(e,t,n){this.props=e,this.context=t,this.refs=l,this.updater=n||u}function i(){}var a=n(50),s=n(13),u=n(183),l=(n(184),n(56));n(9),n(405);r.prototype.isReactComponent={},r.prototype.setState=function(e,t){"object"!=typeof e&&"function"!=typeof e&&null!=e&&a("85"),this.updater.enqueueSetState(this,e),t&&this.updater.enqueueCallback(this,t,"setState")},r.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this),e&&this.updater.enqueueCallback(this,e,"forceUpdate")};i.prototype=r.prototype,o.prototype=new i,o.prototype.constructor=o,s(o.prototype,r.prototype),o.prototype.isPureReactComponent=!0,e.exports={Component:r,PureComponent:o}},function(e,t,n){"use strict";function r(e){var t=Function.prototype.toString,n=Object.prototype.hasOwnProperty,r=RegExp("^"+t.call(n).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");try{var o=t.call(e);return r.test(o)}catch(e){return!1}}function o(e){var t=l(e);if(t){var n=t.childIDs;c(e),n.forEach(o)}}function i(e,t,n){return"\n in "+(e||"Unknown")+(t?" (at "+t.fileName.replace(/^.*[\\\/]/,"")+":"+t.lineNumber+")":n?" (created by "+n+")":"")}function a(e){return null==e?"#empty":"string"==typeof e||"number"==typeof e?"#text":"string"==typeof e.type?e.type:e.type.displayName||e.type.name||"Unknown"}function s(e){var t,n=T.getDisplayName(e),r=T.getElement(e),o=T.getOwnerID(e);return o&&(t=T.getDisplayName(o)),i(n,r&&r._source,t)}var u,l,c,p,f,d,h,v=n(50),m=n(28),y=(n(9),n(10),"function"==typeof Array.from&&"function"==typeof Map&&r(Map)&&null!=Map.prototype&&"function"==typeof Map.prototype.keys&&r(Map.prototype.keys)&&"function"==typeof Set&&r(Set)&&null!=Set.prototype&&"function"==typeof Set.prototype.keys&&r(Set.prototype.keys));if(y){var g=new Map,b=new Set;u=function(e,t){g.set(e,t)},l=function(e){return g.get(e)},c=function(e){g.delete(e)},p=function(){return Array.from(g.keys())},f=function(e){b.add(e)},d=function(e){b.delete(e)},h=function(){return Array.from(b.keys())}}else{var _={},C={},E=function(e){return"."+e},x=function(e){return parseInt(e.substr(1),10)};u=function(e,t){var n=E(e);_[n]=t},l=function(e){var t=E(e);return _[t]},c=function(e){var t=E(e);delete _[t]},p=function(){return Object.keys(_).map(x)},f=function(e){var t=E(e);C[t]=!0},d=function(e){var t=E(e);delete C[t]},h=function(){return Object.keys(C).map(x)}}var w=[],T={onSetChildren:function(e,t){var n=l(e);n||v("144"),n.childIDs=t;for(var r=0;rs;)a.call(e,o=i[s++])&&t.push(o);return t}},function(e,t,n){var r=n(43),o=n(20).getNames,i={}.toString,a="object"==typeof window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],s=function(e){try{return o(e)}catch(e){return a.slice()}};e.exports.get=function(e){return a&&"[object Window]"==i.call(e)?s(e):o(r(e))}},function(e,t,n){var r=n(42),o=n(26)("iterator"),i=Array.prototype;e.exports=function(e){return void 0!==e&&(r.Array===e||i[o]===e)}},function(e,t,n){var r=n(71);e.exports=Array.isArray||function(e){return"Array"==r(e)}},function(e,t,n){var r=n(70);e.exports=function(e,t,n,o){try{return o?t(r(n)[0],n[1]):t(n)}catch(t){var i=e.return;throw void 0!==i&&r(i.call(e)),t}}},function(e,t,n){"use strict";var r=n(20),o=n(77),i=n(78),a={};n(76)(a,n(26)("iterator"),function(){return this}),e.exports=function(e,t,n){e.prototype=r.create(a,{next:o(1,n)}),i(e,t+" Iterator")}},function(e,t,n){var r=n(26)("iterator"),o=!1;try{var i=[7][r]();i.return=function(){o=!0},Array.from(i,function(){throw 2})}catch(e){}e.exports=function(e,t){if(!t&&!o)return!1;var n=!1;try{var i=[7],a=i[r]();a.next=function(){return{done:n=!0}},i[r]=function(){return a},e(i)}catch(e){}return n}},function(e,t){e.exports=function(e,t){return{value:t,done:!!e}}},function(e,t,n){var r=n(20),o=n(43);e.exports=function(e,t){for(var n,i=o(e),a=r.getKeys(i),s=a.length,u=0;s>u;)if(i[n=a[u++]]===t)return n}},function(e,t,n){var r=n(20),o=n(119),i=n(111);e.exports=n(74)(function(){var e=Object.assign,t={},n={},r=Symbol(),o="abcdefghijklmnopqrst";return t[r]=7,o.split("").forEach(function(e){n[e]=e}),7!=e({},t)[r]||Object.keys(e({},n)).join("")!=o})?function(e,t){for(var n=o(e),a=arguments,s=a.length,u=1,l=r.getKeys,c=r.getSymbols,p=r.isEnum;s>u;)for(var f,d=i(a[u++]),h=c?l(d).concat(c(d)):l(d),v=h.length,m=0;v>m;)p.call(d,f=h[m++])&&(n[f]=d[f]);return n}:Object.assign},function(e,t,n){var r=n(20).getDesc,o=n(112),i=n(70),a=function(e,t){if(i(e),!o(t)&&null!==t)throw TypeError(t+": can't set as prototype!")};e.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(e,t,o){try{o=n(72)(Function.call,r(Object.prototype,"__proto__").set,2),o(e,[]),t=!(e instanceof Array)}catch(e){t=!0}return function(e,n){return a(e,n),t?e.__proto__=n:o(e,n),e}}({},!1):void 0),check:a}},function(e,t,n){var r=n(118),o=n(73);e.exports=function(e){return function(t,n){var i,a,s=String(o(t)),u=r(n),l=s.length;return u<0||u>=l?e?"":void 0:(i=s.charCodeAt(u),i<55296||i>56319||u+1===l||(a=s.charCodeAt(u+1))<56320||a>57343?e?s.charAt(u):i:e?s.slice(u,u+2):a-56320+(i-55296<<10)+65536)}}},function(e,t,n){var r=n(118),o=Math.min;e.exports=function(e){return e>0?o(r(e),9007199254740991):0}},function(e,t,n){var r=n(205),o=n(26)("iterator"),i=n(42);e.exports=n(29).getIteratorMethod=function(e){if(void 0!=e)return e[o]||e["@@iterator"]||i[r(e)]}},function(e,t,n){"use strict";var r=n(72),o=n(31),i=n(119),a=n(210),s=n(208),u=n(218),l=n(219);o(o.S+o.F*!n(212)(function(e){Array.from(e)}),"Array",{from:function(e){var t,n,o,c,p=i(e),f="function"==typeof this?this:Array,d=arguments,h=d.length,v=h>1?d[1]:void 0,m=void 0!==v,y=0,g=l(p);if(m&&(v=r(v,h>2?d[2]:void 0,2)),void 0==g||f==Array&&s(g))for(t=u(p.length),n=new f(t);t>y;y++)n[y]=m?v(p[y],y):p[y];else for(c=g.call(p),n=new f;!(o=c.next()).done;y++)n[y]=m?a(c,v,[o.value,y],!0):o.value;return n.length=y,n}})},function(e,t,n){"use strict";var r=n(204),o=n(213),i=n(42),a=n(43);e.exports=n(113)(Array,"Array",function(e,t){this._t=a(e),this._i=0,this._k=t},function(){var e=this._t,t=this._k,n=this._i++;return!e||n>=e.length?(this._t=void 0,o(1)):"keys"==t?o(0,n):"values"==t?o(0,e[n]):o(0,[n,e[n]])},"values"),i.Arguments=i.Array,r("keys"),r("values"),r("entries")},function(e,t,n){var r=n(31);r(r.S+r.F,"Object",{assign:n(215)})},function(e,t,n){var r=n(31);r(r.S,"Object",{setPrototypeOf:n(216).set})},function(e,t){},function(e,t,n){"use strict";var r=n(20),o=n(52),i=n(75),a=n(110),s=n(31),u=n(116),l=n(74),c=n(117),p=n(78),f=n(120),d=n(26),h=n(214),v=n(207),m=n(206),y=n(209),g=n(70),b=n(43),_=n(77),C=r.getDesc,E=r.setDesc,x=r.create,w=v.get,T=o.Symbol,O=o.JSON,N=O&&O.stringify,S=!1,k=d("_hidden"),P=r.isEnum,M=c("symbol-registry"),I=c("symbols"),A="function"==typeof T,R=Object.prototype,D=a&&l(function(){return 7!=x(E({},"a",{get:function(){return E(this,"a",{value:7}).a}})).a})?function(e,t,n){var r=C(R,t);r&&delete R[t],E(e,t,n),r&&e!==R&&E(R,t,r)}:E,L=function(e){var t=I[e]=x(T.prototype);return t._k=e,a&&S&&D(R,e,{configurable:!0,set:function(t){i(this,k)&&i(this[k],e)&&(this[k][e]=!1),D(this,e,_(1,t))}}),t},j=function(e){return"symbol"==typeof e},U=function(e,t,n){return n&&i(I,t)?(n.enumerable?(i(e,k)&&e[k][t]&&(e[k][t]=!1),n=x(n,{enumerable:_(0,!1)})):(i(e,k)||E(e,k,_(1,{})),e[k][t]=!0),D(e,t,n)):E(e,t,n)},B=function(e,t){g(e);for(var n,r=m(t=b(t)),o=0,i=r.length;i>o;)U(e,n=r[o++],t[n]);return e},F=function(e,t){return void 0===t?x(e):B(x(e),t)},V=function(e){var t=P.call(this,e);return!(t||!i(this,e)||!i(I,e)||i(this,k)&&this[k][e])||t},K=function(e,t){var n=C(e=b(e),t);return!n||!i(I,t)||i(e,k)&&e[k][t]||(n.enumerable=!0),n},W=function(e){for(var t,n=w(b(e)),r=[],o=0;n.length>o;)i(I,t=n[o++])||t==k||r.push(t);return r},H=function(e){for(var t,n=w(b(e)),r=[],o=0;n.length>o;)i(I,t=n[o++])&&r.push(I[t]);return r},z=function(e){if(void 0!==e&&!j(e)){for(var t,n,r=[e],o=1,i=arguments;i.length>o;)r.push(i[o++]);return t=r[1],"function"==typeof t&&(n=t),!n&&y(t)||(t=function(e,t){if(n&&(t=n.call(this,e,t)),!j(t))return t}),r[1]=t,N.apply(O,r)}},q=l(function(){var e=T();return"[null]"!=N([e])||"{}"!=N({a:e})||"{}"!=N(Object(e))});A||(T=function(){if(j(this))throw TypeError("Symbol is not a constructor");return L(f(arguments.length>0?arguments[0]:void 0))},u(T.prototype,"toString",function(){return this._k}),j=function(e){return e instanceof T},r.create=F,r.isEnum=V,r.getDesc=K,r.setDesc=U,r.setDescs=B,r.getNames=v.get=W,r.getSymbols=H,a&&!n(114)&&u(R,"propertyIsEnumerable",V,!0));var $={for:function(e){return i(M,e+="")?M[e]:M[e]=T(e)},keyFor:function(e){return h(M,e)},useSetter:function(){S=!0},useSimple:function(){S=!1}};r.each.call("hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),function(e){var t=d(e);$[e]=A?t:L(t)}),S=!0,s(s.G+s.W,{Symbol:T}),s(s.S,"Symbol",$),s(s.S+s.F*!A,"Object",{create:F,defineProperty:U,defineProperties:B,getOwnPropertyDescriptor:K,getOwnPropertyNames:W,getOwnPropertySymbols:H}),O&&s(s.S+s.F*(!A||q),"JSON",{stringify:z}),p(T,"Symbol"),p(Math,"Math",!0),p(o.JSON,"JSON",!0)},function(e,t,n){var r=n(31),o=n(115)(!0);r(r.S,"Object",{entries:function(e){return o(e)}})},function(e,t,n){var r=n(31),o=n(115)(!1);r(r.S,"Object",{values:function(e){return o(e)}})},function(e,t,n){n(221);var r=n(42);r.NodeList=r.HTMLCollection=r.Array},function(e,t,n){"use strict";function r(e){return e}function o(e,t,n){function o(e,t){var n=g.hasOwnProperty(t)?g[t]:null;E.hasOwnProperty(t)&&s("OVERRIDE_BASE"===n,"ReactClassInterface: You are attempting to override `%s` from your class specification. Ensure that your method names do not overlap with React methods.",t),e&&s("DEFINE_MANY"===n||"DEFINE_MANY_MERGED"===n,"ReactClassInterface: You are attempting to define `%s` on your component more than once. This conflict may be due to a mixin.",t)}function l(e,n){if(n){s("function"!=typeof n,"ReactClass: You're attempting to use a component class or function as a mixin. Instead, just use a regular object."),s(!t(n),"ReactClass: You're attempting to use a component as a mixin. Instead, just use a regular object.");var r=e.prototype,i=r.__reactAutoBindPairs;n.hasOwnProperty(u)&&b.mixins(e,n.mixins);for(var a in n)if(n.hasOwnProperty(a)&&a!==u){var l=n[a],c=r.hasOwnProperty(a);if(o(c,a),b.hasOwnProperty(a))b[a](e,l);else{var p=g.hasOwnProperty(a),h="function"==typeof l,v=h&&!p&&!c&&!1!==n.autobind;if(v)i.push(a,l),r[a]=l;else if(c){var m=g[a];s(p&&("DEFINE_MANY_MERGED"===m||"DEFINE_MANY"===m),"ReactClass: Unexpected spec policy %s for key %s when mixing in component specs.",m,a),"DEFINE_MANY_MERGED"===m?r[a]=f(r[a],l):"DEFINE_MANY"===m&&(r[a]=d(r[a],l))}else r[a]=l}}}else;}function c(e,t){if(t)for(var n in t){var r=t[n];if(t.hasOwnProperty(n)){var o=n in b;s(!o,'ReactClass: You are attempting to define a reserved property, `%s`, that shouldn\'t be on the "statics" key. Define it as an instance property instead; it will still be accessible on the constructor.',n);var i=n in e;s(!i,"ReactClass: You are attempting to define `%s` on your component more than once. This conflict may be due to a mixin.",n),e[n]=r}}}function p(e,t){s(e&&t&&"object"==typeof e&&"object"==typeof t,"mergeIntoWithNoDuplicateKeys(): Cannot merge non-objects.");for(var n in t)t.hasOwnProperty(n)&&(s(void 0===e[n],"mergeIntoWithNoDuplicateKeys(): Tried to merge two objects with the same key: `%s`. This conflict may be due to a mixin; in particular, this may be caused by two getInitialState() or getDefaultProps() methods returning objects with clashing keys.",n),e[n]=t[n]);return e}function f(e,t){return function(){var n=e.apply(this,arguments),r=t.apply(this,arguments);if(null==n)return r;if(null==r)return n;var o={};return p(o,n),p(o,r),o}}function d(e,t){return function(){e.apply(this,arguments),t.apply(this,arguments)}}function h(e,t){var n=t.bind(e);return n}function v(e){for(var t=e.__reactAutoBindPairs,n=0;n":"<"+e+">",s[e]=!a.firstChild),s[e]?f[e]:null}var o=n(17),i=n(9),a=o.canUseDOM?document.createElement("div"):null,s={},u=[1,'"],l=[1,"","
"],c=[3,"","
"],p=[1,'',""],f={"*":[1,"?
","
"],area:[1,"",""],col:[2,"","
"],legend:[1,"
","
"],param:[1,"",""],tr:[2,"","
"],optgroup:u,option:u,caption:l,colgroup:l,tbody:l,tfoot:l,thead:l,td:c,th:c};["circle","clipPath","defs","ellipse","g","image","line","linearGradient","mask","path","pattern","polygon","polyline","radialGradient","rect","stop","text","tspan"].forEach(function(e){f[e]=p,s[e]=!0}),e.exports=r},function(e,t,n){"use strict";function r(e){return e.Window&&e instanceof e.Window?{x:e.pageXOffset||e.document.documentElement.scrollLeft,y:e.pageYOffset||e.document.documentElement.scrollTop}:{x:e.scrollLeft,y:e.scrollTop}}e.exports=r},function(e,t,n){"use strict";function r(e){return e.replace(o,"-$1").toLowerCase()}var o=/([A-Z])/g;e.exports=r},function(e,t,n){"use strict";function r(e){return o(e).replace(i,"-ms-")}var o=n(253),i=/^ms-/;e.exports=r},function(e,t,n){"use strict";function r(e){var t=e?e.ownerDocument||e:document,n=t.defaultView||window;return!(!e||!("function"==typeof n.Node?e instanceof n.Node:"object"==typeof e&&"number"==typeof e.nodeType&&"string"==typeof e.nodeName))}e.exports=r},function(e,t,n){"use strict";function r(e){return o(e)&&3==e.nodeType}var o=n(255);e.exports=r},function(e,t,n){"use strict";function r(e){var t={};return function(n){return t.hasOwnProperty(n)||(t[n]=e.call(this,n)),t[n]}}e.exports=r},function(e,t,n){"use strict";function r(e,t){return function(n,r,o,i,u){var l=o||"<>",c=u||r;if(null!=n[r]){var p=o+"."+r;(0,a.default)(s[p],"The "+i+" `"+c+"` of `"+l+"` is deprecated. "+t+"."),s[p]=!0}for(var f=arguments.length,d=Array(f>5?f-5:0),h=5;h=e.children.length&&this.setState({activeIndex:0,previousActiveIndex:null,direction:null})},t.prototype.componentDidMount=function(){this.waitForNext()},t.prototype.componentWillUnmount=function(){clearTimeout(this.timeout),this.isUnmounted=!0},t.prototype.handleMouseOver=function(){this.props.pauseOnHover&&this.pause()},t.prototype.handleMouseOut=function(){this.isPaused&&this.play()},t.prototype.handlePrev=function(e){var t=this.getActiveIndex()-1;if(t<0){if(!this.props.wrap)return;t=w.a.count(this.props.children)-1}this.select(t,e,"prev")},t.prototype.handleNext=function(e){var t=this.getActiveIndex()+1;if(t>w.a.count(this.props.children)-1){if(!this.props.wrap)return;t=0}this.select(t,e,"next")},t.prototype.handleItemAnimateOutEnd=function(){var e=this;this.setState({previousActiveIndex:null,direction:null},function(){e.waitForNext(),e.props.onSlideEnd&&e.props.onSlideEnd()})},t.prototype.getActiveIndex=function(){var e=this.props.activeIndex;return null!=e?e:this.state.activeIndex},t.prototype.getDirection=function(e,t){return e===t?null:e>t?"prev":"next"},t.prototype.select=function(e,t,n){if(clearTimeout(this.timeout),!this.isUnmounted){var r=this.props.slide?this.getActiveIndex():null;n=n||this.getDirection(r,e);var o=this.props.onSelect;if(o&&(o.length>1?(t?(t.persist(),t.direction=n):t={direction:n},o(e,t)):o(e)),null==this.props.activeIndex&&e!==r){if(null!=this.state.previousActiveIndex)return;this.setState({activeIndex:e,previousActiveIndex:r,direction:n})}}},t.prototype.waitForNext=function(){var e=this.props,t=e.slide,n=e.interval,r=e.activeIndex;!this.isPaused&&t&&n&&null==r&&(this.timeout=setTimeout(this.handleNext,n))},t.prototype.pause=function(){this.isPaused=!0,clearTimeout(this.timeout)},t.prototype.play=function(){this.isPaused=!1,this.waitForNext()},t.prototype.renderIndicators=function(e,t,r){var o=this,i=[];return w.a.forEach(e,function(e,n){i.push(m.a.createElement("li",{key:n,className:n===t?"active":null,onClick:function(e){return o.select(n,e)}})," ")}),m.a.createElement("ol",{className:n.i(x.prefix)(r,"indicators")},i)},t.prototype.renderControls=function(e){var t=e.wrap,r=e.children,o=e.activeIndex,i=e.prevIcon,a=e.nextIcon,s=e.bsProps,u=e.prevLabel,l=e.nextLabel,c=n.i(x.prefix)(s,"control"),p=w.a.count(r);return[(t||0!==o)&&m.a.createElement(E.a,{key:"prev",className:h()(c,"left"),onClick:this.handlePrev},i,u&&m.a.createElement("span",{className:"sr-only"},u)),(t||o!==p-1)&&m.a.createElement(E.a,{key:"next",className:h()(c,"right"),onClick:this.handleNext},a,l&&m.a.createElement("span",{className:"sr-only"},l))]},t.prototype.render=function(){var e=this,t=this.props,r=t.slide,i=t.indicators,s=t.controls,u=t.wrap,l=t.prevIcon,c=t.prevLabel,p=t.nextIcon,f=t.nextLabel,d=t.className,y=t.children,g=a()(t,["slide","indicators","controls","wrap","prevIcon","prevLabel","nextIcon","nextLabel","className","children"]),b=this.state,_=b.previousActiveIndex,C=b.direction,E=n.i(x.splitBsPropsAndOmit)(g,["interval","pauseOnHover","onSelect","onSlideEnd","activeIndex","defaultActiveIndex","direction"]),T=E[0],O=E[1],N=this.getActiveIndex(),S=o()({},n.i(x.getClassSet)(T),{slide:r});return m.a.createElement("div",o()({},O,{className:h()(d,S),onMouseOver:this.handleMouseOver,onMouseOut:this.handleMouseOut}),i&&this.renderIndicators(y,N,T),m.a.createElement("div",{className:n.i(x.prefix)(T,"inner")},w.a.map(y,function(t,o){var i=o===N,a=r&&o===_;return n.i(v.cloneElement)(t,{active:i,index:o,animateOut:a,animateIn:i&&null!=_&&r,direction:C,onAnimateOutEnd:a?e.handleItemAnimateOutEnd:null})})),s&&this.renderControls({wrap:u,children:y,activeIndex:N,prevIcon:l,prevLabel:c,nextIcon:p,nextLabel:f,bsProps:T}))},t}(m.a.Component);N.propTypes=T,N.defaultProps=O,N.Caption=b.a,N.Item=_.a,t.a=n.i(x.bsClass)("carousel",N)},function(e,t,n){"use strict";var r=n(4),o=n.n(r),i=n(5),a=n.n(i),s=n(1),u=n.n(s),l=n(3),c=n.n(l),p=n(2),f=n.n(p),d=n(6),h=n.n(d),v=n(0),m=n.n(v),y=n(12),g=n.n(y),b=n(8),_={componentClass:g.a},C={componentClass:"div"},E=function(e){function t(){return u()(this,t),c()(this,e.apply(this,arguments))}return f()(t,e),t.prototype.render=function(){var e=this.props,t=e.componentClass,r=e.className,i=a()(e,["componentClass","className"]),s=n.i(b.splitBsProps)(i),u=s[0],l=s[1],c=n.i(b.getClassSet)(u);return m.a.createElement(t,o()({},l,{className:h()(r,c)}))},t}(m.a.Component);E.propTypes=_,E.defaultProps=C,t.a=n.i(b.bsClass)("carousel-caption",E)},function(e,t,n){"use strict";var r=n(4),o=n.n(r),i=n(5),a=n.n(i),s=n(1),u=n.n(s),l=n(3),c=n.n(l),p=n(2),f=n.n(p),d=n(6),h=n.n(d),v=n(0),m=n.n(v),y=n(7),g=n.n(y),b=n(22),_=(n.n(b),n(8)),C={inline:g.a.bool,disabled:g.a.bool,title:g.a.string,validationState:g.a.oneOf(["success","warning","error",null]),inputRef:g.a.func},E={inline:!1,disabled:!1,title:""},x=function(e){function t(){return u()(this,t),c()(this,e.apply(this,arguments))}return f()(t,e),t.prototype.render=function(){var e=this.props,t=e.inline,r=e.disabled,i=e.validationState,s=e.inputRef,u=e.className,l=e.style,c=e.title,p=e.children,f=a()(e,["inline","disabled","validationState","inputRef","className","style","title","children"]),d=n.i(_.splitBsProps)(f),v=d[0],y=d[1],g=m.a.createElement("input",o()({},y,{ref:s,type:"checkbox",disabled:r}));if(t){var b,C=(b={},b[n.i(_.prefix)(v,"inline")]=!0,b.disabled=r,b);return m.a.createElement("label",{className:h()(u,C),style:l,title:c},g,p)}var E=o()({},n.i(_.getClassSet)(v),{disabled:r});return i&&(E["has-"+i]=!0),m.a.createElement("div",{className:h()(u,E),style:l},m.a.createElement("label",{title:c},g,p))},t}(m.a.Component);x.propTypes=C,x.defaultProps=E,t.a=n.i(_.bsClass)("checkbox",x)},function(e,t,n){"use strict";var r=n(4),o=n.n(r),i=n(5),a=n.n(i),s=n(1),u=n.n(s),l=n(3),c=n.n(l),p=n(2),f=n.n(p),d=n(6),h=n.n(d),v=n(0),m=n.n(v),y=n(7),g=n.n(y),b=n(12),_=n.n(b),C=n(8),E=n(153),x=n(16),w={componentClass:_.a,visibleXsBlock:g.a.bool,visibleSmBlock:g.a.bool,visibleMdBlock:g.a.bool,visibleLgBlock:g.a.bool},T={componentClass:"div"},O=function(e){function t(){return u()(this,t),c()(this,e.apply(this,arguments))}return f()(t,e),t.prototype.render=function(){var e=this.props,t=e.componentClass,r=e.className,i=a()(e,["componentClass","className"]),s=n.i(C.splitBsProps)(i),u=s[0],l=s[1],c=n.i(C.getClassSet)(u);return x.e.forEach(function(e){var t="visible"+n.i(E.a)(e)+"Block";l[t]&&(c["visible-"+e+"-block"]=!0),delete l[t]}),m.a.createElement(t,o()({},l,{className:h()(r,c)}))},t}(m.a.Component);O.propTypes=w,O.defaultProps=T,t.a=n.i(C.bsClass)("clearfix",O)},function(e,t,n){"use strict";var r=n(4),o=n.n(r),i=n(5),a=n.n(i),s=n(1),u=n.n(s),l=n(3),c=n.n(l),p=n(2),f=n.n(p),d=n(6),h=n.n(d),v=n(0),m=n.n(v),y=n(7),g=n.n(y),b=n(12),_=n.n(b),C=n(8),E=n(16),x={componentClass:_.a,xs:g.a.number,sm:g.a.number,md:g.a.number,lg:g.a.number,xsHidden:g.a.bool,smHidden:g.a.bool,mdHidden:g.a.bool,lgHidden:g.a.bool,xsOffset:g.a.number,smOffset:g.a.number,mdOffset:g.a.number,lgOffset:g.a.number,xsPush:g.a.number,smPush:g.a.number,mdPush:g.a.number,lgPush:g.a.number,xsPull:g.a.number,smPull:g.a.number,mdPull:g.a.number,lgPull:g.a.number},w={componentClass:"div"},T=function(e){function t(){return u()(this,t),c()(this,e.apply(this,arguments))}return f()(t,e),t.prototype.render=function(){var e=this.props,t=e.componentClass,r=e.className,i=a()(e,["componentClass","className"]),s=n.i(C.splitBsProps)(i),u=s[0],l=s[1],c=[];return E.e.forEach(function(e){function t(t,r){var o=""+e+t,i=l[o];null!=i&&c.push(n.i(C.prefix)(u,""+e+r+"-"+i)),delete l[o]}t("",""),t("Offset","-offset"),t("Push","-push"),t("Pull","-pull");var r=e+"Hidden";l[r]&&c.push("hidden-"+e),delete l[r]}),m.a.createElement(t,o()({},l,{className:h()(r,c)}))},t}(m.a.Component);T.propTypes=x,T.defaultProps=w,t.a=n.i(C.bsClass)("col",T)},function(e,t,n){"use strict";var r=n(4),o=n.n(r),i=n(5),a=n.n(i),s=n(1),u=n.n(s),l=n(3),c=n.n(l),p=n(2),f=n.n(p),d=n(6),h=n.n(d),v=n(0),m=n.n(v),y=n(7),g=n.n(y),b=n(22),_=(n.n(b),n(8)),C={htmlFor:g.a.string,srOnly:g.a.bool},E={srOnly:!1},x={$bs_formGroup:g.a.object},w=function(e){function t(){return u()(this,t),c()(this,e.apply(this,arguments))}return f()(t,e),t.prototype.render=function(){var e=this.context.$bs_formGroup,t=e&&e.controlId,r=this.props,i=r.htmlFor,s=void 0===i?t:i,u=r.srOnly,l=r.className,c=a()(r,["htmlFor","srOnly","className"]),p=n.i(_.splitBsProps)(c),f=p[0],d=p[1],v=o()({},n.i(_.getClassSet)(f),{"sr-only":u});return m.a.createElement("label",o()({},d,{htmlFor:s,className:h()(l,v)}))},t}(m.a.Component);w.propTypes=C,w.defaultProps=E,w.contextTypes=x,t.a=n.i(_.bsClass)("control-label",w)},function(e,t,n){"use strict";var r=n(5),o=n.n(r),i=n(1),a=n.n(i),s=n(3),u=n.n(s),l=n(2),c=n.n(l),p=n(4),f=n.n(p),d=n(0),h=n.n(d),v=n(7),m=n.n(v),y=n(61),g=n(63),b=f()({},y.a.propTypes,{bsStyle:m.a.string,bsSize:m.a.string,title:m.a.node.isRequired,noCaret:m.a.bool,children:m.a.node}),_=function(e){function t(){return a()(this,t),u()(this,e.apply(this,arguments))}return c()(t,e),t.prototype.render=function(){var e=this.props,t=e.bsSize,r=e.bsStyle,i=e.title,a=e.children,s=o()(e,["bsSize","bsStyle","title","children"]),u=n.i(g.a)(s,y.a.ControlledComponent),l=u[0],c=u[1];return h.a.createElement(y.a,f()({},l,{bsSize:t,bsStyle:r}),h.a.createElement(y.a.Toggle,f()({},c,{bsSize:t,bsStyle:r}),i),h.a.createElement(y.a.Menu,null,a))},t}(h.a.Component);_.propTypes=b,t.a=_},function(e,t,n){"use strict";var r=n(4),o=n.n(r),i=n(5),a=n.n(i),s=n(190),u=n.n(s),l=n(1),c=n.n(l),p=n(3),f=n.n(p),d=n(2),h=n.n(d),v=n(6),m=n.n(v),y=n(81),g=n.n(y),b=n(0),_=n.n(b),C=n(7),E=n.n(C),x=n(19),w=n.n(x),T=n(176),O=n.n(T),N=n(8),S=n(15),k=n(18),P={open:E.a.bool,pullRight:E.a.bool,onClose:E.a.func,labelledBy:E.a.oneOfType([E.a.string,E.a.number]),onSelect:E.a.func,rootCloseEvent:E.a.oneOf(["click","mousedown"])},M={bsRole:"menu",pullRight:!1},I=function(e){function t(n){c()(this,t);var r=f()(this,e.call(this,n));return r.handleRootClose=r.handleRootClose.bind(r),r.handleKeyDown=r.handleKeyDown.bind(r),r}return h()(t,e),t.prototype.handleRootClose=function(e){this.props.onClose(e,{source:"rootClose"})},t.prototype.handleKeyDown=function(e){switch(e.keyCode){case g.a.codes.down:this.focusNext(),e.preventDefault();break;case g.a.codes.up:this.focusPrevious(),e.preventDefault();break;case g.a.codes.esc:case g.a.codes.tab:this.props.onClose(e,{source:"keydown"})}},t.prototype.getItemsAndActiveIndex=function(){var e=this.getFocusableMenuItems();return{items:e,activeIndex:e.indexOf(document.activeElement)}},t.prototype.getFocusableMenuItems=function(){var e=w.a.findDOMNode(this);return e?u()(e.querySelectorAll('[tabIndex="-1"]')):[]},t.prototype.focusNext=function(){var e=this.getItemsAndActiveIndex(),t=e.items,n=e.activeIndex;if(0!==t.length){t[n===t.length-1?0:n+1].focus()}},t.prototype.focusPrevious=function(){var e=this.getItemsAndActiveIndex(),t=e.items,n=e.activeIndex;if(0!==t.length){t[0===n?t.length-1:n-1].focus()}},t.prototype.render=function(){var e,t=this,r=this.props,i=r.open,s=r.pullRight,u=r.labelledBy,l=r.onSelect,c=r.className,p=r.rootCloseEvent,f=r.children,d=a()(r,["open","pullRight","labelledBy","onSelect","className","rootCloseEvent","children"]),h=n.i(N.splitBsPropsAndOmit)(d,["onClose"]),v=h[0],y=h[1],g=o()({},n.i(N.getClassSet)(v),(e={},e[n.i(N.prefix)(v,"right")]=s,e));return _.a.createElement(O.a,{disabled:!i,onRootClose:this.handleRootClose,event:p},_.a.createElement("ul",o()({},y,{role:"menu",className:m()(c,g),"aria-labelledby":u}),k.a.map(f,function(e){return _.a.cloneElement(e,{onKeyDown:n.i(S.a)(e.props.onKeyDown,t.handleKeyDown),onSelect:n.i(S.a)(e.props.onSelect,l)})})))},t}(_.a.Component);I.propTypes=P,I.defaultProps=M,t.a=n.i(N.bsClass)("dropdown-menu",I)},function(e,t,n){"use strict";var r=n(4),o=n.n(r),i=n(5),a=n.n(i),s=n(1),u=n.n(s),l=n(3),c=n.n(l),p=n(2),f=n.n(p),d=n(6),h=n.n(d),v=n(0),m=n.n(v),y=n(7),g=n.n(y),b=n(12),_=n.n(b),C=n(8),E={horizontal:g.a.bool,inline:g.a.bool,componentClass:_.a},x={horizontal:!1,inline:!1,componentClass:"form"},w=function(e){function t(){return u()(this,t),c()(this,e.apply(this,arguments))}return f()(t,e),t.prototype.render=function(){var e=this.props,t=e.horizontal,r=e.inline,i=e.componentClass,s=e.className,u=a()(e,["horizontal","inline","componentClass","className"]),l=n.i(C.splitBsProps)(u),c=l[0],p=l[1],f=[];return t&&f.push(n.i(C.prefix)(c,"horizontal")),r&&f.push(n.i(C.prefix)(c,"inline")),m.a.createElement(i,o()({},p,{className:h()(s,f)}))},t}(m.a.Component);w.propTypes=E,w.defaultProps=x,t.a=n.i(C.bsClass)("form",w)},function(e,t,n){"use strict";var r=n(4),o=n.n(r),i=n(5),a=n.n(i),s=n(1),u=n.n(s),l=n(3),c=n.n(l),p=n(2),f=n.n(p),d=n(6),h=n.n(d),v=n(0),m=n.n(v),y=n(7),g=n.n(y),b=n(12),_=n.n(b),C=n(22),E=(n.n(C),n(277)),x=n(278),w=n(8),T=n(16),O={componentClass:_.a,type:g.a.string,id:g.a.string,inputRef:g.a.func},N={componentClass:"input"},S={$bs_formGroup:g.a.object},k=function(e){function t(){return u()(this,t),c()(this,e.apply(this,arguments))}return f()(t,e),t.prototype.render=function(){var e=this.context.$bs_formGroup,t=e&&e.controlId,r=this.props,i=r.componentClass,s=r.type,u=r.id,l=void 0===u?t:u,c=r.inputRef,p=r.className,f=r.bsSize,d=a()(r,["componentClass","type","id","inputRef","className","bsSize"]),v=n.i(w.splitBsProps)(d),y=v[0],g=v[1],b=void 0;if("file"!==s&&(b=n.i(w.getClassSet)(y)),f){var _=T.a[f]||f;b[n.i(w.prefix)({bsClass:"input"},_)]=!0}return m.a.createElement(i,o()({},g,{type:s,id:l,ref:c,className:h()(p,b)}))},t}(m.a.Component);k.propTypes=O,k.defaultProps=N,k.contextTypes=S,k.Feedback=E.a,k.Static=x.a,t.a=n.i(w.bsClass)("form-control",n.i(w.bsSizes)([T.b.SMALL,T.b.LARGE],k))},function(e,t,n){"use strict";var r=n(5),o=n.n(r),i=n(4),a=n.n(i),s=n(1),u=n.n(s),l=n(3),c=n.n(l),p=n(2),f=n.n(p),d=n(6),h=n.n(d),v=n(0),m=n.n(v),y=n(7),g=n.n(y),b=n(86),_=n(8),C={bsRole:"feedback"},E={$bs_formGroup:g.a.object},x=function(e){function t(){return u()(this,t),c()(this,e.apply(this,arguments))}return f()(t,e),t.prototype.getGlyph=function(e){switch(e){case"success":return"ok";case"warning":return"warning-sign";case"error":return"remove";default:return null}},t.prototype.renderDefaultFeedback=function(e,t,n,r){var o=this.getGlyph(e&&e.validationState);return o?m.a.createElement(b.a,a()({},r,{glyph:o,className:h()(t,n)})):null},t.prototype.render=function(){var e=this.props,t=e.className,r=e.children,i=o()(e,["className","children"]),s=n.i(_.splitBsProps)(i),u=s[0],l=s[1],c=n.i(_.getClassSet)(u);if(!r)return this.renderDefaultFeedback(this.context.$bs_formGroup,t,c,l);var p=m.a.Children.only(r);return m.a.cloneElement(p,a()({},l,{className:h()(p.props.className,t,c)}))},t}(m.a.Component);x.defaultProps=C,x.contextTypes=E,t.a=n.i(_.bsClass)("form-control-feedback",x)},function(e,t,n){"use strict";var r=n(4),o=n.n(r),i=n(5),a=n.n(i),s=n(1),u=n.n(s),l=n(3),c=n.n(l),p=n(2),f=n.n(p),d=n(6),h=n.n(d),v=n(0),m=n.n(v),y=n(12),g=n.n(y),b=n(8),_={componentClass:g.a},C={componentClass:"p"},E=function(e){function t(){return u()(this,t),c()(this,e.apply(this,arguments))}return f()(t,e),t.prototype.render=function(){var e=this.props,t=e.componentClass,r=e.className,i=a()(e,["componentClass","className"]),s=n.i(b.splitBsProps)(i),u=s[0],l=s[1],c=n.i(b.getClassSet)(u);return m.a.createElement(t,o()({},l,{className:h()(r,c)}))},t}(m.a.Component);E.propTypes=_,E.defaultProps=C,t.a=n.i(b.bsClass)("form-control-static",E)},function(e,t,n){"use strict";var r=n(4),o=n.n(r),i=n(5),a=n.n(i),s=n(1),u=n.n(s),l=n(3),c=n.n(l),p=n(2),f=n.n(p),d=n(6),h=n.n(d),v=n(0),m=n.n(v),y=n(7),g=n.n(y),b=n(8),_=n(16),C=n(18),E={controlId:g.a.string,validationState:g.a.oneOf(["success","warning","error",null])},x={$bs_formGroup:g.a.object.isRequired},w=function(e){function t(){return u()(this,t),c()(this,e.apply(this,arguments))}return f()(t,e),t.prototype.getChildContext=function(){var e=this.props;return{$bs_formGroup:{controlId:e.controlId,validationState:e.validationState}}},t.prototype.hasFeedback=function(e){var t=this;return C.a.some(e,function(e){return"feedback"===e.props.bsRole||e.props.children&&t.hasFeedback(e.props.children)})},t.prototype.render=function(){var e=this.props,t=e.validationState,r=e.className,i=e.children,s=a()(e,["validationState","className","children"]),u=n.i(b.splitBsPropsAndOmit)(s,["controlId"]),l=u[0],c=u[1],p=o()({},n.i(b.getClassSet)(l),{"has-feedback":this.hasFeedback(i)});return t&&(p["has-"+t]=!0),m.a.createElement("div",o()({},c,{className:h()(r,p)}),i)},t}(m.a.Component);w.propTypes=E,w.childContextTypes=x,t.a=n.i(b.bsClass)("form-group",n.i(b.bsSizes)([_.b.LARGE,_.b.SMALL],w))},function(e,t,n){"use strict";var r=n(4),o=n.n(r),i=n(5),a=n.n(i),s=n(1),u=n.n(s),l=n(3),c=n.n(l),p=n(2),f=n.n(p),d=n(6),h=n.n(d),v=n(0),m=n.n(v),y=n(8),g=function(e){function t(){return u()(this,t),c()(this,e.apply(this,arguments))}return f()(t,e),t.prototype.render=function(){var e=this.props,t=e.className,r=a()(e,["className"]),i=n.i(y.splitBsProps)(r),s=i[0],u=i[1],l=n.i(y.getClassSet)(s);return m.a.createElement("span",o()({},u,{className:h()(t,l)}))},t}(m.a.Component);t.a=n.i(y.bsClass)("help-block",g)},function(e,t,n){"use strict";var r=n(4),o=n.n(r),i=n(5),a=n.n(i),s=n(1),u=n.n(s),l=n(3),c=n.n(l),p=n(2),f=n.n(p),d=n(6),h=n.n(d),v=n(0),m=n.n(v),y=n(7),g=n.n(y),b=n(8),_={responsive:g.a.bool,rounded:g.a.bool,circle:g.a.bool,thumbnail:g.a.bool},C={responsive:!1,rounded:!1,circle:!1,thumbnail:!1},E=function(e){function t(){return u()(this,t),c()(this,e.apply(this,arguments))}return f()(t,e),t.prototype.render=function(){var e,t=this.props,r=t.responsive,i=t.rounded,s=t.circle,u=t.thumbnail,l=t.className,c=a()(t,["responsive","rounded","circle","thumbnail","className"]),p=n.i(b.splitBsProps)(c),f=p[0],d=p[1],v=(e={},e[n.i(b.prefix)(f,"responsive")]=r,e[n.i(b.prefix)(f,"rounded")]=i,e[n.i(b.prefix)(f,"circle")]=s,e[n.i(b.prefix)(f,"thumbnail")]=u,e);return m.a.createElement("img",o()({},d,{className:h()(l,v)}))},t}(m.a.Component);E.propTypes=_,E.defaultProps=C,t.a=n.i(b.bsClass)("img",E)},function(e,t,n){"use strict";var r=n(4),o=n.n(r),i=n(5),a=n.n(i),s=n(1),u=n.n(s),l=n(3),c=n.n(l),p=n(2),f=n.n(p),d=n(6),h=n.n(d),v=n(0),m=n.n(v),y=n(283),g=n(284),b=n(8),_=n(16),C=function(e){function t(){return u()(this,t),c()(this,e.apply(this,arguments))}return f()(t,e),t.prototype.render=function(){var e=this.props,t=e.className,r=a()(e,["className"]),i=n.i(b.splitBsProps)(r),s=i[0],u=i[1],l=n.i(b.getClassSet)(s);return m.a.createElement("span",o()({},u,{className:h()(t,l)}))},t}(m.a.Component);C.Addon=y.a,C.Button=g.a,t.a=n.i(b.bsClass)("input-group",n.i(b.bsSizes)([_.b.LARGE,_.b.SMALL],C))},function(e,t,n){"use strict";var r=n(4),o=n.n(r),i=n(5),a=n.n(i),s=n(1),u=n.n(s),l=n(3),c=n.n(l),p=n(2),f=n.n(p),d=n(6),h=n.n(d),v=n(0),m=n.n(v),y=n(8),g=function(e){function t(){return u()(this,t),c()(this,e.apply(this,arguments))}return f()(t,e),t.prototype.render=function(){var e=this.props,t=e.className,r=a()(e,["className"]),i=n.i(y.splitBsProps)(r),s=i[0],u=i[1],l=n.i(y.getClassSet)(s);return m.a.createElement("span",o()({},u,{className:h()(t,l)}))},t}(m.a.Component);t.a=n.i(y.bsClass)("input-group-addon",g)},function(e,t,n){"use strict";var r=n(4),o=n.n(r),i=n(5),a=n.n(i),s=n(1),u=n.n(s),l=n(3),c=n.n(l),p=n(2),f=n.n(p),d=n(6),h=n.n(d),v=n(0),m=n.n(v),y=n(8),g=function(e){function t(){return u()(this,t),c()(this,e.apply(this,arguments))}return f()(t,e),t.prototype.render=function(){var e=this.props,t=e.className,r=a()(e,["className"]),i=n.i(y.splitBsProps)(r),s=i[0],u=i[1],l=n.i(y.getClassSet)(s);return m.a.createElement("span",o()({},u,{className:h()(t,l)}))},t}(m.a.Component);t.a=n.i(y.bsClass)("input-group-btn",g)},function(e,t,n){"use strict";var r=n(4),o=n.n(r),i=n(5),a=n.n(i),s=n(1),u=n.n(s),l=n(3),c=n.n(l),p=n(2),f=n.n(p),d=n(0),h=n.n(d),v=n(6),m=n.n(v),y=n(12),g=n.n(y),b=n(8),_={componentClass:g.a},C={componentClass:"div"},E=function(e){function t(){return u()(this,t),c()(this,e.apply(this,arguments))}return f()(t,e),t.prototype.render=function(){var e=this.props,t=e.componentClass,r=e.className,i=a()(e,["componentClass","className"]),s=n.i(b.splitBsProps)(i),u=s[0],l=s[1],c=n.i(b.getClassSet)(u);return h.a.createElement(t,o()({},l,{className:m()(r,c)}))},t}(h.a.Component);E.propTypes=_,E.defaultProps=C,t.a=n.i(b.bsClass)("jumbotron",E)},function(e,t,n){"use strict";var r=n(33),o=n.n(r),i=n(4),a=n.n(i),s=n(5),u=n.n(s),l=n(1),c=n.n(l),p=n(3),f=n.n(p),d=n(2),h=n.n(d),v=n(6),m=n.n(v),y=n(0),g=n.n(y),b=n(8),_=n(16),C=function(e){function t(){return c()(this,t),f()(this,e.apply(this,arguments))}return h()(t,e),t.prototype.hasContent=function(e){var t=!1;return g.a.Children.forEach(e,function(e){t||(e||0===e)&&(t=!0)}),t},t.prototype.render=function(){var e=this.props,t=e.className,r=e.children,o=u()(e,["className","children"]),i=n.i(b.splitBsProps)(o),s=i[0],l=i[1],c=a()({},n.i(b.getClassSet)(s),{hidden:!this.hasContent(r)});return g.a.createElement("span",a()({},l,{className:m()(t,c)}),r)},t}(g.a.Component);t.a=n.i(b.bsClass)("label",n.i(b.bsStyles)([].concat(o()(_.c),[_.d.DEFAULT,_.d.PRIMARY]),_.d.DEFAULT,C))},function(e,t,n){"use strict";function r(e){return e?E.a.some(e,function(e){return e.type!==_.a||e.props.href||e.props.onClick})?"div":"ul":"div"}var o=n(4),i=n.n(o),a=n(5),s=n.n(a),u=n(1),l=n.n(u),c=n(3),p=n.n(c),f=n(2),d=n.n(f),h=n(6),v=n.n(h),m=n(0),y=n.n(m),g=n(12),b=n.n(g),_=n(139),C=n(8),E=n(18),x={componentClass:b.a},w=function(e){function t(){return l()(this,t),p()(this,e.apply(this,arguments))}return d()(t,e),t.prototype.render=function(){var e=this.props,t=e.children,o=e.componentClass,a=void 0===o?r(t):o,u=e.className,l=s()(e,["children","componentClass","className"]),c=n.i(C.splitBsProps)(l),p=c[0],f=c[1],d=n.i(C.getClassSet)(p),h="ul"===a&&E.a.every(t,function(e){return e.type===_.a});return y.a.createElement(a,i()({},f,{className:v()(u,d)}),h?E.a.map(t,function(e){return n.i(m.cloneElement)(e,{listItem:!0})}):t)},t}(y.a.Component);w.propTypes=x,t.a=n.i(C.bsClass)("list-group",w)},function(e,t,n){"use strict";var r=n(4),o=n.n(r),i=n(5),a=n.n(i),s=n(1),u=n.n(s),l=n(3),c=n.n(l),p=n(2),f=n.n(p),d=n(6),h=n.n(d),v=n(0),m=n.n(v),y=n(12),g=n.n(y),b=n(8),_={componentClass:g.a},C={componentClass:"div"},E=function(e){function t(){return u()(this,t),c()(this,e.apply(this,arguments))}return f()(t,e),t.prototype.render=function(){var e=this.props,t=e.componentClass,r=e.className,i=a()(e,["componentClass","className"]),s=n.i(b.splitBsProps)(i),u=s[0],l=s[1],c=n.i(b.getClassSet)(u);return m.a.createElement(t,o()({},l,{className:h()(r,c)}))},t}(m.a.Component);E.propTypes=_,E.defaultProps=C,t.a=n.i(b.bsClass)("media-body",E)},function(e,t,n){"use strict";var r=n(4),o=n.n(r),i=n(5),a=n.n(i),s=n(1),u=n.n(s),l=n(3),c=n.n(l),p=n(2),f=n.n(p),d=n(6),h=n.n(d),v=n(0),m=n.n(v),y=n(12),g=n.n(y),b=n(8),_={componentClass:g.a},C={componentClass:"h4"},E=function(e){function t(){return u()(this,t),c()(this,e.apply(this,arguments))}return f()(t,e),t.prototype.render=function(){var e=this.props,t=e.componentClass,r=e.className,i=a()(e,["componentClass","className"]),s=n.i(b.splitBsProps)(i),u=s[0],l=s[1],c=n.i(b.getClassSet)(u);return m.a.createElement(t,o()({},l,{className:h()(r,c)}))},t}(m.a.Component);E.propTypes=_,E.defaultProps=C,t.a=n.i(b.bsClass)("media-heading",E)},function(e,t,n){"use strict";var r=n(4),o=n.n(r),i=n(5),a=n.n(i),s=n(1),u=n.n(s),l=n(3),c=n.n(l),p=n(2),f=n.n(p),d=n(6),h=n.n(d),v=n(0),m=n.n(v),y=n(7),g=n.n(y),b=n(87),_=n(8),C={align:g.a.oneOf(["top","middle","bottom"])},E=function(e){function t(){return u()(this,t),c()(this,e.apply(this,arguments))}return f()(t,e),t.prototype.render=function(){var e=this.props,t=e.align,r=e.className,i=a()(e,["align","className"]),s=n.i(_.splitBsProps)(i),u=s[0],l=s[1],c=n.i(_.getClassSet)(u);return t&&(c[n.i(_.prefix)(b.a.defaultProps,t)]=!0),m.a.createElement("div",o()({},l,{className:h()(r,c)}))},t}(m.a.Component);E.propTypes=C,t.a=n.i(_.bsClass)("media-left",E)},function(e,t,n){"use strict";var r=n(4),o=n.n(r),i=n(5),a=n.n(i),s=n(1),u=n.n(s),l=n(3),c=n.n(l),p=n(2),f=n.n(p),d=n(6),h=n.n(d),v=n(0),m=n.n(v),y=n(8),g=function(e){function t(){return u()(this,t),c()(this,e.apply(this,arguments))}return f()(t,e),t.prototype.render=function(){var e=this.props,t=e.className,r=a()(e,["className"]),i=n.i(y.splitBsProps)(r),s=i[0],u=i[1],l=n.i(y.getClassSet)(s);return m.a.createElement("ul",o()({},u,{className:h()(t,l)}))},t}(m.a.Component);t.a=n.i(y.bsClass)("media-list",g)},function(e,t,n){"use strict";var r=n(4),o=n.n(r),i=n(5),a=n.n(i),s=n(1),u=n.n(s),l=n(3),c=n.n(l),p=n(2),f=n.n(p),d=n(6),h=n.n(d),v=n(0),m=n.n(v),y=n(8),g=function(e){function t(){return u()(this,t),c()(this,e.apply(this,arguments))}return f()(t,e),t.prototype.render=function(){var e=this.props,t=e.className,r=a()(e,["className"]),i=n.i(y.splitBsProps)(r),s=i[0],u=i[1],l=n.i(y.getClassSet)(s);return m.a.createElement("li",o()({},u,{className:h()(t,l)}))},t}(m.a.Component);t.a=n.i(y.bsClass)("media",g)},function(e,t,n){"use strict";var r=n(4),o=n.n(r),i=n(5),a=n.n(i),s=n(1),u=n.n(s),l=n(3),c=n.n(l),p=n(2),f=n.n(p),d=n(6),h=n.n(d),v=n(0),m=n.n(v),y=n(7),g=n.n(y),b=n(87),_=n(8),C={align:g.a.oneOf(["top","middle","bottom"])},E=function(e){function t(){return u()(this,t),c()(this,e.apply(this,arguments))}return f()(t,e),t.prototype.render=function(){var e=this.props,t=e.align,r=e.className,i=a()(e,["align","className"]),s=n.i(_.splitBsProps)(i),u=s[0],l=s[1],c=n.i(_.getClassSet)(u);return t&&(c[n.i(_.prefix)(b.a.defaultProps,t)]=!0),m.a.createElement("div",o()({},l,{className:h()(r,c)}))},t}(m.a.Component);E.propTypes=C,t.a=n.i(_.bsClass)("media-right",E)},function(e,t,n){"use strict";var r=n(4),o=n.n(r),i=n(5),a=n.n(i),s=n(1),u=n.n(s),l=n(3),c=n.n(l),p=n(2),f=n.n(p),d=n(6),h=n.n(d),v=n(0),m=n.n(v),y=n(7),g=n.n(y),b=n(58),_=n.n(b),C=n(24),E=n(8),x=n(15),w={active:g.a.bool,disabled:g.a.bool,divider:_()(g.a.bool,function(e){var t=e.divider,n=e.children;return t&&n?new Error("Children will not be rendered for dividers"):null}),eventKey:g.a.any,header:g.a.bool,href:g.a.string,onClick:g.a.func,onSelect:g.a.func},T={divider:!1,disabled:!1,header:!1},O=function(e){function t(n,r){u()(this,t);var o=c()(this,e.call(this,n,r));return o.handleClick=o.handleClick.bind(o),o}return f()(t,e),t.prototype.handleClick=function(e){var t=this.props,n=t.href,r=t.disabled,o=t.onSelect,i=t.eventKey;n&&!r||e.preventDefault(),r||o&&o(i,e)},t.prototype.render=function(){var e=this.props,t=e.active,r=e.disabled,i=e.divider,s=e.header,u=e.onClick,l=e.className,c=e.style,p=a()(e,["active","disabled","divider","header","onClick","className","style"]),f=n.i(E.splitBsPropsAndOmit)(p,["eventKey","onSelect"]),d=f[0],v=f[1];return i?(v.children=void 0,m.a.createElement("li",o()({},v,{role:"separator",className:h()(l,"divider"),style:c}))):s?m.a.createElement("li",o()({},v,{role:"heading",className:h()(l,n.i(E.prefix)(d,"header")),style:c})):m.a.createElement("li",{role:"presentation",className:h()(l,{active:t,disabled:r}),style:c},m.a.createElement(C.a,o()({},v,{role:"menuitem",tabIndex:"-1",onClick:n.i(x.a)(u,this.handleClick)})))},t}(m.a.Component);O.propTypes=w,O.defaultProps=T,t.a=n.i(E.bsClass)("dropdown",O)},function(e,t,n){"use strict";var r=n(5),o=n.n(r),i=n(1),a=n.n(i),s=n(3),u=n.n(s),l=n(2),c=n.n(l),p=n(4),f=n.n(p),d=n(6),h=n.n(d),v=n(234),m=n.n(v),y=n(34),g=n.n(y),b=n(30),_=n.n(b),C=n(128),E=n.n(C),x=n(0),w=n.n(x),T=n(7),O=n.n(T),N=n(19),S=n.n(N),k=n(389),P=n.n(k),M=n(179),I=n.n(M),A=n(12),R=n.n(A),D=n(62),L=n(140),j=n(296),U=n(141),B=n(142),F=n(143),V=n(8),K=n(15),W=n(63),H=n(16),z=f()({},P.a.propTypes,j.a.propTypes,{backdrop:O.a.oneOf(["static",!0,!1]),backdropClassName:O.a.string,keyboard:O.a.bool,animation:O.a.bool,dialogComponentClass:R.a,autoFocus:O.a.bool,enforceFocus:O.a.bool,restoreFocus:O.a.bool,show:O.a.bool,onHide:O.a.func,onEnter:O.a.func,onEntering:O.a.func,onEntered:O.a.func,onExit:O.a.func,onExiting:O.a.func,onExited:O.a.func,container:P.a.propTypes.container}),q=f()({},P.a.defaultProps,{animation:!0,dialogComponentClass:j.a}),$={$bs_modal:O.a.shape({onHide:O.a.func})},Y=function(e){function t(n,r){a()(this,t);var o=u()(this,e.call(this,n,r));return o.handleEntering=o.handleEntering.bind(o),o.handleExited=o.handleExited.bind(o),o.handleWindowResize=o.handleWindowResize.bind(o),o.handleDialogClick=o.handleDialogClick.bind(o),o.state={style:{}},o}return c()(t,e),t.prototype.getChildContext=function(){return{$bs_modal:{onHide:this.props.onHide}}},t.prototype.componentWillUnmount=function(){this.handleExited()},t.prototype.handleEntering=function(){m.a.on(window,"resize",this.handleWindowResize),this.updateStyle()},t.prototype.handleExited=function(){m.a.off(window,"resize",this.handleWindowResize)},t.prototype.handleWindowResize=function(){this.updateStyle()},t.prototype.handleDialogClick=function(e){e.target===e.currentTarget&&this.props.onHide()},t.prototype.updateStyle=function(){if(_.a){var e=this._modal.getDialogElement(),t=e.scrollHeight,n=g()(e),r=I()(S.a.findDOMNode(this.props.container||n.body)),o=t>n.documentElement.clientHeight;this.setState({style:{paddingRight:r&&!o?E()():void 0,paddingLeft:!r&&o?E()():void 0}})}},t.prototype.render=function(){var e=this,r=this.props,i=r.backdrop,a=r.backdropClassName,s=r.animation,u=r.show,l=r.dialogComponentClass,c=r.className,p=r.style,d=r.children,v=r.onEntering,m=r.onExited,y=o()(r,["backdrop","backdropClassName","animation","show","dialogComponentClass","className","style","children","onEntering","onExited"]),g=n.i(W.a)(y,P.a),b=g[0],_=g[1],C=u&&!s&&"in";return w.a.createElement(P.a,f()({},b,{ref:function(t){e._modal=t},show:u,onEntering:n.i(K.a)(v,this.handleEntering),onExited:n.i(K.a)(m,this.handleExited),backdrop:i,backdropClassName:h()(n.i(V.prefix)(y,"backdrop"),a,C),containerClassName:n.i(V.prefix)(y,"open"),transition:s?D.a:void 0,dialogTransitionTimeout:t.TRANSITION_DURATION,backdropTransitionTimeout:t.BACKDROP_TRANSITION_DURATION}),w.a.createElement(l,f()({},_,{style:f()({},this.state.style,p),className:h()(c,C),onClick:!0===i?this.handleDialogClick:null}),d))},t}(w.a.Component);Y.propTypes=z,Y.defaultProps=q,Y.childContextTypes=$,Y.Body=L.a,Y.Header=B.a,Y.Title=F.a,Y.Footer=U.a,Y.Dialog=j.a,Y.TRANSITION_DURATION=300,Y.BACKDROP_TRANSITION_DURATION=150,t.a=n.i(V.bsClass)("modal",n.i(V.bsSizes)([H.b.LARGE,H.b.SMALL],Y))},function(e,t,n){"use strict";var r=n(4),o=n.n(r),i=n(5),a=n.n(i),s=n(1),u=n.n(s),l=n(3),c=n.n(l),p=n(2),f=n.n(p),d=n(6),h=n.n(d),v=n(0),m=n.n(v),y=n(7),g=n.n(y),b=n(8),_=n(16),C={dialogClassName:g.a.string},E=function(e){function t(){return u()(this,t),c()(this,e.apply(this,arguments))}return f()(t,e),t.prototype.render=function(){var e,t=this.props,r=t.dialogClassName,i=t.className,s=t.style,u=t.children,l=a()(t,["dialogClassName","className","style","children"]),c=n.i(b.splitBsProps)(l),p=c[0],f=c[1],d=n.i(b.prefix)(p),v=o()({display:"block"},s),y=o()({},n.i(b.getClassSet)(p),(e={},e[d]=!1,e[n.i(b.prefix)(p,"dialog")]=!0,e));return m.a.createElement("div",o()({},f,{tabIndex:"-1",role:"dialog",style:v,className:h()(i,d)}),m.a.createElement("div",{className:h()(r,y)},m.a.createElement("div",{className:n.i(b.prefix)(p,"content"),role:"document"},u)))},t}(m.a.Component);E.propTypes=C,t.a=n.i(b.bsClass)("modal",n.i(b.bsSizes)([_.b.LARGE,_.b.SMALL],E))},function(e,t,n){"use strict";var r=n(5),o=n.n(r),i=n(1),a=n.n(i),s=n(3),u=n.n(s),l=n(2),c=n.n(l),p=n(4),f=n.n(p),d=n(6),h=n.n(d),v=n(0),m=n.n(v),y=n(7),g=n.n(y),b=n(61),_=n(63),C=n(18),E=f()({},b.a.propTypes,{title:g.a.node.isRequired,noCaret:g.a.bool,active:g.a.bool,children:g.a.node}),x=function(e){function t(){return a()(this,t),u()(this,e.apply(this,arguments))}return c()(t,e),t.prototype.isActive=function(e,t,n){var r=e.props,o=this;return!!(r.active||null!=t&&r.eventKey===t||n&&r.href===n)||(!!C.a.some(r.children,function(e){return o.isActive(e,t,n)})||r.active)},t.prototype.render=function(){var e=this,t=this.props,r=t.title,i=t.activeKey,a=t.activeHref,s=t.className,u=t.style,l=t.children,c=o()(t,["title","activeKey","activeHref","className","style","children"]),p=this.isActive(this,i,a);delete c.active,delete c.eventKey;var d=n.i(_.a)(c,b.a.ControlledComponent),v=d[0],y=d[1];return m.a.createElement(b.a,f()({},v,{componentClass:"li",className:h()(s,{active:p}),style:u}),m.a.createElement(b.a.Toggle,f()({},y,{useAnchor:!0}),r),m.a.createElement(b.a.Menu,null,C.a.map(l,function(t){return m.a.cloneElement(t,{active:e.isActive(t,i,a)})})))},t}(m.a.Component);x.propTypes=E,t.a=x},function(e,t,n){"use strict";function r(e,t,r){var o=function(e,r){var o=r.$bs_navbar,a=void 0===o?{bsClass:"navbar"}:o,u=e.componentClass,l=e.className,c=e.pullRight,p=e.pullLeft,f=s()(e,["componentClass","className","pullRight","pullLeft"]);return y.a.createElement(u,i()({},f,{className:v()(l,n.i(k.prefix)(a,t),c&&n.i(k.prefix)(a,"right"),p&&n.i(k.prefix)(a,"left"))}))};return o.displayName=r,o.propTypes={componentClass:C.a,pullRight:b.a.bool,pullLeft:b.a.bool},o.defaultProps={componentClass:e,pullRight:!1,pullLeft:!1},o.contextTypes={$bs_navbar:b.a.shape({bsClass:b.a.string})},o}var o=n(4),i=n.n(o),a=n(5),s=n.n(a),u=n(1),l=n.n(u),c=n(3),p=n.n(c),f=n(2),d=n.n(f),h=n(6),v=n.n(h),m=n(0),y=n.n(m),g=n(7),b=n.n(g),_=n(12),C=n.n(_),E=n(51),x=n.n(E),w=n(138),T=n(146),O=n(299),N=n(300),S=n(301),k=n(8),P=n(16),M=n(15),I={fixedTop:b.a.bool,fixedBottom:b.a.bool,staticTop:b.a.bool,inverse:b.a.bool,fluid:b.a.bool,componentClass:C.a,onToggle:b.a.func,onSelect:b.a.func,collapseOnSelect:b.a.bool,expanded:b.a.bool,role:b.a.string},A={componentClass:"nav",fixedTop:!1,fixedBottom:!1,staticTop:!1,inverse:!1,fluid:!1,collapseOnSelect:!1},R={$bs_navbar:b.a.shape({bsClass:b.a.string,expanded:b.a.bool,onToggle:b.a.func.isRequired,onSelect:b.a.func})},D=function(e){function t(n,r){l()(this,t);var o=p()(this,e.call(this,n,r));return o.handleToggle=o.handleToggle.bind(o),o.handleCollapse=o.handleCollapse.bind(o),o}return d()(t,e),t.prototype.getChildContext=function(){var e=this.props,t=e.bsClass,r=e.expanded,o=e.onSelect,i=e.collapseOnSelect;return{$bs_navbar:{bsClass:t,expanded:r,onToggle:this.handleToggle,onSelect:n.i(M.a)(o,i?this.handleCollapse:null)}}},t.prototype.handleCollapse=function(){var e=this.props,t=e.onToggle;e.expanded&&t(!1)},t.prototype.handleToggle=function(){var e=this.props;(0,e.onToggle)(!e.expanded)},t.prototype.render=function(){var e,t=this.props,r=t.componentClass,o=t.fixedTop,a=t.fixedBottom,u=t.staticTop,l=t.inverse,c=t.fluid,p=t.className,f=t.children,d=s()(t,["componentClass","fixedTop","fixedBottom","staticTop","inverse","fluid","className","children"]),h=n.i(k.splitBsPropsAndOmit)(d,["expanded","onToggle","onSelect","collapseOnSelect"]),m=h[0],g=h[1];void 0===g.role&&"nav"!==r&&(g.role="navigation"),l&&(m.bsStyle=P.d.INVERSE);var b=i()({},n.i(k.getClassSet)(m),(e={},e[n.i(k.prefix)(m,"fixed-top")]=o,e[n.i(k.prefix)(m,"fixed-bottom")]=a,e[n.i(k.prefix)(m,"static-top")]=u,e));return y.a.createElement(r,i()({},g,{className:v()(p,b)}),y.a.createElement(w.a,{fluid:c},f))},t}(y.a.Component);D.propTypes=I,D.defaultProps=A,D.childContextTypes=R,n.i(k.bsClass)("navbar",D);var L=x()(D,{expanded:"onToggle"});L.Brand=T.a,L.Header=N.a,L.Toggle=S.a,L.Collapse=O.a,L.Form=r("div","form","NavbarForm"),L.Text=r("p","text","NavbarText"),L.Link=r("a","link","NavbarLink"),t.a=n.i(k.bsStyles)([P.d.DEFAULT,P.d.INVERSE],P.d.DEFAULT,L)},function(e,t,n){"use strict";var r=n(4),o=n.n(r),i=n(5),a=n.n(i),s=n(1),u=n.n(s),l=n(3),c=n.n(l),p=n(2),f=n.n(p),d=n(0),h=n.n(d),v=n(7),m=n.n(v),y=n(85),g=n(8),b={$bs_navbar:m.a.shape({bsClass:m.a.string,expanded:m.a.bool})},_=function(e){function t(){return u()(this,t),c()(this,e.apply(this,arguments))}return f()(t,e),t.prototype.render=function(){var e=this.props,t=e.children,r=a()(e,["children"]),i=this.context.$bs_navbar||{bsClass:"navbar"},s=n.i(g.prefix)(i,"collapse");return h.a.createElement(y.a,o()({in:i.expanded},r),h.a.createElement("div",{className:s},t))},t}(h.a.Component);_.contextTypes=b,t.a=_},function(e,t,n){"use strict";var r=n(4),o=n.n(r),i=n(5),a=n.n(i),s=n(1),u=n.n(s),l=n(3),c=n.n(l),p=n(2),f=n.n(p),d=n(6),h=n.n(d),v=n(0),m=n.n(v),y=n(7),g=n.n(y),b=n(8),_={$bs_navbar:g.a.shape({bsClass:g.a.string})},C=function(e){function t(){return u()(this,t),c()(this,e.apply(this,arguments))}return f()(t,e),t.prototype.render=function(){var e=this.props,t=e.className,r=a()(e,["className"]),i=this.context.$bs_navbar||{bsClass:"navbar"},s=n.i(b.prefix)(i,"header");return m.a.createElement("div",o()({},r,{className:h()(t,s)}))},t}(m.a.Component);C.contextTypes=_,t.a=C},function(e,t,n){"use strict";var r=n(4),o=n.n(r),i=n(5),a=n.n(i),s=n(1),u=n.n(s),l=n(3),c=n.n(l),p=n(2),f=n.n(p),d=n(6),h=n.n(d),v=n(0),m=n.n(v),y=n(7),g=n.n(y),b=n(8),_=n(15),C={onClick:g.a.func,children:g.a.node},E={$bs_navbar:g.a.shape({bsClass:g.a.string,expanded:g.a.bool,onToggle:g.a.func.isRequired})},x=function(e){function t(){return u()(this,t),c()(this,e.apply(this,arguments))}return f()(t,e),t.prototype.render=function(){var e=this.props,t=e.onClick,r=e.className,i=e.children,s=a()(e,["onClick","className","children"]),u=this.context.$bs_navbar||{bsClass:"navbar"},l=o()({type:"button"},s,{onClick:n.i(_.a)(t,u.onToggle),className:h()(r,n.i(b.prefix)(u,"toggle"),!u.expanded&&"collapsed")});return i?m.a.createElement("button",l,i):m.a.createElement("button",l,m.a.createElement("span",{className:"sr-only"},"Toggle navigation"),m.a.createElement("span",{className:"icon-bar"}),m.a.createElement("span",{className:"icon-bar"}),m.a.createElement("span",{className:"icon-bar"}))},t}(m.a.Component);x.propTypes=C,x.contextTypes=E,t.a=x},function(e,t,n){"use strict";function r(e,t){return Array.isArray(t)?t.indexOf(e)>=0:e===t}var o=n(5),i=n.n(o),a=n(1),s=n.n(a),u=n(3),l=n.n(u),c=n(2),p=n.n(c),f=n(4),d=n.n(f),h=n(35),v=n.n(h),m=n(0),y=n.n(m),g=n(7),b=n.n(g),_=n(19),C=n.n(_),E=n(22),x=(n.n(E),n(147)),w=n(15),T=b.a.oneOf(["click","hover","focus"]),O=d()({},x.a.propTypes,{trigger:b.a.oneOfType([T,b.a.arrayOf(T)]),delay:b.a.number,delayShow:b.a.number,delayHide:b.a.number,defaultOverlayShown:b.a.bool,overlay:b.a.node.isRequired,onBlur:b.a.func,onClick:b.a.func,onFocus:b.a.func,onMouseOut:b.a.func,onMouseOver:b.a.func,target:b.a.oneOf([null]),onHide:b.a.oneOf([null]),show:b.a.oneOf([null])}),N={defaultOverlayShown:!1,trigger:["hover","focus"]},S=function(e){function t(n,r){s()(this,t);var o=l()(this,e.call(this,n,r));return o.handleToggle=o.handleToggle.bind(o),o.handleDelayedShow=o.handleDelayedShow.bind(o),o.handleDelayedHide=o.handleDelayedHide.bind(o),o.handleHide=o.handleHide.bind(o),o.handleMouseOver=function(e){return o.handleMouseOverOut(o.handleDelayedShow,e)},o.handleMouseOut=function(e){return o.handleMouseOverOut(o.handleDelayedHide,e)},o._mountNode=null,o.state={show:n.defaultOverlayShown},o}return p()(t,e),t.prototype.componentDidMount=function(){this._mountNode=document.createElement("div"),this.renderOverlay()},t.prototype.componentDidUpdate=function(){this.renderOverlay()},t.prototype.componentWillUnmount=function(){C.a.unmountComponentAtNode(this._mountNode),this._mountNode=null,clearTimeout(this._hoverShowDelay),clearTimeout(this._hoverHideDelay)},t.prototype.handleToggle=function(){this.state.show?this.hide():this.show()},t.prototype.handleDelayedShow=function(){var e=this;if(null!=this._hoverHideDelay)return clearTimeout(this._hoverHideDelay),void(this._hoverHideDelay=null);if(!this.state.show&&null==this._hoverShowDelay){var t=null!=this.props.delayShow?this.props.delayShow:this.props.delay;if(!t)return void this.show();this._hoverShowDelay=setTimeout(function(){e._hoverShowDelay=null,e.show()},t)}},t.prototype.handleDelayedHide=function(){var e=this;if(null!=this._hoverShowDelay)return clearTimeout(this._hoverShowDelay),void(this._hoverShowDelay=null);if(this.state.show&&null==this._hoverHideDelay){var t=null!=this.props.delayHide?this.props.delayHide:this.props.delay;if(!t)return void this.hide();this._hoverHideDelay=setTimeout(function(){e._hoverHideDelay=null,e.hide()},t)}},t.prototype.handleMouseOverOut=function(e,t){var n=t.currentTarget,r=t.relatedTarget||t.nativeEvent.toElement;r&&(r===n||v()(n,r))||e(t)},t.prototype.handleHide=function(){this.hide()},t.prototype.show=function(){this.setState({show:!0})},t.prototype.hide=function(){this.setState({show:!1})},t.prototype.makeOverlay=function(e,t){return y.a.createElement(x.a,d()({},t,{show:this.state.show,onHide:this.handleHide,target:this}),e)},t.prototype.renderOverlay=function(){C.a.unstable_renderSubtreeIntoContainer(this,this._overlay,this._mountNode)},t.prototype.render=function(){var e=this.props,t=e.trigger,o=e.overlay,a=e.children,s=e.onBlur,u=e.onClick,l=e.onFocus,c=e.onMouseOut,p=e.onMouseOver,f=i()(e,["trigger","overlay","children","onBlur","onClick","onFocus","onMouseOut","onMouseOver"]);delete f.delay,delete f.delayShow,delete f.delayHide,delete f.defaultOverlayShown;var d=y.a.Children.only(a),h=d.props,v={};return this.state.show&&(v["aria-describedby"]=o.props.id),v.onClick=n.i(w.a)(h.onClick,u),r("click",t)&&(v.onClick=n.i(w.a)(v.onClick,this.handleToggle)),r("hover",t)&&(v.onMouseOver=n.i(w.a)(h.onMouseOver,p,this.handleMouseOver),v.onMouseOut=n.i(w.a)(h.onMouseOut,c,this.handleMouseOut)),r("focus",t)&&(v.onFocus=n.i(w.a)(h.onFocus,l,this.handleDelayedShow),v.onBlur=n.i(w.a)(h.onBlur,s,this.handleDelayedHide)),this._overlay=this.makeOverlay(o,f),n.i(m.cloneElement)(d,v)},t}(y.a.Component);S.propTypes=O,S.defaultProps=N,t.a=S},function(e,t,n){"use strict";var r=n(4),o=n.n(r),i=n(5),a=n.n(i),s=n(1),u=n.n(s),l=n(3),c=n.n(l),p=n(2),f=n.n(p),d=n(6),h=n.n(d),v=n(0),m=n.n(v),y=n(8),g=function(e){function t(){return u()(this,t),c()(this,e.apply(this,arguments))}return f()(t,e),t.prototype.render=function(){var e=this.props,t=e.className,r=e.children,i=a()(e,["className","children"]),s=n.i(y.splitBsProps)(i),u=s[0],l=s[1],c=n.i(y.getClassSet)(u);return m.a.createElement("div",o()({},l,{className:h()(t,c)}),m.a.createElement("h1",null,r))},t}(m.a.Component);t.a=n.i(y.bsClass)("page-header",g)},function(e,t,n){"use strict";var r=n(148),o=n(324);t.a=o.a.wrapper(r.a,"``","``")},function(e,t,n){"use strict";var r=n(4),o=n.n(r),i=n(5),a=n.n(i),s=n(1),u=n.n(s),l=n(3),c=n.n(l),p=n(2),f=n.n(p),d=n(6),h=n.n(d),v=n(0),m=n.n(v),y=n(7),g=n.n(y),b=n(148),_=n(8),C=n(15),E=n(18),x={onSelect:g.a.func},w=function(e){function t(){return u()(this,t),c()(this,e.apply(this,arguments))}return f()(t,e),t.prototype.render=function(){var e=this.props,t=e.onSelect,r=e.className,i=e.children,s=a()(e,["onSelect","className","children"]),u=n.i(_.splitBsProps)(s),l=u[0],c=u[1],p=n.i(_.getClassSet)(l);return m.a.createElement("ul",o()({},c,{className:h()(r,p)}),E.a.map(i,function(e){return n.i(v.cloneElement)(e,{onSelect:n.i(C.a)(e.props.onSelect,t)})}))},t}(m.a.Component);w.propTypes=x,w.Item=b.a,t.a=n.i(_.bsClass)("pager",w)},function(e,t,n){"use strict";var r=n(5),o=n.n(r),i=n(4),a=n.n(i),s=n(1),u=n.n(s),l=n(3),c=n.n(l),p=n(2),f=n.n(p),d=n(6),h=n.n(d),v=n(0),m=n.n(v),y=n(7),g=n.n(y),b=n(12),_=n.n(b),C=n(149),E=n(8),x={activePage:g.a.number,items:g.a.number,maxButtons:g.a.number,boundaryLinks:g.a.bool,ellipsis:g.a.oneOfType([g.a.bool,g.a.node]),first:g.a.oneOfType([g.a.bool,g.a.node]),last:g.a.oneOfType([g.a.bool,g.a.node]),prev:g.a.oneOfType([g.a.bool,g.a.node]),next:g.a.oneOfType([g.a.bool,g.a.node]),onSelect:g.a.func,buttonComponentClass:_.a},w={activePage:1,items:1,maxButtons:0,first:!1,last:!1,prev:!1,next:!1,ellipsis:!0,boundaryLinks:!1},T=function(e){function t(){return u()(this,t),c()(this,e.apply(this,arguments))}return f()(t,e),t.prototype.renderPageButtons=function(e,t,n,r,o,i){var s=[],u=void 0,l=void 0;n&&n1&&(u>2&&s.unshift(m.a.createElement(C.a,{key:"ellipsisFirst",disabled:!0,componentClass:i.componentClass},m.a.createElement("span",{"aria-label":"More"},!0===o?"…":o))),s.unshift(m.a.createElement(C.a,a()({},i,{key:1,eventKey:1,active:!1}),"1"))),o&&l=r}),m.a.createElement("span",{"aria-label":"Next"},!0===f?"›":f)),c&&m.a.createElement(C.a,a()({},T,{eventKey:r,disabled:t>=r}),m.a.createElement("span",{"aria-label":"Last"},!0===c?"»":c)))},t}(m.a.Component);T.propTypes=x,T.defaultProps=w,t.a=n.i(E.bsClass)("pagination",T)},function(e,t,n){"use strict";var r=n(33),o=n.n(r),i=n(5),a=n.n(i),s=n(4),u=n.n(s),l=n(1),c=n.n(l),p=n(3),f=n.n(p),d=n(2),h=n.n(d),v=n(6),m=n.n(v),y=n(0),g=n.n(y),b=n(7),_=n.n(b),C=n(85),E=n(8),x=n(16),w={collapsible:_.a.bool,onSelect:_.a.func,header:_.a.node,id:_.a.oneOfType([_.a.string,_.a.number]),footer:_.a.node,defaultExpanded:_.a.bool,expanded:_.a.bool,eventKey:_.a.any,headerRole:_.a.string,panelRole:_.a.string,onEnter:_.a.func,onEntering:_.a.func,onEntered:_.a.func,onExit:_.a.func,onExiting:_.a.func,onExited:_.a.func},T={defaultExpanded:!1},O=function(e){function t(n,r){c()(this,t);var o=f()(this,e.call(this,n,r));return o.handleClickTitle=o.handleClickTitle.bind(o),o.state={expanded:o.props.defaultExpanded},o}return h()(t,e),t.prototype.handleClickTitle=function(e){e.persist(),e.selected=!0,this.props.onSelect?this.props.onSelect(this.props.eventKey,e):e.preventDefault(),e.selected&&this.setState({expanded:!this.state.expanded})},t.prototype.renderHeader=function(e,t,r,o,i,a){var s=n.i(E.prefix)(a,"title");return e?g.a.isValidElement(t)?n.i(y.cloneElement)(t,{className:m()(t.props.className,s),children:this.renderAnchor(t.props.children,r,o,i)}):g.a.createElement("h4",{role:"presentation",className:s},this.renderAnchor(t,r,o,i)):g.a.isValidElement(t)?n.i(y.cloneElement)(t,{className:m()(t.props.className,s)}):t},t.prototype.renderAnchor=function(e,t,n,r){return g.a.createElement("a",{role:n,href:t&&"#"+t,onClick:this.handleClickTitle,"aria-controls":t,"aria-expanded":r,"aria-selected":r,className:r?null:"collapsed"},e)},t.prototype.renderCollapsibleBody=function(e,t,r,o,i,a){return g.a.createElement(C.a,u()({in:t},a),g.a.createElement("div",{id:e,role:r,className:n.i(E.prefix)(i,"collapse"),"aria-hidden":!t},this.renderBody(o,i)))},t.prototype.renderBody=function(e,t){function r(){i.length&&(o.push(g.a.createElement("div",{key:o.length,className:a},i)),i=[])}var o=[],i=[],a=n.i(E.prefix)(t,"body");return g.a.Children.toArray(e).forEach(function(e){if(g.a.isValidElement(e)&&e.props.fill)return r(),void o.push(n.i(y.cloneElement)(e,{fill:void 0}));i.push(e)}),r(),o},t.prototype.render=function(){var e=this.props,t=e.collapsible,r=e.header,o=e.id,i=e.footer,s=e.expanded,l=e.headerRole,c=e.panelRole,p=e.className,f=e.children,d=e.onEnter,h=e.onEntering,v=e.onEntered,y=e.onExit,b=e.onExiting,_=e.onExited,C=a()(e,["collapsible","header","id","footer","expanded","headerRole","panelRole","className","children","onEnter","onEntering","onEntered","onExit","onExiting","onExited"]),x=n.i(E.splitBsPropsAndOmit)(C,["defaultExpanded","eventKey","onSelect"]),w=x[0],T=x[1],O=null!=s?s:this.state.expanded,N=n.i(E.getClassSet)(w);return g.a.createElement("div",u()({},T,{className:m()(p,N),id:t?null:o}),r&&g.a.createElement("div",{className:n.i(E.prefix)(w,"heading")},this.renderHeader(t,r,o,l,O,w)),t?this.renderCollapsibleBody(o,O,c,f,w,{onEnter:d,onEntering:h,onEntered:v,onExit:y,onExiting:b,onExited:_}):this.renderBody(f,w),i&&g.a.createElement("div",{className:n.i(E.prefix)(w,"footer")},i))},t}(g.a.Component);O.propTypes=w,O.defaultProps=T,t.a=n.i(E.bsClass)("panel",n.i(E.bsStyles)([].concat(o()(x.c),[x.d.DEFAULT,x.d.PRIMARY]),x.d.DEFAULT,O))},function(e,t,n){"use strict";var r=n(4),o=n.n(r),i=n(5),a=n.n(i),s=n(1),u=n.n(s),l=n(3),c=n.n(l),p=n(2),f=n.n(p),d=n(6),h=n.n(d),v=n(0),m=n.n(v),y=n(7),g=n.n(y),b=n(59),_=n.n(b),C=n(8),E={id:_()(g.a.oneOfType([g.a.string,g.a.number])),placement:g.a.oneOf(["top","right","bottom","left"]),positionTop:g.a.oneOfType([g.a.number,g.a.string]),positionLeft:g.a.oneOfType([g.a.number,g.a.string]),arrowOffsetTop:g.a.oneOfType([g.a.number,g.a.string]),arrowOffsetLeft:g.a.oneOfType([g.a.number,g.a.string]),title:g.a.node},x={placement:"right"},w=function(e){function t(){return u()(this,t),c()(this,e.apply(this,arguments))}return f()(t,e),t.prototype.render=function(){var e,t=this.props,r=t.placement,i=t.positionTop,s=t.positionLeft,u=t.arrowOffsetTop,l=t.arrowOffsetLeft,c=t.title,p=t.className,f=t.style,d=t.children,v=a()(t,["placement","positionTop","positionLeft","arrowOffsetTop","arrowOffsetLeft","title","className","style","children"]),y=n.i(C.splitBsProps)(v),g=y[0],b=y[1],_=o()({},n.i(C.getClassSet)(g),(e={},e[r]=!0,e)),E=o()({display:"block",top:i,left:s},f),x={top:u,left:l};return m.a.createElement("div",o()({},b,{role:"tooltip",className:h()(p,_),style:E}),m.a.createElement("div",{className:"arrow",style:x}),c&&m.a.createElement("h3",{className:n.i(C.prefix)(g,"title")},c),m.a.createElement("div",{className:n.i(C.prefix)(g,"content")},d))},t}(m.a.Component);w.propTypes=E,w.defaultProps=x,t.a=n.i(C.bsClass)("popover",w)},function(e,t,n){"use strict";function r(e,t,n){var r=e[t];if(!r)return null;var o=null;return _.a.Children.forEach(r,function(e){if(!o&&e.type!==k){var t=_.a.isValidElement(e)?e.type.displayName||e.type.name||e.type:e;o=new Error("Children of "+n+" can contain only ProgressBar components. Found "+t+".")}}),o}function o(e,t,n){var r=(e-t)/(n-t)*100;return Math.round(r*O)/O}var i=n(33),a=n.n(i),s=n(4),u=n.n(s),l=n(5),c=n.n(l),p=n(1),f=n.n(p),d=n(3),h=n.n(d),v=n(2),m=n.n(v),y=n(6),g=n.n(y),b=n(0),_=n.n(b),C=n(7),E=n.n(C),x=n(8),w=n(16),T=n(18),O=1e3,N={min:E.a.number,now:E.a.number,max:E.a.number,label:E.a.node,srOnly:E.a.bool,striped:E.a.bool,active:E.a.bool,children:r,isChild:E.a.bool},S={min:0,max:100,active:!1,isChild:!1,srOnly:!1,striped:!1},k=function(e){function t(){return f()(this,t),h()(this,e.apply(this,arguments))}return m()(t,e),t.prototype.renderProgressBar=function(e){var t,r=e.min,i=e.now,a=e.max,s=e.label,l=e.srOnly,p=e.striped,f=e.active,d=e.className,h=e.style,v=c()(e,["min","now","max","label","srOnly","striped","active","className","style"]),m=n.i(x.splitBsProps)(v),y=m[0],b=m[1],C=u()({},n.i(x.getClassSet)(y),(t={active:f},t[n.i(x.prefix)(y,"striped")]=f||p,t));return _.a.createElement("div",u()({},b,{role:"progressbar",className:g()(d,C),style:u()({width:o(i,r,a)+"%"},h),"aria-valuenow":i,"aria-valuemin":r,"aria-valuemax":a}),l?_.a.createElement("span",{className:"sr-only"},s):s)},t.prototype.render=function(){var e=this.props,t=e.isChild,r=c()(e,["isChild"]);if(t)return this.renderProgressBar(r);var o=r.min,i=r.now,a=r.max,s=r.label,l=r.srOnly,p=r.striped,f=r.active,d=r.bsClass,h=r.bsStyle,v=r.className,m=r.children,y=c()(r,["min","now","max","label","srOnly","striped","active","bsClass","bsStyle","className","children"]);return _.a.createElement("div",u()({},y,{className:g()(v,"progress")}),m?T.a.map(m,function(e){return n.i(b.cloneElement)(e,{isChild:!0})}):this.renderProgressBar({min:o,now:i,max:a,label:s,srOnly:l,striped:p,active:f,bsClass:d,bsStyle:h}))},t}(_.a.Component);k.propTypes=N,k.defaultProps=S,t.a=n.i(x.bsClass)("progress-bar",n.i(x.bsStyles)(a()(w.c),k))},function(e,t,n){"use strict";var r=n(4),o=n.n(r),i=n(5),a=n.n(i),s=n(1),u=n.n(s),l=n(3),c=n.n(l),p=n(2),f=n.n(p),d=n(6),h=n.n(d),v=n(0),m=n.n(v),y=n(7),g=n.n(y),b=n(22),_=(n.n(b),n(8)),C={inline:g.a.bool,disabled:g.a.bool,title:g.a.string,validationState:g.a.oneOf(["success","warning","error",null]),inputRef:g.a.func},E={inline:!1,disabled:!1,title:""},x=function(e){function t(){return u()(this,t),c()(this,e.apply(this,arguments))}return f()(t,e),t.prototype.render=function(){var e=this.props,t=e.inline,r=e.disabled,i=e.validationState,s=e.inputRef,u=e.className,l=e.style,c=e.title,p=e.children,f=a()(e,["inline","disabled","validationState","inputRef","className","style","title","children"]),d=n.i(_.splitBsProps)(f),v=d[0],y=d[1],g=m.a.createElement("input",o()({},y,{ref:s,type:"radio",disabled:r}));if(t){var b,C=(b={},b[n.i(_.prefix)(v,"inline")]=!0,b.disabled=r,b);return m.a.createElement("label",{className:h()(u,C),style:l,title:c},g,p)}var E=o()({},n.i(_.getClassSet)(v),{disabled:r});return i&&(E["has-"+i]=!0),m.a.createElement("div",{className:h()(u,E),style:l},m.a.createElement("label",{title:c},g,p))},t}(m.a.Component);x.propTypes=C,x.defaultProps=E,t.a=n.i(_.bsClass)("radio",x)},function(e,t,n){"use strict";var r=n(4),o=n.n(r),i=n(5),a=n.n(i),s=n(1),u=n.n(s),l=n(3),c=n.n(l),p=n(2),f=n.n(p),d=n(6),h=n.n(d),v=n(0),m=n.n(v),y=n(7),g=n.n(y),b=n(22),_=(n.n(b),n(8)),C={children:g.a.element.isRequired,a16by9:g.a.bool,a4by3:g.a.bool},E={a16by9:!1,a4by3:!1},x=function(e){function t(){return u()(this,t),c()(this,e.apply(this,arguments))}return f()(t,e),t.prototype.render=function(){var e,t=this.props,r=t.a16by9,i=t.a4by3,s=t.className,u=t.children,l=a()(t,["a16by9","a4by3","className","children"]),c=n.i(_.splitBsProps)(l),p=c[0],f=c[1],d=o()({},n.i(_.getClassSet)(p),(e={},e[n.i(_.prefix)(p,"16by9")]=r,e[n.i(_.prefix)(p,"4by3")]=i,e));return m.a.createElement("div",{className:h()(d)},n.i(v.cloneElement)(u,o()({},f,{className:h()(s,n.i(_.prefix)(p,"item"))})))},t}(m.a.Component);x.propTypes=C,x.defaultProps=E,t.a=n.i(_.bsClass)("embed-responsive",x)},function(e,t,n){"use strict";var r=n(4),o=n.n(r),i=n(5),a=n.n(i),s=n(1),u=n.n(s),l=n(3),c=n.n(l),p=n(2),f=n.n(p),d=n(6),h=n.n(d),v=n(0),m=n.n(v),y=n(12),g=n.n(y),b=n(8),_={componentClass:g.a},C={componentClass:"div"},E=function(e){function t(){return u()(this,t),c()(this,e.apply(this,arguments))}return f()(t,e),t.prototype.render=function(){var e=this.props,t=e.componentClass,r=e.className,i=a()(e,["componentClass","className"]),s=n.i(b.splitBsProps)(i),u=s[0],l=s[1],c=n.i(b.getClassSet)(u);return m.a.createElement(t,o()({},l,{className:h()(r,c)}))},t}(m.a.Component);E.propTypes=_,E.defaultProps=C,t.a=n.i(b.bsClass)("row",E)},function(e,t,n){"use strict";var r=n(5),o=n.n(r),i=n(1),a=n.n(i),s=n(3),u=n.n(s),l=n(2),c=n.n(l),p=n(4),f=n.n(p),d=n(0),h=n.n(d),v=n(7),m=n.n(v),y=n(44),g=n(61),b=n(314),_=n(63),C=f()({},g.a.propTypes,{bsStyle:m.a.string,bsSize:m.a.string,href:m.a.string,onClick:m.a.func,title:m.a.node.isRequired,toggleLabel:m.a.string,children:m.a.node}),E=function(e){function t(){return a()(this,t),u()(this,e.apply(this,arguments))}return c()(t,e),t.prototype.render=function(){var e=this.props,t=e.bsSize,r=e.bsStyle,i=e.title,a=e.toggleLabel,s=e.children,u=o()(e,["bsSize","bsStyle","title","toggleLabel","children"]),l=n.i(_.a)(u,g.a.ControlledComponent),c=l[0],p=l[1];return h.a.createElement(g.a,f()({},c,{bsSize:t,bsStyle:r}),h.a.createElement(y.a,f()({},p,{disabled:u.disabled,bsSize:t,bsStyle:r}),i),h.a.createElement(b.a,{"aria-label":a||i,bsSize:t,bsStyle:r}),h.a.createElement(g.a.Menu,null,s))},t}(h.a.Component);E.propTypes=C,E.Toggle=b.a,t.a=E},function(e,t,n){"use strict";var r=n(4),o=n.n(r),i=n(1),a=n.n(i),s=n(3),u=n.n(s),l=n(2),c=n.n(l),p=n(0),f=n.n(p),d=n(137),h=function(e){function t(){return a()(this,t),u()(this,e.apply(this,arguments))}return c()(t,e),t.prototype.render=function(){return f.a.createElement(d.a,o()({},this.props,{useAnchor:!1,noCaret:!1}))},t}(f.a.Component);h.defaultProps=d.a.defaultProps,t.a=h},function(e,t,n){"use strict";var r=n(1),o=n.n(r),i=n(3),a=n.n(i),s=n(2),u=n.n(s),l=n(4),c=n.n(l),p=n(0),f=n.n(p),d=n(7),h=n.n(d),v=n(88),m=n(89),y=n(151),g=c()({},y.a.propTypes,{disabled:h.a.bool,title:h.a.node,tabClassName:h.a.string}),b=function(e){function t(){return o()(this,t),a()(this,e.apply(this,arguments))}return u()(t,e),t.prototype.render=function(){var e=c()({},this.props);return delete e.title,delete e.disabled,delete e.tabClassName,f.a.createElement(y.a,e)},t}(f.a.Component);b.propTypes=g,b.Container=v.a,b.Content=m.a,b.Pane=y.a,t.a=b},function(e,t,n){"use strict";var r=n(4),o=n.n(r),i=n(5),a=n.n(i),s=n(1),u=n.n(s),l=n(3),c=n.n(l),p=n(2),f=n.n(p),d=n(6),h=n.n(d),v=n(0),m=n.n(v),y=n(7),g=n.n(y),b=n(8),_={striped:g.a.bool,bordered:g.a.bool,condensed:g.a.bool,hover:g.a.bool,responsive:g.a.bool},C={bordered:!1,condensed:!1,hover:!1,responsive:!1,striped:!1},E=function(e){function t(){return u()(this,t),c()(this,e.apply(this,arguments))}return f()(t,e),t.prototype.render=function(){var e,t=this.props,r=t.striped,i=t.bordered,s=t.condensed,u=t.hover,l=t.responsive,c=t.className,p=a()(t,["striped","bordered","condensed","hover","responsive","className"]),f=n.i(b.splitBsProps)(p),d=f[0],v=f[1],y=o()({},n.i(b.getClassSet)(d),(e={},e[n.i(b.prefix)(d,"striped")]=r,e[n.i(b.prefix)(d,"bordered")]=i,e[n.i(b.prefix)(d,"condensed")]=s,e[n.i(b.prefix)(d,"hover")]=u,e)),g=m.a.createElement("table",o()({},v,{className:h()(c,y)}));return l?m.a.createElement("div",{className:n.i(b.prefix)(d,"responsive")},g):g},t}(m.a.Component);E.propTypes=_,E.defaultProps=C,t.a=n.i(b.bsClass)("table",E)},function(e,t,n){"use strict";function r(e){var t=void 0;return N.a.forEach(e,function(e){null==t&&(t=e.props.eventKey)}),t}var o=n(4),i=n.n(o),a=n(5),s=n.n(a),u=n(1),l=n.n(u),c=n(3),p=n.n(c),f=n(2),d=n.n(f),h=n(0),v=n.n(h),m=n(7),y=n.n(m),g=n(59),b=n.n(g),_=n(51),C=n.n(_),E=n(144),x=n(145),w=n(88),T=n(89),O=n(8),N=n(18),S=w.a.ControlledComponent,k={activeKey:y.a.any,bsStyle:y.a.oneOf(["tabs","pills"]),animation:y.a.bool,id:b()(y.a.oneOfType([y.a.string,y.a.number])),onSelect:y.a.func,mountOnEnter:y.a.bool,unmountOnExit:y.a.bool},P={bsStyle:"tabs",animation:!0,mountOnEnter:!1,unmountOnExit:!1},M=function(e){function t(){return l()(this,t),p()(this,e.apply(this,arguments))}return d()(t,e),t.prototype.renderTab=function(e){var t=e.props,n=t.title,r=t.eventKey,o=t.disabled,i=t.tabClassName;return null==n?null:v.a.createElement(x.a,{eventKey:r,disabled:o,className:i},n)},t.prototype.render=function(){var e=this.props,t=e.id,n=e.onSelect,o=e.animation,a=e.mountOnEnter,u=e.unmountOnExit,l=e.bsClass,c=e.className,p=e.style,f=e.children,d=e.activeKey,h=void 0===d?r(f):d,m=s()(e,["id","onSelect","animation","mountOnEnter","unmountOnExit","bsClass","className","style","children","activeKey"]);return v.a.createElement(S,{id:t,activeKey:h,onSelect:n,className:c,style:p},v.a.createElement("div",null,v.a.createElement(E.a,i()({},m,{role:"tablist"}),N.a.map(f,this.renderTab)),v.a.createElement(T.a,{bsClass:l,animation:o,mountOnEnter:a,unmountOnExit:u},f)))},t}(v.a.Component);M.propTypes=k,M.defaultProps=P,n.i(O.bsClass)("tab",M),t.a=C()(M,{activeKey:"onSelect"})},function(e,t,n){"use strict";var r=n(4),o=n.n(r),i=n(5),a=n.n(i),s=n(1),u=n.n(s),l=n(3),c=n.n(l),p=n(2),f=n.n(p),d=n(6),h=n.n(d),v=n(0),m=n.n(v),y=n(7),g=n.n(y),b=n(24),_=n(8),C={src:g.a.string,alt:g.a.string,href:g.a.string,onError:g.a.func,onLoad:g.a.func},E=function(e){function t(){return u()(this,t),c()(this,e.apply(this,arguments))}return f()(t,e),t.prototype.render=function(){var e=this.props,t=e.src,r=e.alt,i=e.onError,s=e.onLoad,u=e.className,l=e.children,c=a()(e,["src","alt","onError","onLoad","className","children"]),p=n.i(_.splitBsProps)(c),f=p[0],d=p[1],v=d.href?b.a:"div",y=n.i(_.getClassSet)(f);return m.a.createElement(v,o()({},d,{className:h()(u,y)}),m.a.createElement("img",{src:t,alt:r,onError:i,onLoad:s}),l&&m.a.createElement("div",{className:"caption"},l))},t}(m.a.Component);E.propTypes=C,t.a=n.i(_.bsClass)("thumbnail",E)},function(e,t,n){"use strict";var r=n(4),o=n.n(r),i=n(5),a=n.n(i),s=n(1),u=n.n(s),l=n(3),c=n.n(l),p=n(2),f=n.n(p),d=n(7),h=n.n(d),v=n(0),m=n.n(v),y=n(57),g=n.n(y),b=n(51),_=n.n(b),C=n(15),E=n(18),x=n(83),w=n(152),T={name:h.a.string,value:h.a.any,onChange:h.a.func,type:h.a.oneOf(["checkbox","radio"]).isRequired},O={type:"radio"},N=function(e){function t(){return u()(this,t),c()(this,e.apply(this,arguments))}return f()(t,e),t.prototype.getValues=function(){var e=this.props.value;return null==e?[]:[].concat(e)},t.prototype.handleToggle=function(e){var t=this.props,n=t.type,r=t.onChange,o=this.getValues(),i=-1!==o.indexOf(e);if("radio"===n)return void(i||r(e));r(i?o.filter(function(t){return t!==e}):[].concat(o,[e]))},t.prototype.render=function(){var e=this,t=this.props,r=t.children,i=t.type,s=t.name,u=a()(t,["children","type","name"]),l=this.getValues();return"radio"!==i||s||g()(!1),delete u.onChange,delete u.value,m.a.createElement(x.a,o()({},u,{"data-toggle":"buttons"}),E.a.map(r,function(t){var r=t.props,o=r.value,a=r.onChange,u=function(){return e.handleToggle(o)};return m.a.cloneElement(t,{type:i,name:t.name||s,checked:-1!==l.indexOf(o),onChange:n.i(C.a)(a,u)})}))},t}(m.a.Component);N.propTypes=T,N.defaultProps=O;var S=_()(N,{value:"onChange"});S.Button=w.a,t.a=S},function(e,t,n){"use strict";var r=n(4),o=n.n(r),i=n(5),a=n.n(i),s=n(1),u=n.n(s),l=n(3),c=n.n(l),p=n(2),f=n.n(p),d=n(6),h=n.n(d),v=n(0),m=n.n(v),y=n(7),g=n.n(y),b=n(59),_=n.n(b),C=n(8),E={id:_()(g.a.oneOfType([g.a.string,g.a.number])),placement:g.a.oneOf(["top","right","bottom","left"]),positionTop:g.a.oneOfType([g.a.number,g.a.string]),positionLeft:g.a.oneOfType([g.a.number,g.a.string]),arrowOffsetTop:g.a.oneOfType([g.a.number,g.a.string]),arrowOffsetLeft:g.a.oneOfType([g.a.number,g.a.string])},x={placement:"right"},w=function(e){function t(){return u()(this,t),c()(this,e.apply(this,arguments))}return f()(t,e),t.prototype.render=function(){var e,t=this.props,r=t.placement,i=t.positionTop,s=t.positionLeft,u=t.arrowOffsetTop,l=t.arrowOffsetLeft,c=t.className,p=t.style,f=t.children,d=a()(t,["placement","positionTop","positionLeft","arrowOffsetTop","arrowOffsetLeft","className","style","children"]),v=n.i(C.splitBsProps)(d),y=v[0],g=v[1],b=o()({},n.i(C.getClassSet)(y),(e={},e[r]=!0,e)),_=o()({top:i,left:s},p),E={top:u,left:l};return m.a.createElement("div",o()({},g,{role:"tooltip",className:h()(c,b),style:_}),m.a.createElement("div",{className:n.i(C.prefix)(y,"arrow"),style:E}),m.a.createElement("div",{className:n.i(C.prefix)(y,"inner")},f))},t}(m.a.Component);w.propTypes=E,w.defaultProps=x,t.a=n.i(C.bsClass)("tooltip",w)},function(e,t,n){"use strict";var r=n(4),o=n.n(r),i=n(5),a=n.n(i),s=n(1),u=n.n(s),l=n(3),c=n.n(l),p=n(2),f=n.n(p),d=n(6),h=n.n(d),v=n(0),m=n.n(v),y=n(8),g=n(16),b=function(e){function t(){return u()(this,t),c()(this,e.apply(this,arguments))}return f()(t,e),t.prototype.render=function(){var e=this.props,t=e.className,r=a()(e,["className"]),i=n.i(y.splitBsProps)(r),s=i[0],u=i[1],l=n.i(y.getClassSet)(s);return m.a.createElement("div",o()({},u,{className:h()(t,l)}))},t}(m.a.Component);t.a=n.i(y.bsClass)("well",n.i(y.bsSizes)([g.b.LARGE,g.b.SMALL],b))},function(e,t,n){"use strict";function r(){for(var e=arguments.length,t=Array(e),n=0;n1&&(o=t,1))}),o?new Error("(children) "+r+" - Duplicate children detected of bsRole: "+o+". Only one child each allowed with the following bsRoles: "+t.join(", ")):null})}t.a=r,t.b=o;var i=n(60),a=n.n(i),s=n(18)},function(e,t,n){"use strict";function r(e,t,n){e.addEventListener(t,n,!1)}function o(e,t,n){e.removeEventListener(t,n,!1)}var i=!("undefined"==typeof window||!window.document||!window.document.createElement),a={transitionend:{transition:"transitionend",WebkitTransition:"webkitTransitionEnd",MozTransition:"mozTransitionEnd",OTransition:"oTransitionEnd",msTransition:"MSTransitionEnd"},animationend:{animation:"animationend",WebkitAnimation:"webkitAnimationEnd",MozAnimation:"mozAnimationEnd",OAnimation:"oAnimationEnd",msAnimation:"MSAnimationEnd"}},s=[];i&&function(){var e=document.createElement("div"),t=e.style;"AnimationEvent"in window||delete a.animationend.animation,"TransitionEvent"in window||delete a.transitionend.transition;for(var n in a){var r=a[n];for(var o in r)if(o in t){s.push(r[o]);break}}}();var u={addEndEventListener:function(e,t){if(0===s.length)return void window.setTimeout(t,0);s.forEach(function(n){r(e,n,t)})},removeEndEventListener:function(e,t){0!==s.length&&s.forEach(function(n){o(e,n,t)})}};t.a=u},function(e,t,n){"use strict";function r(e,t,n){var r=void 0;"object"===(void 0===e?"undefined":p()(e))?r=e.message:(r=e+" is deprecated. Use "+t+" instead.",n&&(r+="\nYou can read more about it at "+n)),d[r]||(d[r]=!0)}var o=n(1),i=n.n(o),a=n(3),s=n.n(a),u=n(2),l=n.n(u),c=n(69),p=n.n(c),f=n(22),d=(n.n(f),{});r.wrapper=function(e){for(var t=arguments.length,n=Array(t>1?t-1:0),o=1;o8&&_<=11),x=32,w=String.fromCharCode(x),T={beforeInput:{phasedRegistrationNames:{bubbled:"onBeforeInput",captured:"onBeforeInputCapture"},dependencies:["topCompositionEnd","topKeyPress","topTextInput","topPaste"]},compositionEnd:{phasedRegistrationNames:{bubbled:"onCompositionEnd",captured:"onCompositionEndCapture"},dependencies:["topBlur","topCompositionEnd","topKeyDown","topKeyPress","topKeyUp","topMouseDown"]},compositionStart:{phasedRegistrationNames:{bubbled:"onCompositionStart",captured:"onCompositionStartCapture"},dependencies:["topBlur","topCompositionStart","topKeyDown","topKeyPress","topKeyUp","topMouseDown"]},compositionUpdate:{phasedRegistrationNames:{bubbled:"onCompositionUpdate",captured:"onCompositionUpdateCapture"},dependencies:["topBlur","topCompositionUpdate","topKeyDown","topKeyPress","topKeyUp","topMouseDown"]}},O=!1,N=null,S={eventTypes:T,extractEvents:function(e,t,n,r){return[u(e,t,n,r),p(e,t,n,r)]}};e.exports=S},function(e,t,n){"use strict";var r=n(154),o=n(17),i=(n(23),n(247),n(380)),a=n(254),s=n(257),u=(n(10),s(function(e){return a(e)})),l=!1,c="cssFloat";if(o.canUseDOM){var p=document.createElement("div").style;try{p.font=""}catch(e){l=!0}void 0===document.documentElement.style.cssFloat&&(c="styleFloat")}var f={createMarkupForStyles:function(e,t){var n="";for(var r in e)if(e.hasOwnProperty(r)){var o=0===r.indexOf("--"),a=e[r];null!=a&&(n+=u(r)+":",n+=i(r,a,t,o)+";")}return n||null},setValueForStyles:function(e,t,n){var o=e.style;for(var a in t)if(t.hasOwnProperty(a)){var s=0===a.indexOf("--"),u=i(a,t[a],n,s);if("float"!==a&&"cssFloat"!==a||(a=c),s)o.setProperty(a,u);else if(u)o[a]=u;else{var p=l&&r.shorthandPropertyExpansions[a];if(p)for(var f in p)o[f]="";else o[a]=""}}}};e.exports=f},function(e,t,n){"use strict";function r(e,t,n){var r=O.getPooled(M.change,e,t,n);return r.type="change",E.accumulateTwoPhaseDispatches(r),r}function o(e){var t=e.nodeName&&e.nodeName.toLowerCase();return"select"===t||"input"===t&&"file"===e.type}function i(e){var t=r(A,e,S(e));T.batchedUpdates(a,t)}function a(e){C.enqueueEvents(e),C.processEventQueue(!1)}function s(e,t){I=e,A=t,I.attachEvent("onchange",i)}function u(){I&&(I.detachEvent("onchange",i),I=null,A=null)}function l(e,t){var n=N.updateValueIfChanged(e),r=!0===t.simulated&&L._allowSimulatedPassThrough;if(n||r)return e}function c(e,t){if("topChange"===e)return t}function p(e,t,n){"topFocus"===e?(u(),s(t,n)):"topBlur"===e&&u()}function f(e,t){I=e,A=t,I.attachEvent("onpropertychange",h)}function d(){I&&(I.detachEvent("onpropertychange",h),I=null,A=null)}function h(e){"value"===e.propertyName&&l(A,e)&&i(e)}function v(e,t,n){"topFocus"===e?(d(),f(t,n)):"topBlur"===e&&d()}function m(e,t,n){if("topSelectionChange"===e||"topKeyUp"===e||"topKeyDown"===e)return l(A,n)}function y(e){var t=e.nodeName;return t&&"input"===t.toLowerCase()&&("checkbox"===e.type||"radio"===e.type)}function g(e,t,n){if("topClick"===e)return l(t,n)}function b(e,t,n){if("topInput"===e||"topChange"===e)return l(t,n)}function _(e,t){if(null!=e){var n=e._wrapperState||t._wrapperState;if(n&&n.controlled&&"number"===t.type){var r=""+t.value;t.getAttribute("value")!==r&&t.setAttribute("value",r)}}}var C=n(45),E=n(46),x=n(17),w=n(14),T=n(25),O=n(27),N=n(170),S=n(102),k=n(103),P=n(172),M={change:{phasedRegistrationNames:{bubbled:"onChange",captured:"onChangeCapture"},dependencies:["topBlur","topChange","topClick","topFocus","topInput","topKeyDown","topKeyUp","topSelectionChange"]}},I=null,A=null,R=!1;x.canUseDOM&&(R=k("change")&&(!document.documentMode||document.documentMode>8));var D=!1;x.canUseDOM&&(D=k("input")&&(!document.documentMode||document.documentMode>9));var L={eventTypes:M,_allowSimulatedPassThrough:!0,_isInputEventSupported:D,extractEvents:function(e,t,n,i){var a,s,u=t?w.getNodeFromInstance(t):window;if(o(u)?R?a=c:s=p:P(u)?D?a=b:(a=m,s=v):y(u)&&(a=g),a){var l=a(e,t,n);if(l){return r(l,n,i)}}s&&s(e,u,t),"topBlur"===e&&_(t,u)}};e.exports=L},function(e,t,n){"use strict";var r=n(11),o=n(36),i=n(17),a=n(250),s=n(21),u=(n(9),{dangerouslyReplaceNodeWithMarkup:function(e,t){if(i.canUseDOM||r("56"),t||r("57"),"HTML"===e.nodeName&&r("58"),"string"==typeof t){var n=a(t,s)[0];e.parentNode.replaceChild(n,e)}else o.replaceChildWithTree(e,t)}});e.exports=u},function(e,t,n){"use strict";var r=["ResponderEventPlugin","SimpleEventPlugin","TapEventPlugin","EnterLeaveEventPlugin","ChangeEventPlugin","SelectEventPlugin","BeforeInputEventPlugin"];e.exports=r},function(e,t,n){"use strict";var r=n(46),o=n(14),i=n(65),a={mouseEnter:{registrationName:"onMouseEnter",dependencies:["topMouseOut","topMouseOver"]},mouseLeave:{registrationName:"onMouseLeave",dependencies:["topMouseOut","topMouseOver"]}},s={eventTypes:a,extractEvents:function(e,t,n,s){if("topMouseOver"===e&&(n.relatedTarget||n.fromElement))return null;if("topMouseOut"!==e&&"topMouseOver"!==e)return null;var u;if(s.window===s)u=s;else{var l=s.ownerDocument;u=l?l.defaultView||l.parentWindow:window}var c,p;if("topMouseOut"===e){c=t;var f=n.relatedTarget||n.toElement;p=f?o.getClosestInstanceFromNode(f):null}else c=null,p=t;if(c===p)return null;var d=null==c?u:o.getNodeFromInstance(c),h=null==p?u:o.getNodeFromInstance(p),v=i.getPooled(a.mouseLeave,c,n,s);v.type="mouseleave",v.target=d,v.relatedTarget=h;var m=i.getPooled(a.mouseEnter,p,n,s);return m.type="mouseenter",m.target=h,m.relatedTarget=d,r.accumulateEnterLeaveDispatches(v,m,c,p),[v,m]}};e.exports=s},function(e,t,n){"use strict";function r(e){this._root=e,this._startText=this.getText(),this._fallbackText=null}var o=n(13),i=n(32),a=n(169);o(r.prototype,{destructor:function(){this._root=null,this._startText=null,this._fallbackText=null},getText:function(){return"value"in this._root?this._root.value:this._root[a()]},getData:function(){if(this._fallbackText)return this._fallbackText;var e,t,n=this._startText,r=n.length,o=this.getText(),i=o.length;for(e=0;e1?1-t:void 0;return this._fallbackText=o.slice(e,s),this._fallbackText}}),i.addPoolingTo(r),e.exports=r},function(e,t,n){"use strict";var r=n(37),o=r.injection.MUST_USE_PROPERTY,i=r.injection.HAS_BOOLEAN_VALUE,a=r.injection.HAS_NUMERIC_VALUE,s=r.injection.HAS_POSITIVE_NUMERIC_VALUE,u=r.injection.HAS_OVERLOADED_BOOLEAN_VALUE,l={isCustomAttribute:RegExp.prototype.test.bind(new RegExp("^(data|aria)-["+r.ATTRIBUTE_NAME_CHAR+"]*$")),Properties:{accept:0,acceptCharset:0,accessKey:0,action:0,allowFullScreen:i,allowTransparency:0,alt:0,as:0,async:i,autoComplete:0,autoPlay:i,capture:i,cellPadding:0,cellSpacing:0,charSet:0,challenge:0,checked:o|i,cite:0,classID:0,className:0,cols:s,colSpan:0,content:0,contentEditable:0,contextMenu:0,controls:i,controlsList:0,coords:0,crossOrigin:0,data:0,dateTime:0,default:i,defer:i,dir:0,disabled:i,download:u,draggable:0,encType:0,form:0,formAction:0,formEncType:0,formMethod:0,formNoValidate:i,formTarget:0,frameBorder:0,headers:0,height:0,hidden:i,high:0,href:0,hrefLang:0,htmlFor:0,httpEquiv:0,icon:0,id:0,inputMode:0,integrity:0,is:0,keyParams:0,keyType:0,kind:0,label:0,lang:0,list:0,loop:i,low:0,manifest:0,marginHeight:0,marginWidth:0,max:0,maxLength:0,media:0,mediaGroup:0,method:0,min:0,minLength:0,multiple:o|i,muted:o|i,name:0,nonce:0,noValidate:i,open:i,optimum:0,pattern:0,placeholder:0,playsInline:i,poster:0,preload:0,profile:0,radioGroup:0,readOnly:i,referrerPolicy:0,rel:0,required:i,reversed:i,role:0,rows:s,rowSpan:a,sandbox:0,scope:0,scoped:i,scrolling:0,seamless:i,selected:o|i,shape:0,size:s,sizes:0,span:s,spellCheck:0,src:0,srcDoc:0,srcLang:0,srcSet:0,start:a,step:0,style:0,summary:0,tabIndex:0,target:0,title:0,type:0,useMap:0,value:0,width:0,wmode:0,wrap:0,about:0,datatype:0,inlist:0,prefix:0,property:0,resource:0,typeof:0,vocab:0,autoCapitalize:0,autoCorrect:0,autoSave:0,color:0,itemProp:0,itemScope:i,itemType:0,itemID:0,itemRef:0,results:0,security:0,unselectable:0},DOMAttributeNames:{acceptCharset:"accept-charset",className:"class",htmlFor:"for",httpEquiv:"http-equiv"},DOMPropertyNames:{},DOMMutationMethods:{value:function(e,t){if(null==t)return e.removeAttribute("value");"number"!==e.type||!1===e.hasAttribute("value")?e.setAttribute("value",""+t):e.validity&&!e.validity.badInput&&e.ownerDocument.activeElement!==e&&e.setAttribute("value",""+t)}}};e.exports=l},function(e,t,n){"use strict";(function(t){function r(e,t,n,r){var o=void 0===e[n];null!=t&&o&&(e[n]=i(t,!0))}var o=n(38),i=n(171),a=(n(94),n(104)),s=n(174);n(10);void 0!==t&&t.env;var u={instantiateChildren:function(e,t,n,o){if(null==e)return null;var i={};return s(e,r,i),i},updateChildren:function(e,t,n,r,s,u,l,c,p){if(t||e){var f,d;for(f in t)if(t.hasOwnProperty(f)){d=e&&e[f];var h=d&&d._currentElement,v=t[f];if(null!=d&&a(h,v))o.receiveComponent(d,v,s,c),t[f]=d;else{d&&(r[f]=o.getHostNode(d),o.unmountComponent(d,!1));var m=i(v,!0);t[f]=m;var y=o.mountComponent(m,s,u,l,c,p);n.push(y)}}for(f in e)!e.hasOwnProperty(f)||t&&t.hasOwnProperty(f)||(d=e[f],r[f]=o.getHostNode(d),o.unmountComponent(d,!1))}},unmountChildren:function(e,t){for(var n in e)if(e.hasOwnProperty(n)){var r=e[n];o.unmountComponent(r,t)}}};e.exports=u}).call(t,n(132))},function(e,t,n){"use strict";var r=n(90),o=n(344),i={processChildrenUpdates:o.dangerouslyProcessChildrenUpdates,replaceNodeWithMarkup:r.dangerouslyReplaceNodeWithMarkup};e.exports=i},function(e,t,n){"use strict";function r(e){}function o(e){return!(!e.prototype||!e.prototype.isReactComponent)}function i(e){return!(!e.prototype||!e.prototype.isPureReactComponent)}var a=n(11),s=n(13),u=n(39),l=n(96),c=n(28),p=n(97),f=n(47),d=(n(23),n(164)),h=n(38),v=n(56),m=(n(9),n(80)),y=n(104),g=(n(10),{ImpureClass:0,PureClass:1,StatelessFunctional:2});r.prototype.render=function(){var e=f.get(this)._currentElement.type,t=e(this.props,this.context,this.updater);return t};var b=1,_={construct:function(e){this._currentElement=e,this._rootNodeID=0,this._compositeType=null,this._instance=null,this._hostParent=null,this._hostContainerInfo=null,this._updateBatchNumber=null,this._pendingElement=null,this._pendingStateQueue=null,this._pendingReplaceState=!1,this._pendingForceUpdate=!1,this._renderedNodeType=null,this._renderedComponent=null,this._context=null,this._mountOrder=0,this._topLevelWrapper=null,this._pendingCallbacks=null,this._calledComponentWillUnmount=!1},mountComponent:function(e,t,n,s){this._context=s,this._mountOrder=b++,this._hostParent=t,this._hostContainerInfo=n;var l,c=this._currentElement.props,p=this._processContext(s),d=this._currentElement.type,h=e.getUpdateQueue(),m=o(d),y=this._constructComponent(m,c,p,h);m||null!=y&&null!=y.render?i(d)?this._compositeType=g.PureClass:this._compositeType=g.ImpureClass:(l=y,null===y||!1===y||u.isValidElement(y)||a("105",d.displayName||d.name||"Component"),y=new r(d),this._compositeType=g.StatelessFunctional);y.props=c,y.context=p,y.refs=v,y.updater=h,this._instance=y,f.set(y,this);var _=y.state;void 0===_&&(y.state=_=null),("object"!=typeof _||Array.isArray(_))&&a("106",this.getName()||"ReactCompositeComponent"),this._pendingStateQueue=null,this._pendingReplaceState=!1,this._pendingForceUpdate=!1;var C;return C=y.unstable_handleError?this.performInitialMountWithErrorHandling(l,t,n,e,s):this.performInitialMount(l,t,n,e,s),y.componentDidMount&&e.getReactMountReady().enqueue(y.componentDidMount,y),C},_constructComponent:function(e,t,n,r){return this._constructComponentWithoutOwner(e,t,n,r)},_constructComponentWithoutOwner:function(e,t,n,r){var o=this._currentElement.type;return e?new o(t,n,r):o(t,n,r)},performInitialMountWithErrorHandling:function(e,t,n,r,o){var i,a=r.checkpoint();try{i=this.performInitialMount(e,t,n,r,o)}catch(s){r.rollback(a),this._instance.unstable_handleError(s),this._pendingStateQueue&&(this._instance.state=this._processPendingState(this._instance.props,this._instance.context)),a=r.checkpoint(),this._renderedComponent.unmountComponent(!0),r.rollback(a),i=this.performInitialMount(e,t,n,r,o)}return i},performInitialMount:function(e,t,n,r,o){var i=this._instance,a=0;i.componentWillMount&&(i.componentWillMount(),this._pendingStateQueue&&(i.state=this._processPendingState(i.props,i.context))),void 0===e&&(e=this._renderValidatedComponent());var s=d.getType(e);this._renderedNodeType=s;var u=this._instantiateReactComponent(e,s!==d.EMPTY);this._renderedComponent=u;var l=h.mountComponent(u,r,t,n,this._processChildContext(o),a);return l},getHostNode:function(){return h.getHostNode(this._renderedComponent)},unmountComponent:function(e){if(this._renderedComponent){var t=this._instance;if(t.componentWillUnmount&&!t._calledComponentWillUnmount)if(t._calledComponentWillUnmount=!0,e){var n=this.getName()+".componentWillUnmount()";p.invokeGuardedCallback(n,t.componentWillUnmount.bind(t))}else t.componentWillUnmount();this._renderedComponent&&(h.unmountComponent(this._renderedComponent,e),this._renderedNodeType=null,this._renderedComponent=null,this._instance=null),this._pendingStateQueue=null,this._pendingReplaceState=!1,this._pendingForceUpdate=!1,this._pendingCallbacks=null,this._pendingElement=null,this._context=null,this._rootNodeID=0,this._topLevelWrapper=null,f.remove(t)}},_maskContext:function(e){var t=this._currentElement.type,n=t.contextTypes;if(!n)return v;var r={};for(var o in n)r[o]=e[o];return r},_processContext:function(e){var t=this._maskContext(e);return t},_processChildContext:function(e){var t,n=this._currentElement.type,r=this._instance;if(r.getChildContext&&(t=r.getChildContext()),t){"object"!=typeof n.childContextTypes&&a("107",this.getName()||"ReactCompositeComponent");for(var o in t)o in n.childContextTypes||a("108",this.getName()||"ReactCompositeComponent",o);return s({},e,t)}return e},_checkContextTypes:function(e,t,n){},receiveComponent:function(e,t,n){var r=this._currentElement,o=this._context;this._pendingElement=null,this.updateComponent(t,r,e,o,n)},performUpdateIfNecessary:function(e){null!=this._pendingElement?h.receiveComponent(this,this._pendingElement,e,this._context):null!==this._pendingStateQueue||this._pendingForceUpdate?this.updateComponent(e,this._currentElement,this._currentElement,this._context,this._context):this._updateBatchNumber=null},updateComponent:function(e,t,n,r,o){var i=this._instance;null==i&&a("136",this.getName()||"ReactCompositeComponent");var s,u=!1;this._context===o?s=i.context:(s=this._processContext(o),u=!0);var l=t.props,c=n.props;t!==n&&(u=!0),u&&i.componentWillReceiveProps&&i.componentWillReceiveProps(c,s);var p=this._processPendingState(c,s),f=!0;this._pendingForceUpdate||(i.shouldComponentUpdate?f=i.shouldComponentUpdate(c,p,s):this._compositeType===g.PureClass&&(f=!m(l,c)||!m(i.state,p))),this._updateBatchNumber=null,f?(this._pendingForceUpdate=!1,this._performComponentUpdate(n,c,p,s,e,o)):(this._currentElement=n,this._context=o,i.props=c,i.state=p,i.context=s)},_processPendingState:function(e,t){var n=this._instance,r=this._pendingStateQueue,o=this._pendingReplaceState;if(this._pendingReplaceState=!1,this._pendingStateQueue=null,!r)return n.state;if(o&&1===r.length)return r[0];for(var i=s({},o?r[0]:n.state),a=o?1:0;a=0||null!=t.is}function v(e){var t=e.type;d(t),this._currentElement=e,this._tag=t.toLowerCase(),this._namespaceURI=null,this._renderedChildren=null,this._previousStyle=null,this._previousStyleCopy=null,this._hostNode=null,this._hostParent=null,this._rootNodeID=0,this._domID=0,this._hostContainerInfo=null,this._wrapperState=null,this._topLevelWrapper=null,this._flags=0}var m=n(11),y=n(13),g=n(327),b=n(329),_=n(36),C=n(91),E=n(37),x=n(156),w=n(45),T=n(92),O=n(64),N=n(157),S=n(14),k=n(345),P=n(346),M=n(158),I=n(349),A=(n(23),n(358)),R=n(363),D=(n(21),n(67)),L=(n(9),n(103),n(80),n(170)),j=(n(105),n(10),N),U=w.deleteListener,B=S.getNodeFromInstance,F=O.listenTo,V=T.registrationNameModules,K={string:!0,number:!0},W="__html",H={children:null,dangerouslySetInnerHTML:null,suppressContentEditableWarning:null},z=11,q={topAbort:"abort",topCanPlay:"canplay",topCanPlayThrough:"canplaythrough",topDurationChange:"durationchange",topEmptied:"emptied",topEncrypted:"encrypted",topEnded:"ended",topError:"error",topLoadedData:"loadeddata",topLoadedMetadata:"loadedmetadata",topLoadStart:"loadstart",topPause:"pause",topPlay:"play",topPlaying:"playing",topProgress:"progress",topRateChange:"ratechange",topSeeked:"seeked",topSeeking:"seeking",topStalled:"stalled",topSuspend:"suspend",topTimeUpdate:"timeupdate",topVolumeChange:"volumechange",topWaiting:"waiting"},$={area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0},Y={listing:!0,pre:!0,textarea:!0},G=y({menuitem:!0},$),X=/^[a-zA-Z][a-zA-Z:_\.\-\d]*$/,Q={},Z={}.hasOwnProperty,J=1;v.displayName="ReactDOMComponent",v.Mixin={mountComponent:function(e,t,n,r){this._rootNodeID=J++,this._domID=n._idCounter++,this._hostParent=t,this._hostContainerInfo=n;var i=this._currentElement.props;switch(this._tag){case"audio":case"form":case"iframe":case"img":case"link":case"object":case"source":case"video":this._wrapperState={listeners:null},e.getReactMountReady().enqueue(p,this);break;case"input":k.mountWrapper(this,i,t),i=k.getHostProps(this,i),e.getReactMountReady().enqueue(c,this),e.getReactMountReady().enqueue(p,this);break;case"option":P.mountWrapper(this,i,t),i=P.getHostProps(this,i);break;case"select":M.mountWrapper(this,i,t),i=M.getHostProps(this,i),e.getReactMountReady().enqueue(p,this);break;case"textarea":I.mountWrapper(this,i,t),i=I.getHostProps(this,i),e.getReactMountReady().enqueue(c,this),e.getReactMountReady().enqueue(p,this)}o(this,i);var a,f;null!=t?(a=t._namespaceURI,f=t._tag):n._tag&&(a=n._namespaceURI,f=n._tag),(null==a||a===C.svg&&"foreignobject"===f)&&(a=C.html),a===C.html&&("svg"===this._tag?a=C.svg:"math"===this._tag&&(a=C.mathml)),this._namespaceURI=a;var d;if(e.useCreateElement){var h,v=n._ownerDocument;if(a===C.html)if("script"===this._tag){var m=v.createElement("div"),y=this._currentElement.type;m.innerHTML="<"+y+">",h=m.removeChild(m.firstChild)}else h=i.is?v.createElement(this._currentElement.type,i.is):v.createElement(this._currentElement.type);else h=v.createElementNS(a,this._currentElement.type);S.precacheNode(this,h),this._flags|=j.hasCachedChildNodes,this._hostParent||x.setAttributeForRoot(h),this._updateDOMProperties(null,i,e);var b=_(h);this._createInitialChildren(e,i,r,b),d=b}else{var E=this._createOpenTagMarkupAndPutListeners(e,i),w=this._createContentMarkup(e,i,r);d=!w&&$[this._tag]?E+"/>":E+">"+w+""}switch(this._tag){case"input":e.getReactMountReady().enqueue(s,this),i.autoFocus&&e.getReactMountReady().enqueue(g.focusDOMComponent,this);break;case"textarea":e.getReactMountReady().enqueue(u,this),i.autoFocus&&e.getReactMountReady().enqueue(g.focusDOMComponent,this);break;case"select":case"button":i.autoFocus&&e.getReactMountReady().enqueue(g.focusDOMComponent,this);break;case"option":e.getReactMountReady().enqueue(l,this)}return d},_createOpenTagMarkupAndPutListeners:function(e,t){var n="<"+this._currentElement.type;for(var r in t)if(t.hasOwnProperty(r)){var o=t[r];if(null!=o)if(V.hasOwnProperty(r))o&&i(this,r,o,e);else{"style"===r&&(o&&(o=this._previousStyleCopy=y({},t.style)),o=b.createMarkupForStyles(o,this));var a=null;null!=this._tag&&h(this._tag,t)?H.hasOwnProperty(r)||(a=x.createMarkupForCustomAttribute(r,o)):a=x.createMarkupForProperty(r,o),a&&(n+=" "+a)}}return e.renderToStaticMarkup?n:(this._hostParent||(n+=" "+x.createMarkupForRoot()),n+=" "+x.createMarkupForID(this._domID))},_createContentMarkup:function(e,t,n){var r="",o=t.dangerouslySetInnerHTML;if(null!=o)null!=o.__html&&(r=o.__html);else{var i=K[typeof t.children]?t.children:null,a=null!=i?null:t.children;if(null!=i)r=D(i);else if(null!=a){var s=this.mountChildren(a,e,n);r=s.join("")}}return Y[this._tag]&&"\n"===r.charAt(0)?"\n"+r:r},_createInitialChildren:function(e,t,n,r){var o=t.dangerouslySetInnerHTML;if(null!=o)null!=o.__html&&_.queueHTML(r,o.__html);else{var i=K[typeof t.children]?t.children:null,a=null!=i?null:t.children;if(null!=i)""!==i&&_.queueText(r,i);else if(null!=a)for(var s=this.mountChildren(a,e,n),u=0;ut.end?(n=t.end,r=t.start):(n=t.start,r=t.end),o.moveToElementText(e),o.moveStart("character",n),o.setEndPoint("EndToStart",o),o.moveEnd("character",r-n),o.select()}function s(e,t){if(window.getSelection){var n=window.getSelection(),r=e[c()].length,o=Math.min(t.start,r),i=void 0===t.end?o:Math.min(t.end,r);if(!n.extend&&o>i){var a=i;i=o,o=a}var s=l(e,o),u=l(e,i);if(s&&u){var p=document.createRange();p.setStart(s.node,s.offset),n.removeAllRanges(),o>i?(n.addRange(p),n.extend(u.node,u.offset)):(p.setEnd(u.node,u.offset),n.addRange(p))}}}var u=n(17),l=n(385),c=n(169),p=u.canUseDOM&&"selection"in document&&!("getSelection"in window),f={getOffsets:p?o:i,setOffsets:p?a:s};e.exports=f},function(e,t,n){"use strict";var r=n(11),o=n(13),i=n(90),a=n(36),s=n(14),u=n(67),l=(n(9),n(105),function(e){this._currentElement=e,this._stringText=""+e,this._hostNode=null,this._hostParent=null,this._domID=0,this._mountIndex=0,this._closingComment=null,this._commentNodes=null});o(l.prototype,{mountComponent:function(e,t,n,r){var o=n._idCounter++,i=" react-text: "+o+" ";if(this._domID=o,this._hostParent=t,e.useCreateElement){var l=n._ownerDocument,c=l.createComment(i),p=l.createComment(" /react-text "),f=a(l.createDocumentFragment());return a.queueChild(f,a(c)),this._stringText&&a.queueChild(f,a(l.createTextNode(this._stringText))),a.queueChild(f,a(p)),s.precacheNode(this,c),this._closingComment=p,f}var d=u(this._stringText);return e.renderToStaticMarkup?d:"\x3c!--"+i+"--\x3e"+d+"\x3c!-- /react-text --\x3e"},receiveComponent:function(e,t){if(e!==this._currentElement){this._currentElement=e;var n=""+e;if(n!==this._stringText){this._stringText=n;var r=this.getHostNode();i.replaceDelimitedText(r[0],r[1],n)}}},getHostNode:function(){var e=this._commentNodes;if(e)return e;if(!this._closingComment)for(var t=s.getNodeFromInstance(this),n=t.nextSibling;;){if(null==n&&r("67",this._domID),8===n.nodeType&&" /react-text "===n.nodeValue){this._closingComment=n;break}n=n.nextSibling}return e=[this._hostNode,this._closingComment],this._commentNodes=e,e},unmountComponent:function(){this._closingComment=null,this._commentNodes=null,s.uncacheNode(this)}}),e.exports=l},function(e,t,n){"use strict";function r(){this._rootNodeID&&c.updateWrapper(this)}function o(e){var t=this._currentElement.props,n=s.executeOnChange(t,e);return l.asap(r,this),n}var i=n(11),a=n(13),s=n(95),u=n(14),l=n(25),c=(n(9),n(10),{getHostProps:function(e,t){return null!=t.dangerouslySetInnerHTML&&i("91"),a({},t,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue,onChange:e._wrapperState.onChange})},mountWrapper:function(e,t){var n=s.getValue(t),r=n;if(null==n){var a=t.defaultValue,u=t.children;null!=u&&(null!=a&&i("92"),Array.isArray(u)&&(u.length<=1||i("93"),u=u[0]),a=""+u),null==a&&(a=""),r=a}e._wrapperState={initialValue:""+r,listeners:null,onChange:o.bind(e)}},updateWrapper:function(e){var t=e._currentElement.props,n=u.getNodeFromInstance(e),r=s.getValue(t);if(null!=r){var o=""+r;o!==n.value&&(n.value=o),null==t.defaultValue&&(n.defaultValue=o)}null!=t.defaultValue&&(n.defaultValue=t.defaultValue)},postMountWrapper:function(e){var t=u.getNodeFromInstance(e),n=t.textContent;n===e._wrapperState.initialValue&&(t.value=n)}});e.exports=c},function(e,t,n){"use strict";function r(e,t){"_hostNode"in e||u("33"),"_hostNode"in t||u("33");for(var n=0,r=e;r;r=r._hostParent)n++;for(var o=0,i=t;i;i=i._hostParent)o++;for(;n-o>0;)e=e._hostParent,n--;for(;o-n>0;)t=t._hostParent,o--;for(var a=n;a--;){if(e===t)return e;e=e._hostParent,t=t._hostParent}return null}function o(e,t){"_hostNode"in e||u("35"),"_hostNode"in t||u("35");for(;t;){if(t===e)return!0;t=t._hostParent}return!1}function i(e){return"_hostNode"in e||u("36"),e._hostParent}function a(e,t,n){for(var r=[];e;)r.push(e),e=e._hostParent;var o;for(o=r.length;o-- >0;)t(r[o],"captured",n);for(o=0;o0;)n(u[l],"captured",i)}var u=n(11);n(9);e.exports={isAncestor:o,getLowestCommonAncestor:r,getParentInstance:i,traverseTwoPhase:a,traverseEnterLeave:s}},function(e,t,n){"use strict";function r(){this.reinitializeTransaction()}var o=n(13),i=n(25),a=n(66),s=n(21),u={initialize:s,close:function(){f.isBatchingUpdates=!1}},l={initialize:s,close:i.flushBatchedUpdates.bind(i)},c=[l,u];o(r.prototype,a,{getTransactionWrappers:function(){return c}});var p=new r,f={isBatchingUpdates:!1,batchedUpdates:function(e,t,n,r,o,i){var a=f.isBatchingUpdates;return f.isBatchingUpdates=!0,a?e(t,n,r,o,i):p.perform(e,null,t,n,r,o,i)}};e.exports=f},function(e,t,n){"use strict";function r(){x||(x=!0,g.EventEmitter.injectReactEventListener(y),g.EventPluginHub.injectEventPluginOrder(s),g.EventPluginUtils.injectComponentTree(f),g.EventPluginUtils.injectTreeTraversal(h),g.EventPluginHub.injectEventPluginsByName({SimpleEventPlugin:E,EnterLeaveEventPlugin:u,ChangeEventPlugin:a,SelectEventPlugin:C,BeforeInputEventPlugin:i}),g.HostComponent.injectGenericComponentClass(p),g.HostComponent.injectTextComponentClass(v),g.DOMProperty.injectDOMPropertyConfig(o),g.DOMProperty.injectDOMPropertyConfig(l),g.DOMProperty.injectDOMPropertyConfig(_),g.EmptyComponent.injectEmptyComponentFactory(function(e){return new d(e)}),g.Updates.injectReconcileTransaction(b),g.Updates.injectBatchingStrategy(m),g.Component.injectEnvironment(c))}var o=n(326),i=n(328),a=n(330),s=n(332),u=n(333),l=n(335),c=n(337),p=n(340),f=n(14),d=n(342),h=n(350),v=n(348),m=n(351),y=n(355),g=n(356),b=n(361),_=n(366),C=n(367),E=n(368),x=!1;e.exports={inject:r}},function(e,t,n){"use strict";var r="function"==typeof Symbol&&Symbol.for&&Symbol.for("react.element")||60103;e.exports=r},function(e,t,n){"use strict";function r(e){o.enqueueEvents(e),o.processEventQueue(!1)}var o=n(45),i={handleTopLevel:function(e,t,n,i){r(o.extractEvents(e,t,n,i))}};e.exports=i},function(e,t,n){"use strict";function r(e){for(;e._hostParent;)e=e._hostParent;var t=p.getNodeFromInstance(e),n=t.parentNode;return p.getClosestInstanceFromNode(n)}function o(e,t){this.topLevelType=e,this.nativeEvent=t,this.ancestors=[]}function i(e){var t=d(e.nativeEvent),n=p.getClosestInstanceFromNode(t),o=n;do{e.ancestors.push(o),o=o&&r(o)}while(o);for(var i=0;i/,i=/^<\!\-\-/,a={CHECKSUM_ATTR_NAME:"data-react-checksum",addChecksumToMarkup:function(e){var t=r(e);return i.test(e)?e:e.replace(o," "+a.CHECKSUM_ATTR_NAME+'="'+t+'"$&')},canReuseMarkup:function(e,t){var n=t.getAttribute(a.CHECKSUM_ATTR_NAME);return n=n&&parseInt(n,10),r(e)===n}};e.exports=a},function(e,t,n){"use strict";function r(e,t,n){return{type:"INSERT_MARKUP",content:e,fromIndex:null,fromNode:null,toIndex:n,afterNode:t}}function o(e,t,n){return{type:"MOVE_EXISTING",content:null,fromIndex:e._mountIndex,fromNode:f.getHostNode(e),toIndex:n,afterNode:t}}function i(e,t){return{type:"REMOVE_NODE",content:null,fromIndex:e._mountIndex,fromNode:t,toIndex:null,afterNode:null}}function a(e){return{type:"SET_MARKUP",content:e,fromIndex:null,fromNode:null,toIndex:null,afterNode:null}}function s(e){return{type:"TEXT_CONTENT",content:e,fromIndex:null,fromNode:null,toIndex:null,afterNode:null}}function u(e,t){return t&&(e=e||[],e.push(t)),e}function l(e,t){p.processChildrenUpdates(e,t)}var c=n(11),p=n(96),f=(n(47),n(23),n(28),n(38)),d=n(336),h=(n(21),n(382)),v=(n(9),{Mixin:{_reconcilerInstantiateChildren:function(e,t,n){return d.instantiateChildren(e,t,n)},_reconcilerUpdateChildren:function(e,t,n,r,o,i){var a,s=0;return a=h(t,s),d.updateChildren(e,a,n,r,o,this,this._hostContainerInfo,i,s),a},mountChildren:function(e,t,n){var r=this._reconcilerInstantiateChildren(e,t,n);this._renderedChildren=r;var o=[],i=0;for(var a in r)if(r.hasOwnProperty(a)){var s=r[a],u=0,l=f.mountComponent(s,t,this,this._hostContainerInfo,n,u);s._mountIndex=i++,o.push(l)}return o},updateTextContent:function(e){var t=this._renderedChildren;d.unmountChildren(t,!1);for(var n in t)t.hasOwnProperty(n)&&c("118");l(this,[s(e)])},updateMarkup:function(e){var t=this._renderedChildren;d.unmountChildren(t,!1);for(var n in t)t.hasOwnProperty(n)&&c("118");l(this,[a(e)])},updateChildren:function(e,t,n){this._updateChildren(e,t,n)},_updateChildren:function(e,t,n){var r=this._renderedChildren,o={},i=[],a=this._reconcilerUpdateChildren(r,e,i,o,t,n);if(a||r){var s,c=null,p=0,d=0,h=0,v=null;for(s in a)if(a.hasOwnProperty(s)){var m=r&&r[s],y=a[s];m===y?(c=u(c,this.moveChild(m,v,p,d)),d=Math.max(m._mountIndex,d),m._mountIndex=p):(m&&(d=Math.max(m._mountIndex,d)),c=u(c,this._mountChildAtIndex(y,i[h],v,p,t,n)),h++),p++,v=f.getHostNode(y)}for(s in o)o.hasOwnProperty(s)&&(c=u(c,this._unmountChild(r[s],o[s])));c&&l(this,c),this._renderedChildren=a}},unmountChildren:function(e){var t=this._renderedChildren;d.unmountChildren(t,e),this._renderedChildren=null},moveChild:function(e,t,n,r){if(e._mountIndex=t)return{node:n,offset:t-i};i=a}n=r(o(n))}}e.exports=i},function(e,t,n){"use strict";function r(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n["ms"+e]="MS"+t,n["O"+e]="o"+t.toLowerCase(),n}function o(e){if(s[e])return s[e];if(!a[e])return e;var t=a[e];for(var n in t)if(t.hasOwnProperty(n)&&n in u)return s[e]=t[n];return""}var i=n(17),a={animationend:r("Animation","AnimationEnd"),animationiteration:r("Animation","AnimationIteration"),animationstart:r("Animation","AnimationStart"),transitionend:r("Transition","TransitionEnd")},s={},u={};i.canUseDOM&&(u=document.createElement("div").style,"AnimationEvent"in window||(delete a.animationend.animation,delete a.animationiteration.animation,delete a.animationstart.animation),"TransitionEvent"in window||delete a.transitionend.transition),e.exports=o},function(e,t,n){"use strict";function r(e){return'"'+o(e)+'"'}var o=n(67);e.exports=r},function(e,t,n){"use strict";var r=n(163);e.exports=r.renderSubtreeIntoContainer},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function a(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}t.__esModule=!0;var s=Object.assign||function(e){for(var t=1;t0&&void 0!==arguments[0]?arguments[0]:{},r=n.hideSiblingNodes,i=void 0===r||r,l=n.handleContainerOverflow,p=void 0===l||l;o(this,e),this.add=function(e,n,r){var o=t.modals.indexOf(e),i=t.containers.indexOf(n);if(-1!==o)return o;if(o=t.modals.length,t.modals.push(e),t.hideSiblingNodes&&(0,y.hideSiblings)(n,e.mountNode),-1!==i)return t.data[i].modals.push(e),o;var a={modals:[e],classes:r?r.split(/\s+/):[],overflowing:(0,m.default)(n)};return t.handleContainerOverflow&&s(a,n),a.classes.forEach(c.default.addClass.bind(null,n)),t.containers.push(n),t.data.push(a),o},this.remove=function(e){var n=t.modals.indexOf(e);if(-1!==n){var r=a(t.data,e),o=t.data[r],i=t.containers[r];o.modals.splice(o.modals.indexOf(e),1),t.modals.splice(n,1),0===o.modals.length?(o.classes.forEach(c.default.removeClass.bind(null,i)),t.handleContainerOverflow&&u(o,i),t.hideSiblingNodes&&(0,y.showSiblings)(i,e.mountNode),t.containers.splice(r,1),t.data.splice(r,1)):t.hideSiblingNodes&&(0,y.ariaHidden)(!1,o.modals[o.modals.length-1].mountNode)}},this.isTopModal=function(e){return!!t.modals.length&&t.modals[t.modals.length-1]===e},this.hideSiblingNodes=i,this.handleContainerOverflow=p,this.modals=[],this.containers=[],this.data=[]};t.default=g,e.exports=t.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}t.__esModule=!0;var u=Object.assign||function(e){for(var t=1;t1?n-1:0),o=1;o=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}t.__esModule=!0;var u=Object.assign||function(e){for(var t=1;ts?s-l:0}function a(e,t,n,r){var i=o(n),a=i.width,s=e-r,u=e+r+t;return s<0?-s:u>a?a-u:0}function s(e,t,n,r,o){var s="BODY"===r.tagName?(0,l.default)(n):(0,p.default)(n,r),u=(0,l.default)(t),c=u.height,f=u.width,d=void 0,h=void 0,v=void 0,m=void 0;if("left"===e||"right"===e){h=s.top+(s.height-c)/2,d="left"===e?s.left-f:s.left+s.width;var y=i(h,c,r,o);h+=y,m=50*(1-2*y/c)+"%",v=void 0}else{if("top"!==e&&"bottom"!==e)throw new Error('calcOverlayPosition(): No such placement of "'+e+'" found.');d=s.left+(s.width-f)/2,h="top"===e?s.top-c:s.top+s.height;var g=a(d,f,r,o);d+=g,v=50*(1-2*g/f)+"%",m=void 0}return{positionLeft:d,positionTop:h,arrowOffsetLeft:v,arrowOffsetTop:m}}t.__esModule=!0,t.default=s;var u=n(124),l=r(u),c=n(237),p=r(c),f=n(125),d=r(f),h=n(49),v=r(h);e.exports=t.default},function(e,t,n){"use strict";function r(e,t){t&&(e?t.setAttribute("aria-hidden","true"):t.removeAttribute("aria-hidden"))}function o(e,t){u(e,t,function(e){return r(!0,e)})}function i(e,t){u(e,t,function(e){return r(!1,e)})}t.__esModule=!0,t.ariaHidden=r,t.hideSiblings=o,t.showSiblings=i;var a=["template","script","style"],s=function(e){var t=e.nodeType,n=e.tagName;return 1===t&&-1===a.indexOf(n.toLowerCase())},u=function(e,t,n){t=[].concat(t),[].forEach.call(e.children,function(e){-1===t.indexOf(e)&&s(e)&&n(e)})}},function(e,t,n){"use strict";function r(e){var t={"=":"=0",":":"=2"};return"$"+(""+e).replace(/[=:]/g,function(e){return t[e]})}function o(e){var t=/(=0|=2)/g,n={"=0":"=","=2":":"};return(""+("."===e[0]&&"$"===e[1]?e.substring(2):e.substring(1))).replace(t,function(e){return n[e]})}var i={escape:r,unescape:o};e.exports=i},function(e,t,n){"use strict";var r=n(50),o=(n(9),function(e){var t=this;if(t.instancePool.length){var n=t.instancePool.pop();return t.call(n,e),n}return new t(e)}),i=function(e,t){var n=this;if(n.instancePool.length){var r=n.instancePool.pop();return n.call(r,e,t),r}return new n(e,t)},a=function(e,t,n){var r=this;if(r.instancePool.length){var o=r.instancePool.pop();return r.call(o,e,t,n),o}return new r(e,t,n)},s=function(e,t,n,r){var o=this;if(o.instancePool.length){var i=o.instancePool.pop();return o.call(i,e,t,n,r),i}return new o(e,t,n,r)},u=function(e){var t=this;e instanceof t||r("25"),e.destructor(),t.instancePool.length2?i-2:0),u=2;u2&&void 0!==arguments[2]?arguments[2]:[],b=r.displayName||r.name||"Component",_=h.getType(r).propTypes,C=h.isReactComponent(r),E=Object.keys(s),x=["valueLink","checkedLink"].concat(E.map(h.defaultKey));y=h.uncontrolledPropTypes(s,_,b),(0,f.default)(C||!g.length,"[uncontrollable] stateless function components cannot pass through methods because they have no associated instances. Check component: "+b+", attempting to pass through methods: "+g.join(", ")),g=h.transform(g,function(e,t){e[t]=function(){var e;return(e=this.refs.inner)[t].apply(e,arguments)}},{});var w=(m=v=function(t){function n(){return o(this,n),i(this,t.apply(this,arguments))}return a(n,t),n.prototype.shouldComponentUpdate=function(){for(var t=arguments.length,n=Array(t),r=0;r1&&void 0!==arguments[1]?arguments[1]:{},r=arguments[2];return n(e,u({},s,t),r)},w}return n}t.__esModule=!0;var u=Object.assign||function(e){for(var t=1;t=15||0===g[0]&&g[1]>=13?e:e.type}function a(e,t){var n=u(t);return n&&!s(e,t)&&s(e,n)?e[n].value:e[t]}function s(e,t){return void 0!==e[t]}function u(e){return"value"===e?"valueLink":"checked"===e?"checkedLink":null}function l(e){return"default"+e.charAt(0).toUpperCase()+e.substr(1)}function c(e,t,n){return function(){for(var r=arguments.length,o=Array(r),i=0;i-1}function h(e,t,n){for(var r=-1,o=null==e?0:e.length;++r-1;);return n}function B(e,t){for(var n=e.length;n--&&w(t,e[n],0)>-1;);return n}function F(e,t){for(var n=e.length,r=0;n--;)e[n]===t&&++r;return r}function V(e){return"\\"+Sn[e]}function K(e,t){return null==e?oe:e[t]}function W(e){return bn.test(e)}function H(e){return _n.test(e)}function z(e){for(var t,n=[];!(t=e.next()).done;)n.push(t.value);return n}function q(e){var t=-1,n=Array(e.size);return e.forEach(function(e,r){n[++t]=[r,e]}),n}function $(e,t){return function(n){return e(t(n))}}function Y(e,t){for(var n=-1,r=e.length,o=0,i=[];++n>>1,Be=[["ary",xe],["bind",me],["bindKey",ye],["curry",be],["curryRight",_e],["flip",Te],["partial",Ce],["partialRight",Ee],["rearg",we]],Fe="[object Arguments]",Ve="[object Array]",Ke="[object AsyncFunction]",We="[object Boolean]",He="[object Date]",ze="[object DOMException]",qe="[object Error]",$e="[object Function]",Ye="[object GeneratorFunction]",Ge="[object Map]",Xe="[object Number]",Qe="[object Null]",Ze="[object Object]",Je="[object Proxy]",et="[object RegExp]",tt="[object Set]",nt="[object String]",rt="[object Symbol]",ot="[object Undefined]",it="[object WeakMap]",at="[object WeakSet]",st="[object ArrayBuffer]",ut="[object DataView]",lt="[object Float32Array]",ct="[object Float64Array]",pt="[object Int8Array]",ft="[object Int16Array]",dt="[object Int32Array]",ht="[object Uint8Array]",vt="[object Uint8ClampedArray]",mt="[object Uint16Array]",yt="[object Uint32Array]",gt=/\b__p \+= '';/g,bt=/\b(__p \+=) '' \+/g,_t=/(__e\(.*?\)|\b__t\)) \+\n'';/g,Ct=/&(?:amp|lt|gt|quot|#39);/g,Et=/[&<>"']/g,xt=RegExp(Ct.source),wt=RegExp(Et.source),Tt=/<%-([\s\S]+?)%>/g,Ot=/<%([\s\S]+?)%>/g,Nt=/<%=([\s\S]+?)%>/g,St=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,kt=/^\w*$/,Pt=/^\./,Mt=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,It=/[\\^$.*+?()[\]{}|]/g,At=RegExp(It.source),Rt=/^\s+|\s+$/g,Dt=/^\s+/,Lt=/\s+$/,jt=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,Ut=/\{\n\/\* \[wrapped with (.+)\] \*/,Bt=/,? & /,Ft=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,Vt=/\\(\\)?/g,Kt=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,Wt=/\w*$/,Ht=/^[-+]0x[0-9a-f]+$/i,zt=/^0b[01]+$/i,qt=/^\[object .+?Constructor\]$/,$t=/^0o[0-7]+$/i,Yt=/^(?:0|[1-9]\d*)$/,Gt=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,Xt=/($^)/,Qt=/['\n\r\u2028\u2029\\]/g,Zt="\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff",Jt="\\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",en="["+Jt+"]",tn="["+Zt+"]",nn="[a-z\\xdf-\\xf6\\xf8-\\xff]",rn="[^\\ud800-\\udfff"+Jt+"\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde]",on="\\ud83c[\\udffb-\\udfff]",an="(?:\\ud83c[\\udde6-\\uddff]){2}",sn="[\\ud800-\\udbff][\\udc00-\\udfff]",un="[A-Z\\xc0-\\xd6\\xd8-\\xde]",ln="(?:"+nn+"|"+rn+")",cn="(?:[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|\\ud83c[\\udffb-\\udfff])?",pn="(?:\\u200d(?:"+["[^\\ud800-\\udfff]",an,sn].join("|")+")[\\ufe0e\\ufe0f]?"+cn+")*",fn="[\\ufe0e\\ufe0f]?"+cn+pn,dn="(?:"+["[\\u2700-\\u27bf]",an,sn].join("|")+")"+fn,hn="(?:"+["[^\\ud800-\\udfff]"+tn+"?",tn,an,sn,"[\\ud800-\\udfff]"].join("|")+")",vn=RegExp("['’]","g"),mn=RegExp(tn,"g"),yn=RegExp(on+"(?="+on+")|"+hn+fn,"g"),gn=RegExp([un+"?"+nn+"+(?:['’](?:d|ll|m|re|s|t|ve))?(?="+[en,un,"$"].join("|")+")","(?:[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))?(?="+[en,un+ln,"$"].join("|")+")",un+"?"+ln+"+(?:['’](?:d|ll|m|re|s|t|ve))?",un+"+(?:['’](?:D|LL|M|RE|S|T|VE))?","\\d*(?:(?:1ST|2ND|3RD|(?![123])\\dTH)\\b)","\\d*(?:(?:1st|2nd|3rd|(?![123])\\dth)\\b)","\\d+",dn].join("|"),"g"),bn=RegExp("[\\u200d\\ud800-\\udfff"+Zt+"\\ufe0e\\ufe0f]"),_n=/[a-z][A-Z]|[A-Z]{2,}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,Cn=["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"],En=-1,xn={};xn[lt]=xn[ct]=xn[pt]=xn[ft]=xn[dt]=xn[ht]=xn[vt]=xn[mt]=xn[yt]=!0,xn[Fe]=xn[Ve]=xn[st]=xn[We]=xn[ut]=xn[He]=xn[qe]=xn[$e]=xn[Ge]=xn[Xe]=xn[Ze]=xn[et]=xn[tt]=xn[nt]=xn[it]=!1;var wn={};wn[Fe]=wn[Ve]=wn[st]=wn[ut]=wn[We]=wn[He]=wn[lt]=wn[ct]=wn[pt]=wn[ft]=wn[dt]=wn[Ge]=wn[Xe]=wn[Ze]=wn[et]=wn[tt]=wn[nt]=wn[rt]=wn[ht]=wn[vt]=wn[mt]=wn[yt]=!0,wn[qe]=wn[$e]=wn[it]=!1;var Tn={"À":"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"},On={"&":"&","<":"<",">":">",'"':""","'":"'"},Nn={"&":"&","<":"<",">":">",""":'"',"'":"'"},Sn={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},kn=parseFloat,Pn=parseInt,Mn="object"==typeof e&&e&&e.Object===Object&&e,In="object"==typeof self&&self&&self.Object===Object&&self,An=Mn||In||Function("return this")(),Rn="object"==typeof t&&t&&!t.nodeType&&t,Dn=Rn&&"object"==typeof r&&r&&!r.nodeType&&r,Ln=Dn&&Dn.exports===Rn,jn=Ln&&Mn.process,Un=function(){try{return jn&&jn.binding&&jn.binding("util")}catch(e){}}(),Bn=Un&&Un.isArrayBuffer,Fn=Un&&Un.isDate,Vn=Un&&Un.isMap,Kn=Un&&Un.isRegExp,Wn=Un&&Un.isSet,Hn=Un&&Un.isTypedArray,zn=S("length"),qn=k(Tn),$n=k(On),Yn=k(Nn),Gn=function e(t){function n(e){if(iu(e)&&!yf(e)&&!(e instanceof _)){if(e instanceof o)return e;if(mc.call(e,"__wrapped__"))return na(e)}return new o(e)}function r(){}function o(e,t){this.__wrapped__=e,this.__actions__=[],this.__chain__=!!t,this.__index__=0,this.__values__=oe}function _(e){this.__wrapped__=e,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=Le,this.__views__=[]}function k(){var e=new _(this.__wrapped__);return e.__actions__=Uo(this.__actions__),e.__dir__=this.__dir__,e.__filtered__=this.__filtered__,e.__iteratees__=Uo(this.__iteratees__),e.__takeCount__=this.__takeCount__,e.__views__=Uo(this.__views__),e}function Q(){if(this.__filtered__){var e=new _(this);e.__dir__=-1,e.__filtered__=!0}else e=this.clone(),e.__dir__*=-1;return e}function te(){var e=this.__wrapped__.value(),t=this.__dir__,n=yf(e),r=t<0,o=n?e.length:0,i=Ni(0,o,this.__views__),a=i.start,s=i.end,u=s-a,l=r?s:a-1,c=this.__iteratees__,p=c.length,f=0,d=qc(u,this.__takeCount__);if(!n||!r&&o==u&&d==u)return bo(e,this.__actions__);var h=[];e:for(;u--&&f-1}function un(e,t){var n=this.__data__,r=Xn(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this}function ln(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t=t?e:t)),e}function rr(e,t,n,r,o,i){var a,s=t&pe,u=t&fe,c=t&de;if(n&&(a=o?n(e,r,o,i):n(e)),a!==oe)return a;if(!ou(e))return e;var p=yf(e);if(p){if(a=Pi(e),!s)return Uo(e,a)}else{var f=Op(e),d=f==$e||f==Ye;if(bf(e))return Oo(e,s);if(f==Ze||f==Fe||d&&!o){if(a=u||d?{}:Mi(e),!s)return u?Vo(e,Jn(a,e)):Fo(e,Zn(a,e))}else{if(!wn[f])return o?e:{};a=Ii(e,f,rr,s)}}i||(i=new _n);var h=i.get(e);if(h)return h;i.set(e,a);var v=c?u?bi:gi:u?Vu:Fu,m=p?oe:v(e);return l(m||e,function(r,o){m&&(o=r,r=e[o]),zn(a,o,rr(r,t,n,o,e,i))}),a}function or(e){var t=Fu(e);return function(n){return ir(n,e,t)}}function ir(e,t,n){var r=n.length;if(null==e)return!r;for(e=sc(e);r--;){var o=n[r],i=t[o],a=e[o];if(a===oe&&!(o in e)||!i(a))return!1}return!0}function ar(e,t,n){if("function"!=typeof e)throw new cc(se);return kp(function(){e.apply(oe,n)},t)}function sr(e,t,n,r){var o=-1,i=d,a=!0,s=e.length,u=[],l=t.length;if(!s)return u;n&&(t=v(t,D(n))),r?(i=h,a=!1):t.length>=ie&&(i=j,a=!1,t=new yn(t));e:for(;++oo?0:o+n),r=r===oe||r>o?o:Eu(r),r<0&&(r+=o),r=n>r?0:xu(r);n0&&n(s)?t>1?fr(s,t-1,n,r,o):m(o,s):r||(o[o.length]=s)}return o}function dr(e,t){return e&&mp(e,t,Fu)}function hr(e,t){return e&&yp(e,t,Fu)}function vr(e,t){return f(t,function(t){return tu(e[t])})}function mr(e,t){t=wo(t,e);for(var n=0,r=t.length;null!=e&&nt}function _r(e,t){return null!=e&&mc.call(e,t)}function Cr(e,t){return null!=e&&t in sc(e)}function Er(e,t,n){return e>=qc(t,n)&&e=120&&c.length>=120)?new yn(a&&c):oe}c=e[0];var p=-1,f=s[0];e:for(;++p-1;)s!==e&&Pc.call(s,u,1),Pc.call(e,u,1);return e}function Zr(e,t){for(var n=e?t.length:0,r=n-1;n--;){var o=t[n];if(n==r||o!==i){var i=o;Di(o)?Pc.call(e,o,1):mo(e,o)}}return e}function Jr(e,t){return e+Bc(Gc()*(t-e+1))}function eo(e,t,n,r){for(var o=-1,i=zc(Uc((t-e)/(n||1)),0),a=nc(i);i--;)a[r?i:++o]=e,e+=n;return a}function to(e,t){var n="";if(!e||t<1||t>Ae)return n;do{t%2&&(n+=e),(t=Bc(t/2))&&(e+=e)}while(t);return n}function no(e,t){return Pp($i(e,t,Pl),e+"")}function ro(e){return Rn(Ju(e))}function oo(e,t){var n=Ju(e);return Zi(n,nr(t,0,n.length))}function io(e,t,n,r){if(!ou(e))return e;t=wo(t,e);for(var o=-1,i=t.length,a=i-1,s=e;null!=s&&++oo?0:o+t),n=n>o?o:n,n<0&&(n+=o),o=t>n?0:n-t>>>0,t>>>=0;for(var i=nc(o);++r>>1,a=e[i];null!==a&&!mu(a)&&(n?a<=t:a=ie){var l=t?null:Ep(e);if(l)return G(l);a=!1,o=j,u=new yn}else u=t?[]:s;e:for(;++r=r?e:so(e,t,n)}function Oo(e,t){if(t)return e.slice();var n=e.length,r=Oc?Oc(n):new e.constructor(n);return e.copy(r),r}function No(e){var t=new e.constructor(e.byteLength);return new Tc(t).set(new Tc(e)),t}function So(e,t){var n=t?No(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.byteLength)}function ko(e,t,n){return y(t?n(q(e),pe):q(e),i,new e.constructor)}function Po(e){var t=new e.constructor(e.source,Wt.exec(e));return t.lastIndex=e.lastIndex,t}function Mo(e,t,n){return y(t?n(G(e),pe):G(e),a,new e.constructor)}function Io(e){return pp?sc(pp.call(e)):{}}function Ao(e,t){var n=t?No(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.length)}function Ro(e,t){if(e!==t){var n=e!==oe,r=null===e,o=e===e,i=mu(e),a=t!==oe,s=null===t,u=t===t,l=mu(t);if(!s&&!l&&!i&&e>t||i&&a&&u&&!s&&!l||r&&a&&u||!n&&u||!o)return 1;if(!r&&!i&&!l&&e=s)return u;return u*("desc"==n[r]?-1:1)}}return e.index-t.index}function Lo(e,t,n,r){for(var o=-1,i=e.length,a=n.length,s=-1,u=t.length,l=zc(i-a,0),c=nc(u+l),p=!r;++s1?n[o-1]:oe,a=o>2?n[2]:oe;for(i=e.length>3&&"function"==typeof i?(o--,i):oe,a&&Li(n[0],n[1],a)&&(i=o<3?oe:i,o=1),t=sc(t);++r-1?o[i?t[a]:a]:oe}}function Zo(e){return yi(function(t){var n=t.length,r=n,i=o.prototype.thru;for(e&&t.reverse();r--;){var a=t[r];if("function"!=typeof a)throw new cc(se);if(i&&!s&&"wrapper"==_i(a))var s=new o([],!0)}for(r=s?r:n;++r1&&g.reverse(),p&&us))return!1;var l=i.get(e);if(l&&i.get(t))return l==t;var c=-1,p=!0,f=n&ve?new yn:oe;for(i.set(e,t),i.set(t,e);++c1?"& ":"")+t[r],t=t.join(n>2?", ":" "),e.replace(jt,"{\n/* [wrapped with "+t+"] */\n")}function Ri(e){return yf(e)||mf(e)||!!(Mc&&e&&e[Mc])}function Di(e,t){return!!(t=null==t?Ae:t)&&("number"==typeof e||Yt.test(e))&&e>-1&&e%1==0&&e0){if(++t>=Se)return arguments[0]}else t=0;return e.apply(oe,arguments)}}function Zi(e,t){var n=-1,r=e.length,o=r-1;for(t=t===oe?r:t;++n=this.__values__.length;return{done:e,value:e?oe:this.__values__[this.__index__++]}}function ns(){return this}function rs(e){for(var t,n=this;n instanceof r;){var o=na(n);o.__index__=0,o.__values__=oe,t?i.__wrapped__=o:t=o;var i=o;n=n.__wrapped__}return i.__wrapped__=e,t}function os(){var e=this.__wrapped__;if(e instanceof _){var t=e;return this.__actions__.length&&(t=new _(this)),t=t.reverse(),t.__actions__.push({func:Za,args:[Sa],thisArg:oe}),new o(t,this.__chain__)}return this.thru(Sa)}function is(){return bo(this.__wrapped__,this.__actions__)}function as(e,t,n){var r=yf(e)?p:ur;return n&&Li(e,t,n)&&(t=oe),r(e,Ei(t,3))}function ss(e,t){return(yf(e)?f:pr)(e,Ei(t,3))}function us(e,t){return fr(hs(e,t),1)}function ls(e,t){return fr(hs(e,t),Ie)}function cs(e,t,n){return n=n===oe?1:Eu(n),fr(hs(e,t),n)}function ps(e,t){return(yf(e)?l:hp)(e,Ei(t,3))}function fs(e,t){return(yf(e)?c:vp)(e,Ei(t,3))}function ds(e,t,n,r){e=qs(e)?e:Ju(e),n=n&&!r?Eu(n):0;var o=e.length;return n<0&&(n=zc(o+n,0)),vu(e)?n<=o&&e.indexOf(t,n)>-1:!!o&&w(e,t,n)>-1}function hs(e,t){return(yf(e)?v:Vr)(e,Ei(t,3))}function vs(e,t,n,r){return null==e?[]:(yf(t)||(t=null==t?[]:[t]),n=r?oe:n,yf(n)||(n=null==n?[]:[n]),$r(e,t,n))}function ms(e,t,n){var r=yf(e)?y:P,o=arguments.length<3;return r(e,Ei(t,4),n,o,hp)}function ys(e,t,n){var r=yf(e)?g:P,o=arguments.length<3;return r(e,Ei(t,4),n,o,vp)}function gs(e,t){return(yf(e)?f:pr)(e,Is(Ei(t,3)))}function bs(e){return(yf(e)?Rn:ro)(e)}function _s(e,t,n){return t=(n?Li(e,t,n):t===oe)?1:Eu(t),(yf(e)?Dn:oo)(e,t)}function Cs(e){return(yf(e)?jn:ao)(e)}function Es(e){if(null==e)return 0;if(qs(e))return vu(e)?J(e):e.length;var t=Op(e);return t==Ge||t==tt?e.size:Ur(e).length}function xs(e,t,n){var r=yf(e)?b:uo;return n&&Li(e,t,n)&&(t=oe),r(e,Ei(t,3))}function ws(e,t){if("function"!=typeof t)throw new cc(se);return e=Eu(e),function(){if(--e<1)return t.apply(this,arguments)}}function Ts(e,t,n){return t=n?oe:t,t=e&&null==t?e.length:t,ci(e,xe,oe,oe,oe,oe,t)}function Os(e,t){var n;if("function"!=typeof t)throw new cc(se);return e=Eu(e),function(){return--e>0&&(n=t.apply(this,arguments)),e<=1&&(t=oe),n}}function Ns(e,t,n){t=n?oe:t;var r=ci(e,be,oe,oe,oe,oe,oe,t);return r.placeholder=Ns.placeholder,r}function Ss(e,t,n){t=n?oe:t;var r=ci(e,_e,oe,oe,oe,oe,oe,t);return r.placeholder=Ss.placeholder,r}function ks(e,t,n){function r(t){var n=f,r=d;return f=d=oe,g=t,v=e.apply(r,n)}function o(e){return g=e,m=kp(s,t),b?r(e):v}function i(e){var n=e-y,r=e-g,o=t-n;return _?qc(o,h-r):o}function a(e){var n=e-y,r=e-g;return y===oe||n>=t||n<0||_&&r>=h}function s(){var e=of();if(a(e))return u(e);m=kp(s,i(e))}function u(e){return m=oe,C&&f?r(e):(f=d=oe,v)}function l(){m!==oe&&Cp(m),g=0,f=y=d=m=oe}function c(){return m===oe?v:u(of())}function p(){var e=of(),n=a(e);if(f=arguments,d=this,y=e,n){if(m===oe)return o(y);if(_)return m=kp(s,t),r(y)}return m===oe&&(m=kp(s,t)),v}var f,d,h,v,m,y,g=0,b=!1,_=!1,C=!0;if("function"!=typeof e)throw new cc(se);return t=wu(t)||0,ou(n)&&(b=!!n.leading,_="maxWait"in n,h=_?zc(wu(n.maxWait)||0,t):h,C="trailing"in n?!!n.trailing:C),p.cancel=l,p.flush=c,p}function Ps(e){return ci(e,Te)}function Ms(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new cc(se);var n=function(){var r=arguments,o=t?t.apply(this,r):r[0],i=n.cache;if(i.has(o))return i.get(o);var a=e.apply(this,r);return n.cache=i.set(o,a)||i,a};return n.cache=new(Ms.Cache||ln),n}function Is(e){if("function"!=typeof e)throw new cc(se);return function(){var t=arguments;switch(t.length){case 0:return!e.call(this);case 1:return!e.call(this,t[0]);case 2:return!e.call(this,t[0],t[1]);case 3:return!e.call(this,t[0],t[1],t[2])}return!e.apply(this,t)}}function As(e){return Os(2,e)}function Rs(e,t){if("function"!=typeof e)throw new cc(se);return t=t===oe?t:Eu(t),no(e,t)}function Ds(e,t){if("function"!=typeof e)throw new cc(se);return t=null==t?0:zc(Eu(t),0),no(function(n){var r=n[t],o=To(n,0,t);return r&&m(o,r),s(e,this,o)})}function Ls(e,t,n){var r=!0,o=!0;if("function"!=typeof e)throw new cc(se);return ou(n)&&(r="leading"in n?!!n.leading:r,o="trailing"in n?!!n.trailing:o),ks(e,t,{leading:r,maxWait:t,trailing:o})}function js(e){return Ts(e,1)}function Us(e,t){return pf(xo(t),e)}function Bs(){if(!arguments.length)return[];var e=arguments[0];return yf(e)?e:[e]}function Fs(e){return rr(e,de)}function Vs(e,t){return t="function"==typeof t?t:oe,rr(e,de,t)}function Ks(e){return rr(e,pe|de)}function Ws(e,t){return t="function"==typeof t?t:oe,rr(e,pe|de,t)}function Hs(e,t){return null==t||ir(e,t,Fu(t))}function zs(e,t){return e===t||e!==e&&t!==t}function qs(e){return null!=e&&ru(e.length)&&!tu(e)}function $s(e){return iu(e)&&qs(e)}function Ys(e){return!0===e||!1===e||iu(e)&&gr(e)==We}function Gs(e){return iu(e)&&1===e.nodeType&&!du(e)}function Xs(e){if(null==e)return!0;if(qs(e)&&(yf(e)||"string"==typeof e||"function"==typeof e.splice||bf(e)||wf(e)||mf(e)))return!e.length;var t=Op(e);if(t==Ge||t==tt)return!e.size;if(Vi(e))return!Ur(e).length;for(var n in e)if(mc.call(e,n))return!1;return!0}function Qs(e,t){return kr(e,t)}function Zs(e,t,n){n="function"==typeof n?n:oe;var r=n?n(e,t):oe;return r===oe?kr(e,t,oe,n):!!r}function Js(e){if(!iu(e))return!1;var t=gr(e);return t==qe||t==ze||"string"==typeof e.message&&"string"==typeof e.name&&!du(e)}function eu(e){return"number"==typeof e&&Kc(e)}function tu(e){if(!ou(e))return!1;var t=gr(e);return t==$e||t==Ye||t==Ke||t==Je}function nu(e){return"number"==typeof e&&e==Eu(e)}function ru(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=Ae}function ou(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}function iu(e){return null!=e&&"object"==typeof e}function au(e,t){return e===t||Ir(e,t,wi(t))}function su(e,t,n){return n="function"==typeof n?n:oe,Ir(e,t,wi(t),n)}function uu(e){return fu(e)&&e!=+e}function lu(e){if(Np(e))throw new oc(ae);return Ar(e)}function cu(e){return null===e}function pu(e){return null==e}function fu(e){return"number"==typeof e||iu(e)&&gr(e)==Xe}function du(e){if(!iu(e)||gr(e)!=Ze)return!1;var t=Nc(e);if(null===t)return!0;var n=mc.call(t,"constructor")&&t.constructor;return"function"==typeof n&&n instanceof n&&vc.call(n)==_c}function hu(e){return nu(e)&&e>=-Ae&&e<=Ae}function vu(e){return"string"==typeof e||!yf(e)&&iu(e)&&gr(e)==nt}function mu(e){return"symbol"==typeof e||iu(e)&&gr(e)==rt}function yu(e){return e===oe}function gu(e){return iu(e)&&Op(e)==it}function bu(e){return iu(e)&&gr(e)==at}function _u(e){if(!e)return[];if(qs(e))return vu(e)?ee(e):Uo(e);if(Ic&&e[Ic])return z(e[Ic]());var t=Op(e);return(t==Ge?q:t==tt?G:Ju)(e)}function Cu(e){if(!e)return 0===e?e:0;if((e=wu(e))===Ie||e===-Ie){return(e<0?-1:1)*Re}return e===e?e:0}function Eu(e){var t=Cu(e),n=t%1;return t===t?n?t-n:t:0}function xu(e){return e?nr(Eu(e),0,Le):0}function wu(e){if("number"==typeof e)return e;if(mu(e))return De;if(ou(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=ou(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(Rt,"");var n=zt.test(e);return n||$t.test(e)?Pn(e.slice(2),n?2:8):Ht.test(e)?De:+e}function Tu(e){return Bo(e,Vu(e))}function Ou(e){return e?nr(Eu(e),-Ae,Ae):0===e?e:0}function Nu(e){return null==e?"":ho(e)}function Su(e,t){var n=dp(e);return null==t?n:Zn(n,t)}function ku(e,t){return E(e,Ei(t,3),dr)}function Pu(e,t){return E(e,Ei(t,3),hr)}function Mu(e,t){return null==e?e:mp(e,Ei(t,3),Vu)}function Iu(e,t){return null==e?e:yp(e,Ei(t,3),Vu)}function Au(e,t){return e&&dr(e,Ei(t,3))}function Ru(e,t){return e&&hr(e,Ei(t,3))}function Du(e){return null==e?[]:vr(e,Fu(e))}function Lu(e){return null==e?[]:vr(e,Vu(e))}function ju(e,t,n){var r=null==e?oe:mr(e,t);return r===oe?n:r}function Uu(e,t){return null!=e&&ki(e,t,_r)}function Bu(e,t){return null!=e&&ki(e,t,Cr)}function Fu(e){return qs(e)?In(e):Ur(e)}function Vu(e){return qs(e)?In(e,!0):Br(e)}function Ku(e,t){var n={};return t=Ei(t,3),dr(e,function(e,r,o){er(n,t(e,r,o),e)}),n}function Wu(e,t){var n={};return t=Ei(t,3),dr(e,function(e,r,o){er(n,r,t(e,r,o))}),n}function Hu(e,t){return zu(e,Is(Ei(t)))}function zu(e,t){if(null==e)return{};var n=v(bi(e),function(e){return[e]});return t=Ei(t),Gr(e,n,function(e,n){return t(e,n[0])})}function qu(e,t,n){t=wo(t,e);var r=-1,o=t.length;for(o||(o=1,e=oe);++rt){var r=e;e=t,t=r}if(n||e%1||t%1){var o=Gc();return qc(e+o*(t-e+kn("1e-"+((o+"").length-1))),t)}return Jr(e,t)}function ol(e){return Xf(Nu(e).toLowerCase())}function il(e){return(e=Nu(e))&&e.replace(Gt,qn).replace(mn,"")}function al(e,t,n){e=Nu(e),t=ho(t);var r=e.length;n=n===oe?r:nr(Eu(n),0,r);var o=n;return(n-=t.length)>=0&&e.slice(n,o)==t}function sl(e){return e=Nu(e),e&&wt.test(e)?e.replace(Et,$n):e}function ul(e){return e=Nu(e),e&&At.test(e)?e.replace(It,"\\$&"):e}function ll(e,t,n){e=Nu(e),t=Eu(t);var r=t?J(e):0;if(!t||r>=t)return e;var o=(t-r)/2;return ri(Bc(o),n)+e+ri(Uc(o),n)}function cl(e,t,n){e=Nu(e),t=Eu(t);var r=t?J(e):0;return t&&r>>0)?(e=Nu(e),e&&("string"==typeof t||null!=t&&!Ef(t))&&!(t=ho(t))&&W(e)?To(ee(e),0,n):e.split(t,n)):[]}function ml(e,t,n){return e=Nu(e),n=null==n?0:nr(Eu(n),0,e.length),t=ho(t),e.slice(n,n+t.length)==t}function yl(e,t,r){var o=n.templateSettings;r&&Li(e,t,r)&&(t=oe),e=Nu(e),t=kf({},t,o,pi);var i,a,s=kf({},t.imports,o.imports,pi),u=Fu(s),l=L(s,u),c=0,p=t.interpolate||Xt,f="__p += '",d=uc((t.escape||Xt).source+"|"+p.source+"|"+(p===Nt?Kt:Xt).source+"|"+(t.evaluate||Xt).source+"|$","g"),h="//# sourceURL="+("sourceURL"in t?t.sourceURL:"lodash.templateSources["+ ++En+"]")+"\n";e.replace(d,function(t,n,r,o,s,u){return r||(r=o),f+=e.slice(c,u).replace(Qt,V),n&&(i=!0,f+="' +\n__e("+n+") +\n'"),s&&(a=!0,f+="';\n"+s+";\n__p += '"),r&&(f+="' +\n((__t = ("+r+")) == null ? '' : __t) +\n'"),c=u+t.length,t}),f+="';\n";var v=t.variable;v||(f="with (obj) {\n"+f+"\n}\n"),f=(a?f.replace(gt,""):f).replace(bt,"$1").replace(_t,"$1;"),f="function("+(v||"obj")+") {\n"+(v?"":"obj || (obj = {});\n")+"var __t, __p = ''"+(i?", __e = _.escape":"")+(a?", __j = Array.prototype.join;\nfunction print() { __p += __j.call(arguments, '') }\n":";\n")+f+"return __p\n}";var m=Qf(function(){return ic(u,h+"return "+f).apply(oe,l)});if(m.source=f,Js(m))throw m;return m}function gl(e){return Nu(e).toLowerCase()}function bl(e){return Nu(e).toUpperCase()}function _l(e,t,n){if((e=Nu(e))&&(n||t===oe))return e.replace(Rt,"");if(!e||!(t=ho(t)))return e;var r=ee(e),o=ee(t);return To(r,U(r,o),B(r,o)+1).join("")}function Cl(e,t,n){if((e=Nu(e))&&(n||t===oe))return e.replace(Lt,"");if(!e||!(t=ho(t)))return e;var r=ee(e);return To(r,0,B(r,ee(t))+1).join("")}function El(e,t,n){if((e=Nu(e))&&(n||t===oe))return e.replace(Dt,"");if(!e||!(t=ho(t)))return e;var r=ee(e);return To(r,U(r,ee(t))).join("")}function xl(e,t){var n=Oe,r=Ne;if(ou(t)){var o="separator"in t?t.separator:o;n="length"in t?Eu(t.length):n,r="omission"in t?ho(t.omission):r}e=Nu(e);var i=e.length;if(W(e)){var a=ee(e);i=a.length}if(n>=i)return e;var s=n-J(r);if(s<1)return r;var u=a?To(a,0,s).join(""):e.slice(0,s);if(o===oe)return u+r;if(a&&(s+=u.length-s),Ef(o)){if(e.slice(s).search(o)){var l,c=u;for(o.global||(o=uc(o.source,Nu(Wt.exec(o))+"g")),o.lastIndex=0;l=o.exec(c);)var p=l.index;u=u.slice(0,p===oe?s:p)}}else if(e.indexOf(ho(o),s)!=s){var f=u.lastIndexOf(o);f>-1&&(u=u.slice(0,f))}return u+r}function wl(e){return e=Nu(e),e&&xt.test(e)?e.replace(Ct,Yn):e}function Tl(e,t,n){return e=Nu(e),t=n?oe:t,t===oe?H(e)?re(e):C(e):e.match(t)||[]}function Ol(e){var t=null==e?0:e.length,n=Ei();return e=t?v(e,function(e){if("function"!=typeof e[1])throw new cc(se);return[n(e[0]),e[1]]}):[],no(function(n){for(var r=-1;++rAe)return[];var n=Le,r=qc(e,Le);t=Ei(t),e-=Le;for(var o=A(r,t);++n1?e[t-1]:oe;return n="function"==typeof n?(e.pop(),n):oe,$a(e,n)}),Gp=yi(function(e){var t=e.length,n=t?e[0]:0,r=this.__wrapped__,i=function(t){return tr(t,e)};return!(t>1||this.__actions__.length)&&r instanceof _&&Di(n)?(r=r.slice(n,+n+(t?1:0)),r.__actions__.push({func:Za,args:[i],thisArg:oe}),new o(r,this.__chain__).thru(function(e){return t&&!e.length&&e.push(oe),e})):this.thru(i)}),Xp=Ko(function(e,t,n){mc.call(e,n)?++e[n]:er(e,n,1)}),Qp=Qo(pa),Zp=Qo(fa),Jp=Ko(function(e,t,n){mc.call(e,n)?e[n].push(t):er(e,n,[t])}),ef=no(function(e,t,n){var r=-1,o="function"==typeof t,i=qs(e)?nc(e.length):[];return hp(e,function(e){i[++r]=o?s(t,e,n):Tr(e,t,n)}),i}),tf=Ko(function(e,t,n){er(e,n,t)}),nf=Ko(function(e,t,n){e[n?0:1].push(t)},function(){return[[],[]]}),rf=no(function(e,t){if(null==e)return[];var n=t.length;return n>1&&Li(e,t[0],t[1])?t=[]:n>2&&Li(t[0],t[1],t[2])&&(t=[t[0]]),$r(e,fr(t,1),[])}),of=Lc||function(){return An.Date.now()},af=no(function(e,t,n){var r=me;if(n.length){var o=Y(n,Ci(af));r|=Ce}return ci(e,r,t,n,o)}),sf=no(function(e,t,n){var r=me|ye;if(n.length){var o=Y(n,Ci(sf));r|=Ce}return ci(t,r,e,n,o)}),uf=no(function(e,t){return ar(e,1,t)}),lf=no(function(e,t,n){return ar(e,wu(t)||0,n)});Ms.Cache=ln;var cf=_p(function(e,t){t=1==t.length&&yf(t[0])?v(t[0],D(Ei())):v(fr(t,1),D(Ei()));var n=t.length;return no(function(r){for(var o=-1,i=qc(r.length,n);++o=t}),mf=Or(function(){return arguments}())?Or:function(e){return iu(e)&&mc.call(e,"callee")&&!kc.call(e,"callee")},yf=nc.isArray,gf=Bn?D(Bn):Nr,bf=Vc||Vl,_f=Fn?D(Fn):Sr,Cf=Vn?D(Vn):Mr,Ef=Kn?D(Kn):Rr,xf=Wn?D(Wn):Dr,wf=Hn?D(Hn):Lr,Tf=ai(Fr),Of=ai(function(e,t){return e<=t}),Nf=Wo(function(e,t){if(Vi(t)||qs(t))return void Bo(t,Fu(t),e);for(var n in t)mc.call(t,n)&&zn(e,n,t[n])}),Sf=Wo(function(e,t){Bo(t,Vu(t),e)}),kf=Wo(function(e,t,n,r){Bo(t,Vu(t),e,r)}),Pf=Wo(function(e,t,n,r){Bo(t,Fu(t),e,r)}),Mf=yi(tr),If=no(function(e){return e.push(oe,pi),s(kf,oe,e)}),Af=no(function(e){return e.push(oe,fi),s(Uf,oe,e)}),Rf=ei(function(e,t,n){e[t]=n},Sl(Pl)),Df=ei(function(e,t,n){mc.call(e,t)?e[t].push(n):e[t]=[n]},Ei),Lf=no(Tr),jf=Wo(function(e,t,n){Hr(e,t,n)}),Uf=Wo(function(e,t,n,r){Hr(e,t,n,r)}),Bf=yi(function(e,t){var n={};if(null==e)return n;var r=!1;t=v(t,function(t){return t=wo(t,e),r||(r=t.length>1),t}),Bo(e,bi(e),n),r&&(n=rr(n,pe|fe|de,di));for(var o=t.length;o--;)mo(n,t[o]);return n}),Ff=yi(function(e,t){return null==e?{}:Yr(e,t)}),Vf=li(Fu),Kf=li(Vu),Wf=Yo(function(e,t,n){return t=t.toLowerCase(),e+(n?ol(t):t)}),Hf=Yo(function(e,t,n){return e+(n?"-":"")+t.toLowerCase()}),zf=Yo(function(e,t,n){return e+(n?" ":"")+t.toLowerCase()}),qf=$o("toLowerCase"),$f=Yo(function(e,t,n){return e+(n?"_":"")+t.toLowerCase()}),Yf=Yo(function(e,t,n){return e+(n?" ":"")+Xf(t)}),Gf=Yo(function(e,t,n){return e+(n?" ":"")+t.toUpperCase()}),Xf=$o("toUpperCase"),Qf=no(function(e,t){try{return s(e,oe,t)}catch(e){return Js(e)?e:new oc(e)}}),Zf=yi(function(e,t){return l(t,function(t){t=Ji(t),er(e,t,af(e[t],e))}),e}),Jf=Zo(),ed=Zo(!0),td=no(function(e,t){return function(n){return Tr(n,e,t)}}),nd=no(function(e,t){return function(n){return Tr(e,n,t)}}),rd=ni(v),od=ni(p),id=ni(b),ad=ii(),sd=ii(!0),ud=ti(function(e,t){return e+t},0),ld=ui("ceil"),cd=ti(function(e,t){return e/t},1),pd=ui("floor"),fd=ti(function(e,t){return e*t},1),dd=ui("round"),hd=ti(function(e,t){return e-t},0);return n.after=ws,n.ary=Ts,n.assign=Nf,n.assignIn=Sf,n.assignInWith=kf,n.assignWith=Pf,n.at=Mf,n.before=Os,n.bind=af,n.bindAll=Zf,n.bindKey=sf,n.castArray=Bs,n.chain=Xa,n.chunk=ra,n.compact=oa,n.concat=ia,n.cond=Ol,n.conforms=Nl,n.constant=Sl,n.countBy=Xp,n.create=Su,n.curry=Ns,n.curryRight=Ss,n.debounce=ks,n.defaults=If,n.defaultsDeep=Af,n.defer=uf,n.delay=lf,n.difference=Ip,n.differenceBy=Ap,n.differenceWith=Rp,n.drop=aa,n.dropRight=sa,n.dropRightWhile=ua,n.dropWhile=la,n.fill=ca,n.filter=ss,n.flatMap=us,n.flatMapDeep=ls,n.flatMapDepth=cs,n.flatten=da,n.flattenDeep=ha,n.flattenDepth=va,n.flip=Ps,n.flow=Jf,n.flowRight=ed,n.fromPairs=ma,n.functions=Du,n.functionsIn=Lu,n.groupBy=Jp,n.initial=ba,n.intersection=Dp,n.intersectionBy=Lp,n.intersectionWith=jp,n.invert=Rf,n.invertBy=Df,n.invokeMap=ef,n.iteratee=Ml,n.keyBy=tf,n.keys=Fu,n.keysIn=Vu,n.map=hs,n.mapKeys=Ku,n.mapValues=Wu,n.matches=Il,n.matchesProperty=Al,n.memoize=Ms,n.merge=jf,n.mergeWith=Uf,n.method=td,n.methodOf=nd,n.mixin=Rl,n.negate=Is,n.nthArg=jl,n.omit=Bf,n.omitBy=Hu,n.once=As,n.orderBy=vs,n.over=rd,n.overArgs=cf,n.overEvery=od,n.overSome=id,n.partial=pf,n.partialRight=ff,n.partition=nf,n.pick=Ff,n.pickBy=zu,n.property=Ul,n.propertyOf=Bl,n.pull=Up,n.pullAll=wa,n.pullAllBy=Ta,n.pullAllWith=Oa,n.pullAt=Bp,n.range=ad,n.rangeRight=sd,n.rearg=df,n.reject=gs,n.remove=Na,n.rest=Rs,n.reverse=Sa,n.sampleSize=_s,n.set=$u,n.setWith=Yu,n.shuffle=Cs,n.slice=ka,n.sortBy=rf,n.sortedUniq=La,n.sortedUniqBy=ja,n.split=vl,n.spread=Ds,n.tail=Ua,n.take=Ba,n.takeRight=Fa,n.takeRightWhile=Va,n.takeWhile=Ka,n.tap=Qa,n.throttle=Ls,n.thru=Za,n.toArray=_u,n.toPairs=Vf,n.toPairsIn=Kf,n.toPath=ql,n.toPlainObject=Tu,n.transform=Gu,n.unary=js,n.union=Fp,n.unionBy=Vp,n.unionWith=Kp,n.uniq=Wa,n.uniqBy=Ha,n.uniqWith=za,n.unset=Xu,n.unzip=qa,n.unzipWith=$a,n.update=Qu,n.updateWith=Zu,n.values=Ju,n.valuesIn=el,n.without=Wp,n.words=Tl,n.wrap=Us,n.xor=Hp,n.xorBy=zp,n.xorWith=qp,n.zip=$p,n.zipObject=Ya,n.zipObjectDeep=Ga,n.zipWith=Yp,n.entries=Vf,n.entriesIn=Kf,n.extend=Sf,n.extendWith=kf,Rl(n,n),n.add=ud,n.attempt=Qf,n.camelCase=Wf,n.capitalize=ol,n.ceil=ld,n.clamp=tl,n.clone=Fs,n.cloneDeep=Ks,n.cloneDeepWith=Ws,n.cloneWith=Vs,n.conformsTo=Hs,n.deburr=il,n.defaultTo=kl,n.divide=cd,n.endsWith=al,n.eq=zs,n.escape=sl,n.escapeRegExp=ul,n.every=as,n.find=Qp,n.findIndex=pa,n.findKey=ku,n.findLast=Zp,n.findLastIndex=fa,n.findLastKey=Pu,n.floor=pd,n.forEach=ps,n.forEachRight=fs,n.forIn=Mu,n.forInRight=Iu,n.forOwn=Au,n.forOwnRight=Ru,n.get=ju,n.gt=hf,n.gte=vf,n.has=Uu,n.hasIn=Bu,n.head=ya,n.identity=Pl,n.includes=ds,n.indexOf=ga,n.inRange=nl,n.invoke=Lf,n.isArguments=mf,n.isArray=yf,n.isArrayBuffer=gf,n.isArrayLike=qs,n.isArrayLikeObject=$s,n.isBoolean=Ys,n.isBuffer=bf,n.isDate=_f,n.isElement=Gs,n.isEmpty=Xs,n.isEqual=Qs,n.isEqualWith=Zs,n.isError=Js,n.isFinite=eu,n.isFunction=tu,n.isInteger=nu,n.isLength=ru,n.isMap=Cf,n.isMatch=au,n.isMatchWith=su,n.isNaN=uu,n.isNative=lu,n.isNil=pu,n.isNull=cu,n.isNumber=fu,n.isObject=ou,n.isObjectLike=iu,n.isPlainObject=du,n.isRegExp=Ef,n.isSafeInteger=hu,n.isSet=xf,n.isString=vu,n.isSymbol=mu,n.isTypedArray=wf,n.isUndefined=yu,n.isWeakMap=gu,n.isWeakSet=bu,n.join=_a,n.kebabCase=Hf,n.last=Ca,n.lastIndexOf=Ea,n.lowerCase=zf,n.lowerFirst=qf,n.lt=Tf,n.lte=Of,n.max=Yl,n.maxBy=Gl,n.mean=Xl,n.meanBy=Ql,n.min=Zl,n.minBy=Jl,n.stubArray=Fl,n.stubFalse=Vl,n.stubObject=Kl,n.stubString=Wl,n.stubTrue=Hl,n.multiply=fd,n.nth=xa,n.noConflict=Dl,n.noop=Ll,n.now=of,n.pad=ll,n.padEnd=cl,n.padStart=pl,n.parseInt=fl,n.random=rl,n.reduce=ms,n.reduceRight=ys,n.repeat=dl,n.replace=hl,n.result=qu,n.round=dd,n.runInContext=e,n.sample=bs,n.size=Es,n.snakeCase=$f,n.some=xs,n.sortedIndex=Pa,n.sortedIndexBy=Ma,n.sortedIndexOf=Ia,n.sortedLastIndex=Aa,n.sortedLastIndexBy=Ra,n.sortedLastIndexOf=Da,n.startCase=Yf,n.startsWith=ml,n.subtract=hd,n.sum=ec,n.sumBy=tc,n.template=yl,n.times=zl,n.toFinite=Cu,n.toInteger=Eu,n.toLength=xu,n.toLower=gl,n.toNumber=wu,n.toSafeInteger=Ou,n.toString=Nu,n.toUpper=bl,n.trim=_l,n.trimEnd=Cl,n.trimStart=El,n.truncate=xl,n.unescape=wl,n.uniqueId=$l,n.upperCase=Gf,n.upperFirst=Xf,n.each=ps,n.eachRight=fs,n.first=ya,Rl(n,function(){var e={};return dr(n,function(t,r){mc.call(n.prototype,r)||(e[r]=t)}),e}(),{chain:!1}),n.VERSION="4.17.4",l(["bind","bindKey","curry","curryRight","partial","partialRight"],function(e){n[e].placeholder=n}),l(["drop","take"],function(e,t){_.prototype[e]=function(n){n=n===oe?1:zc(Eu(n),0);var r=this.__filtered__&&!t?new _(this):this.clone();return r.__filtered__?r.__takeCount__=qc(n,r.__takeCount__):r.__views__.push({size:qc(n,Le),type:e+(r.__dir__<0?"Right":"")}),r},_.prototype[e+"Right"]=function(t){return this.reverse()[e](t).reverse()}}),l(["filter","map","takeWhile"],function(e,t){var n=t+1,r=n==Pe||3==n;_.prototype[e]=function(e){var t=this.clone();return t.__iteratees__.push({iteratee:Ei(e,3),type:n}),t.__filtered__=t.__filtered__||r,t}}),l(["head","last"],function(e,t){var n="take"+(t?"Right":"");_.prototype[e]=function(){return this[n](1).value()[0]}}),l(["initial","tail"],function(e,t){var n="drop"+(t?"":"Right");_.prototype[e]=function(){return this.__filtered__?new _(this):this[n](1)}}),_.prototype.compact=function(){return this.filter(Pl)},_.prototype.find=function(e){return this.filter(e).head()},_.prototype.findLast=function(e){return this.reverse().find(e)},_.prototype.invokeMap=no(function(e,t){return"function"==typeof e?new _(this):this.map(function(n){return Tr(n,e,t)})}),_.prototype.reject=function(e){return this.filter(Is(Ei(e)))},_.prototype.slice=function(e,t){e=Eu(e);var n=this;return n.__filtered__&&(e>0||t<0)?new _(n):(e<0?n=n.takeRight(-e):e&&(n=n.drop(e)),t!==oe&&(t=Eu(t),n=t<0?n.dropRight(-t):n.take(t-e)),n)},_.prototype.takeRightWhile=function(e){return this.reverse().takeWhile(e).reverse()},_.prototype.toArray=function(){return this.take(Le)},dr(_.prototype,function(e,t){var r=/^(?:filter|find|map|reject)|While$/.test(t),i=/^(?:head|last)$/.test(t),a=n[i?"take"+("last"==t?"Right":""):t],s=i||/^find/.test(t);a&&(n.prototype[t]=function(){var t=this.__wrapped__,u=i?[1]:arguments,l=t instanceof _,c=u[0],p=l||yf(t),f=function(e){var t=a.apply(n,m([e],u));return i&&d?t[0]:t};p&&r&&"function"==typeof c&&1!=c.length&&(l=p=!1);var d=this.__chain__,h=!!this.__actions__.length,v=s&&!d,y=l&&!h;if(!s&&p){t=y?t:new _(this);var g=e.apply(t,u);return g.__actions__.push({func:Za,args:[f],thisArg:oe}),new o(g,d)}return v&&y?e.apply(this,u):(g=this.thru(f),v?i?g.value()[0]:g.value():g)})}),l(["pop","push","shift","sort","splice","unshift"],function(e){var t=pc[e],r=/^(?:push|sort|unshift)$/.test(e)?"tap":"thru",o=/^(?:pop|shift)$/.test(e);n.prototype[e]=function(){var e=arguments;if(o&&!this.__chain__){var n=this.value();return t.apply(yf(n)?n:[],e)}return this[r](function(n){return t.apply(yf(n)?n:[],e)})}}),dr(_.prototype,function(e,t){var r=n[t];if(r){var o=r.name+"";(op[o]||(op[o]=[])).push({name:t,func:r})}}),op[Jo(oe,ye).name]=[{name:"wrapper",func:oe}],_.prototype.clone=k,_.prototype.reverse=Q,_.prototype.value=te,n.prototype.at=Gp,n.prototype.chain=Ja,n.prototype.commit=es,n.prototype.next=ts,n.prototype.plant=rs,n.prototype.reverse=os,n.prototype.toJSON=n.prototype.valueOf=n.prototype.value=is,n.prototype.first=n.prototype.head,Ic&&(n.prototype[Ic]=ns),n}();An._=Gn,(o=function(){return Gn}.call(t,n,t,r))!==oe&&(r.exports=o)}).call(this)}).call(t,n(413),n(414)(e))},function(e,t,n){e.exports={default:n(197),__esModule:!0}},function(e,t,n){e.exports={default:n(199),__esModule:!0}},function(e,t,n){e.exports=!n(77)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},function(e,t,n){var r=n(74);e.exports=Object("z").propertyIsEnumerable(0)?Object:function(e){return"String"==r(e)?e.split(""):Object(e)}},function(e,t){e.exports=function(e){return"object"==typeof e?null!==e:"function"==typeof e}},function(e,t,n){"use strict";var r=n(114),o=n(31),i=n(116),a=n(79),s=n(78),u=n(43),l=n(212),c=n(81),p=n(20).getProto,f=n(26)("iterator"),d=!([].keys&&"next"in[].keys()),h=function(){return this};e.exports=function(e,t,n,v,m,y,g){l(n,t,v);var b,_,C=function(e){if(!d&&e in T)return T[e];switch(e){case"keys":case"values":return function(){return new n(this,e)}}return function(){return new n(this,e)}},E=t+" Iterator",x="values"==m,w=!1,T=e.prototype,O=T[f]||T["@@iterator"]||m&&T[m],N=O||C(m);if(O){var S=p(N.call(new e));c(S,E,!0),!r&&s(T,"@@iterator")&&a(S,f,h),x&&"values"!==O.name&&(w=!0,N=function(){return O.call(this)})}if(r&&!g||!d&&!w&&T[f]||a(T,f,N),u[t]=N,u[E]=h,m)if(b={values:x?N:C("values"),keys:y?N:C("keys"),entries:x?C("entries"):N},g)for(_ in b)_ in T||i(T,_,b[_]);else o(o.P+o.F*(d||w),t,b);return b}},function(e,t){e.exports=!0},function(e,t,n){var r=n(20),o=n(44),i=r.isEnum;e.exports=function(e){return function(t){for(var n,a=o(t),s=r.getKeys(a),u=s.length,l=0,c=[];u>l;)i.call(a,n=s[l++])&&c.push(e?[n,a[n]]:a[n]);return c}}},function(e,t,n){e.exports=n(79)},function(e,t,n){var r=n(52),o=r["__core-js_shared__"]||(r["__core-js_shared__"]={});e.exports=function(e){return o[e]||(o[e]={})}},function(e,t){var n=Math.ceil,r=Math.floor;e.exports=function(e){return isNaN(e=+e)?0:(e>0?r:n)(e)}},function(e,t,n){var r=n(76);e.exports=function(e){return Object(r(e))}},function(e,t){var n=0,r=Math.random();e.exports=function(e){return"Symbol(".concat(void 0===e?"":e,")_",(++n+r).toString(36))}},function(e,t,n){"use strict";var r=n(218)(!0);n(113)(String,"String",function(e){this._t=String(e),this._i=0},function(){var e,t=this._t,n=this._i;return n>=t.length?{value:void 0,done:!0}:(e=r(t,n),this._i+=e.length,{value:e,done:!1})})},function(e,t,n){"use strict";function r(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:(0,i.default)();try{return e.activeElement}catch(e){}}Object.defineProperty(t,"__esModule",{value:!0}),t.default=r;var o=n(35),i=function(e){return e&&e.__esModule?e:{default:e}}(o);e.exports=t.default},function(e,t,n){"use strict";function r(e,t){return e.classList?!!t&&e.classList.contains(t):-1!==(" "+(e.className.baseVal||e.className)+" ").indexOf(" "+t+" ")}Object.defineProperty(t,"__esModule",{value:!0}),t.default=r,e.exports=t.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e){var t=(0,c.default)(e),n=(0,u.default)(t),r=t&&t.documentElement,o={top:0,left:0,height:0,width:0};if(t)return(0,a.default)(r,e)?(void 0!==e.getBoundingClientRect&&(o=e.getBoundingClientRect()),o={top:o.top+(n.pageYOffset||r.scrollTop)-(r.clientTop||0),left:o.left+(n.pageXOffset||r.scrollLeft)-(r.clientLeft||0),width:(null==o.width?e.offsetWidth:o.width)||0,height:(null==o.height?e.offsetHeight:o.height)||0}):o}Object.defineProperty(t,"__esModule",{value:!0}),t.default=o;var i=n(36),a=r(i),s=n(54),u=r(s),l=n(35),c=r(l);e.exports=t.default},function(e,t,n){"use strict";function r(e,t){var n=(0,i.default)(e);if(void 0===t)return n?"pageYOffset"in n?n.pageYOffset:n.document.documentElement.scrollTop:e.scrollTop;n?n.scrollTo("pageXOffset"in n?n.pageXOffset:n.document.documentElement.scrollLeft,t):e.scrollTop=t}Object.defineProperty(t,"__esModule",{value:!0}),t.default=r;var o=n(54),i=function(e){return e&&e.__esModule?e:{default:e}}(o);e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.animationEnd=t.animationDelay=t.animationTiming=t.animationDuration=t.animationName=t.transitionEnd=t.transitionDuration=t.transitionDelay=t.transitionTiming=t.transitionProperty=t.transform=void 0;var r=n(30),o=function(e){return e&&e.__esModule?e:{default:e}}(r),i="transform",a=void 0,s=void 0,u=void 0,l=void 0,c=void 0,p=void 0,f=void 0,d=void 0,h=void 0,v=void 0,m=void 0;if(o.default){var y=function(){for(var e=document.createElement("div").style,t={O:function(e){return"o"+e.toLowerCase()},Moz:function(e){return e.toLowerCase()},Webkit:function(e){return"webkit"+e},ms:function(e){return"MS"+e}},n=Object.keys(t),r=void 0,o=void 0,i="",a=0;a1)for(var n=1;n=c?l=0:l<0&&(l=c-1),r[l]},t.prototype.getTabProps=function(e,t,r,o,i){var a=this;if(!t&&"tablist"!==r)return null;var s=e.props,u=s.id,l=s["aria-controls"],c=s.eventKey,p=s.role,f=s.onKeyDown,d=s.tabIndex;return t&&(u=t.getTabId(c),l=t.getPaneId(c)),"tablist"===r&&(p=p||"tab",f=n.i(N.a)(function(e){return a.handleTabKeyDown(i,e)},f),d=o?d:-1),{id:u,role:p,onKeyDown:f,"aria-controls":l,tabIndex:d}},t.prototype.handleTabKeyDown=function(e,t){var n=void 0;switch(t.keyCode){case m.a.codes.left:case m.a.codes.up:n=this.getNextActiveChild(-1);break;case m.a.codes.right:case m.a.codes.down:n=this.getNextActiveChild(1);break;default:return}t.preventDefault(),e&&n&&null!=n.props.eventKey&&e(n.props.eventKey),this._needsRefocus=!0},t.prototype.isActive=function(e,t,n){var r=e.props;return!!(r.active||null!=t&&r.eventKey===t||n&&r.href===n)||r.active},t.prototype.render=function(){var e,t=this,r=this.props,i=r.stacked,s=r.justified,u=r.onSelect,l=r.role,c=r.navbar,p=r.pullRight,f=r.pullLeft,d=r.className,v=r.children,m=a()(r,["stacked","justified","onSelect","role","navbar","pullRight","pullLeft","className","children"]),b=this.context.$bs_tabContainer,_=l||(b?"tablist":null),C=this.getActiveProps(),E=C.activeKey,x=C.activeHref;delete m.activeKey,delete m.activeHref;var w=n.i(O.splitBsProps)(m),T=w[0],k=w[1],P=o()({},n.i(O.getClassSet)(T),(e={},e[n.i(O.prefix)(T,"stacked")]=i,e[n.i(O.prefix)(T,"justified")]=s,e)),M=null!=c?c:this.context.$bs_navbar,I=void 0,A=void 0;if(M){var R=this.context.$bs_navbar||{bsClass:"navbar"};P[n.i(O.prefix)(R,"nav")]=!0,A=n.i(O.prefix)(R,"right"),I=n.i(O.prefix)(R,"left")}else A="pull-right",I="pull-left";return P[A]=p,P[I]=f,g.a.createElement("ul",o()({},k,{role:_,className:h()(d,P)}),S.a.map(v,function(e){var r=t.isActive(e,E,x),i=n.i(N.a)(e.props.onSelect,u,M&&M.onSelect,b&&b.onSelect);return n.i(y.cloneElement)(e,o()({},t.getTabProps(e,b,_,r,i),{active:r,activeKey:E,activeHref:x,onSelect:i}))}))},t}(g.a.Component);I.propTypes=k,I.defaultProps=P,I.contextTypes=M,t.a=n.i(O.bsClass)("nav",n.i(O.bsStyles)(["tabs","pills"],I))},function(e,t,n){"use strict";var r=n(4),o=n.n(r),i=n(5),a=n.n(i),s=n(1),u=n.n(s),l=n(3),c=n.n(l),p=n(2),f=n.n(p),d=n(6),h=n.n(d),v=n(0),m=n.n(v),y=n(7),g=n.n(y),b=n(24),_=n(15),C={active:g.a.bool,disabled:g.a.bool,role:g.a.string,href:g.a.string,onClick:g.a.func,onSelect:g.a.func,eventKey:g.a.any},E={active:!1,disabled:!1},x=function(e){function t(n,r){u()(this,t);var o=c()(this,e.call(this,n,r));return o.handleClick=o.handleClick.bind(o),o}return f()(t,e),t.prototype.handleClick=function(e){this.props.onSelect&&(e.preventDefault(),this.props.disabled||this.props.onSelect(this.props.eventKey,e))},t.prototype.render=function(){var e=this.props,t=e.active,r=e.disabled,i=e.onClick,s=e.className,u=e.style,l=a()(e,["active","disabled","onClick","className","style"]);return delete l.onSelect,delete l.eventKey,delete l.activeKey,delete l.activeHref,l.role?"tab"===l.role&&(l["aria-selected"]=t):"#"===l.href&&(l.role="button"),m.a.createElement("li",{role:"presentation",className:h()(s,{active:t,disabled:r}),style:u},m.a.createElement(b.a,o()({},l,{disabled:r,onClick:n.i(_.a)(i,this.handleClick)})))},t}(m.a.Component);x.propTypes=C,x.defaultProps=E,t.a=x},function(e,t,n){"use strict";var r=n(4),o=n.n(r),i=n(5),a=n.n(i),s=n(1),u=n.n(s),l=n(3),c=n.n(l),p=n(2),f=n.n(p),d=n(6),h=n.n(d),v=n(0),m=n.n(v),y=n(7),g=n.n(y),b=n(8),_={$bs_navbar:g.a.shape({bsClass:g.a.string})},C=function(e){function t(){return u()(this,t),c()(this,e.apply(this,arguments))}return f()(t,e),t.prototype.render=function(){var e=this.props,t=e.className,r=e.children,i=a()(e,["className","children"]),s=this.context.$bs_navbar||{bsClass:"navbar"},u=n.i(b.prefix)(s,"brand");return m.a.isValidElement(r)?m.a.cloneElement(r,{className:h()(r.props.className,t,u)}):m.a.createElement("span",o()({},i,{className:h()(t,u)}),r)},t}(m.a.Component);C.contextTypes=_,t.a=C},function(e,t,n){"use strict";var r=n(5),o=n.n(r),i=n(1),a=n.n(i),s=n(3),u=n.n(s),l=n(2),c=n.n(l),p=n(4),f=n.n(p),d=n(6),h=n.n(d),v=n(0),m=n.n(v),y=n(7),g=n.n(y),b=n(393),_=n.n(b),C=n(12),E=n.n(C),x=n(63),w=f()({},_.a.propTypes,{show:g.a.bool,rootClose:g.a.bool,onHide:g.a.func,animation:g.a.oneOfType([g.a.bool,E.a]),onEnter:g.a.func,onEntering:g.a.func,onEntered:g.a.func,onExit:g.a.func,onExiting:g.a.func,onExited:g.a.func,placement:g.a.oneOf(["top","right","bottom","left"])}),T={animation:x.a,rootClose:!1,show:!1,placement:"right"},O=function(e){function t(){return a()(this,t),u()(this,e.apply(this,arguments))}return c()(t,e),t.prototype.render=function(){var e=this.props,t=e.animation,r=e.children,i=o()(e,["animation","children"]),a=!0===t?x.a:t||null,s=void 0;return s=a?r:n.i(v.cloneElement)(r,{className:h()(r.props.className,"in")}),m.a.createElement(_.a,f()({},i,{transition:a}),s)},t}(m.a.Component);O.propTypes=w,O.defaultProps=T,t.a=O},function(e,t,n){"use strict";var r=n(4),o=n.n(r),i=n(5),a=n.n(i),s=n(1),u=n.n(s),l=n(3),c=n.n(l),p=n(2),f=n.n(p),d=n(6),h=n.n(d),v=n(0),m=n.n(v),y=n(7),g=n.n(y),b=n(24),_=n(15),C={disabled:g.a.bool,previous:g.a.bool,next:g.a.bool,onClick:g.a.func,onSelect:g.a.func,eventKey:g.a.any},E={disabled:!1,previous:!1,next:!1},x=function(e){function t(n,r){u()(this,t);var o=c()(this,e.call(this,n,r));return o.handleSelect=o.handleSelect.bind(o),o}return f()(t,e),t.prototype.handleSelect=function(e){var t=this.props,n=t.disabled,r=t.onSelect,o=t.eventKey;(r||n)&&e.preventDefault(),n||r&&r(o,e)},t.prototype.render=function(){var e=this.props,t=e.disabled,r=e.previous,i=e.next,s=e.onClick,u=e.className,l=e.style,c=a()(e,["disabled","previous","next","onClick","className","style"]);return delete c.onSelect,delete c.eventKey,m.a.createElement("li",{className:h()(u,{disabled:t,previous:r,next:i}),style:l},m.a.createElement(b.a,o()({},c,{disabled:t,onClick:n.i(_.a)(s,this.handleSelect)})))},t}(m.a.Component);x.propTypes=C,x.defaultProps=E,t.a=x},function(e,t,n){"use strict";var r=n(4),o=n.n(r),i=n(5),a=n.n(i),s=n(1),u=n.n(s),l=n(3),c=n.n(l),p=n(2),f=n.n(p),d=n(6),h=n.n(d),v=n(0),m=n.n(v),y=n(7),g=n.n(y),b=n(12),_=n.n(b),C=n(24),E=n(15),x={componentClass:_.a,className:g.a.string,eventKey:g.a.any,onSelect:g.a.func,disabled:g.a.bool,active:g.a.bool,onClick:g.a.func},w={componentClass:C.a,active:!1,disabled:!1},T=function(e){function t(n,r){u()(this,t);var o=c()(this,e.call(this,n,r));return o.handleClick=o.handleClick.bind(o),o}return f()(t,e),t.prototype.handleClick=function(e){var t=this.props,n=t.disabled,r=t.onSelect,o=t.eventKey;n||r&&r(o,e)},t.prototype.render=function(){var e=this.props,t=e.componentClass,r=e.active,i=e.disabled,s=e.onClick,u=e.className,l=e.style,c=a()(e,["componentClass","active","disabled","onClick","className","style"]);return t===C.a&&delete c.eventKey,delete c.onSelect,m.a.createElement("li",{className:h()(u,{active:r,disabled:i}),style:l},m.a.createElement(t,o()({},c,{disabled:i,onClick:n.i(E.a)(s,this.handleClick)})))},t}(m.a.Component);T.propTypes=x,T.defaultProps=w,t.a=T},function(e,t,n){"use strict";var r=n(4),o=n.n(r),i=n(108),a=n.n(i),s=n(5),u=n.n(s),l=n(1),c=n.n(l),p=n(3),f=n.n(p),d=n(2),h=n.n(d),v=n(6),m=n.n(v),y=n(0),g=n.n(y),b=n(7),_=n.n(b),C=n(8),E=n(15),x=n(19),w={accordion:_.a.bool,activeKey:_.a.any,defaultActiveKey:_.a.any,onSelect:_.a.func,role:_.a.string},T={accordion:!1},O=function(e){function t(n,r){c()(this,t);var o=f()(this,e.call(this,n,r));return o.handleSelect=o.handleSelect.bind(o),o.state={activeKey:n.defaultActiveKey},o}return h()(t,e),t.prototype.handleSelect=function(e,t){t.preventDefault(),this.props.onSelect&&this.props.onSelect(e,t),this.state.activeKey===e&&(e=null),this.setState({activeKey:e})},t.prototype.render=function(){var e=this,t=this.props,r=t.accordion,i=t.activeKey,s=t.className,l=t.children,c=u()(t,["accordion","activeKey","className","children"]),p=n.i(C.splitBsPropsAndOmit)(c,["defaultActiveKey","onSelect"]),f=p[0],d=p[1],h=void 0;r&&(h=null!=i?i:this.state.activeKey,d.role=d.role||"tablist");var v=n.i(C.getClassSet)(f);return g.a.createElement("div",o()({},d,{className:m()(s,v)}),x.a.map(l,function(t){var o={bsStyle:t.props.bsStyle||f.bsStyle};return r&&a()(o,{headerRole:"tab",panelRole:"tabpanel",collapsible:!0,expanded:t.props.eventKey===h,onSelect:n.i(E.a)(e.handleSelect,t.props.onSelect)}),n.i(y.cloneElement)(t,o)}))},t}(g.a.Component);O.propTypes=w,O.defaultProps=T,t.a=n.i(C.bsClass)("panel-group",O)},function(e,t,n){"use strict";var r=n(4),o=n.n(r),i=n(5),a=n.n(i),s=n(1),u=n.n(s),l=n(3),c=n.n(l),p=n(2),f=n.n(p),d=n(6),h=n.n(d),v=n(0),m=n.n(v),y=n(7),g=n.n(y),b=n(12),_=n.n(b),C=n(22),E=(n.n(C),n(8)),x=n(15),w=n(63),T={eventKey:g.a.any,animation:g.a.oneOfType([g.a.bool,_.a]),id:g.a.string,"aria-labelledby":g.a.string,bsClass:g.a.string,onEnter:g.a.func,onEntering:g.a.func,onEntered:g.a.func,onExit:g.a.func,onExiting:g.a.func,onExited:g.a.func,mountOnEnter:g.a.bool,unmountOnExit:g.a.bool},O={$bs_tabContainer:g.a.shape({getTabId:g.a.func,getPaneId:g.a.func}),$bs_tabContent:g.a.shape({bsClass:g.a.string,animation:g.a.oneOfType([g.a.bool,_.a]),activeKey:g.a.any,mountOnEnter:g.a.bool,unmountOnExit:g.a.bool,onPaneEnter:g.a.func.isRequired,onPaneExited:g.a.func.isRequired,exiting:g.a.bool.isRequired})},N={$bs_tabContainer:g.a.oneOf([null])},S=function(e){function t(n,r){u()(this,t);var o=c()(this,e.call(this,n,r));return o.handleEnter=o.handleEnter.bind(o),o.handleExited=o.handleExited.bind(o),o.in=!1,o}return f()(t,e),t.prototype.getChildContext=function(){return{$bs_tabContainer:null}},t.prototype.componentDidMount=function(){this.shouldBeIn()&&this.handleEnter()},t.prototype.componentDidUpdate=function(){this.in?this.shouldBeIn()||this.handleExited():this.shouldBeIn()&&this.handleEnter()},t.prototype.componentWillUnmount=function(){this.in&&this.handleExited()},t.prototype.getAnimation=function(){if(null!=this.props.animation)return this.props.animation;var e=this.context.$bs_tabContent;return e&&e.animation},t.prototype.handleEnter=function(){var e=this.context.$bs_tabContent;e&&(this.in=e.onPaneEnter(this,this.props.eventKey))},t.prototype.handleExited=function(){var e=this.context.$bs_tabContent;e&&(e.onPaneExited(this),this.in=!1)},t.prototype.isActive=function(){var e=this.context.$bs_tabContent,t=e&&e.activeKey;return this.props.eventKey===t},t.prototype.shouldBeIn=function(){return this.getAnimation()&&this.isActive()},t.prototype.render=function(){var e=this.props,t=e.eventKey,r=e.className,i=e.onEnter,s=e.onEntering,u=e.onEntered,l=e.onExit,c=e.onExiting,p=e.onExited,f=e.mountOnEnter,d=e.unmountOnExit,v=a()(e,["eventKey","className","onEnter","onEntering","onEntered","onExit","onExiting","onExited","mountOnEnter","unmountOnExit"]),y=this.context,g=y.$bs_tabContent,b=y.$bs_tabContainer,_=n.i(E.splitBsPropsAndOmit)(v,["animation"]),C=_[0],T=_[1],O=this.isActive(),N=this.getAnimation(),S=null!=f?f:g&&g.mountOnEnter,k=null!=d?d:g&&g.unmountOnExit;if(!O&&!N&&k)return null;var P=!0===N?w.a:N||null;g&&(C.bsClass=n.i(E.prefix)(g,"pane"));var M=o()({},n.i(E.getClassSet)(C),{active:O});b&&(T.id=b.getPaneId(t),T["aria-labelledby"]=b.getTabId(t));var I=m.a.createElement("div",o()({},T,{role:"tabpanel","aria-hidden":!O,className:h()(r,M)}));if(P){var A=g&&g.exiting;return m.a.createElement(P,{in:O&&!A,onEnter:n.i(x.a)(this.handleEnter,i),onEntering:s,onEntered:u,onExit:l,onExiting:c,onExited:n.i(x.a)(this.handleExited,p),mountOnEnter:S,unmountOnExit:k},I)}return I},t}(m.a.Component);S.propTypes=T,S.contextTypes=O,S.childContextTypes=N,t.a=n.i(E.bsClass)("tab-pane",S)},function(e,t,n){"use strict";var r=n(4),o=n.n(r),i=n(5),a=n.n(i),s=n(1),u=n.n(s),l=n(3),c=n.n(l),p=n(2),f=n.n(p),d=n(7),h=n.n(d),v=n(0),m=n.n(v),y=n(45),g={type:h.a.oneOf(["checkbox","radio"]),name:h.a.string,checked:h.a.bool,disabled:h.a.bool,onChange:h.a.func,value:h.a.any.isRequired},b=function(e){function t(){return u()(this,t),c()(this,e.apply(this,arguments))}return f()(t,e),t.prototype.render=function(){var e=this.props,t=e.children,n=e.name,r=e.checked,i=e.type,s=e.onChange,u=e.value,l=a()(e,["children","name","checked","type","onChange","value"]),c=l.disabled;return m.a.createElement(y.a,o()({},l,{active:!!r,componentClass:"label"}),m.a.createElement("input",{name:n,type:i,autoComplete:"off",value:u,checked:!!r,disabled:!!c,onChange:s}),t)},t}(m.a.Component);b.propTypes=g,t.a=b},function(e,t,n){"use strict";function r(e){return""+e.charAt(0).toUpperCase()+e.slice(1)}t.a=r},function(e,t,n){"use strict";function r(e,t){return e+t.charAt(0).toUpperCase()+t.substring(1)}var o={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},i=["Webkit","ms","Moz","O"];Object.keys(o).forEach(function(e){i.forEach(function(t){o[r(t,e)]=o[e]})});var a={background:{backgroundAttachment:!0,backgroundColor:!0,backgroundImage:!0,backgroundPositionX:!0,backgroundPositionY:!0,backgroundRepeat:!0},backgroundPosition:{backgroundPositionX:!0,backgroundPositionY:!0},border:{borderWidth:!0,borderStyle:!0,borderColor:!0},borderBottom:{borderBottomWidth:!0,borderBottomStyle:!0,borderBottomColor:!0},borderLeft:{borderLeftWidth:!0,borderLeftStyle:!0,borderLeftColor:!0},borderRight:{borderRightWidth:!0,borderRightStyle:!0,borderRightColor:!0},borderTop:{borderTopWidth:!0,borderTopStyle:!0,borderTopColor:!0},font:{fontStyle:!0,fontVariant:!0,fontWeight:!0,fontSize:!0,lineHeight:!0,fontFamily:!0},outline:{outlineWidth:!0,outlineStyle:!0,outlineColor:!0}},s={isUnitlessNumber:o,shorthandPropertyExpansions:a};e.exports=s},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var o=n(11),i=n(32),a=(n(9),function(){function e(t){r(this,e),this._callbacks=null,this._contexts=null,this._arg=t}return e.prototype.enqueue=function(e,t){this._callbacks=this._callbacks||[],this._callbacks.push(e),this._contexts=this._contexts||[],this._contexts.push(t)},e.prototype.notifyAll=function(){var e=this._callbacks,t=this._contexts,n=this._arg;if(e&&t){e.length!==t.length&&o("24"),this._callbacks=null,this._contexts=null;for(var r=0;r.":"function"==typeof t?" Instead of passing a class like Foo, pass React.createElement(Foo) or .":null!=t&&void 0!==t.props?" This may be caused by unintentionally loading two independent copies of React.":"");var a,s=m.createElement(U,{child:t});if(e){var u=E.get(e);a=u._processChildContext(u._context)}else a=N;var c=f(n);if(c){var p=c._currentElement,h=p.props.child;if(P(h,t)){var v=c._renderedComponent.getPublicInstance(),y=r&&function(){r.call(v)};return B._updateRootComponent(c,s,a,n,y),v}B.unmountComponentAtNode(n)}var g=o(n),b=g&&!!i(g),_=l(n),C=b&&!c&&!_,x=B._renderNewRootComponent(s,n,C,a)._renderedComponent.getPublicInstance();return r&&r.call(x),x},render:function(e,t,n){return B._renderSubtreeIntoContainer(null,e,t,n)},unmountComponentAtNode:function(e){c(e)||d("40");var t=f(e);if(!t){l(e),1===e.nodeType&&e.hasAttribute(I);return!1}return delete L[t._instance.rootID],O.batchedUpdates(u,t,e,!1),!0},_mountImageIntoNode:function(e,t,n,i,a){if(c(t)||d("41"),i){var s=o(t);if(x.canReuseMarkup(e,s))return void g.precacheNode(n,s);var u=s.getAttribute(x.CHECKSUM_ATTR_NAME);s.removeAttribute(x.CHECKSUM_ATTR_NAME);var l=s.outerHTML;s.setAttribute(x.CHECKSUM_ATTR_NAME,u);var p=e,f=r(p,l),v=" (client) "+p.substring(f-20,f+20)+"\n (server) "+l.substring(f-20,f+20);t.nodeType===R&&d("42",v)}if(t.nodeType===R&&d("43"),a.useCreateElement){for(;t.lastChild;)t.removeChild(t.lastChild);h.insertTreeBefore(t,e,null)}else k(t,e),g.precacheNode(n,t.firstChild)}};e.exports=B},function(e,t,n){"use strict";var r=n(11),o=n(41),i=(n(9),{HOST:0,COMPOSITE:1,EMPTY:2,getType:function(e){return null===e||!1===e?i.EMPTY:o.isValidElement(e)?"function"==typeof e.type?i.COMPOSITE:i.HOST:void r("26",e)}});e.exports=i},function(e,t,n){"use strict";var r={currentScrollLeft:0,currentScrollTop:0,refreshScrollValues:function(e){r.currentScrollLeft=e.x,r.currentScrollTop=e.y}};e.exports=r},function(e,t,n){"use strict";function r(e,t){return null==t&&o("30"),null==e?t:Array.isArray(e)?Array.isArray(t)?(e.push.apply(e,t),e):(e.push(t),e):Array.isArray(t)?[e].concat(t):[e,t]}var o=n(11);n(9);e.exports=r},function(e,t,n){"use strict";function r(e,t,n){Array.isArray(e)?e.forEach(t,n):e&&t.call(n,e)}e.exports=r},function(e,t,n){"use strict";function r(e){for(var t;(t=e._renderedNodeType)===o.COMPOSITE;)e=e._renderedComponent;return t===o.HOST?e._renderedComponent:t===o.EMPTY?null:void 0}var o=n(164);e.exports=r},function(e,t,n){"use strict";function r(){return!i&&o.canUseDOM&&(i="textContent"in document.documentElement?"textContent":"innerText"),i}var o=n(18),i=null;e.exports=r},function(e,t,n){"use strict";function r(e){var t=e.type,n=e.nodeName;return n&&"input"===n.toLowerCase()&&("checkbox"===t||"radio"===t)}function o(e){return e._wrapperState.valueTracker}function i(e,t){e._wrapperState.valueTracker=t}function a(e){e._wrapperState.valueTracker=null}function s(e){var t;return e&&(t=r(e)?""+e.checked:e.value),t}var u=n(14),l={_getTrackerFromNode:function(e){return o(u.getInstanceFromNode(e))},track:function(e){if(!o(e)){var t=u.getNodeFromInstance(e),n=r(t)?"checked":"value",s=Object.getOwnPropertyDescriptor(t.constructor.prototype,n),l=""+t[n];t.hasOwnProperty(n)||"function"!=typeof s.get||"function"!=typeof s.set||(Object.defineProperty(t,n,{enumerable:s.enumerable,configurable:!0,get:function(){return s.get.call(this)},set:function(e){l=""+e,s.set.call(this,e)}}),i(e,{getValue:function(){return l},setValue:function(e){l=""+e},stopTracking:function(){a(e),delete t[n]}}))}},updateValueIfChanged:function(e){if(!e)return!1;var t=o(e);if(!t)return l.track(e),!0;var n=t.getValue(),r=s(u.getNodeFromInstance(e));return r!==n&&(t.setValue(r),!0)},stopTracking:function(e){var t=o(e);t&&t.stopTracking()}};e.exports=l},function(e,t,n){"use strict";function r(e){if(e){var t=e.getName();if(t)return" Check the render method of `"+t+"`."}return""}function o(e){return"function"==typeof e&&void 0!==e.prototype&&"function"==typeof e.prototype.mountComponent&&"function"==typeof e.prototype.receiveComponent}function i(e,t){var n;if(null===e||!1===e)n=l.create(i);else if("object"==typeof e){var s=e,u=s.type;if("function"!=typeof u&&"string"!=typeof u){var f="";f+=r(s._owner),a("130",null==u?u:typeof u,f)}"string"==typeof s.type?n=c.createInternalComponent(s):o(s.type)?(n=new s.type(s),n.getHostNode||(n.getHostNode=n.getNativeNode)):n=new p(s)}else"string"==typeof e||"number"==typeof e?n=c.createInstanceForText(e):a("131",typeof e);return n._mountIndex=0,n._mountImage=null,n}var a=n(11),s=n(13),u=n(339),l=n(159),c=n(161),p=(n(407),n(9),n(10),function(e){this.construct(e)});s(p.prototype,u,{_instantiateReactComponent:i}),e.exports=i},function(e,t,n){"use strict";function r(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return"input"===t?!!o[e.type]:"textarea"===t}var o={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};e.exports=r},function(e,t,n){"use strict";var r=n(18),o=n(69),i=n(70),a=function(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&3===n.nodeType)return void(n.nodeValue=t)}e.textContent=t};r.canUseDOM&&("textContent"in document.documentElement||(a=function(e,t){if(3===e.nodeType)return void(e.nodeValue=t);i(e,o(t))})),e.exports=a},function(e,t,n){"use strict";function r(e,t){return e&&"object"==typeof e&&null!=e.key?l.escape(e.key):t.toString(36)}function o(e,t,n,i){var f=typeof e;if("undefined"!==f&&"boolean"!==f||(e=null),null===e||"string"===f||"number"===f||"object"===f&&e.$$typeof===s)return n(i,e,""===t?c+r(e,0):t),1;var d,h,v=0,m=""===t?c:t+p;if(Array.isArray(e))for(var y=0;y0&&void 0!==arguments[0]?arguments[0]:r.props;r._portalContainerNode=(0,m.default)(e.container,(0,g.default)(r).body)},r.getMountNode=function(){return r._portalContainerNode},a=n,i(r,a)}return a(t,e),t.prototype.componentDidMount=function(){this.setContainer(),this.forceUpdate(this.props.onRendered)},t.prototype.componentWillReceiveProps=function(e){e.container!==this.props.container&&this.setContainer(e)},t.prototype.componentWillUnmount=function(){this._portalContainerNode=null},t.prototype.render=function(){return this.props.children&&this._portalContainerNode?h.default.createPortal(this.props.children,this._portalContainerNode):null},t}(f.default.Component);C.displayName="Portal",C.propTypes={container:u.default.oneOfType([c.default,u.default.func]),onRendered:u.default.func},t.default=h.default.createPortal?C:_.default,e.exports=t.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function a(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function s(e){return 0===e.button}function u(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}t.__esModule=!0;var l=n(36),c=r(l),p=n(7),f=r(p),d=n(0),h=r(d),v=n(17),m=r(v),y=n(178),g=r(y),b=n(40),_=r(b),C=27,E=function(e){function t(n,r){o(this,t);var a=i(this,e.call(this,n,r));return a.addEventListeners=function(){var e=a.props.event,t=(0,_.default)(a);a.documentMouseCaptureListener=(0,g.default)(t,e,a.handleMouseCapture,!0),a.documentMouseListener=(0,g.default)(t,e,a.handleMouse),a.documentKeyupListener=(0,g.default)(t,"keyup",a.handleKeyUp)},a.removeEventListeners=function(){a.documentMouseCaptureListener&&a.documentMouseCaptureListener.remove(),a.documentMouseListener&&a.documentMouseListener.remove(),a.documentKeyupListener&&a.documentKeyupListener.remove()},a.handleMouseCapture=function(e){a.preventMouseRootClose=u(e)||!s(e)||(0,c.default)(m.default.findDOMNode(a),e.target)},a.handleMouse=function(e){!a.preventMouseRootClose&&a.props.onRootClose&&a.props.onRootClose(e)},a.handleKeyUp=function(e){e.keyCode===C&&a.props.onRootClose&&a.props.onRootClose(e)},a.preventMouseRootClose=!1,a}return a(t,e),t.prototype.componentDidMount=function(){this.props.disabled||this.addEventListeners()},t.prototype.componentDidUpdate=function(e){!this.props.disabled&&e.disabled?this.addEventListeners():this.props.disabled&&!e.disabled&&this.removeEventListeners()},t.prototype.componentWillUnmount=function(){this.props.disabled||this.removeEventListeners()},t.prototype.render=function(){return this.props.children},t}(h.default.Component);E.displayName="RootCloseWrapper",E.propTypes={onRootClose:f.default.func,children:f.default.element,disabled:f.default.bool,event:f.default.oneOf(["click","mousedown"])},E.defaultProps={event:"click"},t.default=E,e.exports=t.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function u(){}t.__esModule=!0,t.EXITING=t.ENTERED=t.ENTERING=t.EXITED=t.UNMOUNTED=void 0;var l=Object.assign||function(e){for(var t=1;te.clientHeight}t.__esModule=!0,t.default=a;var s=n(54),u=r(s),l=n(35),c=r(l);e.exports=t.default},function(e,t,n){"use strict";function r(e,t,n){this.props=e,this.context=t,this.refs=l,this.updater=n||u}function o(e,t,n){this.props=e,this.context=t,this.refs=l,this.updater=n||u}function i(){}var a=n(50),s=n(13),u=n(183),l=(n(184),n(56));n(9),n(408);r.prototype.isReactComponent={},r.prototype.setState=function(e,t){"object"!=typeof e&&"function"!=typeof e&&null!=e&&a("85"),this.updater.enqueueSetState(this,e),t&&this.updater.enqueueCallback(this,t,"setState")},r.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this),e&&this.updater.enqueueCallback(this,e,"forceUpdate")};i.prototype=r.prototype,o.prototype=new i,o.prototype.constructor=o,s(o.prototype,r.prototype),o.prototype.isPureReactComponent=!0,e.exports={Component:r,PureComponent:o}},function(e,t,n){"use strict";function r(e){var t=Function.prototype.toString,n=Object.prototype.hasOwnProperty,r=RegExp("^"+t.call(n).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");try{var o=t.call(e);return r.test(o)}catch(e){return!1}}function o(e){var t=l(e);if(t){var n=t.childIDs;c(e),n.forEach(o)}}function i(e,t,n){return"\n in "+(e||"Unknown")+(t?" (at "+t.fileName.replace(/^.*[\\\/]/,"")+":"+t.lineNumber+")":n?" (created by "+n+")":"")}function a(e){return null==e?"#empty":"string"==typeof e||"number"==typeof e?"#text":"string"==typeof e.type?e.type:e.type.displayName||e.type.name||"Unknown"}function s(e){var t,n=T.getDisplayName(e),r=T.getElement(e),o=T.getOwnerID(e);return o&&(t=T.getDisplayName(o)),i(n,r&&r._source,t)}var u,l,c,p,f,d,h,v=n(50),m=n(28),y=(n(9),n(10),"function"==typeof Array.from&&"function"==typeof Map&&r(Map)&&null!=Map.prototype&&"function"==typeof Map.prototype.keys&&r(Map.prototype.keys)&&"function"==typeof Set&&r(Set)&&null!=Set.prototype&&"function"==typeof Set.prototype.keys&&r(Set.prototype.keys));if(y){var g=new Map,b=new Set;u=function(e,t){g.set(e,t)},l=function(e){return g.get(e)},c=function(e){g.delete(e)},p=function(){return Array.from(g.keys())},f=function(e){b.add(e)},d=function(e){b.delete(e)},h=function(){return Array.from(b.keys())}}else{var _={},C={},E=function(e){return"."+e},x=function(e){return parseInt(e.substr(1),10)};u=function(e,t){var n=E(e);_[n]=t},l=function(e){var t=E(e);return _[t]},c=function(e){var t=E(e);delete _[t]},p=function(){return Object.keys(_).map(x)},f=function(e){var t=E(e);C[t]=!0},d=function(e){var t=E(e);delete C[t]},h=function(){return Object.keys(C).map(x)}}var w=[],T={onSetChildren:function(e,t){var n=l(e);n||v("144"),n.childIDs=t;for(var r=0;rs;)a.call(e,o=i[s++])&&t.push(o);return t}},function(e,t,n){var r=n(44),o=n(20).getNames,i={}.toString,a="object"==typeof window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],s=function(e){try{return o(e)}catch(e){return a.slice()}};e.exports.get=function(e){return a&&"[object Window]"==i.call(e)?s(e):o(r(e))}},function(e,t,n){var r=n(43),o=n(26)("iterator"),i=Array.prototype;e.exports=function(e){return void 0!==e&&(r.Array===e||i[o]===e)}},function(e,t,n){var r=n(74);e.exports=Array.isArray||function(e){return"Array"==r(e)}},function(e,t,n){var r=n(73);e.exports=function(e,t,n,o){try{return o?t(r(n)[0],n[1]):t(n)}catch(t){var i=e.return;throw void 0!==i&&r(i.call(e)),t}}},function(e,t,n){"use strict";var r=n(20),o=n(80),i=n(81),a={};n(79)(a,n(26)("iterator"),function(){return this}),e.exports=function(e,t,n){e.prototype=r.create(a,{next:o(1,n)}),i(e,t+" Iterator")}},function(e,t,n){var r=n(26)("iterator"),o=!1;try{var i=[7][r]();i.return=function(){o=!0},Array.from(i,function(){throw 2})}catch(e){}e.exports=function(e,t){if(!t&&!o)return!1;var n=!1;try{var i=[7],a=i[r]();a.next=function(){return{done:n=!0}},i[r]=function(){return a},e(i)}catch(e){}return n}},function(e,t){e.exports=function(e,t){return{value:t,done:!!e}}},function(e,t,n){var r=n(20),o=n(44);e.exports=function(e,t){for(var n,i=o(e),a=r.getKeys(i),s=a.length,u=0;s>u;)if(i[n=a[u++]]===t)return n}},function(e,t,n){var r=n(20),o=n(119),i=n(111);e.exports=n(77)(function(){var e=Object.assign,t={},n={},r=Symbol(),o="abcdefghijklmnopqrst";return t[r]=7,o.split("").forEach(function(e){n[e]=e}),7!=e({},t)[r]||Object.keys(e({},n)).join("")!=o})?function(e,t){for(var n=o(e),a=arguments,s=a.length,u=1,l=r.getKeys,c=r.getSymbols,p=r.isEnum;s>u;)for(var f,d=i(a[u++]),h=c?l(d).concat(c(d)):l(d),v=h.length,m=0;v>m;)p.call(d,f=h[m++])&&(n[f]=d[f]);return n}:Object.assign},function(e,t,n){var r=n(20).getDesc,o=n(112),i=n(73),a=function(e,t){if(i(e),!o(t)&&null!==t)throw TypeError(t+": can't set as prototype!")};e.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(e,t,o){try{o=n(75)(Function.call,r(Object.prototype,"__proto__").set,2),o(e,[]),t=!(e instanceof Array)}catch(e){t=!0}return function(e,n){return a(e,n),t?e.__proto__=n:o(e,n),e}}({},!1):void 0),check:a}},function(e,t,n){var r=n(118),o=n(76);e.exports=function(e){return function(t,n){var i,a,s=String(o(t)),u=r(n),l=s.length;return u<0||u>=l?e?"":void 0:(i=s.charCodeAt(u),i<55296||i>56319||u+1===l||(a=s.charCodeAt(u+1))<56320||a>57343?e?s.charAt(u):i:e?s.slice(u,u+2):a-56320+(i-55296<<10)+65536)}}},function(e,t,n){var r=n(118),o=Math.min;e.exports=function(e){return e>0?o(r(e),9007199254740991):0}},function(e,t,n){var r=n(206),o=n(26)("iterator"),i=n(43);e.exports=n(29).getIteratorMethod=function(e){if(void 0!=e)return e[o]||e["@@iterator"]||i[r(e)]}},function(e,t,n){"use strict";var r=n(75),o=n(31),i=n(119),a=n(211),s=n(209),u=n(219),l=n(220);o(o.S+o.F*!n(213)(function(e){Array.from(e)}),"Array",{from:function(e){var t,n,o,c,p=i(e),f="function"==typeof this?this:Array,d=arguments,h=d.length,v=h>1?d[1]:void 0,m=void 0!==v,y=0,g=l(p);if(m&&(v=r(v,h>2?d[2]:void 0,2)),void 0==g||f==Array&&s(g))for(t=u(p.length),n=new f(t);t>y;y++)n[y]=m?v(p[y],y):p[y];else for(c=g.call(p),n=new f;!(o=c.next()).done;y++)n[y]=m?a(c,v,[o.value,y],!0):o.value;return n.length=y,n}})},function(e,t,n){"use strict";var r=n(205),o=n(214),i=n(43),a=n(44);e.exports=n(113)(Array,"Array",function(e,t){this._t=a(e),this._i=0,this._k=t},function(){var e=this._t,t=this._k,n=this._i++;return!e||n>=e.length?(this._t=void 0,o(1)):"keys"==t?o(0,n):"values"==t?o(0,e[n]):o(0,[n,e[n]])},"values"),i.Arguments=i.Array,r("keys"),r("values"),r("entries")},function(e,t,n){var r=n(31);r(r.S+r.F,"Object",{assign:n(216)})},function(e,t,n){var r=n(31);r(r.S,"Object",{setPrototypeOf:n(217).set})},function(e,t){},function(e,t,n){"use strict";var r=n(20),o=n(52),i=n(78),a=n(110),s=n(31),u=n(116),l=n(77),c=n(117),p=n(81),f=n(120),d=n(26),h=n(215),v=n(208),m=n(207),y=n(210),g=n(73),b=n(44),_=n(80),C=r.getDesc,E=r.setDesc,x=r.create,w=v.get,T=o.Symbol,O=o.JSON,N=O&&O.stringify,S=!1,k=d("_hidden"),P=r.isEnum,M=c("symbol-registry"),I=c("symbols"),A="function"==typeof T,R=Object.prototype,D=a&&l(function(){return 7!=x(E({},"a",{get:function(){return E(this,"a",{value:7}).a}})).a})?function(e,t,n){var r=C(R,t);r&&delete R[t],E(e,t,n),r&&e!==R&&E(R,t,r)}:E,L=function(e){var t=I[e]=x(T.prototype);return t._k=e,a&&S&&D(R,e,{configurable:!0,set:function(t){i(this,k)&&i(this[k],e)&&(this[k][e]=!1),D(this,e,_(1,t))}}),t},j=function(e){return"symbol"==typeof e},U=function(e,t,n){return n&&i(I,t)?(n.enumerable?(i(e,k)&&e[k][t]&&(e[k][t]=!1),n=x(n,{enumerable:_(0,!1)})):(i(e,k)||E(e,k,_(1,{})),e[k][t]=!0),D(e,t,n)):E(e,t,n)},B=function(e,t){g(e);for(var n,r=m(t=b(t)),o=0,i=r.length;i>o;)U(e,n=r[o++],t[n]);return e},F=function(e,t){return void 0===t?x(e):B(x(e),t)},V=function(e){var t=P.call(this,e);return!(t||!i(this,e)||!i(I,e)||i(this,k)&&this[k][e])||t},K=function(e,t){var n=C(e=b(e),t);return!n||!i(I,t)||i(e,k)&&e[k][t]||(n.enumerable=!0),n},W=function(e){for(var t,n=w(b(e)),r=[],o=0;n.length>o;)i(I,t=n[o++])||t==k||r.push(t);return r},H=function(e){for(var t,n=w(b(e)),r=[],o=0;n.length>o;)i(I,t=n[o++])&&r.push(I[t]);return r},z=function(e){if(void 0!==e&&!j(e)){for(var t,n,r=[e],o=1,i=arguments;i.length>o;)r.push(i[o++]);return t=r[1],"function"==typeof t&&(n=t),!n&&y(t)||(t=function(e,t){if(n&&(t=n.call(this,e,t)),!j(t))return t}),r[1]=t,N.apply(O,r)}},q=l(function(){var e=T();return"[null]"!=N([e])||"{}"!=N({a:e})||"{}"!=N(Object(e))});A||(T=function(){if(j(this))throw TypeError("Symbol is not a constructor");return L(f(arguments.length>0?arguments[0]:void 0))},u(T.prototype,"toString",function(){return this._k}),j=function(e){return e instanceof T},r.create=F,r.isEnum=V,r.getDesc=K,r.setDesc=U,r.setDescs=B,r.getNames=v.get=W,r.getSymbols=H,a&&!n(114)&&u(R,"propertyIsEnumerable",V,!0));var $={for:function(e){return i(M,e+="")?M[e]:M[e]=T(e)},keyFor:function(e){return h(M,e)},useSetter:function(){S=!0},useSimple:function(){S=!1}};r.each.call("hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),function(e){var t=d(e);$[e]=A?t:L(t)}),S=!0,s(s.G+s.W,{Symbol:T}),s(s.S,"Symbol",$),s(s.S+s.F*!A,"Object",{create:F,defineProperty:U,defineProperties:B,getOwnPropertyDescriptor:K,getOwnPropertyNames:W,getOwnPropertySymbols:H}),O&&s(s.S+s.F*(!A||q),"JSON",{stringify:z}),p(T,"Symbol"),p(Math,"Math",!0),p(o.JSON,"JSON",!0)},function(e,t,n){var r=n(31),o=n(115)(!0);r(r.S,"Object",{entries:function(e){return o(e)}})},function(e,t,n){var r=n(31),o=n(115)(!1);r(r.S,"Object",{values:function(e){return o(e)}})},function(e,t,n){n(222);var r=n(43);r.NodeList=r.HTMLCollection=r.Array},function(e,t,n){"use strict";function r(e){return e}function o(e,t,n){function o(e,t){var n=g.hasOwnProperty(t)?g[t]:null;E.hasOwnProperty(t)&&s("OVERRIDE_BASE"===n,"ReactClassInterface: You are attempting to override `%s` from your class specification. Ensure that your method names do not overlap with React methods.",t),e&&s("DEFINE_MANY"===n||"DEFINE_MANY_MERGED"===n,"ReactClassInterface: You are attempting to define `%s` on your component more than once. This conflict may be due to a mixin.",t)}function l(e,n){if(n){s("function"!=typeof n,"ReactClass: You're attempting to use a component class or function as a mixin. Instead, just use a regular object."),s(!t(n),"ReactClass: You're attempting to use a component as a mixin. Instead, just use a regular object.");var r=e.prototype,i=r.__reactAutoBindPairs;n.hasOwnProperty(u)&&b.mixins(e,n.mixins);for(var a in n)if(n.hasOwnProperty(a)&&a!==u){var l=n[a],c=r.hasOwnProperty(a);if(o(c,a),b.hasOwnProperty(a))b[a](e,l);else{var p=g.hasOwnProperty(a),h="function"==typeof l,v=h&&!p&&!c&&!1!==n.autobind;if(v)i.push(a,l),r[a]=l;else if(c){var m=g[a];s(p&&("DEFINE_MANY_MERGED"===m||"DEFINE_MANY"===m),"ReactClass: Unexpected spec policy %s for key %s when mixing in component specs.",m,a),"DEFINE_MANY_MERGED"===m?r[a]=f(r[a],l):"DEFINE_MANY"===m&&(r[a]=d(r[a],l))}else r[a]=l}}}else;}function c(e,t){if(t)for(var n in t){var r=t[n];if(t.hasOwnProperty(n)){var o=n in b;s(!o,'ReactClass: You are attempting to define a reserved property, `%s`, that shouldn\'t be on the "statics" key. Define it as an instance property instead; it will still be accessible on the constructor.',n);var i=n in e;s(!i,"ReactClass: You are attempting to define `%s` on your component more than once. This conflict may be due to a mixin.",n),e[n]=r}}}function p(e,t){s(e&&t&&"object"==typeof e&&"object"==typeof t,"mergeIntoWithNoDuplicateKeys(): Cannot merge non-objects.");for(var n in t)t.hasOwnProperty(n)&&(s(void 0===e[n],"mergeIntoWithNoDuplicateKeys(): Tried to merge two objects with the same key: `%s`. This conflict may be due to a mixin; in particular, this may be caused by two getInitialState() or getDefaultProps() methods returning objects with clashing keys.",n),e[n]=t[n]);return e}function f(e,t){return function(){var n=e.apply(this,arguments),r=t.apply(this,arguments);if(null==n)return r;if(null==r)return n;var o={};return p(o,n),p(o,r),o}}function d(e,t){return function(){e.apply(this,arguments),t.apply(this,arguments)}}function h(e,t){var n=t.bind(e);return n}function v(e){for(var t=e.__reactAutoBindPairs,n=0;n":"<"+e+">",s[e]=!a.firstChild),s[e]?f[e]:null}var o=n(18),i=n(9),a=o.canUseDOM?document.createElement("div"):null,s={},u=[1,'"],l=[1,"","
"],c=[3,"","
"],p=[1,'',""],f={"*":[1,"?
","
"],area:[1,"",""],col:[2,"","
"],legend:[1,"
","
"],param:[1,"",""],tr:[2,"","
"],optgroup:u,option:u,caption:l,colgroup:l,tbody:l,tfoot:l,thead:l,td:c,th:c};["circle","clipPath","defs","ellipse","g","image","line","linearGradient","mask","path","pattern","polygon","polyline","radialGradient","rect","stop","text","tspan"].forEach(function(e){f[e]=p,s[e]=!0}),e.exports=r},function(e,t,n){"use strict";function r(e){return e.Window&&e instanceof e.Window?{x:e.pageXOffset||e.document.documentElement.scrollLeft,y:e.pageYOffset||e.document.documentElement.scrollTop}:{x:e.scrollLeft,y:e.scrollTop}}e.exports=r},function(e,t,n){"use strict";function r(e){return e.replace(o,"-$1").toLowerCase()}var o=/([A-Z])/g;e.exports=r},function(e,t,n){"use strict";function r(e){return o(e).replace(i,"-ms-")}var o=n(254),i=/^ms-/;e.exports=r},function(e,t,n){"use strict";function r(e){var t=e?e.ownerDocument||e:document,n=t.defaultView||window;return!(!e||!("function"==typeof n.Node?e instanceof n.Node:"object"==typeof e&&"number"==typeof e.nodeType&&"string"==typeof e.nodeName))}e.exports=r},function(e,t,n){"use strict";function r(e){return o(e)&&3==e.nodeType}var o=n(256);e.exports=r},function(e,t,n){"use strict";function r(e){var t={};return function(n){return t.hasOwnProperty(n)||(t[n]=e.call(this,n)),t[n]}}e.exports=r},function(e,t,n){"use strict";function r(e,t){return function(n,r,o,i,u){var l=o||"<>",c=u||r;if(null!=n[r]){var p=o+"."+r;(0,a.default)(s[p],"The "+i+" `"+c+"` of `"+l+"` is deprecated. "+t+"."),s[p]=!0}for(var f=arguments.length,d=Array(f>5?f-5:0),h=5;h=e.children.length&&this.setState({activeIndex:0,previousActiveIndex:null,direction:null})},t.prototype.componentWillUnmount=function(){clearTimeout(this.timeout),this.isUnmounted=!0},t.prototype.getActiveIndex=function(){var e=this.props.activeIndex;return null!=e?e:this.state.activeIndex},t.prototype.getDirection=function(e,t){return e===t?null:e>t?"prev":"next"},t.prototype.handleItemAnimateOutEnd=function(){var e=this;this.setState({previousActiveIndex:null,direction:null},function(){e.waitForNext(),e.props.onSlideEnd&&e.props.onSlideEnd()})},t.prototype.handleMouseOut=function(){this.isPaused&&this.play()},t.prototype.handleMouseOver=function(){this.props.pauseOnHover&&this.pause()},t.prototype.handleNext=function(e){var t=this.getActiveIndex()+1;if(t>w.a.count(this.props.children)-1){if(!this.props.wrap)return;t=0}this.select(t,e,"next")},t.prototype.handlePrev=function(e){var t=this.getActiveIndex()-1;if(t<0){if(!this.props.wrap)return;t=w.a.count(this.props.children)-1}this.select(t,e,"prev")},t.prototype.pause=function(){this.isPaused=!0,clearTimeout(this.timeout)},t.prototype.play=function(){this.isPaused=!1,this.waitForNext()},t.prototype.select=function(e,t,n){if(clearTimeout(this.timeout),!this.isUnmounted){var r=this.props.slide?this.getActiveIndex():null;n=n||this.getDirection(r,e);var o=this.props.onSelect;if(o&&(o.length>1?(t?(t.persist(),t.direction=n):t={direction:n},o(e,t)):o(e)),null==this.props.activeIndex&&e!==r){if(null!=this.state.previousActiveIndex)return;this.setState({activeIndex:e,previousActiveIndex:r,direction:n})}}},t.prototype.waitForNext=function(){var e=this.props,t=e.slide,n=e.interval,r=e.activeIndex;!this.isPaused&&t&&n&&null==r&&(this.timeout=setTimeout(this.handleNext,n))},t.prototype.renderControls=function(e){var t=e.wrap,r=e.children,o=e.activeIndex,i=e.prevIcon,a=e.nextIcon,s=e.bsProps,u=e.prevLabel,l=e.nextLabel,c=n.i(x.prefix)(s,"control"),p=w.a.count(r);return[(t||0!==o)&&m.a.createElement(E.a,{key:"prev",className:h()(c,"left"),onClick:this.handlePrev},i,u&&m.a.createElement("span",{className:"sr-only"},u)),(t||o!==p-1)&&m.a.createElement(E.a,{key:"next",className:h()(c,"right"),onClick:this.handleNext},a,l&&m.a.createElement("span",{className:"sr-only"},l))]},t.prototype.renderIndicators=function(e,t,r){var o=this,i=[];return w.a.forEach(e,function(e,n){i.push(m.a.createElement("li",{key:n,className:n===t?"active":null,onClick:function(e){return o.select(n,e)}})," ")}),m.a.createElement("ol",{className:n.i(x.prefix)(r,"indicators")},i)},t.prototype.render=function(){var e=this,t=this.props,r=t.slide,i=t.indicators,s=t.controls,u=t.wrap,l=t.prevIcon,c=t.prevLabel,p=t.nextIcon,f=t.nextLabel,d=t.className,y=t.children,g=a()(t,["slide","indicators","controls","wrap","prevIcon","prevLabel","nextIcon","nextLabel","className","children"]),b=this.state,_=b.previousActiveIndex,C=b.direction,E=n.i(x.splitBsPropsAndOmit)(g,["interval","pauseOnHover","onSelect","onSlideEnd","activeIndex","defaultActiveIndex","direction"]),T=E[0],O=E[1],N=this.getActiveIndex(),S=o()({},n.i(x.getClassSet)(T),{slide:r});return m.a.createElement("div",o()({},O,{className:h()(d,S),onMouseOver:this.handleMouseOver,onMouseOut:this.handleMouseOut}),i&&this.renderIndicators(y,N,T),m.a.createElement("div",{className:n.i(x.prefix)(T,"inner")},w.a.map(y,function(t,o){var i=o===N,a=r&&o===_;return n.i(v.cloneElement)(t,{active:i,index:o,animateOut:a,animateIn:i&&null!=_&&r,direction:C,onAnimateOutEnd:a?e.handleItemAnimateOutEnd:null})})),s&&this.renderControls({wrap:u,children:y,activeIndex:N,prevIcon:l,prevLabel:c,nextIcon:p,nextLabel:f,bsProps:T}))},t}(m.a.Component);N.propTypes=T,N.defaultProps=O,N.Caption=b.a,N.Item=_.a,t.a=n.i(x.bsClass)("carousel",N)},function(e,t,n){"use strict";var r=n(4),o=n.n(r),i=n(5),a=n.n(i),s=n(1),u=n.n(s),l=n(3),c=n.n(l),p=n(2),f=n.n(p),d=n(6),h=n.n(d),v=n(0),m=n.n(v),y=n(12),g=n.n(y),b=n(8),_={componentClass:g.a},C={componentClass:"div"},E=function(e){function t(){return u()(this,t),c()(this,e.apply(this,arguments))}return f()(t,e),t.prototype.render=function(){var e=this.props,t=e.componentClass,r=e.className,i=a()(e,["componentClass","className"]),s=n.i(b.splitBsProps)(i),u=s[0],l=s[1],c=n.i(b.getClassSet)(u);return m.a.createElement(t,o()({},l,{className:h()(r,c)}))},t}(m.a.Component);E.propTypes=_,E.defaultProps=C,t.a=n.i(b.bsClass)("carousel-caption",E)},function(e,t,n){"use strict";var r=n(4),o=n.n(r),i=n(5),a=n.n(i),s=n(1),u=n.n(s),l=n(3),c=n.n(l),p=n(2),f=n.n(p),d=n(6),h=n.n(d),v=n(0),m=n.n(v),y=n(7),g=n.n(y),b=n(22),_=(n.n(b),n(8)),C={inline:g.a.bool,disabled:g.a.bool,title:g.a.string,validationState:g.a.oneOf(["success","warning","error",null]),inputRef:g.a.func},E={inline:!1,disabled:!1,title:""},x=function(e){function t(){return u()(this,t),c()(this,e.apply(this,arguments))}return f()(t,e),t.prototype.render=function(){var e=this.props,t=e.inline,r=e.disabled,i=e.validationState,s=e.inputRef,u=e.className,l=e.style,c=e.title,p=e.children,f=a()(e,["inline","disabled","validationState","inputRef","className","style","title","children"]),d=n.i(_.splitBsProps)(f),v=d[0],y=d[1],g=m.a.createElement("input",o()({},y,{ref:s,type:"checkbox",disabled:r}));if(t){var b,C=(b={},b[n.i(_.prefix)(v,"inline")]=!0,b.disabled=r,b);return m.a.createElement("label",{className:h()(u,C),style:l,title:c},g,p)}var E=o()({},n.i(_.getClassSet)(v),{disabled:r});return i&&(E["has-"+i]=!0),m.a.createElement("div",{className:h()(u,E),style:l},m.a.createElement("label",{title:c},g,p))},t}(m.a.Component);x.propTypes=C,x.defaultProps=E,t.a=n.i(_.bsClass)("checkbox",x)},function(e,t,n){"use strict";var r=n(4),o=n.n(r),i=n(5),a=n.n(i),s=n(1),u=n.n(s),l=n(3),c=n.n(l),p=n(2),f=n.n(p),d=n(6),h=n.n(d),v=n(0),m=n.n(v),y=n(7),g=n.n(y),b=n(12),_=n.n(b),C=n(8),E=n(153),x=n(16),w={componentClass:_.a,visibleXsBlock:g.a.bool,visibleSmBlock:g.a.bool,visibleMdBlock:g.a.bool,visibleLgBlock:g.a.bool},T={componentClass:"div"},O=function(e){function t(){return u()(this,t),c()(this,e.apply(this,arguments))}return f()(t,e),t.prototype.render=function(){var e=this.props,t=e.componentClass,r=e.className,i=a()(e,["componentClass","className"]),s=n.i(C.splitBsProps)(i),u=s[0],l=s[1],c=n.i(C.getClassSet)(u);return x.e.forEach(function(e){var t="visible"+n.i(E.a)(e)+"Block";l[t]&&(c["visible-"+e+"-block"]=!0),delete l[t]}),m.a.createElement(t,o()({},l,{className:h()(r,c)}))},t}(m.a.Component);O.propTypes=w,O.defaultProps=T,t.a=n.i(C.bsClass)("clearfix",O)},function(e,t,n){"use strict";var r=n(4),o=n.n(r),i=n(5),a=n.n(i),s=n(1),u=n.n(s),l=n(3),c=n.n(l),p=n(2),f=n.n(p),d=n(6),h=n.n(d),v=n(0),m=n.n(v),y=n(7),g=n.n(y),b=n(12),_=n.n(b),C=n(8),E=n(16),x={componentClass:_.a,xs:g.a.number,sm:g.a.number,md:g.a.number,lg:g.a.number,xsHidden:g.a.bool,smHidden:g.a.bool,mdHidden:g.a.bool,lgHidden:g.a.bool,xsOffset:g.a.number,smOffset:g.a.number,mdOffset:g.a.number,lgOffset:g.a.number,xsPush:g.a.number,smPush:g.a.number,mdPush:g.a.number,lgPush:g.a.number,xsPull:g.a.number,smPull:g.a.number,mdPull:g.a.number,lgPull:g.a.number},w={componentClass:"div"},T=function(e){function t(){return u()(this,t),c()(this,e.apply(this,arguments))}return f()(t,e),t.prototype.render=function(){var e=this.props,t=e.componentClass,r=e.className,i=a()(e,["componentClass","className"]),s=n.i(C.splitBsProps)(i),u=s[0],l=s[1],c=[];return E.e.forEach(function(e){function t(t,r){var o=""+e+t,i=l[o];null!=i&&c.push(n.i(C.prefix)(u,""+e+r+"-"+i)),delete l[o]}t("",""),t("Offset","-offset"),t("Push","-push"),t("Pull","-pull");var r=e+"Hidden";l[r]&&c.push("hidden-"+e),delete l[r]}),m.a.createElement(t,o()({},l,{className:h()(r,c)}))},t}(m.a.Component);T.propTypes=x,T.defaultProps=w,t.a=n.i(C.bsClass)("col",T)},function(e,t,n){"use strict";var r=n(4),o=n.n(r),i=n(5),a=n.n(i),s=n(1),u=n.n(s),l=n(3),c=n.n(l),p=n(2),f=n.n(p),d=n(6),h=n.n(d),v=n(0),m=n.n(v),y=n(7),g=n.n(y),b=n(22),_=(n.n(b),n(8)),C={htmlFor:g.a.string,srOnly:g.a.bool},E={srOnly:!1},x={$bs_formGroup:g.a.object},w=function(e){function t(){return u()(this,t),c()(this,e.apply(this,arguments))}return f()(t,e),t.prototype.render=function(){var e=this.context.$bs_formGroup,t=e&&e.controlId,r=this.props,i=r.htmlFor,s=void 0===i?t:i,u=r.srOnly,l=r.className,c=a()(r,["htmlFor","srOnly","className"]),p=n.i(_.splitBsProps)(c),f=p[0],d=p[1],v=o()({},n.i(_.getClassSet)(f),{"sr-only":u});return m.a.createElement("label",o()({},d,{htmlFor:s,className:h()(l,v)}))},t}(m.a.Component);w.propTypes=C,w.defaultProps=E,w.contextTypes=x,t.a=n.i(_.bsClass)("control-label",w)},function(e,t,n){"use strict";var r=n(5),o=n.n(r),i=n(1),a=n.n(i),s=n(3),u=n.n(s),l=n(2),c=n.n(l),p=n(4),f=n.n(p),d=n(0),h=n.n(d),v=n(7),m=n.n(v),y=n(62),g=n(65),b=f()({},y.a.propTypes,{bsStyle:m.a.string,bsSize:m.a.string,title:m.a.node.isRequired,noCaret:m.a.bool,children:m.a.node}),_=function(e){function t(){return a()(this,t),u()(this,e.apply(this,arguments))}return c()(t,e),t.prototype.render=function(){var e=this.props,t=e.bsSize,r=e.bsStyle,i=e.title,a=e.children,s=o()(e,["bsSize","bsStyle","title","children"]),u=n.i(g.a)(s,y.a.ControlledComponent),l=u[0],c=u[1];return h.a.createElement(y.a,f()({},l,{bsSize:t,bsStyle:r}),h.a.createElement(y.a.Toggle,f()({},c,{bsSize:t,bsStyle:r}),i),h.a.createElement(y.a.Menu,null,a))},t}(h.a.Component);_.propTypes=b,t.a=_},function(e,t,n){"use strict";var r=n(4),o=n.n(r),i=n(5),a=n.n(i),s=n(191),u=n.n(s),l=n(1),c=n.n(l),p=n(3),f=n.n(p),d=n(2),h=n.n(d),v=n(6),m=n.n(v),y=n(84),g=n.n(y),b=n(0),_=n.n(b),C=n(7),E=n.n(C),x=n(17),w=n.n(x),T=n(176),O=n.n(T),N=n(8),S=n(15),k=n(19),P={open:E.a.bool,pullRight:E.a.bool,onClose:E.a.func,labelledBy:E.a.oneOfType([E.a.string,E.a.number]),onSelect:E.a.func,rootCloseEvent:E.a.oneOf(["click","mousedown"])},M={bsRole:"menu",pullRight:!1},I=function(e){function t(n){c()(this,t);var r=f()(this,e.call(this,n));return r.handleRootClose=r.handleRootClose.bind(r),r.handleKeyDown=r.handleKeyDown.bind(r),r}return h()(t,e),t.prototype.getFocusableMenuItems=function(){var e=w.a.findDOMNode(this);return e?u()(e.querySelectorAll('[tabIndex="-1"]')):[]},t.prototype.getItemsAndActiveIndex=function(){var e=this.getFocusableMenuItems();return{items:e,activeIndex:e.indexOf(document.activeElement)}},t.prototype.focusNext=function(){var e=this.getItemsAndActiveIndex(),t=e.items,n=e.activeIndex;if(0!==t.length){t[n===t.length-1?0:n+1].focus()}},t.prototype.focusPrevious=function(){var e=this.getItemsAndActiveIndex(),t=e.items,n=e.activeIndex;if(0!==t.length){t[0===n?t.length-1:n-1].focus()}},t.prototype.handleKeyDown=function(e){switch(e.keyCode){case g.a.codes.down:this.focusNext(),e.preventDefault();break;case g.a.codes.up:this.focusPrevious(),e.preventDefault();break;case g.a.codes.esc:case g.a.codes.tab:this.props.onClose(e,{source:"keydown"})}},t.prototype.handleRootClose=function(e){this.props.onClose(e,{source:"rootClose"})},t.prototype.render=function(){var e,t=this,r=this.props,i=r.open,s=r.pullRight,u=r.labelledBy,l=r.onSelect,c=r.className,p=r.rootCloseEvent,f=r.children,d=a()(r,["open","pullRight","labelledBy","onSelect","className","rootCloseEvent","children"]),h=n.i(N.splitBsPropsAndOmit)(d,["onClose"]),v=h[0],y=h[1],g=o()({},n.i(N.getClassSet)(v),(e={},e[n.i(N.prefix)(v,"right")]=s,e));return _.a.createElement(O.a,{disabled:!i,onRootClose:this.handleRootClose,event:p},_.a.createElement("ul",o()({},y,{role:"menu",className:m()(c,g),"aria-labelledby":u}),k.a.map(f,function(e){return _.a.cloneElement(e,{onKeyDown:n.i(S.a)(e.props.onKeyDown,t.handleKeyDown),onSelect:n.i(S.a)(e.props.onSelect,l)})})))},t}(_.a.Component);I.propTypes=P,I.defaultProps=M,t.a=n.i(N.bsClass)("dropdown-menu",I)},function(e,t,n){"use strict";var r=n(4),o=n.n(r),i=n(5),a=n.n(i),s=n(1),u=n.n(s),l=n(3),c=n.n(l),p=n(2),f=n.n(p),d=n(6),h=n.n(d),v=n(0),m=n.n(v),y=n(7),g=n.n(y),b=n(12),_=n.n(b),C=n(8),E={horizontal:g.a.bool,inline:g.a.bool,componentClass:_.a},x={horizontal:!1,inline:!1,componentClass:"form"},w=function(e){function t(){return u()(this,t),c()(this,e.apply(this,arguments))}return f()(t,e),t.prototype.render=function(){var e=this.props,t=e.horizontal,r=e.inline,i=e.componentClass,s=e.className,u=a()(e,["horizontal","inline","componentClass","className"]),l=n.i(C.splitBsProps)(u),c=l[0],p=l[1],f=[];return t&&f.push(n.i(C.prefix)(c,"horizontal")),r&&f.push(n.i(C.prefix)(c,"inline")),m.a.createElement(i,o()({},p,{className:h()(s,f)}))},t}(m.a.Component);w.propTypes=E,w.defaultProps=x,t.a=n.i(C.bsClass)("form",w)},function(e,t,n){"use strict";var r=n(4),o=n.n(r),i=n(5),a=n.n(i),s=n(1),u=n.n(s),l=n(3),c=n.n(l),p=n(2),f=n.n(p),d=n(6),h=n.n(d),v=n(0),m=n.n(v),y=n(7),g=n.n(y),b=n(12),_=n.n(b),C=n(22),E=(n.n(C),n(278)),x=n(279),w=n(8),T=n(16),O={componentClass:_.a,type:g.a.string,id:g.a.string,inputRef:g.a.func},N={componentClass:"input"},S={$bs_formGroup:g.a.object},k=function(e){function t(){return u()(this,t),c()(this,e.apply(this,arguments))}return f()(t,e),t.prototype.render=function(){var e=this.context.$bs_formGroup,t=e&&e.controlId,r=this.props,i=r.componentClass,s=r.type,u=r.id,l=void 0===u?t:u,c=r.inputRef,p=r.className,f=r.bsSize,d=a()(r,["componentClass","type","id","inputRef","className","bsSize"]),v=n.i(w.splitBsProps)(d),y=v[0],g=v[1],b=void 0;if("file"!==s&&(b=n.i(w.getClassSet)(y)),f){var _=T.a[f]||f;b[n.i(w.prefix)({bsClass:"input"},_)]=!0}return m.a.createElement(i,o()({},g,{type:s,id:l,ref:c,className:h()(p,b)}))},t}(m.a.Component);k.propTypes=O,k.defaultProps=N,k.contextTypes=S,k.Feedback=E.a,k.Static=x.a,t.a=n.i(w.bsClass)("form-control",n.i(w.bsSizes)([T.b.SMALL,T.b.LARGE],k))},function(e,t,n){"use strict";var r=n(5),o=n.n(r),i=n(4),a=n.n(i),s=n(1),u=n.n(s),l=n(3),c=n.n(l),p=n(2),f=n.n(p),d=n(6),h=n.n(d),v=n(0),m=n.n(v),y=n(7),g=n.n(y),b=n(88),_=n(8),C={bsRole:"feedback"},E={$bs_formGroup:g.a.object},x=function(e){function t(){return u()(this,t),c()(this,e.apply(this,arguments))}return f()(t,e),t.prototype.getGlyph=function(e){switch(e){case"success":return"ok";case"warning":return"warning-sign";case"error":return"remove";default:return null}},t.prototype.renderDefaultFeedback=function(e,t,n,r){var o=this.getGlyph(e&&e.validationState);return o?m.a.createElement(b.a,a()({},r,{glyph:o,className:h()(t,n)})):null},t.prototype.render=function(){var e=this.props,t=e.className,r=e.children,i=o()(e,["className","children"]),s=n.i(_.splitBsProps)(i),u=s[0],l=s[1],c=n.i(_.getClassSet)(u);if(!r)return this.renderDefaultFeedback(this.context.$bs_formGroup,t,c,l);var p=m.a.Children.only(r);return m.a.cloneElement(p,a()({},l,{className:h()(p.props.className,t,c)}))},t}(m.a.Component);x.defaultProps=C,x.contextTypes=E,t.a=n.i(_.bsClass)("form-control-feedback",x)},function(e,t,n){"use strict";var r=n(4),o=n.n(r),i=n(5),a=n.n(i),s=n(1),u=n.n(s),l=n(3),c=n.n(l),p=n(2),f=n.n(p),d=n(6),h=n.n(d),v=n(0),m=n.n(v),y=n(12),g=n.n(y),b=n(8),_={componentClass:g.a},C={componentClass:"p"},E=function(e){function t(){return u()(this,t),c()(this,e.apply(this,arguments))}return f()(t,e),t.prototype.render=function(){var e=this.props,t=e.componentClass,r=e.className,i=a()(e,["componentClass","className"]),s=n.i(b.splitBsProps)(i),u=s[0],l=s[1],c=n.i(b.getClassSet)(u);return m.a.createElement(t,o()({},l,{className:h()(r,c)}))},t}(m.a.Component);E.propTypes=_,E.defaultProps=C,t.a=n.i(b.bsClass)("form-control-static",E)},function(e,t,n){"use strict";var r=n(4),o=n.n(r),i=n(5),a=n.n(i),s=n(1),u=n.n(s),l=n(3),c=n.n(l),p=n(2),f=n.n(p),d=n(6),h=n.n(d),v=n(0),m=n.n(v),y=n(7),g=n.n(y),b=n(8),_=n(16),C=n(19),E={controlId:g.a.string,validationState:g.a.oneOf(["success","warning","error",null])},x={$bs_formGroup:g.a.object.isRequired},w=function(e){function t(){return u()(this,t),c()(this,e.apply(this,arguments))}return f()(t,e),t.prototype.getChildContext=function(){var e=this.props;return{$bs_formGroup:{controlId:e.controlId,validationState:e.validationState}}},t.prototype.hasFeedback=function(e){var t=this;return C.a.some(e,function(e){return"feedback"===e.props.bsRole||e.props.children&&t.hasFeedback(e.props.children)})},t.prototype.render=function(){var e=this.props,t=e.validationState,r=e.className,i=e.children,s=a()(e,["validationState","className","children"]),u=n.i(b.splitBsPropsAndOmit)(s,["controlId"]),l=u[0],c=u[1],p=o()({},n.i(b.getClassSet)(l),{"has-feedback":this.hasFeedback(i)});return t&&(p["has-"+t]=!0),m.a.createElement("div",o()({},c,{className:h()(r,p)}),i)},t}(m.a.Component);w.propTypes=E,w.childContextTypes=x,t.a=n.i(b.bsClass)("form-group",n.i(b.bsSizes)([_.b.LARGE,_.b.SMALL],w))},function(e,t,n){"use strict";var r=n(4),o=n.n(r),i=n(5),a=n.n(i),s=n(1),u=n.n(s),l=n(3),c=n.n(l),p=n(2),f=n.n(p),d=n(6),h=n.n(d),v=n(0),m=n.n(v),y=n(8),g=function(e){function t(){return u()(this,t),c()(this,e.apply(this,arguments))}return f()(t,e),t.prototype.render=function(){var e=this.props,t=e.className,r=a()(e,["className"]),i=n.i(y.splitBsProps)(r),s=i[0],u=i[1],l=n.i(y.getClassSet)(s);return m.a.createElement("span",o()({},u,{className:h()(t,l)}))},t}(m.a.Component);t.a=n.i(y.bsClass)("help-block",g)},function(e,t,n){"use strict";var r=n(4),o=n.n(r),i=n(5),a=n.n(i),s=n(1),u=n.n(s),l=n(3),c=n.n(l),p=n(2),f=n.n(p),d=n(6),h=n.n(d),v=n(0),m=n.n(v),y=n(7),g=n.n(y),b=n(8),_={responsive:g.a.bool,rounded:g.a.bool,circle:g.a.bool,thumbnail:g.a.bool},C={responsive:!1,rounded:!1,circle:!1,thumbnail:!1},E=function(e){function t(){return u()(this,t),c()(this,e.apply(this,arguments))}return f()(t,e),t.prototype.render=function(){var e,t=this.props,r=t.responsive,i=t.rounded,s=t.circle,u=t.thumbnail,l=t.className,c=a()(t,["responsive","rounded","circle","thumbnail","className"]),p=n.i(b.splitBsProps)(c),f=p[0],d=p[1],v=(e={},e[n.i(b.prefix)(f,"responsive")]=r,e[n.i(b.prefix)(f,"rounded")]=i,e[n.i(b.prefix)(f,"circle")]=s,e[n.i(b.prefix)(f,"thumbnail")]=u,e);return m.a.createElement("img",o()({},d,{className:h()(l,v)}))},t}(m.a.Component);E.propTypes=_,E.defaultProps=C,t.a=n.i(b.bsClass)("img",E)},function(e,t,n){"use strict";var r=n(4),o=n.n(r),i=n(5),a=n.n(i),s=n(1),u=n.n(s),l=n(3),c=n.n(l),p=n(2),f=n.n(p),d=n(6),h=n.n(d),v=n(0),m=n.n(v),y=n(284),g=n(285),b=n(8),_=n(16),C=function(e){function t(){return u()(this,t),c()(this,e.apply(this,arguments))}return f()(t,e),t.prototype.render=function(){var e=this.props,t=e.className,r=a()(e,["className"]),i=n.i(b.splitBsProps)(r),s=i[0],u=i[1],l=n.i(b.getClassSet)(s);return m.a.createElement("span",o()({},u,{className:h()(t,l)}))},t}(m.a.Component);C.Addon=y.a,C.Button=g.a,t.a=n.i(b.bsClass)("input-group",n.i(b.bsSizes)([_.b.LARGE,_.b.SMALL],C))},function(e,t,n){"use strict";var r=n(4),o=n.n(r),i=n(5),a=n.n(i),s=n(1),u=n.n(s),l=n(3),c=n.n(l),p=n(2),f=n.n(p),d=n(6),h=n.n(d),v=n(0),m=n.n(v),y=n(8),g=function(e){function t(){return u()(this,t),c()(this,e.apply(this,arguments))}return f()(t,e),t.prototype.render=function(){var e=this.props,t=e.className,r=a()(e,["className"]),i=n.i(y.splitBsProps)(r),s=i[0],u=i[1],l=n.i(y.getClassSet)(s);return m.a.createElement("span",o()({},u,{className:h()(t,l)}))},t}(m.a.Component);t.a=n.i(y.bsClass)("input-group-addon",g)},function(e,t,n){"use strict";var r=n(4),o=n.n(r),i=n(5),a=n.n(i),s=n(1),u=n.n(s),l=n(3),c=n.n(l),p=n(2),f=n.n(p),d=n(6),h=n.n(d),v=n(0),m=n.n(v),y=n(8),g=function(e){function t(){return u()(this,t),c()(this,e.apply(this,arguments))}return f()(t,e),t.prototype.render=function(){var e=this.props,t=e.className,r=a()(e,["className"]),i=n.i(y.splitBsProps)(r),s=i[0],u=i[1],l=n.i(y.getClassSet)(s);return m.a.createElement("span",o()({},u,{className:h()(t,l)}))},t}(m.a.Component);t.a=n.i(y.bsClass)("input-group-btn",g)},function(e,t,n){"use strict";var r=n(4),o=n.n(r),i=n(5),a=n.n(i),s=n(1),u=n.n(s),l=n(3),c=n.n(l),p=n(2),f=n.n(p),d=n(0),h=n.n(d),v=n(6),m=n.n(v),y=n(12),g=n.n(y),b=n(8),_={componentClass:g.a},C={componentClass:"div"},E=function(e){function t(){return u()(this,t),c()(this,e.apply(this,arguments))}return f()(t,e),t.prototype.render=function(){var e=this.props,t=e.componentClass,r=e.className,i=a()(e,["componentClass","className"]),s=n.i(b.splitBsProps)(i),u=s[0],l=s[1],c=n.i(b.getClassSet)(u);return h.a.createElement(t,o()({},l,{className:m()(r,c)}))},t}(h.a.Component);E.propTypes=_,E.defaultProps=C,t.a=n.i(b.bsClass)("jumbotron",E)},function(e,t,n){"use strict";var r=n(34),o=n.n(r),i=n(4),a=n.n(i),s=n(5),u=n.n(s),l=n(1),c=n.n(l),p=n(3),f=n.n(p),d=n(2),h=n.n(d),v=n(6),m=n.n(v),y=n(0),g=n.n(y),b=n(8),_=n(16),C=function(e){function t(){return c()(this,t),f()(this,e.apply(this,arguments))}return h()(t,e),t.prototype.hasContent=function(e){var t=!1;return g.a.Children.forEach(e,function(e){t||(e||0===e)&&(t=!0)}),t},t.prototype.render=function(){var e=this.props,t=e.className,r=e.children,o=u()(e,["className","children"]),i=n.i(b.splitBsProps)(o),s=i[0],l=i[1],c=a()({},n.i(b.getClassSet)(s),{hidden:!this.hasContent(r)});return g.a.createElement("span",a()({},l,{className:m()(t,c)}),r)},t}(g.a.Component);t.a=n.i(b.bsClass)("label",n.i(b.bsStyles)([].concat(o()(_.c),[_.d.DEFAULT,_.d.PRIMARY]),_.d.DEFAULT,C))},function(e,t,n){"use strict";function r(e){return e?E.a.some(e,function(e){return e.type!==_.a||e.props.href||e.props.onClick})?"div":"ul":"div"}var o=n(4),i=n.n(o),a=n(5),s=n.n(a),u=n(1),l=n.n(u),c=n(3),p=n.n(c),f=n(2),d=n.n(f),h=n(6),v=n.n(h),m=n(0),y=n.n(m),g=n(12),b=n.n(g),_=n(139),C=n(8),E=n(19),x={componentClass:b.a},w=function(e){function t(){return l()(this,t),p()(this,e.apply(this,arguments))}return d()(t,e),t.prototype.render=function(){var e=this.props,t=e.children,o=e.componentClass,a=void 0===o?r(t):o,u=e.className,l=s()(e,["children","componentClass","className"]),c=n.i(C.splitBsProps)(l),p=c[0],f=c[1],d=n.i(C.getClassSet)(p),h="ul"===a&&E.a.every(t,function(e){return e.type===_.a});return y.a.createElement(a,i()({},f,{className:v()(u,d)}),h?E.a.map(t,function(e){return n.i(m.cloneElement)(e,{listItem:!0})}):t)},t}(y.a.Component);w.propTypes=x,t.a=n.i(C.bsClass)("list-group",w)},function(e,t,n){"use strict";var r=n(4),o=n.n(r),i=n(5),a=n.n(i),s=n(1),u=n.n(s),l=n(3),c=n.n(l),p=n(2),f=n.n(p),d=n(6),h=n.n(d),v=n(0),m=n.n(v),y=n(7),g=n.n(y),b=n(12),_=n.n(b),C=n(64),E=n(8),x={align:g.a.oneOf(["top","middle","bottom"]),componentClass:_.a},w={componentClass:"div"},T=function(e){function t(){return u()(this,t),c()(this,e.apply(this,arguments))}return f()(t,e),t.prototype.render=function(){var e=this.props,t=e.componentClass,r=e.align,i=e.className,s=a()(e,["componentClass","align","className"]),u=n.i(E.splitBsProps)(s),l=u[0],c=u[1],p=n.i(E.getClassSet)(l);return r&&(p[n.i(E.prefix)(C.a.defaultProps,r)]=!0),m.a.createElement(t,o()({},c,{className:h()(i,p)}))},t}(m.a.Component);T.propTypes=x,T.defaultProps=w,t.a=n.i(E.bsClass)("media-body",T)},function(e,t,n){"use strict";var r=n(4),o=n.n(r),i=n(5),a=n.n(i),s=n(1),u=n.n(s),l=n(3),c=n.n(l),p=n(2),f=n.n(p),d=n(6),h=n.n(d),v=n(0),m=n.n(v),y=n(12),g=n.n(y),b=n(8),_={componentClass:g.a},C={componentClass:"h4"},E=function(e){function t(){return u()(this,t),c()(this,e.apply(this,arguments))}return f()(t,e),t.prototype.render=function(){var e=this.props,t=e.componentClass,r=e.className,i=a()(e,["componentClass","className"]),s=n.i(b.splitBsProps)(i),u=s[0],l=s[1],c=n.i(b.getClassSet)(u);return m.a.createElement(t,o()({},l,{className:h()(r,c)}))},t}(m.a.Component);E.propTypes=_,E.defaultProps=C,t.a=n.i(b.bsClass)("media-heading",E)},function(e,t,n){"use strict";var r=n(4),o=n.n(r),i=n(5),a=n.n(i),s=n(1),u=n.n(s),l=n(3),c=n.n(l),p=n(2),f=n.n(p),d=n(6),h=n.n(d),v=n(0),m=n.n(v),y=n(7),g=n.n(y),b=n(64),_=n(8),C={align:g.a.oneOf(["top","middle","bottom"])},E=function(e){function t(){return u()(this,t),c()(this,e.apply(this,arguments))}return f()(t,e),t.prototype.render=function(){var e=this.props,t=e.align,r=e.className,i=a()(e,["align","className"]),s=n.i(_.splitBsProps)(i),u=s[0],l=s[1],c=n.i(_.getClassSet)(u);return t&&(c[n.i(_.prefix)(b.a.defaultProps,t)]=!0),m.a.createElement("div",o()({},l,{className:h()(r,c)}))},t}(m.a.Component);E.propTypes=C,t.a=n.i(_.bsClass)("media-left",E)},function(e,t,n){"use strict";var r=n(4),o=n.n(r),i=n(5),a=n.n(i),s=n(1),u=n.n(s),l=n(3),c=n.n(l),p=n(2),f=n.n(p),d=n(6),h=n.n(d),v=n(0),m=n.n(v),y=n(8),g=function(e){function t(){return u()(this,t),c()(this,e.apply(this,arguments))}return f()(t,e),t.prototype.render=function(){var e=this.props,t=e.className,r=a()(e,["className"]),i=n.i(y.splitBsProps)(r),s=i[0],u=i[1],l=n.i(y.getClassSet)(s);return m.a.createElement("ul",o()({},u,{className:h()(t,l)}))},t}(m.a.Component);t.a=n.i(y.bsClass)("media-list",g)},function(e,t,n){"use strict";var r=n(4),o=n.n(r),i=n(5),a=n.n(i),s=n(1),u=n.n(s),l=n(3),c=n.n(l),p=n(2),f=n.n(p),d=n(6),h=n.n(d),v=n(0),m=n.n(v),y=n(8),g=function(e){function t(){return u()(this,t),c()(this,e.apply(this,arguments))}return f()(t,e),t.prototype.render=function(){var e=this.props,t=e.className,r=a()(e,["className"]),i=n.i(y.splitBsProps)(r),s=i[0],u=i[1],l=n.i(y.getClassSet)(s);return m.a.createElement("li",o()({},u,{className:h()(t,l)}))},t}(m.a.Component);t.a=n.i(y.bsClass)("media",g)},function(e,t,n){"use strict";var r=n(4),o=n.n(r),i=n(5),a=n.n(i),s=n(1),u=n.n(s),l=n(3),c=n.n(l),p=n(2),f=n.n(p),d=n(6),h=n.n(d),v=n(0),m=n.n(v),y=n(7),g=n.n(y),b=n(64),_=n(8),C={align:g.a.oneOf(["top","middle","bottom"])},E=function(e){function t(){return u()(this,t),c()(this,e.apply(this,arguments))}return f()(t,e),t.prototype.render=function(){var e=this.props,t=e.align,r=e.className,i=a()(e,["align","className"]),s=n.i(_.splitBsProps)(i),u=s[0],l=s[1],c=n.i(_.getClassSet)(u);return t&&(c[n.i(_.prefix)(b.a.defaultProps,t)]=!0),m.a.createElement("div",o()({},l,{className:h()(r,c)}))},t}(m.a.Component);E.propTypes=C,t.a=n.i(_.bsClass)("media-right",E)},function(e,t,n){"use strict";var r=n(4),o=n.n(r),i=n(5),a=n.n(i),s=n(1),u=n.n(s),l=n(3),c=n.n(l),p=n(2),f=n.n(p),d=n(6),h=n.n(d),v=n(0),m=n.n(v),y=n(7),g=n.n(y),b=n(58),_=n.n(b),C=n(24),E=n(8),x=n(15),w={active:g.a.bool,disabled:g.a.bool,divider:_()(g.a.bool,function(e){var t=e.divider,n=e.children;return t&&n?new Error("Children will not be rendered for dividers"):null}),eventKey:g.a.any,header:g.a.bool,href:g.a.string,onClick:g.a.func,onSelect:g.a.func},T={divider:!1,disabled:!1,header:!1},O=function(e){function t(n,r){u()(this,t);var o=c()(this,e.call(this,n,r));return o.handleClick=o.handleClick.bind(o),o}return f()(t,e),t.prototype.handleClick=function(e){var t=this.props,n=t.href,r=t.disabled,o=t.onSelect,i=t.eventKey;n&&!r||e.preventDefault(),r||o&&o(i,e)},t.prototype.render=function(){var e=this.props,t=e.active,r=e.disabled,i=e.divider,s=e.header,u=e.onClick,l=e.className,c=e.style,p=a()(e,["active","disabled","divider","header","onClick","className","style"]),f=n.i(E.splitBsPropsAndOmit)(p,["eventKey","onSelect"]),d=f[0],v=f[1];return i?(v.children=void 0,m.a.createElement("li",o()({},v,{role:"separator",className:h()(l,"divider"),style:c}))):s?m.a.createElement("li",o()({},v,{role:"heading",className:h()(l,n.i(E.prefix)(d,"header")),style:c})):m.a.createElement("li",{role:"presentation",className:h()(l,{active:t,disabled:r}),style:c},m.a.createElement(C.a,o()({},v,{role:"menuitem",tabIndex:"-1",onClick:n.i(x.a)(u,this.handleClick)})))},t}(m.a.Component);O.propTypes=w,O.defaultProps=T,t.a=n.i(E.bsClass)("dropdown",O)},function(e,t,n){"use strict";var r=n(5),o=n.n(r),i=n(1),a=n.n(i),s=n(3),u=n.n(s),l=n(2),c=n.n(l),p=n(4),f=n.n(p),d=n(6),h=n.n(d),v=n(235),m=n.n(v),y=n(35),g=n.n(y),b=n(30),_=n.n(b),C=n(128),E=n.n(C),x=n(0),w=n.n(x),T=n(7),O=n.n(T),N=n(17),S=n.n(N),k=n(391),P=n.n(k),M=n(179),I=n.n(M),A=n(12),R=n.n(A),D=n(63),L=n(140),j=n(297),U=n(141),B=n(142),F=n(143),V=n(8),K=n(15),W=n(65),H=n(16),z=f()({},P.a.propTypes,j.a.propTypes,{backdrop:O.a.oneOf(["static",!0,!1]),backdropClassName:O.a.string,keyboard:O.a.bool,animation:O.a.bool,dialogComponentClass:R.a,autoFocus:O.a.bool,enforceFocus:O.a.bool,restoreFocus:O.a.bool,show:O.a.bool,onHide:O.a.func,onEnter:O.a.func,onEntering:O.a.func,onEntered:O.a.func,onExit:O.a.func,onExiting:O.a.func,onExited:O.a.func,container:P.a.propTypes.container}),q=f()({},P.a.defaultProps,{animation:!0,dialogComponentClass:j.a}),$={$bs_modal:O.a.shape({onHide:O.a.func})},Y=function(e){function t(n,r){a()(this,t);var o=u()(this,e.call(this,n,r));return o.handleEntering=o.handleEntering.bind(o),o.handleExited=o.handleExited.bind(o),o.handleWindowResize=o.handleWindowResize.bind(o),o.handleDialogClick=o.handleDialogClick.bind(o),o.setModalRef=o.setModalRef.bind(o),o.state={style:{}},o}return c()(t,e),t.prototype.getChildContext=function(){return{$bs_modal:{onHide:this.props.onHide}}},t.prototype.componentWillUnmount=function(){this.handleExited()},t.prototype.setModalRef=function(e){this._modal=e},t.prototype.handleDialogClick=function(e){e.target===e.currentTarget&&this.props.onHide()},t.prototype.handleEntering=function(){m.a.on(window,"resize",this.handleWindowResize),this.updateStyle()},t.prototype.handleExited=function(){m.a.off(window,"resize",this.handleWindowResize)},t.prototype.handleWindowResize=function(){this.updateStyle()},t.prototype.updateStyle=function(){if(_.a){var e=this._modal.getDialogElement(),t=e.scrollHeight,n=g()(e),r=I()(S.a.findDOMNode(this.props.container||n.body)),o=t>n.documentElement.clientHeight;this.setState({style:{paddingRight:r&&!o?E()():void 0,paddingLeft:!r&&o?E()():void 0}})}},t.prototype.render=function(){var e=this.props,r=e.backdrop,i=e.backdropClassName,a=e.animation,s=e.show,u=e.dialogComponentClass,l=e.className,c=e.style,p=e.children,d=e.onEntering,v=e.onExited,m=o()(e,["backdrop","backdropClassName","animation","show","dialogComponentClass","className","style","children","onEntering","onExited"]),y=n.i(W.a)(m,P.a),g=y[0],b=y[1],_=s&&!a&&"in";return w.a.createElement(P.a,f()({},g,{ref:this.setModalRef,show:s,onEntering:n.i(K.a)(d,this.handleEntering),onExited:n.i(K.a)(v,this.handleExited),backdrop:r,backdropClassName:h()(n.i(V.prefix)(m,"backdrop"),i,_),containerClassName:n.i(V.prefix)(m,"open"),transition:a?D.a:void 0,dialogTransitionTimeout:t.TRANSITION_DURATION,backdropTransitionTimeout:t.BACKDROP_TRANSITION_DURATION}),w.a.createElement(u,f()({},b,{style:f()({},this.state.style,c),className:h()(l,_),onClick:!0===r?this.handleDialogClick:null}),p))},t}(w.a.Component);Y.propTypes=z,Y.defaultProps=q,Y.childContextTypes=$,Y.Body=L.a,Y.Header=B.a,Y.Title=F.a,Y.Footer=U.a,Y.Dialog=j.a,Y.TRANSITION_DURATION=300,Y.BACKDROP_TRANSITION_DURATION=150,t.a=n.i(V.bsClass)("modal",n.i(V.bsSizes)([H.b.LARGE,H.b.SMALL],Y))},function(e,t,n){"use strict";var r=n(4),o=n.n(r),i=n(5),a=n.n(i),s=n(1),u=n.n(s),l=n(3),c=n.n(l),p=n(2),f=n.n(p),d=n(6),h=n.n(d),v=n(0),m=n.n(v),y=n(7),g=n.n(y),b=n(8),_=n(16),C={dialogClassName:g.a.string},E=function(e){function t(){return u()(this,t),c()(this,e.apply(this,arguments))}return f()(t,e),t.prototype.render=function(){var e,t=this.props,r=t.dialogClassName,i=t.className,s=t.style,u=t.children,l=a()(t,["dialogClassName","className","style","children"]),c=n.i(b.splitBsProps)(l),p=c[0],f=c[1],d=n.i(b.prefix)(p),v=o()({display:"block"},s),y=o()({},n.i(b.getClassSet)(p),(e={},e[d]=!1,e[n.i(b.prefix)(p,"dialog")]=!0,e));return m.a.createElement("div",o()({},f,{tabIndex:"-1",role:"dialog",style:v,className:h()(i,d)}),m.a.createElement("div",{className:h()(r,y)},m.a.createElement("div",{className:n.i(b.prefix)(p,"content"),role:"document"},u)))},t}(m.a.Component);E.propTypes=C,t.a=n.i(b.bsClass)("modal",n.i(b.bsSizes)([_.b.LARGE,_.b.SMALL],E))},function(e,t,n){"use strict";var r=n(5),o=n.n(r),i=n(1),a=n.n(i),s=n(3),u=n.n(s),l=n(2),c=n.n(l),p=n(4),f=n.n(p),d=n(6),h=n.n(d),v=n(0),m=n.n(v),y=n(7),g=n.n(y),b=n(62),_=n(65),C=n(19),E=f()({},b.a.propTypes,{title:g.a.node.isRequired,noCaret:g.a.bool,active:g.a.bool,children:g.a.node}),x=function(e){function t(){return a()(this,t),u()(this,e.apply(this,arguments))}return c()(t,e),t.prototype.isActive=function(e,t,n){var r=e.props,o=this;return!!(r.active||null!=t&&r.eventKey===t||n&&r.href===n)||(!!C.a.some(r.children,function(e){return o.isActive(e,t,n)})||r.active)},t.prototype.render=function(){var e=this,t=this.props,r=t.title,i=t.activeKey,a=t.activeHref,s=t.className,u=t.style,l=t.children,c=o()(t,["title","activeKey","activeHref","className","style","children"]),p=this.isActive(this,i,a);delete c.active,delete c.eventKey;var d=n.i(_.a)(c,b.a.ControlledComponent),v=d[0],y=d[1];return m.a.createElement(b.a,f()({},v,{componentClass:"li",className:h()(s,{active:p}),style:u}),m.a.createElement(b.a.Toggle,f()({},y,{useAnchor:!0}),r),m.a.createElement(b.a.Menu,null,C.a.map(l,function(t){return m.a.cloneElement(t,{active:e.isActive(t,i,a)})})))},t}(m.a.Component);x.propTypes=E,t.a=x},function(e,t,n){"use strict";function r(e,t,r){var o=function(e,r){var o=r.$bs_navbar,a=void 0===o?{bsClass:"navbar"}:o,u=e.componentClass,l=e.className,c=e.pullRight,p=e.pullLeft,f=s()(e,["componentClass","className","pullRight","pullLeft"]);return y.a.createElement(u,i()({},f,{className:v()(l,n.i(k.prefix)(a,t),c&&n.i(k.prefix)(a,"right"),p&&n.i(k.prefix)(a,"left"))}))};return o.displayName=r,o.propTypes={componentClass:C.a,pullRight:b.a.bool,pullLeft:b.a.bool},o.defaultProps={componentClass:e,pullRight:!1,pullLeft:!1},o.contextTypes={$bs_navbar:b.a.shape({bsClass:b.a.string})},o}var o=n(4),i=n.n(o),a=n(5),s=n.n(a),u=n(1),l=n.n(u),c=n(3),p=n.n(c),f=n(2),d=n.n(f),h=n(6),v=n.n(h),m=n(0),y=n.n(m),g=n(7),b=n.n(g),_=n(12),C=n.n(_),E=n(51),x=n.n(E),w=n(138),T=n(146),O=n(300),N=n(301),S=n(302),k=n(8),P=n(16),M=n(15),I={fixedTop:b.a.bool,fixedBottom:b.a.bool,staticTop:b.a.bool,inverse:b.a.bool,fluid:b.a.bool,componentClass:C.a,onToggle:b.a.func,onSelect:b.a.func,collapseOnSelect:b.a.bool,expanded:b.a.bool,role:b.a.string},A={componentClass:"nav",fixedTop:!1,fixedBottom:!1,staticTop:!1,inverse:!1,fluid:!1,collapseOnSelect:!1},R={$bs_navbar:b.a.shape({bsClass:b.a.string,expanded:b.a.bool,onToggle:b.a.func.isRequired,onSelect:b.a.func})},D=function(e){function t(n,r){l()(this,t);var o=p()(this,e.call(this,n,r));return o.handleToggle=o.handleToggle.bind(o),o.handleCollapse=o.handleCollapse.bind(o),o}return d()(t,e),t.prototype.getChildContext=function(){var e=this.props,t=e.bsClass,r=e.expanded,o=e.onSelect,i=e.collapseOnSelect;return{$bs_navbar:{bsClass:t,expanded:r,onToggle:this.handleToggle,onSelect:n.i(M.a)(o,i?this.handleCollapse:null)}}},t.prototype.handleCollapse=function(){var e=this.props,t=e.onToggle;e.expanded&&t(!1)},t.prototype.handleToggle=function(){var e=this.props;(0,e.onToggle)(!e.expanded)},t.prototype.render=function(){var e,t=this.props,r=t.componentClass,o=t.fixedTop,a=t.fixedBottom,u=t.staticTop,l=t.inverse,c=t.fluid,p=t.className,f=t.children,d=s()(t,["componentClass","fixedTop","fixedBottom","staticTop","inverse","fluid","className","children"]),h=n.i(k.splitBsPropsAndOmit)(d,["expanded","onToggle","onSelect","collapseOnSelect"]),m=h[0],g=h[1];void 0===g.role&&"nav"!==r&&(g.role="navigation"),l&&(m.bsStyle=P.d.INVERSE);var b=i()({},n.i(k.getClassSet)(m),(e={},e[n.i(k.prefix)(m,"fixed-top")]=o,e[n.i(k.prefix)(m,"fixed-bottom")]=a,e[n.i(k.prefix)(m,"static-top")]=u,e));return y.a.createElement(r,i()({},g,{className:v()(p,b)}),y.a.createElement(w.a,{fluid:c},f))},t}(y.a.Component);D.propTypes=I,D.defaultProps=A,D.childContextTypes=R,n.i(k.bsClass)("navbar",D);var L=x()(D,{expanded:"onToggle"});L.Brand=T.a,L.Header=N.a,L.Toggle=S.a,L.Collapse=O.a,L.Form=r("div","form","NavbarForm"),L.Text=r("p","text","NavbarText"),L.Link=r("a","link","NavbarLink"),t.a=n.i(k.bsStyles)([P.d.DEFAULT,P.d.INVERSE],P.d.DEFAULT,L)},function(e,t,n){"use strict";var r=n(4),o=n.n(r),i=n(5),a=n.n(i),s=n(1),u=n.n(s),l=n(3),c=n.n(l),p=n(2),f=n.n(p),d=n(0),h=n.n(d),v=n(7),m=n.n(v),y=n(87),g=n(8),b={$bs_navbar:m.a.shape({bsClass:m.a.string,expanded:m.a.bool})},_=function(e){function t(){return u()(this,t),c()(this,e.apply(this,arguments))}return f()(t,e),t.prototype.render=function(){var e=this.props,t=e.children,r=a()(e,["children"]),i=this.context.$bs_navbar||{bsClass:"navbar"},s=n.i(g.prefix)(i,"collapse");return h.a.createElement(y.a,o()({in:i.expanded},r),h.a.createElement("div",{className:s},t))},t}(h.a.Component);_.contextTypes=b,t.a=_},function(e,t,n){"use strict";var r=n(4),o=n.n(r),i=n(5),a=n.n(i),s=n(1),u=n.n(s),l=n(3),c=n.n(l),p=n(2),f=n.n(p),d=n(6),h=n.n(d),v=n(0),m=n.n(v),y=n(7),g=n.n(y),b=n(8),_={$bs_navbar:g.a.shape({bsClass:g.a.string})},C=function(e){function t(){return u()(this,t),c()(this,e.apply(this,arguments))}return f()(t,e),t.prototype.render=function(){var e=this.props,t=e.className,r=a()(e,["className"]),i=this.context.$bs_navbar||{bsClass:"navbar"},s=n.i(b.prefix)(i,"header");return m.a.createElement("div",o()({},r,{className:h()(t,s)}))},t}(m.a.Component);C.contextTypes=_,t.a=C},function(e,t,n){"use strict";var r=n(4),o=n.n(r),i=n(5),a=n.n(i),s=n(1),u=n.n(s),l=n(3),c=n.n(l),p=n(2),f=n.n(p),d=n(6),h=n.n(d),v=n(0),m=n.n(v),y=n(7),g=n.n(y),b=n(8),_=n(15),C={onClick:g.a.func,children:g.a.node},E={$bs_navbar:g.a.shape({bsClass:g.a.string,expanded:g.a.bool,onToggle:g.a.func.isRequired})},x=function(e){function t(){return u()(this,t),c()(this,e.apply(this,arguments))}return f()(t,e),t.prototype.render=function(){var e=this.props,t=e.onClick,r=e.className,i=e.children,s=a()(e,["onClick","className","children"]),u=this.context.$bs_navbar||{bsClass:"navbar"},l=o()({type:"button"},s,{onClick:n.i(_.a)(t,u.onToggle),className:h()(r,n.i(b.prefix)(u,"toggle"),!u.expanded&&"collapsed")});return i?m.a.createElement("button",l,i):m.a.createElement("button",l,m.a.createElement("span",{className:"sr-only"},"Toggle navigation"),m.a.createElement("span",{className:"icon-bar"}),m.a.createElement("span",{className:"icon-bar"}),m.a.createElement("span",{className:"icon-bar"}))},t}(m.a.Component);x.propTypes=C,x.contextTypes=E,t.a=x},function(e,t,n){"use strict";function r(e,t){return Array.isArray(t)?t.indexOf(e)>=0:e===t}var o=n(5),i=n.n(o),a=n(1),s=n.n(a),u=n(3),l=n.n(u),c=n(2),p=n.n(c),f=n(4),d=n.n(f),h=n(36),v=n.n(h),m=n(0),y=n.n(m),g=n(7),b=n.n(g),_=n(17),C=n.n(_),E=n(22),x=(n.n(E),n(147)),w=n(15),T=b.a.oneOf(["click","hover","focus"]),O=d()({},x.a.propTypes,{trigger:b.a.oneOfType([T,b.a.arrayOf(T)]),delay:b.a.number,delayShow:b.a.number,delayHide:b.a.number,defaultOverlayShown:b.a.bool,overlay:b.a.node.isRequired,onBlur:b.a.func,onClick:b.a.func,onFocus:b.a.func,onMouseOut:b.a.func,onMouseOver:b.a.func,target:b.a.oneOf([null]),onHide:b.a.oneOf([null]),show:b.a.oneOf([null])}),N={defaultOverlayShown:!1,trigger:["hover","focus"]},S=function(e){function t(n,r){s()(this,t);var o=l()(this,e.call(this,n,r));return o.handleToggle=o.handleToggle.bind(o),o.handleDelayedShow=o.handleDelayedShow.bind(o),o.handleDelayedHide=o.handleDelayedHide.bind(o),o.handleHide=o.handleHide.bind(o),o.handleMouseOver=function(e){return o.handleMouseOverOut(o.handleDelayedShow,e)},o.handleMouseOut=function(e){return o.handleMouseOverOut(o.handleDelayedHide,e)},o._mountNode=null,o.state={show:n.defaultOverlayShown},o}return p()(t,e),t.prototype.componentDidMount=function(){this._mountNode=document.createElement("div"),this.renderOverlay()},t.prototype.componentDidUpdate=function(){this.renderOverlay()},t.prototype.componentWillUnmount=function(){C.a.unmountComponentAtNode(this._mountNode),this._mountNode=null,clearTimeout(this._hoverShowDelay),clearTimeout(this._hoverHideDelay)},t.prototype.handleDelayedHide=function(){var e=this;if(null!=this._hoverShowDelay)return clearTimeout(this._hoverShowDelay),void(this._hoverShowDelay=null);if(this.state.show&&null==this._hoverHideDelay){var t=null!=this.props.delayHide?this.props.delayHide:this.props.delay;if(!t)return void this.hide();this._hoverHideDelay=setTimeout(function(){e._hoverHideDelay=null,e.hide()},t)}},t.prototype.handleDelayedShow=function(){var e=this;if(null!=this._hoverHideDelay)return clearTimeout(this._hoverHideDelay),void(this._hoverHideDelay=null);if(!this.state.show&&null==this._hoverShowDelay){var t=null!=this.props.delayShow?this.props.delayShow:this.props.delay;if(!t)return void this.show();this._hoverShowDelay=setTimeout(function(){e._hoverShowDelay=null,e.show()},t)}},t.prototype.handleHide=function(){this.hide()},t.prototype.handleMouseOverOut=function(e,t){var n=t.currentTarget,r=t.relatedTarget||t.nativeEvent.toElement;r&&r===n||v()(n,r)||e(t)},t.prototype.handleToggle=function(){this.state.show?this.hide():this.show()},t.prototype.hide=function(){this.setState({show:!1})},t.prototype.makeOverlay=function(e,t){return y.a.createElement(x.a,d()({},t,{show:this.state.show,onHide:this.handleHide,target:this}),e)},t.prototype.show=function(){this.setState({show:!0})},t.prototype.renderOverlay=function(){C.a.unstable_renderSubtreeIntoContainer(this,this._overlay,this._mountNode)},t.prototype.render=function(){var e=this.props,t=e.trigger,o=e.overlay,a=e.children,s=e.onBlur,u=e.onClick,l=e.onFocus,c=e.onMouseOut,p=e.onMouseOver,f=i()(e,["trigger","overlay","children","onBlur","onClick","onFocus","onMouseOut","onMouseOver"]);delete f.delay,delete f.delayShow,delete f.delayHide,delete f.defaultOverlayShown;var d=y.a.Children.only(a),h=d.props,v={};return this.state.show&&(v["aria-describedby"]=o.props.id),v.onClick=n.i(w.a)(h.onClick,u),r("click",t)&&(v.onClick=n.i(w.a)(v.onClick,this.handleToggle)),r("hover",t)&&(v.onMouseOver=n.i(w.a)(h.onMouseOver,p,this.handleMouseOver),v.onMouseOut=n.i(w.a)(h.onMouseOut,c,this.handleMouseOut)),r("focus",t)&&(v.onFocus=n.i(w.a)(h.onFocus,l,this.handleDelayedShow),v.onBlur=n.i(w.a)(h.onBlur,s,this.handleDelayedHide)),this._overlay=this.makeOverlay(o,f),n.i(m.cloneElement)(d,v)},t}(y.a.Component);S.propTypes=O,S.defaultProps=N,t.a=S},function(e,t,n){"use strict";var r=n(4),o=n.n(r),i=n(5),a=n.n(i),s=n(1),u=n.n(s),l=n(3),c=n.n(l),p=n(2),f=n.n(p),d=n(6),h=n.n(d),v=n(0),m=n.n(v),y=n(8),g=function(e){function t(){return u()(this,t),c()(this,e.apply(this,arguments))}return f()(t,e),t.prototype.render=function(){var e=this.props,t=e.className,r=e.children,i=a()(e,["className","children"]),s=n.i(y.splitBsProps)(i),u=s[0],l=s[1],c=n.i(y.getClassSet)(u);return m.a.createElement("div",o()({},l,{className:h()(t,c)}),m.a.createElement("h1",null,r))},t}(m.a.Component);t.a=n.i(y.bsClass)("page-header",g)},function(e,t,n){"use strict";var r=n(148),o=n(325);t.a=o.a.wrapper(r.a,"``","``")},function(e,t,n){"use strict";var r=n(4),o=n.n(r),i=n(5),a=n.n(i),s=n(1),u=n.n(s),l=n(3),c=n.n(l),p=n(2),f=n.n(p),d=n(6),h=n.n(d),v=n(0),m=n.n(v),y=n(7),g=n.n(y),b=n(148),_=n(8),C=n(15),E=n(19),x={onSelect:g.a.func},w=function(e){function t(){return u()(this,t),c()(this,e.apply(this,arguments))}return f()(t,e),t.prototype.render=function(){var e=this.props,t=e.onSelect,r=e.className,i=e.children,s=a()(e,["onSelect","className","children"]),u=n.i(_.splitBsProps)(s),l=u[0],c=u[1],p=n.i(_.getClassSet)(l);return m.a.createElement("ul",o()({},c,{className:h()(r,p)}),E.a.map(i,function(e){return n.i(v.cloneElement)(e,{onSelect:n.i(C.a)(e.props.onSelect,t)})}))},t}(m.a.Component);w.propTypes=x,w.Item=b.a,t.a=n.i(_.bsClass)("pager",w)},function(e,t,n){"use strict";var r=n(5),o=n.n(r),i=n(4),a=n.n(i),s=n(1),u=n.n(s),l=n(3),c=n.n(l),p=n(2),f=n.n(p),d=n(6),h=n.n(d),v=n(0),m=n.n(v),y=n(7),g=n.n(y),b=n(12),_=n.n(b),C=n(149),E=n(8),x={activePage:g.a.number,items:g.a.number,maxButtons:g.a.number,boundaryLinks:g.a.bool,ellipsis:g.a.oneOfType([g.a.bool,g.a.node]),first:g.a.oneOfType([g.a.bool,g.a.node]),last:g.a.oneOfType([g.a.bool,g.a.node]),prev:g.a.oneOfType([g.a.bool,g.a.node]),next:g.a.oneOfType([g.a.bool,g.a.node]),onSelect:g.a.func,buttonComponentClass:_.a},w={activePage:1,items:1,maxButtons:0,first:!1,last:!1,prev:!1,next:!1,ellipsis:!0,boundaryLinks:!1},T=function(e){function t(){return u()(this,t),c()(this,e.apply(this,arguments))}return f()(t,e),t.prototype.renderPageButtons=function(e,t,n,r,o,i){var s=[],u=void 0,l=void 0;n&&n1&&(u>2&&s.unshift(m.a.createElement(C.a,{key:"ellipsisFirst",disabled:!0,componentClass:i.componentClass},m.a.createElement("span",{"aria-label":"More"},!0===o?"…":o))),s.unshift(m.a.createElement(C.a,a()({},i,{key:1,eventKey:1,active:!1}),"1"))),o&&l=r}),m.a.createElement("span",{"aria-label":"Next"},!0===f?"›":f)),c&&m.a.createElement(C.a,a()({},T,{eventKey:r,disabled:t>=r}),m.a.createElement("span",{"aria-label":"Last"},!0===c?"»":c)))},t}(m.a.Component);T.propTypes=x,T.defaultProps=w,t.a=n.i(E.bsClass)("pagination",T)},function(e,t,n){"use strict";var r=n(34),o=n.n(r),i=n(5),a=n.n(i),s=n(4),u=n.n(s),l=n(1),c=n.n(l),p=n(3),f=n.n(p),d=n(2),h=n.n(d),v=n(6),m=n.n(v),y=n(0),g=n.n(y),b=n(7),_=n.n(b),C=n(87),E=n(8),x=n(16),w={collapsible:_.a.bool,onSelect:_.a.func,header:_.a.node,id:_.a.oneOfType([_.a.string,_.a.number]),footer:_.a.node,defaultExpanded:_.a.bool,expanded:_.a.bool,eventKey:_.a.any,headerRole:_.a.string,panelRole:_.a.string,onEnter:_.a.func,onEntering:_.a.func,onEntered:_.a.func,onExit:_.a.func,onExiting:_.a.func,onExited:_.a.func},T={defaultExpanded:!1},O=function(e){function t(n,r){c()(this,t);var o=f()(this,e.call(this,n,r));return o.handleClickTitle=o.handleClickTitle.bind(o),o.state={expanded:o.props.defaultExpanded},o}return h()(t,e),t.prototype.handleClickTitle=function(e){e.persist(),e.selected=!0,this.props.onSelect?this.props.onSelect(this.props.eventKey,e):e.preventDefault(),e.selected&&this.setState({expanded:!this.state.expanded})},t.prototype.renderAnchor=function(e,t,n,r){return g.a.createElement("a",{role:n,href:t&&"#"+t,onClick:this.handleClickTitle,"aria-controls":t,"aria-expanded":r,"aria-selected":r,className:r?null:"collapsed"},e)},t.prototype.renderBody=function(e,t){function r(){i.length&&(o.push(g.a.createElement("div",{key:o.length,className:a},i)),i=[])}var o=[],i=[],a=n.i(E.prefix)(t,"body");return g.a.Children.toArray(e).forEach(function(e){if(g.a.isValidElement(e)&&e.props.fill)return r(),void o.push(n.i(y.cloneElement)(e,{fill:void 0}));i.push(e)}),r(),o},t.prototype.renderCollapsibleBody=function(e,t,r,o,i,a){return g.a.createElement(C.a,u()({in:t},a),g.a.createElement("div",{id:e,role:r,className:n.i(E.prefix)(i,"collapse"),"aria-hidden":!t},this.renderBody(o,i)))},t.prototype.renderHeader=function(e,t,r,o,i,a){var s=n.i(E.prefix)(a,"title");return e?g.a.isValidElement(t)?n.i(y.cloneElement)(t,{className:m()(t.props.className,s),children:this.renderAnchor(t.props.children,r,o,i)}):g.a.createElement("h4",{role:"presentation",className:s},this.renderAnchor(t,r,o,i)):g.a.isValidElement(t)?n.i(y.cloneElement)(t,{className:m()(t.props.className,s)}):t},t.prototype.render=function(){var e=this.props,t=e.collapsible,r=e.header,o=e.id,i=e.footer,s=e.expanded,l=e.headerRole,c=e.panelRole,p=e.className,f=e.children,d=e.onEnter,h=e.onEntering,v=e.onEntered,y=e.onExit,b=e.onExiting,_=e.onExited,C=a()(e,["collapsible","header","id","footer","expanded","headerRole","panelRole","className","children","onEnter","onEntering","onEntered","onExit","onExiting","onExited"]),x=n.i(E.splitBsPropsAndOmit)(C,["defaultExpanded","eventKey","onSelect"]),w=x[0],T=x[1],O=null!=s?s:this.state.expanded,N=n.i(E.getClassSet)(w);return g.a.createElement("div",u()({},T,{className:m()(p,N),id:t?null:o}),r&&g.a.createElement("div",{className:n.i(E.prefix)(w,"heading")},this.renderHeader(t,r,o,l,O,w)),t?this.renderCollapsibleBody(o,O,c,f,w,{onEnter:d,onEntering:h,onEntered:v,onExit:y,onExiting:b,onExited:_}):this.renderBody(f,w),i&&g.a.createElement("div",{className:n.i(E.prefix)(w,"footer")},i))},t}(g.a.Component);O.propTypes=w,O.defaultProps=T,t.a=n.i(E.bsClass)("panel",n.i(E.bsStyles)([].concat(o()(x.c),[x.d.DEFAULT,x.d.PRIMARY]),x.d.DEFAULT,O))},function(e,t,n){"use strict";var r=n(4),o=n.n(r),i=n(5),a=n.n(i),s=n(1),u=n.n(s),l=n(3),c=n.n(l),p=n(2),f=n.n(p),d=n(6),h=n.n(d),v=n(0),m=n.n(v),y=n(7),g=n.n(y),b=n(60),_=n.n(b),C=n(8),E={id:_()(g.a.oneOfType([g.a.string,g.a.number])),placement:g.a.oneOf(["top","right","bottom","left"]),positionTop:g.a.oneOfType([g.a.number,g.a.string]),positionLeft:g.a.oneOfType([g.a.number,g.a.string]),arrowOffsetTop:g.a.oneOfType([g.a.number,g.a.string]),arrowOffsetLeft:g.a.oneOfType([g.a.number,g.a.string]),title:g.a.node},x={placement:"right"},w=function(e){function t(){return u()(this,t),c()(this,e.apply(this,arguments))}return f()(t,e),t.prototype.render=function(){var e,t=this.props,r=t.placement,i=t.positionTop,s=t.positionLeft,u=t.arrowOffsetTop,l=t.arrowOffsetLeft,c=t.title,p=t.className,f=t.style,d=t.children,v=a()(t,["placement","positionTop","positionLeft","arrowOffsetTop","arrowOffsetLeft","title","className","style","children"]),y=n.i(C.splitBsProps)(v),g=y[0],b=y[1],_=o()({},n.i(C.getClassSet)(g),(e={},e[r]=!0,e)),E=o()({display:"block",top:i,left:s},f),x={top:u,left:l};return m.a.createElement("div",o()({},b,{role:"tooltip",className:h()(p,_),style:E}),m.a.createElement("div",{className:"arrow",style:x}),c&&m.a.createElement("h3",{className:n.i(C.prefix)(g,"title")},c),m.a.createElement("div",{className:n.i(C.prefix)(g,"content")},d))},t}(m.a.Component);w.propTypes=E,w.defaultProps=x,t.a=n.i(C.bsClass)("popover",w)},function(e,t,n){"use strict";function r(e,t,n){var r=e[t];if(!r)return null;var o=null;return _.a.Children.forEach(r,function(e){if(!o&&e.type!==k){var t=_.a.isValidElement(e)?e.type.displayName||e.type.name||e.type:e;o=new Error("Children of "+n+" can contain only ProgressBar components. Found "+t+".")}}),o}function o(e,t,n){var r=(e-t)/(n-t)*100;return Math.round(r*O)/O}var i=n(34),a=n.n(i),s=n(4),u=n.n(s),l=n(5),c=n.n(l),p=n(1),f=n.n(p),d=n(3),h=n.n(d),v=n(2),m=n.n(v),y=n(6),g=n.n(y),b=n(0),_=n.n(b),C=n(7),E=n.n(C),x=n(8),w=n(16),T=n(19),O=1e3,N={min:E.a.number,now:E.a.number,max:E.a.number,label:E.a.node,srOnly:E.a.bool,striped:E.a.bool,active:E.a.bool,children:r,isChild:E.a.bool},S={min:0,max:100,active:!1,isChild:!1,srOnly:!1,striped:!1},k=function(e){function t(){return f()(this,t),h()(this,e.apply(this,arguments))}return m()(t,e),t.prototype.renderProgressBar=function(e){var t,r=e.min,i=e.now,a=e.max,s=e.label,l=e.srOnly,p=e.striped,f=e.active,d=e.className,h=e.style,v=c()(e,["min","now","max","label","srOnly","striped","active","className","style"]),m=n.i(x.splitBsProps)(v),y=m[0],b=m[1],C=u()({},n.i(x.getClassSet)(y),(t={active:f},t[n.i(x.prefix)(y,"striped")]=f||p,t));return _.a.createElement("div",u()({},b,{role:"progressbar",className:g()(d,C),style:u()({width:o(i,r,a)+"%"},h),"aria-valuenow":i,"aria-valuemin":r,"aria-valuemax":a}),l?_.a.createElement("span",{className:"sr-only"},s):s)},t.prototype.render=function(){var e=this.props,t=e.isChild,r=c()(e,["isChild"]);if(t)return this.renderProgressBar(r);var o=r.min,i=r.now,a=r.max,s=r.label,l=r.srOnly,p=r.striped,f=r.active,d=r.bsClass,h=r.bsStyle,v=r.className,m=r.children,y=c()(r,["min","now","max","label","srOnly","striped","active","bsClass","bsStyle","className","children"]);return _.a.createElement("div",u()({},y,{className:g()(v,"progress")}),m?T.a.map(m,function(e){return n.i(b.cloneElement)(e,{isChild:!0})}):this.renderProgressBar({min:o,now:i,max:a,label:s,srOnly:l,striped:p,active:f,bsClass:d,bsStyle:h}))},t}(_.a.Component);k.propTypes=N,k.defaultProps=S,t.a=n.i(x.bsClass)("progress-bar",n.i(x.bsStyles)(a()(w.c),k))},function(e,t,n){"use strict";var r=n(4),o=n.n(r),i=n(5),a=n.n(i),s=n(1),u=n.n(s),l=n(3),c=n.n(l),p=n(2),f=n.n(p),d=n(6),h=n.n(d),v=n(0),m=n.n(v),y=n(7),g=n.n(y),b=n(22),_=(n.n(b),n(8)),C={inline:g.a.bool,disabled:g.a.bool,title:g.a.string,validationState:g.a.oneOf(["success","warning","error",null]),inputRef:g.a.func},E={inline:!1,disabled:!1,title:""},x=function(e){function t(){return u()(this,t),c()(this,e.apply(this,arguments))}return f()(t,e),t.prototype.render=function(){var e=this.props,t=e.inline,r=e.disabled,i=e.validationState,s=e.inputRef,u=e.className,l=e.style,c=e.title,p=e.children,f=a()(e,["inline","disabled","validationState","inputRef","className","style","title","children"]),d=n.i(_.splitBsProps)(f),v=d[0],y=d[1],g=m.a.createElement("input",o()({},y,{ref:s,type:"radio",disabled:r}));if(t){var b,C=(b={},b[n.i(_.prefix)(v,"inline")]=!0,b.disabled=r,b);return m.a.createElement("label",{className:h()(u,C),style:l,title:c},g,p)}var E=o()({},n.i(_.getClassSet)(v),{disabled:r});return i&&(E["has-"+i]=!0),m.a.createElement("div",{className:h()(u,E),style:l},m.a.createElement("label",{title:c},g,p))},t}(m.a.Component);x.propTypes=C,x.defaultProps=E,t.a=n.i(_.bsClass)("radio",x)},function(e,t,n){"use strict";var r=n(4),o=n.n(r),i=n(5),a=n.n(i),s=n(1),u=n.n(s),l=n(3),c=n.n(l),p=n(2),f=n.n(p),d=n(6),h=n.n(d),v=n(0),m=n.n(v),y=n(7),g=n.n(y),b=n(22),_=(n.n(b),n(8)),C={children:g.a.element.isRequired,a16by9:g.a.bool,a4by3:g.a.bool},E={a16by9:!1,a4by3:!1},x=function(e){function t(){return u()(this,t),c()(this,e.apply(this,arguments))}return f()(t,e),t.prototype.render=function(){var e,t=this.props,r=t.a16by9,i=t.a4by3,s=t.className,u=t.children,l=a()(t,["a16by9","a4by3","className","children"]),c=n.i(_.splitBsProps)(l),p=c[0],f=c[1],d=o()({},n.i(_.getClassSet)(p),(e={},e[n.i(_.prefix)(p,"16by9")]=r,e[n.i(_.prefix)(p,"4by3")]=i,e));return m.a.createElement("div",{className:h()(d)},n.i(v.cloneElement)(u,o()({},f,{className:h()(s,n.i(_.prefix)(p,"item"))})))},t}(m.a.Component);x.propTypes=C,x.defaultProps=E,t.a=n.i(_.bsClass)("embed-responsive",x)},function(e,t,n){"use strict";var r=n(4),o=n.n(r),i=n(5),a=n.n(i),s=n(1),u=n.n(s),l=n(3),c=n.n(l),p=n(2),f=n.n(p),d=n(6),h=n.n(d),v=n(0),m=n.n(v),y=n(12),g=n.n(y),b=n(8),_={componentClass:g.a},C={componentClass:"div"},E=function(e){function t(){return u()(this,t),c()(this,e.apply(this,arguments))}return f()(t,e),t.prototype.render=function(){var e=this.props,t=e.componentClass,r=e.className,i=a()(e,["componentClass","className"]),s=n.i(b.splitBsProps)(i),u=s[0],l=s[1],c=n.i(b.getClassSet)(u);return m.a.createElement(t,o()({},l,{className:h()(r,c)}))},t}(m.a.Component);E.propTypes=_,E.defaultProps=C,t.a=n.i(b.bsClass)("row",E)},function(e,t,n){"use strict";var r=n(5),o=n.n(r),i=n(1),a=n.n(i),s=n(3),u=n.n(s),l=n(2),c=n.n(l),p=n(4),f=n.n(p),d=n(0),h=n.n(d),v=n(7),m=n.n(v),y=n(45),g=n(62),b=n(315),_=n(65),C=f()({},g.a.propTypes,{bsStyle:m.a.string,bsSize:m.a.string,href:m.a.string,onClick:m.a.func,title:m.a.node.isRequired,toggleLabel:m.a.string,children:m.a.node}),E=function(e){function t(){return a()(this,t),u()(this,e.apply(this,arguments))}return c()(t,e),t.prototype.render=function(){var e=this.props,t=e.bsSize,r=e.bsStyle,i=e.title,a=e.toggleLabel,s=e.children,u=o()(e,["bsSize","bsStyle","title","toggleLabel","children"]),l=n.i(_.a)(u,g.a.ControlledComponent),c=l[0],p=l[1];return h.a.createElement(g.a,f()({},c,{bsSize:t,bsStyle:r}),h.a.createElement(y.a,f()({},p,{disabled:u.disabled,bsSize:t,bsStyle:r}),i),h.a.createElement(b.a,{"aria-label":a||i,bsSize:t,bsStyle:r}),h.a.createElement(g.a.Menu,null,s))},t}(h.a.Component);E.propTypes=C,E.Toggle=b.a,t.a=E},function(e,t,n){"use strict";var r=n(4),o=n.n(r),i=n(1),a=n.n(i),s=n(3),u=n.n(s),l=n(2),c=n.n(l),p=n(0),f=n.n(p),d=n(137),h=function(e){function t(){return a()(this,t),u()(this,e.apply(this,arguments))}return c()(t,e),t.prototype.render=function(){return f.a.createElement(d.a,o()({},this.props,{useAnchor:!1,noCaret:!1}))},t}(f.a.Component);h.defaultProps=d.a.defaultProps,t.a=h},function(e,t,n){"use strict";var r=n(1),o=n.n(r),i=n(3),a=n.n(i),s=n(2),u=n.n(s),l=n(4),c=n.n(l),p=n(0),f=n.n(p),d=n(7),h=n.n(d),v=n(89),m=n(90),y=n(151),g=c()({},y.a.propTypes,{disabled:h.a.bool,title:h.a.node,tabClassName:h.a.string}),b=function(e){function t(){return o()(this,t),a()(this,e.apply(this,arguments))}return u()(t,e),t.prototype.render=function(){var e=c()({},this.props);return delete e.title,delete e.disabled,delete e.tabClassName,f.a.createElement(y.a,e)},t}(f.a.Component);b.propTypes=g,b.Container=v.a,b.Content=m.a,b.Pane=y.a,t.a=b},function(e,t,n){"use strict";var r=n(4),o=n.n(r),i=n(5),a=n.n(i),s=n(1),u=n.n(s),l=n(3),c=n.n(l),p=n(2),f=n.n(p),d=n(6),h=n.n(d),v=n(0),m=n.n(v),y=n(7),g=n.n(y),b=n(8),_={striped:g.a.bool,bordered:g.a.bool,condensed:g.a.bool,hover:g.a.bool,responsive:g.a.bool},C={bordered:!1,condensed:!1,hover:!1,responsive:!1,striped:!1},E=function(e){function t(){return u()(this,t),c()(this,e.apply(this,arguments))}return f()(t,e),t.prototype.render=function(){var e,t=this.props,r=t.striped,i=t.bordered,s=t.condensed,u=t.hover,l=t.responsive,c=t.className,p=a()(t,["striped","bordered","condensed","hover","responsive","className"]),f=n.i(b.splitBsProps)(p),d=f[0],v=f[1],y=o()({},n.i(b.getClassSet)(d),(e={},e[n.i(b.prefix)(d,"striped")]=r,e[n.i(b.prefix)(d,"bordered")]=i,e[n.i(b.prefix)(d,"condensed")]=s,e[n.i(b.prefix)(d,"hover")]=u,e)),g=m.a.createElement("table",o()({},v,{className:h()(c,y)}));return l?m.a.createElement("div",{className:n.i(b.prefix)(d,"responsive")},g):g},t}(m.a.Component);E.propTypes=_,E.defaultProps=C,t.a=n.i(b.bsClass)("table",E)},function(e,t,n){"use strict";function r(e){var t=void 0;return N.a.forEach(e,function(e){null==t&&(t=e.props.eventKey)}),t}var o=n(4),i=n.n(o),a=n(5),s=n.n(a),u=n(1),l=n.n(u),c=n(3),p=n.n(c),f=n(2),d=n.n(f),h=n(0),v=n.n(h),m=n(7),y=n.n(m),g=n(60),b=n.n(g),_=n(51),C=n.n(_),E=n(144),x=n(145),w=n(89),T=n(90),O=n(8),N=n(19),S=w.a.ControlledComponent,k={activeKey:y.a.any,bsStyle:y.a.oneOf(["tabs","pills"]),animation:y.a.bool,id:b()(y.a.oneOfType([y.a.string,y.a.number])),onSelect:y.a.func,mountOnEnter:y.a.bool,unmountOnExit:y.a.bool},P={bsStyle:"tabs",animation:!0,mountOnEnter:!1,unmountOnExit:!1},M=function(e){function t(){return l()(this,t),p()(this,e.apply(this,arguments))}return d()(t,e),t.prototype.renderTab=function(e){var t=e.props,n=t.title,r=t.eventKey,o=t.disabled,i=t.tabClassName;return null==n?null:v.a.createElement(x.a,{eventKey:r,disabled:o,className:i},n)},t.prototype.render=function(){var e=this.props,t=e.id,n=e.onSelect,o=e.animation,a=e.mountOnEnter,u=e.unmountOnExit,l=e.bsClass,c=e.className,p=e.style,f=e.children,d=e.activeKey,h=void 0===d?r(f):d,m=s()(e,["id","onSelect","animation","mountOnEnter","unmountOnExit","bsClass","className","style","children","activeKey"]);return v.a.createElement(S,{id:t,activeKey:h,onSelect:n,className:c,style:p},v.a.createElement("div",null,v.a.createElement(E.a,i()({},m,{role:"tablist"}),N.a.map(f,this.renderTab)),v.a.createElement(T.a,{bsClass:l,animation:o,mountOnEnter:a,unmountOnExit:u},f)))},t}(v.a.Component);M.propTypes=k,M.defaultProps=P,n.i(O.bsClass)("tab",M),t.a=C()(M,{activeKey:"onSelect"})},function(e,t,n){"use strict";var r=n(4),o=n.n(r),i=n(5),a=n.n(i),s=n(1),u=n.n(s),l=n(3),c=n.n(l),p=n(2),f=n.n(p),d=n(6),h=n.n(d),v=n(0),m=n.n(v),y=n(7),g=n.n(y),b=n(24),_=n(8),C={src:g.a.string,alt:g.a.string,href:g.a.string,onError:g.a.func,onLoad:g.a.func},E=function(e){function t(){return u()(this,t),c()(this,e.apply(this,arguments))}return f()(t,e),t.prototype.render=function(){var e=this.props,t=e.src,r=e.alt,i=e.onError,s=e.onLoad,u=e.className,l=e.children,c=a()(e,["src","alt","onError","onLoad","className","children"]),p=n.i(_.splitBsProps)(c),f=p[0],d=p[1],v=d.href?b.a:"div",y=n.i(_.getClassSet)(f);return m.a.createElement(v,o()({},d,{className:h()(u,y)}),m.a.createElement("img",{src:t,alt:r,onError:i,onLoad:s}),l&&m.a.createElement("div",{className:"caption"},l))},t}(m.a.Component);E.propTypes=C,t.a=n.i(_.bsClass)("thumbnail",E)},function(e,t,n){"use strict";var r=n(4),o=n.n(r),i=n(5),a=n.n(i),s=n(1),u=n.n(s),l=n(3),c=n.n(l),p=n(2),f=n.n(p),d=n(7),h=n.n(d),v=n(0),m=n.n(v),y=n(57),g=n.n(y),b=n(51),_=n.n(b),C=n(15),E=n(19),x=n(85),w=n(152),T={name:h.a.string,value:h.a.any,onChange:h.a.func,type:h.a.oneOf(["checkbox","radio"]).isRequired},O={type:"radio"},N=function(e){function t(){return u()(this,t),c()(this,e.apply(this,arguments))}return f()(t,e),t.prototype.getValues=function(){var e=this.props.value;return null==e?[]:[].concat(e)},t.prototype.handleToggle=function(e){var t=this.props,n=t.type,r=t.onChange,o=this.getValues(),i=-1!==o.indexOf(e);if("radio"===n)return void(i||r(e));r(i?o.filter(function(t){return t!==e}):[].concat(o,[e]))},t.prototype.render=function(){var e=this,t=this.props,r=t.children,i=t.type,s=t.name,u=a()(t,["children","type","name"]),l=this.getValues();return"radio"!==i||s||g()(!1),delete u.onChange,delete u.value,m.a.createElement(x.a,o()({},u,{"data-toggle":"buttons"}),E.a.map(r,function(t){var r=t.props,o=r.value,a=r.onChange,u=function(){return e.handleToggle(o)};return m.a.cloneElement(t,{type:i,name:t.name||s,checked:-1!==l.indexOf(o),onChange:n.i(C.a)(a,u)})}))},t}(m.a.Component);N.propTypes=T,N.defaultProps=O;var S=_()(N,{value:"onChange"});S.Button=w.a,t.a=S},function(e,t,n){"use strict";var r=n(4),o=n.n(r),i=n(5),a=n.n(i),s=n(1),u=n.n(s),l=n(3),c=n.n(l),p=n(2),f=n.n(p),d=n(6),h=n.n(d),v=n(0),m=n.n(v),y=n(7),g=n.n(y),b=n(60),_=n.n(b),C=n(8),E={id:_()(g.a.oneOfType([g.a.string,g.a.number])),placement:g.a.oneOf(["top","right","bottom","left"]),positionTop:g.a.oneOfType([g.a.number,g.a.string]),positionLeft:g.a.oneOfType([g.a.number,g.a.string]),arrowOffsetTop:g.a.oneOfType([g.a.number,g.a.string]),arrowOffsetLeft:g.a.oneOfType([g.a.number,g.a.string])},x={placement:"right"},w=function(e){function t(){return u()(this,t),c()(this,e.apply(this,arguments))}return f()(t,e),t.prototype.render=function(){var e,t=this.props,r=t.placement,i=t.positionTop,s=t.positionLeft,u=t.arrowOffsetTop,l=t.arrowOffsetLeft,c=t.className,p=t.style,f=t.children,d=a()(t,["placement","positionTop","positionLeft","arrowOffsetTop","arrowOffsetLeft","className","style","children"]),v=n.i(C.splitBsProps)(d),y=v[0],g=v[1],b=o()({},n.i(C.getClassSet)(y),(e={},e[r]=!0,e)),_=o()({top:i,left:s},p),E={top:u,left:l};return m.a.createElement("div",o()({},g,{role:"tooltip",className:h()(c,b),style:_}),m.a.createElement("div",{className:n.i(C.prefix)(y,"arrow"),style:E}),m.a.createElement("div",{className:n.i(C.prefix)(y,"inner")},f))},t}(m.a.Component);w.propTypes=E,w.defaultProps=x,t.a=n.i(C.bsClass)("tooltip",w)},function(e,t,n){"use strict";var r=n(4),o=n.n(r),i=n(5),a=n.n(i),s=n(1),u=n.n(s),l=n(3),c=n.n(l),p=n(2),f=n.n(p),d=n(6),h=n.n(d),v=n(0),m=n.n(v),y=n(8),g=n(16),b=function(e){function t(){return u()(this,t),c()(this,e.apply(this,arguments))}return f()(t,e),t.prototype.render=function(){var e=this.props,t=e.className,r=a()(e,["className"]),i=n.i(y.splitBsProps)(r),s=i[0],u=i[1],l=n.i(y.getClassSet)(s);return m.a.createElement("div",o()({},u,{className:h()(t,l)}))},t}(m.a.Component);t.a=n.i(y.bsClass)("well",n.i(y.bsSizes)([g.b.LARGE,g.b.SMALL],b))},function(e,t,n){"use strict";function r(){for(var e=arguments.length,t=Array(e),n=0;n1&&(o=t,1))}),o?new Error("(children) "+r+" - Duplicate children detected of bsRole: "+o+". Only one child each allowed with the following bsRoles: "+t.join(", ")):null})}t.a=r,t.b=o;var i=n(61),a=n.n(i),s=n(19)},function(e,t,n){"use strict";function r(e,t,n){e.addEventListener(t,n,!1)}function o(e,t,n){e.removeEventListener(t,n,!1)}var i=!("undefined"==typeof window||!window.document||!window.document.createElement),a={transitionend:{transition:"transitionend",WebkitTransition:"webkitTransitionEnd",MozTransition:"mozTransitionEnd",OTransition:"oTransitionEnd",msTransition:"MSTransitionEnd"},animationend:{animation:"animationend",WebkitAnimation:"webkitAnimationEnd",MozAnimation:"mozAnimationEnd",OAnimation:"oAnimationEnd",msAnimation:"MSAnimationEnd"}},s=[];i&&function(){var e=document.createElement("div"),t=e.style;"AnimationEvent"in window||delete a.animationend.animation,"TransitionEvent"in window||delete a.transitionend.transition;for(var n in a){var r=a[n];for(var o in r)if(o in t){s.push(r[o]);break}}}();var u={addEndEventListener:function(e,t){if(0===s.length)return void window.setTimeout(t,0);s.forEach(function(n){r(e,n,t)})},removeEndEventListener:function(e,t){0!==s.length&&s.forEach(function(n){o(e,n,t)})}};t.a=u},function(e,t,n){"use strict";function r(e,t,n){var r=void 0;"object"===(void 0===e?"undefined":p()(e))?r=e.message:(r=e+" is deprecated. Use "+t+" instead.",n&&(r+="\nYou can read more about it at "+n)),d[r]||(d[r]=!0)}var o=n(1),i=n.n(o),a=n(3),s=n.n(a),u=n(2),l=n.n(u),c=n(72),p=n.n(c),f=n(22),d=(n.n(f),{});r.wrapper=function(e){for(var t=arguments.length,n=Array(t>1?t-1:0),o=1;o8&&_<=11),x=32,w=String.fromCharCode(x),T={beforeInput:{phasedRegistrationNames:{bubbled:"onBeforeInput",captured:"onBeforeInputCapture"},dependencies:["topCompositionEnd","topKeyPress","topTextInput","topPaste"]},compositionEnd:{phasedRegistrationNames:{bubbled:"onCompositionEnd",captured:"onCompositionEndCapture"},dependencies:["topBlur","topCompositionEnd","topKeyDown","topKeyPress","topKeyUp","topMouseDown"]},compositionStart:{phasedRegistrationNames:{bubbled:"onCompositionStart",captured:"onCompositionStartCapture"},dependencies:["topBlur","topCompositionStart","topKeyDown","topKeyPress","topKeyUp","topMouseDown"]},compositionUpdate:{phasedRegistrationNames:{bubbled:"onCompositionUpdate",captured:"onCompositionUpdateCapture"},dependencies:["topBlur","topCompositionUpdate","topKeyDown","topKeyPress","topKeyUp","topMouseDown"]}},O=!1,N=null,S={eventTypes:T,extractEvents:function(e,t,n,r){return[u(e,t,n,r),p(e,t,n,r)]}};e.exports=S},function(e,t,n){"use strict";var r=n(154),o=n(18),i=(n(23),n(248),n(381)),a=n(255),s=n(258),u=(n(10),s(function(e){return a(e)})),l=!1,c="cssFloat";if(o.canUseDOM){var p=document.createElement("div").style;try{p.font=""}catch(e){l=!0}void 0===document.documentElement.style.cssFloat&&(c="styleFloat")}var f={createMarkupForStyles:function(e,t){var n="";for(var r in e)if(e.hasOwnProperty(r)){var o=0===r.indexOf("--"),a=e[r];null!=a&&(n+=u(r)+":",n+=i(r,a,t,o)+";")}return n||null},setValueForStyles:function(e,t,n){var o=e.style;for(var a in t)if(t.hasOwnProperty(a)){var s=0===a.indexOf("--"),u=i(a,t[a],n,s);if("float"!==a&&"cssFloat"!==a||(a=c),s)o.setProperty(a,u);else if(u)o[a]=u;else{var p=l&&r.shorthandPropertyExpansions[a];if(p)for(var f in p)o[f]="";else o[a]=""}}}};e.exports=f},function(e,t,n){"use strict";function r(e,t,n){var r=O.getPooled(M.change,e,t,n);return r.type="change",E.accumulateTwoPhaseDispatches(r),r}function o(e){var t=e.nodeName&&e.nodeName.toLowerCase();return"select"===t||"input"===t&&"file"===e.type}function i(e){var t=r(A,e,S(e));T.batchedUpdates(a,t)}function a(e){C.enqueueEvents(e),C.processEventQueue(!1)}function s(e,t){I=e,A=t,I.attachEvent("onchange",i)}function u(){I&&(I.detachEvent("onchange",i),I=null,A=null)}function l(e,t){var n=N.updateValueIfChanged(e),r=!0===t.simulated&&L._allowSimulatedPassThrough;if(n||r)return e}function c(e,t){if("topChange"===e)return t}function p(e,t,n){"topFocus"===e?(u(),s(t,n)):"topBlur"===e&&u()}function f(e,t){I=e,A=t,I.attachEvent("onpropertychange",h)}function d(){I&&(I.detachEvent("onpropertychange",h),I=null,A=null)}function h(e){"value"===e.propertyName&&l(A,e)&&i(e)}function v(e,t,n){"topFocus"===e?(d(),f(t,n)):"topBlur"===e&&d()}function m(e,t,n){if("topSelectionChange"===e||"topKeyUp"===e||"topKeyDown"===e)return l(A,n)}function y(e){var t=e.nodeName;return t&&"input"===t.toLowerCase()&&("checkbox"===e.type||"radio"===e.type)}function g(e,t,n){if("topClick"===e)return l(t,n)}function b(e,t,n){if("topInput"===e||"topChange"===e)return l(t,n)}function _(e,t){if(null!=e){var n=e._wrapperState||t._wrapperState;if(n&&n.controlled&&"number"===t.type){var r=""+t.value;t.getAttribute("value")!==r&&t.setAttribute("value",r)}}}var C=n(46),E=n(47),x=n(18),w=n(14),T=n(25),O=n(27),N=n(170),S=n(103),k=n(104),P=n(172),M={change:{phasedRegistrationNames:{bubbled:"onChange",captured:"onChangeCapture"},dependencies:["topBlur","topChange","topClick","topFocus","topInput","topKeyDown","topKeyUp","topSelectionChange"]}},I=null,A=null,R=!1;x.canUseDOM&&(R=k("change")&&(!document.documentMode||document.documentMode>8));var D=!1;x.canUseDOM&&(D=k("input")&&(!document.documentMode||document.documentMode>9));var L={eventTypes:M,_allowSimulatedPassThrough:!0,_isInputEventSupported:D,extractEvents:function(e,t,n,i){var a,s,u=t?w.getNodeFromInstance(t):window;if(o(u)?R?a=c:s=p:P(u)?D?a=b:(a=m,s=v):y(u)&&(a=g),a){var l=a(e,t,n);if(l){return r(l,n,i)}}s&&s(e,u,t),"topBlur"===e&&_(t,u)}};e.exports=L},function(e,t,n){"use strict";var r=n(11),o=n(37),i=n(18),a=n(251),s=n(21),u=(n(9),{dangerouslyReplaceNodeWithMarkup:function(e,t){if(i.canUseDOM||r("56"),t||r("57"),"HTML"===e.nodeName&&r("58"),"string"==typeof t){var n=a(t,s)[0];e.parentNode.replaceChild(n,e)}else o.replaceChildWithTree(e,t)}});e.exports=u},function(e,t,n){"use strict";var r=["ResponderEventPlugin","SimpleEventPlugin","TapEventPlugin","EnterLeaveEventPlugin","ChangeEventPlugin","SelectEventPlugin","BeforeInputEventPlugin"];e.exports=r},function(e,t,n){"use strict";var r=n(47),o=n(14),i=n(67),a={mouseEnter:{registrationName:"onMouseEnter",dependencies:["topMouseOut","topMouseOver"]},mouseLeave:{registrationName:"onMouseLeave",dependencies:["topMouseOut","topMouseOver"]}},s={eventTypes:a,extractEvents:function(e,t,n,s){if("topMouseOver"===e&&(n.relatedTarget||n.fromElement))return null;if("topMouseOut"!==e&&"topMouseOver"!==e)return null;var u;if(s.window===s)u=s;else{var l=s.ownerDocument;u=l?l.defaultView||l.parentWindow:window}var c,p;if("topMouseOut"===e){c=t;var f=n.relatedTarget||n.toElement;p=f?o.getClosestInstanceFromNode(f):null}else c=null,p=t;if(c===p)return null;var d=null==c?u:o.getNodeFromInstance(c),h=null==p?u:o.getNodeFromInstance(p),v=i.getPooled(a.mouseLeave,c,n,s);v.type="mouseleave",v.target=d,v.relatedTarget=h;var m=i.getPooled(a.mouseEnter,p,n,s);return m.type="mouseenter",m.target=h,m.relatedTarget=d,r.accumulateEnterLeaveDispatches(v,m,c,p),[v,m]}};e.exports=s},function(e,t,n){"use strict";function r(e){this._root=e,this._startText=this.getText(),this._fallbackText=null}var o=n(13),i=n(32),a=n(169);o(r.prototype,{destructor:function(){this._root=null,this._startText=null,this._fallbackText=null},getText:function(){return"value"in this._root?this._root.value:this._root[a()]},getData:function(){if(this._fallbackText)return this._fallbackText;var e,t,n=this._startText,r=n.length,o=this.getText(),i=o.length;for(e=0;e1?1-t:void 0;return this._fallbackText=o.slice(e,s),this._fallbackText}}),i.addPoolingTo(r),e.exports=r},function(e,t,n){"use strict";var r=n(38),o=r.injection.MUST_USE_PROPERTY,i=r.injection.HAS_BOOLEAN_VALUE,a=r.injection.HAS_NUMERIC_VALUE,s=r.injection.HAS_POSITIVE_NUMERIC_VALUE,u=r.injection.HAS_OVERLOADED_BOOLEAN_VALUE,l={isCustomAttribute:RegExp.prototype.test.bind(new RegExp("^(data|aria)-["+r.ATTRIBUTE_NAME_CHAR+"]*$")),Properties:{accept:0,acceptCharset:0,accessKey:0,action:0,allowFullScreen:i,allowTransparency:0,alt:0,as:0,async:i,autoComplete:0,autoPlay:i,capture:i,cellPadding:0,cellSpacing:0,charSet:0,challenge:0,checked:o|i,cite:0,classID:0,className:0,cols:s,colSpan:0,content:0,contentEditable:0,contextMenu:0,controls:i,controlsList:0,coords:0,crossOrigin:0,data:0,dateTime:0,default:i,defer:i,dir:0,disabled:i,download:u,draggable:0,encType:0,form:0,formAction:0,formEncType:0,formMethod:0,formNoValidate:i,formTarget:0,frameBorder:0,headers:0,height:0,hidden:i,high:0,href:0,hrefLang:0,htmlFor:0,httpEquiv:0,icon:0,id:0,inputMode:0,integrity:0,is:0,keyParams:0,keyType:0,kind:0,label:0,lang:0,list:0,loop:i,low:0,manifest:0,marginHeight:0,marginWidth:0,max:0,maxLength:0,media:0,mediaGroup:0,method:0,min:0,minLength:0,multiple:o|i,muted:o|i,name:0,nonce:0,noValidate:i,open:i,optimum:0,pattern:0,placeholder:0,playsInline:i,poster:0,preload:0,profile:0,radioGroup:0,readOnly:i,referrerPolicy:0,rel:0,required:i,reversed:i,role:0,rows:s,rowSpan:a,sandbox:0,scope:0,scoped:i,scrolling:0,seamless:i,selected:o|i,shape:0,size:s,sizes:0,span:s,spellCheck:0,src:0,srcDoc:0,srcLang:0,srcSet:0,start:a,step:0,style:0,summary:0,tabIndex:0,target:0,title:0,type:0,useMap:0,value:0,width:0,wmode:0,wrap:0,about:0,datatype:0,inlist:0,prefix:0,property:0,resource:0,typeof:0,vocab:0,autoCapitalize:0,autoCorrect:0,autoSave:0,color:0,itemProp:0,itemScope:i,itemType:0,itemID:0,itemRef:0,results:0,security:0,unselectable:0},DOMAttributeNames:{acceptCharset:"accept-charset",className:"class",htmlFor:"for",httpEquiv:"http-equiv"},DOMPropertyNames:{},DOMMutationMethods:{value:function(e,t){if(null==t)return e.removeAttribute("value");"number"!==e.type||!1===e.hasAttribute("value")?e.setAttribute("value",""+t):e.validity&&!e.validity.badInput&&e.ownerDocument.activeElement!==e&&e.setAttribute("value",""+t)}}};e.exports=l},function(e,t,n){"use strict";(function(t){function r(e,t,n,r){var o=void 0===e[n];null!=t&&o&&(e[n]=i(t,!0))}var o=n(39),i=n(171),a=(n(95),n(105)),s=n(174);n(10);void 0!==t&&t.env;var u={instantiateChildren:function(e,t,n,o){if(null==e)return null;var i={};return s(e,r,i),i},updateChildren:function(e,t,n,r,s,u,l,c,p){if(t||e){var f,d;for(f in t)if(t.hasOwnProperty(f)){d=e&&e[f];var h=d&&d._currentElement,v=t[f];if(null!=d&&a(h,v))o.receiveComponent(d,v,s,c),t[f]=d;else{d&&(r[f]=o.getHostNode(d),o.unmountComponent(d,!1));var m=i(v,!0);t[f]=m;var y=o.mountComponent(m,s,u,l,c,p);n.push(y)}}for(f in e)!e.hasOwnProperty(f)||t&&t.hasOwnProperty(f)||(d=e[f],r[f]=o.getHostNode(d),o.unmountComponent(d,!1))}},unmountChildren:function(e,t){for(var n in e)if(e.hasOwnProperty(n)){var r=e[n];o.unmountComponent(r,t)}}};e.exports=u}).call(t,n(132))},function(e,t,n){"use strict";var r=n(91),o=n(345),i={processChildrenUpdates:o.dangerouslyProcessChildrenUpdates,replaceNodeWithMarkup:r.dangerouslyReplaceNodeWithMarkup};e.exports=i},function(e,t,n){"use strict";function r(e){}function o(e){return!(!e.prototype||!e.prototype.isReactComponent)}function i(e){return!(!e.prototype||!e.prototype.isPureReactComponent)}var a=n(11),s=n(13),u=n(41),l=n(97),c=n(28),p=n(98),f=n(48),d=(n(23),n(164)),h=n(39),v=n(56),m=(n(9),n(83)),y=n(105),g=(n(10),{ImpureClass:0,PureClass:1,StatelessFunctional:2});r.prototype.render=function(){var e=f.get(this)._currentElement.type,t=e(this.props,this.context,this.updater);return t};var b=1,_={construct:function(e){this._currentElement=e,this._rootNodeID=0,this._compositeType=null,this._instance=null,this._hostParent=null,this._hostContainerInfo=null,this._updateBatchNumber=null,this._pendingElement=null,this._pendingStateQueue=null,this._pendingReplaceState=!1,this._pendingForceUpdate=!1,this._renderedNodeType=null,this._renderedComponent=null,this._context=null,this._mountOrder=0,this._topLevelWrapper=null,this._pendingCallbacks=null,this._calledComponentWillUnmount=!1},mountComponent:function(e,t,n,s){this._context=s,this._mountOrder=b++,this._hostParent=t,this._hostContainerInfo=n;var l,c=this._currentElement.props,p=this._processContext(s),d=this._currentElement.type,h=e.getUpdateQueue(),m=o(d),y=this._constructComponent(m,c,p,h);m||null!=y&&null!=y.render?i(d)?this._compositeType=g.PureClass:this._compositeType=g.ImpureClass:(l=y,null===y||!1===y||u.isValidElement(y)||a("105",d.displayName||d.name||"Component"),y=new r(d),this._compositeType=g.StatelessFunctional);y.props=c,y.context=p,y.refs=v,y.updater=h,this._instance=y,f.set(y,this);var _=y.state;void 0===_&&(y.state=_=null),("object"!=typeof _||Array.isArray(_))&&a("106",this.getName()||"ReactCompositeComponent"),this._pendingStateQueue=null,this._pendingReplaceState=!1,this._pendingForceUpdate=!1;var C;return C=y.unstable_handleError?this.performInitialMountWithErrorHandling(l,t,n,e,s):this.performInitialMount(l,t,n,e,s),y.componentDidMount&&e.getReactMountReady().enqueue(y.componentDidMount,y),C},_constructComponent:function(e,t,n,r){return this._constructComponentWithoutOwner(e,t,n,r)},_constructComponentWithoutOwner:function(e,t,n,r){var o=this._currentElement.type;return e?new o(t,n,r):o(t,n,r)},performInitialMountWithErrorHandling:function(e,t,n,r,o){var i,a=r.checkpoint();try{i=this.performInitialMount(e,t,n,r,o)}catch(s){r.rollback(a),this._instance.unstable_handleError(s),this._pendingStateQueue&&(this._instance.state=this._processPendingState(this._instance.props,this._instance.context)),a=r.checkpoint(),this._renderedComponent.unmountComponent(!0),r.rollback(a),i=this.performInitialMount(e,t,n,r,o)}return i},performInitialMount:function(e,t,n,r,o){var i=this._instance,a=0;i.componentWillMount&&(i.componentWillMount(),this._pendingStateQueue&&(i.state=this._processPendingState(i.props,i.context))),void 0===e&&(e=this._renderValidatedComponent());var s=d.getType(e);this._renderedNodeType=s;var u=this._instantiateReactComponent(e,s!==d.EMPTY);this._renderedComponent=u;var l=h.mountComponent(u,r,t,n,this._processChildContext(o),a);return l},getHostNode:function(){return h.getHostNode(this._renderedComponent)},unmountComponent:function(e){if(this._renderedComponent){var t=this._instance;if(t.componentWillUnmount&&!t._calledComponentWillUnmount)if(t._calledComponentWillUnmount=!0,e){var n=this.getName()+".componentWillUnmount()";p.invokeGuardedCallback(n,t.componentWillUnmount.bind(t))}else t.componentWillUnmount();this._renderedComponent&&(h.unmountComponent(this._renderedComponent,e),this._renderedNodeType=null,this._renderedComponent=null,this._instance=null),this._pendingStateQueue=null,this._pendingReplaceState=!1,this._pendingForceUpdate=!1,this._pendingCallbacks=null,this._pendingElement=null,this._context=null,this._rootNodeID=0,this._topLevelWrapper=null,f.remove(t)}},_maskContext:function(e){var t=this._currentElement.type,n=t.contextTypes;if(!n)return v;var r={};for(var o in n)r[o]=e[o];return r},_processContext:function(e){var t=this._maskContext(e);return t},_processChildContext:function(e){var t,n=this._currentElement.type,r=this._instance;if(r.getChildContext&&(t=r.getChildContext()),t){"object"!=typeof n.childContextTypes&&a("107",this.getName()||"ReactCompositeComponent");for(var o in t)o in n.childContextTypes||a("108",this.getName()||"ReactCompositeComponent",o);return s({},e,t)}return e},_checkContextTypes:function(e,t,n){},receiveComponent:function(e,t,n){var r=this._currentElement,o=this._context;this._pendingElement=null,this.updateComponent(t,r,e,o,n)},performUpdateIfNecessary:function(e){null!=this._pendingElement?h.receiveComponent(this,this._pendingElement,e,this._context):null!==this._pendingStateQueue||this._pendingForceUpdate?this.updateComponent(e,this._currentElement,this._currentElement,this._context,this._context):this._updateBatchNumber=null},updateComponent:function(e,t,n,r,o){var i=this._instance;null==i&&a("136",this.getName()||"ReactCompositeComponent");var s,u=!1;this._context===o?s=i.context:(s=this._processContext(o),u=!0);var l=t.props,c=n.props;t!==n&&(u=!0),u&&i.componentWillReceiveProps&&i.componentWillReceiveProps(c,s);var p=this._processPendingState(c,s),f=!0;this._pendingForceUpdate||(i.shouldComponentUpdate?f=i.shouldComponentUpdate(c,p,s):this._compositeType===g.PureClass&&(f=!m(l,c)||!m(i.state,p))),this._updateBatchNumber=null,f?(this._pendingForceUpdate=!1,this._performComponentUpdate(n,c,p,s,e,o)):(this._currentElement=n,this._context=o,i.props=c,i.state=p,i.context=s)},_processPendingState:function(e,t){var n=this._instance,r=this._pendingStateQueue,o=this._pendingReplaceState;if(this._pendingReplaceState=!1,this._pendingStateQueue=null,!r)return n.state;if(o&&1===r.length)return r[0];for(var i=s({},o?r[0]:n.state),a=o?1:0;a=0||null!=t.is}function v(e){var t=e.type;d(t),this._currentElement=e,this._tag=t.toLowerCase(),this._namespaceURI=null,this._renderedChildren=null,this._previousStyle=null,this._previousStyleCopy=null,this._hostNode=null,this._hostParent=null,this._rootNodeID=0,this._domID=0,this._hostContainerInfo=null,this._wrapperState=null,this._topLevelWrapper=null,this._flags=0}var m=n(11),y=n(13),g=n(328),b=n(330),_=n(37),C=n(92),E=n(38),x=n(156),w=n(46),T=n(93),O=n(66),N=n(157),S=n(14),k=n(346),P=n(347),M=n(158),I=n(350),A=(n(23),n(359)),R=n(364),D=(n(21),n(69)),L=(n(9),n(104),n(83),n(170)),j=(n(106),n(10),N),U=w.deleteListener,B=S.getNodeFromInstance,F=O.listenTo,V=T.registrationNameModules,K={string:!0,number:!0},W="__html",H={children:null,dangerouslySetInnerHTML:null,suppressContentEditableWarning:null},z=11,q={topAbort:"abort",topCanPlay:"canplay",topCanPlayThrough:"canplaythrough",topDurationChange:"durationchange",topEmptied:"emptied",topEncrypted:"encrypted",topEnded:"ended",topError:"error",topLoadedData:"loadeddata",topLoadedMetadata:"loadedmetadata",topLoadStart:"loadstart",topPause:"pause",topPlay:"play",topPlaying:"playing",topProgress:"progress",topRateChange:"ratechange",topSeeked:"seeked",topSeeking:"seeking",topStalled:"stalled",topSuspend:"suspend",topTimeUpdate:"timeupdate",topVolumeChange:"volumechange",topWaiting:"waiting"},$={area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0},Y={listing:!0,pre:!0,textarea:!0},G=y({menuitem:!0},$),X=/^[a-zA-Z][a-zA-Z:_\.\-\d]*$/,Q={},Z={}.hasOwnProperty,J=1;v.displayName="ReactDOMComponent",v.Mixin={mountComponent:function(e,t,n,r){this._rootNodeID=J++,this._domID=n._idCounter++,this._hostParent=t,this._hostContainerInfo=n;var i=this._currentElement.props;switch(this._tag){case"audio":case"form":case"iframe":case"img":case"link":case"object":case"source":case"video":this._wrapperState={listeners:null},e.getReactMountReady().enqueue(p,this);break;case"input":k.mountWrapper(this,i,t),i=k.getHostProps(this,i),e.getReactMountReady().enqueue(c,this),e.getReactMountReady().enqueue(p,this);break;case"option":P.mountWrapper(this,i,t),i=P.getHostProps(this,i);break;case"select":M.mountWrapper(this,i,t),i=M.getHostProps(this,i),e.getReactMountReady().enqueue(p,this);break;case"textarea":I.mountWrapper(this,i,t),i=I.getHostProps(this,i),e.getReactMountReady().enqueue(c,this),e.getReactMountReady().enqueue(p,this)}o(this,i);var a,f;null!=t?(a=t._namespaceURI,f=t._tag):n._tag&&(a=n._namespaceURI,f=n._tag),(null==a||a===C.svg&&"foreignobject"===f)&&(a=C.html),a===C.html&&("svg"===this._tag?a=C.svg:"math"===this._tag&&(a=C.mathml)),this._namespaceURI=a;var d;if(e.useCreateElement){var h,v=n._ownerDocument;if(a===C.html)if("script"===this._tag){var m=v.createElement("div"),y=this._currentElement.type;m.innerHTML="<"+y+">",h=m.removeChild(m.firstChild)}else h=i.is?v.createElement(this._currentElement.type,i.is):v.createElement(this._currentElement.type);else h=v.createElementNS(a,this._currentElement.type);S.precacheNode(this,h),this._flags|=j.hasCachedChildNodes,this._hostParent||x.setAttributeForRoot(h),this._updateDOMProperties(null,i,e);var b=_(h);this._createInitialChildren(e,i,r,b),d=b}else{var E=this._createOpenTagMarkupAndPutListeners(e,i),w=this._createContentMarkup(e,i,r);d=!w&&$[this._tag]?E+"/>":E+">"+w+""}switch(this._tag){case"input":e.getReactMountReady().enqueue(s,this),i.autoFocus&&e.getReactMountReady().enqueue(g.focusDOMComponent,this);break;case"textarea":e.getReactMountReady().enqueue(u,this),i.autoFocus&&e.getReactMountReady().enqueue(g.focusDOMComponent,this);break;case"select":case"button":i.autoFocus&&e.getReactMountReady().enqueue(g.focusDOMComponent,this);break;case"option":e.getReactMountReady().enqueue(l,this)}return d},_createOpenTagMarkupAndPutListeners:function(e,t){var n="<"+this._currentElement.type;for(var r in t)if(t.hasOwnProperty(r)){var o=t[r];if(null!=o)if(V.hasOwnProperty(r))o&&i(this,r,o,e);else{"style"===r&&(o&&(o=this._previousStyleCopy=y({},t.style)),o=b.createMarkupForStyles(o,this));var a=null;null!=this._tag&&h(this._tag,t)?H.hasOwnProperty(r)||(a=x.createMarkupForCustomAttribute(r,o)):a=x.createMarkupForProperty(r,o),a&&(n+=" "+a)}}return e.renderToStaticMarkup?n:(this._hostParent||(n+=" "+x.createMarkupForRoot()),n+=" "+x.createMarkupForID(this._domID))},_createContentMarkup:function(e,t,n){var r="",o=t.dangerouslySetInnerHTML;if(null!=o)null!=o.__html&&(r=o.__html);else{var i=K[typeof t.children]?t.children:null,a=null!=i?null:t.children;if(null!=i)r=D(i);else if(null!=a){var s=this.mountChildren(a,e,n);r=s.join("")}}return Y[this._tag]&&"\n"===r.charAt(0)?"\n"+r:r},_createInitialChildren:function(e,t,n,r){var o=t.dangerouslySetInnerHTML;if(null!=o)null!=o.__html&&_.queueHTML(r,o.__html);else{var i=K[typeof t.children]?t.children:null,a=null!=i?null:t.children;if(null!=i)""!==i&&_.queueText(r,i);else if(null!=a)for(var s=this.mountChildren(a,e,n),u=0;ut.end?(n=t.end,r=t.start):(n=t.start,r=t.end),o.moveToElementText(e),o.moveStart("character",n),o.setEndPoint("EndToStart",o),o.moveEnd("character",r-n),o.select()}function s(e,t){if(window.getSelection){var n=window.getSelection(),r=e[c()].length,o=Math.min(t.start,r),i=void 0===t.end?o:Math.min(t.end,r);if(!n.extend&&o>i){var a=i;i=o,o=a}var s=l(e,o),u=l(e,i);if(s&&u){var p=document.createRange();p.setStart(s.node,s.offset),n.removeAllRanges(),o>i?(n.addRange(p),n.extend(u.node,u.offset)):(p.setEnd(u.node,u.offset),n.addRange(p))}}}var u=n(18),l=n(386),c=n(169),p=u.canUseDOM&&"selection"in document&&!("getSelection"in window),f={getOffsets:p?o:i,setOffsets:p?a:s};e.exports=f},function(e,t,n){"use strict";var r=n(11),o=n(13),i=n(91),a=n(37),s=n(14),u=n(69),l=(n(9),n(106),function(e){this._currentElement=e,this._stringText=""+e,this._hostNode=null,this._hostParent=null,this._domID=0,this._mountIndex=0,this._closingComment=null,this._commentNodes=null});o(l.prototype,{mountComponent:function(e,t,n,r){var o=n._idCounter++,i=" react-text: "+o+" ";if(this._domID=o,this._hostParent=t,e.useCreateElement){var l=n._ownerDocument,c=l.createComment(i),p=l.createComment(" /react-text "),f=a(l.createDocumentFragment());return a.queueChild(f,a(c)),this._stringText&&a.queueChild(f,a(l.createTextNode(this._stringText))),a.queueChild(f,a(p)),s.precacheNode(this,c),this._closingComment=p,f}var d=u(this._stringText);return e.renderToStaticMarkup?d:"\x3c!--"+i+"--\x3e"+d+"\x3c!-- /react-text --\x3e"},receiveComponent:function(e,t){if(e!==this._currentElement){this._currentElement=e;var n=""+e;if(n!==this._stringText){this._stringText=n;var r=this.getHostNode();i.replaceDelimitedText(r[0],r[1],n)}}},getHostNode:function(){var e=this._commentNodes;if(e)return e;if(!this._closingComment)for(var t=s.getNodeFromInstance(this),n=t.nextSibling;;){if(null==n&&r("67",this._domID),8===n.nodeType&&" /react-text "===n.nodeValue){this._closingComment=n;break}n=n.nextSibling}return e=[this._hostNode,this._closingComment],this._commentNodes=e,e},unmountComponent:function(){this._closingComment=null,this._commentNodes=null,s.uncacheNode(this)}}),e.exports=l},function(e,t,n){"use strict";function r(){this._rootNodeID&&c.updateWrapper(this)}function o(e){var t=this._currentElement.props,n=s.executeOnChange(t,e);return l.asap(r,this),n}var i=n(11),a=n(13),s=n(96),u=n(14),l=n(25),c=(n(9),n(10),{getHostProps:function(e,t){return null!=t.dangerouslySetInnerHTML&&i("91"),a({},t,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue,onChange:e._wrapperState.onChange})},mountWrapper:function(e,t){var n=s.getValue(t),r=n;if(null==n){var a=t.defaultValue,u=t.children;null!=u&&(null!=a&&i("92"),Array.isArray(u)&&(u.length<=1||i("93"),u=u[0]),a=""+u),null==a&&(a=""),r=a}e._wrapperState={initialValue:""+r,listeners:null,onChange:o.bind(e)}},updateWrapper:function(e){var t=e._currentElement.props,n=u.getNodeFromInstance(e),r=s.getValue(t);if(null!=r){var o=""+r;o!==n.value&&(n.value=o),null==t.defaultValue&&(n.defaultValue=o)}null!=t.defaultValue&&(n.defaultValue=t.defaultValue)},postMountWrapper:function(e){var t=u.getNodeFromInstance(e),n=t.textContent;n===e._wrapperState.initialValue&&(t.value=n)}});e.exports=c},function(e,t,n){"use strict";function r(e,t){"_hostNode"in e||u("33"),"_hostNode"in t||u("33");for(var n=0,r=e;r;r=r._hostParent)n++;for(var o=0,i=t;i;i=i._hostParent)o++;for(;n-o>0;)e=e._hostParent,n--;for(;o-n>0;)t=t._hostParent,o--;for(var a=n;a--;){if(e===t)return e;e=e._hostParent,t=t._hostParent}return null}function o(e,t){"_hostNode"in e||u("35"),"_hostNode"in t||u("35");for(;t;){if(t===e)return!0;t=t._hostParent}return!1}function i(e){return"_hostNode"in e||u("36"),e._hostParent}function a(e,t,n){for(var r=[];e;)r.push(e),e=e._hostParent;var o;for(o=r.length;o-- >0;)t(r[o],"captured",n);for(o=0;o0;)n(u[l],"captured",i)}var u=n(11);n(9);e.exports={isAncestor:o,getLowestCommonAncestor:r,getParentInstance:i,traverseTwoPhase:a,traverseEnterLeave:s}},function(e,t,n){"use strict";function r(){this.reinitializeTransaction()}var o=n(13),i=n(25),a=n(68),s=n(21),u={initialize:s,close:function(){f.isBatchingUpdates=!1}},l={initialize:s,close:i.flushBatchedUpdates.bind(i)},c=[l,u];o(r.prototype,a,{getTransactionWrappers:function(){return c}});var p=new r,f={isBatchingUpdates:!1,batchedUpdates:function(e,t,n,r,o,i){var a=f.isBatchingUpdates;return f.isBatchingUpdates=!0,a?e(t,n,r,o,i):p.perform(e,null,t,n,r,o,i)}};e.exports=f},function(e,t,n){"use strict";function r(){x||(x=!0,g.EventEmitter.injectReactEventListener(y),g.EventPluginHub.injectEventPluginOrder(s),g.EventPluginUtils.injectComponentTree(f),g.EventPluginUtils.injectTreeTraversal(h),g.EventPluginHub.injectEventPluginsByName({SimpleEventPlugin:E,EnterLeaveEventPlugin:u,ChangeEventPlugin:a,SelectEventPlugin:C,BeforeInputEventPlugin:i}),g.HostComponent.injectGenericComponentClass(p),g.HostComponent.injectTextComponentClass(v),g.DOMProperty.injectDOMPropertyConfig(o),g.DOMProperty.injectDOMPropertyConfig(l),g.DOMProperty.injectDOMPropertyConfig(_),g.EmptyComponent.injectEmptyComponentFactory(function(e){return new d(e)}),g.Updates.injectReconcileTransaction(b),g.Updates.injectBatchingStrategy(m),g.Component.injectEnvironment(c))}var o=n(327),i=n(329),a=n(331),s=n(333),u=n(334),l=n(336),c=n(338),p=n(341),f=n(14),d=n(343),h=n(351),v=n(349),m=n(352),y=n(356),g=n(357),b=n(362),_=n(367),C=n(368),E=n(369),x=!1;e.exports={inject:r}},function(e,t,n){"use strict";var r="function"==typeof Symbol&&Symbol.for&&Symbol.for("react.element")||60103;e.exports=r},function(e,t,n){"use strict";function r(e){o.enqueueEvents(e),o.processEventQueue(!1)}var o=n(46),i={handleTopLevel:function(e,t,n,i){r(o.extractEvents(e,t,n,i))}};e.exports=i},function(e,t,n){"use strict";function r(e){for(;e._hostParent;)e=e._hostParent;var t=p.getNodeFromInstance(e),n=t.parentNode;return p.getClosestInstanceFromNode(n)}function o(e,t){this.topLevelType=e,this.nativeEvent=t,this.ancestors=[]}function i(e){var t=d(e.nativeEvent),n=p.getClosestInstanceFromNode(t),o=n;do{e.ancestors.push(o),o=o&&r(o)}while(o);for(var i=0;i/,i=/^<\!\-\-/,a={CHECKSUM_ATTR_NAME:"data-react-checksum",addChecksumToMarkup:function(e){var t=r(e);return i.test(e)?e:e.replace(o," "+a.CHECKSUM_ATTR_NAME+'="'+t+'"$&')},canReuseMarkup:function(e,t){var n=t.getAttribute(a.CHECKSUM_ATTR_NAME);return n=n&&parseInt(n,10),r(e)===n}};e.exports=a},function(e,t,n){"use strict";function r(e,t,n){return{type:"INSERT_MARKUP",content:e,fromIndex:null,fromNode:null,toIndex:n,afterNode:t}}function o(e,t,n){return{type:"MOVE_EXISTING",content:null,fromIndex:e._mountIndex,fromNode:f.getHostNode(e),toIndex:n,afterNode:t}}function i(e,t){return{type:"REMOVE_NODE",content:null,fromIndex:e._mountIndex,fromNode:t,toIndex:null,afterNode:null}}function a(e){return{type:"SET_MARKUP",content:e,fromIndex:null,fromNode:null,toIndex:null,afterNode:null}}function s(e){return{type:"TEXT_CONTENT",content:e,fromIndex:null,fromNode:null,toIndex:null,afterNode:null}}function u(e,t){return t&&(e=e||[],e.push(t)),e}function l(e,t){p.processChildrenUpdates(e,t)}var c=n(11),p=n(97),f=(n(48),n(23),n(28),n(39)),d=n(337),h=(n(21),n(383)),v=(n(9),{Mixin:{_reconcilerInstantiateChildren:function(e,t,n){return d.instantiateChildren(e,t,n)},_reconcilerUpdateChildren:function(e,t,n,r,o,i){var a,s=0;return a=h(t,s),d.updateChildren(e,a,n,r,o,this,this._hostContainerInfo,i,s),a},mountChildren:function(e,t,n){var r=this._reconcilerInstantiateChildren(e,t,n);this._renderedChildren=r;var o=[],i=0;for(var a in r)if(r.hasOwnProperty(a)){var s=r[a],u=0,l=f.mountComponent(s,t,this,this._hostContainerInfo,n,u);s._mountIndex=i++,o.push(l)}return o},updateTextContent:function(e){var t=this._renderedChildren;d.unmountChildren(t,!1);for(var n in t)t.hasOwnProperty(n)&&c("118");l(this,[s(e)])},updateMarkup:function(e){var t=this._renderedChildren;d.unmountChildren(t,!1);for(var n in t)t.hasOwnProperty(n)&&c("118");l(this,[a(e)])},updateChildren:function(e,t,n){this._updateChildren(e,t,n)},_updateChildren:function(e,t,n){var r=this._renderedChildren,o={},i=[],a=this._reconcilerUpdateChildren(r,e,i,o,t,n);if(a||r){var s,c=null,p=0,d=0,h=0,v=null;for(s in a)if(a.hasOwnProperty(s)){var m=r&&r[s],y=a[s];m===y?(c=u(c,this.moveChild(m,v,p,d)),d=Math.max(m._mountIndex,d),m._mountIndex=p):(m&&(d=Math.max(m._mountIndex,d)),c=u(c,this._mountChildAtIndex(y,i[h],v,p,t,n)),h++),p++,v=f.getHostNode(y)}for(s in o)o.hasOwnProperty(s)&&(c=u(c,this._unmountChild(r[s],o[s])));c&&l(this,c),this._renderedChildren=a}},unmountChildren:function(e){var t=this._renderedChildren;d.unmountChildren(t,e),this._renderedChildren=null},moveChild:function(e,t,n,r){if(e._mountIndex=t)return{node:n,offset:t-i};i=a}n=r(o(n))}}e.exports=i},function(e,t,n){"use strict";function r(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n["ms"+e]="MS"+t,n["O"+e]="o"+t.toLowerCase(),n}function o(e){if(s[e])return s[e];if(!a[e])return e;var t=a[e];for(var n in t)if(t.hasOwnProperty(n)&&n in u)return s[e]=t[n];return""}var i=n(18),a={animationend:r("Animation","AnimationEnd"),animationiteration:r("Animation","AnimationIteration"),animationstart:r("Animation","AnimationStart"),transitionend:r("Transition","TransitionEnd")},s={},u={};i.canUseDOM&&(u=document.createElement("div").style,"AnimationEvent"in window||(delete a.animationend.animation,delete a.animationiteration.animation,delete a.animationstart.animation),"TransitionEvent"in window||delete a.transitionend.transition),e.exports=o},function(e,t,n){"use strict";function r(e){return'"'+o(e)+'"'}var o=n(69);e.exports=r},function(e,t,n){"use strict";var r=n(163);e.exports=r.renderSubtreeIntoContainer},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function a(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}t.__esModule=!0;var s=n(7),u=r(s),l=n(59),c=r(l),p=n(0),f=r(p),d=n(17),h=r(d),v=n(71),m=r(v),y=n(40),g=r(y),b=function(e){function t(){var n,r,a;o(this,t);for(var s=arguments.length,u=Array(s),l=0;l0&&void 0!==arguments[0]?arguments[0]:{},r=n.hideSiblingNodes,i=void 0===r||r,l=n.handleContainerOverflow,p=void 0===l||l;o(this,e),this.add=function(e,n,r){var o=t.modals.indexOf(e),i=t.containers.indexOf(n);if(-1!==o)return o;if(o=t.modals.length,t.modals.push(e),t.hideSiblingNodes&&(0,y.hideSiblings)(n,e.mountNode),-1!==i)return t.data[i].modals.push(e),o;var a={modals:[e],classes:r?r.split(/\s+/):[],overflowing:(0,m.default)(n)};return t.handleContainerOverflow&&s(a,n),a.classes.forEach(c.default.addClass.bind(null,n)),t.containers.push(n),t.data.push(a),o},this.remove=function(e){var n=t.modals.indexOf(e);if(-1!==n){var r=a(t.data,e),o=t.data[r],i=t.containers[r];o.modals.splice(o.modals.indexOf(e),1),t.modals.splice(n,1),0===o.modals.length?(o.classes.forEach(c.default.removeClass.bind(null,i)),t.handleContainerOverflow&&u(o,i),t.hideSiblingNodes&&(0,y.showSiblings)(i,e.mountNode),t.containers.splice(r,1),t.data.splice(r,1)):t.hideSiblingNodes&&(0,y.ariaHidden)(!1,o.modals[o.modals.length-1].mountNode)}},this.isTopModal=function(e){return!!t.modals.length&&t.modals[t.modals.length-1]===e},this.hideSiblingNodes=i,this.handleContainerOverflow=p,this.modals=[],this.containers=[],this.data=[]};t.default=g,e.exports=t.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}t.__esModule=!0;var u=Object.assign||function(e){for(var t=1;t1?n-1:0),o=1;o=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}t.__esModule=!0;var u=Object.assign||function(e){for(var t=1;ts?s-l:0}function a(e,t,n,r){var i=o(n),a=i.width,s=e-r,u=e+r+t;return s<0?-s:u>a?a-u:0}function s(e,t,n,r,o){var s="BODY"===r.tagName?(0,l.default)(n):(0,p.default)(n,r),u=(0,l.default)(t),c=u.height,f=u.width,d=void 0,h=void 0,v=void 0,m=void 0;if("left"===e||"right"===e){h=s.top+(s.height-c)/2,d="left"===e?s.left-f:s.left+s.width;var y=i(h,c,r,o);h+=y,m=50*(1-2*y/c)+"%",v=void 0}else{if("top"!==e&&"bottom"!==e)throw new Error('calcOverlayPosition(): No such placement of "'+e+'" found.');d=s.left+(s.width-f)/2,h="top"===e?s.top-c:s.top+s.height;var g=a(d,f,r,o);d+=g,v=50*(1-2*g/f)+"%",m=void 0}return{positionLeft:d,positionTop:h,arrowOffsetLeft:v,arrowOffsetTop:m}}t.__esModule=!0,t.default=s;var u=n(124),l=r(u),c=n(238),p=r(c),f=n(125),d=r(f),h=n(40),v=r(h);e.exports=t.default},function(e,t,n){"use strict";function r(e,t){t&&(e?t.setAttribute("aria-hidden","true"):t.removeAttribute("aria-hidden"))}function o(e,t){u(e,t,function(e){return r(!0,e)})}function i(e,t){u(e,t,function(e){return r(!1,e)})}t.__esModule=!0,t.ariaHidden=r,t.hideSiblings=o,t.showSiblings=i;var a=["template","script","style"],s=function(e){var t=e.nodeType,n=e.tagName;return 1===t&&-1===a.indexOf(n.toLowerCase())},u=function(e,t,n){t=[].concat(t),[].forEach.call(e.children,function(e){-1===t.indexOf(e)&&s(e)&&n(e)})}},function(e,t,n){"use strict";function r(e){var t={"=":"=0",":":"=2"};return"$"+(""+e).replace(/[=:]/g,function(e){return t[e]})}function o(e){var t=/(=0|=2)/g,n={"=0":"=","=2":":"};return(""+("."===e[0]&&"$"===e[1]?e.substring(2):e.substring(1))).replace(t,function(e){return n[e]})}var i={escape:r,unescape:o};e.exports=i},function(e,t,n){"use strict";var r=n(50),o=(n(9),function(e){var t=this;if(t.instancePool.length){var n=t.instancePool.pop();return t.call(n,e),n}return new t(e)}),i=function(e,t){var n=this;if(n.instancePool.length){var r=n.instancePool.pop();return n.call(r,e,t),r}return new n(e,t)},a=function(e,t,n){var r=this;if(r.instancePool.length){var o=r.instancePool.pop();return r.call(o,e,t,n),o}return new r(e,t,n)},s=function(e,t,n,r){var o=this;if(o.instancePool.length){var i=o.instancePool.pop();return o.call(i,e,t,n,r),i}return new o(e,t,n,r)},u=function(e){var t=this;e instanceof t||r("25"),e.destructor(),t.instancePool.length2?i-2:0),u=2;u2&&void 0!==arguments[2]?arguments[2]:[],b=r.displayName||r.name||"Component",_=h.getType(r).propTypes,C=h.isReactComponent(r),E=Object.keys(s),x=["valueLink","checkedLink"].concat(E.map(h.defaultKey));y=h.uncontrolledPropTypes(s,_,b),(0,f.default)(C||!g.length,"[uncontrollable] stateless function components cannot pass through methods because they have no associated instances. Check component: "+b+", attempting to pass through methods: "+g.join(", ")),g=h.transform(g,function(e,t){e[t]=function(){var e;return(e=this.refs.inner)[t].apply(e,arguments)}},{});var w=(m=v=function(t){function n(){return o(this,n),i(this,t.apply(this,arguments))}return a(n,t),n.prototype.shouldComponentUpdate=function(){for(var t=arguments.length,n=Array(t),r=0;r1&&void 0!==arguments[1]?arguments[1]:{},r=arguments[2];return n(e,u({},s,t),r)},w}return n}t.__esModule=!0;var u=Object.assign||function(e){for(var t=1;t=15||0===g[0]&&g[1]>=13?e:e.type}function a(e,t){var n=u(t);return n&&!s(e,t)&&s(e,n)?e[n].value:e[t]}function s(e,t){return void 0!==e[t]}function u(e){return"value"===e?"valueLink":"checked"===e?"checkedLink":null}function l(e){return"default"+e.charAt(0).toUpperCase()+e.substr(1)}function c(e,t,n){return function(){for(var r=arguments.length,o=Array(r),i=0;i 1) { + for (var i = 1; i < arguments.length; i++) { + args[i - 1] = arguments[i]; + } + } + queue.push(new Item(fun, args)); + if (queue.length === 1 && !draining) { + runTimeout(drainQueue); + } +}; + +// v8 likes predictible objects +function Item(fun, array) { + this.fun = fun; + this.array = array; +} +Item.prototype.run = function () { + this.fun.apply(null, this.array); +}; +process.title = 'browser'; +process.browser = true; +process.env = {}; +process.argv = []; +process.version = ''; // empty string to avoid regexp issues +process.versions = {}; + +function noop() {} + +process.on = noop; +process.addListener = noop; +process.once = noop; +process.off = noop; +process.removeListener = noop; +process.removeAllListeners = noop; +process.emit = noop; +process.prependListener = noop; +process.prependOnceListener = noop; + +process.listeners = function (name) { return [] } + +process.binding = function (name) { + throw new Error('process.binding is not supported'); +}; + +process.cwd = function () { return '/' }; +process.chdir = function (dir) { + throw new Error('process.chdir is not supported'); +}; +process.umask = function() { return 0; }; + + +/***/ }), +/* 2 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; + +exports.default = function (instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } +}; + +/***/ }), +/* 3 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; + +var _setPrototypeOf = __webpack_require__(251); + +var _setPrototypeOf2 = _interopRequireDefault(_setPrototypeOf); + +var _create = __webpack_require__(250); + +var _create2 = _interopRequireDefault(_create); + +var _typeof2 = __webpack_require__(94); + +var _typeof3 = _interopRequireDefault(_typeof2); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +exports.default = function (subClass, superClass) { + if (typeof superClass !== "function" && superClass !== null) { + throw new TypeError("Super expression must either be null or a function, not " + (typeof superClass === "undefined" ? "undefined" : (0, _typeof3.default)(superClass))); + } + + subClass.prototype = (0, _create2.default)(superClass && superClass.prototype, { + constructor: { + value: subClass, + enumerable: false, + writable: true, + configurable: true + } + }); + if (superClass) _setPrototypeOf2.default ? (0, _setPrototypeOf2.default)(subClass, superClass) : subClass.__proto__ = superClass; +}; + +/***/ }), +/* 4 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; + +var _typeof2 = __webpack_require__(94); + +var _typeof3 = _interopRequireDefault(_typeof2); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +exports.default = function (self, call) { + if (!self) { + throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + } + + return call && ((typeof call === "undefined" ? "undefined" : (0, _typeof3.default)(call)) === "object" || typeof call === "function") ? call : self; +}; + +/***/ }), +/* 5 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; + +var _assign = __webpack_require__(139); + +var _assign2 = _interopRequireDefault(_assign); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +exports.default = _assign2.default || function (target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i]; + + for (var key in source) { + if (Object.prototype.hasOwnProperty.call(source, key)) { + target[key] = source[key]; + } + } + } + + return target; +}; + +/***/ }), +/* 6 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; + +exports.default = function (obj, keys) { + var target = {}; + + for (var i in obj) { + if (keys.indexOf(i) >= 0) continue; + if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; + target[i] = obj[i]; + } + + return target; +}; + +/***/ }), +/* 7 */ +/***/ (function(module, exports, __webpack_require__) { + +var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*! + Copyright (c) 2016 Jed Watson. + Licensed under the MIT License (MIT), see + http://jedwatson.github.io/classnames +*/ +/* global define */ + +(function () { + 'use strict'; + + var hasOwn = {}.hasOwnProperty; + + function classNames () { + var classes = []; + + for (var i = 0; i < arguments.length; i++) { + var arg = arguments[i]; + if (!arg) continue; + + var argType = typeof arg; + + if (argType === 'string' || argType === 'number') { + classes.push(arg); + } else if (Array.isArray(arg)) { + classes.push(classNames.apply(null, arg)); + } else if (argType === 'object') { + for (var key in arg) { + if (hasOwn.call(arg, key) && arg[key]) { + classes.push(key); + } + } + } + } + + return classes.join(' '); + } + + if (typeof module !== 'undefined' && module.exports) { + module.exports = classNames; + } else if (true) { + // register as 'classnames', consistent with npm package name + !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = function () { + return classNames; + }.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), + __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); + } else { + window.classNames = classNames; + } +}()); + + +/***/ }), +/* 8 */ +/***/ (function(module, exports, __webpack_require__) { + +/* WEBPACK VAR INJECTION */(function(process) {/** + * Copyright (c) 2013-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +if (process.env.NODE_ENV !== 'production') { + var REACT_ELEMENT_TYPE = (typeof Symbol === 'function' && + Symbol.for && + Symbol.for('react.element')) || + 0xeac7; + + var isValidElement = function(object) { + return typeof object === 'object' && + object !== null && + object.$$typeof === REACT_ELEMENT_TYPE; + }; + + // By explicitly using `prop-types` you are opting into new development behavior. + // http://fb.me/prop-types-in-prod + var throwOnDirectAccess = true; + module.exports = __webpack_require__(188)(isValidElement, throwOnDirectAccess); +} else { + // By explicitly using `prop-types` you are opting into new production behavior. + // http://fb.me/prop-types-in-prod + module.exports = __webpack_require__(423)(); +} + +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1))) + +/***/ }), +/* 9 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +Object.defineProperty(__webpack_exports__, "__esModule", { value: true }); +/* WEBPACK VAR INJECTION */(function(process) {/* harmony export (immutable) */ __webpack_exports__["prefix"] = prefix; +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bsClass", function() { return bsClass; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bsStyles", function() { return bsStyles; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bsSizes", function() { return bsSizes; }); +/* harmony export (immutable) */ __webpack_exports__["getClassSet"] = getClassSet; +/* harmony export (immutable) */ __webpack_exports__["splitBsProps"] = splitBsProps; +/* harmony export (immutable) */ __webpack_exports__["splitBsPropsAndOmit"] = splitBsPropsAndOmit; +/* harmony export (immutable) */ __webpack_exports__["addStyle"] = addStyle; +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "_curry", function() { return _curry; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_entries__ = __webpack_require__(140); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_entries___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_entries__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_extends__ = __webpack_require__(5); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_extends___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_extends__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_invariant__ = __webpack_require__(69); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_invariant___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_invariant__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types__ = __webpack_require__(8); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_prop_types__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__StyleConfig__ = __webpack_require__(19); + + +// TODO: The publicly exposed parts of this should be in lib/BootstrapUtils. + + + + + + +function curry(fn) { + return function () { + for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + var last = args[args.length - 1]; + if (typeof last === 'function') { + return fn.apply(undefined, args); + } + return function (Component) { + return fn.apply(undefined, args.concat([Component])); + }; + }; +} + +function prefix(props, variant) { + !(props.bsClass != null) ? process.env.NODE_ENV !== 'production' ? __WEBPACK_IMPORTED_MODULE_2_invariant___default()(false, 'A `bsClass` prop is required for this component') : __WEBPACK_IMPORTED_MODULE_2_invariant___default()(false) : void 0; + return props.bsClass + (variant ? '-' + variant : ''); +} + +var bsClass = curry(function (defaultClass, Component) { + var propTypes = Component.propTypes || (Component.propTypes = {}); + var defaultProps = Component.defaultProps || (Component.defaultProps = {}); + + propTypes.bsClass = __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string; + defaultProps.bsClass = defaultClass; + + return Component; +}); + +var bsStyles = curry(function (styles, defaultStyle, Component) { + if (typeof defaultStyle !== 'string') { + Component = defaultStyle; + defaultStyle = undefined; + } + + var existing = Component.STYLES || []; + var propTypes = Component.propTypes || {}; + + styles.forEach(function (style) { + if (existing.indexOf(style) === -1) { + existing.push(style); + } + }); + + var propType = __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.oneOf(existing); + + // expose the values on the propType function for documentation + Component.STYLES = existing; + propType._values = existing; + + Component.propTypes = __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_extends___default()({}, propTypes, { + bsStyle: propType + }); + + if (defaultStyle !== undefined) { + var defaultProps = Component.defaultProps || (Component.defaultProps = {}); + defaultProps.bsStyle = defaultStyle; + } + + return Component; +}); + +var bsSizes = curry(function (sizes, defaultSize, Component) { + if (typeof defaultSize !== 'string') { + Component = defaultSize; + defaultSize = undefined; + } + + var existing = Component.SIZES || []; + var propTypes = Component.propTypes || {}; + + sizes.forEach(function (size) { + if (existing.indexOf(size) === -1) { + existing.push(size); + } + }); + + var values = []; + existing.forEach(function (size) { + var mappedSize = __WEBPACK_IMPORTED_MODULE_4__StyleConfig__["a" /* SIZE_MAP */][size]; + if (mappedSize && mappedSize !== size) { + values.push(mappedSize); + } + + values.push(size); + }); + + var propType = __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.oneOf(values); + propType._values = values; + + // expose the values on the propType function for documentation + Component.SIZES = existing; + + Component.propTypes = __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_extends___default()({}, propTypes, { + bsSize: propType + }); + + if (defaultSize !== undefined) { + if (!Component.defaultProps) { + Component.defaultProps = {}; + } + Component.defaultProps.bsSize = defaultSize; + } + + return Component; +}); + +function getClassSet(props) { + var _classes; + + var classes = (_classes = {}, _classes[prefix(props)] = true, _classes); + + if (props.bsSize) { + var bsSize = __WEBPACK_IMPORTED_MODULE_4__StyleConfig__["a" /* SIZE_MAP */][props.bsSize] || props.bsSize; + classes[prefix(props, bsSize)] = true; + } + + if (props.bsStyle) { + classes[prefix(props, props.bsStyle)] = true; + } + + return classes; +} + +function getBsProps(props) { + return { + bsClass: props.bsClass, + bsSize: props.bsSize, + bsStyle: props.bsStyle, + bsRole: props.bsRole + }; +} + +function isBsProp(propName) { + return propName === 'bsClass' || propName === 'bsSize' || propName === 'bsStyle' || propName === 'bsRole'; +} + +function splitBsProps(props) { + var elementProps = {}; + __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_entries___default()(props).forEach(function (_ref) { + var propName = _ref[0], + propValue = _ref[1]; + + if (!isBsProp(propName)) { + elementProps[propName] = propValue; + } + }); + + return [getBsProps(props), elementProps]; +} + +function splitBsPropsAndOmit(props, omittedPropNames) { + var isOmittedProp = {}; + omittedPropNames.forEach(function (propName) { + isOmittedProp[propName] = true; + }); + + var elementProps = {}; + __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_entries___default()(props).forEach(function (_ref2) { + var propName = _ref2[0], + propValue = _ref2[1]; + + if (!isBsProp(propName) && !isOmittedProp[propName]) { + elementProps[propName] = propValue; + } + }); + + return [getBsProps(props), elementProps]; +} + +/** + * Add a style variant to a Component. Mutates the propTypes of the component + * in order to validate the new variant. + */ +function addStyle(Component) { + for (var _len2 = arguments.length, styleVariant = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) { + styleVariant[_key2 - 1] = arguments[_key2]; + } + + bsStyles(styleVariant, Component); +} + +var _curry = curry; +/* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__(1))) + +/***/ }), +/* 10 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) {/** + * Copyright (c) 2013-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + */ + + + +/** + * Use invariant() to assert state which your program assumes to be true. + * + * Provide sprintf-style format (only %s is supported) and arguments + * to provide information about what broke and what you were + * expecting. + * + * The invariant message will be stripped in production, but the invariant + * will remain to ensure logic does not differ in production. + */ + +var validateFormat = function validateFormat(format) {}; + +if (process.env.NODE_ENV !== 'production') { + validateFormat = function validateFormat(format) { + if (format === undefined) { + throw new Error('invariant requires an error message argument'); + } + }; +} + +function invariant(condition, format, a, b, c, d, e, f) { + validateFormat(format); + + if (!condition) { + var error; + if (format === undefined) { + error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.'); + } else { + var args = [a, b, c, d, e, f]; + var argIndex = 0; + error = new Error(format.replace(/%s/g, function () { + return args[argIndex++]; + })); + error.name = 'Invariant Violation'; + } + + error.framesToPop = 1; // we don't care about invariant's own frame + throw error; + } +} + +module.exports = invariant; +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1))) + +/***/ }), +/* 11 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) {/** + * Copyright (c) 2014-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + */ + + + +var emptyFunction = __webpack_require__(23); + +/** + * Similar to invariant but only logs a warning if the condition is not met. + * This can be used to log issues in development environments in critical + * paths. Removing the logging code for production environments will keep the + * same logic and follow the same code paths. + */ + +var warning = emptyFunction; + +if (process.env.NODE_ENV !== 'production') { + var printWarning = function printWarning(format) { + for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { + args[_key - 1] = arguments[_key]; + } + + var argIndex = 0; + var message = 'Warning: ' + format.replace(/%s/g, function () { + return args[argIndex++]; + }); + if (typeof console !== 'undefined') { + console.error(message); + } + try { + // --- Welcome to debugging React --- + // This error was thrown as a convenience so that you can use this stack + // to find the callsite that caused this warning to fire. + throw new Error(message); + } catch (x) {} + }; + + warning = function warning(condition, format) { + if (format === undefined) { + throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument'); + } + + if (format.indexOf('Failed Composite propType: ') === 0) { + return; // Ignore CompositeComponent proptype check. + } + + if (!condition) { + for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) { + args[_key2 - 2] = arguments[_key2]; + } + + printWarning.apply(undefined, [format].concat(args)); + } + }; +} + +module.exports = warning; +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1))) + +/***/ }), +/* 12 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/** + * Copyright (c) 2013-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + * + */ + + +/** + * WARNING: DO NOT manually require this module. + * This is a replacement for `invariant(...)` used by the error code system + * and will _only_ be required by the corresponding babel pass. + * It always throws. + */ + +function reactProdInvariant(code) { + var argCount = arguments.length - 1; + + var message = 'Minified React error #' + code + '; visit ' + 'http://facebook.github.io/react/docs/error-decoder.html?invariant=' + code; + + for (var argIdx = 0; argIdx < argCount; argIdx++) { + message += '&args[]=' + encodeURIComponent(arguments[argIdx + 1]); + } + + message += ' for the full message or use the non-minified dev environment' + ' for full errors and additional helpful warnings.'; + + var error = new Error(message); + error.name = 'Invariant Violation'; + error.framesToPop = 1; // we don't care about reactProdInvariant's own frame + + throw error; +} + +module.exports = reactProdInvariant; + +/***/ }), +/* 13 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; + +var _react = __webpack_require__(0); + +var _react2 = _interopRequireDefault(_react); + +var _createChainableTypeChecker = __webpack_require__(81); + +var _createChainableTypeChecker2 = _interopRequireDefault(_createChainableTypeChecker); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function elementType(props, propName, componentName, location, propFullName) { + var propValue = props[propName]; + var propType = typeof propValue === 'undefined' ? 'undefined' : _typeof(propValue); + + if (_react2.default.isValidElement(propValue)) { + return new Error('Invalid ' + location + ' `' + propFullName + '` of type ReactElement ' + ('supplied to `' + componentName + '`, expected an element type (a string ') + 'or a ReactClass).'); + } + + if (propType !== 'function' && propType !== 'string') { + return new Error('Invalid ' + location + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected an element type (a string ') + 'or a ReactClass).'); + } + + return null; +} + +exports.default = (0, _createChainableTypeChecker2.default)(elementType); +module.exports = exports['default']; + +/***/ }), +/* 14 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* +object-assign +(c) Sindre Sorhus +@license MIT +*/ + + +/* eslint-disable no-unused-vars */ +var getOwnPropertySymbols = Object.getOwnPropertySymbols; +var hasOwnProperty = Object.prototype.hasOwnProperty; +var propIsEnumerable = Object.prototype.propertyIsEnumerable; + +function toObject(val) { + if (val === null || val === undefined) { + throw new TypeError('Object.assign cannot be called with null or undefined'); + } + + return Object(val); +} + +function shouldUseNative() { + try { + if (!Object.assign) { + return false; + } + + // Detect buggy property enumeration order in older V8 versions. + + // https://bugs.chromium.org/p/v8/issues/detail?id=4118 + var test1 = new String('abc'); // eslint-disable-line no-new-wrappers + test1[5] = 'de'; + if (Object.getOwnPropertyNames(test1)[0] === '5') { + return false; + } + + // https://bugs.chromium.org/p/v8/issues/detail?id=3056 + var test2 = {}; + for (var i = 0; i < 10; i++) { + test2['_' + String.fromCharCode(i)] = i; + } + var order2 = Object.getOwnPropertyNames(test2).map(function (n) { + return test2[n]; + }); + if (order2.join('') !== '0123456789') { + return false; + } + + // https://bugs.chromium.org/p/v8/issues/detail?id=3056 + var test3 = {}; + 'abcdefghijklmnopqrst'.split('').forEach(function (letter) { + test3[letter] = letter; + }); + if (Object.keys(Object.assign({}, test3)).join('') !== + 'abcdefghijklmnopqrst') { + return false; + } + + return true; + } catch (err) { + // We don't expect any of the above to throw, but better to be safe. + return false; + } +} + +module.exports = shouldUseNative() ? Object.assign : function (target, source) { + var from; + var to = toObject(target); + var symbols; + + for (var s = 1; s < arguments.length; s++) { + from = Object(arguments[s]); + + for (var key in from) { + if (hasOwnProperty.call(from, key)) { + to[key] = from[key]; + } + } + + if (getOwnPropertySymbols) { + symbols = getOwnPropertySymbols(from); + for (var i = 0; i < symbols.length; i++) { + if (propIsEnumerable.call(from, symbols[i])) { + to[symbols[i]] = from[symbols[i]]; + } + } + } + } + + return to; +}; + + +/***/ }), +/* 15 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) {/** + * Copyright (c) 2013-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + */ + + + +var _prodInvariant = __webpack_require__(12); + +var DOMProperty = __webpack_require__(36); +var ReactDOMComponentFlags = __webpack_require__(211); + +var invariant = __webpack_require__(10); + +var ATTR_NAME = DOMProperty.ID_ATTRIBUTE_NAME; +var Flags = ReactDOMComponentFlags; + +var internalInstanceKey = '__reactInternalInstance$' + Math.random().toString(36).slice(2); + +/** + * Check if a given node should be cached. + */ +function shouldPrecacheNode(node, nodeID) { + return node.nodeType === 1 && node.getAttribute(ATTR_NAME) === String(nodeID) || node.nodeType === 8 && node.nodeValue === ' react-text: ' + nodeID + ' ' || node.nodeType === 8 && node.nodeValue === ' react-empty: ' + nodeID + ' '; +} + +/** + * Drill down (through composites and empty components) until we get a host or + * host text component. + * + * This is pretty polymorphic but unavoidable with the current structure we have + * for `_renderedChildren`. + */ +function getRenderedHostOrTextFromComponent(component) { + var rendered; + while (rendered = component._renderedComponent) { + component = rendered; + } + return component; +} + +/** + * Populate `_hostNode` on the rendered host/text component with the given + * DOM node. The passed `inst` can be a composite. + */ +function precacheNode(inst, node) { + var hostInst = getRenderedHostOrTextFromComponent(inst); + hostInst._hostNode = node; + node[internalInstanceKey] = hostInst; +} + +function uncacheNode(inst) { + var node = inst._hostNode; + if (node) { + delete node[internalInstanceKey]; + inst._hostNode = null; + } +} + +/** + * Populate `_hostNode` on each child of `inst`, assuming that the children + * match up with the DOM (element) children of `node`. + * + * We cache entire levels at once to avoid an n^2 problem where we access the + * children of a node sequentially and have to walk from the start to our target + * node every time. + * + * Since we update `_renderedChildren` and the actual DOM at (slightly) + * different times, we could race here and see a newer `_renderedChildren` than + * the DOM nodes we see. To avoid this, ReactMultiChild calls + * `prepareToManageChildren` before we change `_renderedChildren`, at which + * time the container's child nodes are always cached (until it unmounts). + */ +function precacheChildNodes(inst, node) { + if (inst._flags & Flags.hasCachedChildNodes) { + return; + } + var children = inst._renderedChildren; + var childNode = node.firstChild; + outer: for (var name in children) { + if (!children.hasOwnProperty(name)) { + continue; + } + var childInst = children[name]; + var childID = getRenderedHostOrTextFromComponent(childInst)._domID; + if (childID === 0) { + // We're currently unmounting this child in ReactMultiChild; skip it. + continue; + } + // We assume the child nodes are in the same order as the child instances. + for (; childNode !== null; childNode = childNode.nextSibling) { + if (shouldPrecacheNode(childNode, childID)) { + precacheNode(childInst, childNode); + continue outer; + } + } + // We reached the end of the DOM children without finding an ID match. + true ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Unable to find element with ID %s.', childID) : _prodInvariant('32', childID) : void 0; + } + inst._flags |= Flags.hasCachedChildNodes; +} + +/** + * Given a DOM node, return the closest ReactDOMComponent or + * ReactDOMTextComponent instance ancestor. + */ +function getClosestInstanceFromNode(node) { + if (node[internalInstanceKey]) { + return node[internalInstanceKey]; + } + + // Walk up the tree until we find an ancestor whose instance we have cached. + var parents = []; + while (!node[internalInstanceKey]) { + parents.push(node); + if (node.parentNode) { + node = node.parentNode; + } else { + // Top of the tree. This node must not be part of a React tree (or is + // unmounted, potentially). + return null; + } + } + + var closest; + var inst; + for (; node && (inst = node[internalInstanceKey]); node = parents.pop()) { + closest = inst; + if (parents.length) { + precacheChildNodes(inst, node); + } + } + + return closest; +} + +/** + * Given a DOM node, return the ReactDOMComponent or ReactDOMTextComponent + * instance, or null if the node was not rendered by this React. + */ +function getInstanceFromNode(node) { + var inst = getClosestInstanceFromNode(node); + if (inst != null && inst._hostNode === node) { + return inst; + } else { + return null; + } +} + +/** + * Given a ReactDOMComponent or ReactDOMTextComponent, return the corresponding + * DOM node. + */ +function getNodeFromInstance(inst) { + // Without this first invariant, passing a non-DOM-component triggers the next + // invariant for a missing parent, which is super confusing. + !(inst._hostNode !== undefined) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'getNodeFromInstance: Invalid argument.') : _prodInvariant('33') : void 0; + + if (inst._hostNode) { + return inst._hostNode; + } + + // Walk up the tree until we find an ancestor whose DOM node we have cached. + var parents = []; + while (!inst._hostNode) { + parents.push(inst); + !inst._hostParent ? process.env.NODE_ENV !== 'production' ? invariant(false, 'React DOM tree root should always have a node reference.') : _prodInvariant('34') : void 0; + inst = inst._hostParent; + } + + // Now parents contains each ancestor that does *not* have a cached native + // node, and `inst` is the deepest ancestor that does. + for (; parents.length; inst = parents.pop()) { + precacheChildNodes(inst, inst._hostNode); + } + + return inst._hostNode; +} + +var ReactDOMComponentTree = { + getClosestInstanceFromNode: getClosestInstanceFromNode, + getInstanceFromNode: getInstanceFromNode, + getNodeFromInstance: getNodeFromInstance, + precacheChildNodes: precacheChildNodes, + precacheNode: precacheNode, + uncacheNode: uncacheNode +}; + +module.exports = ReactDOMComponentTree; +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1))) + +/***/ }), +/* 16 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/** + * Safe chained function + * + * Will only create a new function if needed, + * otherwise will pass back existing functions or null. + * + * @param {function} functions to chain + * @returns {function|null} + */ +function createChainedFunction() { + for (var _len = arguments.length, funcs = Array(_len), _key = 0; _key < _len; _key++) { + funcs[_key] = arguments[_key]; + } + + return funcs.filter(function (f) { + return f != null; + }).reduce(function (acc, f) { + if (typeof f !== 'function') { + throw new Error('Invalid Argument Type, must only provide functions, undefined, or null.'); + } + + if (acc === null) { + return f; + } + + return function chainedFunction() { + for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { + args[_key2] = arguments[_key2]; + } + + acc.apply(this, args); + f.apply(this, args); + }; + }, null); +} + +/* harmony default export */ __webpack_exports__["a"] = (createChainedFunction); + +/***/ }), +/* 17 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/** + * Copyright (c) 2013-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + */ + + + +var canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement); + +/** + * Simple, lightweight module assisting with the detection and context of + * Worker. Helps avoid circular dependencies and allows code to reason about + * whether or not they are in a Worker, even if they never include the main + * `ReactWorker` dependency. + */ +var ExecutionEnvironment = { + + canUseDOM: canUseDOM, + + canUseWorkers: typeof Worker !== 'undefined', + + canUseEventListeners: canUseDOM && !!(window.addEventListener || window.attachEvent), + + canUseViewport: canUseDOM && !!window.screen, + + isInWorker: !canUseDOM // For now, this is true - might change in the future. + +}; + +module.exports = ExecutionEnvironment; + +/***/ }), +/* 18 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +module.exports = __webpack_require__(502); + + +/***/ }), +/* 19 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return Size; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return SIZE_MAP; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return DEVICE_SIZES; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return State; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return Style; }); +var Size = { + LARGE: 'large', + SMALL: 'small', + XSMALL: 'xsmall' +}; + +var SIZE_MAP = { + large: 'lg', + medium: 'md', + small: 'sm', + xsmall: 'xs', + lg: 'lg', + md: 'md', + sm: 'sm', + xs: 'xs' +}; + +var DEVICE_SIZES = ['lg', 'md', 'sm', 'xs']; + +var State = { + SUCCESS: 'success', + WARNING: 'warning', + DANGER: 'danger', + INFO: 'info' +}; + +var Style = { + DEFAULT: 'default', + PRIMARY: 'primary', + LINK: 'link', + INVERSE: 'inverse' +}; + +/***/ }), +/* 20 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__); +// TODO: This module should be ElementChildren, and should use named exports. + + + +/** + * Iterates through children that are typically specified as `props.children`, + * but only maps over children that are "valid components". + * + * The mapFunction provided index will be normalised to the components mapped, + * so an invalid component would not increase the index. + * + * @param {?*} children Children tree container. + * @param {function(*, int)} func. + * @param {*} context Context for func. + * @return {object} Object containing the ordered map of results. + */ +function map(children, func, context) { + var index = 0; + + return __WEBPACK_IMPORTED_MODULE_0_react___default.a.Children.map(children, function (child) { + if (!__WEBPACK_IMPORTED_MODULE_0_react___default.a.isValidElement(child)) { + return child; + } + + return func.call(context, child, index++); + }); +} + +/** + * Iterates through children that are "valid components". + * + * The provided forEachFunc(child, index) will be called for each + * leaf child with the index reflecting the position relative to "valid components". + * + * @param {?*} children Children tree container. + * @param {function(*, int)} func. + * @param {*} context Context for context. + */ +function forEach(children, func, context) { + var index = 0; + + __WEBPACK_IMPORTED_MODULE_0_react___default.a.Children.forEach(children, function (child) { + if (!__WEBPACK_IMPORTED_MODULE_0_react___default.a.isValidElement(child)) { + return; + } + + func.call(context, child, index++); + }); +} + +/** + * Count the number of "valid components" in the Children container. + * + * @param {?*} children Children tree container. + * @returns {number} + */ +function count(children) { + var result = 0; + + __WEBPACK_IMPORTED_MODULE_0_react___default.a.Children.forEach(children, function (child) { + if (!__WEBPACK_IMPORTED_MODULE_0_react___default.a.isValidElement(child)) { + return; + } + + ++result; + }); + + return result; +} + +/** + * Finds children that are typically specified as `props.children`, + * but only iterates over children that are "valid components". + * + * The provided forEachFunc(child, index) will be called for each + * leaf child with the index reflecting the position relative to "valid components". + * + * @param {?*} children Children tree container. + * @param {function(*, int)} func. + * @param {*} context Context for func. + * @returns {array} of children that meet the func return statement + */ +function filter(children, func, context) { + var index = 0; + var result = []; + + __WEBPACK_IMPORTED_MODULE_0_react___default.a.Children.forEach(children, function (child) { + if (!__WEBPACK_IMPORTED_MODULE_0_react___default.a.isValidElement(child)) { + return; + } + + if (func.call(context, child, index++)) { + result.push(child); + } + }); + + return result; +} + +function find(children, func, context) { + var index = 0; + var result = void 0; + + __WEBPACK_IMPORTED_MODULE_0_react___default.a.Children.forEach(children, function (child) { + if (result) { + return; + } + if (!__WEBPACK_IMPORTED_MODULE_0_react___default.a.isValidElement(child)) { + return; + } + + if (func.call(context, child, index++)) { + result = child; + } + }); + + return result; +} + +function every(children, func, context) { + var index = 0; + var result = true; + + __WEBPACK_IMPORTED_MODULE_0_react___default.a.Children.forEach(children, function (child) { + if (!result) { + return; + } + if (!__WEBPACK_IMPORTED_MODULE_0_react___default.a.isValidElement(child)) { + return; + } + + if (!func.call(context, child, index++)) { + result = false; + } + }); + + return result; +} + +function some(children, func, context) { + var index = 0; + var result = false; + + __WEBPACK_IMPORTED_MODULE_0_react___default.a.Children.forEach(children, function (child) { + if (result) { + return; + } + if (!__WEBPACK_IMPORTED_MODULE_0_react___default.a.isValidElement(child)) { + return; + } + + if (func.call(context, child, index++)) { + result = true; + } + }); + + return result; +} + +function toArray(children) { + var result = []; + + __WEBPACK_IMPORTED_MODULE_0_react___default.a.Children.forEach(children, function (child) { + if (!__WEBPACK_IMPORTED_MODULE_0_react___default.a.isValidElement(child)) { + return; + } + + result.push(child); + }); + + return result; +} + +/* harmony default export */ __webpack_exports__["a"] = ({ + map: map, + forEach: forEach, + count: count, + find: find, + filter: filter, + every: every, + some: some, + toArray: toArray +}); + +/***/ }), +/* 21 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) {/** + * Copyright (c) 2016-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + * + */ + + + +var _prodInvariant = __webpack_require__(51); + +var ReactCurrentOwner = __webpack_require__(28); + +var invariant = __webpack_require__(10); +var warning = __webpack_require__(11); + +function isNative(fn) { + // Based on isNative() from Lodash + var funcToString = Function.prototype.toString; + var hasOwnProperty = Object.prototype.hasOwnProperty; + var reIsNative = RegExp('^' + funcToString + // Take an example native function source for comparison + .call(hasOwnProperty + // Strip regex characters so we can use it for regex + ).replace(/[\\^$.*+?()[\]{}|]/g, '\\$&' + // Remove hasOwnProperty from the template to make it generic + ).replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$'); + try { + var source = funcToString.call(fn); + return reIsNative.test(source); + } catch (err) { + return false; + } +} + +var canUseCollections = +// Array.from +typeof Array.from === 'function' && +// Map +typeof Map === 'function' && isNative(Map) && +// Map.prototype.keys +Map.prototype != null && typeof Map.prototype.keys === 'function' && isNative(Map.prototype.keys) && +// Set +typeof Set === 'function' && isNative(Set) && +// Set.prototype.keys +Set.prototype != null && typeof Set.prototype.keys === 'function' && isNative(Set.prototype.keys); + +var setItem; +var getItem; +var removeItem; +var getItemIDs; +var addRoot; +var removeRoot; +var getRootIDs; + +if (canUseCollections) { + var itemMap = new Map(); + var rootIDSet = new Set(); + + setItem = function (id, item) { + itemMap.set(id, item); + }; + getItem = function (id) { + return itemMap.get(id); + }; + removeItem = function (id) { + itemMap['delete'](id); + }; + getItemIDs = function () { + return Array.from(itemMap.keys()); + }; + + addRoot = function (id) { + rootIDSet.add(id); + }; + removeRoot = function (id) { + rootIDSet['delete'](id); + }; + getRootIDs = function () { + return Array.from(rootIDSet.keys()); + }; +} else { + var itemByKey = {}; + var rootByKey = {}; + + // Use non-numeric keys to prevent V8 performance issues: + // https://github.com/facebook/react/pull/7232 + var getKeyFromID = function (id) { + return '.' + id; + }; + var getIDFromKey = function (key) { + return parseInt(key.substr(1), 10); + }; + + setItem = function (id, item) { + var key = getKeyFromID(id); + itemByKey[key] = item; + }; + getItem = function (id) { + var key = getKeyFromID(id); + return itemByKey[key]; + }; + removeItem = function (id) { + var key = getKeyFromID(id); + delete itemByKey[key]; + }; + getItemIDs = function () { + return Object.keys(itemByKey).map(getIDFromKey); + }; + + addRoot = function (id) { + var key = getKeyFromID(id); + rootByKey[key] = true; + }; + removeRoot = function (id) { + var key = getKeyFromID(id); + delete rootByKey[key]; + }; + getRootIDs = function () { + return Object.keys(rootByKey).map(getIDFromKey); + }; +} + +var unmountedIDs = []; + +function purgeDeep(id) { + var item = getItem(id); + if (item) { + var childIDs = item.childIDs; + + removeItem(id); + childIDs.forEach(purgeDeep); + } +} + +function describeComponentFrame(name, source, ownerName) { + return '\n in ' + (name || 'Unknown') + (source ? ' (at ' + source.fileName.replace(/^.*[\\\/]/, '') + ':' + source.lineNumber + ')' : ownerName ? ' (created by ' + ownerName + ')' : ''); +} + +function getDisplayName(element) { + if (element == null) { + return '#empty'; + } else if (typeof element === 'string' || typeof element === 'number') { + return '#text'; + } else if (typeof element.type === 'string') { + return element.type; + } else { + return element.type.displayName || element.type.name || 'Unknown'; + } +} + +function describeID(id) { + var name = ReactComponentTreeHook.getDisplayName(id); + var element = ReactComponentTreeHook.getElement(id); + var ownerID = ReactComponentTreeHook.getOwnerID(id); + var ownerName; + if (ownerID) { + ownerName = ReactComponentTreeHook.getDisplayName(ownerID); + } + process.env.NODE_ENV !== 'production' ? warning(element, 'ReactComponentTreeHook: Missing React element for debugID %s when ' + 'building stack', id) : void 0; + return describeComponentFrame(name, element && element._source, ownerName); +} + +var ReactComponentTreeHook = { + onSetChildren: function (id, nextChildIDs) { + var item = getItem(id); + !item ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Item must have been set') : _prodInvariant('144') : void 0; + item.childIDs = nextChildIDs; + + for (var i = 0; i < nextChildIDs.length; i++) { + var nextChildID = nextChildIDs[i]; + var nextChild = getItem(nextChildID); + !nextChild ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Expected hook events to fire for the child before its parent includes it in onSetChildren().') : _prodInvariant('140') : void 0; + !(nextChild.childIDs != null || typeof nextChild.element !== 'object' || nextChild.element == null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Expected onSetChildren() to fire for a container child before its parent includes it in onSetChildren().') : _prodInvariant('141') : void 0; + !nextChild.isMounted ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Expected onMountComponent() to fire for the child before its parent includes it in onSetChildren().') : _prodInvariant('71') : void 0; + if (nextChild.parentID == null) { + nextChild.parentID = id; + // TODO: This shouldn't be necessary but mounting a new root during in + // componentWillMount currently causes not-yet-mounted components to + // be purged from our tree data so their parent id is missing. + } + !(nextChild.parentID === id) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Expected onBeforeMountComponent() parent and onSetChildren() to be consistent (%s has parents %s and %s).', nextChildID, nextChild.parentID, id) : _prodInvariant('142', nextChildID, nextChild.parentID, id) : void 0; + } + }, + onBeforeMountComponent: function (id, element, parentID) { + var item = { + element: element, + parentID: parentID, + text: null, + childIDs: [], + isMounted: false, + updateCount: 0 + }; + setItem(id, item); + }, + onBeforeUpdateComponent: function (id, element) { + var item = getItem(id); + if (!item || !item.isMounted) { + // We may end up here as a result of setState() in componentWillUnmount(). + // In this case, ignore the element. + return; + } + item.element = element; + }, + onMountComponent: function (id) { + var item = getItem(id); + !item ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Item must have been set') : _prodInvariant('144') : void 0; + item.isMounted = true; + var isRoot = item.parentID === 0; + if (isRoot) { + addRoot(id); + } + }, + onUpdateComponent: function (id) { + var item = getItem(id); + if (!item || !item.isMounted) { + // We may end up here as a result of setState() in componentWillUnmount(). + // In this case, ignore the element. + return; + } + item.updateCount++; + }, + onUnmountComponent: function (id) { + var item = getItem(id); + if (item) { + // We need to check if it exists. + // `item` might not exist if it is inside an error boundary, and a sibling + // error boundary child threw while mounting. Then this instance never + // got a chance to mount, but it still gets an unmounting event during + // the error boundary cleanup. + item.isMounted = false; + var isRoot = item.parentID === 0; + if (isRoot) { + removeRoot(id); + } + } + unmountedIDs.push(id); + }, + purgeUnmountedComponents: function () { + if (ReactComponentTreeHook._preventPurging) { + // Should only be used for testing. + return; + } + + for (var i = 0; i < unmountedIDs.length; i++) { + var id = unmountedIDs[i]; + purgeDeep(id); + } + unmountedIDs.length = 0; + }, + isMounted: function (id) { + var item = getItem(id); + return item ? item.isMounted : false; + }, + getCurrentStackAddendum: function (topElement) { + var info = ''; + if (topElement) { + var name = getDisplayName(topElement); + var owner = topElement._owner; + info += describeComponentFrame(name, topElement._source, owner && owner.getName()); + } + + var currentOwner = ReactCurrentOwner.current; + var id = currentOwner && currentOwner._debugID; + + info += ReactComponentTreeHook.getStackAddendumByID(id); + return info; + }, + getStackAddendumByID: function (id) { + var info = ''; + while (id) { + info += describeID(id); + id = ReactComponentTreeHook.getParentID(id); + } + return info; + }, + getChildIDs: function (id) { + var item = getItem(id); + return item ? item.childIDs : []; + }, + getDisplayName: function (id) { + var element = ReactComponentTreeHook.getElement(id); + if (!element) { + return null; + } + return getDisplayName(element); + }, + getElement: function (id) { + var item = getItem(id); + return item ? item.element : null; + }, + getOwnerID: function (id) { + var element = ReactComponentTreeHook.getElement(id); + if (!element || !element._owner) { + return null; + } + return element._owner._debugID; + }, + getParentID: function (id) { + var item = getItem(id); + return item ? item.parentID : null; + }, + getSource: function (id) { + var item = getItem(id); + var element = item ? item.element : null; + var source = element != null ? element._source : null; + return source; + }, + getText: function (id) { + var element = ReactComponentTreeHook.getElement(id); + if (typeof element === 'string') { + return element; + } else if (typeof element === 'number') { + return '' + element; + } else { + return null; + } + }, + getUpdateCount: function (id) { + var item = getItem(id); + return item ? item.updateCount : 0; + }, + + + getRootIDs: getRootIDs, + getRegisteredIDs: getItemIDs, + + pushNonStandardWarningStack: function (isCreatingElement, currentSource) { + if (typeof console.reactStack !== 'function') { + return; + } + + var stack = []; + var currentOwner = ReactCurrentOwner.current; + var id = currentOwner && currentOwner._debugID; + + try { + if (isCreatingElement) { + stack.push({ + name: id ? ReactComponentTreeHook.getDisplayName(id) : null, + fileName: currentSource ? currentSource.fileName : null, + lineNumber: currentSource ? currentSource.lineNumber : null + }); + } + + while (id) { + var element = ReactComponentTreeHook.getElement(id); + var parentID = ReactComponentTreeHook.getParentID(id); + var ownerID = ReactComponentTreeHook.getOwnerID(id); + var ownerName = ownerID ? ReactComponentTreeHook.getDisplayName(ownerID) : null; + var source = element && element._source; + stack.push({ + name: ownerName, + fileName: source ? source.fileName : null, + lineNumber: source ? source.lineNumber : null + }); + id = parentID; + } + } catch (err) { + // Internal state is messed up. + // Stop building the stack (it's just a nice to have). + } + + console.reactStack(stack); + }, + popNonStandardWarningStack: function () { + if (typeof console.reactStackEnd !== 'function') { + return; + } + console.reactStackEnd(); + } +}; + +module.exports = ReactComponentTreeHook; +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1))) + +/***/ }), +/* 22 */ +/***/ (function(module, exports) { + +var $Object = Object; +module.exports = { + create: $Object.create, + getProto: $Object.getPrototypeOf, + isEnum: {}.propertyIsEnumerable, + getDesc: $Object.getOwnPropertyDescriptor, + setDesc: $Object.defineProperty, + setDescs: $Object.defineProperties, + getKeys: $Object.keys, + getNames: $Object.getOwnPropertyNames, + getSymbols: $Object.getOwnPropertySymbols, + each: [].forEach +}; + +/***/ }), +/* 23 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +/** + * Copyright (c) 2013-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + * + */ + +function makeEmptyFunction(arg) { + return function () { + return arg; + }; +} + +/** + * This function accepts and discards inputs; it has no side effects. This is + * primarily useful idiomatically for overridable function endpoints which + * always need to be callable, since JS lacks a null-call idiom ala Cocoa. + */ +var emptyFunction = function emptyFunction() {}; + +emptyFunction.thatReturns = makeEmptyFunction; +emptyFunction.thatReturnsFalse = makeEmptyFunction(false); +emptyFunction.thatReturnsTrue = makeEmptyFunction(true); +emptyFunction.thatReturnsNull = makeEmptyFunction(null); +emptyFunction.thatReturnsThis = function () { + return this; +}; +emptyFunction.thatReturnsArgument = function (arg) { + return arg; +}; + +module.exports = emptyFunction; + +/***/ }), +/* 24 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) {/** + * Copyright (c) 2016-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + * + */ + + + +// Trust the developer to only use ReactInstrumentation with a __DEV__ check + +var debugTool = null; + +if (process.env.NODE_ENV !== 'production') { + var ReactDebugTool = __webpack_require__(517); + debugTool = ReactDebugTool; +} + +module.exports = { debugTool: debugTool }; +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1))) + +/***/ }), +/* 25 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) {/** + * Copyright 2014-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + */ + + + +/** + * Similar to invariant but only logs a warning if the condition is not met. + * This can be used to log issues in development environments in critical + * paths. Removing the logging code for production environments will keep the + * same logic and follow the same code paths. + */ + +var warning = function() {}; + +if (process.env.NODE_ENV !== 'production') { + warning = function(condition, format, args) { + var len = arguments.length; + args = new Array(len > 2 ? len - 2 : 0); + for (var key = 2; key < len; key++) { + args[key - 2] = arguments[key]; + } + if (format === undefined) { + throw new Error( + '`warning(condition, format, ...args)` requires a warning ' + + 'message argument' + ); + } + + if (format.length < 10 || (/^[s\W]*$/).test(format)) { + throw new Error( + 'The warning format should be able to uniquely identify this ' + + 'warning. Please, use a more descriptive format than: ' + format + ); + } + + if (!condition) { + var argIndex = 0; + var message = 'Warning: ' + + format.replace(/%s/g, function() { + return args[argIndex++]; + }); + if (typeof console !== 'undefined') { + console.error(message); + } + try { + // This error was thrown as a convenience so that you can use this stack + // to find the callsite that caused this warning to fire. + throw new Error(message); + } catch(x) {} + } + }; +} + +module.exports = warning; + +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1))) + +/***/ }), +/* 26 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends__ = __webpack_require__(5); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_objectWithoutProperties__ = __webpack_require__(6); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_objectWithoutProperties___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_objectWithoutProperties__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_classCallCheck__ = __webpack_require__(2); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_classCallCheck___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_classCallCheck__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_possibleConstructorReturn__ = __webpack_require__(4); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_possibleConstructorReturn___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_possibleConstructorReturn__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_babel_runtime_helpers_inherits__ = __webpack_require__(3); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_babel_runtime_helpers_inherits___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_babel_runtime_helpers_inherits__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_react__ = __webpack_require__(0); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_react__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_prop_types__ = __webpack_require__(8); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_6_prop_types__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_prop_types_extra_lib_elementType__ = __webpack_require__(13); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_prop_types_extra_lib_elementType___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_7_prop_types_extra_lib_elementType__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__utils_createChainedFunction__ = __webpack_require__(16); + + + + + + + + + + + +var propTypes = { + href: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.string, + onClick: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.func, + onKeyDown: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.func, + disabled: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.bool, + role: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.string, + tabIndex: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.number, __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.string]), + /** + * this is sort of silly but needed for Button + */ + componentClass: __WEBPACK_IMPORTED_MODULE_7_prop_types_extra_lib_elementType___default.a +}; + +var defaultProps = { + componentClass: 'a' +}; + +function isTrivialHref(href) { + return !href || href.trim() === '#'; +} + +/** + * There are situations due to browser quirks or Bootstrap CSS where + * an anchor tag is needed, when semantically a button tag is the + * better choice. SafeAnchor ensures that when an anchor is used like a + * button its accessible. It also emulates input `disabled` behavior for + * links, which is usually desirable for Buttons, NavItems, MenuItems, etc. + */ + +var SafeAnchor = function (_React$Component) { + __WEBPACK_IMPORTED_MODULE_4_babel_runtime_helpers_inherits___default()(SafeAnchor, _React$Component); + + function SafeAnchor(props, context) { + __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_classCallCheck___default()(this, SafeAnchor); + + var _this = __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_possibleConstructorReturn___default()(this, _React$Component.call(this, props, context)); + + _this.handleClick = _this.handleClick.bind(_this); + _this.handleKeyDown = _this.handleKeyDown.bind(_this); + return _this; + } + + SafeAnchor.prototype.handleClick = function handleClick(event) { + var _props = this.props, + disabled = _props.disabled, + href = _props.href, + onClick = _props.onClick; + + + if (disabled || isTrivialHref(href)) { + event.preventDefault(); + } + + if (disabled) { + event.stopPropagation(); + return; + } + + if (onClick) { + onClick(event); + } + }; + + SafeAnchor.prototype.handleKeyDown = function handleKeyDown(event) { + if (event.key === ' ') { + event.preventDefault(); + this.handleClick(event); + } + }; + + SafeAnchor.prototype.render = function render() { + var _props2 = this.props, + Component = _props2.componentClass, + disabled = _props2.disabled, + onKeyDown = _props2.onKeyDown, + props = __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_objectWithoutProperties___default()(_props2, ['componentClass', 'disabled', 'onKeyDown']); + + if (isTrivialHref(props.href)) { + props.role = props.role || 'button'; + // we want to make sure there is a href attribute on the node + // otherwise, the cursor incorrectly styled (except with role='button') + props.href = props.href || '#'; + } + + if (disabled) { + props.tabIndex = -1; + props.style = __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends___default()({ pointerEvents: 'none' }, props.style); + } + + return __WEBPACK_IMPORTED_MODULE_5_react___default.a.createElement(Component, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends___default()({}, props, { + onClick: this.handleClick, + onKeyDown: __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_8__utils_createChainedFunction__["a" /* default */])(this.handleKeyDown, onKeyDown) + })); + }; + + return SafeAnchor; +}(__WEBPACK_IMPORTED_MODULE_5_react___default.a.Component); + +SafeAnchor.propTypes = propTypes; +SafeAnchor.defaultProps = defaultProps; + +/* harmony default export */ __webpack_exports__["a"] = (SafeAnchor); + +/***/ }), +/* 27 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) {/** + * Copyright (c) 2013-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + */ + + + +var _prodInvariant = __webpack_require__(12), + _assign = __webpack_require__(14); + +var CallbackQueue = __webpack_require__(209); +var PooledClass = __webpack_require__(40); +var ReactFeatureFlags = __webpack_require__(214); +var ReactReconciler = __webpack_require__(48); +var Transaction = __webpack_require__(89); + +var invariant = __webpack_require__(10); + +var dirtyComponents = []; +var updateBatchNumber = 0; +var asapCallbackQueue = CallbackQueue.getPooled(); +var asapEnqueued = false; + +var batchingStrategy = null; + +function ensureInjected() { + !(ReactUpdates.ReactReconcileTransaction && batchingStrategy) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactUpdates: must inject a reconcile transaction class and batching strategy') : _prodInvariant('123') : void 0; +} + +var NESTED_UPDATES = { + initialize: function () { + this.dirtyComponentsLength = dirtyComponents.length; + }, + close: function () { + if (this.dirtyComponentsLength !== dirtyComponents.length) { + // Additional updates were enqueued by componentDidUpdate handlers or + // similar; before our own UPDATE_QUEUEING wrapper closes, we want to run + // these new updates so that if A's componentDidUpdate calls setState on + // B, B will update before the callback A's updater provided when calling + // setState. + dirtyComponents.splice(0, this.dirtyComponentsLength); + flushBatchedUpdates(); + } else { + dirtyComponents.length = 0; + } + } +}; + +var UPDATE_QUEUEING = { + initialize: function () { + this.callbackQueue.reset(); + }, + close: function () { + this.callbackQueue.notifyAll(); + } +}; + +var TRANSACTION_WRAPPERS = [NESTED_UPDATES, UPDATE_QUEUEING]; + +function ReactUpdatesFlushTransaction() { + this.reinitializeTransaction(); + this.dirtyComponentsLength = null; + this.callbackQueue = CallbackQueue.getPooled(); + this.reconcileTransaction = ReactUpdates.ReactReconcileTransaction.getPooled( + /* useCreateElement */true); +} + +_assign(ReactUpdatesFlushTransaction.prototype, Transaction, { + getTransactionWrappers: function () { + return TRANSACTION_WRAPPERS; + }, + + destructor: function () { + this.dirtyComponentsLength = null; + CallbackQueue.release(this.callbackQueue); + this.callbackQueue = null; + ReactUpdates.ReactReconcileTransaction.release(this.reconcileTransaction); + this.reconcileTransaction = null; + }, + + perform: function (method, scope, a) { + // Essentially calls `this.reconcileTransaction.perform(method, scope, a)` + // with this transaction's wrappers around it. + return Transaction.perform.call(this, this.reconcileTransaction.perform, this.reconcileTransaction, method, scope, a); + } +}); + +PooledClass.addPoolingTo(ReactUpdatesFlushTransaction); + +function batchedUpdates(callback, a, b, c, d, e) { + ensureInjected(); + return batchingStrategy.batchedUpdates(callback, a, b, c, d, e); +} + +/** + * Array comparator for ReactComponents by mount ordering. + * + * @param {ReactComponent} c1 first component you're comparing + * @param {ReactComponent} c2 second component you're comparing + * @return {number} Return value usable by Array.prototype.sort(). + */ +function mountOrderComparator(c1, c2) { + return c1._mountOrder - c2._mountOrder; +} + +function runBatchedUpdates(transaction) { + var len = transaction.dirtyComponentsLength; + !(len === dirtyComponents.length) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Expected flush transaction\'s stored dirty-components length (%s) to match dirty-components array length (%s).', len, dirtyComponents.length) : _prodInvariant('124', len, dirtyComponents.length) : void 0; + + // Since reconciling a component higher in the owner hierarchy usually (not + // always -- see shouldComponentUpdate()) will reconcile children, reconcile + // them before their children by sorting the array. + dirtyComponents.sort(mountOrderComparator); + + // Any updates enqueued while reconciling must be performed after this entire + // batch. Otherwise, if dirtyComponents is [A, B] where A has children B and + // C, B could update twice in a single batch if C's render enqueues an update + // to B (since B would have already updated, we should skip it, and the only + // way we can know to do so is by checking the batch counter). + updateBatchNumber++; + + for (var i = 0; i < len; i++) { + // If a component is unmounted before pending changes apply, it will still + // be here, but we assume that it has cleared its _pendingCallbacks and + // that performUpdateIfNecessary is a noop. + var component = dirtyComponents[i]; + + // If performUpdateIfNecessary happens to enqueue any new updates, we + // shouldn't execute the callbacks until the next render happens, so + // stash the callbacks first + var callbacks = component._pendingCallbacks; + component._pendingCallbacks = null; + + var markerName; + if (ReactFeatureFlags.logTopLevelRenders) { + var namedComponent = component; + // Duck type TopLevelWrapper. This is probably always true. + if (component._currentElement.type.isReactTopLevelWrapper) { + namedComponent = component._renderedComponent; + } + markerName = 'React update: ' + namedComponent.getName(); + console.time(markerName); + } + + ReactReconciler.performUpdateIfNecessary(component, transaction.reconcileTransaction, updateBatchNumber); + + if (markerName) { + console.timeEnd(markerName); + } + + if (callbacks) { + for (var j = 0; j < callbacks.length; j++) { + transaction.callbackQueue.enqueue(callbacks[j], component.getPublicInstance()); + } + } + } +} + +var flushBatchedUpdates = function () { + // ReactUpdatesFlushTransaction's wrappers will clear the dirtyComponents + // array and perform any updates enqueued by mount-ready handlers (i.e., + // componentDidUpdate) but we need to check here too in order to catch + // updates enqueued by setState callbacks and asap calls. + while (dirtyComponents.length || asapEnqueued) { + if (dirtyComponents.length) { + var transaction = ReactUpdatesFlushTransaction.getPooled(); + transaction.perform(runBatchedUpdates, null, transaction); + ReactUpdatesFlushTransaction.release(transaction); + } + + if (asapEnqueued) { + asapEnqueued = false; + var queue = asapCallbackQueue; + asapCallbackQueue = CallbackQueue.getPooled(); + queue.notifyAll(); + CallbackQueue.release(queue); + } + } +}; + +/** + * Mark a component as needing a rerender, adding an optional callback to a + * list of functions which will be executed once the rerender occurs. + */ +function enqueueUpdate(component) { + ensureInjected(); + + // Various parts of our code (such as ReactCompositeComponent's + // _renderValidatedComponent) assume that calls to render aren't nested; + // verify that that's the case. (This is called by each top-level update + // function, like setState, forceUpdate, etc.; creation and + // destruction of top-level components is guarded in ReactMount.) + + if (!batchingStrategy.isBatchingUpdates) { + batchingStrategy.batchedUpdates(enqueueUpdate, component); + return; + } + + dirtyComponents.push(component); + if (component._updateBatchNumber == null) { + component._updateBatchNumber = updateBatchNumber + 1; + } +} + +/** + * Enqueue a callback to be run at the end of the current batching cycle. Throws + * if no updates are currently being performed. + */ +function asap(callback, context) { + invariant(batchingStrategy.isBatchingUpdates, "ReactUpdates.asap: Can't enqueue an asap callback in a context where" + 'updates are not being batched.'); + asapCallbackQueue.enqueue(callback, context); + asapEnqueued = true; +} + +var ReactUpdatesInjection = { + injectReconcileTransaction: function (ReconcileTransaction) { + !ReconcileTransaction ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactUpdates: must provide a reconcile transaction class') : _prodInvariant('126') : void 0; + ReactUpdates.ReactReconcileTransaction = ReconcileTransaction; + }, + + injectBatchingStrategy: function (_batchingStrategy) { + !_batchingStrategy ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactUpdates: must provide a batching strategy') : _prodInvariant('127') : void 0; + !(typeof _batchingStrategy.batchedUpdates === 'function') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactUpdates: must provide a batchedUpdates() function') : _prodInvariant('128') : void 0; + !(typeof _batchingStrategy.isBatchingUpdates === 'boolean') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactUpdates: must provide an isBatchingUpdates boolean attribute') : _prodInvariant('129') : void 0; + batchingStrategy = _batchingStrategy; + } +}; + +var ReactUpdates = { + /** + * React references `ReactReconcileTransaction` using this property in order + * to allow dependency injection. + * + * @internal + */ + ReactReconcileTransaction: null, + + batchedUpdates: batchedUpdates, + enqueueUpdate: enqueueUpdate, + flushBatchedUpdates: flushBatchedUpdates, + injection: ReactUpdatesInjection, + asap: asap +}; + +module.exports = ReactUpdates; +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1))) + +/***/ }), +/* 28 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/** + * Copyright (c) 2013-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + * + */ + + + +/** + * Keeps track of the current owner. + * + * The current owner is the component who should own any components that are + * currently being constructed. + */ +var ReactCurrentOwner = { + /** + * @internal + * @type {ReactComponent} + */ + current: null +}; + +module.exports = ReactCurrentOwner; + +/***/ }), +/* 29 */ +/***/ (function(module, exports) { + +module.exports = function(module) { + if(!module.webpackPolyfill) { + module.deprecate = function() {}; + module.paths = []; + // module.parent = undefined by default + if(!module.children) module.children = []; + Object.defineProperty(module, "loaded", { + enumerable: true, + get: function() { + return module.l; + } + }); + Object.defineProperty(module, "id", { + enumerable: true, + get: function() { + return module.i; + } + }); + module.webpackPolyfill = 1; + } + return module; +}; + + +/***/ }), +/* 30 */ +/***/ (function(module, exports, __webpack_require__) { + +var store = __webpack_require__(148)('wks') + , uid = __webpack_require__(151) + , Symbol = __webpack_require__(64).Symbol; +module.exports = function(name){ + return store[name] || (store[name] = + Symbol && Symbol[name] || (Symbol || uid)('Symbol.' + name)); +}; + +/***/ }), +/* 31 */ +/***/ (function(module, exports, __webpack_require__) { + +var freeGlobal = __webpack_require__(179); + +/** Detect free variable `self`. */ +var freeSelf = typeof self == 'object' && self && self.Object === Object && self; + +/** Used as a reference to the global object. */ +var root = freeGlobal || freeSelf || Function('return this')(); + +module.exports = root; + + +/***/ }), +/* 32 */ +/***/ (function(module, exports) { + +/** + * Checks if `value` is classified as an `Array` object. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an array, else `false`. + * @example + * + * _.isArray([1, 2, 3]); + * // => true + * + * _.isArray(document.body.children); + * // => false + * + * _.isArray('abc'); + * // => false + * + * _.isArray(_.noop); + * // => false + */ +var isArray = Array.isArray; + +module.exports = isArray; + + +/***/ }), +/* 33 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) {/** + * Copyright (c) 2013-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + */ + + + +var _assign = __webpack_require__(14); + +var PooledClass = __webpack_require__(40); + +var emptyFunction = __webpack_require__(23); +var warning = __webpack_require__(11); + +var didWarnForAddedNewProperty = false; +var isProxySupported = typeof Proxy === 'function'; + +var shouldBeReleasedProperties = ['dispatchConfig', '_targetInst', 'nativeEvent', 'isDefaultPrevented', 'isPropagationStopped', '_dispatchListeners', '_dispatchInstances']; + +/** + * @interface Event + * @see http://www.w3.org/TR/DOM-Level-3-Events/ + */ +var EventInterface = { + type: null, + target: null, + // currentTarget is set when dispatching; no use in copying it here + currentTarget: emptyFunction.thatReturnsNull, + eventPhase: null, + bubbles: null, + cancelable: null, + timeStamp: function (event) { + return event.timeStamp || Date.now(); + }, + defaultPrevented: null, + isTrusted: null +}; + +/** + * Synthetic events are dispatched by event plugins, typically in response to a + * top-level event delegation handler. + * + * These systems should generally use pooling to reduce the frequency of garbage + * collection. The system should check `isPersistent` to determine whether the + * event should be released into the pool after being dispatched. Users that + * need a persisted event should invoke `persist`. + * + * Synthetic events (and subclasses) implement the DOM Level 3 Events API by + * normalizing browser quirks. Subclasses do not necessarily have to implement a + * DOM interface; custom application-specific events can also subclass this. + * + * @param {object} dispatchConfig Configuration used to dispatch this event. + * @param {*} targetInst Marker identifying the event target. + * @param {object} nativeEvent Native browser event. + * @param {DOMEventTarget} nativeEventTarget Target node. + */ +function SyntheticEvent(dispatchConfig, targetInst, nativeEvent, nativeEventTarget) { + if (process.env.NODE_ENV !== 'production') { + // these have a getter/setter for warnings + delete this.nativeEvent; + delete this.preventDefault; + delete this.stopPropagation; + } + + this.dispatchConfig = dispatchConfig; + this._targetInst = targetInst; + this.nativeEvent = nativeEvent; + + var Interface = this.constructor.Interface; + for (var propName in Interface) { + if (!Interface.hasOwnProperty(propName)) { + continue; + } + if (process.env.NODE_ENV !== 'production') { + delete this[propName]; // this has a getter/setter for warnings + } + var normalize = Interface[propName]; + if (normalize) { + this[propName] = normalize(nativeEvent); + } else { + if (propName === 'target') { + this.target = nativeEventTarget; + } else { + this[propName] = nativeEvent[propName]; + } + } + } + + var defaultPrevented = nativeEvent.defaultPrevented != null ? nativeEvent.defaultPrevented : nativeEvent.returnValue === false; + if (defaultPrevented) { + this.isDefaultPrevented = emptyFunction.thatReturnsTrue; + } else { + this.isDefaultPrevented = emptyFunction.thatReturnsFalse; + } + this.isPropagationStopped = emptyFunction.thatReturnsFalse; + return this; +} + +_assign(SyntheticEvent.prototype, { + preventDefault: function () { + this.defaultPrevented = true; + var event = this.nativeEvent; + if (!event) { + return; + } + + if (event.preventDefault) { + event.preventDefault(); + // eslint-disable-next-line valid-typeof + } else if (typeof event.returnValue !== 'unknown') { + event.returnValue = false; + } + this.isDefaultPrevented = emptyFunction.thatReturnsTrue; + }, + + stopPropagation: function () { + var event = this.nativeEvent; + if (!event) { + return; + } + + if (event.stopPropagation) { + event.stopPropagation(); + // eslint-disable-next-line valid-typeof + } else if (typeof event.cancelBubble !== 'unknown') { + // The ChangeEventPlugin registers a "propertychange" event for + // IE. This event does not support bubbling or cancelling, and + // any references to cancelBubble throw "Member not found". A + // typeof check of "unknown" circumvents this issue (and is also + // IE specific). + event.cancelBubble = true; + } + + this.isPropagationStopped = emptyFunction.thatReturnsTrue; + }, + + /** + * We release all dispatched `SyntheticEvent`s after each event loop, adding + * them back into the pool. This allows a way to hold onto a reference that + * won't be added back into the pool. + */ + persist: function () { + this.isPersistent = emptyFunction.thatReturnsTrue; + }, + + /** + * Checks if this event should be released back into the pool. + * + * @return {boolean} True if this should not be released, false otherwise. + */ + isPersistent: emptyFunction.thatReturnsFalse, + + /** + * `PooledClass` looks for `destructor` on each instance it releases. + */ + destructor: function () { + var Interface = this.constructor.Interface; + for (var propName in Interface) { + if (process.env.NODE_ENV !== 'production') { + Object.defineProperty(this, propName, getPooledWarningPropertyDefinition(propName, Interface[propName])); + } else { + this[propName] = null; + } + } + for (var i = 0; i < shouldBeReleasedProperties.length; i++) { + this[shouldBeReleasedProperties[i]] = null; + } + if (process.env.NODE_ENV !== 'production') { + Object.defineProperty(this, 'nativeEvent', getPooledWarningPropertyDefinition('nativeEvent', null)); + Object.defineProperty(this, 'preventDefault', getPooledWarningPropertyDefinition('preventDefault', emptyFunction)); + Object.defineProperty(this, 'stopPropagation', getPooledWarningPropertyDefinition('stopPropagation', emptyFunction)); + } + } +}); + +SyntheticEvent.Interface = EventInterface; + +/** + * Helper to reduce boilerplate when creating subclasses. + * + * @param {function} Class + * @param {?object} Interface + */ +SyntheticEvent.augmentClass = function (Class, Interface) { + var Super = this; + + var E = function () {}; + E.prototype = Super.prototype; + var prototype = new E(); + + _assign(prototype, Class.prototype); + Class.prototype = prototype; + Class.prototype.constructor = Class; + + Class.Interface = _assign({}, Super.Interface, Interface); + Class.augmentClass = Super.augmentClass; + + PooledClass.addPoolingTo(Class, PooledClass.fourArgumentPooler); +}; + +/** Proxying after everything set on SyntheticEvent + * to resolve Proxy issue on some WebKit browsers + * in which some Event properties are set to undefined (GH#10010) + */ +if (process.env.NODE_ENV !== 'production') { + if (isProxySupported) { + /*eslint-disable no-func-assign */ + SyntheticEvent = new Proxy(SyntheticEvent, { + construct: function (target, args) { + return this.apply(target, Object.create(target.prototype), args); + }, + apply: function (constructor, that, args) { + return new Proxy(constructor.apply(that, args), { + set: function (target, prop, value) { + if (prop !== 'isPersistent' && !target.constructor.Interface.hasOwnProperty(prop) && shouldBeReleasedProperties.indexOf(prop) === -1) { + process.env.NODE_ENV !== 'production' ? warning(didWarnForAddedNewProperty || target.isPersistent(), "This synthetic event is reused for performance reasons. If you're " + "seeing this, you're adding a new property in the synthetic event object. " + 'The property is never released. See ' + 'https://fb.me/react-event-pooling for more information.') : void 0; + didWarnForAddedNewProperty = true; + } + target[prop] = value; + return true; + } + }); + } + }); + /*eslint-enable no-func-assign */ + } +} + +PooledClass.addPoolingTo(SyntheticEvent, PooledClass.fourArgumentPooler); + +module.exports = SyntheticEvent; + +/** + * Helper to nullify syntheticEvent instance properties when destructing + * + * @param {object} SyntheticEvent + * @param {String} propName + * @return {object} defineProperty object + */ +function getPooledWarningPropertyDefinition(propName, getVal) { + var isFunction = typeof getVal === 'function'; + return { + configurable: true, + set: set, + get: get + }; + + function set(val) { + var action = isFunction ? 'setting the method' : 'setting the property'; + warn(action, 'This is effectively a no-op'); + return val; + } + + function get() { + var action = isFunction ? 'accessing the method' : 'accessing the property'; + var result = isFunction ? 'This is a no-op function' : 'This is set to null'; + warn(action, result); + return getVal; + } + + function warn(action, result) { + var warningCondition = false; + process.env.NODE_ENV !== 'production' ? warning(warningCondition, "This synthetic event is reused for performance reasons. If you're seeing this, " + "you're %s `%s` on a released/nullified synthetic event. %s. " + 'If you must keep the original synthetic event around, use event.persist(). ' + 'See https://fb.me/react-event-pooling for more information.', action, propName, result) : void 0; + } +} +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1))) + +/***/ }), +/* 34 */ +/***/ (function(module, exports) { + +var core = module.exports = {version: '1.2.6'}; +if(typeof __e == 'number')__e = core; // eslint-disable-line no-undef + +/***/ }), +/* 35 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = !!(typeof window !== 'undefined' && window.document && window.document.createElement); +module.exports = exports['default']; + +/***/ }), +/* 36 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) {/** + * Copyright (c) 2013-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + */ + + + +var _prodInvariant = __webpack_require__(12); + +var invariant = __webpack_require__(10); + +function checkMask(value, bitmask) { + return (value & bitmask) === bitmask; +} + +var DOMPropertyInjection = { + /** + * Mapping from normalized, camelcased property names to a configuration that + * specifies how the associated DOM property should be accessed or rendered. + */ + MUST_USE_PROPERTY: 0x1, + HAS_BOOLEAN_VALUE: 0x4, + HAS_NUMERIC_VALUE: 0x8, + HAS_POSITIVE_NUMERIC_VALUE: 0x10 | 0x8, + HAS_OVERLOADED_BOOLEAN_VALUE: 0x20, + + /** + * Inject some specialized knowledge about the DOM. This takes a config object + * with the following properties: + * + * isCustomAttribute: function that given an attribute name will return true + * if it can be inserted into the DOM verbatim. Useful for data-* or aria-* + * attributes where it's impossible to enumerate all of the possible + * attribute names, + * + * Properties: object mapping DOM property name to one of the + * DOMPropertyInjection constants or null. If your attribute isn't in here, + * it won't get written to the DOM. + * + * DOMAttributeNames: object mapping React attribute name to the DOM + * attribute name. Attribute names not specified use the **lowercase** + * normalized name. + * + * DOMAttributeNamespaces: object mapping React attribute name to the DOM + * attribute namespace URL. (Attribute names not specified use no namespace.) + * + * DOMPropertyNames: similar to DOMAttributeNames but for DOM properties. + * Property names not specified use the normalized name. + * + * DOMMutationMethods: Properties that require special mutation methods. If + * `value` is undefined, the mutation method should unset the property. + * + * @param {object} domPropertyConfig the config as described above. + */ + injectDOMPropertyConfig: function (domPropertyConfig) { + var Injection = DOMPropertyInjection; + var Properties = domPropertyConfig.Properties || {}; + var DOMAttributeNamespaces = domPropertyConfig.DOMAttributeNamespaces || {}; + var DOMAttributeNames = domPropertyConfig.DOMAttributeNames || {}; + var DOMPropertyNames = domPropertyConfig.DOMPropertyNames || {}; + var DOMMutationMethods = domPropertyConfig.DOMMutationMethods || {}; + + if (domPropertyConfig.isCustomAttribute) { + DOMProperty._isCustomAttributeFunctions.push(domPropertyConfig.isCustomAttribute); + } + + for (var propName in Properties) { + !!DOMProperty.properties.hasOwnProperty(propName) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'injectDOMPropertyConfig(...): You\'re trying to inject DOM property \'%s\' which has already been injected. You may be accidentally injecting the same DOM property config twice, or you may be injecting two configs that have conflicting property names.', propName) : _prodInvariant('48', propName) : void 0; + + var lowerCased = propName.toLowerCase(); + var propConfig = Properties[propName]; + + var propertyInfo = { + attributeName: lowerCased, + attributeNamespace: null, + propertyName: propName, + mutationMethod: null, + + mustUseProperty: checkMask(propConfig, Injection.MUST_USE_PROPERTY), + hasBooleanValue: checkMask(propConfig, Injection.HAS_BOOLEAN_VALUE), + hasNumericValue: checkMask(propConfig, Injection.HAS_NUMERIC_VALUE), + hasPositiveNumericValue: checkMask(propConfig, Injection.HAS_POSITIVE_NUMERIC_VALUE), + hasOverloadedBooleanValue: checkMask(propConfig, Injection.HAS_OVERLOADED_BOOLEAN_VALUE) + }; + !(propertyInfo.hasBooleanValue + propertyInfo.hasNumericValue + propertyInfo.hasOverloadedBooleanValue <= 1) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'DOMProperty: Value can be one of boolean, overloaded boolean, or numeric value, but not a combination: %s', propName) : _prodInvariant('50', propName) : void 0; + + if (process.env.NODE_ENV !== 'production') { + DOMProperty.getPossibleStandardName[lowerCased] = propName; + } + + if (DOMAttributeNames.hasOwnProperty(propName)) { + var attributeName = DOMAttributeNames[propName]; + propertyInfo.attributeName = attributeName; + if (process.env.NODE_ENV !== 'production') { + DOMProperty.getPossibleStandardName[attributeName] = propName; + } + } + + if (DOMAttributeNamespaces.hasOwnProperty(propName)) { + propertyInfo.attributeNamespace = DOMAttributeNamespaces[propName]; + } + + if (DOMPropertyNames.hasOwnProperty(propName)) { + propertyInfo.propertyName = DOMPropertyNames[propName]; + } + + if (DOMMutationMethods.hasOwnProperty(propName)) { + propertyInfo.mutationMethod = DOMMutationMethods[propName]; + } + + DOMProperty.properties[propName] = propertyInfo; + } + } +}; + +/* eslint-disable max-len */ +var ATTRIBUTE_NAME_START_CHAR = ':A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD'; +/* eslint-enable max-len */ + +/** + * DOMProperty exports lookup objects that can be used like functions: + * + * > DOMProperty.isValid['id'] + * true + * > DOMProperty.isValid['foobar'] + * undefined + * + * Although this may be confusing, it performs better in general. + * + * @see http://jsperf.com/key-exists + * @see http://jsperf.com/key-missing + */ +var DOMProperty = { + ID_ATTRIBUTE_NAME: 'data-reactid', + ROOT_ATTRIBUTE_NAME: 'data-reactroot', + + ATTRIBUTE_NAME_START_CHAR: ATTRIBUTE_NAME_START_CHAR, + ATTRIBUTE_NAME_CHAR: ATTRIBUTE_NAME_START_CHAR + '\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040', + + /** + * Map from property "standard name" to an object with info about how to set + * the property in the DOM. Each object contains: + * + * attributeName: + * Used when rendering markup or with `*Attribute()`. + * attributeNamespace + * propertyName: + * Used on DOM node instances. (This includes properties that mutate due to + * external factors.) + * mutationMethod: + * If non-null, used instead of the property or `setAttribute()` after + * initial render. + * mustUseProperty: + * Whether the property must be accessed and mutated as an object property. + * hasBooleanValue: + * Whether the property should be removed when set to a falsey value. + * hasNumericValue: + * Whether the property must be numeric or parse as a numeric and should be + * removed when set to a falsey value. + * hasPositiveNumericValue: + * Whether the property must be positive numeric or parse as a positive + * numeric and should be removed when set to a falsey value. + * hasOverloadedBooleanValue: + * Whether the property can be used as a flag as well as with a value. + * Removed when strictly equal to false; present without a value when + * strictly equal to true; present with a value otherwise. + */ + properties: {}, + + /** + * Mapping from lowercase property names to the properly cased version, used + * to warn in the case of missing properties. Available only in __DEV__. + * + * autofocus is predefined, because adding it to the property whitelist + * causes unintended side effects. + * + * @type {Object} + */ + getPossibleStandardName: process.env.NODE_ENV !== 'production' ? { autofocus: 'autoFocus' } : null, + + /** + * All of the isCustomAttribute() functions that have been injected. + */ + _isCustomAttributeFunctions: [], + + /** + * Checks whether a property name is a custom attribute. + * @method + */ + isCustomAttribute: function (attributeName) { + for (var i = 0; i < DOMProperty._isCustomAttributeFunctions.length; i++) { + var isCustomAttributeFn = DOMProperty._isCustomAttributeFunctions[i]; + if (isCustomAttributeFn(attributeName)) { + return true; + } + } + return false; + }, + + injection: DOMPropertyInjection +}; + +module.exports = DOMProperty; +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1))) + +/***/ }), +/* 37 */ +/***/ (function(module, exports, __webpack_require__) { + +var global = __webpack_require__(64) + , core = __webpack_require__(34) + , ctx = __webpack_require__(97) + , PROTOTYPE = 'prototype'; + +var $export = function(type, name, source){ + var IS_FORCED = type & $export.F + , IS_GLOBAL = type & $export.G + , IS_STATIC = type & $export.S + , IS_PROTO = type & $export.P + , IS_BIND = type & $export.B + , IS_WRAP = type & $export.W + , exports = IS_GLOBAL ? core : core[name] || (core[name] = {}) + , target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE] + , key, own, out; + if(IS_GLOBAL)source = name; + for(key in source){ + // contains in native + own = !IS_FORCED && target && key in target; + if(own && key in exports)continue; + // export native or passed + out = own ? target[key] : source[key]; + // prevent global pollution for namespaces + exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key] + // bind timers to global for call from export context + : IS_BIND && own ? ctx(out, global) + // wrap global constructors for prevent change them in library + : IS_WRAP && target[key] == out ? (function(C){ + var F = function(param){ + return this instanceof C ? new C(param) : C(param); + }; + F[PROTOTYPE] = C[PROTOTYPE]; + return F; + // make static versions for prototype methods + })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out; + if(IS_PROTO)(exports[PROTOTYPE] || (exports[PROTOTYPE] = {}))[key] = out; + } +}; +// type bitmap +$export.F = 1; // forced +$export.G = 2; // global +$export.S = 4; // static +$export.P = 8; // proto +$export.B = 16; // bind +$export.W = 32; // wrap +module.exports = $export; + +/***/ }), +/* 38 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseIsNative = __webpack_require__(344), + getValue = __webpack_require__(365); + +/** + * Gets the native function at `key` of `object`. + * + * @private + * @param {Object} object The object to query. + * @param {string} key The key of the method to get. + * @returns {*} Returns the function if it's native, else `undefined`. + */ +function getNative(object, key) { + var value = getValue(object, key); + return baseIsNative(value) ? value : undefined; +} + +module.exports = getNative; + + +/***/ }), +/* 39 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +Object.defineProperty(__webpack_exports__, "__esModule", { value: true }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__Accordion__ = __webpack_require__(424); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Accordion", function() { return __WEBPACK_IMPORTED_MODULE_0__Accordion__["a"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__Alert__ = __webpack_require__(425); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Alert", function() { return __WEBPACK_IMPORTED_MODULE_1__Alert__["a"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__Badge__ = __webpack_require__(426); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Badge", function() { return __WEBPACK_IMPORTED_MODULE_2__Badge__["a"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__Breadcrumb__ = __webpack_require__(427); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Breadcrumb", function() { return __WEBPACK_IMPORTED_MODULE_3__Breadcrumb__["a"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__BreadcrumbItem__ = __webpack_require__(189); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "BreadcrumbItem", function() { return __WEBPACK_IMPORTED_MODULE_4__BreadcrumbItem__["a"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__Button__ = __webpack_require__(58); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Button", function() { return __WEBPACK_IMPORTED_MODULE_5__Button__["a"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__ButtonGroup__ = __webpack_require__(116); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "ButtonGroup", function() { return __WEBPACK_IMPORTED_MODULE_6__ButtonGroup__["a"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__ButtonToolbar__ = __webpack_require__(428); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "ButtonToolbar", function() { return __WEBPACK_IMPORTED_MODULE_7__ButtonToolbar__["a"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__Carousel__ = __webpack_require__(429); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Carousel", function() { return __WEBPACK_IMPORTED_MODULE_8__Carousel__["a"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__CarouselItem__ = __webpack_require__(190); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "CarouselItem", function() { return __WEBPACK_IMPORTED_MODULE_9__CarouselItem__["a"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__Checkbox__ = __webpack_require__(431); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Checkbox", function() { return __WEBPACK_IMPORTED_MODULE_10__Checkbox__["a"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__Clearfix__ = __webpack_require__(432); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Clearfix", function() { return __WEBPACK_IMPORTED_MODULE_11__Clearfix__["a"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__CloseButton__ = __webpack_require__(117); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "CloseButton", function() { return __WEBPACK_IMPORTED_MODULE_12__CloseButton__["a"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__ControlLabel__ = __webpack_require__(434); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "ControlLabel", function() { return __WEBPACK_IMPORTED_MODULE_13__ControlLabel__["a"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_14__Col__ = __webpack_require__(433); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Col", function() { return __WEBPACK_IMPORTED_MODULE_14__Col__["a"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_15__Collapse__ = __webpack_require__(118); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Collapse", function() { return __WEBPACK_IMPORTED_MODULE_15__Collapse__["a"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_16__Dropdown__ = __webpack_require__(82); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Dropdown", function() { return __WEBPACK_IMPORTED_MODULE_16__Dropdown__["a"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_17__DropdownButton__ = __webpack_require__(435); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "DropdownButton", function() { return __WEBPACK_IMPORTED_MODULE_17__DropdownButton__["a"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_18__Fade__ = __webpack_require__(83); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Fade", function() { return __WEBPACK_IMPORTED_MODULE_18__Fade__["a"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_19__Form__ = __webpack_require__(437); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Form", function() { return __WEBPACK_IMPORTED_MODULE_19__Form__["a"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_20__FormControl__ = __webpack_require__(438); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "FormControl", function() { return __WEBPACK_IMPORTED_MODULE_20__FormControl__["a"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_21__FormGroup__ = __webpack_require__(441); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "FormGroup", function() { return __WEBPACK_IMPORTED_MODULE_21__FormGroup__["a"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_22__Glyphicon__ = __webpack_require__(119); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Glyphicon", function() { return __WEBPACK_IMPORTED_MODULE_22__Glyphicon__["a"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_23__Grid__ = __webpack_require__(192); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Grid", function() { return __WEBPACK_IMPORTED_MODULE_23__Grid__["a"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_24__HelpBlock__ = __webpack_require__(442); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "HelpBlock", function() { return __WEBPACK_IMPORTED_MODULE_24__HelpBlock__["a"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_25__Image__ = __webpack_require__(443); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Image", function() { return __WEBPACK_IMPORTED_MODULE_25__Image__["a"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_26__InputGroup__ = __webpack_require__(444); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "InputGroup", function() { return __WEBPACK_IMPORTED_MODULE_26__InputGroup__["a"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_27__Jumbotron__ = __webpack_require__(447); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Jumbotron", function() { return __WEBPACK_IMPORTED_MODULE_27__Jumbotron__["a"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_28__Label__ = __webpack_require__(448); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Label", function() { return __WEBPACK_IMPORTED_MODULE_28__Label__["a"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_29__ListGroup__ = __webpack_require__(449); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "ListGroup", function() { return __WEBPACK_IMPORTED_MODULE_29__ListGroup__["a"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_30__ListGroupItem__ = __webpack_require__(193); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "ListGroupItem", function() { return __WEBPACK_IMPORTED_MODULE_30__ListGroupItem__["a"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_31__Media__ = __webpack_require__(84); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Media", function() { return __WEBPACK_IMPORTED_MODULE_31__Media__["a"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_32__MenuItem__ = __webpack_require__(456); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "MenuItem", function() { return __WEBPACK_IMPORTED_MODULE_32__MenuItem__["a"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_33__Modal__ = __webpack_require__(457); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Modal", function() { return __WEBPACK_IMPORTED_MODULE_33__Modal__["a"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_34__ModalBody__ = __webpack_require__(194); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "ModalBody", function() { return __WEBPACK_IMPORTED_MODULE_34__ModalBody__["a"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_35__ModalFooter__ = __webpack_require__(195); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "ModalFooter", function() { return __WEBPACK_IMPORTED_MODULE_35__ModalFooter__["a"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_36__ModalHeader__ = __webpack_require__(196); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "ModalHeader", function() { return __WEBPACK_IMPORTED_MODULE_36__ModalHeader__["a"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_37__ModalTitle__ = __webpack_require__(197); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "ModalTitle", function() { return __WEBPACK_IMPORTED_MODULE_37__ModalTitle__["a"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_38__Nav__ = __webpack_require__(198); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Nav", function() { return __WEBPACK_IMPORTED_MODULE_38__Nav__["a"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_39__Navbar__ = __webpack_require__(460); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Navbar", function() { return __WEBPACK_IMPORTED_MODULE_39__Navbar__["a"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_40__NavbarBrand__ = __webpack_require__(200); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "NavbarBrand", function() { return __WEBPACK_IMPORTED_MODULE_40__NavbarBrand__["a"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_41__NavDropdown__ = __webpack_require__(459); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "NavDropdown", function() { return __WEBPACK_IMPORTED_MODULE_41__NavDropdown__["a"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_42__NavItem__ = __webpack_require__(199); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "NavItem", function() { return __WEBPACK_IMPORTED_MODULE_42__NavItem__["a"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_43__Overlay__ = __webpack_require__(201); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Overlay", function() { return __WEBPACK_IMPORTED_MODULE_43__Overlay__["a"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_44__OverlayTrigger__ = __webpack_require__(464); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "OverlayTrigger", function() { return __WEBPACK_IMPORTED_MODULE_44__OverlayTrigger__["a"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_45__PageHeader__ = __webpack_require__(465); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "PageHeader", function() { return __WEBPACK_IMPORTED_MODULE_45__PageHeader__["a"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_46__PageItem__ = __webpack_require__(466); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "PageItem", function() { return __WEBPACK_IMPORTED_MODULE_46__PageItem__["a"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_47__Pager__ = __webpack_require__(467); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Pager", function() { return __WEBPACK_IMPORTED_MODULE_47__Pager__["a"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_48__Pagination__ = __webpack_require__(468); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Pagination", function() { return __WEBPACK_IMPORTED_MODULE_48__Pagination__["a"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_49__PaginationButton__ = __webpack_require__(203); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "PaginationButton", function() { return __WEBPACK_IMPORTED_MODULE_49__PaginationButton__["a"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_50__Panel__ = __webpack_require__(469); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Panel", function() { return __WEBPACK_IMPORTED_MODULE_50__Panel__["a"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_51__PanelGroup__ = __webpack_require__(204); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "PanelGroup", function() { return __WEBPACK_IMPORTED_MODULE_51__PanelGroup__["a"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_52__Popover__ = __webpack_require__(470); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Popover", function() { return __WEBPACK_IMPORTED_MODULE_52__Popover__["a"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_53__ProgressBar__ = __webpack_require__(471); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "ProgressBar", function() { return __WEBPACK_IMPORTED_MODULE_53__ProgressBar__["a"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_54__Radio__ = __webpack_require__(472); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Radio", function() { return __WEBPACK_IMPORTED_MODULE_54__Radio__["a"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_55__ResponsiveEmbed__ = __webpack_require__(473); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "ResponsiveEmbed", function() { return __WEBPACK_IMPORTED_MODULE_55__ResponsiveEmbed__["a"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_56__Row__ = __webpack_require__(474); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Row", function() { return __WEBPACK_IMPORTED_MODULE_56__Row__["a"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_57__SafeAnchor__ = __webpack_require__(26); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "SafeAnchor", function() { return __WEBPACK_IMPORTED_MODULE_57__SafeAnchor__["a"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_58__SplitButton__ = __webpack_require__(475); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "SplitButton", function() { return __WEBPACK_IMPORTED_MODULE_58__SplitButton__["a"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_59__Tab__ = __webpack_require__(477); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Tab", function() { return __WEBPACK_IMPORTED_MODULE_59__Tab__["a"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_60__TabContainer__ = __webpack_require__(120); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "TabContainer", function() { return __WEBPACK_IMPORTED_MODULE_60__TabContainer__["a"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_61__TabContent__ = __webpack_require__(121); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "TabContent", function() { return __WEBPACK_IMPORTED_MODULE_61__TabContent__["a"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_62__Table__ = __webpack_require__(478); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Table", function() { return __WEBPACK_IMPORTED_MODULE_62__Table__["a"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_63__TabPane__ = __webpack_require__(205); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "TabPane", function() { return __WEBPACK_IMPORTED_MODULE_63__TabPane__["a"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_64__Tabs__ = __webpack_require__(479); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Tabs", function() { return __WEBPACK_IMPORTED_MODULE_64__Tabs__["a"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_65__Thumbnail__ = __webpack_require__(480); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Thumbnail", function() { return __WEBPACK_IMPORTED_MODULE_65__Thumbnail__["a"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_66__ToggleButton__ = __webpack_require__(206); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "ToggleButton", function() { return __WEBPACK_IMPORTED_MODULE_66__ToggleButton__["a"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_67__ToggleButtonGroup__ = __webpack_require__(481); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "ToggleButtonGroup", function() { return __WEBPACK_IMPORTED_MODULE_67__ToggleButtonGroup__["a"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_68__Tooltip__ = __webpack_require__(482); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Tooltip", function() { return __WEBPACK_IMPORTED_MODULE_68__Tooltip__["a"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_69__Well__ = __webpack_require__(483); +/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Well", function() { return __WEBPACK_IMPORTED_MODULE_69__Well__["a"]; }); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_70__utils__ = __webpack_require__(487); +/* harmony reexport (module object) */ __webpack_require__.d(__webpack_exports__, "utils", function() { return __WEBPACK_IMPORTED_MODULE_70__utils__; }); + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +/***/ }), +/* 40 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) {/** + * Copyright (c) 2013-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + * + */ + + + +var _prodInvariant = __webpack_require__(12); + +var invariant = __webpack_require__(10); + +/** + * Static poolers. Several custom versions for each potential number of + * arguments. A completely generic pooler is easy to implement, but would + * require accessing the `arguments` object. In each of these, `this` refers to + * the Class itself, not an instance. If any others are needed, simply add them + * here, or in their own files. + */ +var oneArgumentPooler = function (copyFieldsFrom) { + var Klass = this; + if (Klass.instancePool.length) { + var instance = Klass.instancePool.pop(); + Klass.call(instance, copyFieldsFrom); + return instance; + } else { + return new Klass(copyFieldsFrom); + } +}; + +var twoArgumentPooler = function (a1, a2) { + var Klass = this; + if (Klass.instancePool.length) { + var instance = Klass.instancePool.pop(); + Klass.call(instance, a1, a2); + return instance; + } else { + return new Klass(a1, a2); + } +}; + +var threeArgumentPooler = function (a1, a2, a3) { + var Klass = this; + if (Klass.instancePool.length) { + var instance = Klass.instancePool.pop(); + Klass.call(instance, a1, a2, a3); + return instance; + } else { + return new Klass(a1, a2, a3); + } +}; + +var fourArgumentPooler = function (a1, a2, a3, a4) { + var Klass = this; + if (Klass.instancePool.length) { + var instance = Klass.instancePool.pop(); + Klass.call(instance, a1, a2, a3, a4); + return instance; + } else { + return new Klass(a1, a2, a3, a4); + } +}; + +var standardReleaser = function (instance) { + var Klass = this; + !(instance instanceof Klass) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Trying to release an instance into a pool of a different type.') : _prodInvariant('25') : void 0; + instance.destructor(); + if (Klass.instancePool.length < Klass.poolSize) { + Klass.instancePool.push(instance); + } +}; + +var DEFAULT_POOL_SIZE = 10; +var DEFAULT_POOLER = oneArgumentPooler; + +/** + * Augments `CopyConstructor` to be a poolable class, augmenting only the class + * itself (statically) not adding any prototypical fields. Any CopyConstructor + * you give this may have a `poolSize` property, and will look for a + * prototypical `destructor` on instances. + * + * @param {Function} CopyConstructor Constructor that can be used to reset. + * @param {Function} pooler Customizable pooler. + */ +var addPoolingTo = function (CopyConstructor, pooler) { + // Casting as any so that flow ignores the actual implementation and trusts + // it to match the type we declared + var NewKlass = CopyConstructor; + NewKlass.instancePool = []; + NewKlass.getPooled = pooler || DEFAULT_POOLER; + if (!NewKlass.poolSize) { + NewKlass.poolSize = DEFAULT_POOL_SIZE; + } + NewKlass.release = standardReleaser; + return NewKlass; +}; + +var PooledClass = { + addPoolingTo: addPoolingTo, + oneArgumentPooler: oneArgumentPooler, + twoArgumentPooler: twoArgumentPooler, + threeArgumentPooler: threeArgumentPooler, + fourArgumentPooler: fourArgumentPooler +}; + +module.exports = PooledClass; +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1))) + +/***/ }), +/* 41 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, '__esModule', { + value: true +}); + +var _slicedToArray = (function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i['return']) _i['return'](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError('Invalid attempt to destructure non-iterable instance'); } }; })(); + +exports['default'] = proxyReactComponents; + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + +var _reactProxy = __webpack_require__(572); + +var _globalWindow = __webpack_require__(322); + +var _globalWindow2 = _interopRequireDefault(_globalWindow); + +var componentProxies = undefined; +if (_globalWindow2['default'].__reactComponentProxies) { + componentProxies = _globalWindow2['default'].__reactComponentProxies; +} else { + componentProxies = {}; + Object.defineProperty(_globalWindow2['default'], '__reactComponentProxies', { + configurable: true, + enumerable: false, + writable: false, + value: componentProxies + }); +} + +function proxyReactComponents(_ref) { + var filename = _ref.filename; + var components = _ref.components; + var imports = _ref.imports; + var locals = _ref.locals; + + var _imports = _slicedToArray(imports, 1); + + var React = _imports[0]; + + var _locals = _slicedToArray(locals, 1); + + var hot = _locals[0].hot; + + if (!React.Component) { + throw new Error('imports[0] for react-transform-hmr does not look like React.'); + } + + if (!hot || typeof hot.accept !== 'function') { + throw new Error('locals[0] does not appear to be a `module` object with Hot Module ' + 'replacement API enabled. You should disable react-transform-hmr in ' + 'production by using `env` section in Babel configuration. See the ' + 'example in README: https://github.com/gaearon/react-transform-hmr'); + } + + if (Object.keys(components).some(function (key) { + return !components[key].isInFunction; + })) { + hot.accept(function (err) { + if (err) { + console.warn('[React Transform HMR] There was an error updating ' + filename + ':'); + console.error(err); + } + }); + } + + var forceUpdate = (0, _reactProxy.getForceUpdate)(React); + + return function wrapWithProxy(ReactClass, uniqueId) { + var _components$uniqueId = components[uniqueId]; + var _components$uniqueId$isInFunction = _components$uniqueId.isInFunction; + var isInFunction = _components$uniqueId$isInFunction === undefined ? false : _components$uniqueId$isInFunction; + var _components$uniqueId$displayName = _components$uniqueId.displayName; + var displayName = _components$uniqueId$displayName === undefined ? uniqueId : _components$uniqueId$displayName; + + if (isInFunction) { + return ReactClass; + } + + var globalUniqueId = filename + '$' + uniqueId; + if (componentProxies[globalUniqueId]) { + (function () { + console.info('[React Transform HMR] Patching ' + displayName); + var instances = componentProxies[globalUniqueId].update(ReactClass); + setTimeout(function () { + return instances.forEach(forceUpdate); + }); + })(); + } else { + componentProxies[globalUniqueId] = (0, _reactProxy.createProxy)(ReactClass); + } + + return componentProxies[globalUniqueId].get(); + }; +} + +module.exports = exports['default']; + +/***/ }), +/* 42 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) {/** + * Copyright (c) 2014-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + */ + + + +var _assign = __webpack_require__(14); + +var ReactCurrentOwner = __webpack_require__(28); + +var warning = __webpack_require__(11); +var canDefineProperty = __webpack_require__(93); +var hasOwnProperty = Object.prototype.hasOwnProperty; + +var REACT_ELEMENT_TYPE = __webpack_require__(237); + +var RESERVED_PROPS = { + key: true, + ref: true, + __self: true, + __source: true +}; + +var specialPropKeyWarningShown, specialPropRefWarningShown; + +function hasValidRef(config) { + if (process.env.NODE_ENV !== 'production') { + if (hasOwnProperty.call(config, 'ref')) { + var getter = Object.getOwnPropertyDescriptor(config, 'ref').get; + if (getter && getter.isReactWarning) { + return false; + } + } + } + return config.ref !== undefined; +} + +function hasValidKey(config) { + if (process.env.NODE_ENV !== 'production') { + if (hasOwnProperty.call(config, 'key')) { + var getter = Object.getOwnPropertyDescriptor(config, 'key').get; + if (getter && getter.isReactWarning) { + return false; + } + } + } + return config.key !== undefined; +} + +function defineKeyPropWarningGetter(props, displayName) { + var warnAboutAccessingKey = function () { + if (!specialPropKeyWarningShown) { + specialPropKeyWarningShown = true; + process.env.NODE_ENV !== 'production' ? warning(false, '%s: `key` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://fb.me/react-special-props)', displayName) : void 0; + } + }; + warnAboutAccessingKey.isReactWarning = true; + Object.defineProperty(props, 'key', { + get: warnAboutAccessingKey, + configurable: true + }); +} + +function defineRefPropWarningGetter(props, displayName) { + var warnAboutAccessingRef = function () { + if (!specialPropRefWarningShown) { + specialPropRefWarningShown = true; + process.env.NODE_ENV !== 'production' ? warning(false, '%s: `ref` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://fb.me/react-special-props)', displayName) : void 0; + } + }; + warnAboutAccessingRef.isReactWarning = true; + Object.defineProperty(props, 'ref', { + get: warnAboutAccessingRef, + configurable: true + }); +} + +/** + * Factory method to create a new React element. This no longer adheres to + * the class pattern, so do not use new to call it. Also, no instanceof check + * will work. Instead test $$typeof field against Symbol.for('react.element') to check + * if something is a React Element. + * + * @param {*} type + * @param {*} key + * @param {string|object} ref + * @param {*} self A *temporary* helper to detect places where `this` is + * different from the `owner` when React.createElement is called, so that we + * can warn. We want to get rid of owner and replace string `ref`s with arrow + * functions, and as long as `this` and owner are the same, there will be no + * change in behavior. + * @param {*} source An annotation object (added by a transpiler or otherwise) + * indicating filename, line number, and/or other information. + * @param {*} owner + * @param {*} props + * @internal + */ +var ReactElement = function (type, key, ref, self, source, owner, props) { + var element = { + // This tag allow us to uniquely identify this as a React Element + $$typeof: REACT_ELEMENT_TYPE, + + // Built-in properties that belong on the element + type: type, + key: key, + ref: ref, + props: props, + + // Record the component responsible for creating this element. + _owner: owner + }; + + if (process.env.NODE_ENV !== 'production') { + // The validation flag is currently mutative. We put it on + // an external backing store so that we can freeze the whole object. + // This can be replaced with a WeakMap once they are implemented in + // commonly used development environments. + element._store = {}; + + // To make comparing ReactElements easier for testing purposes, we make + // the validation flag non-enumerable (where possible, which should + // include every environment we run tests in), so the test framework + // ignores it. + if (canDefineProperty) { + Object.defineProperty(element._store, 'validated', { + configurable: false, + enumerable: false, + writable: true, + value: false + }); + // self and source are DEV only properties. + Object.defineProperty(element, '_self', { + configurable: false, + enumerable: false, + writable: false, + value: self + }); + // Two elements created in two different places should be considered + // equal for testing purposes and therefore we hide it from enumeration. + Object.defineProperty(element, '_source', { + configurable: false, + enumerable: false, + writable: false, + value: source + }); + } else { + element._store.validated = false; + element._self = self; + element._source = source; + } + if (Object.freeze) { + Object.freeze(element.props); + Object.freeze(element); + } + } + + return element; +}; + +/** + * Create and return a new ReactElement of the given type. + * See https://facebook.github.io/react/docs/top-level-api.html#react.createelement + */ +ReactElement.createElement = function (type, config, children) { + var propName; + + // Reserved names are extracted + var props = {}; + + var key = null; + var ref = null; + var self = null; + var source = null; + + if (config != null) { + if (hasValidRef(config)) { + ref = config.ref; + } + if (hasValidKey(config)) { + key = '' + config.key; + } + + self = config.__self === undefined ? null : config.__self; + source = config.__source === undefined ? null : config.__source; + // Remaining properties are added to a new props object + for (propName in config) { + if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) { + props[propName] = config[propName]; + } + } + } + + // Children can be more than one argument, and those are transferred onto + // the newly allocated props object. + var childrenLength = arguments.length - 2; + if (childrenLength === 1) { + props.children = children; + } else if (childrenLength > 1) { + var childArray = Array(childrenLength); + for (var i = 0; i < childrenLength; i++) { + childArray[i] = arguments[i + 2]; + } + if (process.env.NODE_ENV !== 'production') { + if (Object.freeze) { + Object.freeze(childArray); + } + } + props.children = childArray; + } + + // Resolve default props + if (type && type.defaultProps) { + var defaultProps = type.defaultProps; + for (propName in defaultProps) { + if (props[propName] === undefined) { + props[propName] = defaultProps[propName]; + } + } + } + if (process.env.NODE_ENV !== 'production') { + if (key || ref) { + if (typeof props.$$typeof === 'undefined' || props.$$typeof !== REACT_ELEMENT_TYPE) { + var displayName = typeof type === 'function' ? type.displayName || type.name || 'Unknown' : type; + if (key) { + defineKeyPropWarningGetter(props, displayName); + } + if (ref) { + defineRefPropWarningGetter(props, displayName); + } + } + } + } + return ReactElement(type, key, ref, self, source, ReactCurrentOwner.current, props); +}; + +/** + * Return a function that produces ReactElements of a given type. + * See https://facebook.github.io/react/docs/top-level-api.html#react.createfactory + */ +ReactElement.createFactory = function (type) { + var factory = ReactElement.createElement.bind(null, type); + // Expose the type on the factory and the prototype so that it can be + // easily accessed on elements. E.g. `.type === Foo`. + // This should not be named `constructor` since this may not be the function + // that created the element, and it may not even be a constructor. + // Legacy hook TODO: Warn if this is accessed + factory.type = type; + return factory; +}; + +ReactElement.cloneAndReplaceKey = function (oldElement, newKey) { + var newElement = ReactElement(oldElement.type, newKey, oldElement.ref, oldElement._self, oldElement._source, oldElement._owner, oldElement.props); + + return newElement; +}; + +/** + * Clone and return a new ReactElement using element as the starting point. + * See https://facebook.github.io/react/docs/top-level-api.html#react.cloneelement + */ +ReactElement.cloneElement = function (element, config, children) { + var propName; + + // Original props are copied + var props = _assign({}, element.props); + + // Reserved names are extracted + var key = element.key; + var ref = element.ref; + // Self is preserved since the owner is preserved. + var self = element._self; + // Source is preserved since cloneElement is unlikely to be targeted by a + // transpiler, and the original source is probably a better indicator of the + // true owner. + var source = element._source; + + // Owner will be preserved, unless ref is overridden + var owner = element._owner; + + if (config != null) { + if (hasValidRef(config)) { + // Silently steal the ref from the parent. + ref = config.ref; + owner = ReactCurrentOwner.current; + } + if (hasValidKey(config)) { + key = '' + config.key; + } + + // Remaining properties override existing props + var defaultProps; + if (element.type && element.type.defaultProps) { + defaultProps = element.type.defaultProps; + } + for (propName in config) { + if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) { + if (config[propName] === undefined && defaultProps !== undefined) { + // Resolve default props + props[propName] = defaultProps[propName]; + } else { + props[propName] = config[propName]; + } + } + } + } + + // Children can be more than one argument, and those are transferred onto + // the newly allocated props object. + var childrenLength = arguments.length - 2; + if (childrenLength === 1) { + props.children = children; + } else if (childrenLength > 1) { + var childArray = Array(childrenLength); + for (var i = 0; i < childrenLength; i++) { + childArray[i] = arguments[i + 2]; + } + props.children = childArray; + } + + return ReactElement(element.type, key, ref, self, source, owner, props); +}; + +/** + * Verifies the object is a ReactElement. + * See https://facebook.github.io/react/docs/top-level-api.html#react.isvalidelement + * @param {?object} object + * @return {boolean} True if `object` is a valid component. + * @final + */ +ReactElement.isValidElement = function (object) { + return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE; +}; + +module.exports = ReactElement; +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1))) + +/***/ }), +/* 43 */ +/***/ (function(module, exports, __webpack_require__) { + +module.exports = { "default": __webpack_require__(259), __esModule: true }; + +/***/ }), +/* 44 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = ownerDocument; +function ownerDocument(node) { + return node && node.ownerDocument || document; +} +module.exports = exports["default"]; + +/***/ }), +/* 45 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _inDOM = __webpack_require__(35); + +var _inDOM2 = _interopRequireDefault(_inDOM); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +exports.default = function () { + // HTML DOM and SVG DOM may have different support levels, + // so we need to check on context instead of a document root element. + return _inDOM2.default ? function (context, node) { + if (context.contains) { + return context.contains(node); + } else if (context.compareDocumentPosition) { + return context === node || !!(context.compareDocumentPosition(node) & 16); + } else { + return fallback(context, node); + } + } : fallback; +}(); + +function fallback(context, node) { + if (node) do { + if (node === context) return true; + } while (node = node.parentNode); + + return false; +} +module.exports = exports['default']; + +/***/ }), +/* 46 */ +/***/ (function(module, exports) { + +/** + * Checks if `value` is object-like. A value is object-like if it's not `null` + * and has a `typeof` result of "object". + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is object-like, else `false`. + * @example + * + * _.isObjectLike({}); + * // => true + * + * _.isObjectLike([1, 2, 3]); + * // => true + * + * _.isObjectLike(_.noop); + * // => false + * + * _.isObjectLike(null); + * // => false + */ +function isObjectLike(value) { + return value != null && typeof value == 'object'; +} + +module.exports = isObjectLike; + + +/***/ }), +/* 47 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/** + * Copyright (c) 2015-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + */ + + + +var DOMNamespaces = __webpack_require__(123); +var setInnerHTML = __webpack_require__(91); + +var createMicrosoftUnsafeLocalFunction = __webpack_require__(130); +var setTextContent = __webpack_require__(228); + +var ELEMENT_NODE_TYPE = 1; +var DOCUMENT_FRAGMENT_NODE_TYPE = 11; + +/** + * In IE (8-11) and Edge, appending nodes with no children is dramatically + * faster than appending a full subtree, so we essentially queue up the + * .appendChild calls here and apply them so each node is added to its parent + * before any children are added. + * + * In other browsers, doing so is slower or neutral compared to the other order + * (in Firefox, twice as slow) so we only do this inversion in IE. + * + * See https://github.com/spicyj/innerhtml-vs-createelement-vs-clonenode. + */ +var enableLazy = typeof document !== 'undefined' && typeof document.documentMode === 'number' || typeof navigator !== 'undefined' && typeof navigator.userAgent === 'string' && /\bEdge\/\d/.test(navigator.userAgent); + +function insertTreeChildren(tree) { + if (!enableLazy) { + return; + } + var node = tree.node; + var children = tree.children; + if (children.length) { + for (var i = 0; i < children.length; i++) { + insertTreeBefore(node, children[i], null); + } + } else if (tree.html != null) { + setInnerHTML(node, tree.html); + } else if (tree.text != null) { + setTextContent(node, tree.text); + } +} + +var insertTreeBefore = createMicrosoftUnsafeLocalFunction(function (parentNode, tree, referenceNode) { + // DocumentFragments aren't actually part of the DOM after insertion so + // appending children won't update the DOM. We need to ensure the fragment + // is properly populated first, breaking out of our lazy approach for just + // this level. Also, some plugins (like Flash Player) will read + // nodes immediately upon insertion into the DOM, so + // must also be populated prior to insertion into the DOM. + if (tree.node.nodeType === DOCUMENT_FRAGMENT_NODE_TYPE || tree.node.nodeType === ELEMENT_NODE_TYPE && tree.node.nodeName.toLowerCase() === 'object' && (tree.node.namespaceURI == null || tree.node.namespaceURI === DOMNamespaces.html)) { + insertTreeChildren(tree); + parentNode.insertBefore(tree.node, referenceNode); + } else { + parentNode.insertBefore(tree.node, referenceNode); + insertTreeChildren(tree); + } +}); + +function replaceChildWithTree(oldNode, newTree) { + oldNode.parentNode.replaceChild(newTree.node, oldNode); + insertTreeChildren(newTree); +} + +function queueChild(parentTree, childTree) { + if (enableLazy) { + parentTree.children.push(childTree); + } else { + parentTree.node.appendChild(childTree.node); + } +} + +function queueHTML(tree, html) { + if (enableLazy) { + tree.html = html; + } else { + setInnerHTML(tree.node, html); + } +} + +function queueText(tree, text) { + if (enableLazy) { + tree.text = text; + } else { + setTextContent(tree.node, text); + } +} + +function toString() { + return this.node.nodeName; +} + +function DOMLazyTree(node) { + return { + node: node, + children: [], + html: null, + text: null, + toString: toString + }; +} + +DOMLazyTree.insertTreeBefore = insertTreeBefore; +DOMLazyTree.replaceChildWithTree = replaceChildWithTree; +DOMLazyTree.queueChild = queueChild; +DOMLazyTree.queueHTML = queueHTML; +DOMLazyTree.queueText = queueText; + +module.exports = DOMLazyTree; + +/***/ }), +/* 48 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) {/** + * Copyright (c) 2013-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + */ + + + +var ReactRef = __webpack_require__(531); +var ReactInstrumentation = __webpack_require__(24); + +var warning = __webpack_require__(11); + +/** + * Helper to call ReactRef.attachRefs with this composite component, split out + * to avoid allocations in the transaction mount-ready queue. + */ +function attachRefs() { + ReactRef.attachRefs(this, this._currentElement); +} + +var ReactReconciler = { + /** + * Initializes the component, renders markup, and registers event listeners. + * + * @param {ReactComponent} internalInstance + * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction + * @param {?object} the containing host component instance + * @param {?object} info about the host container + * @return {?string} Rendered markup to be inserted into the DOM. + * @final + * @internal + */ + mountComponent: function (internalInstance, transaction, hostParent, hostContainerInfo, context, parentDebugID) // 0 in production and for roots + { + if (process.env.NODE_ENV !== 'production') { + if (internalInstance._debugID !== 0) { + ReactInstrumentation.debugTool.onBeforeMountComponent(internalInstance._debugID, internalInstance._currentElement, parentDebugID); + } + } + var markup = internalInstance.mountComponent(transaction, hostParent, hostContainerInfo, context, parentDebugID); + if (internalInstance._currentElement && internalInstance._currentElement.ref != null) { + transaction.getReactMountReady().enqueue(attachRefs, internalInstance); + } + if (process.env.NODE_ENV !== 'production') { + if (internalInstance._debugID !== 0) { + ReactInstrumentation.debugTool.onMountComponent(internalInstance._debugID); + } + } + return markup; + }, + + /** + * Returns a value that can be passed to + * ReactComponentEnvironment.replaceNodeWithMarkup. + */ + getHostNode: function (internalInstance) { + return internalInstance.getHostNode(); + }, + + /** + * Releases any resources allocated by `mountComponent`. + * + * @final + * @internal + */ + unmountComponent: function (internalInstance, safely) { + if (process.env.NODE_ENV !== 'production') { + if (internalInstance._debugID !== 0) { + ReactInstrumentation.debugTool.onBeforeUnmountComponent(internalInstance._debugID); + } + } + ReactRef.detachRefs(internalInstance, internalInstance._currentElement); + internalInstance.unmountComponent(safely); + if (process.env.NODE_ENV !== 'production') { + if (internalInstance._debugID !== 0) { + ReactInstrumentation.debugTool.onUnmountComponent(internalInstance._debugID); + } + } + }, + + /** + * Update a component using a new element. + * + * @param {ReactComponent} internalInstance + * @param {ReactElement} nextElement + * @param {ReactReconcileTransaction} transaction + * @param {object} context + * @internal + */ + receiveComponent: function (internalInstance, nextElement, transaction, context) { + var prevElement = internalInstance._currentElement; + + if (nextElement === prevElement && context === internalInstance._context) { + // Since elements are immutable after the owner is rendered, + // we can do a cheap identity compare here to determine if this is a + // superfluous reconcile. It's possible for state to be mutable but such + // change should trigger an update of the owner which would recreate + // the element. We explicitly check for the existence of an owner since + // it's possible for an element created outside a composite to be + // deeply mutated and reused. + + // TODO: Bailing out early is just a perf optimization right? + // TODO: Removing the return statement should affect correctness? + return; + } + + if (process.env.NODE_ENV !== 'production') { + if (internalInstance._debugID !== 0) { + ReactInstrumentation.debugTool.onBeforeUpdateComponent(internalInstance._debugID, nextElement); + } + } + + var refsChanged = ReactRef.shouldUpdateRefs(prevElement, nextElement); + + if (refsChanged) { + ReactRef.detachRefs(internalInstance, prevElement); + } + + internalInstance.receiveComponent(nextElement, transaction, context); + + if (refsChanged && internalInstance._currentElement && internalInstance._currentElement.ref != null) { + transaction.getReactMountReady().enqueue(attachRefs, internalInstance); + } + + if (process.env.NODE_ENV !== 'production') { + if (internalInstance._debugID !== 0) { + ReactInstrumentation.debugTool.onUpdateComponent(internalInstance._debugID); + } + } + }, + + /** + * Flush any dirty changes in a component. + * + * @param {ReactComponent} internalInstance + * @param {ReactReconcileTransaction} transaction + * @internal + */ + performUpdateIfNecessary: function (internalInstance, transaction, updateBatchNumber) { + if (internalInstance._updateBatchNumber !== updateBatchNumber) { + // The component's enqueued batch number should always be the current + // batch or the following one. + process.env.NODE_ENV !== 'production' ? warning(internalInstance._updateBatchNumber == null || internalInstance._updateBatchNumber === updateBatchNumber + 1, 'performUpdateIfNecessary: Unexpected batch number (current %s, ' + 'pending %s)', updateBatchNumber, internalInstance._updateBatchNumber) : void 0; + return; + } + if (process.env.NODE_ENV !== 'production') { + if (internalInstance._debugID !== 0) { + ReactInstrumentation.debugTool.onBeforeUpdateComponent(internalInstance._debugID, internalInstance._currentElement); + } + } + internalInstance.performUpdateIfNecessary(transaction); + if (process.env.NODE_ENV !== 'production') { + if (internalInstance._debugID !== 0) { + ReactInstrumentation.debugTool.onUpdateComponent(internalInstance._debugID); + } + } + } +}; + +module.exports = ReactReconciler; +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1))) + +/***/ }), +/* 49 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; + +exports.default = function (componentOrElement) { + return (0, _ownerDocument2.default)(_reactDom2.default.findDOMNode(componentOrElement)); +}; + +var _reactDom = __webpack_require__(18); + +var _reactDom2 = _interopRequireDefault(_reactDom); + +var _ownerDocument = __webpack_require__(44); + +var _ownerDocument2 = _interopRequireDefault(_ownerDocument); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +module.exports = exports['default']; + +/***/ }), +/* 50 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) {/** + * Copyright (c) 2013-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + */ + + + +var _assign = __webpack_require__(14); + +var ReactBaseClasses = __webpack_require__(236); +var ReactChildren = __webpack_require__(575); +var ReactDOMFactories = __webpack_require__(576); +var ReactElement = __webpack_require__(42); +var ReactPropTypes = __webpack_require__(578); +var ReactVersion = __webpack_require__(580); + +var createReactClass = __webpack_require__(582); +var onlyChild = __webpack_require__(584); + +var createElement = ReactElement.createElement; +var createFactory = ReactElement.createFactory; +var cloneElement = ReactElement.cloneElement; + +if (process.env.NODE_ENV !== 'production') { + var lowPriorityWarning = __webpack_require__(137); + var canDefineProperty = __webpack_require__(93); + var ReactElementValidator = __webpack_require__(238); + var didWarnPropTypesDeprecated = false; + createElement = ReactElementValidator.createElement; + createFactory = ReactElementValidator.createFactory; + cloneElement = ReactElementValidator.cloneElement; +} + +var __spread = _assign; +var createMixin = function (mixin) { + return mixin; +}; + +if (process.env.NODE_ENV !== 'production') { + var warnedForSpread = false; + var warnedForCreateMixin = false; + __spread = function () { + lowPriorityWarning(warnedForSpread, 'React.__spread is deprecated and should not be used. Use ' + 'Object.assign directly or another helper function with similar ' + 'semantics. You may be seeing this warning due to your compiler. ' + 'See https://fb.me/react-spread-deprecation for more details.'); + warnedForSpread = true; + return _assign.apply(null, arguments); + }; + + createMixin = function (mixin) { + lowPriorityWarning(warnedForCreateMixin, 'React.createMixin is deprecated and should not be used. ' + 'In React v16.0, it will be removed. ' + 'You can use this mixin directly instead. ' + 'See https://fb.me/createmixin-was-never-implemented for more info.'); + warnedForCreateMixin = true; + return mixin; + }; +} + +var React = { + // Modern + + Children: { + map: ReactChildren.map, + forEach: ReactChildren.forEach, + count: ReactChildren.count, + toArray: ReactChildren.toArray, + only: onlyChild + }, + + Component: ReactBaseClasses.Component, + PureComponent: ReactBaseClasses.PureComponent, + + createElement: createElement, + cloneElement: cloneElement, + isValidElement: ReactElement.isValidElement, + + // Classic + + PropTypes: ReactPropTypes, + createClass: createReactClass, + createFactory: createFactory, + createMixin: createMixin, + + // This looks DOM specific but these are actually isomorphic helpers + // since they are just generating DOM strings. + DOM: ReactDOMFactories, + + version: ReactVersion, + + // Deprecated hook for JSX spread, don't use this for anything. + __spread: __spread +}; + +if (process.env.NODE_ENV !== 'production') { + var warnedForCreateClass = false; + if (canDefineProperty) { + Object.defineProperty(React, 'PropTypes', { + get: function () { + lowPriorityWarning(didWarnPropTypesDeprecated, 'Accessing PropTypes via the main React package is deprecated,' + ' and will be removed in React v16.0.' + ' Use the latest available v15.* prop-types package from npm instead.' + ' For info on usage, compatibility, migration and more, see ' + 'https://fb.me/prop-types-docs'); + didWarnPropTypesDeprecated = true; + return ReactPropTypes; + } + }); + + Object.defineProperty(React, 'createClass', { + get: function () { + lowPriorityWarning(warnedForCreateClass, 'Accessing createClass via the main React package is deprecated,' + ' and will be removed in React v16.0.' + " Use a plain JavaScript class instead. If you're not yet " + 'ready to migrate, create-react-class v15.* is available ' + 'on npm as a temporary, drop-in replacement. ' + 'For more info see https://fb.me/react-create-class'); + warnedForCreateClass = true; + return createReactClass; + } + }); + } + + // React.DOM factories are deprecated. Wrap these methods so that + // invocations of the React.DOM namespace and alert users to switch + // to the `react-dom-factories` package. + React.DOM = {}; + var warnedForFactories = false; + Object.keys(ReactDOMFactories).forEach(function (factory) { + React.DOM[factory] = function () { + if (!warnedForFactories) { + lowPriorityWarning(false, 'Accessing factories like React.DOM.%s has been deprecated ' + 'and will be removed in v16.0+. Use the ' + 'react-dom-factories package instead. ' + ' Version 1.0 provides a drop-in replacement.' + ' For more info, see https://fb.me/react-dom-factories', factory); + warnedForFactories = true; + } + return ReactDOMFactories[factory].apply(ReactDOMFactories, arguments); + }; + }); +} + +module.exports = React; +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1))) + +/***/ }), +/* 51 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/** + * Copyright (c) 2013-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + * + */ + + +/** + * WARNING: DO NOT manually require this module. + * This is a replacement for `invariant(...)` used by the error code system + * and will _only_ be required by the corresponding babel pass. + * It always throws. + */ + +function reactProdInvariant(code) { + var argCount = arguments.length - 1; + + var message = 'Minified React error #' + code + '; visit ' + 'http://facebook.github.io/react/docs/error-decoder.html?invariant=' + code; + + for (var argIdx = 0; argIdx < argCount; argIdx++) { + message += '&args[]=' + encodeURIComponent(arguments[argIdx + 1]); + } + + message += ' for the full message or use the non-minified dev environment' + ' for full errors and additional helpful warnings.'; + + var error = new Error(message); + error.name = 'Invariant Violation'; + error.framesToPop = 1; // we don't care about reactProdInvariant's own frame + + throw error; +} + +module.exports = reactProdInvariant; + +/***/ }), +/* 52 */ +/***/ (function(module, exports) { + +module.exports = {}; + +/***/ }), +/* 53 */ +/***/ (function(module, exports, __webpack_require__) { + +// to indexed object, toObject with fallback for non-array-like ES3 strings +var IObject = __webpack_require__(142) + , defined = __webpack_require__(98); +module.exports = function(it){ + return IObject(defined(it)); +}; + +/***/ }), +/* 54 */ +/***/ (function(module, exports, __webpack_require__) { + +var root = __webpack_require__(31); + +/** Built-in value references. */ +var Symbol = root.Symbol; + +module.exports = Symbol; + + +/***/ }), +/* 55 */ +/***/ (function(module, exports, __webpack_require__) { + +var Symbol = __webpack_require__(54), + getRawTag = __webpack_require__(362), + objectToString = __webpack_require__(390); + +/** `Object#toString` result references. */ +var nullTag = '[object Null]', + undefinedTag = '[object Undefined]'; + +/** Built-in value references. */ +var symToStringTag = Symbol ? Symbol.toStringTag : undefined; + +/** + * The base implementation of `getTag` without fallbacks for buggy environments. + * + * @private + * @param {*} value The value to query. + * @returns {string} Returns the `toStringTag`. + */ +function baseGetTag(value) { + if (value == null) { + return value === undefined ? undefinedTag : nullTag; + } + return (symToStringTag && symToStringTag in Object(value)) + ? getRawTag(value) + : objectToString(value); +} + +module.exports = baseGetTag; + + +/***/ }), +/* 56 */ +/***/ (function(module, exports, __webpack_require__) { + +var isFunction = __webpack_require__(185), + isLength = __webpack_require__(113); + +/** + * Checks if `value` is array-like. A value is considered array-like if it's + * not a function and has a `value.length` that's an integer greater than or + * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is array-like, else `false`. + * @example + * + * _.isArrayLike([1, 2, 3]); + * // => true + * + * _.isArrayLike(document.body.children); + * // => true + * + * _.isArrayLike('abc'); + * // => true + * + * _.isArrayLike(_.noop); + * // => false + */ +function isArrayLike(value) { + return value != null && isLength(value.length) && !isFunction(value); +} + +module.exports = isArrayLike; + + +/***/ }), +/* 57 */ +/***/ (function(module, exports) { + +/** + * Checks if `value` is the + * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types) + * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an object, else `false`. + * @example + * + * _.isObject({}); + * // => true + * + * _.isObject([1, 2, 3]); + * // => true + * + * _.isObject(_.noop); + * // => true + * + * _.isObject(null); + * // => false + */ +function isObject(value) { + var type = typeof value; + return value != null && (type == 'object' || type == 'function'); +} + +module.exports = isObject; + + +/***/ }), +/* 58 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_values__ = __webpack_require__(43); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_values___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_values__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_objectWithoutProperties__ = __webpack_require__(6); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_objectWithoutProperties___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_objectWithoutProperties__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_extends__ = __webpack_require__(5); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_extends___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_extends__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_classCallCheck__ = __webpack_require__(2); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_classCallCheck___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_classCallCheck__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_babel_runtime_helpers_possibleConstructorReturn__ = __webpack_require__(4); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_babel_runtime_helpers_possibleConstructorReturn___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_babel_runtime_helpers_possibleConstructorReturn__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_babel_runtime_helpers_inherits__ = __webpack_require__(3); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_babel_runtime_helpers_inherits___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_babel_runtime_helpers_inherits__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_classnames__ = __webpack_require__(7); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_6_classnames__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_react__ = __webpack_require__(0); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_7_react__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8_prop_types__ = __webpack_require__(8); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_8_prop_types__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9_prop_types_extra_lib_elementType__ = __webpack_require__(13); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9_prop_types_extra_lib_elementType___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_9_prop_types_extra_lib_elementType__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__utils_bootstrapUtils__ = __webpack_require__(9); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__utils_StyleConfig__ = __webpack_require__(19); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__SafeAnchor__ = __webpack_require__(26); + + + + + + + + + + + + + + + + +var propTypes = { + active: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.bool, + disabled: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.bool, + block: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.bool, + onClick: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.func, + componentClass: __WEBPACK_IMPORTED_MODULE_9_prop_types_extra_lib_elementType___default.a, + href: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.string, + /** + * Defines HTML button type attribute + * @defaultValue 'button' + */ + type: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.oneOf(['button', 'reset', 'submit']) +}; + +var defaultProps = { + active: false, + block: false, + disabled: false +}; + +var Button = function (_React$Component) { + __WEBPACK_IMPORTED_MODULE_5_babel_runtime_helpers_inherits___default()(Button, _React$Component); + + function Button() { + __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_classCallCheck___default()(this, Button); + + return __WEBPACK_IMPORTED_MODULE_4_babel_runtime_helpers_possibleConstructorReturn___default()(this, _React$Component.apply(this, arguments)); + } + + Button.prototype.renderAnchor = function renderAnchor(elementProps, className) { + return __WEBPACK_IMPORTED_MODULE_7_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_12__SafeAnchor__["a" /* default */], __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_extends___default()({}, elementProps, { + className: __WEBPACK_IMPORTED_MODULE_6_classnames___default()(className, elementProps.disabled && 'disabled') + })); + }; + + Button.prototype.renderButton = function renderButton(_ref, className) { + var componentClass = _ref.componentClass, + elementProps = __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_objectWithoutProperties___default()(_ref, ['componentClass']); + + var Component = componentClass || 'button'; + + return __WEBPACK_IMPORTED_MODULE_7_react___default.a.createElement(Component, __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_extends___default()({}, elementProps, { + type: elementProps.type || 'button', + className: className + })); + }; + + Button.prototype.render = function render() { + var _extends2; + + var _props = this.props, + active = _props.active, + block = _props.block, + className = _props.className, + props = __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_objectWithoutProperties___default()(_props, ['active', 'block', 'className']); + + var _splitBsProps = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_10__utils_bootstrapUtils__["splitBsProps"])(props), + bsProps = _splitBsProps[0], + elementProps = _splitBsProps[1]; + + var classes = __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_extends___default()({}, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_10__utils_bootstrapUtils__["getClassSet"])(bsProps), (_extends2 = { + active: active + }, _extends2[__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_10__utils_bootstrapUtils__["prefix"])(bsProps, 'block')] = block, _extends2)); + var fullClassName = __WEBPACK_IMPORTED_MODULE_6_classnames___default()(className, classes); + + if (elementProps.href) { + return this.renderAnchor(elementProps, fullClassName); + } + + return this.renderButton(elementProps, fullClassName); + }; + + return Button; +}(__WEBPACK_IMPORTED_MODULE_7_react___default.a.Component); + +Button.propTypes = propTypes; +Button.defaultProps = defaultProps; + +/* harmony default export */ __webpack_exports__["a"] = (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_10__utils_bootstrapUtils__["bsClass"])('btn', __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_10__utils_bootstrapUtils__["bsSizes"])([__WEBPACK_IMPORTED_MODULE_11__utils_StyleConfig__["b" /* Size */].LARGE, __WEBPACK_IMPORTED_MODULE_11__utils_StyleConfig__["b" /* Size */].SMALL, __WEBPACK_IMPORTED_MODULE_11__utils_StyleConfig__["b" /* Size */].XSMALL], __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_10__utils_bootstrapUtils__["bsStyles"])([].concat(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_values___default()(__WEBPACK_IMPORTED_MODULE_11__utils_StyleConfig__["c" /* State */]), [__WEBPACK_IMPORTED_MODULE_11__utils_StyleConfig__["d" /* Style */].DEFAULT, __WEBPACK_IMPORTED_MODULE_11__utils_StyleConfig__["d" /* Style */].PRIMARY, __WEBPACK_IMPORTED_MODULE_11__utils_StyleConfig__["d" /* Style */].LINK]), __WEBPACK_IMPORTED_MODULE_11__utils_StyleConfig__["d" /* Style */].DEFAULT, Button)))); + +/***/ }), +/* 59 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) {/** + * Copyright (c) 2013-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + */ + + + +var _prodInvariant = __webpack_require__(12); + +var EventPluginRegistry = __webpack_require__(86); +var EventPluginUtils = __webpack_require__(124); +var ReactErrorUtils = __webpack_require__(128); + +var accumulateInto = __webpack_require__(221); +var forEachAccumulated = __webpack_require__(222); +var invariant = __webpack_require__(10); + +/** + * Internal store for event listeners + */ +var listenerBank = {}; + +/** + * Internal queue of events that have accumulated their dispatches and are + * waiting to have their dispatches executed. + */ +var eventQueue = null; + +/** + * Dispatches an event and releases it back into the pool, unless persistent. + * + * @param {?object} event Synthetic event to be dispatched. + * @param {boolean} simulated If the event is simulated (changes exn behavior) + * @private + */ +var executeDispatchesAndRelease = function (event, simulated) { + if (event) { + EventPluginUtils.executeDispatchesInOrder(event, simulated); + + if (!event.isPersistent()) { + event.constructor.release(event); + } + } +}; +var executeDispatchesAndReleaseSimulated = function (e) { + return executeDispatchesAndRelease(e, true); +}; +var executeDispatchesAndReleaseTopLevel = function (e) { + return executeDispatchesAndRelease(e, false); +}; + +var getDictionaryKey = function (inst) { + // Prevents V8 performance issue: + // https://github.com/facebook/react/pull/7232 + return '.' + inst._rootNodeID; +}; + +function isInteractive(tag) { + return tag === 'button' || tag === 'input' || tag === 'select' || tag === 'textarea'; +} + +function shouldPreventMouseEvent(name, type, props) { + switch (name) { + case 'onClick': + case 'onClickCapture': + case 'onDoubleClick': + case 'onDoubleClickCapture': + case 'onMouseDown': + case 'onMouseDownCapture': + case 'onMouseMove': + case 'onMouseMoveCapture': + case 'onMouseUp': + case 'onMouseUpCapture': + return !!(props.disabled && isInteractive(type)); + default: + return false; + } +} + +/** + * This is a unified interface for event plugins to be installed and configured. + * + * Event plugins can implement the following properties: + * + * `extractEvents` {function(string, DOMEventTarget, string, object): *} + * Required. When a top-level event is fired, this method is expected to + * extract synthetic events that will in turn be queued and dispatched. + * + * `eventTypes` {object} + * Optional, plugins that fire events must publish a mapping of registration + * names that are used to register listeners. Values of this mapping must + * be objects that contain `registrationName` or `phasedRegistrationNames`. + * + * `executeDispatch` {function(object, function, string)} + * Optional, allows plugins to override how an event gets dispatched. By + * default, the listener is simply invoked. + * + * Each plugin that is injected into `EventsPluginHub` is immediately operable. + * + * @public + */ +var EventPluginHub = { + /** + * Methods for injecting dependencies. + */ + injection: { + /** + * @param {array} InjectedEventPluginOrder + * @public + */ + injectEventPluginOrder: EventPluginRegistry.injectEventPluginOrder, + + /** + * @param {object} injectedNamesToPlugins Map from names to plugin modules. + */ + injectEventPluginsByName: EventPluginRegistry.injectEventPluginsByName + }, + + /** + * Stores `listener` at `listenerBank[registrationName][key]`. Is idempotent. + * + * @param {object} inst The instance, which is the source of events. + * @param {string} registrationName Name of listener (e.g. `onClick`). + * @param {function} listener The callback to store. + */ + putListener: function (inst, registrationName, listener) { + !(typeof listener === 'function') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Expected %s listener to be a function, instead got type %s', registrationName, typeof listener) : _prodInvariant('94', registrationName, typeof listener) : void 0; + + var key = getDictionaryKey(inst); + var bankForRegistrationName = listenerBank[registrationName] || (listenerBank[registrationName] = {}); + bankForRegistrationName[key] = listener; + + var PluginModule = EventPluginRegistry.registrationNameModules[registrationName]; + if (PluginModule && PluginModule.didPutListener) { + PluginModule.didPutListener(inst, registrationName, listener); + } + }, + + /** + * @param {object} inst The instance, which is the source of events. + * @param {string} registrationName Name of listener (e.g. `onClick`). + * @return {?function} The stored callback. + */ + getListener: function (inst, registrationName) { + // TODO: shouldPreventMouseEvent is DOM-specific and definitely should not + // live here; needs to be moved to a better place soon + var bankForRegistrationName = listenerBank[registrationName]; + if (shouldPreventMouseEvent(registrationName, inst._currentElement.type, inst._currentElement.props)) { + return null; + } + var key = getDictionaryKey(inst); + return bankForRegistrationName && bankForRegistrationName[key]; + }, + + /** + * Deletes a listener from the registration bank. + * + * @param {object} inst The instance, which is the source of events. + * @param {string} registrationName Name of listener (e.g. `onClick`). + */ + deleteListener: function (inst, registrationName) { + var PluginModule = EventPluginRegistry.registrationNameModules[registrationName]; + if (PluginModule && PluginModule.willDeleteListener) { + PluginModule.willDeleteListener(inst, registrationName); + } + + var bankForRegistrationName = listenerBank[registrationName]; + // TODO: This should never be null -- when is it? + if (bankForRegistrationName) { + var key = getDictionaryKey(inst); + delete bankForRegistrationName[key]; + } + }, + + /** + * Deletes all listeners for the DOM element with the supplied ID. + * + * @param {object} inst The instance, which is the source of events. + */ + deleteAllListeners: function (inst) { + var key = getDictionaryKey(inst); + for (var registrationName in listenerBank) { + if (!listenerBank.hasOwnProperty(registrationName)) { + continue; + } + + if (!listenerBank[registrationName][key]) { + continue; + } + + var PluginModule = EventPluginRegistry.registrationNameModules[registrationName]; + if (PluginModule && PluginModule.willDeleteListener) { + PluginModule.willDeleteListener(inst, registrationName); + } + + delete listenerBank[registrationName][key]; + } + }, + + /** + * Allows registered plugins an opportunity to extract events from top-level + * native browser events. + * + * @return {*} An accumulation of synthetic events. + * @internal + */ + extractEvents: function (topLevelType, targetInst, nativeEvent, nativeEventTarget) { + var events; + var plugins = EventPluginRegistry.plugins; + for (var i = 0; i < plugins.length; i++) { + // Not every plugin in the ordering may be loaded at runtime. + var possiblePlugin = plugins[i]; + if (possiblePlugin) { + var extractedEvents = possiblePlugin.extractEvents(topLevelType, targetInst, nativeEvent, nativeEventTarget); + if (extractedEvents) { + events = accumulateInto(events, extractedEvents); + } + } + } + return events; + }, + + /** + * Enqueues a synthetic event that should be dispatched when + * `processEventQueue` is invoked. + * + * @param {*} events An accumulation of synthetic events. + * @internal + */ + enqueueEvents: function (events) { + if (events) { + eventQueue = accumulateInto(eventQueue, events); + } + }, + + /** + * Dispatches all synthetic events on the event queue. + * + * @internal + */ + processEventQueue: function (simulated) { + // Set `eventQueue` to null before processing it so that we can tell if more + // events get enqueued while processing. + var processingEventQueue = eventQueue; + eventQueue = null; + if (simulated) { + forEachAccumulated(processingEventQueue, executeDispatchesAndReleaseSimulated); + } else { + forEachAccumulated(processingEventQueue, executeDispatchesAndReleaseTopLevel); + } + !!eventQueue ? process.env.NODE_ENV !== 'production' ? invariant(false, 'processEventQueue(): Additional events were enqueued while processing an event queue. Support for this has not yet been implemented.') : _prodInvariant('95') : void 0; + // This would be a good time to rethrow if any of the event handlers threw. + ReactErrorUtils.rethrowCaughtError(); + }, + + /** + * These are needed for tests only. Do not use! + */ + __purge: function () { + listenerBank = {}; + }, + + __getListenerBank: function () { + return listenerBank; + } +}; + +module.exports = EventPluginHub; +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1))) + +/***/ }), +/* 60 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) {/** + * Copyright (c) 2013-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + */ + + + +var EventPluginHub = __webpack_require__(59); +var EventPluginUtils = __webpack_require__(124); + +var accumulateInto = __webpack_require__(221); +var forEachAccumulated = __webpack_require__(222); +var warning = __webpack_require__(11); + +var getListener = EventPluginHub.getListener; + +/** + * Some event types have a notion of different registration names for different + * "phases" of propagation. This finds listeners by a given phase. + */ +function listenerAtPhase(inst, event, propagationPhase) { + var registrationName = event.dispatchConfig.phasedRegistrationNames[propagationPhase]; + return getListener(inst, registrationName); +} + +/** + * Tags a `SyntheticEvent` with dispatched listeners. Creating this function + * here, allows us to not have to bind or create functions for each event. + * Mutating the event's members allows us to not have to create a wrapping + * "dispatch" object that pairs the event with the listener. + */ +function accumulateDirectionalDispatches(inst, phase, event) { + if (process.env.NODE_ENV !== 'production') { + process.env.NODE_ENV !== 'production' ? warning(inst, 'Dispatching inst must not be null') : void 0; + } + var listener = listenerAtPhase(inst, event, phase); + if (listener) { + event._dispatchListeners = accumulateInto(event._dispatchListeners, listener); + event._dispatchInstances = accumulateInto(event._dispatchInstances, inst); + } +} + +/** + * Collect dispatches (must be entirely collected before dispatching - see unit + * tests). Lazily allocate the array to conserve memory. We must loop through + * each event and perform the traversal for each one. We cannot perform a + * single traversal for the entire collection of events because each event may + * have a different target. + */ +function accumulateTwoPhaseDispatchesSingle(event) { + if (event && event.dispatchConfig.phasedRegistrationNames) { + EventPluginUtils.traverseTwoPhase(event._targetInst, accumulateDirectionalDispatches, event); + } +} + +/** + * Same as `accumulateTwoPhaseDispatchesSingle`, but skips over the targetID. + */ +function accumulateTwoPhaseDispatchesSingleSkipTarget(event) { + if (event && event.dispatchConfig.phasedRegistrationNames) { + var targetInst = event._targetInst; + var parentInst = targetInst ? EventPluginUtils.getParentInstance(targetInst) : null; + EventPluginUtils.traverseTwoPhase(parentInst, accumulateDirectionalDispatches, event); + } +} + +/** + * Accumulates without regard to direction, does not look for phased + * registration names. Same as `accumulateDirectDispatchesSingle` but without + * requiring that the `dispatchMarker` be the same as the dispatched ID. + */ +function accumulateDispatches(inst, ignoredDirection, event) { + if (event && event.dispatchConfig.registrationName) { + var registrationName = event.dispatchConfig.registrationName; + var listener = getListener(inst, registrationName); + if (listener) { + event._dispatchListeners = accumulateInto(event._dispatchListeners, listener); + event._dispatchInstances = accumulateInto(event._dispatchInstances, inst); + } + } +} + +/** + * Accumulates dispatches on an `SyntheticEvent`, but only for the + * `dispatchMarker`. + * @param {SyntheticEvent} event + */ +function accumulateDirectDispatchesSingle(event) { + if (event && event.dispatchConfig.registrationName) { + accumulateDispatches(event._targetInst, null, event); + } +} + +function accumulateTwoPhaseDispatches(events) { + forEachAccumulated(events, accumulateTwoPhaseDispatchesSingle); +} + +function accumulateTwoPhaseDispatchesSkipTarget(events) { + forEachAccumulated(events, accumulateTwoPhaseDispatchesSingleSkipTarget); +} + +function accumulateEnterLeaveDispatches(leave, enter, from, to) { + EventPluginUtils.traverseEnterLeave(from, to, accumulateDispatches, leave, enter); +} + +function accumulateDirectDispatches(events) { + forEachAccumulated(events, accumulateDirectDispatchesSingle); +} + +/** + * A small set of propagation patterns, each of which will accept a small amount + * of information, and generate a set of "dispatch ready event objects" - which + * are sets of events that have already been annotated with a set of dispatched + * listener functions/ids. The API is designed this way to discourage these + * propagation strategies from actually executing the dispatches, since we + * always want to collect the entire set of dispatches before executing event a + * single one. + * + * @constructor EventPropagators + */ +var EventPropagators = { + accumulateTwoPhaseDispatches: accumulateTwoPhaseDispatches, + accumulateTwoPhaseDispatchesSkipTarget: accumulateTwoPhaseDispatchesSkipTarget, + accumulateDirectDispatches: accumulateDirectDispatches, + accumulateEnterLeaveDispatches: accumulateEnterLeaveDispatches +}; + +module.exports = EventPropagators; +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1))) + +/***/ }), +/* 61 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/** + * Copyright (c) 2013-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + */ + + + +/** + * `ReactInstanceMap` maintains a mapping from a public facing stateful + * instance (key) and the internal representation (value). This allows public + * methods to accept the user facing instance as an argument and map them back + * to internal methods. + */ + +// TODO: Replace this with ES6: var ReactInstanceMap = new Map(); + +var ReactInstanceMap = { + /** + * This API should be called `delete` but we'd have to make sure to always + * transform these to strings for IE support. When this transform is fully + * supported we can rename it. + */ + remove: function (key) { + key._reactInternalInstance = undefined; + }, + + get: function (key) { + return key._reactInternalInstance; + }, + + has: function (key) { + return key._reactInternalInstance !== undefined; + }, + + set: function (key, value) { + key._reactInternalInstance = value; + } +}; + +module.exports = ReactInstanceMap; + +/***/ }), +/* 62 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/** + * Copyright (c) 2013-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + */ + + + +var SyntheticEvent = __webpack_require__(33); + +var getEventTarget = __webpack_require__(133); + +/** + * @interface UIEvent + * @see http://www.w3.org/TR/DOM-Level-3-Events/ + */ +var UIEventInterface = { + view: function (event) { + if (event.view) { + return event.view; + } + + var target = getEventTarget(event); + if (target.window === target) { + // target is a window object + return target; + } + + var doc = target.ownerDocument; + // TODO: Figure out why `ownerDocument` is sometimes undefined in IE8. + if (doc) { + return doc.defaultView || doc.parentWindow; + } else { + return window; + } + }, + detail: function (event) { + return event.detail || 0; + } +}; + +/** + * @param {object} dispatchConfig Configuration used to dispatch this event. + * @param {string} dispatchMarker Marker identifying the event target. + * @param {object} nativeEvent Native browser event. + * @extends {SyntheticEvent} + */ +function SyntheticUIEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) { + return SyntheticEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget); +} + +SyntheticEvent.augmentClass(SyntheticUIEvent, UIEventInterface); + +module.exports = SyntheticUIEvent; + +/***/ }), +/* 63 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; + +var _createUncontrollable = __webpack_require__(586); + +var _createUncontrollable2 = _interopRequireDefault(_createUncontrollable); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var mixin = { + shouldComponentUpdate: function shouldComponentUpdate() { + //let the forceUpdate trigger the update + return !this._notifying; + } +}; + +function set(component, propName, handler, value, args) { + if (handler) { + component._notifying = true; + handler.call.apply(handler, [component, value].concat(args)); + component._notifying = false; + } + + component._values[propName] = value; + + if (!component.unmounted) component.forceUpdate(); +} + +exports.default = (0, _createUncontrollable2.default)(mixin, set); +module.exports = exports['default']; + +/***/ }), +/* 64 */ +/***/ (function(module, exports) { + +// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 +var global = module.exports = typeof window != 'undefined' && window.Math == Math + ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')(); +if(typeof __g == 'number')__g = global; // eslint-disable-line no-undef + +/***/ }), +/* 65 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _inDOM = __webpack_require__(35); + +var _inDOM2 = _interopRequireDefault(_inDOM); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var on = function on() {}; +if (_inDOM2.default) { + on = function () { + + if (document.addEventListener) return function (node, eventName, handler, capture) { + return node.addEventListener(eventName, handler, capture || false); + };else if (document.attachEvent) return function (node, eventName, handler) { + return node.attachEvent('on' + eventName, function (e) { + e = e || window.event; + e.target = e.target || e.srcElement; + e.currentTarget = node; + handler.call(node, e); + }); + }; + }(); +} + +exports.default = on; +module.exports = exports['default']; + +/***/ }), +/* 66 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = getWindow; +function getWindow(node) { + return node === node.window ? node : node.nodeType === 9 ? node.defaultView || node.parentWindow : false; +} +module.exports = exports["default"]; + +/***/ }), +/* 67 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = style; + +var _camelizeStyle = __webpack_require__(158); + +var _camelizeStyle2 = _interopRequireDefault(_camelizeStyle); + +var _hyphenateStyle = __webpack_require__(304); + +var _hyphenateStyle2 = _interopRequireDefault(_hyphenateStyle); + +var _getComputedStyle2 = __webpack_require__(299); + +var _getComputedStyle3 = _interopRequireDefault(_getComputedStyle2); + +var _removeStyle = __webpack_require__(300); + +var _removeStyle2 = _interopRequireDefault(_removeStyle); + +var _properties = __webpack_require__(157); + +var _isTransform = __webpack_require__(301); + +var _isTransform2 = _interopRequireDefault(_isTransform); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function style(node, property, value) { + var css = ''; + var transforms = ''; + var props = property; + + if (typeof property === 'string') { + if (value === undefined) { + return node.style[(0, _camelizeStyle2.default)(property)] || (0, _getComputedStyle3.default)(node).getPropertyValue((0, _hyphenateStyle2.default)(property)); + } else { + (props = {})[property] = value; + } + } + + Object.keys(props).forEach(function (key) { + var value = props[key]; + if (!value && value !== 0) { + (0, _removeStyle2.default)(node, (0, _hyphenateStyle2.default)(key)); + } else if ((0, _isTransform2.default)(key)) { + transforms += key + '(' + value + ') '; + } else { + css += (0, _hyphenateStyle2.default)(key) + ': ' + value + ';'; + } + }); + + if (transforms) { + css += _properties.transform + ': ' + transforms + ';'; + } + + node.style.cssText += ';' + css; +} +module.exports = exports['default']; + +/***/ }), +/* 68 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) {/** + * Copyright (c) 2013-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + */ + + + +var emptyObject = {}; + +if (process.env.NODE_ENV !== 'production') { + Object.freeze(emptyObject); +} + +module.exports = emptyObject; +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1))) + +/***/ }), +/* 69 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) {/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + */ + + + +/** + * Use invariant() to assert state which your program assumes to be true. + * + * Provide sprintf-style format (only %s is supported) and arguments + * to provide information about what broke and what you were + * expecting. + * + * The invariant message will be stripped in production, but the invariant + * will remain to ensure logic does not differ in production. + */ + +var invariant = function(condition, format, a, b, c, d, e, f) { + if (process.env.NODE_ENV !== 'production') { + if (format === undefined) { + throw new Error('invariant requires an error message argument'); + } + } + + if (!condition) { + var error; + if (format === undefined) { + error = new Error( + 'Minified exception occurred; use the non-minified dev environment ' + + 'for the full error message and additional helpful warnings.' + ); + } else { + var args = [a, b, c, d, e, f]; + var argIndex = 0; + error = new Error( + format.replace(/%s/g, function() { return args[argIndex++]; }) + ); + error.name = 'Invariant Violation'; + } + + error.framesToPop = 1; // we don't care about invariant's own frame + throw error; + } +}; + +module.exports = invariant; + +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1))) + +/***/ }), +/* 70 */ +/***/ (function(module, exports, __webpack_require__) { + +var listCacheClear = __webpack_require__(376), + listCacheDelete = __webpack_require__(377), + listCacheGet = __webpack_require__(378), + listCacheHas = __webpack_require__(379), + listCacheSet = __webpack_require__(380); + +/** + * Creates an list cache object. + * + * @private + * @constructor + * @param {Array} [entries] The key-value pairs to cache. + */ +function ListCache(entries) { + var index = -1, + length = entries == null ? 0 : entries.length; + + this.clear(); + while (++index < length) { + var entry = entries[index]; + this.set(entry[0], entry[1]); + } +} + +// Add methods to `ListCache`. +ListCache.prototype.clear = listCacheClear; +ListCache.prototype['delete'] = listCacheDelete; +ListCache.prototype.get = listCacheGet; +ListCache.prototype.has = listCacheHas; +ListCache.prototype.set = listCacheSet; + +module.exports = ListCache; + + +/***/ }), +/* 71 */ +/***/ (function(module, exports, __webpack_require__) { + +var eq = __webpack_require__(75); + +/** + * Gets the index at which the `key` is found in `array` of key-value pairs. + * + * @private + * @param {Array} array The array to inspect. + * @param {*} key The key to search for. + * @returns {number} Returns the index of the matched value, else `-1`. + */ +function assocIndexOf(array, key) { + var length = array.length; + while (length--) { + if (eq(array[length][0], key)) { + return length; + } + } + return -1; +} + +module.exports = assocIndexOf; + + +/***/ }), +/* 72 */ +/***/ (function(module, exports, __webpack_require__) { + +var isKeyable = __webpack_require__(374); + +/** + * Gets the data for `map`. + * + * @private + * @param {Object} map The map to query. + * @param {string} key The reference key. + * @returns {*} Returns the map data. + */ +function getMapData(map, key) { + var data = map.__data__; + return isKeyable(key) + ? data[typeof key == 'string' ? 'string' : 'hash'] + : data.map; +} + +module.exports = getMapData; + + +/***/ }), +/* 73 */ +/***/ (function(module, exports, __webpack_require__) { + +var getNative = __webpack_require__(38); + +/* Built-in method references that are verified to be native. */ +var nativeCreate = getNative(Object, 'create'); + +module.exports = nativeCreate; + + +/***/ }), +/* 74 */ +/***/ (function(module, exports, __webpack_require__) { + +var isSymbol = __webpack_require__(76); + +/** Used as references for various `Number` constants. */ +var INFINITY = 1 / 0; + +/** + * Converts `value` to a string key if it's not a string or symbol. + * + * @private + * @param {*} value The value to inspect. + * @returns {string|symbol} Returns the key. + */ +function toKey(value) { + if (typeof value == 'string' || isSymbol(value)) { + return value; + } + var result = (value + ''); + return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result; +} + +module.exports = toKey; + + +/***/ }), +/* 75 */ +/***/ (function(module, exports) { + +/** + * Performs a + * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) + * comparison between two values to determine if they are equivalent. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to compare. + * @param {*} other The other value to compare. + * @returns {boolean} Returns `true` if the values are equivalent, else `false`. + * @example + * + * var object = { 'a': 1 }; + * var other = { 'a': 1 }; + * + * _.eq(object, object); + * // => true + * + * _.eq(object, other); + * // => false + * + * _.eq('a', 'a'); + * // => true + * + * _.eq('a', Object('a')); + * // => false + * + * _.eq(NaN, NaN); + * // => true + */ +function eq(value, other) { + return value === other || (value !== value && other !== other); +} + +module.exports = eq; + + +/***/ }), +/* 76 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseGetTag = __webpack_require__(55), + isObjectLike = __webpack_require__(46); + +/** `Object#toString` result references. */ +var symbolTag = '[object Symbol]'; + +/** + * Checks if `value` is classified as a `Symbol` primitive or object. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a symbol, else `false`. + * @example + * + * _.isSymbol(Symbol.iterator); + * // => true + * + * _.isSymbol('abc'); + * // => false + */ +function isSymbol(value) { + return typeof value == 'symbol' || + (isObjectLike(value) && baseGetTag(value) == symbolTag); +} + +module.exports = isSymbol; + + +/***/ }), +/* 77 */ +/***/ (function(module, exports, __webpack_require__) { + +var arrayLikeKeys = __webpack_require__(333), + baseKeys = __webpack_require__(346), + isArrayLike = __webpack_require__(56); + +/** + * Creates an array of the own enumerable property names of `object`. + * + * **Note:** Non-object values are coerced to objects. See the + * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys) + * for more details. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Object + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. + * @example + * + * function Foo() { + * this.a = 1; + * this.b = 2; + * } + * + * Foo.prototype.c = 3; + * + * _.keys(new Foo); + * // => ['a', 'b'] (iteration order is not guaranteed) + * + * _.keys('hi'); + * // => ['0', '1'] + */ +function keys(object) { + return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object); +} + +module.exports = keys; + + +/***/ }), +/* 78 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = all; + +var _createChainableTypeChecker = __webpack_require__(81); + +var _createChainableTypeChecker2 = _interopRequireDefault(_createChainableTypeChecker); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function all() { + for (var _len = arguments.length, validators = Array(_len), _key = 0; _key < _len; _key++) { + validators[_key] = arguments[_key]; + } + + function allPropTypes() { + for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { + args[_key2] = arguments[_key2]; + } + + var error = null; + + validators.forEach(function (validator) { + if (error != null) { + return; + } + + var result = validator.apply(undefined, args); + if (result != null) { + error = result; + } + }); + + return error; + } + + return (0, _createChainableTypeChecker2.default)(allPropTypes); +} +module.exports = exports['default']; + +/***/ }), +/* 79 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; + +var _react = __webpack_require__(0); + +var _react2 = _interopRequireDefault(_react); + +var _createChainableTypeChecker = __webpack_require__(81); + +var _createChainableTypeChecker2 = _interopRequireDefault(_createChainableTypeChecker); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function validate(props, propName, componentName, location, propFullName) { + var propValue = props[propName]; + var propType = typeof propValue === 'undefined' ? 'undefined' : _typeof(propValue); + + if (_react2.default.isValidElement(propValue)) { + return new Error('Invalid ' + location + ' `' + propFullName + '` of type ReactElement ' + ('supplied to `' + componentName + '`, expected a ReactComponent or a ') + 'DOMElement. You can usually obtain a ReactComponent or DOMElement ' + 'from a ReactElement by attaching a ref to it.'); + } + + if ((propType !== 'object' || typeof propValue.render !== 'function') && propValue.nodeType !== 1) { + return new Error('Invalid ' + location + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected a ReactComponent or a ') + 'DOMElement.'); + } + + return null; +} + +exports.default = (0, _createChainableTypeChecker2.default)(validate); +module.exports = exports['default']; + +/***/ }), +/* 80 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = isRequiredForA11y; +function isRequiredForA11y(validator) { + return function validate(props, propName, componentName, location, propFullName) { + var componentNameSafe = componentName || '<>'; + var propFullNameSafe = propFullName || propName; + + if (props[propName] == null) { + return new Error('The ' + location + ' `' + propFullNameSafe + '` is required to make ' + ('`' + componentNameSafe + '` accessible for users of assistive ') + 'technologies such as screen readers.'); + } + + for (var _len = arguments.length, args = Array(_len > 5 ? _len - 5 : 0), _key = 5; _key < _len; _key++) { + args[_key - 5] = arguments[_key]; + } + + return validator.apply(undefined, [props, propName, componentName, location, propFullName].concat(args)); + }; +} +module.exports = exports['default']; + +/***/ }), +/* 81 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = createChainableTypeChecker; +/** + * Copyright 2013-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + */ + +// Mostly taken from ReactPropTypes. + +function createChainableTypeChecker(validate) { + function checkType(isRequired, props, propName, componentName, location, propFullName) { + var componentNameSafe = componentName || '<>'; + var propFullNameSafe = propFullName || propName; + + if (props[propName] == null) { + if (isRequired) { + return new Error('Required ' + location + ' `' + propFullNameSafe + '` was not specified ' + ('in `' + componentNameSafe + '`.')); + } + + return null; + } + + for (var _len = arguments.length, args = Array(_len > 6 ? _len - 6 : 0), _key = 6; _key < _len; _key++) { + args[_key - 6] = arguments[_key]; + } + + return validate.apply(undefined, [props, propName, componentNameSafe, location, propFullNameSafe].concat(args)); + } + + var chainedCheckType = checkType.bind(null, false); + chainedCheckType.isRequired = checkType.bind(null, true); + + return chainedCheckType; +} +module.exports = exports['default']; + +/***/ }), +/* 82 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) {/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends__ = __webpack_require__(5); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_objectWithoutProperties__ = __webpack_require__(6); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_objectWithoutProperties___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_objectWithoutProperties__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_classCallCheck__ = __webpack_require__(2); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_classCallCheck___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_classCallCheck__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_possibleConstructorReturn__ = __webpack_require__(4); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_possibleConstructorReturn___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_possibleConstructorReturn__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_babel_runtime_helpers_inherits__ = __webpack_require__(3); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_babel_runtime_helpers_inherits___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_babel_runtime_helpers_inherits__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_classnames__ = __webpack_require__(7); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_classnames__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_dom_helpers_activeElement__ = __webpack_require__(153); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_dom_helpers_activeElement___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_6_dom_helpers_activeElement__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_dom_helpers_query_contains__ = __webpack_require__(45); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_dom_helpers_query_contains___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_7_dom_helpers_query_contains__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8_keycode__ = __webpack_require__(106); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8_keycode___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_8_keycode__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9_react__ = __webpack_require__(0); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_9_react__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10_prop_types__ = __webpack_require__(8); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_10_prop_types__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11_react_dom__ = __webpack_require__(18); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11_react_dom___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_11_react_dom__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12_prop_types_extra_lib_all__ = __webpack_require__(78); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12_prop_types_extra_lib_all___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_12_prop_types_extra_lib_all__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13_prop_types_extra_lib_elementType__ = __webpack_require__(13); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13_prop_types_extra_lib_elementType___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_13_prop_types_extra_lib_elementType__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_14_prop_types_extra_lib_isRequiredForA11y__ = __webpack_require__(80); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_14_prop_types_extra_lib_isRequiredForA11y___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_14_prop_types_extra_lib_isRequiredForA11y__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_15_uncontrollable__ = __webpack_require__(63); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_15_uncontrollable___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_15_uncontrollable__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_16_warning__ = __webpack_require__(25); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_16_warning___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_16_warning__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_17__ButtonGroup__ = __webpack_require__(116); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_18__DropdownMenu__ = __webpack_require__(436); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_19__DropdownToggle__ = __webpack_require__(191); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_20__utils_bootstrapUtils__ = __webpack_require__(9); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_21__utils_createChainedFunction__ = __webpack_require__(16); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_22__utils_PropTypes__ = __webpack_require__(484); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_23__utils_ValidComponentChildren__ = __webpack_require__(20); + + + + + + + + + + + + + + + + + + + + + + + + + + +var TOGGLE_ROLE = __WEBPACK_IMPORTED_MODULE_19__DropdownToggle__["a" /* default */].defaultProps.bsRole; +var MENU_ROLE = __WEBPACK_IMPORTED_MODULE_18__DropdownMenu__["a" /* default */].defaultProps.bsRole; + +var propTypes = { + /** + * The menu will open above the dropdown button, instead of below it. + */ + dropup: __WEBPACK_IMPORTED_MODULE_10_prop_types___default.a.bool, + + /** + * An html id attribute, necessary for assistive technologies, such as screen readers. + * @type {string|number} + * @required + */ + id: __WEBPACK_IMPORTED_MODULE_14_prop_types_extra_lib_isRequiredForA11y___default()(__WEBPACK_IMPORTED_MODULE_10_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_10_prop_types___default.a.string, __WEBPACK_IMPORTED_MODULE_10_prop_types___default.a.number])), + + componentClass: __WEBPACK_IMPORTED_MODULE_13_prop_types_extra_lib_elementType___default.a, + + /** + * The children of a Dropdown may be a `` or a ``. + * @type {node} + */ + children: __WEBPACK_IMPORTED_MODULE_12_prop_types_extra_lib_all___default()(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_22__utils_PropTypes__["a" /* requiredRoles */])(TOGGLE_ROLE, MENU_ROLE), __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_22__utils_PropTypes__["b" /* exclusiveRoles */])(MENU_ROLE)), + + /** + * Whether or not component is disabled. + */ + disabled: __WEBPACK_IMPORTED_MODULE_10_prop_types___default.a.bool, + + /** + * Align the menu to the right side of the Dropdown toggle + */ + pullRight: __WEBPACK_IMPORTED_MODULE_10_prop_types___default.a.bool, + + /** + * Whether or not the Dropdown is visible. + * + * @controllable onToggle + */ + open: __WEBPACK_IMPORTED_MODULE_10_prop_types___default.a.bool, + + defaultOpen: __WEBPACK_IMPORTED_MODULE_10_prop_types___default.a.bool, + + /** + * A callback fired when the Dropdown wishes to change visibility. Called with the requested + * `open` value, the DOM event, and the source that fired it: `'click'`,`'keydown'`,`'rootClose'`, or `'select'`. + * + * ```js + * function(Boolean isOpen, Object event, { String source }) {} + * ``` + * @controllable open + */ + onToggle: __WEBPACK_IMPORTED_MODULE_10_prop_types___default.a.func, + + /** + * A callback fired when a menu item is selected. + * + * ```js + * (eventKey: any, event: Object) => any + * ``` + */ + onSelect: __WEBPACK_IMPORTED_MODULE_10_prop_types___default.a.func, + + /** + * If `'menuitem'`, causes the dropdown to behave like a menu item rather than + * a menu button. + */ + role: __WEBPACK_IMPORTED_MODULE_10_prop_types___default.a.string, + + /** + * Which event when fired outside the component will cause it to be closed + */ + rootCloseEvent: __WEBPACK_IMPORTED_MODULE_10_prop_types___default.a.oneOf(['click', 'mousedown']), + + /** + * @private + */ + onMouseEnter: __WEBPACK_IMPORTED_MODULE_10_prop_types___default.a.func, + /** + * @private + */ + onMouseLeave: __WEBPACK_IMPORTED_MODULE_10_prop_types___default.a.func +}; + +var defaultProps = { + componentClass: __WEBPACK_IMPORTED_MODULE_17__ButtonGroup__["a" /* default */] +}; + +var Dropdown = function (_React$Component) { + __WEBPACK_IMPORTED_MODULE_4_babel_runtime_helpers_inherits___default()(Dropdown, _React$Component); + + function Dropdown(props, context) { + __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_classCallCheck___default()(this, Dropdown); + + var _this = __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_possibleConstructorReturn___default()(this, _React$Component.call(this, props, context)); + + _this.handleClick = _this.handleClick.bind(_this); + _this.handleKeyDown = _this.handleKeyDown.bind(_this); + _this.handleClose = _this.handleClose.bind(_this); + + _this._focusInDropdown = false; + _this.lastOpenEventType = null; + return _this; + } + + Dropdown.prototype.componentDidMount = function componentDidMount() { + this.focusNextOnOpen(); + }; + + Dropdown.prototype.componentWillUpdate = function componentWillUpdate(nextProps) { + if (!nextProps.open && this.props.open) { + this._focusInDropdown = __WEBPACK_IMPORTED_MODULE_7_dom_helpers_query_contains___default()(__WEBPACK_IMPORTED_MODULE_11_react_dom___default.a.findDOMNode(this.menu), __WEBPACK_IMPORTED_MODULE_6_dom_helpers_activeElement___default()(document)); + } + }; + + Dropdown.prototype.componentDidUpdate = function componentDidUpdate(prevProps) { + var open = this.props.open; + + var prevOpen = prevProps.open; + + if (open && !prevOpen) { + this.focusNextOnOpen(); + } + + if (!open && prevOpen) { + // if focus hasn't already moved from the menu let's return it + // to the toggle + if (this._focusInDropdown) { + this._focusInDropdown = false; + this.focus(); + } + } + }; + + Dropdown.prototype.focus = function focus() { + var toggle = __WEBPACK_IMPORTED_MODULE_11_react_dom___default.a.findDOMNode(this.toggle); + + if (toggle && toggle.focus) { + toggle.focus(); + } + }; + + Dropdown.prototype.focusNextOnOpen = function focusNextOnOpen() { + var menu = this.menu; + + if (!menu.focusNext) { + return; + } + + if (this.lastOpenEventType === 'keydown' || this.props.role === 'menuitem') { + menu.focusNext(); + } + }; + + Dropdown.prototype.handleClick = function handleClick(event) { + if (this.props.disabled) { + return; + } + + this.toggleOpen(event, { source: 'click' }); + }; + + Dropdown.prototype.handleClose = function handleClose(event, eventDetails) { + if (!this.props.open) { + return; + } + + this.toggleOpen(event, eventDetails); + }; + + Dropdown.prototype.handleKeyDown = function handleKeyDown(event) { + if (this.props.disabled) { + return; + } + + switch (event.keyCode) { + case __WEBPACK_IMPORTED_MODULE_8_keycode___default.a.codes.down: + if (!this.props.open) { + this.toggleOpen(event, { source: 'keydown' }); + } else if (this.menu.focusNext) { + this.menu.focusNext(); + } + event.preventDefault(); + break; + case __WEBPACK_IMPORTED_MODULE_8_keycode___default.a.codes.esc: + case __WEBPACK_IMPORTED_MODULE_8_keycode___default.a.codes.tab: + this.handleClose(event, { source: 'keydown' }); + break; + default: + } + }; + + Dropdown.prototype.toggleOpen = function toggleOpen(event, eventDetails) { + var open = !this.props.open; + + if (open) { + this.lastOpenEventType = eventDetails.source; + } + + if (this.props.onToggle) { + this.props.onToggle(open, event, eventDetails); + } + }; + + Dropdown.prototype.renderMenu = function renderMenu(child, _ref) { + var _this2 = this; + + var id = _ref.id, + onSelect = _ref.onSelect, + rootCloseEvent = _ref.rootCloseEvent, + props = __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_objectWithoutProperties___default()(_ref, ['id', 'onSelect', 'rootCloseEvent']); + + var ref = function ref(c) { + _this2.menu = c; + }; + + if (typeof child.ref === 'string') { + process.env.NODE_ENV !== 'production' ? __WEBPACK_IMPORTED_MODULE_16_warning___default()(false, 'String refs are not supported on `` components. ' + 'To apply a ref to the component use the callback signature:\n\n ' + 'https://facebook.github.io/react/docs/more-about-refs.html#the-ref-callback-attribute') : void 0; + } else { + ref = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_21__utils_createChainedFunction__["a" /* default */])(child.ref, ref); + } + + return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_9_react__["cloneElement"])(child, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends___default()({}, props, { + ref: ref, + labelledBy: id, + bsClass: __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_20__utils_bootstrapUtils__["prefix"])(props, 'menu'), + onClose: __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_21__utils_createChainedFunction__["a" /* default */])(child.props.onClose, this.handleClose), + onSelect: __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_21__utils_createChainedFunction__["a" /* default */])(child.props.onSelect, onSelect, function (key, event) { + return _this2.handleClose(event, { source: 'select' }); + }), + rootCloseEvent: rootCloseEvent + })); + }; + + Dropdown.prototype.renderToggle = function renderToggle(child, props) { + var _this3 = this; + + var ref = function ref(c) { + _this3.toggle = c; + }; + + if (typeof child.ref === 'string') { + process.env.NODE_ENV !== 'production' ? __WEBPACK_IMPORTED_MODULE_16_warning___default()(false, 'String refs are not supported on `` components. ' + 'To apply a ref to the component use the callback signature:\n\n ' + 'https://facebook.github.io/react/docs/more-about-refs.html#the-ref-callback-attribute') : void 0; + } else { + ref = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_21__utils_createChainedFunction__["a" /* default */])(child.ref, ref); + } + + return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_9_react__["cloneElement"])(child, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends___default()({}, props, { + ref: ref, + bsClass: __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_20__utils_bootstrapUtils__["prefix"])(props, 'toggle'), + onClick: __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_21__utils_createChainedFunction__["a" /* default */])(child.props.onClick, this.handleClick), + onKeyDown: __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_21__utils_createChainedFunction__["a" /* default */])(child.props.onKeyDown, this.handleKeyDown) + })); + }; + + Dropdown.prototype.render = function render() { + var _classes, + _this4 = this; + + var _props = this.props, + Component = _props.componentClass, + id = _props.id, + dropup = _props.dropup, + disabled = _props.disabled, + pullRight = _props.pullRight, + open = _props.open, + onSelect = _props.onSelect, + role = _props.role, + bsClass = _props.bsClass, + className = _props.className, + rootCloseEvent = _props.rootCloseEvent, + children = _props.children, + props = __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_objectWithoutProperties___default()(_props, ['componentClass', 'id', 'dropup', 'disabled', 'pullRight', 'open', 'onSelect', 'role', 'bsClass', 'className', 'rootCloseEvent', 'children']); + + delete props.onToggle; + + var classes = (_classes = {}, _classes[bsClass] = true, _classes.open = open, _classes.disabled = disabled, _classes); + + if (dropup) { + classes[bsClass] = false; + classes.dropup = true; + } + + // This intentionally forwards bsSize and bsStyle (if set) to the + // underlying component, to allow it to render size and style variants. + + return __WEBPACK_IMPORTED_MODULE_9_react___default.a.createElement( + Component, + __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends___default()({}, props, { + className: __WEBPACK_IMPORTED_MODULE_5_classnames___default()(className, classes) + }), + __WEBPACK_IMPORTED_MODULE_23__utils_ValidComponentChildren__["a" /* default */].map(children, function (child) { + switch (child.props.bsRole) { + case TOGGLE_ROLE: + return _this4.renderToggle(child, { + id: id, disabled: disabled, open: open, role: role, bsClass: bsClass + }); + case MENU_ROLE: + return _this4.renderMenu(child, { + id: id, open: open, pullRight: pullRight, bsClass: bsClass, onSelect: onSelect, rootCloseEvent: rootCloseEvent + }); + default: + return child; + } + }) + ); + }; + + return Dropdown; +}(__WEBPACK_IMPORTED_MODULE_9_react___default.a.Component); + +Dropdown.propTypes = propTypes; +Dropdown.defaultProps = defaultProps; + +__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_20__utils_bootstrapUtils__["bsClass"])('dropdown', Dropdown); + +var UncontrolledDropdown = __WEBPACK_IMPORTED_MODULE_15_uncontrollable___default()(Dropdown, { open: 'onToggle' }); + +UncontrolledDropdown.Toggle = __WEBPACK_IMPORTED_MODULE_19__DropdownToggle__["a" /* default */]; +UncontrolledDropdown.Menu = __WEBPACK_IMPORTED_MODULE_18__DropdownMenu__["a" /* default */]; + +/* harmony default export */ __webpack_exports__["a"] = (UncontrolledDropdown); +/* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__(1))) + +/***/ }), +/* 83 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends__ = __webpack_require__(5); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck__ = __webpack_require__(2); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn__ = __webpack_require__(4); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits__ = __webpack_require__(3); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_classnames__ = __webpack_require__(7); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_classnames__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_react__ = __webpack_require__(0); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_react__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_prop_types__ = __webpack_require__(8); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_6_prop_types__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_react_overlays_lib_Transition__ = __webpack_require__(232); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_react_overlays_lib_Transition___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_7_react_overlays_lib_Transition__); + + + + + + + + + +var propTypes = { + /** + * Show the component; triggers the fade in or fade out animation + */ + in: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.bool, + + /** + * Wait until the first "enter" transition to mount the component (add it to the DOM) + */ + mountOnEnter: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.bool, + + /** + * Unmount the component (remove it from the DOM) when it is faded out + */ + unmountOnExit: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.bool, + + /** + * Run the fade in animation when the component mounts, if it is initially + * shown + */ + transitionAppear: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.bool, + + /** + * Duration of the fade animation in milliseconds, to ensure that finishing + * callbacks are fired even if the original browser transition end events are + * canceled + */ + timeout: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.number, + + /** + * Callback fired before the component fades in + */ + onEnter: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.func, + /** + * Callback fired after the component starts to fade in + */ + onEntering: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.func, + /** + * Callback fired after the has component faded in + */ + onEntered: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.func, + /** + * Callback fired before the component fades out + */ + onExit: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.func, + /** + * Callback fired after the component starts to fade out + */ + onExiting: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.func, + /** + * Callback fired after the component has faded out + */ + onExited: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.func +}; + +var defaultProps = { + in: false, + timeout: 300, + mountOnEnter: false, + unmountOnExit: false, + transitionAppear: false +}; + +var Fade = function (_React$Component) { + __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits___default()(Fade, _React$Component); + + function Fade() { + __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck___default()(this, Fade); + + return __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn___default()(this, _React$Component.apply(this, arguments)); + } + + Fade.prototype.render = function render() { + return __WEBPACK_IMPORTED_MODULE_5_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_7_react_overlays_lib_Transition___default.a, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends___default()({}, this.props, { + className: __WEBPACK_IMPORTED_MODULE_4_classnames___default()(this.props.className, 'fade'), + enteredClassName: 'in', + enteringClassName: 'in' + })); + }; + + return Fade; +}(__WEBPACK_IMPORTED_MODULE_5_react___default.a.Component); + +Fade.propTypes = propTypes; +Fade.defaultProps = defaultProps; + +/* harmony default export */ __webpack_exports__["a"] = (Fade); + +/***/ }), +/* 84 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends__ = __webpack_require__(5); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_objectWithoutProperties__ = __webpack_require__(6); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_objectWithoutProperties___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_objectWithoutProperties__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_classCallCheck__ = __webpack_require__(2); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_classCallCheck___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_classCallCheck__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_possibleConstructorReturn__ = __webpack_require__(4); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_possibleConstructorReturn___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_possibleConstructorReturn__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_babel_runtime_helpers_inherits__ = __webpack_require__(3); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_babel_runtime_helpers_inherits___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_babel_runtime_helpers_inherits__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_classnames__ = __webpack_require__(7); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_classnames__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_react__ = __webpack_require__(0); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_6_react__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_prop_types_extra_lib_elementType__ = __webpack_require__(13); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_prop_types_extra_lib_elementType___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_7_prop_types_extra_lib_elementType__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__MediaBody__ = __webpack_require__(450); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__MediaHeading__ = __webpack_require__(451); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__MediaLeft__ = __webpack_require__(452); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__MediaList__ = __webpack_require__(453); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__MediaListItem__ = __webpack_require__(454); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__MediaRight__ = __webpack_require__(455); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_14__utils_bootstrapUtils__ = __webpack_require__(9); + + + + + + + + + + + + + + + + + +var propTypes = { + componentClass: __WEBPACK_IMPORTED_MODULE_7_prop_types_extra_lib_elementType___default.a +}; + +var defaultProps = { + componentClass: 'div' +}; + +var Media = function (_React$Component) { + __WEBPACK_IMPORTED_MODULE_4_babel_runtime_helpers_inherits___default()(Media, _React$Component); + + function Media() { + __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_classCallCheck___default()(this, Media); + + return __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_possibleConstructorReturn___default()(this, _React$Component.apply(this, arguments)); + } + + Media.prototype.render = function render() { + var _props = this.props, + Component = _props.componentClass, + className = _props.className, + props = __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_objectWithoutProperties___default()(_props, ['componentClass', 'className']); + + var _splitBsProps = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_14__utils_bootstrapUtils__["splitBsProps"])(props), + bsProps = _splitBsProps[0], + elementProps = _splitBsProps[1]; + + var classes = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_14__utils_bootstrapUtils__["getClassSet"])(bsProps); + + return __WEBPACK_IMPORTED_MODULE_6_react___default.a.createElement(Component, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends___default()({}, elementProps, { + className: __WEBPACK_IMPORTED_MODULE_5_classnames___default()(className, classes) + })); + }; + + return Media; +}(__WEBPACK_IMPORTED_MODULE_6_react___default.a.Component); + +Media.propTypes = propTypes; +Media.defaultProps = defaultProps; + +Media.Heading = __WEBPACK_IMPORTED_MODULE_9__MediaHeading__["a" /* default */]; +Media.Body = __WEBPACK_IMPORTED_MODULE_8__MediaBody__["a" /* default */]; +Media.Left = __WEBPACK_IMPORTED_MODULE_10__MediaLeft__["a" /* default */]; +Media.Right = __WEBPACK_IMPORTED_MODULE_13__MediaRight__["a" /* default */]; +Media.List = __WEBPACK_IMPORTED_MODULE_11__MediaList__["a" /* default */]; +Media.ListItem = __WEBPACK_IMPORTED_MODULE_12__MediaListItem__["a" /* default */]; + +/* harmony default export */ __webpack_exports__["a"] = (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_14__utils_bootstrapUtils__["bsClass"])('media', Media)); + +/***/ }), +/* 85 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony export (immutable) */ __webpack_exports__["a"] = splitComponentProps; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_entries__ = __webpack_require__(140); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_entries___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_entries__); + +function splitComponentProps(props, Component) { + var componentPropTypes = Component.propTypes; + + var parentProps = {}; + var childProps = {}; + + __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_entries___default()(props).forEach(function (_ref) { + var propName = _ref[0], + propValue = _ref[1]; + + if (componentPropTypes[propName]) { + parentProps[propName] = propValue; + } else { + childProps[propName] = propValue; + } + }); + + return [parentProps, childProps]; +} + +/***/ }), +/* 86 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) {/** + * Copyright (c) 2013-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + * + */ + + + +var _prodInvariant = __webpack_require__(12); + +var invariant = __webpack_require__(10); + +/** + * Injectable ordering of event plugins. + */ +var eventPluginOrder = null; + +/** + * Injectable mapping from names to event plugin modules. + */ +var namesToPlugins = {}; + +/** + * Recomputes the plugin list using the injected plugins and plugin ordering. + * + * @private + */ +function recomputePluginOrdering() { + if (!eventPluginOrder) { + // Wait until an `eventPluginOrder` is injected. + return; + } + for (var pluginName in namesToPlugins) { + var pluginModule = namesToPlugins[pluginName]; + var pluginIndex = eventPluginOrder.indexOf(pluginName); + !(pluginIndex > -1) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'EventPluginRegistry: Cannot inject event plugins that do not exist in the plugin ordering, `%s`.', pluginName) : _prodInvariant('96', pluginName) : void 0; + if (EventPluginRegistry.plugins[pluginIndex]) { + continue; + } + !pluginModule.extractEvents ? process.env.NODE_ENV !== 'production' ? invariant(false, 'EventPluginRegistry: Event plugins must implement an `extractEvents` method, but `%s` does not.', pluginName) : _prodInvariant('97', pluginName) : void 0; + EventPluginRegistry.plugins[pluginIndex] = pluginModule; + var publishedEvents = pluginModule.eventTypes; + for (var eventName in publishedEvents) { + !publishEventForPlugin(publishedEvents[eventName], pluginModule, eventName) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'EventPluginRegistry: Failed to publish event `%s` for plugin `%s`.', eventName, pluginName) : _prodInvariant('98', eventName, pluginName) : void 0; + } + } +} + +/** + * Publishes an event so that it can be dispatched by the supplied plugin. + * + * @param {object} dispatchConfig Dispatch configuration for the event. + * @param {object} PluginModule Plugin publishing the event. + * @return {boolean} True if the event was successfully published. + * @private + */ +function publishEventForPlugin(dispatchConfig, pluginModule, eventName) { + !!EventPluginRegistry.eventNameDispatchConfigs.hasOwnProperty(eventName) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'EventPluginHub: More than one plugin attempted to publish the same event name, `%s`.', eventName) : _prodInvariant('99', eventName) : void 0; + EventPluginRegistry.eventNameDispatchConfigs[eventName] = dispatchConfig; + + var phasedRegistrationNames = dispatchConfig.phasedRegistrationNames; + if (phasedRegistrationNames) { + for (var phaseName in phasedRegistrationNames) { + if (phasedRegistrationNames.hasOwnProperty(phaseName)) { + var phasedRegistrationName = phasedRegistrationNames[phaseName]; + publishRegistrationName(phasedRegistrationName, pluginModule, eventName); + } + } + return true; + } else if (dispatchConfig.registrationName) { + publishRegistrationName(dispatchConfig.registrationName, pluginModule, eventName); + return true; + } + return false; +} + +/** + * Publishes a registration name that is used to identify dispatched events and + * can be used with `EventPluginHub.putListener` to register listeners. + * + * @param {string} registrationName Registration name to add. + * @param {object} PluginModule Plugin publishing the event. + * @private + */ +function publishRegistrationName(registrationName, pluginModule, eventName) { + !!EventPluginRegistry.registrationNameModules[registrationName] ? process.env.NODE_ENV !== 'production' ? invariant(false, 'EventPluginHub: More than one plugin attempted to publish the same registration name, `%s`.', registrationName) : _prodInvariant('100', registrationName) : void 0; + EventPluginRegistry.registrationNameModules[registrationName] = pluginModule; + EventPluginRegistry.registrationNameDependencies[registrationName] = pluginModule.eventTypes[eventName].dependencies; + + if (process.env.NODE_ENV !== 'production') { + var lowerCasedName = registrationName.toLowerCase(); + EventPluginRegistry.possibleRegistrationNames[lowerCasedName] = registrationName; + + if (registrationName === 'onDoubleClick') { + EventPluginRegistry.possibleRegistrationNames.ondblclick = registrationName; + } + } +} + +/** + * Registers plugins so that they can extract and dispatch events. + * + * @see {EventPluginHub} + */ +var EventPluginRegistry = { + /** + * Ordered list of injected plugins. + */ + plugins: [], + + /** + * Mapping from event name to dispatch config + */ + eventNameDispatchConfigs: {}, + + /** + * Mapping from registration name to plugin module + */ + registrationNameModules: {}, + + /** + * Mapping from registration name to event name + */ + registrationNameDependencies: {}, + + /** + * Mapping from lowercase registration names to the properly cased version, + * used to warn in the case of missing event handlers. Available + * only in __DEV__. + * @type {Object} + */ + possibleRegistrationNames: process.env.NODE_ENV !== 'production' ? {} : null, + // Trust the developer to only use possibleRegistrationNames in __DEV__ + + /** + * Injects an ordering of plugins (by plugin name). This allows the ordering + * to be decoupled from injection of the actual plugins so that ordering is + * always deterministic regardless of packaging, on-the-fly injection, etc. + * + * @param {array} InjectedEventPluginOrder + * @internal + * @see {EventPluginHub.injection.injectEventPluginOrder} + */ + injectEventPluginOrder: function (injectedEventPluginOrder) { + !!eventPluginOrder ? process.env.NODE_ENV !== 'production' ? invariant(false, 'EventPluginRegistry: Cannot inject event plugin ordering more than once. You are likely trying to load more than one copy of React.') : _prodInvariant('101') : void 0; + // Clone the ordering so it cannot be dynamically mutated. + eventPluginOrder = Array.prototype.slice.call(injectedEventPluginOrder); + recomputePluginOrdering(); + }, + + /** + * Injects plugins to be used by `EventPluginHub`. The plugin names must be + * in the ordering injected by `injectEventPluginOrder`. + * + * Plugins can be injected as part of page initialization or on-the-fly. + * + * @param {object} injectedNamesToPlugins Map from names to plugin modules. + * @internal + * @see {EventPluginHub.injection.injectEventPluginsByName} + */ + injectEventPluginsByName: function (injectedNamesToPlugins) { + var isOrderingDirty = false; + for (var pluginName in injectedNamesToPlugins) { + if (!injectedNamesToPlugins.hasOwnProperty(pluginName)) { + continue; + } + var pluginModule = injectedNamesToPlugins[pluginName]; + if (!namesToPlugins.hasOwnProperty(pluginName) || namesToPlugins[pluginName] !== pluginModule) { + !!namesToPlugins[pluginName] ? process.env.NODE_ENV !== 'production' ? invariant(false, 'EventPluginRegistry: Cannot inject two different event plugins using the same name, `%s`.', pluginName) : _prodInvariant('102', pluginName) : void 0; + namesToPlugins[pluginName] = pluginModule; + isOrderingDirty = true; + } + } + if (isOrderingDirty) { + recomputePluginOrdering(); + } + }, + + /** + * Looks up the plugin for the supplied event. + * + * @param {object} event A synthetic event. + * @return {?object} The plugin that created the supplied event. + * @internal + */ + getPluginModuleForEvent: function (event) { + var dispatchConfig = event.dispatchConfig; + if (dispatchConfig.registrationName) { + return EventPluginRegistry.registrationNameModules[dispatchConfig.registrationName] || null; + } + if (dispatchConfig.phasedRegistrationNames !== undefined) { + // pulling phasedRegistrationNames out of dispatchConfig helps Flow see + // that it is not undefined. + var phasedRegistrationNames = dispatchConfig.phasedRegistrationNames; + + for (var phase in phasedRegistrationNames) { + if (!phasedRegistrationNames.hasOwnProperty(phase)) { + continue; + } + var pluginModule = EventPluginRegistry.registrationNameModules[phasedRegistrationNames[phase]]; + if (pluginModule) { + return pluginModule; + } + } + } + return null; + }, + + /** + * Exposed for unit testing. + * @private + */ + _resetEventPlugins: function () { + eventPluginOrder = null; + for (var pluginName in namesToPlugins) { + if (namesToPlugins.hasOwnProperty(pluginName)) { + delete namesToPlugins[pluginName]; + } + } + EventPluginRegistry.plugins.length = 0; + + var eventNameDispatchConfigs = EventPluginRegistry.eventNameDispatchConfigs; + for (var eventName in eventNameDispatchConfigs) { + if (eventNameDispatchConfigs.hasOwnProperty(eventName)) { + delete eventNameDispatchConfigs[eventName]; + } + } + + var registrationNameModules = EventPluginRegistry.registrationNameModules; + for (var registrationName in registrationNameModules) { + if (registrationNameModules.hasOwnProperty(registrationName)) { + delete registrationNameModules[registrationName]; + } + } + + if (process.env.NODE_ENV !== 'production') { + var possibleRegistrationNames = EventPluginRegistry.possibleRegistrationNames; + for (var lowerCasedName in possibleRegistrationNames) { + if (possibleRegistrationNames.hasOwnProperty(lowerCasedName)) { + delete possibleRegistrationNames[lowerCasedName]; + } + } + } + } +}; + +module.exports = EventPluginRegistry; +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1))) + +/***/ }), +/* 87 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/** + * Copyright (c) 2013-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + */ + + + +var _assign = __webpack_require__(14); + +var EventPluginRegistry = __webpack_require__(86); +var ReactEventEmitterMixin = __webpack_require__(521); +var ViewportMetrics = __webpack_require__(220); + +var getVendorPrefixedEventName = __webpack_require__(556); +var isEventSupported = __webpack_require__(134); + +/** + * Summary of `ReactBrowserEventEmitter` event handling: + * + * - Top-level delegation is used to trap most native browser events. This + * may only occur in the main thread and is the responsibility of + * ReactEventListener, which is injected and can therefore support pluggable + * event sources. This is the only work that occurs in the main thread. + * + * - We normalize and de-duplicate events to account for browser quirks. This + * may be done in the worker thread. + * + * - Forward these native events (with the associated top-level type used to + * trap it) to `EventPluginHub`, which in turn will ask plugins if they want + * to extract any synthetic events. + * + * - The `EventPluginHub` will then process each event by annotating them with + * "dispatches", a sequence of listeners and IDs that care about that event. + * + * - The `EventPluginHub` then dispatches the events. + * + * Overview of React and the event system: + * + * +------------+ . + * | DOM | . + * +------------+ . + * | . + * v . + * +------------+ . + * | ReactEvent | . + * | Listener | . + * +------------+ . +-----------+ + * | . +--------+|SimpleEvent| + * | . | |Plugin | + * +-----|------+ . v +-----------+ + * | | | . +--------------+ +------------+ + * | +-----------.--->|EventPluginHub| | Event | + * | | . | | +-----------+ | Propagators| + * | ReactEvent | . | | |TapEvent | |------------| + * | Emitter | . | |<---+|Plugin | |other plugin| + * | | . | | +-----------+ | utilities | + * | +-----------.--->| | +------------+ + * | | | . +--------------+ + * +-----|------+ . ^ +-----------+ + * | . | |Enter/Leave| + * + . +-------+|Plugin | + * +-------------+ . +-----------+ + * | application | . + * |-------------| . + * | | . + * | | . + * +-------------+ . + * . + * React Core . General Purpose Event Plugin System + */ + +var hasEventPageXY; +var alreadyListeningTo = {}; +var isMonitoringScrollValue = false; +var reactTopListenersCounter = 0; + +// For events like 'submit' which don't consistently bubble (which we trap at a +// lower node than `document`), binding at `document` would cause duplicate +// events so we don't include them here +var topEventMapping = { + topAbort: 'abort', + topAnimationEnd: getVendorPrefixedEventName('animationend') || 'animationend', + topAnimationIteration: getVendorPrefixedEventName('animationiteration') || 'animationiteration', + topAnimationStart: getVendorPrefixedEventName('animationstart') || 'animationstart', + topBlur: 'blur', + topCanPlay: 'canplay', + topCanPlayThrough: 'canplaythrough', + topChange: 'change', + topClick: 'click', + topCompositionEnd: 'compositionend', + topCompositionStart: 'compositionstart', + topCompositionUpdate: 'compositionupdate', + topContextMenu: 'contextmenu', + topCopy: 'copy', + topCut: 'cut', + topDoubleClick: 'dblclick', + topDrag: 'drag', + topDragEnd: 'dragend', + topDragEnter: 'dragenter', + topDragExit: 'dragexit', + topDragLeave: 'dragleave', + topDragOver: 'dragover', + topDragStart: 'dragstart', + topDrop: 'drop', + topDurationChange: 'durationchange', + topEmptied: 'emptied', + topEncrypted: 'encrypted', + topEnded: 'ended', + topError: 'error', + topFocus: 'focus', + topInput: 'input', + topKeyDown: 'keydown', + topKeyPress: 'keypress', + topKeyUp: 'keyup', + topLoadedData: 'loadeddata', + topLoadedMetadata: 'loadedmetadata', + topLoadStart: 'loadstart', + topMouseDown: 'mousedown', + topMouseMove: 'mousemove', + topMouseOut: 'mouseout', + topMouseOver: 'mouseover', + topMouseUp: 'mouseup', + topPaste: 'paste', + topPause: 'pause', + topPlay: 'play', + topPlaying: 'playing', + topProgress: 'progress', + topRateChange: 'ratechange', + topScroll: 'scroll', + topSeeked: 'seeked', + topSeeking: 'seeking', + topSelectionChange: 'selectionchange', + topStalled: 'stalled', + topSuspend: 'suspend', + topTextInput: 'textInput', + topTimeUpdate: 'timeupdate', + topTouchCancel: 'touchcancel', + topTouchEnd: 'touchend', + topTouchMove: 'touchmove', + topTouchStart: 'touchstart', + topTransitionEnd: getVendorPrefixedEventName('transitionend') || 'transitionend', + topVolumeChange: 'volumechange', + topWaiting: 'waiting', + topWheel: 'wheel' +}; + +/** + * To ensure no conflicts with other potential React instances on the page + */ +var topListenersIDKey = '_reactListenersID' + String(Math.random()).slice(2); + +function getListeningForDocument(mountAt) { + // In IE8, `mountAt` is a host object and doesn't have `hasOwnProperty` + // directly. + if (!Object.prototype.hasOwnProperty.call(mountAt, topListenersIDKey)) { + mountAt[topListenersIDKey] = reactTopListenersCounter++; + alreadyListeningTo[mountAt[topListenersIDKey]] = {}; + } + return alreadyListeningTo[mountAt[topListenersIDKey]]; +} + +/** + * `ReactBrowserEventEmitter` is used to attach top-level event listeners. For + * example: + * + * EventPluginHub.putListener('myID', 'onClick', myFunction); + * + * This would allocate a "registration" of `('onClick', myFunction)` on 'myID'. + * + * @internal + */ +var ReactBrowserEventEmitter = _assign({}, ReactEventEmitterMixin, { + /** + * Injectable event backend + */ + ReactEventListener: null, + + injection: { + /** + * @param {object} ReactEventListener + */ + injectReactEventListener: function (ReactEventListener) { + ReactEventListener.setHandleTopLevel(ReactBrowserEventEmitter.handleTopLevel); + ReactBrowserEventEmitter.ReactEventListener = ReactEventListener; + } + }, + + /** + * Sets whether or not any created callbacks should be enabled. + * + * @param {boolean} enabled True if callbacks should be enabled. + */ + setEnabled: function (enabled) { + if (ReactBrowserEventEmitter.ReactEventListener) { + ReactBrowserEventEmitter.ReactEventListener.setEnabled(enabled); + } + }, + + /** + * @return {boolean} True if callbacks are enabled. + */ + isEnabled: function () { + return !!(ReactBrowserEventEmitter.ReactEventListener && ReactBrowserEventEmitter.ReactEventListener.isEnabled()); + }, + + /** + * We listen for bubbled touch events on the document object. + * + * Firefox v8.01 (and possibly others) exhibited strange behavior when + * mounting `onmousemove` events at some node that was not the document + * element. The symptoms were that if your mouse is not moving over something + * contained within that mount point (for example on the background) the + * top-level listeners for `onmousemove` won't be called. However, if you + * register the `mousemove` on the document object, then it will of course + * catch all `mousemove`s. This along with iOS quirks, justifies restricting + * top-level listeners to the document object only, at least for these + * movement types of events and possibly all events. + * + * @see http://www.quirksmode.org/blog/archives/2010/09/click_event_del.html + * + * Also, `keyup`/`keypress`/`keydown` do not bubble to the window on IE, but + * they bubble to document. + * + * @param {string} registrationName Name of listener (e.g. `onClick`). + * @param {object} contentDocumentHandle Document which owns the container + */ + listenTo: function (registrationName, contentDocumentHandle) { + var mountAt = contentDocumentHandle; + var isListening = getListeningForDocument(mountAt); + var dependencies = EventPluginRegistry.registrationNameDependencies[registrationName]; + + for (var i = 0; i < dependencies.length; i++) { + var dependency = dependencies[i]; + if (!(isListening.hasOwnProperty(dependency) && isListening[dependency])) { + if (dependency === 'topWheel') { + if (isEventSupported('wheel')) { + ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent('topWheel', 'wheel', mountAt); + } else if (isEventSupported('mousewheel')) { + ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent('topWheel', 'mousewheel', mountAt); + } else { + // Firefox needs to capture a different mouse scroll event. + // @see http://www.quirksmode.org/dom/events/tests/scroll.html + ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent('topWheel', 'DOMMouseScroll', mountAt); + } + } else if (dependency === 'topScroll') { + if (isEventSupported('scroll', true)) { + ReactBrowserEventEmitter.ReactEventListener.trapCapturedEvent('topScroll', 'scroll', mountAt); + } else { + ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent('topScroll', 'scroll', ReactBrowserEventEmitter.ReactEventListener.WINDOW_HANDLE); + } + } else if (dependency === 'topFocus' || dependency === 'topBlur') { + if (isEventSupported('focus', true)) { + ReactBrowserEventEmitter.ReactEventListener.trapCapturedEvent('topFocus', 'focus', mountAt); + ReactBrowserEventEmitter.ReactEventListener.trapCapturedEvent('topBlur', 'blur', mountAt); + } else if (isEventSupported('focusin')) { + // IE has `focusin` and `focusout` events which bubble. + // @see http://www.quirksmode.org/blog/archives/2008/04/delegating_the.html + ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent('topFocus', 'focusin', mountAt); + ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent('topBlur', 'focusout', mountAt); + } + + // to make sure blur and focus event listeners are only attached once + isListening.topBlur = true; + isListening.topFocus = true; + } else if (topEventMapping.hasOwnProperty(dependency)) { + ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent(dependency, topEventMapping[dependency], mountAt); + } + + isListening[dependency] = true; + } + } + }, + + trapBubbledEvent: function (topLevelType, handlerBaseName, handle) { + return ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent(topLevelType, handlerBaseName, handle); + }, + + trapCapturedEvent: function (topLevelType, handlerBaseName, handle) { + return ReactBrowserEventEmitter.ReactEventListener.trapCapturedEvent(topLevelType, handlerBaseName, handle); + }, + + /** + * Protect against document.createEvent() returning null + * Some popup blocker extensions appear to do this: + * https://github.com/facebook/react/issues/6887 + */ + supportsEventPageXY: function () { + if (!document.createEvent) { + return false; + } + var ev = document.createEvent('MouseEvent'); + return ev != null && 'pageX' in ev; + }, + + /** + * Listens to window scroll and resize events. We cache scroll values so that + * application code can access them without triggering reflows. + * + * ViewportMetrics is only used by SyntheticMouse/TouchEvent and only when + * pageX/pageY isn't supported (legacy browsers). + * + * NOTE: Scroll events do not bubble. + * + * @see http://www.quirksmode.org/dom/events/scroll.html + */ + ensureScrollValueMonitoring: function () { + if (hasEventPageXY === undefined) { + hasEventPageXY = ReactBrowserEventEmitter.supportsEventPageXY(); + } + if (!hasEventPageXY && !isMonitoringScrollValue) { + var refresh = ViewportMetrics.refreshScrollValues; + ReactBrowserEventEmitter.ReactEventListener.monitorScrollValue(refresh); + isMonitoringScrollValue = true; + } + } +}); + +module.exports = ReactBrowserEventEmitter; + +/***/ }), +/* 88 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/** + * Copyright (c) 2013-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + */ + + + +var SyntheticUIEvent = __webpack_require__(62); +var ViewportMetrics = __webpack_require__(220); + +var getEventModifierState = __webpack_require__(132); + +/** + * @interface MouseEvent + * @see http://www.w3.org/TR/DOM-Level-3-Events/ + */ +var MouseEventInterface = { + screenX: null, + screenY: null, + clientX: null, + clientY: null, + ctrlKey: null, + shiftKey: null, + altKey: null, + metaKey: null, + getModifierState: getEventModifierState, + button: function (event) { + // Webkit, Firefox, IE9+ + // which: 1 2 3 + // button: 0 1 2 (standard) + var button = event.button; + if ('which' in event) { + return button; + } + // IE<9 + // which: undefined + // button: 0 0 0 + // button: 1 4 2 (onmouseup) + return button === 2 ? 2 : button === 4 ? 1 : 0; + }, + buttons: null, + relatedTarget: function (event) { + return event.relatedTarget || (event.fromElement === event.srcElement ? event.toElement : event.fromElement); + }, + // "Proprietary" Interface. + pageX: function (event) { + return 'pageX' in event ? event.pageX : event.clientX + ViewportMetrics.currentScrollLeft; + }, + pageY: function (event) { + return 'pageY' in event ? event.pageY : event.clientY + ViewportMetrics.currentScrollTop; + } +}; + +/** + * @param {object} dispatchConfig Configuration used to dispatch this event. + * @param {string} dispatchMarker Marker identifying the event target. + * @param {object} nativeEvent Native browser event. + * @extends {SyntheticUIEvent} + */ +function SyntheticMouseEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) { + return SyntheticUIEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget); +} + +SyntheticUIEvent.augmentClass(SyntheticMouseEvent, MouseEventInterface); + +module.exports = SyntheticMouseEvent; + +/***/ }), +/* 89 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) {/** + * Copyright (c) 2013-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + * + */ + + + +var _prodInvariant = __webpack_require__(12); + +var invariant = __webpack_require__(10); + +var OBSERVED_ERROR = {}; + +/** + * `Transaction` creates a black box that is able to wrap any method such that + * certain invariants are maintained before and after the method is invoked + * (Even if an exception is thrown while invoking the wrapped method). Whoever + * instantiates a transaction can provide enforcers of the invariants at + * creation time. The `Transaction` class itself will supply one additional + * automatic invariant for you - the invariant that any transaction instance + * should not be run while it is already being run. You would typically create a + * single instance of a `Transaction` for reuse multiple times, that potentially + * is used to wrap several different methods. Wrappers are extremely simple - + * they only require implementing two methods. + * + *
+ *                       wrappers (injected at creation time)
+ *                                      +        +
+ *                                      |        |
+ *                    +-----------------|--------|--------------+
+ *                    |                 v        |              |
+ *                    |      +---------------+   |              |
+ *                    |   +--|    wrapper1   |---|----+         |
+ *                    |   |  +---------------+   v    |         |
+ *                    |   |          +-------------+  |         |
+ *                    |   |     +----|   wrapper2  |--------+   |
+ *                    |   |     |    +-------------+  |     |   |
+ *                    |   |     |                     |     |   |
+ *                    |   v     v                     v     v   | wrapper
+ *                    | +---+ +---+   +---------+   +---+ +---+ | invariants
+ * perform(anyMethod) | |   | |   |   |         |   |   | |   | | maintained
+ * +----------------->|-|---|-|---|-->|anyMethod|---|---|-|---|-|-------->
+ *                    | |   | |   |   |         |   |   | |   | |
+ *                    | |   | |   |   |         |   |   | |   | |
+ *                    | |   | |   |   |         |   |   | |   | |
+ *                    | +---+ +---+   +---------+   +---+ +---+ |
+ *                    |  initialize                    close    |
+ *                    +-----------------------------------------+
+ * 
+ * + * Use cases: + * - Preserving the input selection ranges before/after reconciliation. + * Restoring selection even in the event of an unexpected error. + * - Deactivating events while rearranging the DOM, preventing blurs/focuses, + * while guaranteeing that afterwards, the event system is reactivated. + * - Flushing a queue of collected DOM mutations to the main UI thread after a + * reconciliation takes place in a worker thread. + * - Invoking any collected `componentDidUpdate` callbacks after rendering new + * content. + * - (Future use case): Wrapping particular flushes of the `ReactWorker` queue + * to preserve the `scrollTop` (an automatic scroll aware DOM). + * - (Future use case): Layout calculations before and after DOM updates. + * + * Transactional plugin API: + * - A module that has an `initialize` method that returns any precomputation. + * - and a `close` method that accepts the precomputation. `close` is invoked + * when the wrapped process is completed, or has failed. + * + * @param {Array} transactionWrapper Wrapper modules + * that implement `initialize` and `close`. + * @return {Transaction} Single transaction for reuse in thread. + * + * @class Transaction + */ +var TransactionImpl = { + /** + * Sets up this instance so that it is prepared for collecting metrics. Does + * so such that this setup method may be used on an instance that is already + * initialized, in a way that does not consume additional memory upon reuse. + * That can be useful if you decide to make your subclass of this mixin a + * "PooledClass". + */ + reinitializeTransaction: function () { + this.transactionWrappers = this.getTransactionWrappers(); + if (this.wrapperInitData) { + this.wrapperInitData.length = 0; + } else { + this.wrapperInitData = []; + } + this._isInTransaction = false; + }, + + _isInTransaction: false, + + /** + * @abstract + * @return {Array} Array of transaction wrappers. + */ + getTransactionWrappers: null, + + isInTransaction: function () { + return !!this._isInTransaction; + }, + + /* eslint-disable space-before-function-paren */ + + /** + * Executes the function within a safety window. Use this for the top level + * methods that result in large amounts of computation/mutations that would + * need to be safety checked. The optional arguments helps prevent the need + * to bind in many cases. + * + * @param {function} method Member of scope to call. + * @param {Object} scope Scope to invoke from. + * @param {Object?=} a Argument to pass to the method. + * @param {Object?=} b Argument to pass to the method. + * @param {Object?=} c Argument to pass to the method. + * @param {Object?=} d Argument to pass to the method. + * @param {Object?=} e Argument to pass to the method. + * @param {Object?=} f Argument to pass to the method. + * + * @return {*} Return value from `method`. + */ + perform: function (method, scope, a, b, c, d, e, f) { + /* eslint-enable space-before-function-paren */ + !!this.isInTransaction() ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Transaction.perform(...): Cannot initialize a transaction when there is already an outstanding transaction.') : _prodInvariant('27') : void 0; + var errorThrown; + var ret; + try { + this._isInTransaction = true; + // Catching errors makes debugging more difficult, so we start with + // errorThrown set to true before setting it to false after calling + // close -- if it's still set to true in the finally block, it means + // one of these calls threw. + errorThrown = true; + this.initializeAll(0); + ret = method.call(scope, a, b, c, d, e, f); + errorThrown = false; + } finally { + try { + if (errorThrown) { + // If `method` throws, prefer to show that stack trace over any thrown + // by invoking `closeAll`. + try { + this.closeAll(0); + } catch (err) {} + } else { + // Since `method` didn't throw, we don't want to silence the exception + // here. + this.closeAll(0); + } + } finally { + this._isInTransaction = false; + } + } + return ret; + }, + + initializeAll: function (startIndex) { + var transactionWrappers = this.transactionWrappers; + for (var i = startIndex; i < transactionWrappers.length; i++) { + var wrapper = transactionWrappers[i]; + try { + // Catching errors makes debugging more difficult, so we start with the + // OBSERVED_ERROR state before overwriting it with the real return value + // of initialize -- if it's still set to OBSERVED_ERROR in the finally + // block, it means wrapper.initialize threw. + this.wrapperInitData[i] = OBSERVED_ERROR; + this.wrapperInitData[i] = wrapper.initialize ? wrapper.initialize.call(this) : null; + } finally { + if (this.wrapperInitData[i] === OBSERVED_ERROR) { + // The initializer for wrapper i threw an error; initialize the + // remaining wrappers but silence any exceptions from them to ensure + // that the first error is the one to bubble up. + try { + this.initializeAll(i + 1); + } catch (err) {} + } + } + } + }, + + /** + * Invokes each of `this.transactionWrappers.close[i]` functions, passing into + * them the respective return values of `this.transactionWrappers.init[i]` + * (`close`rs that correspond to initializers that failed will not be + * invoked). + */ + closeAll: function (startIndex) { + !this.isInTransaction() ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Transaction.closeAll(): Cannot close transaction when none are open.') : _prodInvariant('28') : void 0; + var transactionWrappers = this.transactionWrappers; + for (var i = startIndex; i < transactionWrappers.length; i++) { + var wrapper = transactionWrappers[i]; + var initData = this.wrapperInitData[i]; + var errorThrown; + try { + // Catching errors makes debugging more difficult, so we start with + // errorThrown set to true before setting it to false after calling + // close -- if it's still set to true in the finally block, it means + // wrapper.close threw. + errorThrown = true; + if (initData !== OBSERVED_ERROR && wrapper.close) { + wrapper.close.call(this, initData); + } + errorThrown = false; + } finally { + if (errorThrown) { + // The closer for wrapper i threw an error; close the remaining + // wrappers but silence any exceptions from them to ensure that the + // first error is the one to bubble up. + try { + this.closeAll(i + 1); + } catch (e) {} + } + } + } + this.wrapperInitData.length = 0; + } +}; + +module.exports = TransactionImpl; +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1))) + +/***/ }), +/* 90 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/** + * Copyright (c) 2016-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + * Based on the escape-html library, which is used under the MIT License below: + * + * Copyright (c) 2012-2013 TJ Holowaychuk + * Copyright (c) 2015 Andreas Lubbe + * Copyright (c) 2015 Tiancheng "Timothy" Gu + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * 'Software'), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + */ + + + +// code copied and modified from escape-html +/** + * Module variables. + * @private + */ + +var matchHtmlRegExp = /["'&<>]/; + +/** + * Escape special characters in the given string of html. + * + * @param {string} string The string to escape for inserting into HTML + * @return {string} + * @public + */ + +function escapeHtml(string) { + var str = '' + string; + var match = matchHtmlRegExp.exec(str); + + if (!match) { + return str; + } + + var escape; + var html = ''; + var index = 0; + var lastIndex = 0; + + for (index = match.index; index < str.length; index++) { + switch (str.charCodeAt(index)) { + case 34: + // " + escape = '"'; + break; + case 38: + // & + escape = '&'; + break; + case 39: + // ' + escape = '''; // modified from escape-html; used to be ''' + break; + case 60: + // < + escape = '<'; + break; + case 62: + // > + escape = '>'; + break; + default: + continue; + } + + if (lastIndex !== index) { + html += str.substring(lastIndex, index); + } + + lastIndex = index + 1; + html += escape; + } + + return lastIndex !== index ? html + str.substring(lastIndex, index) : html; +} +// end code copied and modified from escape-html + +/** + * Escapes text to prevent scripting attacks. + * + * @param {*} text Text value to escape. + * @return {string} An escaped string. + */ +function escapeTextContentForBrowser(text) { + if (typeof text === 'boolean' || typeof text === 'number') { + // this shortcircuit helps perf for types that we know will never have + // special characters, especially given that this function is used often + // for numeric dom ids. + return '' + text; + } + return escapeHtml(text); +} + +module.exports = escapeTextContentForBrowser; + +/***/ }), +/* 91 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/** + * Copyright (c) 2013-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + */ + + + +var ExecutionEnvironment = __webpack_require__(17); +var DOMNamespaces = __webpack_require__(123); + +var WHITESPACE_TEST = /^[ \r\n\t\f]/; +var NONVISIBLE_TEST = /<(!--|link|noscript|meta|script|style)[ \r\n\t\f\/>]/; + +var createMicrosoftUnsafeLocalFunction = __webpack_require__(130); + +// SVG temp container for IE lacking innerHTML +var reusableSVGContainer; + +/** + * Set the innerHTML property of a node, ensuring that whitespace is preserved + * even in IE8. + * + * @param {DOMElement} node + * @param {string} html + * @internal + */ +var setInnerHTML = createMicrosoftUnsafeLocalFunction(function (node, html) { + // IE does not have innerHTML for SVG nodes, so instead we inject the + // new markup in a temp node and then move the child nodes across into + // the target node + if (node.namespaceURI === DOMNamespaces.svg && !('innerHTML' in node)) { + reusableSVGContainer = reusableSVGContainer || document.createElement('div'); + reusableSVGContainer.innerHTML = '' + html + ''; + var svgNode = reusableSVGContainer.firstChild; + while (svgNode.firstChild) { + node.appendChild(svgNode.firstChild); + } + } else { + node.innerHTML = html; + } +}); + +if (ExecutionEnvironment.canUseDOM) { + // IE8: When updating a just created node with innerHTML only leading + // whitespace is removed. When updating an existing node with innerHTML + // whitespace in root TextNodes is also collapsed. + // @see quirksmode.org/bugreports/archives/2004/11/innerhtml_and_t.html + + // Feature detection; only IE8 is known to behave improperly like this. + var testElement = document.createElement('div'); + testElement.innerHTML = ' '; + if (testElement.innerHTML === '') { + setInnerHTML = function (node, html) { + // Magic theory: IE8 supposedly differentiates between added and updated + // nodes when processing innerHTML, innerHTML on updated nodes suffers + // from worse whitespace behavior. Re-adding a node like this triggers + // the initial and more favorable whitespace behavior. + // TODO: What to do on a detached node? + if (node.parentNode) { + node.parentNode.replaceChild(node, node); + } + + // We also implement a workaround for non-visible tags disappearing into + // thin air on IE8, this only happens if there is no visible text + // in-front of the non-visible tags. Piggyback on the whitespace fix + // and simply check if any non-visible tags appear in the source. + if (WHITESPACE_TEST.test(html) || html[0] === '<' && NONVISIBLE_TEST.test(html)) { + // Recover leading whitespace by temporarily prepending any character. + // \uFEFF has the potential advantage of being zero-width/invisible. + // UglifyJS drops U+FEFF chars when parsing, so use String.fromCharCode + // in hopes that this is preserved even if "\uFEFF" is transformed to + // the actual Unicode character (by Babel, for example). + // https://github.com/mishoo/UglifyJS2/blob/v2.4.20/lib/parse.js#L216 + node.innerHTML = String.fromCharCode(0xfeff) + html; + + // deleteData leaves an empty `TextNode` which offsets the index of all + // children. Definitely want to avoid this. + var textNode = node.firstChild; + if (textNode.data.length === 1) { + node.removeChild(textNode); + } else { + textNode.deleteData(0, 1); + } + } else { + node.innerHTML = html; + } + }; + } + testElement = null; +} + +module.exports = setInnerHTML; + +/***/ }), +/* 92 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; +exports.default = getContainer; + +var _reactDom = __webpack_require__(18); + +var _reactDom2 = _interopRequireDefault(_reactDom); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function getContainer(container, defaultContainer) { + container = typeof container === 'function' ? container() : container; + return _reactDom2.default.findDOMNode(container) || defaultContainer; +} +module.exports = exports['default']; + +/***/ }), +/* 93 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) {/** + * Copyright (c) 2013-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + * + */ + + + +var canDefineProperty = false; +if (process.env.NODE_ENV !== 'production') { + try { + // $FlowFixMe https://github.com/facebook/flow/issues/285 + Object.defineProperty({}, 'x', { get: function () {} }); + canDefineProperty = true; + } catch (x) { + // IE will fail on defineProperty + } +} + +module.exports = canDefineProperty; +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1))) + +/***/ }), +/* 94 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; + +var _iterator = __webpack_require__(253); + +var _iterator2 = _interopRequireDefault(_iterator); + +var _symbol = __webpack_require__(252); + +var _symbol2 = _interopRequireDefault(_symbol); + +var _typeof = typeof _symbol2.default === "function" && typeof _iterator2.default === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof _symbol2.default === "function" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? "symbol" : typeof obj; }; + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +exports.default = typeof _symbol2.default === "function" && _typeof(_iterator2.default) === "symbol" ? function (obj) { + return typeof obj === "undefined" ? "undefined" : _typeof(obj); +} : function (obj) { + return obj && typeof _symbol2.default === "function" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? "symbol" : typeof obj === "undefined" ? "undefined" : _typeof(obj); +}; + +/***/ }), +/* 95 */ +/***/ (function(module, exports, __webpack_require__) { + +var isObject = __webpack_require__(143); +module.exports = function(it){ + if(!isObject(it))throw TypeError(it + ' is not an object!'); + return it; +}; + +/***/ }), +/* 96 */ +/***/ (function(module, exports) { + +var toString = {}.toString; + +module.exports = function(it){ + return toString.call(it).slice(8, -1); +}; + +/***/ }), +/* 97 */ +/***/ (function(module, exports, __webpack_require__) { + +// optional / simple context binding +var aFunction = __webpack_require__(262); +module.exports = function(fn, that, length){ + aFunction(fn); + if(that === undefined)return fn; + switch(length){ + case 1: return function(a){ + return fn.call(that, a); + }; + case 2: return function(a, b){ + return fn.call(that, a, b); + }; + case 3: return function(a, b, c){ + return fn.call(that, a, b, c); + }; + } + return function(/* ...args */){ + return fn.apply(that, arguments); + }; +}; + +/***/ }), +/* 98 */ +/***/ (function(module, exports) { + +// 7.2.1 RequireObjectCoercible(argument) +module.exports = function(it){ + if(it == undefined)throw TypeError("Can't call method on " + it); + return it; +}; + +/***/ }), +/* 99 */ +/***/ (function(module, exports) { + +module.exports = function(exec){ + try { + return !!exec(); + } catch(e){ + return true; + } +}; + +/***/ }), +/* 100 */ +/***/ (function(module, exports) { + +var hasOwnProperty = {}.hasOwnProperty; +module.exports = function(it, key){ + return hasOwnProperty.call(it, key); +}; + +/***/ }), +/* 101 */ +/***/ (function(module, exports, __webpack_require__) { + +var $ = __webpack_require__(22) + , createDesc = __webpack_require__(102); +module.exports = __webpack_require__(141) ? function(object, key, value){ + return $.setDesc(object, key, createDesc(1, value)); +} : function(object, key, value){ + object[key] = value; + return object; +}; + +/***/ }), +/* 102 */ +/***/ (function(module, exports) { + +module.exports = function(bitmap, value){ + return { + enumerable : !(bitmap & 1), + configurable: !(bitmap & 2), + writable : !(bitmap & 4), + value : value + }; +}; + +/***/ }), +/* 103 */ +/***/ (function(module, exports, __webpack_require__) { + +var def = __webpack_require__(22).setDesc + , has = __webpack_require__(100) + , TAG = __webpack_require__(30)('toStringTag'); + +module.exports = function(it, tag, stat){ + if(it && !has(it = stat ? it : it.prototype, TAG))def(it, TAG, {configurable: true, value: tag}); +}; + +/***/ }), +/* 104 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _inDOM = __webpack_require__(35); + +var _inDOM2 = _interopRequireDefault(_inDOM); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var off = function off() {}; +if (_inDOM2.default) { + off = function () { + if (document.addEventListener) return function (node, eventName, handler, capture) { + return node.removeEventListener(eventName, handler, capture || false); + };else if (document.attachEvent) return function (node, eventName, handler) { + return node.detachEvent('on' + eventName, handler); + }; + }(); +} + +exports.default = off; +module.exports = exports['default']; + +/***/ }), +/* 105 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/** + * Copyright (c) 2013-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + * @typechecks + * + */ + +/*eslint-disable no-self-compare */ + + + +var hasOwnProperty = Object.prototype.hasOwnProperty; + +/** + * inlined Object.is polyfill to avoid requiring consumers ship their own + * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is + */ +function is(x, y) { + // SameValue algorithm + if (x === y) { + // Steps 1-5, 7-10 + // Steps 6.b-6.e: +0 != -0 + // Added the nonzero y check to make Flow happy, but it is redundant + return x !== 0 || y !== 0 || 1 / x === 1 / y; + } else { + // Step 6.a: NaN == NaN + return x !== x && y !== y; + } +} + +/** + * Performs equality by iterating through keys on an object and returning false + * when any key has values which are not strictly equal between the arguments. + * Returns true when the values of all keys are strictly equal. + */ +function shallowEqual(objA, objB) { + if (is(objA, objB)) { + return true; + } + + if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) { + return false; + } + + var keysA = Object.keys(objA); + var keysB = Object.keys(objB); + + if (keysA.length !== keysB.length) { + return false; + } + + // Test for A's keys different from B. + for (var i = 0; i < keysA.length; i++) { + if (!hasOwnProperty.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) { + return false; + } + } + + return true; +} + +module.exports = shallowEqual; + +/***/ }), +/* 106 */ +/***/ (function(module, exports) { + +// Source: http://jsfiddle.net/vWx8V/ +// http://stackoverflow.com/questions/5603195/full-list-of-javascript-keycodes + +/** + * Conenience method returns corresponding value for given keyName or keyCode. + * + * @param {Mixed} keyCode {Number} or keyName {String} + * @return {Mixed} + * @api public + */ + +exports = module.exports = function(searchInput) { + // Keyboard Events + if (searchInput && 'object' === typeof searchInput) { + var hasKeyCode = searchInput.which || searchInput.keyCode || searchInput.charCode + if (hasKeyCode) searchInput = hasKeyCode + } + + // Numbers + if ('number' === typeof searchInput) return names[searchInput] + + // Everything else (cast to string) + var search = String(searchInput) + + // check codes + var foundNamedKey = codes[search.toLowerCase()] + if (foundNamedKey) return foundNamedKey + + // check aliases + var foundNamedKey = aliases[search.toLowerCase()] + if (foundNamedKey) return foundNamedKey + + // weird character? + if (search.length === 1) return search.charCodeAt(0) + + return undefined +} + +/** + * Get by name + * + * exports.code['enter'] // => 13 + */ + +var codes = exports.code = exports.codes = { + 'backspace': 8, + 'tab': 9, + 'enter': 13, + 'shift': 16, + 'ctrl': 17, + 'alt': 18, + 'pause/break': 19, + 'caps lock': 20, + 'esc': 27, + 'space': 32, + 'page up': 33, + 'page down': 34, + 'end': 35, + 'home': 36, + 'left': 37, + 'up': 38, + 'right': 39, + 'down': 40, + 'insert': 45, + 'delete': 46, + 'command': 91, + 'left command': 91, + 'right command': 93, + 'numpad *': 106, + 'numpad +': 107, + 'numpad -': 109, + 'numpad .': 110, + 'numpad /': 111, + 'num lock': 144, + 'scroll lock': 145, + 'my computer': 182, + 'my calculator': 183, + ';': 186, + '=': 187, + ',': 188, + '-': 189, + '.': 190, + '/': 191, + '`': 192, + '[': 219, + '\\': 220, + ']': 221, + "'": 222 +} + +// Helper aliases + +var aliases = exports.aliases = { + 'windows': 91, + '⇧': 16, + '⌥': 18, + '⌃': 17, + '⌘': 91, + 'ctl': 17, + 'control': 17, + 'option': 18, + 'pause': 19, + 'break': 19, + 'caps': 20, + 'return': 13, + 'escape': 27, + 'spc': 32, + 'pgup': 33, + 'pgdn': 34, + 'ins': 45, + 'del': 46, + 'cmd': 91 +} + + +/*! + * Programatically add the following + */ + +// lower case chars +for (i = 97; i < 123; i++) codes[String.fromCharCode(i)] = i - 32 + +// numbers +for (var i = 48; i < 58; i++) codes[i - 48] = i + +// function keys +for (i = 1; i < 13; i++) codes['f'+i] = i + 111 + +// numpad keys +for (i = 0; i < 10; i++) codes['numpad '+i] = i + 96 + +/** + * Get by code + * + * exports.name[13] // => 'Enter' + */ + +var names = exports.names = exports.title = {} // title for backward compat + +// Create reverse mapping +for (i in codes) names[codes[i]] = i + +// Add aliases +for (var alias in aliases) { + codes[alias] = aliases[alias] +} + + +/***/ }), +/* 107 */ +/***/ (function(module, exports, __webpack_require__) { + +var getNative = __webpack_require__(38), + root = __webpack_require__(31); + +/* Built-in method references that are verified to be native. */ +var Map = getNative(root, 'Map'); + +module.exports = Map; + + +/***/ }), +/* 108 */ +/***/ (function(module, exports, __webpack_require__) { + +var mapCacheClear = __webpack_require__(381), + mapCacheDelete = __webpack_require__(382), + mapCacheGet = __webpack_require__(383), + mapCacheHas = __webpack_require__(384), + mapCacheSet = __webpack_require__(385); + +/** + * Creates a map cache object to store key-value pairs. + * + * @private + * @constructor + * @param {Array} [entries] The key-value pairs to cache. + */ +function MapCache(entries) { + var index = -1, + length = entries == null ? 0 : entries.length; + + this.clear(); + while (++index < length) { + var entry = entries[index]; + this.set(entry[0], entry[1]); + } +} + +// Add methods to `MapCache`. +MapCache.prototype.clear = mapCacheClear; +MapCache.prototype['delete'] = mapCacheDelete; +MapCache.prototype.get = mapCacheGet; +MapCache.prototype.has = mapCacheHas; +MapCache.prototype.set = mapCacheSet; + +module.exports = MapCache; + + +/***/ }), +/* 109 */ +/***/ (function(module, exports) { + +/** Used as references for various `Number` constants. */ +var MAX_SAFE_INTEGER = 9007199254740991; + +/** Used to detect unsigned integer values. */ +var reIsUint = /^(?:0|[1-9]\d*)$/; + +/** + * Checks if `value` is a valid array-like index. + * + * @private + * @param {*} value The value to check. + * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index. + * @returns {boolean} Returns `true` if `value` is a valid index, else `false`. + */ +function isIndex(value, length) { + length = length == null ? MAX_SAFE_INTEGER : length; + return !!length && + (typeof value == 'number' || reIsUint.test(value)) && + (value > -1 && value % 1 == 0 && value < length); +} + +module.exports = isIndex; + + +/***/ }), +/* 110 */ +/***/ (function(module, exports, __webpack_require__) { + +var isArray = __webpack_require__(32), + isSymbol = __webpack_require__(76); + +/** Used to match property names within property paths. */ +var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/, + reIsPlainProp = /^\w*$/; + +/** + * Checks if `value` is a property name and not a property path. + * + * @private + * @param {*} value The value to check. + * @param {Object} [object] The object to query keys on. + * @returns {boolean} Returns `true` if `value` is a property name, else `false`. + */ +function isKey(value, object) { + if (isArray(value)) { + return false; + } + var type = typeof value; + if (type == 'number' || type == 'symbol' || type == 'boolean' || + value == null || isSymbol(value)) { + return true; + } + return reIsPlainProp.test(value) || !reIsDeepProp.test(value) || + (object != null && value in Object(object)); +} + +module.exports = isKey; + + +/***/ }), +/* 111 */ +/***/ (function(module, exports) { + +/** + * This method returns the first argument it receives. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Util + * @param {*} value Any value. + * @returns {*} Returns `value`. + * @example + * + * var object = { 'a': 1 }; + * + * console.log(_.identity(object) === object); + * // => true + */ +function identity(value) { + return value; +} + +module.exports = identity; + + +/***/ }), +/* 112 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseIsArguments = __webpack_require__(340), + isObjectLike = __webpack_require__(46); + +/** Used for built-in method references. */ +var objectProto = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** Built-in value references. */ +var propertyIsEnumerable = objectProto.propertyIsEnumerable; + +/** + * Checks if `value` is likely an `arguments` object. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an `arguments` object, + * else `false`. + * @example + * + * _.isArguments(function() { return arguments; }()); + * // => true + * + * _.isArguments([1, 2, 3]); + * // => false + */ +var isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) { + return isObjectLike(value) && hasOwnProperty.call(value, 'callee') && + !propertyIsEnumerable.call(value, 'callee'); +}; + +module.exports = isArguments; + + +/***/ }), +/* 113 */ +/***/ (function(module, exports) { + +/** Used as references for various `Number` constants. */ +var MAX_SAFE_INTEGER = 9007199254740991; + +/** + * Checks if `value` is a valid array-like length. + * + * **Note:** This method is loosely based on + * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a valid length, else `false`. + * @example + * + * _.isLength(3); + * // => true + * + * _.isLength(Number.MIN_VALUE); + * // => false + * + * _.isLength(Infinity); + * // => false + * + * _.isLength('3'); + * // => false + */ +function isLength(value) { + return typeof value == 'number' && + value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER; +} + +module.exports = isLength; + + +/***/ }), +/* 114 */ +/***/ (function(module, exports, __webpack_require__) { + +/* WEBPACK VAR INJECTION */(function(global, module) {var __WEBPACK_AMD_DEFINE_RESULT__;/** + * @license + * Lodash + * Copyright JS Foundation and other contributors + * Released under MIT license + * Based on Underscore.js 1.8.3 + * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + */ +;(function() { + + /** Used as a safe reference for `undefined` in pre-ES5 environments. */ + var undefined; + + /** Used as the semantic version number. */ + var VERSION = '4.17.4'; + + /** Used as the size to enable large array optimizations. */ + var LARGE_ARRAY_SIZE = 200; + + /** Error message constants. */ + var CORE_ERROR_TEXT = 'Unsupported core-js use. Try https://npms.io/search?q=ponyfill.', + FUNC_ERROR_TEXT = 'Expected a function'; + + /** Used to stand-in for `undefined` hash values. */ + var HASH_UNDEFINED = '__lodash_hash_undefined__'; + + /** Used as the maximum memoize cache size. */ + var MAX_MEMOIZE_SIZE = 500; + + /** Used as the internal argument placeholder. */ + var PLACEHOLDER = '__lodash_placeholder__'; + + /** Used to compose bitmasks for cloning. */ + var CLONE_DEEP_FLAG = 1, + CLONE_FLAT_FLAG = 2, + CLONE_SYMBOLS_FLAG = 4; + + /** Used to compose bitmasks for value comparisons. */ + var COMPARE_PARTIAL_FLAG = 1, + COMPARE_UNORDERED_FLAG = 2; + + /** Used to compose bitmasks for function metadata. */ + var WRAP_BIND_FLAG = 1, + WRAP_BIND_KEY_FLAG = 2, + WRAP_CURRY_BOUND_FLAG = 4, + WRAP_CURRY_FLAG = 8, + WRAP_CURRY_RIGHT_FLAG = 16, + WRAP_PARTIAL_FLAG = 32, + WRAP_PARTIAL_RIGHT_FLAG = 64, + WRAP_ARY_FLAG = 128, + WRAP_REARG_FLAG = 256, + WRAP_FLIP_FLAG = 512; + + /** Used as default options for `_.truncate`. */ + var DEFAULT_TRUNC_LENGTH = 30, + DEFAULT_TRUNC_OMISSION = '...'; + + /** Used to detect hot functions by number of calls within a span of milliseconds. */ + var HOT_COUNT = 800, + HOT_SPAN = 16; + + /** Used to indicate the type of lazy iteratees. */ + var LAZY_FILTER_FLAG = 1, + LAZY_MAP_FLAG = 2, + LAZY_WHILE_FLAG = 3; + + /** Used as references for various `Number` constants. */ + var INFINITY = 1 / 0, + MAX_SAFE_INTEGER = 9007199254740991, + MAX_INTEGER = 1.7976931348623157e+308, + NAN = 0 / 0; + + /** Used as references for the maximum length and index of an array. */ + var MAX_ARRAY_LENGTH = 4294967295, + MAX_ARRAY_INDEX = MAX_ARRAY_LENGTH - 1, + HALF_MAX_ARRAY_LENGTH = MAX_ARRAY_LENGTH >>> 1; + + /** Used to associate wrap methods with their bit flags. */ + var wrapFlags = [ + ['ary', WRAP_ARY_FLAG], + ['bind', WRAP_BIND_FLAG], + ['bindKey', WRAP_BIND_KEY_FLAG], + ['curry', WRAP_CURRY_FLAG], + ['curryRight', WRAP_CURRY_RIGHT_FLAG], + ['flip', WRAP_FLIP_FLAG], + ['partial', WRAP_PARTIAL_FLAG], + ['partialRight', WRAP_PARTIAL_RIGHT_FLAG], + ['rearg', WRAP_REARG_FLAG] + ]; + + /** `Object#toString` result references. */ + var argsTag = '[object Arguments]', + arrayTag = '[object Array]', + asyncTag = '[object AsyncFunction]', + boolTag = '[object Boolean]', + dateTag = '[object Date]', + domExcTag = '[object DOMException]', + errorTag = '[object Error]', + funcTag = '[object Function]', + genTag = '[object GeneratorFunction]', + mapTag = '[object Map]', + numberTag = '[object Number]', + nullTag = '[object Null]', + objectTag = '[object Object]', + promiseTag = '[object Promise]', + proxyTag = '[object Proxy]', + regexpTag = '[object RegExp]', + setTag = '[object Set]', + stringTag = '[object String]', + symbolTag = '[object Symbol]', + undefinedTag = '[object Undefined]', + weakMapTag = '[object WeakMap]', + weakSetTag = '[object WeakSet]'; + + var arrayBufferTag = '[object ArrayBuffer]', + dataViewTag = '[object DataView]', + float32Tag = '[object Float32Array]', + float64Tag = '[object Float64Array]', + int8Tag = '[object Int8Array]', + int16Tag = '[object Int16Array]', + int32Tag = '[object Int32Array]', + uint8Tag = '[object Uint8Array]', + uint8ClampedTag = '[object Uint8ClampedArray]', + uint16Tag = '[object Uint16Array]', + uint32Tag = '[object Uint32Array]'; + + /** Used to match empty string literals in compiled template source. */ + var reEmptyStringLeading = /\b__p \+= '';/g, + reEmptyStringMiddle = /\b(__p \+=) '' \+/g, + reEmptyStringTrailing = /(__e\(.*?\)|\b__t\)) \+\n'';/g; + + /** Used to match HTML entities and HTML characters. */ + var reEscapedHtml = /&(?:amp|lt|gt|quot|#39);/g, + reUnescapedHtml = /[&<>"']/g, + reHasEscapedHtml = RegExp(reEscapedHtml.source), + reHasUnescapedHtml = RegExp(reUnescapedHtml.source); + + /** Used to match template delimiters. */ + var reEscape = /<%-([\s\S]+?)%>/g, + reEvaluate = /<%([\s\S]+?)%>/g, + reInterpolate = /<%=([\s\S]+?)%>/g; + + /** Used to match property names within property paths. */ + var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/, + reIsPlainProp = /^\w*$/, + reLeadingDot = /^\./, + rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g; + + /** + * Used to match `RegExp` + * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns). + */ + var reRegExpChar = /[\\^$.*+?()[\]{}|]/g, + reHasRegExpChar = RegExp(reRegExpChar.source); + + /** Used to match leading and trailing whitespace. */ + var reTrim = /^\s+|\s+$/g, + reTrimStart = /^\s+/, + reTrimEnd = /\s+$/; + + /** Used to match wrap detail comments. */ + var reWrapComment = /\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/, + reWrapDetails = /\{\n\/\* \[wrapped with (.+)\] \*/, + reSplitDetails = /,? & /; + + /** Used to match words composed of alphanumeric characters. */ + var reAsciiWord = /[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g; + + /** Used to match backslashes in property paths. */ + var reEscapeChar = /\\(\\)?/g; + + /** + * Used to match + * [ES template delimiters](http://ecma-international.org/ecma-262/7.0/#sec-template-literal-lexical-components). + */ + var reEsTemplate = /\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g; + + /** Used to match `RegExp` flags from their coerced string values. */ + var reFlags = /\w*$/; + + /** Used to detect bad signed hexadecimal string values. */ + var reIsBadHex = /^[-+]0x[0-9a-f]+$/i; + + /** Used to detect binary string values. */ + var reIsBinary = /^0b[01]+$/i; + + /** Used to detect host constructors (Safari). */ + var reIsHostCtor = /^\[object .+?Constructor\]$/; + + /** Used to detect octal string values. */ + var reIsOctal = /^0o[0-7]+$/i; + + /** Used to detect unsigned integer values. */ + var reIsUint = /^(?:0|[1-9]\d*)$/; + + /** Used to match Latin Unicode letters (excluding mathematical operators). */ + var reLatin = /[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g; + + /** Used to ensure capturing order of template delimiters. */ + var reNoMatch = /($^)/; + + /** Used to match unescaped characters in compiled string literals. */ + var reUnescapedString = /['\n\r\u2028\u2029\\]/g; + + /** Used to compose unicode character classes. */ + var rsAstralRange = '\\ud800-\\udfff', + rsComboMarksRange = '\\u0300-\\u036f', + reComboHalfMarksRange = '\\ufe20-\\ufe2f', + rsComboSymbolsRange = '\\u20d0-\\u20ff', + rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange, + rsDingbatRange = '\\u2700-\\u27bf', + rsLowerRange = 'a-z\\xdf-\\xf6\\xf8-\\xff', + rsMathOpRange = '\\xac\\xb1\\xd7\\xf7', + rsNonCharRange = '\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf', + rsPunctuationRange = '\\u2000-\\u206f', + rsSpaceRange = ' \\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', + rsUpperRange = 'A-Z\\xc0-\\xd6\\xd8-\\xde', + rsVarRange = '\\ufe0e\\ufe0f', + rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange; + + /** Used to compose unicode capture groups. */ + var rsApos = "['\u2019]", + rsAstral = '[' + rsAstralRange + ']', + rsBreak = '[' + rsBreakRange + ']', + rsCombo = '[' + rsComboRange + ']', + rsDigits = '\\d+', + rsDingbat = '[' + rsDingbatRange + ']', + rsLower = '[' + rsLowerRange + ']', + rsMisc = '[^' + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + ']', + rsFitz = '\\ud83c[\\udffb-\\udfff]', + rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')', + rsNonAstral = '[^' + rsAstralRange + ']', + rsRegional = '(?:\\ud83c[\\udde6-\\uddff]){2}', + rsSurrPair = '[\\ud800-\\udbff][\\udc00-\\udfff]', + rsUpper = '[' + rsUpperRange + ']', + rsZWJ = '\\u200d'; + + /** Used to compose unicode regexes. */ + var rsMiscLower = '(?:' + rsLower + '|' + rsMisc + ')', + rsMiscUpper = '(?:' + rsUpper + '|' + rsMisc + ')', + rsOptContrLower = '(?:' + rsApos + '(?:d|ll|m|re|s|t|ve))?', + rsOptContrUpper = '(?:' + rsApos + '(?:D|LL|M|RE|S|T|VE))?', + reOptMod = rsModifier + '?', + rsOptVar = '[' + rsVarRange + ']?', + rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*', + rsOrdLower = '\\d*(?:(?:1st|2nd|3rd|(?![123])\\dth)\\b)', + rsOrdUpper = '\\d*(?:(?:1ST|2ND|3RD|(?![123])\\dTH)\\b)', + rsSeq = rsOptVar + reOptMod + rsOptJoin, + rsEmoji = '(?:' + [rsDingbat, rsRegional, rsSurrPair].join('|') + ')' + rsSeq, + rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')'; + + /** Used to match apostrophes. */ + var reApos = RegExp(rsApos, 'g'); + + /** + * Used to match [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks) and + * [combining diacritical marks for symbols](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks_for_Symbols). + */ + var reComboMark = RegExp(rsCombo, 'g'); + + /** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */ + var reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g'); + + /** Used to match complex or compound words. */ + var reUnicodeWord = RegExp([ + rsUpper + '?' + rsLower + '+' + rsOptContrLower + '(?=' + [rsBreak, rsUpper, '$'].join('|') + ')', + rsMiscUpper + '+' + rsOptContrUpper + '(?=' + [rsBreak, rsUpper + rsMiscLower, '$'].join('|') + ')', + rsUpper + '?' + rsMiscLower + '+' + rsOptContrLower, + rsUpper + '+' + rsOptContrUpper, + rsOrdUpper, + rsOrdLower, + rsDigits, + rsEmoji + ].join('|'), 'g'); + + /** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */ + var reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + ']'); + + /** Used to detect strings that need a more robust regexp to match words. */ + var reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2,}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/; + + /** Used to assign default `context` object properties. */ + var contextProps = [ + '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' + ]; + + /** Used to make template sourceURLs easier to identify. */ + var templateCounter = -1; + + /** Used to identify `toStringTag` values of typed arrays. */ + var typedArrayTags = {}; + typedArrayTags[float32Tag] = typedArrayTags[float64Tag] = + typedArrayTags[int8Tag] = typedArrayTags[int16Tag] = + typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] = + typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] = + typedArrayTags[uint32Tag] = true; + typedArrayTags[argsTag] = typedArrayTags[arrayTag] = + typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] = + typedArrayTags[dataViewTag] = typedArrayTags[dateTag] = + typedArrayTags[errorTag] = typedArrayTags[funcTag] = + typedArrayTags[mapTag] = typedArrayTags[numberTag] = + typedArrayTags[objectTag] = typedArrayTags[regexpTag] = + typedArrayTags[setTag] = typedArrayTags[stringTag] = + typedArrayTags[weakMapTag] = false; + + /** Used to identify `toStringTag` values supported by `_.clone`. */ + var cloneableTags = {}; + cloneableTags[argsTag] = cloneableTags[arrayTag] = + cloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] = + cloneableTags[boolTag] = cloneableTags[dateTag] = + cloneableTags[float32Tag] = cloneableTags[float64Tag] = + cloneableTags[int8Tag] = cloneableTags[int16Tag] = + cloneableTags[int32Tag] = cloneableTags[mapTag] = + cloneableTags[numberTag] = cloneableTags[objectTag] = + cloneableTags[regexpTag] = cloneableTags[setTag] = + cloneableTags[stringTag] = cloneableTags[symbolTag] = + cloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] = + cloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true; + cloneableTags[errorTag] = cloneableTags[funcTag] = + cloneableTags[weakMapTag] = false; + + /** Used to map Latin Unicode letters to basic Latin letters. */ + var deburredLetters = { + // Latin-1 Supplement block. + '\xc0': 'A', '\xc1': 'A', '\xc2': 'A', '\xc3': 'A', '\xc4': 'A', '\xc5': 'A', + '\xe0': 'a', '\xe1': 'a', '\xe2': 'a', '\xe3': 'a', '\xe4': 'a', '\xe5': 'a', + '\xc7': 'C', '\xe7': 'c', + '\xd0': 'D', '\xf0': 'd', + '\xc8': 'E', '\xc9': 'E', '\xca': 'E', '\xcb': 'E', + '\xe8': 'e', '\xe9': 'e', '\xea': 'e', '\xeb': 'e', + '\xcc': 'I', '\xcd': 'I', '\xce': 'I', '\xcf': 'I', + '\xec': 'i', '\xed': 'i', '\xee': 'i', '\xef': 'i', + '\xd1': 'N', '\xf1': 'n', + '\xd2': 'O', '\xd3': 'O', '\xd4': 'O', '\xd5': 'O', '\xd6': 'O', '\xd8': 'O', + '\xf2': 'o', '\xf3': 'o', '\xf4': 'o', '\xf5': 'o', '\xf6': 'o', '\xf8': 'o', + '\xd9': 'U', '\xda': 'U', '\xdb': 'U', '\xdc': 'U', + '\xf9': 'u', '\xfa': 'u', '\xfb': 'u', '\xfc': 'u', + '\xdd': 'Y', '\xfd': 'y', '\xff': 'y', + '\xc6': 'Ae', '\xe6': 'ae', + '\xde': 'Th', '\xfe': 'th', + '\xdf': 'ss', + // Latin Extended-A block. + '\u0100': 'A', '\u0102': 'A', '\u0104': 'A', + '\u0101': 'a', '\u0103': 'a', '\u0105': 'a', + '\u0106': 'C', '\u0108': 'C', '\u010a': 'C', '\u010c': 'C', + '\u0107': 'c', '\u0109': 'c', '\u010b': 'c', '\u010d': 'c', + '\u010e': 'D', '\u0110': 'D', '\u010f': 'd', '\u0111': 'd', + '\u0112': 'E', '\u0114': 'E', '\u0116': 'E', '\u0118': 'E', '\u011a': 'E', + '\u0113': 'e', '\u0115': 'e', '\u0117': 'e', '\u0119': 'e', '\u011b': 'e', + '\u011c': 'G', '\u011e': 'G', '\u0120': 'G', '\u0122': 'G', + '\u011d': 'g', '\u011f': 'g', '\u0121': 'g', '\u0123': 'g', + '\u0124': 'H', '\u0126': 'H', '\u0125': 'h', '\u0127': 'h', + '\u0128': 'I', '\u012a': 'I', '\u012c': 'I', '\u012e': 'I', '\u0130': 'I', + '\u0129': 'i', '\u012b': 'i', '\u012d': 'i', '\u012f': 'i', '\u0131': 'i', + '\u0134': 'J', '\u0135': 'j', + '\u0136': 'K', '\u0137': 'k', '\u0138': 'k', + '\u0139': 'L', '\u013b': 'L', '\u013d': 'L', '\u013f': 'L', '\u0141': 'L', + '\u013a': 'l', '\u013c': 'l', '\u013e': 'l', '\u0140': 'l', '\u0142': 'l', + '\u0143': 'N', '\u0145': 'N', '\u0147': 'N', '\u014a': 'N', + '\u0144': 'n', '\u0146': 'n', '\u0148': 'n', '\u014b': 'n', + '\u014c': 'O', '\u014e': 'O', '\u0150': 'O', + '\u014d': 'o', '\u014f': 'o', '\u0151': 'o', + '\u0154': 'R', '\u0156': 'R', '\u0158': 'R', + '\u0155': 'r', '\u0157': 'r', '\u0159': 'r', + '\u015a': 'S', '\u015c': 'S', '\u015e': 'S', '\u0160': 'S', + '\u015b': 's', '\u015d': 's', '\u015f': 's', '\u0161': 's', + '\u0162': 'T', '\u0164': 'T', '\u0166': 'T', + '\u0163': 't', '\u0165': 't', '\u0167': 't', + '\u0168': 'U', '\u016a': 'U', '\u016c': 'U', '\u016e': 'U', '\u0170': 'U', '\u0172': 'U', + '\u0169': 'u', '\u016b': 'u', '\u016d': 'u', '\u016f': 'u', '\u0171': 'u', '\u0173': 'u', + '\u0174': 'W', '\u0175': 'w', + '\u0176': 'Y', '\u0177': 'y', '\u0178': 'Y', + '\u0179': 'Z', '\u017b': 'Z', '\u017d': 'Z', + '\u017a': 'z', '\u017c': 'z', '\u017e': 'z', + '\u0132': 'IJ', '\u0133': 'ij', + '\u0152': 'Oe', '\u0153': 'oe', + '\u0149': "'n", '\u017f': 's' + }; + + /** Used to map characters to HTML entities. */ + var htmlEscapes = { + '&': '&', + '<': '<', + '>': '>', + '"': '"', + "'": ''' + }; + + /** Used to map HTML entities to characters. */ + var htmlUnescapes = { + '&': '&', + '<': '<', + '>': '>', + '"': '"', + ''': "'" + }; + + /** Used to escape characters for inclusion in compiled string literals. */ + var stringEscapes = { + '\\': '\\', + "'": "'", + '\n': 'n', + '\r': 'r', + '\u2028': 'u2028', + '\u2029': 'u2029' + }; + + /** Built-in method references without a dependency on `root`. */ + var freeParseFloat = parseFloat, + freeParseInt = parseInt; + + /** Detect free variable `global` from Node.js. */ + var freeGlobal = typeof global == 'object' && global && global.Object === Object && global; + + /** Detect free variable `self`. */ + var freeSelf = typeof self == 'object' && self && self.Object === Object && self; + + /** Used as a reference to the global object. */ + var root = freeGlobal || freeSelf || Function('return this')(); + + /** Detect free variable `exports`. */ + var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports; + + /** Detect free variable `module`. */ + var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module; + + /** Detect the popular CommonJS extension `module.exports`. */ + var moduleExports = freeModule && freeModule.exports === freeExports; + + /** Detect free variable `process` from Node.js. */ + var freeProcess = moduleExports && freeGlobal.process; + + /** Used to access faster Node.js helpers. */ + var nodeUtil = (function() { + try { + return freeProcess && freeProcess.binding && freeProcess.binding('util'); + } catch (e) {} + }()); + + /* Node.js helper references. */ + var nodeIsArrayBuffer = nodeUtil && nodeUtil.isArrayBuffer, + nodeIsDate = nodeUtil && nodeUtil.isDate, + nodeIsMap = nodeUtil && nodeUtil.isMap, + nodeIsRegExp = nodeUtil && nodeUtil.isRegExp, + nodeIsSet = nodeUtil && nodeUtil.isSet, + nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray; + + /*--------------------------------------------------------------------------*/ + + /** + * Adds the key-value `pair` to `map`. + * + * @private + * @param {Object} map The map to modify. + * @param {Array} pair The key-value pair to add. + * @returns {Object} Returns `map`. + */ + function addMapEntry(map, pair) { + // Don't return `map.set` because it's not chainable in IE 11. + map.set(pair[0], pair[1]); + return map; + } + + /** + * Adds `value` to `set`. + * + * @private + * @param {Object} set The set to modify. + * @param {*} value The value to add. + * @returns {Object} Returns `set`. + */ + function addSetEntry(set, value) { + // Don't return `set.add` because it's not chainable in IE 11. + set.add(value); + return set; + } + + /** + * A faster alternative to `Function#apply`, this function invokes `func` + * with the `this` binding of `thisArg` and the arguments of `args`. + * + * @private + * @param {Function} func The function to invoke. + * @param {*} thisArg The `this` binding of `func`. + * @param {Array} args The arguments to invoke `func` with. + * @returns {*} Returns the result of `func`. + */ + function apply(func, thisArg, args) { + switch (args.length) { + case 0: return func.call(thisArg); + case 1: return func.call(thisArg, args[0]); + case 2: return func.call(thisArg, args[0], args[1]); + case 3: return func.call(thisArg, args[0], args[1], args[2]); + } + return func.apply(thisArg, args); + } + + /** + * A specialized version of `baseAggregator` for arrays. + * + * @private + * @param {Array} [array] The array to iterate over. + * @param {Function} setter The function to set `accumulator` values. + * @param {Function} iteratee The iteratee to transform keys. + * @param {Object} accumulator The initial aggregated object. + * @returns {Function} Returns `accumulator`. + */ + function arrayAggregator(array, setter, iteratee, accumulator) { + var index = -1, + length = array == null ? 0 : array.length; + + while (++index < length) { + var value = array[index]; + setter(accumulator, value, iteratee(value), array); + } + return accumulator; + } + + /** + * A specialized version of `_.forEach` for arrays without support for + * iteratee shorthands. + * + * @private + * @param {Array} [array] The array to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Array} Returns `array`. + */ + function arrayEach(array, iteratee) { + var index = -1, + length = array == null ? 0 : array.length; + + while (++index < length) { + if (iteratee(array[index], index, array) === false) { + break; + } + } + return array; + } + + /** + * A specialized version of `_.forEachRight` for arrays without support for + * iteratee shorthands. + * + * @private + * @param {Array} [array] The array to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Array} Returns `array`. + */ + function arrayEachRight(array, iteratee) { + var length = array == null ? 0 : array.length; + + while (length--) { + if (iteratee(array[length], length, array) === false) { + break; + } + } + return array; + } + + /** + * A specialized version of `_.every` for arrays without support for + * iteratee shorthands. + * + * @private + * @param {Array} [array] The array to iterate over. + * @param {Function} predicate The function invoked per iteration. + * @returns {boolean} Returns `true` if all elements pass the predicate check, + * else `false`. + */ + function arrayEvery(array, predicate) { + var index = -1, + length = array == null ? 0 : array.length; + + while (++index < length) { + if (!predicate(array[index], index, array)) { + return false; + } + } + return true; + } + + /** + * A specialized version of `_.filter` for arrays without support for + * iteratee shorthands. + * + * @private + * @param {Array} [array] The array to iterate over. + * @param {Function} predicate The function invoked per iteration. + * @returns {Array} Returns the new filtered array. + */ + function arrayFilter(array, predicate) { + var index = -1, + length = array == null ? 0 : array.length, + resIndex = 0, + result = []; + + while (++index < length) { + var value = array[index]; + if (predicate(value, index, array)) { + result[resIndex++] = value; + } + } + return result; + } + + /** + * A specialized version of `_.includes` for arrays without support for + * specifying an index to search from. + * + * @private + * @param {Array} [array] The array to inspect. + * @param {*} target The value to search for. + * @returns {boolean} Returns `true` if `target` is found, else `false`. + */ + function arrayIncludes(array, value) { + var length = array == null ? 0 : array.length; + return !!length && baseIndexOf(array, value, 0) > -1; + } + + /** + * This function is like `arrayIncludes` except that it accepts a comparator. + * + * @private + * @param {Array} [array] The array to inspect. + * @param {*} target The value to search for. + * @param {Function} comparator The comparator invoked per element. + * @returns {boolean} Returns `true` if `target` is found, else `false`. + */ + function arrayIncludesWith(array, value, comparator) { + var index = -1, + length = array == null ? 0 : array.length; + + while (++index < length) { + if (comparator(value, array[index])) { + return true; + } + } + return false; + } + + /** + * A specialized version of `_.map` for arrays without support for iteratee + * shorthands. + * + * @private + * @param {Array} [array] The array to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Array} Returns the new mapped array. + */ + function arrayMap(array, iteratee) { + var index = -1, + length = array == null ? 0 : array.length, + result = Array(length); + + while (++index < length) { + result[index] = iteratee(array[index], index, array); + } + return result; + } + + /** + * Appends the elements of `values` to `array`. + * + * @private + * @param {Array} array The array to modify. + * @param {Array} values The values to append. + * @returns {Array} Returns `array`. + */ + function arrayPush(array, values) { + var index = -1, + length = values.length, + offset = array.length; + + while (++index < length) { + array[offset + index] = values[index]; + } + return array; + } + + /** + * A specialized version of `_.reduce` for arrays without support for + * iteratee shorthands. + * + * @private + * @param {Array} [array] The array to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @param {*} [accumulator] The initial value. + * @param {boolean} [initAccum] Specify using the first element of `array` as + * the initial value. + * @returns {*} Returns the accumulated value. + */ + function arrayReduce(array, iteratee, accumulator, initAccum) { + var index = -1, + length = array == null ? 0 : array.length; + + if (initAccum && length) { + accumulator = array[++index]; + } + while (++index < length) { + accumulator = iteratee(accumulator, array[index], index, array); + } + return accumulator; + } + + /** + * A specialized version of `_.reduceRight` for arrays without support for + * iteratee shorthands. + * + * @private + * @param {Array} [array] The array to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @param {*} [accumulator] The initial value. + * @param {boolean} [initAccum] Specify using the last element of `array` as + * the initial value. + * @returns {*} Returns the accumulated value. + */ + function arrayReduceRight(array, iteratee, accumulator, initAccum) { + var length = array == null ? 0 : array.length; + if (initAccum && length) { + accumulator = array[--length]; + } + while (length--) { + accumulator = iteratee(accumulator, array[length], length, array); + } + return accumulator; + } + + /** + * A specialized version of `_.some` for arrays without support for iteratee + * shorthands. + * + * @private + * @param {Array} [array] The array to iterate over. + * @param {Function} predicate The function invoked per iteration. + * @returns {boolean} Returns `true` if any element passes the predicate check, + * else `false`. + */ + function arraySome(array, predicate) { + var index = -1, + length = array == null ? 0 : array.length; + + while (++index < length) { + if (predicate(array[index], index, array)) { + return true; + } + } + return false; + } + + /** + * Gets the size of an ASCII `string`. + * + * @private + * @param {string} string The string inspect. + * @returns {number} Returns the string size. + */ + var asciiSize = baseProperty('length'); + + /** + * Converts an ASCII `string` to an array. + * + * @private + * @param {string} string The string to convert. + * @returns {Array} Returns the converted array. + */ + function asciiToArray(string) { + return string.split(''); + } + + /** + * Splits an ASCII `string` into an array of its words. + * + * @private + * @param {string} The string to inspect. + * @returns {Array} Returns the words of `string`. + */ + function asciiWords(string) { + return string.match(reAsciiWord) || []; + } + + /** + * The base implementation of methods like `_.findKey` and `_.findLastKey`, + * without support for iteratee shorthands, which iterates over `collection` + * using `eachFunc`. + * + * @private + * @param {Array|Object} collection The collection to inspect. + * @param {Function} predicate The function invoked per iteration. + * @param {Function} eachFunc The function to iterate over `collection`. + * @returns {*} Returns the found element or its key, else `undefined`. + */ + function baseFindKey(collection, predicate, eachFunc) { + var result; + eachFunc(collection, function(value, key, collection) { + if (predicate(value, key, collection)) { + result = key; + return false; + } + }); + return result; + } + + /** + * The base implementation of `_.findIndex` and `_.findLastIndex` without + * support for iteratee shorthands. + * + * @private + * @param {Array} array The array to inspect. + * @param {Function} predicate The function invoked per iteration. + * @param {number} fromIndex The index to search from. + * @param {boolean} [fromRight] Specify iterating from right to left. + * @returns {number} Returns the index of the matched value, else `-1`. + */ + function baseFindIndex(array, predicate, fromIndex, fromRight) { + var length = array.length, + index = fromIndex + (fromRight ? 1 : -1); + + while ((fromRight ? index-- : ++index < length)) { + if (predicate(array[index], index, array)) { + return index; + } + } + return -1; + } + + /** + * The base implementation of `_.indexOf` without `fromIndex` bounds checks. + * + * @private + * @param {Array} array The array to inspect. + * @param {*} value The value to search for. + * @param {number} fromIndex The index to search from. + * @returns {number} Returns the index of the matched value, else `-1`. + */ + function baseIndexOf(array, value, fromIndex) { + return value === value + ? strictIndexOf(array, value, fromIndex) + : baseFindIndex(array, baseIsNaN, fromIndex); + } + + /** + * This function is like `baseIndexOf` except that it accepts a comparator. + * + * @private + * @param {Array} array The array to inspect. + * @param {*} value The value to search for. + * @param {number} fromIndex The index to search from. + * @param {Function} comparator The comparator invoked per element. + * @returns {number} Returns the index of the matched value, else `-1`. + */ + function baseIndexOfWith(array, value, fromIndex, comparator) { + var index = fromIndex - 1, + length = array.length; + + while (++index < length) { + if (comparator(array[index], value)) { + return index; + } + } + return -1; + } + + /** + * The base implementation of `_.isNaN` without support for number objects. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`. + */ + function baseIsNaN(value) { + return value !== value; + } + + /** + * The base implementation of `_.mean` and `_.meanBy` without support for + * iteratee shorthands. + * + * @private + * @param {Array} array The array to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {number} Returns the mean. + */ + function baseMean(array, iteratee) { + var length = array == null ? 0 : array.length; + return length ? (baseSum(array, iteratee) / length) : NAN; + } + + /** + * The base implementation of `_.property` without support for deep paths. + * + * @private + * @param {string} key The key of the property to get. + * @returns {Function} Returns the new accessor function. + */ + function baseProperty(key) { + return function(object) { + return object == null ? undefined : object[key]; + }; + } + + /** + * The base implementation of `_.propertyOf` without support for deep paths. + * + * @private + * @param {Object} object The object to query. + * @returns {Function} Returns the new accessor function. + */ + function basePropertyOf(object) { + return function(key) { + return object == null ? undefined : object[key]; + }; + } + + /** + * The base implementation of `_.reduce` and `_.reduceRight`, without support + * for iteratee shorthands, which iterates over `collection` using `eachFunc`. + * + * @private + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @param {*} accumulator The initial value. + * @param {boolean} initAccum Specify using the first or last element of + * `collection` as the initial value. + * @param {Function} eachFunc The function to iterate over `collection`. + * @returns {*} Returns the accumulated value. + */ + function baseReduce(collection, iteratee, accumulator, initAccum, eachFunc) { + eachFunc(collection, function(value, index, collection) { + accumulator = initAccum + ? (initAccum = false, value) + : iteratee(accumulator, value, index, collection); + }); + return accumulator; + } + + /** + * The base implementation of `_.sortBy` which uses `comparer` to define the + * sort order of `array` and replaces criteria objects with their corresponding + * values. + * + * @private + * @param {Array} array The array to sort. + * @param {Function} comparer The function to define sort order. + * @returns {Array} Returns `array`. + */ + function baseSortBy(array, comparer) { + var length = array.length; + + array.sort(comparer); + while (length--) { + array[length] = array[length].value; + } + return array; + } + + /** + * The base implementation of `_.sum` and `_.sumBy` without support for + * iteratee shorthands. + * + * @private + * @param {Array} array The array to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {number} Returns the sum. + */ + function baseSum(array, iteratee) { + var result, + index = -1, + length = array.length; + + while (++index < length) { + var current = iteratee(array[index]); + if (current !== undefined) { + result = result === undefined ? current : (result + current); + } + } + return result; + } + + /** + * The base implementation of `_.times` without support for iteratee shorthands + * or max array length checks. + * + * @private + * @param {number} n The number of times to invoke `iteratee`. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Array} Returns the array of results. + */ + function baseTimes(n, iteratee) { + var index = -1, + result = Array(n); + + while (++index < n) { + result[index] = iteratee(index); + } + return result; + } + + /** + * The base implementation of `_.toPairs` and `_.toPairsIn` which creates an array + * of key-value pairs for `object` corresponding to the property names of `props`. + * + * @private + * @param {Object} object The object to query. + * @param {Array} props The property names to get values for. + * @returns {Object} Returns the key-value pairs. + */ + function baseToPairs(object, props) { + return arrayMap(props, function(key) { + return [key, object[key]]; + }); + } + + /** + * The base implementation of `_.unary` without support for storing metadata. + * + * @private + * @param {Function} func The function to cap arguments for. + * @returns {Function} Returns the new capped function. + */ + function baseUnary(func) { + return function(value) { + return func(value); + }; + } + + /** + * The base implementation of `_.values` and `_.valuesIn` which creates an + * array of `object` property values corresponding to the property names + * of `props`. + * + * @private + * @param {Object} object The object to query. + * @param {Array} props The property names to get values for. + * @returns {Object} Returns the array of property values. + */ + function baseValues(object, props) { + return arrayMap(props, function(key) { + return object[key]; + }); + } + + /** + * Checks if a `cache` value for `key` exists. + * + * @private + * @param {Object} cache The cache to query. + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + */ + function cacheHas(cache, key) { + return cache.has(key); + } + + /** + * Used by `_.trim` and `_.trimStart` to get the index of the first string symbol + * that is not found in the character symbols. + * + * @private + * @param {Array} strSymbols The string symbols to inspect. + * @param {Array} chrSymbols The character symbols to find. + * @returns {number} Returns the index of the first unmatched string symbol. + */ + function charsStartIndex(strSymbols, chrSymbols) { + var index = -1, + length = strSymbols.length; + + while (++index < length && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) {} + return index; + } + + /** + * Used by `_.trim` and `_.trimEnd` to get the index of the last string symbol + * that is not found in the character symbols. + * + * @private + * @param {Array} strSymbols The string symbols to inspect. + * @param {Array} chrSymbols The character symbols to find. + * @returns {number} Returns the index of the last unmatched string symbol. + */ + function charsEndIndex(strSymbols, chrSymbols) { + var index = strSymbols.length; + + while (index-- && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) {} + return index; + } + + /** + * Gets the number of `placeholder` occurrences in `array`. + * + * @private + * @param {Array} array The array to inspect. + * @param {*} placeholder The placeholder to search for. + * @returns {number} Returns the placeholder count. + */ + function countHolders(array, placeholder) { + var length = array.length, + result = 0; + + while (length--) { + if (array[length] === placeholder) { + ++result; + } + } + return result; + } + + /** + * Used by `_.deburr` to convert Latin-1 Supplement and Latin Extended-A + * letters to basic Latin letters. + * + * @private + * @param {string} letter The matched letter to deburr. + * @returns {string} Returns the deburred letter. + */ + var deburrLetter = basePropertyOf(deburredLetters); + + /** + * Used by `_.escape` to convert characters to HTML entities. + * + * @private + * @param {string} chr The matched character to escape. + * @returns {string} Returns the escaped character. + */ + var escapeHtmlChar = basePropertyOf(htmlEscapes); + + /** + * Used by `_.template` to escape characters for inclusion in compiled string literals. + * + * @private + * @param {string} chr The matched character to escape. + * @returns {string} Returns the escaped character. + */ + function escapeStringChar(chr) { + return '\\' + stringEscapes[chr]; + } + + /** + * Gets the value at `key` of `object`. + * + * @private + * @param {Object} [object] The object to query. + * @param {string} key The key of the property to get. + * @returns {*} Returns the property value. + */ + function getValue(object, key) { + return object == null ? undefined : object[key]; + } + + /** + * Checks if `string` contains Unicode symbols. + * + * @private + * @param {string} string The string to inspect. + * @returns {boolean} Returns `true` if a symbol is found, else `false`. + */ + function hasUnicode(string) { + return reHasUnicode.test(string); + } + + /** + * Checks if `string` contains a word composed of Unicode symbols. + * + * @private + * @param {string} string The string to inspect. + * @returns {boolean} Returns `true` if a word is found, else `false`. + */ + function hasUnicodeWord(string) { + return reHasUnicodeWord.test(string); + } + + /** + * Converts `iterator` to an array. + * + * @private + * @param {Object} iterator The iterator to convert. + * @returns {Array} Returns the converted array. + */ + function iteratorToArray(iterator) { + var data, + result = []; + + while (!(data = iterator.next()).done) { + result.push(data.value); + } + return result; + } + + /** + * Converts `map` to its key-value pairs. + * + * @private + * @param {Object} map The map to convert. + * @returns {Array} Returns the key-value pairs. + */ + function mapToArray(map) { + var index = -1, + result = Array(map.size); + + map.forEach(function(value, key) { + result[++index] = [key, value]; + }); + return result; + } + + /** + * Creates a unary function that invokes `func` with its argument transformed. + * + * @private + * @param {Function} func The function to wrap. + * @param {Function} transform The argument transform. + * @returns {Function} Returns the new function. + */ + function overArg(func, transform) { + return function(arg) { + return func(transform(arg)); + }; + } + + /** + * Replaces all `placeholder` elements in `array` with an internal placeholder + * and returns an array of their indexes. + * + * @private + * @param {Array} array The array to modify. + * @param {*} placeholder The placeholder to replace. + * @returns {Array} Returns the new array of placeholder indexes. + */ + function replaceHolders(array, placeholder) { + var index = -1, + length = array.length, + resIndex = 0, + result = []; + + while (++index < length) { + var value = array[index]; + if (value === placeholder || value === PLACEHOLDER) { + array[index] = PLACEHOLDER; + result[resIndex++] = index; + } + } + return result; + } + + /** + * Converts `set` to an array of its values. + * + * @private + * @param {Object} set The set to convert. + * @returns {Array} Returns the values. + */ + function setToArray(set) { + var index = -1, + result = Array(set.size); + + set.forEach(function(value) { + result[++index] = value; + }); + return result; + } + + /** + * Converts `set` to its value-value pairs. + * + * @private + * @param {Object} set The set to convert. + * @returns {Array} Returns the value-value pairs. + */ + function setToPairs(set) { + var index = -1, + result = Array(set.size); + + set.forEach(function(value) { + result[++index] = [value, value]; + }); + return result; + } + + /** + * A specialized version of `_.indexOf` which performs strict equality + * comparisons of values, i.e. `===`. + * + * @private + * @param {Array} array The array to inspect. + * @param {*} value The value to search for. + * @param {number} fromIndex The index to search from. + * @returns {number} Returns the index of the matched value, else `-1`. + */ + function strictIndexOf(array, value, fromIndex) { + var index = fromIndex - 1, + length = array.length; + + while (++index < length) { + if (array[index] === value) { + return index; + } + } + return -1; + } + + /** + * A specialized version of `_.lastIndexOf` which performs strict equality + * comparisons of values, i.e. `===`. + * + * @private + * @param {Array} array The array to inspect. + * @param {*} value The value to search for. + * @param {number} fromIndex The index to search from. + * @returns {number} Returns the index of the matched value, else `-1`. + */ + function strictLastIndexOf(array, value, fromIndex) { + var index = fromIndex + 1; + while (index--) { + if (array[index] === value) { + return index; + } + } + return index; + } + + /** + * Gets the number of symbols in `string`. + * + * @private + * @param {string} string The string to inspect. + * @returns {number} Returns the string size. + */ + function stringSize(string) { + return hasUnicode(string) + ? unicodeSize(string) + : asciiSize(string); + } + + /** + * Converts `string` to an array. + * + * @private + * @param {string} string The string to convert. + * @returns {Array} Returns the converted array. + */ + function stringToArray(string) { + return hasUnicode(string) + ? unicodeToArray(string) + : asciiToArray(string); + } + + /** + * Used by `_.unescape` to convert HTML entities to characters. + * + * @private + * @param {string} chr The matched character to unescape. + * @returns {string} Returns the unescaped character. + */ + var unescapeHtmlChar = basePropertyOf(htmlUnescapes); + + /** + * Gets the size of a Unicode `string`. + * + * @private + * @param {string} string The string inspect. + * @returns {number} Returns the string size. + */ + function unicodeSize(string) { + var result = reUnicode.lastIndex = 0; + while (reUnicode.test(string)) { + ++result; + } + return result; + } + + /** + * Converts a Unicode `string` to an array. + * + * @private + * @param {string} string The string to convert. + * @returns {Array} Returns the converted array. + */ + function unicodeToArray(string) { + return string.match(reUnicode) || []; + } + + /** + * Splits a Unicode `string` into an array of its words. + * + * @private + * @param {string} The string to inspect. + * @returns {Array} Returns the words of `string`. + */ + function unicodeWords(string) { + return string.match(reUnicodeWord) || []; + } + + /*--------------------------------------------------------------------------*/ + + /** + * Create a new pristine `lodash` function using the `context` object. + * + * @static + * @memberOf _ + * @since 1.1.0 + * @category Util + * @param {Object} [context=root] The context object. + * @returns {Function} Returns a new `lodash` function. + * @example + * + * _.mixin({ 'foo': _.constant('foo') }); + * + * var lodash = _.runInContext(); + * lodash.mixin({ 'bar': lodash.constant('bar') }); + * + * _.isFunction(_.foo); + * // => true + * _.isFunction(_.bar); + * // => false + * + * lodash.isFunction(lodash.foo); + * // => false + * lodash.isFunction(lodash.bar); + * // => true + * + * // Create a suped-up `defer` in Node.js. + * var defer = _.runInContext({ 'setTimeout': setImmediate }).defer; + */ + var runInContext = (function runInContext(context) { + context = context == null ? root : _.defaults(root.Object(), context, _.pick(root, contextProps)); + + /** Built-in constructor references. */ + var Array = context.Array, + Date = context.Date, + Error = context.Error, + Function = context.Function, + Math = context.Math, + Object = context.Object, + RegExp = context.RegExp, + String = context.String, + TypeError = context.TypeError; + + /** Used for built-in method references. */ + var arrayProto = Array.prototype, + funcProto = Function.prototype, + objectProto = Object.prototype; + + /** Used to detect overreaching core-js shims. */ + var coreJsData = context['__core-js_shared__']; + + /** Used to resolve the decompiled source of functions. */ + var funcToString = funcProto.toString; + + /** Used to check objects for own properties. */ + var hasOwnProperty = objectProto.hasOwnProperty; + + /** Used to generate unique IDs. */ + var idCounter = 0; + + /** Used to detect methods masquerading as native. */ + var maskSrcKey = (function() { + var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || ''); + return uid ? ('Symbol(src)_1.' + uid) : ''; + }()); + + /** + * Used to resolve the + * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) + * of values. + */ + var nativeObjectToString = objectProto.toString; + + /** Used to infer the `Object` constructor. */ + var objectCtorString = funcToString.call(Object); + + /** Used to restore the original `_` reference in `_.noConflict`. */ + var oldDash = root._; + + /** Used to detect if a method is native. */ + var reIsNative = RegExp('^' + + funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\$&') + .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$' + ); + + /** Built-in value references. */ + var Buffer = moduleExports ? context.Buffer : undefined, + Symbol = context.Symbol, + Uint8Array = context.Uint8Array, + allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined, + getPrototype = overArg(Object.getPrototypeOf, Object), + objectCreate = Object.create, + propertyIsEnumerable = objectProto.propertyIsEnumerable, + splice = arrayProto.splice, + spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined, + symIterator = Symbol ? Symbol.iterator : undefined, + symToStringTag = Symbol ? Symbol.toStringTag : undefined; + + var defineProperty = (function() { + try { + var func = getNative(Object, 'defineProperty'); + func({}, '', {}); + return func; + } catch (e) {} + }()); + + /** Mocked built-ins. */ + var ctxClearTimeout = context.clearTimeout !== root.clearTimeout && context.clearTimeout, + ctxNow = Date && Date.now !== root.Date.now && Date.now, + ctxSetTimeout = context.setTimeout !== root.setTimeout && context.setTimeout; + + /* Built-in method references for those with the same name as other `lodash` methods. */ + var nativeCeil = Math.ceil, + nativeFloor = Math.floor, + nativeGetSymbols = Object.getOwnPropertySymbols, + nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined, + nativeIsFinite = context.isFinite, + nativeJoin = arrayProto.join, + nativeKeys = overArg(Object.keys, Object), + nativeMax = Math.max, + nativeMin = Math.min, + nativeNow = Date.now, + nativeParseInt = context.parseInt, + nativeRandom = Math.random, + nativeReverse = arrayProto.reverse; + + /* Built-in method references that are verified to be native. */ + var DataView = getNative(context, 'DataView'), + Map = getNative(context, 'Map'), + Promise = getNative(context, 'Promise'), + Set = getNative(context, 'Set'), + WeakMap = getNative(context, 'WeakMap'), + nativeCreate = getNative(Object, 'create'); + + /** Used to store function metadata. */ + var metaMap = WeakMap && new WeakMap; + + /** Used to lookup unminified function names. */ + var realNames = {}; + + /** Used to detect maps, sets, and weakmaps. */ + var dataViewCtorString = toSource(DataView), + mapCtorString = toSource(Map), + promiseCtorString = toSource(Promise), + setCtorString = toSource(Set), + weakMapCtorString = toSource(WeakMap); + + /** Used to convert symbols to primitives and strings. */ + var symbolProto = Symbol ? Symbol.prototype : undefined, + symbolValueOf = symbolProto ? symbolProto.valueOf : undefined, + symbolToString = symbolProto ? symbolProto.toString : undefined; + + /*------------------------------------------------------------------------*/ + + /** + * Creates a `lodash` object which wraps `value` to enable implicit method + * chain sequences. Methods that operate on and return arrays, collections, + * and functions can be chained together. Methods that retrieve a single value + * or may return a primitive value will automatically end the chain sequence + * and return the unwrapped value. Otherwise, the value must be unwrapped + * with `_#value`. + * + * Explicit chain sequences, which must be unwrapped with `_#value`, may be + * enabled using `_.chain`. + * + * The execution of chained methods is lazy, that is, it's deferred until + * `_#value` is implicitly or explicitly called. + * + * Lazy evaluation allows several methods to support shortcut fusion. + * Shortcut fusion is an optimization to merge iteratee calls; this avoids + * the creation of intermediate arrays and can greatly reduce the number of + * iteratee executions. Sections of a chain sequence qualify for shortcut + * fusion if the section is applied to an array and iteratees accept only + * one argument. The heuristic for whether a section qualifies for shortcut + * fusion is subject to change. + * + * Chaining is supported in custom builds as long as the `_#value` method is + * directly or indirectly included in the build. + * + * In addition to lodash methods, wrappers have `Array` and `String` methods. + * + * The wrapper `Array` methods are: + * `concat`, `join`, `pop`, `push`, `shift`, `sort`, `splice`, and `unshift` + * + * The wrapper `String` methods are: + * `replace` and `split` + * + * The wrapper methods that support shortcut fusion are: + * `at`, `compact`, `drop`, `dropRight`, `dropWhile`, `filter`, `find`, + * `findLast`, `head`, `initial`, `last`, `map`, `reject`, `reverse`, `slice`, + * `tail`, `take`, `takeRight`, `takeRightWhile`, `takeWhile`, and `toArray` + * + * The chainable wrapper methods are: + * `after`, `ary`, `assign`, `assignIn`, `assignInWith`, `assignWith`, `at`, + * `before`, `bind`, `bindAll`, `bindKey`, `castArray`, `chain`, `chunk`, + * `commit`, `compact`, `concat`, `conforms`, `constant`, `countBy`, `create`, + * `curry`, `debounce`, `defaults`, `defaultsDeep`, `defer`, `delay`, + * `difference`, `differenceBy`, `differenceWith`, `drop`, `dropRight`, + * `dropRightWhile`, `dropWhile`, `extend`, `extendWith`, `fill`, `filter`, + * `flatMap`, `flatMapDeep`, `flatMapDepth`, `flatten`, `flattenDeep`, + * `flattenDepth`, `flip`, `flow`, `flowRight`, `fromPairs`, `functions`, + * `functionsIn`, `groupBy`, `initial`, `intersection`, `intersectionBy`, + * `intersectionWith`, `invert`, `invertBy`, `invokeMap`, `iteratee`, `keyBy`, + * `keys`, `keysIn`, `map`, `mapKeys`, `mapValues`, `matches`, `matchesProperty`, + * `memoize`, `merge`, `mergeWith`, `method`, `methodOf`, `mixin`, `negate`, + * `nthArg`, `omit`, `omitBy`, `once`, `orderBy`, `over`, `overArgs`, + * `overEvery`, `overSome`, `partial`, `partialRight`, `partition`, `pick`, + * `pickBy`, `plant`, `property`, `propertyOf`, `pull`, `pullAll`, `pullAllBy`, + * `pullAllWith`, `pullAt`, `push`, `range`, `rangeRight`, `rearg`, `reject`, + * `remove`, `rest`, `reverse`, `sampleSize`, `set`, `setWith`, `shuffle`, + * `slice`, `sort`, `sortBy`, `splice`, `spread`, `tail`, `take`, `takeRight`, + * `takeRightWhile`, `takeWhile`, `tap`, `throttle`, `thru`, `toArray`, + * `toPairs`, `toPairsIn`, `toPath`, `toPlainObject`, `transform`, `unary`, + * `union`, `unionBy`, `unionWith`, `uniq`, `uniqBy`, `uniqWith`, `unset`, + * `unshift`, `unzip`, `unzipWith`, `update`, `updateWith`, `values`, + * `valuesIn`, `without`, `wrap`, `xor`, `xorBy`, `xorWith`, `zip`, + * `zipObject`, `zipObjectDeep`, and `zipWith` + * + * The wrapper methods that are **not** chainable by default are: + * `add`, `attempt`, `camelCase`, `capitalize`, `ceil`, `clamp`, `clone`, + * `cloneDeep`, `cloneDeepWith`, `cloneWith`, `conformsTo`, `deburr`, + * `defaultTo`, `divide`, `each`, `eachRight`, `endsWith`, `eq`, `escape`, + * `escapeRegExp`, `every`, `find`, `findIndex`, `findKey`, `findLast`, + * `findLastIndex`, `findLastKey`, `first`, `floor`, `forEach`, `forEachRight`, + * `forIn`, `forInRight`, `forOwn`, `forOwnRight`, `get`, `gt`, `gte`, `has`, + * `hasIn`, `head`, `identity`, `includes`, `indexOf`, `inRange`, `invoke`, + * `isArguments`, `isArray`, `isArrayBuffer`, `isArrayLike`, `isArrayLikeObject`, + * `isBoolean`, `isBuffer`, `isDate`, `isElement`, `isEmpty`, `isEqual`, + * `isEqualWith`, `isError`, `isFinite`, `isFunction`, `isInteger`, `isLength`, + * `isMap`, `isMatch`, `isMatchWith`, `isNaN`, `isNative`, `isNil`, `isNull`, + * `isNumber`, `isObject`, `isObjectLike`, `isPlainObject`, `isRegExp`, + * `isSafeInteger`, `isSet`, `isString`, `isUndefined`, `isTypedArray`, + * `isWeakMap`, `isWeakSet`, `join`, `kebabCase`, `last`, `lastIndexOf`, + * `lowerCase`, `lowerFirst`, `lt`, `lte`, `max`, `maxBy`, `mean`, `meanBy`, + * `min`, `minBy`, `multiply`, `noConflict`, `noop`, `now`, `nth`, `pad`, + * `padEnd`, `padStart`, `parseInt`, `pop`, `random`, `reduce`, `reduceRight`, + * `repeat`, `result`, `round`, `runInContext`, `sample`, `shift`, `size`, + * `snakeCase`, `some`, `sortedIndex`, `sortedIndexBy`, `sortedLastIndex`, + * `sortedLastIndexBy`, `startCase`, `startsWith`, `stubArray`, `stubFalse`, + * `stubObject`, `stubString`, `stubTrue`, `subtract`, `sum`, `sumBy`, + * `template`, `times`, `toFinite`, `toInteger`, `toJSON`, `toLength`, + * `toLower`, `toNumber`, `toSafeInteger`, `toString`, `toUpper`, `trim`, + * `trimEnd`, `trimStart`, `truncate`, `unescape`, `uniqueId`, `upperCase`, + * `upperFirst`, `value`, and `words` + * + * @name _ + * @constructor + * @category Seq + * @param {*} value The value to wrap in a `lodash` instance. + * @returns {Object} Returns the new `lodash` wrapper instance. + * @example + * + * function square(n) { + * return n * n; + * } + * + * var wrapped = _([1, 2, 3]); + * + * // Returns an unwrapped value. + * wrapped.reduce(_.add); + * // => 6 + * + * // Returns a wrapped value. + * var squares = wrapped.map(square); + * + * _.isArray(squares); + * // => false + * + * _.isArray(squares.value()); + * // => true + */ + function lodash(value) { + if (isObjectLike(value) && !isArray(value) && !(value instanceof LazyWrapper)) { + if (value instanceof LodashWrapper) { + return value; + } + if (hasOwnProperty.call(value, '__wrapped__')) { + return wrapperClone(value); + } + } + return new LodashWrapper(value); + } + + /** + * The base implementation of `_.create` without support for assigning + * properties to the created object. + * + * @private + * @param {Object} proto The object to inherit from. + * @returns {Object} Returns the new object. + */ + var baseCreate = (function() { + function object() {} + return function(proto) { + if (!isObject(proto)) { + return {}; + } + if (objectCreate) { + return objectCreate(proto); + } + object.prototype = proto; + var result = new object; + object.prototype = undefined; + return result; + }; + }()); + + /** + * The function whose prototype chain sequence wrappers inherit from. + * + * @private + */ + function baseLodash() { + // No operation performed. + } + + /** + * The base constructor for creating `lodash` wrapper objects. + * + * @private + * @param {*} value The value to wrap. + * @param {boolean} [chainAll] Enable explicit method chain sequences. + */ + function LodashWrapper(value, chainAll) { + this.__wrapped__ = value; + this.__actions__ = []; + this.__chain__ = !!chainAll; + this.__index__ = 0; + this.__values__ = undefined; + } + + /** + * By default, the template delimiters used by lodash are like those in + * embedded Ruby (ERB) as well as ES2015 template strings. Change the + * following template settings to use alternative delimiters. + * + * @static + * @memberOf _ + * @type {Object} + */ + lodash.templateSettings = { + + /** + * Used to detect `data` property values to be HTML-escaped. + * + * @memberOf _.templateSettings + * @type {RegExp} + */ + 'escape': reEscape, + + /** + * Used to detect code to be evaluated. + * + * @memberOf _.templateSettings + * @type {RegExp} + */ + 'evaluate': reEvaluate, + + /** + * Used to detect `data` property values to inject. + * + * @memberOf _.templateSettings + * @type {RegExp} + */ + 'interpolate': reInterpolate, + + /** + * Used to reference the data object in the template text. + * + * @memberOf _.templateSettings + * @type {string} + */ + 'variable': '', + + /** + * Used to import variables into the compiled template. + * + * @memberOf _.templateSettings + * @type {Object} + */ + 'imports': { + + /** + * A reference to the `lodash` function. + * + * @memberOf _.templateSettings.imports + * @type {Function} + */ + '_': lodash + } + }; + + // Ensure wrappers are instances of `baseLodash`. + lodash.prototype = baseLodash.prototype; + lodash.prototype.constructor = lodash; + + LodashWrapper.prototype = baseCreate(baseLodash.prototype); + LodashWrapper.prototype.constructor = LodashWrapper; + + /*------------------------------------------------------------------------*/ + + /** + * Creates a lazy wrapper object which wraps `value` to enable lazy evaluation. + * + * @private + * @constructor + * @param {*} value The value to wrap. + */ + function LazyWrapper(value) { + this.__wrapped__ = value; + this.__actions__ = []; + this.__dir__ = 1; + this.__filtered__ = false; + this.__iteratees__ = []; + this.__takeCount__ = MAX_ARRAY_LENGTH; + this.__views__ = []; + } + + /** + * Creates a clone of the lazy wrapper object. + * + * @private + * @name clone + * @memberOf LazyWrapper + * @returns {Object} Returns the cloned `LazyWrapper` object. + */ + function lazyClone() { + var result = new LazyWrapper(this.__wrapped__); + result.__actions__ = copyArray(this.__actions__); + result.__dir__ = this.__dir__; + result.__filtered__ = this.__filtered__; + result.__iteratees__ = copyArray(this.__iteratees__); + result.__takeCount__ = this.__takeCount__; + result.__views__ = copyArray(this.__views__); + return result; + } + + /** + * Reverses the direction of lazy iteration. + * + * @private + * @name reverse + * @memberOf LazyWrapper + * @returns {Object} Returns the new reversed `LazyWrapper` object. + */ + function lazyReverse() { + if (this.__filtered__) { + var result = new LazyWrapper(this); + result.__dir__ = -1; + result.__filtered__ = true; + } else { + result = this.clone(); + result.__dir__ *= -1; + } + return result; + } + + /** + * Extracts the unwrapped value from its lazy wrapper. + * + * @private + * @name value + * @memberOf LazyWrapper + * @returns {*} Returns the unwrapped value. + */ + function lazyValue() { + var array = this.__wrapped__.value(), + dir = this.__dir__, + isArr = isArray(array), + isRight = dir < 0, + arrLength = isArr ? array.length : 0, + view = getView(0, arrLength, this.__views__), + start = view.start, + end = view.end, + length = end - start, + index = isRight ? end : (start - 1), + iteratees = this.__iteratees__, + iterLength = iteratees.length, + resIndex = 0, + takeCount = nativeMin(length, this.__takeCount__); + + if (!isArr || (!isRight && arrLength == length && takeCount == length)) { + return baseWrapperValue(array, this.__actions__); + } + var result = []; + + outer: + while (length-- && resIndex < takeCount) { + index += dir; + + var iterIndex = -1, + value = array[index]; + + while (++iterIndex < iterLength) { + var data = iteratees[iterIndex], + iteratee = data.iteratee, + type = data.type, + computed = iteratee(value); + + if (type == LAZY_MAP_FLAG) { + value = computed; + } else if (!computed) { + if (type == LAZY_FILTER_FLAG) { + continue outer; + } else { + break outer; + } + } + } + result[resIndex++] = value; + } + return result; + } + + // Ensure `LazyWrapper` is an instance of `baseLodash`. + LazyWrapper.prototype = baseCreate(baseLodash.prototype); + LazyWrapper.prototype.constructor = LazyWrapper; + + /*------------------------------------------------------------------------*/ + + /** + * Creates a hash object. + * + * @private + * @constructor + * @param {Array} [entries] The key-value pairs to cache. + */ + function Hash(entries) { + var index = -1, + length = entries == null ? 0 : entries.length; + + this.clear(); + while (++index < length) { + var entry = entries[index]; + this.set(entry[0], entry[1]); + } + } + + /** + * Removes all key-value entries from the hash. + * + * @private + * @name clear + * @memberOf Hash + */ + function hashClear() { + this.__data__ = nativeCreate ? nativeCreate(null) : {}; + this.size = 0; + } + + /** + * Removes `key` and its value from the hash. + * + * @private + * @name delete + * @memberOf Hash + * @param {Object} hash The hash to modify. + * @param {string} key The key of the value to remove. + * @returns {boolean} Returns `true` if the entry was removed, else `false`. + */ + function hashDelete(key) { + var result = this.has(key) && delete this.__data__[key]; + this.size -= result ? 1 : 0; + return result; + } + + /** + * Gets the hash value for `key`. + * + * @private + * @name get + * @memberOf Hash + * @param {string} key The key of the value to get. + * @returns {*} Returns the entry value. + */ + function hashGet(key) { + var data = this.__data__; + if (nativeCreate) { + var result = data[key]; + return result === HASH_UNDEFINED ? undefined : result; + } + return hasOwnProperty.call(data, key) ? data[key] : undefined; + } + + /** + * Checks if a hash value for `key` exists. + * + * @private + * @name has + * @memberOf Hash + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + */ + function hashHas(key) { + var data = this.__data__; + return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key); + } + + /** + * Sets the hash `key` to `value`. + * + * @private + * @name set + * @memberOf Hash + * @param {string} key The key of the value to set. + * @param {*} value The value to set. + * @returns {Object} Returns the hash instance. + */ + function hashSet(key, value) { + var data = this.__data__; + this.size += this.has(key) ? 0 : 1; + data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value; + return this; + } + + // Add methods to `Hash`. + Hash.prototype.clear = hashClear; + Hash.prototype['delete'] = hashDelete; + Hash.prototype.get = hashGet; + Hash.prototype.has = hashHas; + Hash.prototype.set = hashSet; + + /*------------------------------------------------------------------------*/ + + /** + * Creates an list cache object. + * + * @private + * @constructor + * @param {Array} [entries] The key-value pairs to cache. + */ + function ListCache(entries) { + var index = -1, + length = entries == null ? 0 : entries.length; + + this.clear(); + while (++index < length) { + var entry = entries[index]; + this.set(entry[0], entry[1]); + } + } + + /** + * Removes all key-value entries from the list cache. + * + * @private + * @name clear + * @memberOf ListCache + */ + function listCacheClear() { + this.__data__ = []; + this.size = 0; + } + + /** + * Removes `key` and its value from the list cache. + * + * @private + * @name delete + * @memberOf ListCache + * @param {string} key The key of the value to remove. + * @returns {boolean} Returns `true` if the entry was removed, else `false`. + */ + function listCacheDelete(key) { + var data = this.__data__, + index = assocIndexOf(data, key); + + if (index < 0) { + return false; + } + var lastIndex = data.length - 1; + if (index == lastIndex) { + data.pop(); + } else { + splice.call(data, index, 1); + } + --this.size; + return true; + } + + /** + * Gets the list cache value for `key`. + * + * @private + * @name get + * @memberOf ListCache + * @param {string} key The key of the value to get. + * @returns {*} Returns the entry value. + */ + function listCacheGet(key) { + var data = this.__data__, + index = assocIndexOf(data, key); + + return index < 0 ? undefined : data[index][1]; + } + + /** + * Checks if a list cache value for `key` exists. + * + * @private + * @name has + * @memberOf ListCache + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + */ + function listCacheHas(key) { + return assocIndexOf(this.__data__, key) > -1; + } + + /** + * Sets the list cache `key` to `value`. + * + * @private + * @name set + * @memberOf ListCache + * @param {string} key The key of the value to set. + * @param {*} value The value to set. + * @returns {Object} Returns the list cache instance. + */ + function listCacheSet(key, value) { + var data = this.__data__, + index = assocIndexOf(data, key); + + if (index < 0) { + ++this.size; + data.push([key, value]); + } else { + data[index][1] = value; + } + return this; + } + + // Add methods to `ListCache`. + ListCache.prototype.clear = listCacheClear; + ListCache.prototype['delete'] = listCacheDelete; + ListCache.prototype.get = listCacheGet; + ListCache.prototype.has = listCacheHas; + ListCache.prototype.set = listCacheSet; + + /*------------------------------------------------------------------------*/ + + /** + * Creates a map cache object to store key-value pairs. + * + * @private + * @constructor + * @param {Array} [entries] The key-value pairs to cache. + */ + function MapCache(entries) { + var index = -1, + length = entries == null ? 0 : entries.length; + + this.clear(); + while (++index < length) { + var entry = entries[index]; + this.set(entry[0], entry[1]); + } + } + + /** + * Removes all key-value entries from the map. + * + * @private + * @name clear + * @memberOf MapCache + */ + function mapCacheClear() { + this.size = 0; + this.__data__ = { + 'hash': new Hash, + 'map': new (Map || ListCache), + 'string': new Hash + }; + } + + /** + * Removes `key` and its value from the map. + * + * @private + * @name delete + * @memberOf MapCache + * @param {string} key The key of the value to remove. + * @returns {boolean} Returns `true` if the entry was removed, else `false`. + */ + function mapCacheDelete(key) { + var result = getMapData(this, key)['delete'](key); + this.size -= result ? 1 : 0; + return result; + } + + /** + * Gets the map value for `key`. + * + * @private + * @name get + * @memberOf MapCache + * @param {string} key The key of the value to get. + * @returns {*} Returns the entry value. + */ + function mapCacheGet(key) { + return getMapData(this, key).get(key); + } + + /** + * Checks if a map value for `key` exists. + * + * @private + * @name has + * @memberOf MapCache + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + */ + function mapCacheHas(key) { + return getMapData(this, key).has(key); + } + + /** + * Sets the map `key` to `value`. + * + * @private + * @name set + * @memberOf MapCache + * @param {string} key The key of the value to set. + * @param {*} value The value to set. + * @returns {Object} Returns the map cache instance. + */ + function mapCacheSet(key, value) { + var data = getMapData(this, key), + size = data.size; + + data.set(key, value); + this.size += data.size == size ? 0 : 1; + return this; + } + + // Add methods to `MapCache`. + MapCache.prototype.clear = mapCacheClear; + MapCache.prototype['delete'] = mapCacheDelete; + MapCache.prototype.get = mapCacheGet; + MapCache.prototype.has = mapCacheHas; + MapCache.prototype.set = mapCacheSet; + + /*------------------------------------------------------------------------*/ + + /** + * + * Creates an array cache object to store unique values. + * + * @private + * @constructor + * @param {Array} [values] The values to cache. + */ + function SetCache(values) { + var index = -1, + length = values == null ? 0 : values.length; + + this.__data__ = new MapCache; + while (++index < length) { + this.add(values[index]); + } + } + + /** + * Adds `value` to the array cache. + * + * @private + * @name add + * @memberOf SetCache + * @alias push + * @param {*} value The value to cache. + * @returns {Object} Returns the cache instance. + */ + function setCacheAdd(value) { + this.__data__.set(value, HASH_UNDEFINED); + return this; + } + + /** + * Checks if `value` is in the array cache. + * + * @private + * @name has + * @memberOf SetCache + * @param {*} value The value to search for. + * @returns {number} Returns `true` if `value` is found, else `false`. + */ + function setCacheHas(value) { + return this.__data__.has(value); + } + + // Add methods to `SetCache`. + SetCache.prototype.add = SetCache.prototype.push = setCacheAdd; + SetCache.prototype.has = setCacheHas; + + /*------------------------------------------------------------------------*/ + + /** + * Creates a stack cache object to store key-value pairs. + * + * @private + * @constructor + * @param {Array} [entries] The key-value pairs to cache. + */ + function Stack(entries) { + var data = this.__data__ = new ListCache(entries); + this.size = data.size; + } + + /** + * Removes all key-value entries from the stack. + * + * @private + * @name clear + * @memberOf Stack + */ + function stackClear() { + this.__data__ = new ListCache; + this.size = 0; + } + + /** + * Removes `key` and its value from the stack. + * + * @private + * @name delete + * @memberOf Stack + * @param {string} key The key of the value to remove. + * @returns {boolean} Returns `true` if the entry was removed, else `false`. + */ + function stackDelete(key) { + var data = this.__data__, + result = data['delete'](key); + + this.size = data.size; + return result; + } + + /** + * Gets the stack value for `key`. + * + * @private + * @name get + * @memberOf Stack + * @param {string} key The key of the value to get. + * @returns {*} Returns the entry value. + */ + function stackGet(key) { + return this.__data__.get(key); + } + + /** + * Checks if a stack value for `key` exists. + * + * @private + * @name has + * @memberOf Stack + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + */ + function stackHas(key) { + return this.__data__.has(key); + } + + /** + * Sets the stack `key` to `value`. + * + * @private + * @name set + * @memberOf Stack + * @param {string} key The key of the value to set. + * @param {*} value The value to set. + * @returns {Object} Returns the stack cache instance. + */ + function stackSet(key, value) { + var data = this.__data__; + if (data instanceof ListCache) { + var pairs = data.__data__; + if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) { + pairs.push([key, value]); + this.size = ++data.size; + return this; + } + data = this.__data__ = new MapCache(pairs); + } + data.set(key, value); + this.size = data.size; + return this; + } + + // Add methods to `Stack`. + Stack.prototype.clear = stackClear; + Stack.prototype['delete'] = stackDelete; + Stack.prototype.get = stackGet; + Stack.prototype.has = stackHas; + Stack.prototype.set = stackSet; + + /*------------------------------------------------------------------------*/ + + /** + * Creates an array of the enumerable property names of the array-like `value`. + * + * @private + * @param {*} value The value to query. + * @param {boolean} inherited Specify returning inherited property names. + * @returns {Array} Returns the array of property names. + */ + function arrayLikeKeys(value, inherited) { + var isArr = isArray(value), + isArg = !isArr && isArguments(value), + isBuff = !isArr && !isArg && isBuffer(value), + isType = !isArr && !isArg && !isBuff && isTypedArray(value), + skipIndexes = isArr || isArg || isBuff || isType, + result = skipIndexes ? baseTimes(value.length, String) : [], + length = result.length; + + for (var key in value) { + if ((inherited || hasOwnProperty.call(value, key)) && + !(skipIndexes && ( + // Safari 9 has enumerable `arguments.length` in strict mode. + key == 'length' || + // Node.js 0.10 has enumerable non-index properties on buffers. + (isBuff && (key == 'offset' || key == 'parent')) || + // PhantomJS 2 has enumerable non-index properties on typed arrays. + (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) || + // Skip index properties. + isIndex(key, length) + ))) { + result.push(key); + } + } + return result; + } + + /** + * A specialized version of `_.sample` for arrays. + * + * @private + * @param {Array} array The array to sample. + * @returns {*} Returns the random element. + */ + function arraySample(array) { + var length = array.length; + return length ? array[baseRandom(0, length - 1)] : undefined; + } + + /** + * A specialized version of `_.sampleSize` for arrays. + * + * @private + * @param {Array} array The array to sample. + * @param {number} n The number of elements to sample. + * @returns {Array} Returns the random elements. + */ + function arraySampleSize(array, n) { + return shuffleSelf(copyArray(array), baseClamp(n, 0, array.length)); + } + + /** + * A specialized version of `_.shuffle` for arrays. + * + * @private + * @param {Array} array The array to shuffle. + * @returns {Array} Returns the new shuffled array. + */ + function arrayShuffle(array) { + return shuffleSelf(copyArray(array)); + } + + /** + * This function is like `assignValue` except that it doesn't assign + * `undefined` values. + * + * @private + * @param {Object} object The object to modify. + * @param {string} key The key of the property to assign. + * @param {*} value The value to assign. + */ + function assignMergeValue(object, key, value) { + if ((value !== undefined && !eq(object[key], value)) || + (value === undefined && !(key in object))) { + baseAssignValue(object, key, value); + } + } + + /** + * Assigns `value` to `key` of `object` if the existing value is not equivalent + * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) + * for equality comparisons. + * + * @private + * @param {Object} object The object to modify. + * @param {string} key The key of the property to assign. + * @param {*} value The value to assign. + */ + function assignValue(object, key, value) { + var objValue = object[key]; + if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) || + (value === undefined && !(key in object))) { + baseAssignValue(object, key, value); + } + } + + /** + * Gets the index at which the `key` is found in `array` of key-value pairs. + * + * @private + * @param {Array} array The array to inspect. + * @param {*} key The key to search for. + * @returns {number} Returns the index of the matched value, else `-1`. + */ + function assocIndexOf(array, key) { + var length = array.length; + while (length--) { + if (eq(array[length][0], key)) { + return length; + } + } + return -1; + } + + /** + * Aggregates elements of `collection` on `accumulator` with keys transformed + * by `iteratee` and values set by `setter`. + * + * @private + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} setter The function to set `accumulator` values. + * @param {Function} iteratee The iteratee to transform keys. + * @param {Object} accumulator The initial aggregated object. + * @returns {Function} Returns `accumulator`. + */ + function baseAggregator(collection, setter, iteratee, accumulator) { + baseEach(collection, function(value, key, collection) { + setter(accumulator, value, iteratee(value), collection); + }); + return accumulator; + } + + /** + * The base implementation of `_.assign` without support for multiple sources + * or `customizer` functions. + * + * @private + * @param {Object} object The destination object. + * @param {Object} source The source object. + * @returns {Object} Returns `object`. + */ + function baseAssign(object, source) { + return object && copyObject(source, keys(source), object); + } + + /** + * The base implementation of `_.assignIn` without support for multiple sources + * or `customizer` functions. + * + * @private + * @param {Object} object The destination object. + * @param {Object} source The source object. + * @returns {Object} Returns `object`. + */ + function baseAssignIn(object, source) { + return object && copyObject(source, keysIn(source), object); + } + + /** + * The base implementation of `assignValue` and `assignMergeValue` without + * value checks. + * + * @private + * @param {Object} object The object to modify. + * @param {string} key The key of the property to assign. + * @param {*} value The value to assign. + */ + function baseAssignValue(object, key, value) { + if (key == '__proto__' && defineProperty) { + defineProperty(object, key, { + 'configurable': true, + 'enumerable': true, + 'value': value, + 'writable': true + }); + } else { + object[key] = value; + } + } + + /** + * The base implementation of `_.at` without support for individual paths. + * + * @private + * @param {Object} object The object to iterate over. + * @param {string[]} paths The property paths to pick. + * @returns {Array} Returns the picked elements. + */ + function baseAt(object, paths) { + var index = -1, + length = paths.length, + result = Array(length), + skip = object == null; + + while (++index < length) { + result[index] = skip ? undefined : get(object, paths[index]); + } + return result; + } + + /** + * The base implementation of `_.clamp` which doesn't coerce arguments. + * + * @private + * @param {number} number The number to clamp. + * @param {number} [lower] The lower bound. + * @param {number} upper The upper bound. + * @returns {number} Returns the clamped number. + */ + function baseClamp(number, lower, upper) { + if (number === number) { + if (upper !== undefined) { + number = number <= upper ? number : upper; + } + if (lower !== undefined) { + number = number >= lower ? number : lower; + } + } + return number; + } + + /** + * The base implementation of `_.clone` and `_.cloneDeep` which tracks + * traversed objects. + * + * @private + * @param {*} value The value to clone. + * @param {boolean} bitmask The bitmask flags. + * 1 - Deep clone + * 2 - Flatten inherited properties + * 4 - Clone symbols + * @param {Function} [customizer] The function to customize cloning. + * @param {string} [key] The key of `value`. + * @param {Object} [object] The parent object of `value`. + * @param {Object} [stack] Tracks traversed objects and their clone counterparts. + * @returns {*} Returns the cloned value. + */ + function baseClone(value, bitmask, customizer, key, object, stack) { + var result, + isDeep = bitmask & CLONE_DEEP_FLAG, + isFlat = bitmask & CLONE_FLAT_FLAG, + isFull = bitmask & CLONE_SYMBOLS_FLAG; + + if (customizer) { + result = object ? customizer(value, key, object, stack) : customizer(value); + } + if (result !== undefined) { + return result; + } + if (!isObject(value)) { + return value; + } + var isArr = isArray(value); + if (isArr) { + result = initCloneArray(value); + if (!isDeep) { + return copyArray(value, result); + } + } else { + var tag = getTag(value), + isFunc = tag == funcTag || tag == genTag; + + if (isBuffer(value)) { + return cloneBuffer(value, isDeep); + } + if (tag == objectTag || tag == argsTag || (isFunc && !object)) { + result = (isFlat || isFunc) ? {} : initCloneObject(value); + if (!isDeep) { + return isFlat + ? copySymbolsIn(value, baseAssignIn(result, value)) + : copySymbols(value, baseAssign(result, value)); + } + } else { + if (!cloneableTags[tag]) { + return object ? value : {}; + } + result = initCloneByTag(value, tag, baseClone, isDeep); + } + } + // Check for circular references and return its corresponding clone. + stack || (stack = new Stack); + var stacked = stack.get(value); + if (stacked) { + return stacked; + } + stack.set(value, result); + + var keysFunc = isFull + ? (isFlat ? getAllKeysIn : getAllKeys) + : (isFlat ? keysIn : keys); + + var props = isArr ? undefined : keysFunc(value); + arrayEach(props || value, function(subValue, key) { + if (props) { + key = subValue; + subValue = value[key]; + } + // Recursively populate clone (susceptible to call stack limits). + assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack)); + }); + return result; + } + + /** + * The base implementation of `_.conforms` which doesn't clone `source`. + * + * @private + * @param {Object} source The object of property predicates to conform to. + * @returns {Function} Returns the new spec function. + */ + function baseConforms(source) { + var props = keys(source); + return function(object) { + return baseConformsTo(object, source, props); + }; + } + + /** + * The base implementation of `_.conformsTo` which accepts `props` to check. + * + * @private + * @param {Object} object The object to inspect. + * @param {Object} source The object of property predicates to conform to. + * @returns {boolean} Returns `true` if `object` conforms, else `false`. + */ + function baseConformsTo(object, source, props) { + var length = props.length; + if (object == null) { + return !length; + } + object = Object(object); + while (length--) { + var key = props[length], + predicate = source[key], + value = object[key]; + + if ((value === undefined && !(key in object)) || !predicate(value)) { + return false; + } + } + return true; + } + + /** + * The base implementation of `_.delay` and `_.defer` which accepts `args` + * to provide to `func`. + * + * @private + * @param {Function} func The function to delay. + * @param {number} wait The number of milliseconds to delay invocation. + * @param {Array} args The arguments to provide to `func`. + * @returns {number|Object} Returns the timer id or timeout object. + */ + function baseDelay(func, wait, args) { + if (typeof func != 'function') { + throw new TypeError(FUNC_ERROR_TEXT); + } + return setTimeout(function() { func.apply(undefined, args); }, wait); + } + + /** + * The base implementation of methods like `_.difference` without support + * for excluding multiple arrays or iteratee shorthands. + * + * @private + * @param {Array} array The array to inspect. + * @param {Array} values The values to exclude. + * @param {Function} [iteratee] The iteratee invoked per element. + * @param {Function} [comparator] The comparator invoked per element. + * @returns {Array} Returns the new array of filtered values. + */ + function baseDifference(array, values, iteratee, comparator) { + var index = -1, + includes = arrayIncludes, + isCommon = true, + length = array.length, + result = [], + valuesLength = values.length; + + if (!length) { + return result; + } + if (iteratee) { + values = arrayMap(values, baseUnary(iteratee)); + } + if (comparator) { + includes = arrayIncludesWith; + isCommon = false; + } + else if (values.length >= LARGE_ARRAY_SIZE) { + includes = cacheHas; + isCommon = false; + values = new SetCache(values); + } + outer: + while (++index < length) { + var value = array[index], + computed = iteratee == null ? value : iteratee(value); + + value = (comparator || value !== 0) ? value : 0; + if (isCommon && computed === computed) { + var valuesIndex = valuesLength; + while (valuesIndex--) { + if (values[valuesIndex] === computed) { + continue outer; + } + } + result.push(value); + } + else if (!includes(values, computed, comparator)) { + result.push(value); + } + } + return result; + } + + /** + * The base implementation of `_.forEach` without support for iteratee shorthands. + * + * @private + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Array|Object} Returns `collection`. + */ + var baseEach = createBaseEach(baseForOwn); + + /** + * The base implementation of `_.forEachRight` without support for iteratee shorthands. + * + * @private + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Array|Object} Returns `collection`. + */ + var baseEachRight = createBaseEach(baseForOwnRight, true); + + /** + * The base implementation of `_.every` without support for iteratee shorthands. + * + * @private + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} predicate The function invoked per iteration. + * @returns {boolean} Returns `true` if all elements pass the predicate check, + * else `false` + */ + function baseEvery(collection, predicate) { + var result = true; + baseEach(collection, function(value, index, collection) { + result = !!predicate(value, index, collection); + return result; + }); + return result; + } + + /** + * The base implementation of methods like `_.max` and `_.min` which accepts a + * `comparator` to determine the extremum value. + * + * @private + * @param {Array} array The array to iterate over. + * @param {Function} iteratee The iteratee invoked per iteration. + * @param {Function} comparator The comparator used to compare values. + * @returns {*} Returns the extremum value. + */ + function baseExtremum(array, iteratee, comparator) { + var index = -1, + length = array.length; + + while (++index < length) { + var value = array[index], + current = iteratee(value); + + if (current != null && (computed === undefined + ? (current === current && !isSymbol(current)) + : comparator(current, computed) + )) { + var computed = current, + result = value; + } + } + return result; + } + + /** + * The base implementation of `_.fill` without an iteratee call guard. + * + * @private + * @param {Array} array The array to fill. + * @param {*} value The value to fill `array` with. + * @param {number} [start=0] The start position. + * @param {number} [end=array.length] The end position. + * @returns {Array} Returns `array`. + */ + function baseFill(array, value, start, end) { + var length = array.length; + + start = toInteger(start); + if (start < 0) { + start = -start > length ? 0 : (length + start); + } + end = (end === undefined || end > length) ? length : toInteger(end); + if (end < 0) { + end += length; + } + end = start > end ? 0 : toLength(end); + while (start < end) { + array[start++] = value; + } + return array; + } + + /** + * The base implementation of `_.filter` without support for iteratee shorthands. + * + * @private + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} predicate The function invoked per iteration. + * @returns {Array} Returns the new filtered array. + */ + function baseFilter(collection, predicate) { + var result = []; + baseEach(collection, function(value, index, collection) { + if (predicate(value, index, collection)) { + result.push(value); + } + }); + return result; + } + + /** + * The base implementation of `_.flatten` with support for restricting flattening. + * + * @private + * @param {Array} array The array to flatten. + * @param {number} depth The maximum recursion depth. + * @param {boolean} [predicate=isFlattenable] The function invoked per iteration. + * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks. + * @param {Array} [result=[]] The initial result value. + * @returns {Array} Returns the new flattened array. + */ + function baseFlatten(array, depth, predicate, isStrict, result) { + var index = -1, + length = array.length; + + predicate || (predicate = isFlattenable); + result || (result = []); + + while (++index < length) { + var value = array[index]; + if (depth > 0 && predicate(value)) { + if (depth > 1) { + // Recursively flatten arrays (susceptible to call stack limits). + baseFlatten(value, depth - 1, predicate, isStrict, result); + } else { + arrayPush(result, value); + } + } else if (!isStrict) { + result[result.length] = value; + } + } + return result; + } + + /** + * The base implementation of `baseForOwn` which iterates over `object` + * properties returned by `keysFunc` and invokes `iteratee` for each property. + * Iteratee functions may exit iteration early by explicitly returning `false`. + * + * @private + * @param {Object} object The object to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @param {Function} keysFunc The function to get the keys of `object`. + * @returns {Object} Returns `object`. + */ + var baseFor = createBaseFor(); + + /** + * This function is like `baseFor` except that it iterates over properties + * in the opposite order. + * + * @private + * @param {Object} object The object to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @param {Function} keysFunc The function to get the keys of `object`. + * @returns {Object} Returns `object`. + */ + var baseForRight = createBaseFor(true); + + /** + * The base implementation of `_.forOwn` without support for iteratee shorthands. + * + * @private + * @param {Object} object The object to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Object} Returns `object`. + */ + function baseForOwn(object, iteratee) { + return object && baseFor(object, iteratee, keys); + } + + /** + * The base implementation of `_.forOwnRight` without support for iteratee shorthands. + * + * @private + * @param {Object} object The object to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Object} Returns `object`. + */ + function baseForOwnRight(object, iteratee) { + return object && baseForRight(object, iteratee, keys); + } + + /** + * The base implementation of `_.functions` which creates an array of + * `object` function property names filtered from `props`. + * + * @private + * @param {Object} object The object to inspect. + * @param {Array} props The property names to filter. + * @returns {Array} Returns the function names. + */ + function baseFunctions(object, props) { + return arrayFilter(props, function(key) { + return isFunction(object[key]); + }); + } + + /** + * The base implementation of `_.get` without support for default values. + * + * @private + * @param {Object} object The object to query. + * @param {Array|string} path The path of the property to get. + * @returns {*} Returns the resolved value. + */ + function baseGet(object, path) { + path = castPath(path, object); + + var index = 0, + length = path.length; + + while (object != null && index < length) { + object = object[toKey(path[index++])]; + } + return (index && index == length) ? object : undefined; + } + + /** + * The base implementation of `getAllKeys` and `getAllKeysIn` which uses + * `keysFunc` and `symbolsFunc` to get the enumerable property names and + * symbols of `object`. + * + * @private + * @param {Object} object The object to query. + * @param {Function} keysFunc The function to get the keys of `object`. + * @param {Function} symbolsFunc The function to get the symbols of `object`. + * @returns {Array} Returns the array of property names and symbols. + */ + function baseGetAllKeys(object, keysFunc, symbolsFunc) { + var result = keysFunc(object); + return isArray(object) ? result : arrayPush(result, symbolsFunc(object)); + } + + /** + * The base implementation of `getTag` without fallbacks for buggy environments. + * + * @private + * @param {*} value The value to query. + * @returns {string} Returns the `toStringTag`. + */ + function baseGetTag(value) { + if (value == null) { + return value === undefined ? undefinedTag : nullTag; + } + return (symToStringTag && symToStringTag in Object(value)) + ? getRawTag(value) + : objectToString(value); + } + + /** + * The base implementation of `_.gt` which doesn't coerce arguments. + * + * @private + * @param {*} value The value to compare. + * @param {*} other The other value to compare. + * @returns {boolean} Returns `true` if `value` is greater than `other`, + * else `false`. + */ + function baseGt(value, other) { + return value > other; + } + + /** + * The base implementation of `_.has` without support for deep paths. + * + * @private + * @param {Object} [object] The object to query. + * @param {Array|string} key The key to check. + * @returns {boolean} Returns `true` if `key` exists, else `false`. + */ + function baseHas(object, key) { + return object != null && hasOwnProperty.call(object, key); + } + + /** + * The base implementation of `_.hasIn` without support for deep paths. + * + * @private + * @param {Object} [object] The object to query. + * @param {Array|string} key The key to check. + * @returns {boolean} Returns `true` if `key` exists, else `false`. + */ + function baseHasIn(object, key) { + return object != null && key in Object(object); + } + + /** + * The base implementation of `_.inRange` which doesn't coerce arguments. + * + * @private + * @param {number} number The number to check. + * @param {number} start The start of the range. + * @param {number} end The end of the range. + * @returns {boolean} Returns `true` if `number` is in the range, else `false`. + */ + function baseInRange(number, start, end) { + return number >= nativeMin(start, end) && number < nativeMax(start, end); + } + + /** + * The base implementation of methods like `_.intersection`, without support + * for iteratee shorthands, that accepts an array of arrays to inspect. + * + * @private + * @param {Array} arrays The arrays to inspect. + * @param {Function} [iteratee] The iteratee invoked per element. + * @param {Function} [comparator] The comparator invoked per element. + * @returns {Array} Returns the new array of shared values. + */ + function baseIntersection(arrays, iteratee, comparator) { + var includes = comparator ? arrayIncludesWith : arrayIncludes, + length = arrays[0].length, + othLength = arrays.length, + othIndex = othLength, + caches = Array(othLength), + maxLength = Infinity, + result = []; + + while (othIndex--) { + var array = arrays[othIndex]; + if (othIndex && iteratee) { + array = arrayMap(array, baseUnary(iteratee)); + } + maxLength = nativeMin(array.length, maxLength); + caches[othIndex] = !comparator && (iteratee || (length >= 120 && array.length >= 120)) + ? new SetCache(othIndex && array) + : undefined; + } + array = arrays[0]; + + var index = -1, + seen = caches[0]; + + outer: + while (++index < length && result.length < maxLength) { + var value = array[index], + computed = iteratee ? iteratee(value) : value; + + value = (comparator || value !== 0) ? value : 0; + if (!(seen + ? cacheHas(seen, computed) + : includes(result, computed, comparator) + )) { + othIndex = othLength; + while (--othIndex) { + var cache = caches[othIndex]; + if (!(cache + ? cacheHas(cache, computed) + : includes(arrays[othIndex], computed, comparator)) + ) { + continue outer; + } + } + if (seen) { + seen.push(computed); + } + result.push(value); + } + } + return result; + } + + /** + * The base implementation of `_.invert` and `_.invertBy` which inverts + * `object` with values transformed by `iteratee` and set by `setter`. + * + * @private + * @param {Object} object The object to iterate over. + * @param {Function} setter The function to set `accumulator` values. + * @param {Function} iteratee The iteratee to transform values. + * @param {Object} accumulator The initial inverted object. + * @returns {Function} Returns `accumulator`. + */ + function baseInverter(object, setter, iteratee, accumulator) { + baseForOwn(object, function(value, key, object) { + setter(accumulator, iteratee(value), key, object); + }); + return accumulator; + } + + /** + * The base implementation of `_.invoke` without support for individual + * method arguments. + * + * @private + * @param {Object} object The object to query. + * @param {Array|string} path The path of the method to invoke. + * @param {Array} args The arguments to invoke the method with. + * @returns {*} Returns the result of the invoked method. + */ + function baseInvoke(object, path, args) { + path = castPath(path, object); + object = parent(object, path); + var func = object == null ? object : object[toKey(last(path))]; + return func == null ? undefined : apply(func, object, args); + } + + /** + * The base implementation of `_.isArguments`. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an `arguments` object, + */ + function baseIsArguments(value) { + return isObjectLike(value) && baseGetTag(value) == argsTag; + } + + /** + * The base implementation of `_.isArrayBuffer` without Node.js optimizations. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an array buffer, else `false`. + */ + function baseIsArrayBuffer(value) { + return isObjectLike(value) && baseGetTag(value) == arrayBufferTag; + } + + /** + * The base implementation of `_.isDate` without Node.js optimizations. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a date object, else `false`. + */ + function baseIsDate(value) { + return isObjectLike(value) && baseGetTag(value) == dateTag; + } + + /** + * The base implementation of `_.isEqual` which supports partial comparisons + * and tracks traversed objects. + * + * @private + * @param {*} value The value to compare. + * @param {*} other The other value to compare. + * @param {boolean} bitmask The bitmask flags. + * 1 - Unordered comparison + * 2 - Partial comparison + * @param {Function} [customizer] The function to customize comparisons. + * @param {Object} [stack] Tracks traversed `value` and `other` objects. + * @returns {boolean} Returns `true` if the values are equivalent, else `false`. + */ + function baseIsEqual(value, other, bitmask, customizer, stack) { + if (value === other) { + return true; + } + if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) { + return value !== value && other !== other; + } + return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack); + } + + /** + * A specialized version of `baseIsEqual` for arrays and objects which performs + * deep comparisons and tracks traversed objects enabling objects with circular + * references to be compared. + * + * @private + * @param {Object} object The object to compare. + * @param {Object} other The other object to compare. + * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. + * @param {Function} customizer The function to customize comparisons. + * @param {Function} equalFunc The function to determine equivalents of values. + * @param {Object} [stack] Tracks traversed `object` and `other` objects. + * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. + */ + function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) { + var objIsArr = isArray(object), + othIsArr = isArray(other), + objTag = objIsArr ? arrayTag : getTag(object), + othTag = othIsArr ? arrayTag : getTag(other); + + objTag = objTag == argsTag ? objectTag : objTag; + othTag = othTag == argsTag ? objectTag : othTag; + + var objIsObj = objTag == objectTag, + othIsObj = othTag == objectTag, + isSameTag = objTag == othTag; + + if (isSameTag && isBuffer(object)) { + if (!isBuffer(other)) { + return false; + } + objIsArr = true; + objIsObj = false; + } + if (isSameTag && !objIsObj) { + stack || (stack = new Stack); + return (objIsArr || isTypedArray(object)) + ? equalArrays(object, other, bitmask, customizer, equalFunc, stack) + : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack); + } + if (!(bitmask & COMPARE_PARTIAL_FLAG)) { + var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'), + othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__'); + + if (objIsWrapped || othIsWrapped) { + var objUnwrapped = objIsWrapped ? object.value() : object, + othUnwrapped = othIsWrapped ? other.value() : other; + + stack || (stack = new Stack); + return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack); + } + } + if (!isSameTag) { + return false; + } + stack || (stack = new Stack); + return equalObjects(object, other, bitmask, customizer, equalFunc, stack); + } + + /** + * The base implementation of `_.isMap` without Node.js optimizations. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a map, else `false`. + */ + function baseIsMap(value) { + return isObjectLike(value) && getTag(value) == mapTag; + } + + /** + * The base implementation of `_.isMatch` without support for iteratee shorthands. + * + * @private + * @param {Object} object The object to inspect. + * @param {Object} source The object of property values to match. + * @param {Array} matchData The property names, values, and compare flags to match. + * @param {Function} [customizer] The function to customize comparisons. + * @returns {boolean} Returns `true` if `object` is a match, else `false`. + */ + function baseIsMatch(object, source, matchData, customizer) { + var index = matchData.length, + length = index, + noCustomizer = !customizer; + + if (object == null) { + return !length; + } + object = Object(object); + while (index--) { + var data = matchData[index]; + if ((noCustomizer && data[2]) + ? data[1] !== object[data[0]] + : !(data[0] in object) + ) { + return false; + } + } + while (++index < length) { + data = matchData[index]; + var key = data[0], + objValue = object[key], + srcValue = data[1]; + + if (noCustomizer && data[2]) { + if (objValue === undefined && !(key in object)) { + return false; + } + } else { + var stack = new Stack; + if (customizer) { + var result = customizer(objValue, srcValue, key, object, source, stack); + } + if (!(result === undefined + ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack) + : result + )) { + return false; + } + } + } + return true; + } + + /** + * The base implementation of `_.isNative` without bad shim checks. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a native function, + * else `false`. + */ + function baseIsNative(value) { + if (!isObject(value) || isMasked(value)) { + return false; + } + var pattern = isFunction(value) ? reIsNative : reIsHostCtor; + return pattern.test(toSource(value)); + } + + /** + * The base implementation of `_.isRegExp` without Node.js optimizations. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a regexp, else `false`. + */ + function baseIsRegExp(value) { + return isObjectLike(value) && baseGetTag(value) == regexpTag; + } + + /** + * The base implementation of `_.isSet` without Node.js optimizations. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a set, else `false`. + */ + function baseIsSet(value) { + return isObjectLike(value) && getTag(value) == setTag; + } + + /** + * The base implementation of `_.isTypedArray` without Node.js optimizations. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a typed array, else `false`. + */ + function baseIsTypedArray(value) { + return isObjectLike(value) && + isLength(value.length) && !!typedArrayTags[baseGetTag(value)]; + } + + /** + * The base implementation of `_.iteratee`. + * + * @private + * @param {*} [value=_.identity] The value to convert to an iteratee. + * @returns {Function} Returns the iteratee. + */ + function baseIteratee(value) { + // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9. + // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details. + if (typeof value == 'function') { + return value; + } + if (value == null) { + return identity; + } + if (typeof value == 'object') { + return isArray(value) + ? baseMatchesProperty(value[0], value[1]) + : baseMatches(value); + } + return property(value); + } + + /** + * The base implementation of `_.keys` which doesn't treat sparse arrays as dense. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. + */ + function baseKeys(object) { + if (!isPrototype(object)) { + return nativeKeys(object); + } + var result = []; + for (var key in Object(object)) { + if (hasOwnProperty.call(object, key) && key != 'constructor') { + result.push(key); + } + } + return result; + } + + /** + * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. + */ + function baseKeysIn(object) { + if (!isObject(object)) { + return nativeKeysIn(object); + } + var isProto = isPrototype(object), + result = []; + + for (var key in object) { + if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) { + result.push(key); + } + } + return result; + } + + /** + * The base implementation of `_.lt` which doesn't coerce arguments. + * + * @private + * @param {*} value The value to compare. + * @param {*} other The other value to compare. + * @returns {boolean} Returns `true` if `value` is less than `other`, + * else `false`. + */ + function baseLt(value, other) { + return value < other; + } + + /** + * The base implementation of `_.map` without support for iteratee shorthands. + * + * @private + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Array} Returns the new mapped array. + */ + function baseMap(collection, iteratee) { + var index = -1, + result = isArrayLike(collection) ? Array(collection.length) : []; + + baseEach(collection, function(value, key, collection) { + result[++index] = iteratee(value, key, collection); + }); + return result; + } + + /** + * The base implementation of `_.matches` which doesn't clone `source`. + * + * @private + * @param {Object} source The object of property values to match. + * @returns {Function} Returns the new spec function. + */ + function baseMatches(source) { + var matchData = getMatchData(source); + if (matchData.length == 1 && matchData[0][2]) { + return matchesStrictComparable(matchData[0][0], matchData[0][1]); + } + return function(object) { + return object === source || baseIsMatch(object, source, matchData); + }; + } + + /** + * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`. + * + * @private + * @param {string} path The path of the property to get. + * @param {*} srcValue The value to match. + * @returns {Function} Returns the new spec function. + */ + function baseMatchesProperty(path, srcValue) { + if (isKey(path) && isStrictComparable(srcValue)) { + return matchesStrictComparable(toKey(path), srcValue); + } + return function(object) { + var objValue = get(object, path); + return (objValue === undefined && objValue === srcValue) + ? hasIn(object, path) + : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG); + }; + } + + /** + * The base implementation of `_.merge` without support for multiple sources. + * + * @private + * @param {Object} object The destination object. + * @param {Object} source The source object. + * @param {number} srcIndex The index of `source`. + * @param {Function} [customizer] The function to customize merged values. + * @param {Object} [stack] Tracks traversed source values and their merged + * counterparts. + */ + function baseMerge(object, source, srcIndex, customizer, stack) { + if (object === source) { + return; + } + baseFor(source, function(srcValue, key) { + if (isObject(srcValue)) { + stack || (stack = new Stack); + baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack); + } + else { + var newValue = customizer + ? customizer(object[key], srcValue, (key + ''), object, source, stack) + : undefined; + + if (newValue === undefined) { + newValue = srcValue; + } + assignMergeValue(object, key, newValue); + } + }, keysIn); + } + + /** + * A specialized version of `baseMerge` for arrays and objects which performs + * deep merges and tracks traversed objects enabling objects with circular + * references to be merged. + * + * @private + * @param {Object} object The destination object. + * @param {Object} source The source object. + * @param {string} key The key of the value to merge. + * @param {number} srcIndex The index of `source`. + * @param {Function} mergeFunc The function to merge values. + * @param {Function} [customizer] The function to customize assigned values. + * @param {Object} [stack] Tracks traversed source values and their merged + * counterparts. + */ + function baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) { + var objValue = object[key], + srcValue = source[key], + stacked = stack.get(srcValue); + + if (stacked) { + assignMergeValue(object, key, stacked); + return; + } + var newValue = customizer + ? customizer(objValue, srcValue, (key + ''), object, source, stack) + : undefined; + + var isCommon = newValue === undefined; + + if (isCommon) { + var isArr = isArray(srcValue), + isBuff = !isArr && isBuffer(srcValue), + isTyped = !isArr && !isBuff && isTypedArray(srcValue); + + newValue = srcValue; + if (isArr || isBuff || isTyped) { + if (isArray(objValue)) { + newValue = objValue; + } + else if (isArrayLikeObject(objValue)) { + newValue = copyArray(objValue); + } + else if (isBuff) { + isCommon = false; + newValue = cloneBuffer(srcValue, true); + } + else if (isTyped) { + isCommon = false; + newValue = cloneTypedArray(srcValue, true); + } + else { + newValue = []; + } + } + else if (isPlainObject(srcValue) || isArguments(srcValue)) { + newValue = objValue; + if (isArguments(objValue)) { + newValue = toPlainObject(objValue); + } + else if (!isObject(objValue) || (srcIndex && isFunction(objValue))) { + newValue = initCloneObject(srcValue); + } + } + else { + isCommon = false; + } + } + if (isCommon) { + // Recursively merge objects and arrays (susceptible to call stack limits). + stack.set(srcValue, newValue); + mergeFunc(newValue, srcValue, srcIndex, customizer, stack); + stack['delete'](srcValue); + } + assignMergeValue(object, key, newValue); + } + + /** + * The base implementation of `_.nth` which doesn't coerce arguments. + * + * @private + * @param {Array} array The array to query. + * @param {number} n The index of the element to return. + * @returns {*} Returns the nth element of `array`. + */ + function baseNth(array, n) { + var length = array.length; + if (!length) { + return; + } + n += n < 0 ? length : 0; + return isIndex(n, length) ? array[n] : undefined; + } + + /** + * The base implementation of `_.orderBy` without param guards. + * + * @private + * @param {Array|Object} collection The collection to iterate over. + * @param {Function[]|Object[]|string[]} iteratees The iteratees to sort by. + * @param {string[]} orders The sort orders of `iteratees`. + * @returns {Array} Returns the new sorted array. + */ + function baseOrderBy(collection, iteratees, orders) { + var index = -1; + iteratees = arrayMap(iteratees.length ? iteratees : [identity], baseUnary(getIteratee())); + + var result = baseMap(collection, function(value, key, collection) { + var criteria = arrayMap(iteratees, function(iteratee) { + return iteratee(value); + }); + return { 'criteria': criteria, 'index': ++index, 'value': value }; + }); + + return baseSortBy(result, function(object, other) { + return compareMultiple(object, other, orders); + }); + } + + /** + * The base implementation of `_.pick` without support for individual + * property identifiers. + * + * @private + * @param {Object} object The source object. + * @param {string[]} paths The property paths to pick. + * @returns {Object} Returns the new object. + */ + function basePick(object, paths) { + return basePickBy(object, paths, function(value, path) { + return hasIn(object, path); + }); + } + + /** + * The base implementation of `_.pickBy` without support for iteratee shorthands. + * + * @private + * @param {Object} object The source object. + * @param {string[]} paths The property paths to pick. + * @param {Function} predicate The function invoked per property. + * @returns {Object} Returns the new object. + */ + function basePickBy(object, paths, predicate) { + var index = -1, + length = paths.length, + result = {}; + + while (++index < length) { + var path = paths[index], + value = baseGet(object, path); + + if (predicate(value, path)) { + baseSet(result, castPath(path, object), value); + } + } + return result; + } + + /** + * A specialized version of `baseProperty` which supports deep paths. + * + * @private + * @param {Array|string} path The path of the property to get. + * @returns {Function} Returns the new accessor function. + */ + function basePropertyDeep(path) { + return function(object) { + return baseGet(object, path); + }; + } + + /** + * The base implementation of `_.pullAllBy` without support for iteratee + * shorthands. + * + * @private + * @param {Array} array The array to modify. + * @param {Array} values The values to remove. + * @param {Function} [iteratee] The iteratee invoked per element. + * @param {Function} [comparator] The comparator invoked per element. + * @returns {Array} Returns `array`. + */ + function basePullAll(array, values, iteratee, comparator) { + var indexOf = comparator ? baseIndexOfWith : baseIndexOf, + index = -1, + length = values.length, + seen = array; + + if (array === values) { + values = copyArray(values); + } + if (iteratee) { + seen = arrayMap(array, baseUnary(iteratee)); + } + while (++index < length) { + var fromIndex = 0, + value = values[index], + computed = iteratee ? iteratee(value) : value; + + while ((fromIndex = indexOf(seen, computed, fromIndex, comparator)) > -1) { + if (seen !== array) { + splice.call(seen, fromIndex, 1); + } + splice.call(array, fromIndex, 1); + } + } + return array; + } + + /** + * The base implementation of `_.pullAt` without support for individual + * indexes or capturing the removed elements. + * + * @private + * @param {Array} array The array to modify. + * @param {number[]} indexes The indexes of elements to remove. + * @returns {Array} Returns `array`. + */ + function basePullAt(array, indexes) { + var length = array ? indexes.length : 0, + lastIndex = length - 1; + + while (length--) { + var index = indexes[length]; + if (length == lastIndex || index !== previous) { + var previous = index; + if (isIndex(index)) { + splice.call(array, index, 1); + } else { + baseUnset(array, index); + } + } + } + return array; + } + + /** + * The base implementation of `_.random` without support for returning + * floating-point numbers. + * + * @private + * @param {number} lower The lower bound. + * @param {number} upper The upper bound. + * @returns {number} Returns the random number. + */ + function baseRandom(lower, upper) { + return lower + nativeFloor(nativeRandom() * (upper - lower + 1)); + } + + /** + * The base implementation of `_.range` and `_.rangeRight` which doesn't + * coerce arguments. + * + * @private + * @param {number} start The start of the range. + * @param {number} end The end of the range. + * @param {number} step The value to increment or decrement by. + * @param {boolean} [fromRight] Specify iterating from right to left. + * @returns {Array} Returns the range of numbers. + */ + function baseRange(start, end, step, fromRight) { + var index = -1, + length = nativeMax(nativeCeil((end - start) / (step || 1)), 0), + result = Array(length); + + while (length--) { + result[fromRight ? length : ++index] = start; + start += step; + } + return result; + } + + /** + * The base implementation of `_.repeat` which doesn't coerce arguments. + * + * @private + * @param {string} string The string to repeat. + * @param {number} n The number of times to repeat the string. + * @returns {string} Returns the repeated string. + */ + function baseRepeat(string, n) { + var result = ''; + if (!string || n < 1 || n > MAX_SAFE_INTEGER) { + return result; + } + // Leverage the exponentiation by squaring algorithm for a faster repeat. + // See https://en.wikipedia.org/wiki/Exponentiation_by_squaring for more details. + do { + if (n % 2) { + result += string; + } + n = nativeFloor(n / 2); + if (n) { + string += string; + } + } while (n); + + return result; + } + + /** + * The base implementation of `_.rest` which doesn't validate or coerce arguments. + * + * @private + * @param {Function} func The function to apply a rest parameter to. + * @param {number} [start=func.length-1] The start position of the rest parameter. + * @returns {Function} Returns the new function. + */ + function baseRest(func, start) { + return setToString(overRest(func, start, identity), func + ''); + } + + /** + * The base implementation of `_.sample`. + * + * @private + * @param {Array|Object} collection The collection to sample. + * @returns {*} Returns the random element. + */ + function baseSample(collection) { + return arraySample(values(collection)); + } + + /** + * The base implementation of `_.sampleSize` without param guards. + * + * @private + * @param {Array|Object} collection The collection to sample. + * @param {number} n The number of elements to sample. + * @returns {Array} Returns the random elements. + */ + function baseSampleSize(collection, n) { + var array = values(collection); + return shuffleSelf(array, baseClamp(n, 0, array.length)); + } + + /** + * The base implementation of `_.set`. + * + * @private + * @param {Object} object The object to modify. + * @param {Array|string} path The path of the property to set. + * @param {*} value The value to set. + * @param {Function} [customizer] The function to customize path creation. + * @returns {Object} Returns `object`. + */ + function baseSet(object, path, value, customizer) { + if (!isObject(object)) { + return object; + } + path = castPath(path, object); + + var index = -1, + length = path.length, + lastIndex = length - 1, + nested = object; + + while (nested != null && ++index < length) { + var key = toKey(path[index]), + newValue = value; + + if (index != lastIndex) { + var objValue = nested[key]; + newValue = customizer ? customizer(objValue, key, nested) : undefined; + if (newValue === undefined) { + newValue = isObject(objValue) + ? objValue + : (isIndex(path[index + 1]) ? [] : {}); + } + } + assignValue(nested, key, newValue); + nested = nested[key]; + } + return object; + } + + /** + * The base implementation of `setData` without support for hot loop shorting. + * + * @private + * @param {Function} func The function to associate metadata with. + * @param {*} data The metadata. + * @returns {Function} Returns `func`. + */ + var baseSetData = !metaMap ? identity : function(func, data) { + metaMap.set(func, data); + return func; + }; + + /** + * The base implementation of `setToString` without support for hot loop shorting. + * + * @private + * @param {Function} func The function to modify. + * @param {Function} string The `toString` result. + * @returns {Function} Returns `func`. + */ + var baseSetToString = !defineProperty ? identity : function(func, string) { + return defineProperty(func, 'toString', { + 'configurable': true, + 'enumerable': false, + 'value': constant(string), + 'writable': true + }); + }; + + /** + * The base implementation of `_.shuffle`. + * + * @private + * @param {Array|Object} collection The collection to shuffle. + * @returns {Array} Returns the new shuffled array. + */ + function baseShuffle(collection) { + return shuffleSelf(values(collection)); + } + + /** + * The base implementation of `_.slice` without an iteratee call guard. + * + * @private + * @param {Array} array The array to slice. + * @param {number} [start=0] The start position. + * @param {number} [end=array.length] The end position. + * @returns {Array} Returns the slice of `array`. + */ + function baseSlice(array, start, end) { + var index = -1, + length = array.length; + + if (start < 0) { + start = -start > length ? 0 : (length + start); + } + end = end > length ? length : end; + if (end < 0) { + end += length; + } + length = start > end ? 0 : ((end - start) >>> 0); + start >>>= 0; + + var result = Array(length); + while (++index < length) { + result[index] = array[index + start]; + } + return result; + } + + /** + * The base implementation of `_.some` without support for iteratee shorthands. + * + * @private + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} predicate The function invoked per iteration. + * @returns {boolean} Returns `true` if any element passes the predicate check, + * else `false`. + */ + function baseSome(collection, predicate) { + var result; + + baseEach(collection, function(value, index, collection) { + result = predicate(value, index, collection); + return !result; + }); + return !!result; + } + + /** + * The base implementation of `_.sortedIndex` and `_.sortedLastIndex` which + * performs a binary search of `array` to determine the index at which `value` + * should be inserted into `array` in order to maintain its sort order. + * + * @private + * @param {Array} array The sorted array to inspect. + * @param {*} value The value to evaluate. + * @param {boolean} [retHighest] Specify returning the highest qualified index. + * @returns {number} Returns the index at which `value` should be inserted + * into `array`. + */ + function baseSortedIndex(array, value, retHighest) { + var low = 0, + high = array == null ? low : array.length; + + if (typeof value == 'number' && value === value && high <= HALF_MAX_ARRAY_LENGTH) { + while (low < high) { + var mid = (low + high) >>> 1, + computed = array[mid]; + + if (computed !== null && !isSymbol(computed) && + (retHighest ? (computed <= value) : (computed < value))) { + low = mid + 1; + } else { + high = mid; + } + } + return high; + } + return baseSortedIndexBy(array, value, identity, retHighest); + } + + /** + * The base implementation of `_.sortedIndexBy` and `_.sortedLastIndexBy` + * which invokes `iteratee` for `value` and each element of `array` to compute + * their sort ranking. The iteratee is invoked with one argument; (value). + * + * @private + * @param {Array} array The sorted array to inspect. + * @param {*} value The value to evaluate. + * @param {Function} iteratee The iteratee invoked per element. + * @param {boolean} [retHighest] Specify returning the highest qualified index. + * @returns {number} Returns the index at which `value` should be inserted + * into `array`. + */ + function baseSortedIndexBy(array, value, iteratee, retHighest) { + value = iteratee(value); + + var low = 0, + high = array == null ? 0 : array.length, + valIsNaN = value !== value, + valIsNull = value === null, + valIsSymbol = isSymbol(value), + valIsUndefined = value === undefined; + + while (low < high) { + var mid = nativeFloor((low + high) / 2), + computed = iteratee(array[mid]), + othIsDefined = computed !== undefined, + othIsNull = computed === null, + othIsReflexive = computed === computed, + othIsSymbol = isSymbol(computed); + + if (valIsNaN) { + var setLow = retHighest || othIsReflexive; + } else if (valIsUndefined) { + setLow = othIsReflexive && (retHighest || othIsDefined); + } else if (valIsNull) { + setLow = othIsReflexive && othIsDefined && (retHighest || !othIsNull); + } else if (valIsSymbol) { + setLow = othIsReflexive && othIsDefined && !othIsNull && (retHighest || !othIsSymbol); + } else if (othIsNull || othIsSymbol) { + setLow = false; + } else { + setLow = retHighest ? (computed <= value) : (computed < value); + } + if (setLow) { + low = mid + 1; + } else { + high = mid; + } + } + return nativeMin(high, MAX_ARRAY_INDEX); + } + + /** + * The base implementation of `_.sortedUniq` and `_.sortedUniqBy` without + * support for iteratee shorthands. + * + * @private + * @param {Array} array The array to inspect. + * @param {Function} [iteratee] The iteratee invoked per element. + * @returns {Array} Returns the new duplicate free array. + */ + function baseSortedUniq(array, iteratee) { + var index = -1, + length = array.length, + resIndex = 0, + result = []; + + while (++index < length) { + var value = array[index], + computed = iteratee ? iteratee(value) : value; + + if (!index || !eq(computed, seen)) { + var seen = computed; + result[resIndex++] = value === 0 ? 0 : value; + } + } + return result; + } + + /** + * The base implementation of `_.toNumber` which doesn't ensure correct + * conversions of binary, hexadecimal, or octal string values. + * + * @private + * @param {*} value The value to process. + * @returns {number} Returns the number. + */ + function baseToNumber(value) { + if (typeof value == 'number') { + return value; + } + if (isSymbol(value)) { + return NAN; + } + return +value; + } + + /** + * The base implementation of `_.toString` which doesn't convert nullish + * values to empty strings. + * + * @private + * @param {*} value The value to process. + * @returns {string} Returns the string. + */ + function baseToString(value) { + // Exit early for strings to avoid a performance hit in some environments. + if (typeof value == 'string') { + return value; + } + if (isArray(value)) { + // Recursively convert values (susceptible to call stack limits). + return arrayMap(value, baseToString) + ''; + } + if (isSymbol(value)) { + return symbolToString ? symbolToString.call(value) : ''; + } + var result = (value + ''); + return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result; + } + + /** + * The base implementation of `_.uniqBy` without support for iteratee shorthands. + * + * @private + * @param {Array} array The array to inspect. + * @param {Function} [iteratee] The iteratee invoked per element. + * @param {Function} [comparator] The comparator invoked per element. + * @returns {Array} Returns the new duplicate free array. + */ + function baseUniq(array, iteratee, comparator) { + var index = -1, + includes = arrayIncludes, + length = array.length, + isCommon = true, + result = [], + seen = result; + + if (comparator) { + isCommon = false; + includes = arrayIncludesWith; + } + else if (length >= LARGE_ARRAY_SIZE) { + var set = iteratee ? null : createSet(array); + if (set) { + return setToArray(set); + } + isCommon = false; + includes = cacheHas; + seen = new SetCache; + } + else { + seen = iteratee ? [] : result; + } + outer: + while (++index < length) { + var value = array[index], + computed = iteratee ? iteratee(value) : value; + + value = (comparator || value !== 0) ? value : 0; + if (isCommon && computed === computed) { + var seenIndex = seen.length; + while (seenIndex--) { + if (seen[seenIndex] === computed) { + continue outer; + } + } + if (iteratee) { + seen.push(computed); + } + result.push(value); + } + else if (!includes(seen, computed, comparator)) { + if (seen !== result) { + seen.push(computed); + } + result.push(value); + } + } + return result; + } + + /** + * The base implementation of `_.unset`. + * + * @private + * @param {Object} object The object to modify. + * @param {Array|string} path The property path to unset. + * @returns {boolean} Returns `true` if the property is deleted, else `false`. + */ + function baseUnset(object, path) { + path = castPath(path, object); + object = parent(object, path); + return object == null || delete object[toKey(last(path))]; + } + + /** + * The base implementation of `_.update`. + * + * @private + * @param {Object} object The object to modify. + * @param {Array|string} path The path of the property to update. + * @param {Function} updater The function to produce the updated value. + * @param {Function} [customizer] The function to customize path creation. + * @returns {Object} Returns `object`. + */ + function baseUpdate(object, path, updater, customizer) { + return baseSet(object, path, updater(baseGet(object, path)), customizer); + } + + /** + * The base implementation of methods like `_.dropWhile` and `_.takeWhile` + * without support for iteratee shorthands. + * + * @private + * @param {Array} array The array to query. + * @param {Function} predicate The function invoked per iteration. + * @param {boolean} [isDrop] Specify dropping elements instead of taking them. + * @param {boolean} [fromRight] Specify iterating from right to left. + * @returns {Array} Returns the slice of `array`. + */ + function baseWhile(array, predicate, isDrop, fromRight) { + var length = array.length, + index = fromRight ? length : -1; + + while ((fromRight ? index-- : ++index < length) && + predicate(array[index], index, array)) {} + + return isDrop + ? baseSlice(array, (fromRight ? 0 : index), (fromRight ? index + 1 : length)) + : baseSlice(array, (fromRight ? index + 1 : 0), (fromRight ? length : index)); + } + + /** + * The base implementation of `wrapperValue` which returns the result of + * performing a sequence of actions on the unwrapped `value`, where each + * successive action is supplied the return value of the previous. + * + * @private + * @param {*} value The unwrapped value. + * @param {Array} actions Actions to perform to resolve the unwrapped value. + * @returns {*} Returns the resolved value. + */ + function baseWrapperValue(value, actions) { + var result = value; + if (result instanceof LazyWrapper) { + result = result.value(); + } + return arrayReduce(actions, function(result, action) { + return action.func.apply(action.thisArg, arrayPush([result], action.args)); + }, result); + } + + /** + * The base implementation of methods like `_.xor`, without support for + * iteratee shorthands, that accepts an array of arrays to inspect. + * + * @private + * @param {Array} arrays The arrays to inspect. + * @param {Function} [iteratee] The iteratee invoked per element. + * @param {Function} [comparator] The comparator invoked per element. + * @returns {Array} Returns the new array of values. + */ + function baseXor(arrays, iteratee, comparator) { + var length = arrays.length; + if (length < 2) { + return length ? baseUniq(arrays[0]) : []; + } + var index = -1, + result = Array(length); + + while (++index < length) { + var array = arrays[index], + othIndex = -1; + + while (++othIndex < length) { + if (othIndex != index) { + result[index] = baseDifference(result[index] || array, arrays[othIndex], iteratee, comparator); + } + } + } + return baseUniq(baseFlatten(result, 1), iteratee, comparator); + } + + /** + * This base implementation of `_.zipObject` which assigns values using `assignFunc`. + * + * @private + * @param {Array} props The property identifiers. + * @param {Array} values The property values. + * @param {Function} assignFunc The function to assign values. + * @returns {Object} Returns the new object. + */ + function baseZipObject(props, values, assignFunc) { + var index = -1, + length = props.length, + valsLength = values.length, + result = {}; + + while (++index < length) { + var value = index < valsLength ? values[index] : undefined; + assignFunc(result, props[index], value); + } + return result; + } + + /** + * Casts `value` to an empty array if it's not an array like object. + * + * @private + * @param {*} value The value to inspect. + * @returns {Array|Object} Returns the cast array-like object. + */ + function castArrayLikeObject(value) { + return isArrayLikeObject(value) ? value : []; + } + + /** + * Casts `value` to `identity` if it's not a function. + * + * @private + * @param {*} value The value to inspect. + * @returns {Function} Returns cast function. + */ + function castFunction(value) { + return typeof value == 'function' ? value : identity; + } + + /** + * Casts `value` to a path array if it's not one. + * + * @private + * @param {*} value The value to inspect. + * @param {Object} [object] The object to query keys on. + * @returns {Array} Returns the cast property path array. + */ + function castPath(value, object) { + if (isArray(value)) { + return value; + } + return isKey(value, object) ? [value] : stringToPath(toString(value)); + } + + /** + * A `baseRest` alias which can be replaced with `identity` by module + * replacement plugins. + * + * @private + * @type {Function} + * @param {Function} func The function to apply a rest parameter to. + * @returns {Function} Returns the new function. + */ + var castRest = baseRest; + + /** + * Casts `array` to a slice if it's needed. + * + * @private + * @param {Array} array The array to inspect. + * @param {number} start The start position. + * @param {number} [end=array.length] The end position. + * @returns {Array} Returns the cast slice. + */ + function castSlice(array, start, end) { + var length = array.length; + end = end === undefined ? length : end; + return (!start && end >= length) ? array : baseSlice(array, start, end); + } + + /** + * A simple wrapper around the global [`clearTimeout`](https://mdn.io/clearTimeout). + * + * @private + * @param {number|Object} id The timer id or timeout object of the timer to clear. + */ + var clearTimeout = ctxClearTimeout || function(id) { + return root.clearTimeout(id); + }; + + /** + * Creates a clone of `buffer`. + * + * @private + * @param {Buffer} buffer The buffer to clone. + * @param {boolean} [isDeep] Specify a deep clone. + * @returns {Buffer} Returns the cloned buffer. + */ + function cloneBuffer(buffer, isDeep) { + if (isDeep) { + return buffer.slice(); + } + var length = buffer.length, + result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length); + + buffer.copy(result); + return result; + } + + /** + * Creates a clone of `arrayBuffer`. + * + * @private + * @param {ArrayBuffer} arrayBuffer The array buffer to clone. + * @returns {ArrayBuffer} Returns the cloned array buffer. + */ + function cloneArrayBuffer(arrayBuffer) { + var result = new arrayBuffer.constructor(arrayBuffer.byteLength); + new Uint8Array(result).set(new Uint8Array(arrayBuffer)); + return result; + } + + /** + * Creates a clone of `dataView`. + * + * @private + * @param {Object} dataView The data view to clone. + * @param {boolean} [isDeep] Specify a deep clone. + * @returns {Object} Returns the cloned data view. + */ + function cloneDataView(dataView, isDeep) { + var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer; + return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength); + } + + /** + * Creates a clone of `map`. + * + * @private + * @param {Object} map The map to clone. + * @param {Function} cloneFunc The function to clone values. + * @param {boolean} [isDeep] Specify a deep clone. + * @returns {Object} Returns the cloned map. + */ + function cloneMap(map, isDeep, cloneFunc) { + var array = isDeep ? cloneFunc(mapToArray(map), CLONE_DEEP_FLAG) : mapToArray(map); + return arrayReduce(array, addMapEntry, new map.constructor); + } + + /** + * Creates a clone of `regexp`. + * + * @private + * @param {Object} regexp The regexp to clone. + * @returns {Object} Returns the cloned regexp. + */ + function cloneRegExp(regexp) { + var result = new regexp.constructor(regexp.source, reFlags.exec(regexp)); + result.lastIndex = regexp.lastIndex; + return result; + } + + /** + * Creates a clone of `set`. + * + * @private + * @param {Object} set The set to clone. + * @param {Function} cloneFunc The function to clone values. + * @param {boolean} [isDeep] Specify a deep clone. + * @returns {Object} Returns the cloned set. + */ + function cloneSet(set, isDeep, cloneFunc) { + var array = isDeep ? cloneFunc(setToArray(set), CLONE_DEEP_FLAG) : setToArray(set); + return arrayReduce(array, addSetEntry, new set.constructor); + } + + /** + * Creates a clone of the `symbol` object. + * + * @private + * @param {Object} symbol The symbol object to clone. + * @returns {Object} Returns the cloned symbol object. + */ + function cloneSymbol(symbol) { + return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {}; + } + + /** + * Creates a clone of `typedArray`. + * + * @private + * @param {Object} typedArray The typed array to clone. + * @param {boolean} [isDeep] Specify a deep clone. + * @returns {Object} Returns the cloned typed array. + */ + function cloneTypedArray(typedArray, isDeep) { + var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer; + return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length); + } + + /** + * Compares values to sort them in ascending order. + * + * @private + * @param {*} value The value to compare. + * @param {*} other The other value to compare. + * @returns {number} Returns the sort order indicator for `value`. + */ + function compareAscending(value, other) { + if (value !== other) { + var valIsDefined = value !== undefined, + valIsNull = value === null, + valIsReflexive = value === value, + valIsSymbol = isSymbol(value); + + var othIsDefined = other !== undefined, + othIsNull = other === null, + othIsReflexive = other === other, + othIsSymbol = isSymbol(other); + + if ((!othIsNull && !othIsSymbol && !valIsSymbol && value > other) || + (valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol) || + (valIsNull && othIsDefined && othIsReflexive) || + (!valIsDefined && othIsReflexive) || + !valIsReflexive) { + return 1; + } + if ((!valIsNull && !valIsSymbol && !othIsSymbol && value < other) || + (othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol) || + (othIsNull && valIsDefined && valIsReflexive) || + (!othIsDefined && valIsReflexive) || + !othIsReflexive) { + return -1; + } + } + return 0; + } + + /** + * Used by `_.orderBy` to compare multiple properties of a value to another + * and stable sort them. + * + * If `orders` is unspecified, all values are sorted in ascending order. Otherwise, + * specify an order of "desc" for descending or "asc" for ascending sort order + * of corresponding values. + * + * @private + * @param {Object} object The object to compare. + * @param {Object} other The other object to compare. + * @param {boolean[]|string[]} orders The order to sort by for each property. + * @returns {number} Returns the sort order indicator for `object`. + */ + function compareMultiple(object, other, orders) { + var index = -1, + objCriteria = object.criteria, + othCriteria = other.criteria, + length = objCriteria.length, + ordersLength = orders.length; + + while (++index < length) { + var result = compareAscending(objCriteria[index], othCriteria[index]); + if (result) { + if (index >= ordersLength) { + return result; + } + var order = orders[index]; + return result * (order == 'desc' ? -1 : 1); + } + } + // Fixes an `Array#sort` bug in the JS engine embedded in Adobe applications + // that causes it, under certain circumstances, to provide the same value for + // `object` and `other`. See https://github.com/jashkenas/underscore/pull/1247 + // for more details. + // + // This also ensures a stable sort in V8 and other engines. + // See https://bugs.chromium.org/p/v8/issues/detail?id=90 for more details. + return object.index - other.index; + } + + /** + * Creates an array that is the composition of partially applied arguments, + * placeholders, and provided arguments into a single array of arguments. + * + * @private + * @param {Array} args The provided arguments. + * @param {Array} partials The arguments to prepend to those provided. + * @param {Array} holders The `partials` placeholder indexes. + * @params {boolean} [isCurried] Specify composing for a curried function. + * @returns {Array} Returns the new array of composed arguments. + */ + function composeArgs(args, partials, holders, isCurried) { + var argsIndex = -1, + argsLength = args.length, + holdersLength = holders.length, + leftIndex = -1, + leftLength = partials.length, + rangeLength = nativeMax(argsLength - holdersLength, 0), + result = Array(leftLength + rangeLength), + isUncurried = !isCurried; + + while (++leftIndex < leftLength) { + result[leftIndex] = partials[leftIndex]; + } + while (++argsIndex < holdersLength) { + if (isUncurried || argsIndex < argsLength) { + result[holders[argsIndex]] = args[argsIndex]; + } + } + while (rangeLength--) { + result[leftIndex++] = args[argsIndex++]; + } + return result; + } + + /** + * This function is like `composeArgs` except that the arguments composition + * is tailored for `_.partialRight`. + * + * @private + * @param {Array} args The provided arguments. + * @param {Array} partials The arguments to append to those provided. + * @param {Array} holders The `partials` placeholder indexes. + * @params {boolean} [isCurried] Specify composing for a curried function. + * @returns {Array} Returns the new array of composed arguments. + */ + function composeArgsRight(args, partials, holders, isCurried) { + var argsIndex = -1, + argsLength = args.length, + holdersIndex = -1, + holdersLength = holders.length, + rightIndex = -1, + rightLength = partials.length, + rangeLength = nativeMax(argsLength - holdersLength, 0), + result = Array(rangeLength + rightLength), + isUncurried = !isCurried; + + while (++argsIndex < rangeLength) { + result[argsIndex] = args[argsIndex]; + } + var offset = argsIndex; + while (++rightIndex < rightLength) { + result[offset + rightIndex] = partials[rightIndex]; + } + while (++holdersIndex < holdersLength) { + if (isUncurried || argsIndex < argsLength) { + result[offset + holders[holdersIndex]] = args[argsIndex++]; + } + } + return result; + } + + /** + * Copies the values of `source` to `array`. + * + * @private + * @param {Array} source The array to copy values from. + * @param {Array} [array=[]] The array to copy values to. + * @returns {Array} Returns `array`. + */ + function copyArray(source, array) { + var index = -1, + length = source.length; + + array || (array = Array(length)); + while (++index < length) { + array[index] = source[index]; + } + return array; + } + + /** + * Copies properties of `source` to `object`. + * + * @private + * @param {Object} source The object to copy properties from. + * @param {Array} props The property identifiers to copy. + * @param {Object} [object={}] The object to copy properties to. + * @param {Function} [customizer] The function to customize copied values. + * @returns {Object} Returns `object`. + */ + function copyObject(source, props, object, customizer) { + var isNew = !object; + object || (object = {}); + + var index = -1, + length = props.length; + + while (++index < length) { + var key = props[index]; + + var newValue = customizer + ? customizer(object[key], source[key], key, object, source) + : undefined; + + if (newValue === undefined) { + newValue = source[key]; + } + if (isNew) { + baseAssignValue(object, key, newValue); + } else { + assignValue(object, key, newValue); + } + } + return object; + } + + /** + * Copies own symbols of `source` to `object`. + * + * @private + * @param {Object} source The object to copy symbols from. + * @param {Object} [object={}] The object to copy symbols to. + * @returns {Object} Returns `object`. + */ + function copySymbols(source, object) { + return copyObject(source, getSymbols(source), object); + } + + /** + * Copies own and inherited symbols of `source` to `object`. + * + * @private + * @param {Object} source The object to copy symbols from. + * @param {Object} [object={}] The object to copy symbols to. + * @returns {Object} Returns `object`. + */ + function copySymbolsIn(source, object) { + return copyObject(source, getSymbolsIn(source), object); + } + + /** + * Creates a function like `_.groupBy`. + * + * @private + * @param {Function} setter The function to set accumulator values. + * @param {Function} [initializer] The accumulator object initializer. + * @returns {Function} Returns the new aggregator function. + */ + function createAggregator(setter, initializer) { + return function(collection, iteratee) { + var func = isArray(collection) ? arrayAggregator : baseAggregator, + accumulator = initializer ? initializer() : {}; + + return func(collection, setter, getIteratee(iteratee, 2), accumulator); + }; + } + + /** + * Creates a function like `_.assign`. + * + * @private + * @param {Function} assigner The function to assign values. + * @returns {Function} Returns the new assigner function. + */ + function createAssigner(assigner) { + return baseRest(function(object, sources) { + var index = -1, + length = sources.length, + customizer = length > 1 ? sources[length - 1] : undefined, + guard = length > 2 ? sources[2] : undefined; + + customizer = (assigner.length > 3 && typeof customizer == 'function') + ? (length--, customizer) + : undefined; + + if (guard && isIterateeCall(sources[0], sources[1], guard)) { + customizer = length < 3 ? undefined : customizer; + length = 1; + } + object = Object(object); + while (++index < length) { + var source = sources[index]; + if (source) { + assigner(object, source, index, customizer); + } + } + return object; + }); + } + + /** + * Creates a `baseEach` or `baseEachRight` function. + * + * @private + * @param {Function} eachFunc The function to iterate over a collection. + * @param {boolean} [fromRight] Specify iterating from right to left. + * @returns {Function} Returns the new base function. + */ + function createBaseEach(eachFunc, fromRight) { + return function(collection, iteratee) { + if (collection == null) { + return collection; + } + if (!isArrayLike(collection)) { + return eachFunc(collection, iteratee); + } + var length = collection.length, + index = fromRight ? length : -1, + iterable = Object(collection); + + while ((fromRight ? index-- : ++index < length)) { + if (iteratee(iterable[index], index, iterable) === false) { + break; + } + } + return collection; + }; + } + + /** + * Creates a base function for methods like `_.forIn` and `_.forOwn`. + * + * @private + * @param {boolean} [fromRight] Specify iterating from right to left. + * @returns {Function} Returns the new base function. + */ + function createBaseFor(fromRight) { + return function(object, iteratee, keysFunc) { + var index = -1, + iterable = Object(object), + props = keysFunc(object), + length = props.length; + + while (length--) { + var key = props[fromRight ? length : ++index]; + if (iteratee(iterable[key], key, iterable) === false) { + break; + } + } + return object; + }; + } + + /** + * Creates a function that wraps `func` to invoke it with the optional `this` + * binding of `thisArg`. + * + * @private + * @param {Function} func The function to wrap. + * @param {number} bitmask The bitmask flags. See `createWrap` for more details. + * @param {*} [thisArg] The `this` binding of `func`. + * @returns {Function} Returns the new wrapped function. + */ + function createBind(func, bitmask, thisArg) { + var isBind = bitmask & WRAP_BIND_FLAG, + Ctor = createCtor(func); + + function wrapper() { + var fn = (this && this !== root && this instanceof wrapper) ? Ctor : func; + return fn.apply(isBind ? thisArg : this, arguments); + } + return wrapper; + } + + /** + * Creates a function like `_.lowerFirst`. + * + * @private + * @param {string} methodName The name of the `String` case method to use. + * @returns {Function} Returns the new case function. + */ + function createCaseFirst(methodName) { + return function(string) { + string = toString(string); + + var strSymbols = hasUnicode(string) + ? stringToArray(string) + : undefined; + + var chr = strSymbols + ? strSymbols[0] + : string.charAt(0); + + var trailing = strSymbols + ? castSlice(strSymbols, 1).join('') + : string.slice(1); + + return chr[methodName]() + trailing; + }; + } + + /** + * Creates a function like `_.camelCase`. + * + * @private + * @param {Function} callback The function to combine each word. + * @returns {Function} Returns the new compounder function. + */ + function createCompounder(callback) { + return function(string) { + return arrayReduce(words(deburr(string).replace(reApos, '')), callback, ''); + }; + } + + /** + * Creates a function that produces an instance of `Ctor` regardless of + * whether it was invoked as part of a `new` expression or by `call` or `apply`. + * + * @private + * @param {Function} Ctor The constructor to wrap. + * @returns {Function} Returns the new wrapped function. + */ + function createCtor(Ctor) { + return function() { + // Use a `switch` statement to work with class constructors. See + // http://ecma-international.org/ecma-262/7.0/#sec-ecmascript-function-objects-call-thisargument-argumentslist + // for more details. + var args = arguments; + switch (args.length) { + case 0: return new Ctor; + case 1: return new Ctor(args[0]); + case 2: return new Ctor(args[0], args[1]); + case 3: return new Ctor(args[0], args[1], args[2]); + case 4: return new Ctor(args[0], args[1], args[2], args[3]); + case 5: return new Ctor(args[0], args[1], args[2], args[3], args[4]); + case 6: return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5]); + case 7: return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5], args[6]); + } + var thisBinding = baseCreate(Ctor.prototype), + result = Ctor.apply(thisBinding, args); + + // Mimic the constructor's `return` behavior. + // See https://es5.github.io/#x13.2.2 for more details. + return isObject(result) ? result : thisBinding; + }; + } + + /** + * Creates a function that wraps `func` to enable currying. + * + * @private + * @param {Function} func The function to wrap. + * @param {number} bitmask The bitmask flags. See `createWrap` for more details. + * @param {number} arity The arity of `func`. + * @returns {Function} Returns the new wrapped function. + */ + function createCurry(func, bitmask, arity) { + var Ctor = createCtor(func); + + function wrapper() { + var length = arguments.length, + args = Array(length), + index = length, + placeholder = getHolder(wrapper); + + while (index--) { + args[index] = arguments[index]; + } + var holders = (length < 3 && args[0] !== placeholder && args[length - 1] !== placeholder) + ? [] + : replaceHolders(args, placeholder); + + length -= holders.length; + if (length < arity) { + return createRecurry( + func, bitmask, createHybrid, wrapper.placeholder, undefined, + args, holders, undefined, undefined, arity - length); + } + var fn = (this && this !== root && this instanceof wrapper) ? Ctor : func; + return apply(fn, this, args); + } + return wrapper; + } + + /** + * Creates a `_.find` or `_.findLast` function. + * + * @private + * @param {Function} findIndexFunc The function to find the collection index. + * @returns {Function} Returns the new find function. + */ + function createFind(findIndexFunc) { + return function(collection, predicate, fromIndex) { + var iterable = Object(collection); + if (!isArrayLike(collection)) { + var iteratee = getIteratee(predicate, 3); + collection = keys(collection); + predicate = function(key) { return iteratee(iterable[key], key, iterable); }; + } + var index = findIndexFunc(collection, predicate, fromIndex); + return index > -1 ? iterable[iteratee ? collection[index] : index] : undefined; + }; + } + + /** + * Creates a `_.flow` or `_.flowRight` function. + * + * @private + * @param {boolean} [fromRight] Specify iterating from right to left. + * @returns {Function} Returns the new flow function. + */ + function createFlow(fromRight) { + return flatRest(function(funcs) { + var length = funcs.length, + index = length, + prereq = LodashWrapper.prototype.thru; + + if (fromRight) { + funcs.reverse(); + } + while (index--) { + var func = funcs[index]; + if (typeof func != 'function') { + throw new TypeError(FUNC_ERROR_TEXT); + } + if (prereq && !wrapper && getFuncName(func) == 'wrapper') { + var wrapper = new LodashWrapper([], true); + } + } + index = wrapper ? index : length; + while (++index < length) { + func = funcs[index]; + + var funcName = getFuncName(func), + data = funcName == 'wrapper' ? getData(func) : undefined; + + if (data && isLaziable(data[0]) && + data[1] == (WRAP_ARY_FLAG | WRAP_CURRY_FLAG | WRAP_PARTIAL_FLAG | WRAP_REARG_FLAG) && + !data[4].length && data[9] == 1 + ) { + wrapper = wrapper[getFuncName(data[0])].apply(wrapper, data[3]); + } else { + wrapper = (func.length == 1 && isLaziable(func)) + ? wrapper[funcName]() + : wrapper.thru(func); + } + } + return function() { + var args = arguments, + value = args[0]; + + if (wrapper && args.length == 1 && isArray(value)) { + return wrapper.plant(value).value(); + } + var index = 0, + result = length ? funcs[index].apply(this, args) : value; + + while (++index < length) { + result = funcs[index].call(this, result); + } + return result; + }; + }); + } + + /** + * Creates a function that wraps `func` to invoke it with optional `this` + * binding of `thisArg`, partial application, and currying. + * + * @private + * @param {Function|string} func The function or method name to wrap. + * @param {number} bitmask The bitmask flags. See `createWrap` for more details. + * @param {*} [thisArg] The `this` binding of `func`. + * @param {Array} [partials] The arguments to prepend to those provided to + * the new function. + * @param {Array} [holders] The `partials` placeholder indexes. + * @param {Array} [partialsRight] The arguments to append to those provided + * to the new function. + * @param {Array} [holdersRight] The `partialsRight` placeholder indexes. + * @param {Array} [argPos] The argument positions of the new function. + * @param {number} [ary] The arity cap of `func`. + * @param {number} [arity] The arity of `func`. + * @returns {Function} Returns the new wrapped function. + */ + function createHybrid(func, bitmask, thisArg, partials, holders, partialsRight, holdersRight, argPos, ary, arity) { + var isAry = bitmask & WRAP_ARY_FLAG, + isBind = bitmask & WRAP_BIND_FLAG, + isBindKey = bitmask & WRAP_BIND_KEY_FLAG, + isCurried = bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG), + isFlip = bitmask & WRAP_FLIP_FLAG, + Ctor = isBindKey ? undefined : createCtor(func); + + function wrapper() { + var length = arguments.length, + args = Array(length), + index = length; + + while (index--) { + args[index] = arguments[index]; + } + if (isCurried) { + var placeholder = getHolder(wrapper), + holdersCount = countHolders(args, placeholder); + } + if (partials) { + args = composeArgs(args, partials, holders, isCurried); + } + if (partialsRight) { + args = composeArgsRight(args, partialsRight, holdersRight, isCurried); + } + length -= holdersCount; + if (isCurried && length < arity) { + var newHolders = replaceHolders(args, placeholder); + return createRecurry( + func, bitmask, createHybrid, wrapper.placeholder, thisArg, + args, newHolders, argPos, ary, arity - length + ); + } + var thisBinding = isBind ? thisArg : this, + fn = isBindKey ? thisBinding[func] : func; + + length = args.length; + if (argPos) { + args = reorder(args, argPos); + } else if (isFlip && length > 1) { + args.reverse(); + } + if (isAry && ary < length) { + args.length = ary; + } + if (this && this !== root && this instanceof wrapper) { + fn = Ctor || createCtor(fn); + } + return fn.apply(thisBinding, args); + } + return wrapper; + } + + /** + * Creates a function like `_.invertBy`. + * + * @private + * @param {Function} setter The function to set accumulator values. + * @param {Function} toIteratee The function to resolve iteratees. + * @returns {Function} Returns the new inverter function. + */ + function createInverter(setter, toIteratee) { + return function(object, iteratee) { + return baseInverter(object, setter, toIteratee(iteratee), {}); + }; + } + + /** + * Creates a function that performs a mathematical operation on two values. + * + * @private + * @param {Function} operator The function to perform the operation. + * @param {number} [defaultValue] The value used for `undefined` arguments. + * @returns {Function} Returns the new mathematical operation function. + */ + function createMathOperation(operator, defaultValue) { + return function(value, other) { + var result; + if (value === undefined && other === undefined) { + return defaultValue; + } + if (value !== undefined) { + result = value; + } + if (other !== undefined) { + if (result === undefined) { + return other; + } + if (typeof value == 'string' || typeof other == 'string') { + value = baseToString(value); + other = baseToString(other); + } else { + value = baseToNumber(value); + other = baseToNumber(other); + } + result = operator(value, other); + } + return result; + }; + } + + /** + * Creates a function like `_.over`. + * + * @private + * @param {Function} arrayFunc The function to iterate over iteratees. + * @returns {Function} Returns the new over function. + */ + function createOver(arrayFunc) { + return flatRest(function(iteratees) { + iteratees = arrayMap(iteratees, baseUnary(getIteratee())); + return baseRest(function(args) { + var thisArg = this; + return arrayFunc(iteratees, function(iteratee) { + return apply(iteratee, thisArg, args); + }); + }); + }); + } + + /** + * Creates the padding for `string` based on `length`. The `chars` string + * is truncated if the number of characters exceeds `length`. + * + * @private + * @param {number} length The padding length. + * @param {string} [chars=' '] The string used as padding. + * @returns {string} Returns the padding for `string`. + */ + function createPadding(length, chars) { + chars = chars === undefined ? ' ' : baseToString(chars); + + var charsLength = chars.length; + if (charsLength < 2) { + return charsLength ? baseRepeat(chars, length) : chars; + } + var result = baseRepeat(chars, nativeCeil(length / stringSize(chars))); + return hasUnicode(chars) + ? castSlice(stringToArray(result), 0, length).join('') + : result.slice(0, length); + } + + /** + * Creates a function that wraps `func` to invoke it with the `this` binding + * of `thisArg` and `partials` prepended to the arguments it receives. + * + * @private + * @param {Function} func The function to wrap. + * @param {number} bitmask The bitmask flags. See `createWrap` for more details. + * @param {*} thisArg The `this` binding of `func`. + * @param {Array} partials The arguments to prepend to those provided to + * the new function. + * @returns {Function} Returns the new wrapped function. + */ + function createPartial(func, bitmask, thisArg, partials) { + var isBind = bitmask & WRAP_BIND_FLAG, + Ctor = createCtor(func); + + function wrapper() { + var argsIndex = -1, + argsLength = arguments.length, + leftIndex = -1, + leftLength = partials.length, + args = Array(leftLength + argsLength), + fn = (this && this !== root && this instanceof wrapper) ? Ctor : func; + + while (++leftIndex < leftLength) { + args[leftIndex] = partials[leftIndex]; + } + while (argsLength--) { + args[leftIndex++] = arguments[++argsIndex]; + } + return apply(fn, isBind ? thisArg : this, args); + } + return wrapper; + } + + /** + * Creates a `_.range` or `_.rangeRight` function. + * + * @private + * @param {boolean} [fromRight] Specify iterating from right to left. + * @returns {Function} Returns the new range function. + */ + function createRange(fromRight) { + return function(start, end, step) { + if (step && typeof step != 'number' && isIterateeCall(start, end, step)) { + end = step = undefined; + } + // Ensure the sign of `-0` is preserved. + start = toFinite(start); + if (end === undefined) { + end = start; + start = 0; + } else { + end = toFinite(end); + } + step = step === undefined ? (start < end ? 1 : -1) : toFinite(step); + return baseRange(start, end, step, fromRight); + }; + } + + /** + * Creates a function that performs a relational operation on two values. + * + * @private + * @param {Function} operator The function to perform the operation. + * @returns {Function} Returns the new relational operation function. + */ + function createRelationalOperation(operator) { + return function(value, other) { + if (!(typeof value == 'string' && typeof other == 'string')) { + value = toNumber(value); + other = toNumber(other); + } + return operator(value, other); + }; + } + + /** + * Creates a function that wraps `func` to continue currying. + * + * @private + * @param {Function} func The function to wrap. + * @param {number} bitmask The bitmask flags. See `createWrap` for more details. + * @param {Function} wrapFunc The function to create the `func` wrapper. + * @param {*} placeholder The placeholder value. + * @param {*} [thisArg] The `this` binding of `func`. + * @param {Array} [partials] The arguments to prepend to those provided to + * the new function. + * @param {Array} [holders] The `partials` placeholder indexes. + * @param {Array} [argPos] The argument positions of the new function. + * @param {number} [ary] The arity cap of `func`. + * @param {number} [arity] The arity of `func`. + * @returns {Function} Returns the new wrapped function. + */ + function createRecurry(func, bitmask, wrapFunc, placeholder, thisArg, partials, holders, argPos, ary, arity) { + var isCurry = bitmask & WRAP_CURRY_FLAG, + newHolders = isCurry ? holders : undefined, + newHoldersRight = isCurry ? undefined : holders, + newPartials = isCurry ? partials : undefined, + newPartialsRight = isCurry ? undefined : partials; + + bitmask |= (isCurry ? WRAP_PARTIAL_FLAG : WRAP_PARTIAL_RIGHT_FLAG); + bitmask &= ~(isCurry ? WRAP_PARTIAL_RIGHT_FLAG : WRAP_PARTIAL_FLAG); + + if (!(bitmask & WRAP_CURRY_BOUND_FLAG)) { + bitmask &= ~(WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG); + } + var newData = [ + func, bitmask, thisArg, newPartials, newHolders, newPartialsRight, + newHoldersRight, argPos, ary, arity + ]; + + var result = wrapFunc.apply(undefined, newData); + if (isLaziable(func)) { + setData(result, newData); + } + result.placeholder = placeholder; + return setWrapToString(result, func, bitmask); + } + + /** + * Creates a function like `_.round`. + * + * @private + * @param {string} methodName The name of the `Math` method to use when rounding. + * @returns {Function} Returns the new round function. + */ + function createRound(methodName) { + var func = Math[methodName]; + return function(number, precision) { + number = toNumber(number); + precision = precision == null ? 0 : nativeMin(toInteger(precision), 292); + if (precision) { + // Shift with exponential notation to avoid floating-point issues. + // See [MDN](https://mdn.io/round#Examples) for more details. + var pair = (toString(number) + 'e').split('e'), + value = func(pair[0] + 'e' + (+pair[1] + precision)); + + pair = (toString(value) + 'e').split('e'); + return +(pair[0] + 'e' + (+pair[1] - precision)); + } + return func(number); + }; + } + + /** + * Creates a set object of `values`. + * + * @private + * @param {Array} values The values to add to the set. + * @returns {Object} Returns the new set. + */ + var createSet = !(Set && (1 / setToArray(new Set([,-0]))[1]) == INFINITY) ? noop : function(values) { + return new Set(values); + }; + + /** + * Creates a `_.toPairs` or `_.toPairsIn` function. + * + * @private + * @param {Function} keysFunc The function to get the keys of a given object. + * @returns {Function} Returns the new pairs function. + */ + function createToPairs(keysFunc) { + return function(object) { + var tag = getTag(object); + if (tag == mapTag) { + return mapToArray(object); + } + if (tag == setTag) { + return setToPairs(object); + } + return baseToPairs(object, keysFunc(object)); + }; + } + + /** + * Creates a function that either curries or invokes `func` with optional + * `this` binding and partially applied arguments. + * + * @private + * @param {Function|string} func The function or method name to wrap. + * @param {number} bitmask The bitmask flags. + * 1 - `_.bind` + * 2 - `_.bindKey` + * 4 - `_.curry` or `_.curryRight` of a bound function + * 8 - `_.curry` + * 16 - `_.curryRight` + * 32 - `_.partial` + * 64 - `_.partialRight` + * 128 - `_.rearg` + * 256 - `_.ary` + * 512 - `_.flip` + * @param {*} [thisArg] The `this` binding of `func`. + * @param {Array} [partials] The arguments to be partially applied. + * @param {Array} [holders] The `partials` placeholder indexes. + * @param {Array} [argPos] The argument positions of the new function. + * @param {number} [ary] The arity cap of `func`. + * @param {number} [arity] The arity of `func`. + * @returns {Function} Returns the new wrapped function. + */ + function createWrap(func, bitmask, thisArg, partials, holders, argPos, ary, arity) { + var isBindKey = bitmask & WRAP_BIND_KEY_FLAG; + if (!isBindKey && typeof func != 'function') { + throw new TypeError(FUNC_ERROR_TEXT); + } + var length = partials ? partials.length : 0; + if (!length) { + bitmask &= ~(WRAP_PARTIAL_FLAG | WRAP_PARTIAL_RIGHT_FLAG); + partials = holders = undefined; + } + ary = ary === undefined ? ary : nativeMax(toInteger(ary), 0); + arity = arity === undefined ? arity : toInteger(arity); + length -= holders ? holders.length : 0; + + if (bitmask & WRAP_PARTIAL_RIGHT_FLAG) { + var partialsRight = partials, + holdersRight = holders; + + partials = holders = undefined; + } + var data = isBindKey ? undefined : getData(func); + + var newData = [ + func, bitmask, thisArg, partials, holders, partialsRight, holdersRight, + argPos, ary, arity + ]; + + if (data) { + mergeData(newData, data); + } + func = newData[0]; + bitmask = newData[1]; + thisArg = newData[2]; + partials = newData[3]; + holders = newData[4]; + arity = newData[9] = newData[9] === undefined + ? (isBindKey ? 0 : func.length) + : nativeMax(newData[9] - length, 0); + + if (!arity && bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG)) { + bitmask &= ~(WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG); + } + if (!bitmask || bitmask == WRAP_BIND_FLAG) { + var result = createBind(func, bitmask, thisArg); + } else if (bitmask == WRAP_CURRY_FLAG || bitmask == WRAP_CURRY_RIGHT_FLAG) { + result = createCurry(func, bitmask, arity); + } else if ((bitmask == WRAP_PARTIAL_FLAG || bitmask == (WRAP_BIND_FLAG | WRAP_PARTIAL_FLAG)) && !holders.length) { + result = createPartial(func, bitmask, thisArg, partials); + } else { + result = createHybrid.apply(undefined, newData); + } + var setter = data ? baseSetData : setData; + return setWrapToString(setter(result, newData), func, bitmask); + } + + /** + * Used by `_.defaults` to customize its `_.assignIn` use to assign properties + * of source objects to the destination object for all destination properties + * that resolve to `undefined`. + * + * @private + * @param {*} objValue The destination value. + * @param {*} srcValue The source value. + * @param {string} key The key of the property to assign. + * @param {Object} object The parent object of `objValue`. + * @returns {*} Returns the value to assign. + */ + function customDefaultsAssignIn(objValue, srcValue, key, object) { + if (objValue === undefined || + (eq(objValue, objectProto[key]) && !hasOwnProperty.call(object, key))) { + return srcValue; + } + return objValue; + } + + /** + * Used by `_.defaultsDeep` to customize its `_.merge` use to merge source + * objects into destination objects that are passed thru. + * + * @private + * @param {*} objValue The destination value. + * @param {*} srcValue The source value. + * @param {string} key The key of the property to merge. + * @param {Object} object The parent object of `objValue`. + * @param {Object} source The parent object of `srcValue`. + * @param {Object} [stack] Tracks traversed source values and their merged + * counterparts. + * @returns {*} Returns the value to assign. + */ + function customDefaultsMerge(objValue, srcValue, key, object, source, stack) { + if (isObject(objValue) && isObject(srcValue)) { + // Recursively merge objects and arrays (susceptible to call stack limits). + stack.set(srcValue, objValue); + baseMerge(objValue, srcValue, undefined, customDefaultsMerge, stack); + stack['delete'](srcValue); + } + return objValue; + } + + /** + * Used by `_.omit` to customize its `_.cloneDeep` use to only clone plain + * objects. + * + * @private + * @param {*} value The value to inspect. + * @param {string} key The key of the property to inspect. + * @returns {*} Returns the uncloned value or `undefined` to defer cloning to `_.cloneDeep`. + */ + function customOmitClone(value) { + return isPlainObject(value) ? undefined : value; + } + + /** + * A specialized version of `baseIsEqualDeep` for arrays with support for + * partial deep comparisons. + * + * @private + * @param {Array} array The array to compare. + * @param {Array} other The other array to compare. + * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. + * @param {Function} customizer The function to customize comparisons. + * @param {Function} equalFunc The function to determine equivalents of values. + * @param {Object} stack Tracks traversed `array` and `other` objects. + * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`. + */ + function equalArrays(array, other, bitmask, customizer, equalFunc, stack) { + var isPartial = bitmask & COMPARE_PARTIAL_FLAG, + arrLength = array.length, + othLength = other.length; + + if (arrLength != othLength && !(isPartial && othLength > arrLength)) { + return false; + } + // Assume cyclic values are equal. + var stacked = stack.get(array); + if (stacked && stack.get(other)) { + return stacked == other; + } + var index = -1, + result = true, + seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined; + + stack.set(array, other); + stack.set(other, array); + + // Ignore non-index properties. + while (++index < arrLength) { + var arrValue = array[index], + othValue = other[index]; + + if (customizer) { + var compared = isPartial + ? customizer(othValue, arrValue, index, other, array, stack) + : customizer(arrValue, othValue, index, array, other, stack); + } + if (compared !== undefined) { + if (compared) { + continue; + } + result = false; + break; + } + // Recursively compare arrays (susceptible to call stack limits). + if (seen) { + if (!arraySome(other, function(othValue, othIndex) { + if (!cacheHas(seen, othIndex) && + (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) { + return seen.push(othIndex); + } + })) { + result = false; + break; + } + } else if (!( + arrValue === othValue || + equalFunc(arrValue, othValue, bitmask, customizer, stack) + )) { + result = false; + break; + } + } + stack['delete'](array); + stack['delete'](other); + return result; + } + + /** + * A specialized version of `baseIsEqualDeep` for comparing objects of + * the same `toStringTag`. + * + * **Note:** This function only supports comparing values with tags of + * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`. + * + * @private + * @param {Object} object The object to compare. + * @param {Object} other The other object to compare. + * @param {string} tag The `toStringTag` of the objects to compare. + * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. + * @param {Function} customizer The function to customize comparisons. + * @param {Function} equalFunc The function to determine equivalents of values. + * @param {Object} stack Tracks traversed `object` and `other` objects. + * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. + */ + function equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) { + switch (tag) { + case dataViewTag: + if ((object.byteLength != other.byteLength) || + (object.byteOffset != other.byteOffset)) { + return false; + } + object = object.buffer; + other = other.buffer; + + case arrayBufferTag: + if ((object.byteLength != other.byteLength) || + !equalFunc(new Uint8Array(object), new Uint8Array(other))) { + return false; + } + return true; + + case boolTag: + case dateTag: + case numberTag: + // Coerce booleans to `1` or `0` and dates to milliseconds. + // Invalid dates are coerced to `NaN`. + return eq(+object, +other); + + case errorTag: + return object.name == other.name && object.message == other.message; + + case regexpTag: + case stringTag: + // Coerce regexes to strings and treat strings, primitives and objects, + // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring + // for more details. + return object == (other + ''); + + case mapTag: + var convert = mapToArray; + + case setTag: + var isPartial = bitmask & COMPARE_PARTIAL_FLAG; + convert || (convert = setToArray); + + if (object.size != other.size && !isPartial) { + return false; + } + // Assume cyclic values are equal. + var stacked = stack.get(object); + if (stacked) { + return stacked == other; + } + bitmask |= COMPARE_UNORDERED_FLAG; + + // Recursively compare objects (susceptible to call stack limits). + stack.set(object, other); + var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack); + stack['delete'](object); + return result; + + case symbolTag: + if (symbolValueOf) { + return symbolValueOf.call(object) == symbolValueOf.call(other); + } + } + return false; + } + + /** + * A specialized version of `baseIsEqualDeep` for objects with support for + * partial deep comparisons. + * + * @private + * @param {Object} object The object to compare. + * @param {Object} other The other object to compare. + * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. + * @param {Function} customizer The function to customize comparisons. + * @param {Function} equalFunc The function to determine equivalents of values. + * @param {Object} stack Tracks traversed `object` and `other` objects. + * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. + */ + function equalObjects(object, other, bitmask, customizer, equalFunc, stack) { + var isPartial = bitmask & COMPARE_PARTIAL_FLAG, + objProps = getAllKeys(object), + objLength = objProps.length, + othProps = getAllKeys(other), + othLength = othProps.length; + + if (objLength != othLength && !isPartial) { + return false; + } + var index = objLength; + while (index--) { + var key = objProps[index]; + if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) { + return false; + } + } + // Assume cyclic values are equal. + var stacked = stack.get(object); + if (stacked && stack.get(other)) { + return stacked == other; + } + var result = true; + stack.set(object, other); + stack.set(other, object); + + var skipCtor = isPartial; + while (++index < objLength) { + key = objProps[index]; + var objValue = object[key], + othValue = other[key]; + + if (customizer) { + var compared = isPartial + ? customizer(othValue, objValue, key, other, object, stack) + : customizer(objValue, othValue, key, object, other, stack); + } + // Recursively compare objects (susceptible to call stack limits). + if (!(compared === undefined + ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack)) + : compared + )) { + result = false; + break; + } + skipCtor || (skipCtor = key == 'constructor'); + } + if (result && !skipCtor) { + var objCtor = object.constructor, + othCtor = other.constructor; + + // Non `Object` object instances with different constructors are not equal. + if (objCtor != othCtor && + ('constructor' in object && 'constructor' in other) && + !(typeof objCtor == 'function' && objCtor instanceof objCtor && + typeof othCtor == 'function' && othCtor instanceof othCtor)) { + result = false; + } + } + stack['delete'](object); + stack['delete'](other); + return result; + } + + /** + * A specialized version of `baseRest` which flattens the rest array. + * + * @private + * @param {Function} func The function to apply a rest parameter to. + * @returns {Function} Returns the new function. + */ + function flatRest(func) { + return setToString(overRest(func, undefined, flatten), func + ''); + } + + /** + * Creates an array of own enumerable property names and symbols of `object`. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names and symbols. + */ + function getAllKeys(object) { + return baseGetAllKeys(object, keys, getSymbols); + } + + /** + * Creates an array of own and inherited enumerable property names and + * symbols of `object`. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names and symbols. + */ + function getAllKeysIn(object) { + return baseGetAllKeys(object, keysIn, getSymbolsIn); + } + + /** + * Gets metadata for `func`. + * + * @private + * @param {Function} func The function to query. + * @returns {*} Returns the metadata for `func`. + */ + var getData = !metaMap ? noop : function(func) { + return metaMap.get(func); + }; + + /** + * Gets the name of `func`. + * + * @private + * @param {Function} func The function to query. + * @returns {string} Returns the function name. + */ + function getFuncName(func) { + var result = (func.name + ''), + array = realNames[result], + length = hasOwnProperty.call(realNames, result) ? array.length : 0; + + while (length--) { + var data = array[length], + otherFunc = data.func; + if (otherFunc == null || otherFunc == func) { + return data.name; + } + } + return result; + } + + /** + * Gets the argument placeholder value for `func`. + * + * @private + * @param {Function} func The function to inspect. + * @returns {*} Returns the placeholder value. + */ + function getHolder(func) { + var object = hasOwnProperty.call(lodash, 'placeholder') ? lodash : func; + return object.placeholder; + } + + /** + * Gets the appropriate "iteratee" function. If `_.iteratee` is customized, + * this function returns the custom method, otherwise it returns `baseIteratee`. + * If arguments are provided, the chosen function is invoked with them and + * its result is returned. + * + * @private + * @param {*} [value] The value to convert to an iteratee. + * @param {number} [arity] The arity of the created iteratee. + * @returns {Function} Returns the chosen function or its result. + */ + function getIteratee() { + var result = lodash.iteratee || iteratee; + result = result === iteratee ? baseIteratee : result; + return arguments.length ? result(arguments[0], arguments[1]) : result; + } + + /** + * Gets the data for `map`. + * + * @private + * @param {Object} map The map to query. + * @param {string} key The reference key. + * @returns {*} Returns the map data. + */ + function getMapData(map, key) { + var data = map.__data__; + return isKeyable(key) + ? data[typeof key == 'string' ? 'string' : 'hash'] + : data.map; + } + + /** + * Gets the property names, values, and compare flags of `object`. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the match data of `object`. + */ + function getMatchData(object) { + var result = keys(object), + length = result.length; + + while (length--) { + var key = result[length], + value = object[key]; + + result[length] = [key, value, isStrictComparable(value)]; + } + return result; + } + + /** + * Gets the native function at `key` of `object`. + * + * @private + * @param {Object} object The object to query. + * @param {string} key The key of the method to get. + * @returns {*} Returns the function if it's native, else `undefined`. + */ + function getNative(object, key) { + var value = getValue(object, key); + return baseIsNative(value) ? value : undefined; + } + + /** + * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values. + * + * @private + * @param {*} value The value to query. + * @returns {string} Returns the raw `toStringTag`. + */ + function getRawTag(value) { + var isOwn = hasOwnProperty.call(value, symToStringTag), + tag = value[symToStringTag]; + + try { + value[symToStringTag] = undefined; + var unmasked = true; + } catch (e) {} + + var result = nativeObjectToString.call(value); + if (unmasked) { + if (isOwn) { + value[symToStringTag] = tag; + } else { + delete value[symToStringTag]; + } + } + return result; + } + + /** + * Creates an array of the own enumerable symbols of `object`. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the array of symbols. + */ + var getSymbols = !nativeGetSymbols ? stubArray : function(object) { + if (object == null) { + return []; + } + object = Object(object); + return arrayFilter(nativeGetSymbols(object), function(symbol) { + return propertyIsEnumerable.call(object, symbol); + }); + }; + + /** + * Creates an array of the own and inherited enumerable symbols of `object`. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the array of symbols. + */ + var getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) { + var result = []; + while (object) { + arrayPush(result, getSymbols(object)); + object = getPrototype(object); + } + return result; + }; + + /** + * Gets the `toStringTag` of `value`. + * + * @private + * @param {*} value The value to query. + * @returns {string} Returns the `toStringTag`. + */ + var getTag = baseGetTag; + + // Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6. + if ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) || + (Map && getTag(new Map) != mapTag) || + (Promise && getTag(Promise.resolve()) != promiseTag) || + (Set && getTag(new Set) != setTag) || + (WeakMap && getTag(new WeakMap) != weakMapTag)) { + getTag = function(value) { + var result = baseGetTag(value), + Ctor = result == objectTag ? value.constructor : undefined, + ctorString = Ctor ? toSource(Ctor) : ''; + + if (ctorString) { + switch (ctorString) { + case dataViewCtorString: return dataViewTag; + case mapCtorString: return mapTag; + case promiseCtorString: return promiseTag; + case setCtorString: return setTag; + case weakMapCtorString: return weakMapTag; + } + } + return result; + }; + } + + /** + * Gets the view, applying any `transforms` to the `start` and `end` positions. + * + * @private + * @param {number} start The start of the view. + * @param {number} end The end of the view. + * @param {Array} transforms The transformations to apply to the view. + * @returns {Object} Returns an object containing the `start` and `end` + * positions of the view. + */ + function getView(start, end, transforms) { + var index = -1, + length = transforms.length; + + while (++index < length) { + var data = transforms[index], + size = data.size; + + switch (data.type) { + case 'drop': start += size; break; + case 'dropRight': end -= size; break; + case 'take': end = nativeMin(end, start + size); break; + case 'takeRight': start = nativeMax(start, end - size); break; + } + } + return { 'start': start, 'end': end }; + } + + /** + * Extracts wrapper details from the `source` body comment. + * + * @private + * @param {string} source The source to inspect. + * @returns {Array} Returns the wrapper details. + */ + function getWrapDetails(source) { + var match = source.match(reWrapDetails); + return match ? match[1].split(reSplitDetails) : []; + } + + /** + * Checks if `path` exists on `object`. + * + * @private + * @param {Object} object The object to query. + * @param {Array|string} path The path to check. + * @param {Function} hasFunc The function to check properties. + * @returns {boolean} Returns `true` if `path` exists, else `false`. + */ + function hasPath(object, path, hasFunc) { + path = castPath(path, object); + + var index = -1, + length = path.length, + result = false; + + while (++index < length) { + var key = toKey(path[index]); + if (!(result = object != null && hasFunc(object, key))) { + break; + } + object = object[key]; + } + if (result || ++index != length) { + return result; + } + length = object == null ? 0 : object.length; + return !!length && isLength(length) && isIndex(key, length) && + (isArray(object) || isArguments(object)); + } + + /** + * Initializes an array clone. + * + * @private + * @param {Array} array The array to clone. + * @returns {Array} Returns the initialized clone. + */ + function initCloneArray(array) { + var length = array.length, + result = array.constructor(length); + + // Add properties assigned by `RegExp#exec`. + if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) { + result.index = array.index; + result.input = array.input; + } + return result; + } + + /** + * Initializes an object clone. + * + * @private + * @param {Object} object The object to clone. + * @returns {Object} Returns the initialized clone. + */ + function initCloneObject(object) { + return (typeof object.constructor == 'function' && !isPrototype(object)) + ? baseCreate(getPrototype(object)) + : {}; + } + + /** + * Initializes an object clone based on its `toStringTag`. + * + * **Note:** This function only supports cloning values with tags of + * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`. + * + * @private + * @param {Object} object The object to clone. + * @param {string} tag The `toStringTag` of the object to clone. + * @param {Function} cloneFunc The function to clone values. + * @param {boolean} [isDeep] Specify a deep clone. + * @returns {Object} Returns the initialized clone. + */ + function initCloneByTag(object, tag, cloneFunc, isDeep) { + var Ctor = object.constructor; + switch (tag) { + case arrayBufferTag: + return cloneArrayBuffer(object); + + case boolTag: + case dateTag: + return new Ctor(+object); + + case dataViewTag: + return cloneDataView(object, isDeep); + + case float32Tag: case float64Tag: + case int8Tag: case int16Tag: case int32Tag: + case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag: + return cloneTypedArray(object, isDeep); + + case mapTag: + return cloneMap(object, isDeep, cloneFunc); + + case numberTag: + case stringTag: + return new Ctor(object); + + case regexpTag: + return cloneRegExp(object); + + case setTag: + return cloneSet(object, isDeep, cloneFunc); + + case symbolTag: + return cloneSymbol(object); + } + } + + /** + * Inserts wrapper `details` in a comment at the top of the `source` body. + * + * @private + * @param {string} source The source to modify. + * @returns {Array} details The details to insert. + * @returns {string} Returns the modified source. + */ + function insertWrapDetails(source, details) { + var length = details.length; + if (!length) { + return source; + } + var lastIndex = length - 1; + details[lastIndex] = (length > 1 ? '& ' : '') + details[lastIndex]; + details = details.join(length > 2 ? ', ' : ' '); + return source.replace(reWrapComment, '{\n/* [wrapped with ' + details + '] */\n'); + } + + /** + * Checks if `value` is a flattenable `arguments` object or array. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is flattenable, else `false`. + */ + function isFlattenable(value) { + return isArray(value) || isArguments(value) || + !!(spreadableSymbol && value && value[spreadableSymbol]); + } + + /** + * Checks if `value` is a valid array-like index. + * + * @private + * @param {*} value The value to check. + * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index. + * @returns {boolean} Returns `true` if `value` is a valid index, else `false`. + */ + function isIndex(value, length) { + length = length == null ? MAX_SAFE_INTEGER : length; + return !!length && + (typeof value == 'number' || reIsUint.test(value)) && + (value > -1 && value % 1 == 0 && value < length); + } + + /** + * Checks if the given arguments are from an iteratee call. + * + * @private + * @param {*} value The potential iteratee value argument. + * @param {*} index The potential iteratee index or key argument. + * @param {*} object The potential iteratee object argument. + * @returns {boolean} Returns `true` if the arguments are from an iteratee call, + * else `false`. + */ + function isIterateeCall(value, index, object) { + if (!isObject(object)) { + return false; + } + var type = typeof index; + if (type == 'number' + ? (isArrayLike(object) && isIndex(index, object.length)) + : (type == 'string' && index in object) + ) { + return eq(object[index], value); + } + return false; + } + + /** + * Checks if `value` is a property name and not a property path. + * + * @private + * @param {*} value The value to check. + * @param {Object} [object] The object to query keys on. + * @returns {boolean} Returns `true` if `value` is a property name, else `false`. + */ + function isKey(value, object) { + if (isArray(value)) { + return false; + } + var type = typeof value; + if (type == 'number' || type == 'symbol' || type == 'boolean' || + value == null || isSymbol(value)) { + return true; + } + return reIsPlainProp.test(value) || !reIsDeepProp.test(value) || + (object != null && value in Object(object)); + } + + /** + * Checks if `value` is suitable for use as unique object key. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is suitable, else `false`. + */ + function isKeyable(value) { + var type = typeof value; + return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean') + ? (value !== '__proto__') + : (value === null); + } + + /** + * Checks if `func` has a lazy counterpart. + * + * @private + * @param {Function} func The function to check. + * @returns {boolean} Returns `true` if `func` has a lazy counterpart, + * else `false`. + */ + function isLaziable(func) { + var funcName = getFuncName(func), + other = lodash[funcName]; + + if (typeof other != 'function' || !(funcName in LazyWrapper.prototype)) { + return false; + } + if (func === other) { + return true; + } + var data = getData(other); + return !!data && func === data[0]; + } + + /** + * Checks if `func` has its source masked. + * + * @private + * @param {Function} func The function to check. + * @returns {boolean} Returns `true` if `func` is masked, else `false`. + */ + function isMasked(func) { + return !!maskSrcKey && (maskSrcKey in func); + } + + /** + * Checks if `func` is capable of being masked. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `func` is maskable, else `false`. + */ + var isMaskable = coreJsData ? isFunction : stubFalse; + + /** + * Checks if `value` is likely a prototype object. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a prototype, else `false`. + */ + function isPrototype(value) { + var Ctor = value && value.constructor, + proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto; + + return value === proto; + } + + /** + * Checks if `value` is suitable for strict equality comparisons, i.e. `===`. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` if suitable for strict + * equality comparisons, else `false`. + */ + function isStrictComparable(value) { + return value === value && !isObject(value); + } + + /** + * A specialized version of `matchesProperty` for source values suitable + * for strict equality comparisons, i.e. `===`. + * + * @private + * @param {string} key The key of the property to get. + * @param {*} srcValue The value to match. + * @returns {Function} Returns the new spec function. + */ + function matchesStrictComparable(key, srcValue) { + return function(object) { + if (object == null) { + return false; + } + return object[key] === srcValue && + (srcValue !== undefined || (key in Object(object))); + }; + } + + /** + * A specialized version of `_.memoize` which clears the memoized function's + * cache when it exceeds `MAX_MEMOIZE_SIZE`. + * + * @private + * @param {Function} func The function to have its output memoized. + * @returns {Function} Returns the new memoized function. + */ + function memoizeCapped(func) { + var result = memoize(func, function(key) { + if (cache.size === MAX_MEMOIZE_SIZE) { + cache.clear(); + } + return key; + }); + + var cache = result.cache; + return result; + } + + /** + * Merges the function metadata of `source` into `data`. + * + * Merging metadata reduces the number of wrappers used to invoke a function. + * This is possible because methods like `_.bind`, `_.curry`, and `_.partial` + * may be applied regardless of execution order. Methods like `_.ary` and + * `_.rearg` modify function arguments, making the order in which they are + * executed important, preventing the merging of metadata. However, we make + * an exception for a safe combined case where curried functions have `_.ary` + * and or `_.rearg` applied. + * + * @private + * @param {Array} data The destination metadata. + * @param {Array} source The source metadata. + * @returns {Array} Returns `data`. + */ + function mergeData(data, source) { + var bitmask = data[1], + srcBitmask = source[1], + newBitmask = bitmask | srcBitmask, + isCommon = newBitmask < (WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG | WRAP_ARY_FLAG); + + var isCombo = + ((srcBitmask == WRAP_ARY_FLAG) && (bitmask == WRAP_CURRY_FLAG)) || + ((srcBitmask == WRAP_ARY_FLAG) && (bitmask == WRAP_REARG_FLAG) && (data[7].length <= source[8])) || + ((srcBitmask == (WRAP_ARY_FLAG | WRAP_REARG_FLAG)) && (source[7].length <= source[8]) && (bitmask == WRAP_CURRY_FLAG)); + + // Exit early if metadata can't be merged. + if (!(isCommon || isCombo)) { + return data; + } + // Use source `thisArg` if available. + if (srcBitmask & WRAP_BIND_FLAG) { + data[2] = source[2]; + // Set when currying a bound function. + newBitmask |= bitmask & WRAP_BIND_FLAG ? 0 : WRAP_CURRY_BOUND_FLAG; + } + // Compose partial arguments. + var value = source[3]; + if (value) { + var partials = data[3]; + data[3] = partials ? composeArgs(partials, value, source[4]) : value; + data[4] = partials ? replaceHolders(data[3], PLACEHOLDER) : source[4]; + } + // Compose partial right arguments. + value = source[5]; + if (value) { + partials = data[5]; + data[5] = partials ? composeArgsRight(partials, value, source[6]) : value; + data[6] = partials ? replaceHolders(data[5], PLACEHOLDER) : source[6]; + } + // Use source `argPos` if available. + value = source[7]; + if (value) { + data[7] = value; + } + // Use source `ary` if it's smaller. + if (srcBitmask & WRAP_ARY_FLAG) { + data[8] = data[8] == null ? source[8] : nativeMin(data[8], source[8]); + } + // Use source `arity` if one is not provided. + if (data[9] == null) { + data[9] = source[9]; + } + // Use source `func` and merge bitmasks. + data[0] = source[0]; + data[1] = newBitmask; + + return data; + } + + /** + * This function is like + * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys) + * except that it includes inherited enumerable properties. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. + */ + function nativeKeysIn(object) { + var result = []; + if (object != null) { + for (var key in Object(object)) { + result.push(key); + } + } + return result; + } + + /** + * Converts `value` to a string using `Object.prototype.toString`. + * + * @private + * @param {*} value The value to convert. + * @returns {string} Returns the converted string. + */ + function objectToString(value) { + return nativeObjectToString.call(value); + } + + /** + * A specialized version of `baseRest` which transforms the rest array. + * + * @private + * @param {Function} func The function to apply a rest parameter to. + * @param {number} [start=func.length-1] The start position of the rest parameter. + * @param {Function} transform The rest array transform. + * @returns {Function} Returns the new function. + */ + function overRest(func, start, transform) { + start = nativeMax(start === undefined ? (func.length - 1) : start, 0); + return function() { + var args = arguments, + index = -1, + length = nativeMax(args.length - start, 0), + array = Array(length); + + while (++index < length) { + array[index] = args[start + index]; + } + index = -1; + var otherArgs = Array(start + 1); + while (++index < start) { + otherArgs[index] = args[index]; + } + otherArgs[start] = transform(array); + return apply(func, this, otherArgs); + }; + } + + /** + * Gets the parent value at `path` of `object`. + * + * @private + * @param {Object} object The object to query. + * @param {Array} path The path to get the parent value of. + * @returns {*} Returns the parent value. + */ + function parent(object, path) { + return path.length < 2 ? object : baseGet(object, baseSlice(path, 0, -1)); + } + + /** + * Reorder `array` according to the specified indexes where the element at + * the first index is assigned as the first element, the element at + * the second index is assigned as the second element, and so on. + * + * @private + * @param {Array} array The array to reorder. + * @param {Array} indexes The arranged array indexes. + * @returns {Array} Returns `array`. + */ + function reorder(array, indexes) { + var arrLength = array.length, + length = nativeMin(indexes.length, arrLength), + oldArray = copyArray(array); + + while (length--) { + var index = indexes[length]; + array[length] = isIndex(index, arrLength) ? oldArray[index] : undefined; + } + return array; + } + + /** + * Sets metadata for `func`. + * + * **Note:** If this function becomes hot, i.e. is invoked a lot in a short + * period of time, it will trip its breaker and transition to an identity + * function to avoid garbage collection pauses in V8. See + * [V8 issue 2070](https://bugs.chromium.org/p/v8/issues/detail?id=2070) + * for more details. + * + * @private + * @param {Function} func The function to associate metadata with. + * @param {*} data The metadata. + * @returns {Function} Returns `func`. + */ + var setData = shortOut(baseSetData); + + /** + * A simple wrapper around the global [`setTimeout`](https://mdn.io/setTimeout). + * + * @private + * @param {Function} func The function to delay. + * @param {number} wait The number of milliseconds to delay invocation. + * @returns {number|Object} Returns the timer id or timeout object. + */ + var setTimeout = ctxSetTimeout || function(func, wait) { + return root.setTimeout(func, wait); + }; + + /** + * Sets the `toString` method of `func` to return `string`. + * + * @private + * @param {Function} func The function to modify. + * @param {Function} string The `toString` result. + * @returns {Function} Returns `func`. + */ + var setToString = shortOut(baseSetToString); + + /** + * Sets the `toString` method of `wrapper` to mimic the source of `reference` + * with wrapper details in a comment at the top of the source body. + * + * @private + * @param {Function} wrapper The function to modify. + * @param {Function} reference The reference function. + * @param {number} bitmask The bitmask flags. See `createWrap` for more details. + * @returns {Function} Returns `wrapper`. + */ + function setWrapToString(wrapper, reference, bitmask) { + var source = (reference + ''); + return setToString(wrapper, insertWrapDetails(source, updateWrapDetails(getWrapDetails(source), bitmask))); + } + + /** + * Creates a function that'll short out and invoke `identity` instead + * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN` + * milliseconds. + * + * @private + * @param {Function} func The function to restrict. + * @returns {Function} Returns the new shortable function. + */ + function shortOut(func) { + var count = 0, + lastCalled = 0; + + return function() { + var stamp = nativeNow(), + remaining = HOT_SPAN - (stamp - lastCalled); + + lastCalled = stamp; + if (remaining > 0) { + if (++count >= HOT_COUNT) { + return arguments[0]; + } + } else { + count = 0; + } + return func.apply(undefined, arguments); + }; + } + + /** + * A specialized version of `_.shuffle` which mutates and sets the size of `array`. + * + * @private + * @param {Array} array The array to shuffle. + * @param {number} [size=array.length] The size of `array`. + * @returns {Array} Returns `array`. + */ + function shuffleSelf(array, size) { + var index = -1, + length = array.length, + lastIndex = length - 1; + + size = size === undefined ? length : size; + while (++index < size) { + var rand = baseRandom(index, lastIndex), + value = array[rand]; + + array[rand] = array[index]; + array[index] = value; + } + array.length = size; + return array; + } + + /** + * Converts `string` to a property path array. + * + * @private + * @param {string} string The string to convert. + * @returns {Array} Returns the property path array. + */ + var stringToPath = memoizeCapped(function(string) { + var result = []; + if (reLeadingDot.test(string)) { + result.push(''); + } + string.replace(rePropName, function(match, number, quote, string) { + result.push(quote ? string.replace(reEscapeChar, '$1') : (number || match)); + }); + return result; + }); + + /** + * Converts `value` to a string key if it's not a string or symbol. + * + * @private + * @param {*} value The value to inspect. + * @returns {string|symbol} Returns the key. + */ + function toKey(value) { + if (typeof value == 'string' || isSymbol(value)) { + return value; + } + var result = (value + ''); + return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result; + } + + /** + * Converts `func` to its source code. + * + * @private + * @param {Function} func The function to convert. + * @returns {string} Returns the source code. + */ + function toSource(func) { + if (func != null) { + try { + return funcToString.call(func); + } catch (e) {} + try { + return (func + ''); + } catch (e) {} + } + return ''; + } + + /** + * Updates wrapper `details` based on `bitmask` flags. + * + * @private + * @returns {Array} details The details to modify. + * @param {number} bitmask The bitmask flags. See `createWrap` for more details. + * @returns {Array} Returns `details`. + */ + function updateWrapDetails(details, bitmask) { + arrayEach(wrapFlags, function(pair) { + var value = '_.' + pair[0]; + if ((bitmask & pair[1]) && !arrayIncludes(details, value)) { + details.push(value); + } + }); + return details.sort(); + } + + /** + * Creates a clone of `wrapper`. + * + * @private + * @param {Object} wrapper The wrapper to clone. + * @returns {Object} Returns the cloned wrapper. + */ + function wrapperClone(wrapper) { + if (wrapper instanceof LazyWrapper) { + return wrapper.clone(); + } + var result = new LodashWrapper(wrapper.__wrapped__, wrapper.__chain__); + result.__actions__ = copyArray(wrapper.__actions__); + result.__index__ = wrapper.__index__; + result.__values__ = wrapper.__values__; + return result; + } + + /*------------------------------------------------------------------------*/ + + /** + * Creates an array of elements split into groups the length of `size`. + * If `array` can't be split evenly, the final chunk will be the remaining + * elements. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Array + * @param {Array} array The array to process. + * @param {number} [size=1] The length of each chunk + * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. + * @returns {Array} Returns the new array of chunks. + * @example + * + * _.chunk(['a', 'b', 'c', 'd'], 2); + * // => [['a', 'b'], ['c', 'd']] + * + * _.chunk(['a', 'b', 'c', 'd'], 3); + * // => [['a', 'b', 'c'], ['d']] + */ + function chunk(array, size, guard) { + if ((guard ? isIterateeCall(array, size, guard) : size === undefined)) { + size = 1; + } else { + size = nativeMax(toInteger(size), 0); + } + var length = array == null ? 0 : array.length; + if (!length || size < 1) { + return []; + } + var index = 0, + resIndex = 0, + result = Array(nativeCeil(length / size)); + + while (index < length) { + result[resIndex++] = baseSlice(array, index, (index += size)); + } + return result; + } + + /** + * Creates an array with all falsey values removed. The values `false`, `null`, + * `0`, `""`, `undefined`, and `NaN` are falsey. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Array + * @param {Array} array The array to compact. + * @returns {Array} Returns the new array of filtered values. + * @example + * + * _.compact([0, 1, false, 2, '', 3]); + * // => [1, 2, 3] + */ + function compact(array) { + var index = -1, + length = array == null ? 0 : array.length, + resIndex = 0, + result = []; + + while (++index < length) { + var value = array[index]; + if (value) { + result[resIndex++] = value; + } + } + return result; + } + + /** + * Creates a new array concatenating `array` with any additional arrays + * and/or values. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Array + * @param {Array} array The array to concatenate. + * @param {...*} [values] The values to concatenate. + * @returns {Array} Returns the new concatenated array. + * @example + * + * var array = [1]; + * var other = _.concat(array, 2, [3], [[4]]); + * + * console.log(other); + * // => [1, 2, 3, [4]] + * + * console.log(array); + * // => [1] + */ + function concat() { + var length = arguments.length; + if (!length) { + return []; + } + var args = Array(length - 1), + array = arguments[0], + index = length; + + while (index--) { + args[index - 1] = arguments[index]; + } + return arrayPush(isArray(array) ? copyArray(array) : [array], baseFlatten(args, 1)); + } + + /** + * Creates an array of `array` values not included in the other given arrays + * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) + * for equality comparisons. The order and references of result values are + * determined by the first array. + * + * **Note:** Unlike `_.pullAll`, this method returns a new array. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Array + * @param {Array} array The array to inspect. + * @param {...Array} [values] The values to exclude. + * @returns {Array} Returns the new array of filtered values. + * @see _.without, _.xor + * @example + * + * _.difference([2, 1], [2, 3]); + * // => [1] + */ + var difference = baseRest(function(array, values) { + return isArrayLikeObject(array) + ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true)) + : []; + }); + + /** + * This method is like `_.difference` except that it accepts `iteratee` which + * is invoked for each element of `array` and `values` to generate the criterion + * by which they're compared. The order and references of result values are + * determined by the first array. The iteratee is invoked with one argument: + * (value). + * + * **Note:** Unlike `_.pullAllBy`, this method returns a new array. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Array + * @param {Array} array The array to inspect. + * @param {...Array} [values] The values to exclude. + * @param {Function} [iteratee=_.identity] The iteratee invoked per element. + * @returns {Array} Returns the new array of filtered values. + * @example + * + * _.differenceBy([2.1, 1.2], [2.3, 3.4], Math.floor); + * // => [1.2] + * + * // The `_.property` iteratee shorthand. + * _.differenceBy([{ 'x': 2 }, { 'x': 1 }], [{ 'x': 1 }], 'x'); + * // => [{ 'x': 2 }] + */ + var differenceBy = baseRest(function(array, values) { + var iteratee = last(values); + if (isArrayLikeObject(iteratee)) { + iteratee = undefined; + } + return isArrayLikeObject(array) + ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true), getIteratee(iteratee, 2)) + : []; + }); + + /** + * This method is like `_.difference` except that it accepts `comparator` + * which is invoked to compare elements of `array` to `values`. The order and + * references of result values are determined by the first array. The comparator + * is invoked with two arguments: (arrVal, othVal). + * + * **Note:** Unlike `_.pullAllWith`, this method returns a new array. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Array + * @param {Array} array The array to inspect. + * @param {...Array} [values] The values to exclude. + * @param {Function} [comparator] The comparator invoked per element. + * @returns {Array} Returns the new array of filtered values. + * @example + * + * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }]; + * + * _.differenceWith(objects, [{ 'x': 1, 'y': 2 }], _.isEqual); + * // => [{ 'x': 2, 'y': 1 }] + */ + var differenceWith = baseRest(function(array, values) { + var comparator = last(values); + if (isArrayLikeObject(comparator)) { + comparator = undefined; + } + return isArrayLikeObject(array) + ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true), undefined, comparator) + : []; + }); + + /** + * Creates a slice of `array` with `n` elements dropped from the beginning. + * + * @static + * @memberOf _ + * @since 0.5.0 + * @category Array + * @param {Array} array The array to query. + * @param {number} [n=1] The number of elements to drop. + * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. + * @returns {Array} Returns the slice of `array`. + * @example + * + * _.drop([1, 2, 3]); + * // => [2, 3] + * + * _.drop([1, 2, 3], 2); + * // => [3] + * + * _.drop([1, 2, 3], 5); + * // => [] + * + * _.drop([1, 2, 3], 0); + * // => [1, 2, 3] + */ + function drop(array, n, guard) { + var length = array == null ? 0 : array.length; + if (!length) { + return []; + } + n = (guard || n === undefined) ? 1 : toInteger(n); + return baseSlice(array, n < 0 ? 0 : n, length); + } + + /** + * Creates a slice of `array` with `n` elements dropped from the end. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Array + * @param {Array} array The array to query. + * @param {number} [n=1] The number of elements to drop. + * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. + * @returns {Array} Returns the slice of `array`. + * @example + * + * _.dropRight([1, 2, 3]); + * // => [1, 2] + * + * _.dropRight([1, 2, 3], 2); + * // => [1] + * + * _.dropRight([1, 2, 3], 5); + * // => [] + * + * _.dropRight([1, 2, 3], 0); + * // => [1, 2, 3] + */ + function dropRight(array, n, guard) { + var length = array == null ? 0 : array.length; + if (!length) { + return []; + } + n = (guard || n === undefined) ? 1 : toInteger(n); + n = length - n; + return baseSlice(array, 0, n < 0 ? 0 : n); + } + + /** + * Creates a slice of `array` excluding elements dropped from the end. + * Elements are dropped until `predicate` returns falsey. The predicate is + * invoked with three arguments: (value, index, array). + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Array + * @param {Array} array The array to query. + * @param {Function} [predicate=_.identity] The function invoked per iteration. + * @returns {Array} Returns the slice of `array`. + * @example + * + * var users = [ + * { 'user': 'barney', 'active': true }, + * { 'user': 'fred', 'active': false }, + * { 'user': 'pebbles', 'active': false } + * ]; + * + * _.dropRightWhile(users, function(o) { return !o.active; }); + * // => objects for ['barney'] + * + * // The `_.matches` iteratee shorthand. + * _.dropRightWhile(users, { 'user': 'pebbles', 'active': false }); + * // => objects for ['barney', 'fred'] + * + * // The `_.matchesProperty` iteratee shorthand. + * _.dropRightWhile(users, ['active', false]); + * // => objects for ['barney'] + * + * // The `_.property` iteratee shorthand. + * _.dropRightWhile(users, 'active'); + * // => objects for ['barney', 'fred', 'pebbles'] + */ + function dropRightWhile(array, predicate) { + return (array && array.length) + ? baseWhile(array, getIteratee(predicate, 3), true, true) + : []; + } + + /** + * Creates a slice of `array` excluding elements dropped from the beginning. + * Elements are dropped until `predicate` returns falsey. The predicate is + * invoked with three arguments: (value, index, array). + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Array + * @param {Array} array The array to query. + * @param {Function} [predicate=_.identity] The function invoked per iteration. + * @returns {Array} Returns the slice of `array`. + * @example + * + * var users = [ + * { 'user': 'barney', 'active': false }, + * { 'user': 'fred', 'active': false }, + * { 'user': 'pebbles', 'active': true } + * ]; + * + * _.dropWhile(users, function(o) { return !o.active; }); + * // => objects for ['pebbles'] + * + * // The `_.matches` iteratee shorthand. + * _.dropWhile(users, { 'user': 'barney', 'active': false }); + * // => objects for ['fred', 'pebbles'] + * + * // The `_.matchesProperty` iteratee shorthand. + * _.dropWhile(users, ['active', false]); + * // => objects for ['pebbles'] + * + * // The `_.property` iteratee shorthand. + * _.dropWhile(users, 'active'); + * // => objects for ['barney', 'fred', 'pebbles'] + */ + function dropWhile(array, predicate) { + return (array && array.length) + ? baseWhile(array, getIteratee(predicate, 3), true) + : []; + } + + /** + * Fills elements of `array` with `value` from `start` up to, but not + * including, `end`. + * + * **Note:** This method mutates `array`. + * + * @static + * @memberOf _ + * @since 3.2.0 + * @category Array + * @param {Array} array The array to fill. + * @param {*} value The value to fill `array` with. + * @param {number} [start=0] The start position. + * @param {number} [end=array.length] The end position. + * @returns {Array} Returns `array`. + * @example + * + * var array = [1, 2, 3]; + * + * _.fill(array, 'a'); + * console.log(array); + * // => ['a', 'a', 'a'] + * + * _.fill(Array(3), 2); + * // => [2, 2, 2] + * + * _.fill([4, 6, 8, 10], '*', 1, 3); + * // => [4, '*', '*', 10] + */ + function fill(array, value, start, end) { + var length = array == null ? 0 : array.length; + if (!length) { + return []; + } + if (start && typeof start != 'number' && isIterateeCall(array, value, start)) { + start = 0; + end = length; + } + return baseFill(array, value, start, end); + } + + /** + * This method is like `_.find` except that it returns the index of the first + * element `predicate` returns truthy for instead of the element itself. + * + * @static + * @memberOf _ + * @since 1.1.0 + * @category Array + * @param {Array} array The array to inspect. + * @param {Function} [predicate=_.identity] The function invoked per iteration. + * @param {number} [fromIndex=0] The index to search from. + * @returns {number} Returns the index of the found element, else `-1`. + * @example + * + * var users = [ + * { 'user': 'barney', 'active': false }, + * { 'user': 'fred', 'active': false }, + * { 'user': 'pebbles', 'active': true } + * ]; + * + * _.findIndex(users, function(o) { return o.user == 'barney'; }); + * // => 0 + * + * // The `_.matches` iteratee shorthand. + * _.findIndex(users, { 'user': 'fred', 'active': false }); + * // => 1 + * + * // The `_.matchesProperty` iteratee shorthand. + * _.findIndex(users, ['active', false]); + * // => 0 + * + * // The `_.property` iteratee shorthand. + * _.findIndex(users, 'active'); + * // => 2 + */ + function findIndex(array, predicate, fromIndex) { + var length = array == null ? 0 : array.length; + if (!length) { + return -1; + } + var index = fromIndex == null ? 0 : toInteger(fromIndex); + if (index < 0) { + index = nativeMax(length + index, 0); + } + return baseFindIndex(array, getIteratee(predicate, 3), index); + } + + /** + * This method is like `_.findIndex` except that it iterates over elements + * of `collection` from right to left. + * + * @static + * @memberOf _ + * @since 2.0.0 + * @category Array + * @param {Array} array The array to inspect. + * @param {Function} [predicate=_.identity] The function invoked per iteration. + * @param {number} [fromIndex=array.length-1] The index to search from. + * @returns {number} Returns the index of the found element, else `-1`. + * @example + * + * var users = [ + * { 'user': 'barney', 'active': true }, + * { 'user': 'fred', 'active': false }, + * { 'user': 'pebbles', 'active': false } + * ]; + * + * _.findLastIndex(users, function(o) { return o.user == 'pebbles'; }); + * // => 2 + * + * // The `_.matches` iteratee shorthand. + * _.findLastIndex(users, { 'user': 'barney', 'active': true }); + * // => 0 + * + * // The `_.matchesProperty` iteratee shorthand. + * _.findLastIndex(users, ['active', false]); + * // => 2 + * + * // The `_.property` iteratee shorthand. + * _.findLastIndex(users, 'active'); + * // => 0 + */ + function findLastIndex(array, predicate, fromIndex) { + var length = array == null ? 0 : array.length; + if (!length) { + return -1; + } + var index = length - 1; + if (fromIndex !== undefined) { + index = toInteger(fromIndex); + index = fromIndex < 0 + ? nativeMax(length + index, 0) + : nativeMin(index, length - 1); + } + return baseFindIndex(array, getIteratee(predicate, 3), index, true); + } + + /** + * Flattens `array` a single level deep. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Array + * @param {Array} array The array to flatten. + * @returns {Array} Returns the new flattened array. + * @example + * + * _.flatten([1, [2, [3, [4]], 5]]); + * // => [1, 2, [3, [4]], 5] + */ + function flatten(array) { + var length = array == null ? 0 : array.length; + return length ? baseFlatten(array, 1) : []; + } + + /** + * Recursively flattens `array`. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Array + * @param {Array} array The array to flatten. + * @returns {Array} Returns the new flattened array. + * @example + * + * _.flattenDeep([1, [2, [3, [4]], 5]]); + * // => [1, 2, 3, 4, 5] + */ + function flattenDeep(array) { + var length = array == null ? 0 : array.length; + return length ? baseFlatten(array, INFINITY) : []; + } + + /** + * Recursively flatten `array` up to `depth` times. + * + * @static + * @memberOf _ + * @since 4.4.0 + * @category Array + * @param {Array} array The array to flatten. + * @param {number} [depth=1] The maximum recursion depth. + * @returns {Array} Returns the new flattened array. + * @example + * + * var array = [1, [2, [3, [4]], 5]]; + * + * _.flattenDepth(array, 1); + * // => [1, 2, [3, [4]], 5] + * + * _.flattenDepth(array, 2); + * // => [1, 2, 3, [4], 5] + */ + function flattenDepth(array, depth) { + var length = array == null ? 0 : array.length; + if (!length) { + return []; + } + depth = depth === undefined ? 1 : toInteger(depth); + return baseFlatten(array, depth); + } + + /** + * The inverse of `_.toPairs`; this method returns an object composed + * from key-value `pairs`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Array + * @param {Array} pairs The key-value pairs. + * @returns {Object} Returns the new object. + * @example + * + * _.fromPairs([['a', 1], ['b', 2]]); + * // => { 'a': 1, 'b': 2 } + */ + function fromPairs(pairs) { + var index = -1, + length = pairs == null ? 0 : pairs.length, + result = {}; + + while (++index < length) { + var pair = pairs[index]; + result[pair[0]] = pair[1]; + } + return result; + } + + /** + * Gets the first element of `array`. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @alias first + * @category Array + * @param {Array} array The array to query. + * @returns {*} Returns the first element of `array`. + * @example + * + * _.head([1, 2, 3]); + * // => 1 + * + * _.head([]); + * // => undefined + */ + function head(array) { + return (array && array.length) ? array[0] : undefined; + } + + /** + * Gets the index at which the first occurrence of `value` is found in `array` + * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) + * for equality comparisons. If `fromIndex` is negative, it's used as the + * offset from the end of `array`. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Array + * @param {Array} array The array to inspect. + * @param {*} value The value to search for. + * @param {number} [fromIndex=0] The index to search from. + * @returns {number} Returns the index of the matched value, else `-1`. + * @example + * + * _.indexOf([1, 2, 1, 2], 2); + * // => 1 + * + * // Search from the `fromIndex`. + * _.indexOf([1, 2, 1, 2], 2, 2); + * // => 3 + */ + function indexOf(array, value, fromIndex) { + var length = array == null ? 0 : array.length; + if (!length) { + return -1; + } + var index = fromIndex == null ? 0 : toInteger(fromIndex); + if (index < 0) { + index = nativeMax(length + index, 0); + } + return baseIndexOf(array, value, index); + } + + /** + * Gets all but the last element of `array`. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Array + * @param {Array} array The array to query. + * @returns {Array} Returns the slice of `array`. + * @example + * + * _.initial([1, 2, 3]); + * // => [1, 2] + */ + function initial(array) { + var length = array == null ? 0 : array.length; + return length ? baseSlice(array, 0, -1) : []; + } + + /** + * Creates an array of unique values that are included in all given arrays + * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) + * for equality comparisons. The order and references of result values are + * determined by the first array. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Array + * @param {...Array} [arrays] The arrays to inspect. + * @returns {Array} Returns the new array of intersecting values. + * @example + * + * _.intersection([2, 1], [2, 3]); + * // => [2] + */ + var intersection = baseRest(function(arrays) { + var mapped = arrayMap(arrays, castArrayLikeObject); + return (mapped.length && mapped[0] === arrays[0]) + ? baseIntersection(mapped) + : []; + }); + + /** + * This method is like `_.intersection` except that it accepts `iteratee` + * which is invoked for each element of each `arrays` to generate the criterion + * by which they're compared. The order and references of result values are + * determined by the first array. The iteratee is invoked with one argument: + * (value). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Array + * @param {...Array} [arrays] The arrays to inspect. + * @param {Function} [iteratee=_.identity] The iteratee invoked per element. + * @returns {Array} Returns the new array of intersecting values. + * @example + * + * _.intersectionBy([2.1, 1.2], [2.3, 3.4], Math.floor); + * // => [2.1] + * + * // The `_.property` iteratee shorthand. + * _.intersectionBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x'); + * // => [{ 'x': 1 }] + */ + var intersectionBy = baseRest(function(arrays) { + var iteratee = last(arrays), + mapped = arrayMap(arrays, castArrayLikeObject); + + if (iteratee === last(mapped)) { + iteratee = undefined; + } else { + mapped.pop(); + } + return (mapped.length && mapped[0] === arrays[0]) + ? baseIntersection(mapped, getIteratee(iteratee, 2)) + : []; + }); + + /** + * This method is like `_.intersection` except that it accepts `comparator` + * which is invoked to compare elements of `arrays`. The order and references + * of result values are determined by the first array. The comparator is + * invoked with two arguments: (arrVal, othVal). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Array + * @param {...Array} [arrays] The arrays to inspect. + * @param {Function} [comparator] The comparator invoked per element. + * @returns {Array} Returns the new array of intersecting values. + * @example + * + * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }]; + * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }]; + * + * _.intersectionWith(objects, others, _.isEqual); + * // => [{ 'x': 1, 'y': 2 }] + */ + var intersectionWith = baseRest(function(arrays) { + var comparator = last(arrays), + mapped = arrayMap(arrays, castArrayLikeObject); + + comparator = typeof comparator == 'function' ? comparator : undefined; + if (comparator) { + mapped.pop(); + } + return (mapped.length && mapped[0] === arrays[0]) + ? baseIntersection(mapped, undefined, comparator) + : []; + }); + + /** + * Converts all elements in `array` into a string separated by `separator`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Array + * @param {Array} array The array to convert. + * @param {string} [separator=','] The element separator. + * @returns {string} Returns the joined string. + * @example + * + * _.join(['a', 'b', 'c'], '~'); + * // => 'a~b~c' + */ + function join(array, separator) { + return array == null ? '' : nativeJoin.call(array, separator); + } + + /** + * Gets the last element of `array`. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Array + * @param {Array} array The array to query. + * @returns {*} Returns the last element of `array`. + * @example + * + * _.last([1, 2, 3]); + * // => 3 + */ + function last(array) { + var length = array == null ? 0 : array.length; + return length ? array[length - 1] : undefined; + } + + /** + * This method is like `_.indexOf` except that it iterates over elements of + * `array` from right to left. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Array + * @param {Array} array The array to inspect. + * @param {*} value The value to search for. + * @param {number} [fromIndex=array.length-1] The index to search from. + * @returns {number} Returns the index of the matched value, else `-1`. + * @example + * + * _.lastIndexOf([1, 2, 1, 2], 2); + * // => 3 + * + * // Search from the `fromIndex`. + * _.lastIndexOf([1, 2, 1, 2], 2, 2); + * // => 1 + */ + function lastIndexOf(array, value, fromIndex) { + var length = array == null ? 0 : array.length; + if (!length) { + return -1; + } + var index = length; + if (fromIndex !== undefined) { + index = toInteger(fromIndex); + index = index < 0 ? nativeMax(length + index, 0) : nativeMin(index, length - 1); + } + return value === value + ? strictLastIndexOf(array, value, index) + : baseFindIndex(array, baseIsNaN, index, true); + } + + /** + * Gets the element at index `n` of `array`. If `n` is negative, the nth + * element from the end is returned. + * + * @static + * @memberOf _ + * @since 4.11.0 + * @category Array + * @param {Array} array The array to query. + * @param {number} [n=0] The index of the element to return. + * @returns {*} Returns the nth element of `array`. + * @example + * + * var array = ['a', 'b', 'c', 'd']; + * + * _.nth(array, 1); + * // => 'b' + * + * _.nth(array, -2); + * // => 'c'; + */ + function nth(array, n) { + return (array && array.length) ? baseNth(array, toInteger(n)) : undefined; + } + + /** + * Removes all given values from `array` using + * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) + * for equality comparisons. + * + * **Note:** Unlike `_.without`, this method mutates `array`. Use `_.remove` + * to remove elements from an array by predicate. + * + * @static + * @memberOf _ + * @since 2.0.0 + * @category Array + * @param {Array} array The array to modify. + * @param {...*} [values] The values to remove. + * @returns {Array} Returns `array`. + * @example + * + * var array = ['a', 'b', 'c', 'a', 'b', 'c']; + * + * _.pull(array, 'a', 'c'); + * console.log(array); + * // => ['b', 'b'] + */ + var pull = baseRest(pullAll); + + /** + * This method is like `_.pull` except that it accepts an array of values to remove. + * + * **Note:** Unlike `_.difference`, this method mutates `array`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Array + * @param {Array} array The array to modify. + * @param {Array} values The values to remove. + * @returns {Array} Returns `array`. + * @example + * + * var array = ['a', 'b', 'c', 'a', 'b', 'c']; + * + * _.pullAll(array, ['a', 'c']); + * console.log(array); + * // => ['b', 'b'] + */ + function pullAll(array, values) { + return (array && array.length && values && values.length) + ? basePullAll(array, values) + : array; + } + + /** + * This method is like `_.pullAll` except that it accepts `iteratee` which is + * invoked for each element of `array` and `values` to generate the criterion + * by which they're compared. The iteratee is invoked with one argument: (value). + * + * **Note:** Unlike `_.differenceBy`, this method mutates `array`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Array + * @param {Array} array The array to modify. + * @param {Array} values The values to remove. + * @param {Function} [iteratee=_.identity] The iteratee invoked per element. + * @returns {Array} Returns `array`. + * @example + * + * var array = [{ 'x': 1 }, { 'x': 2 }, { 'x': 3 }, { 'x': 1 }]; + * + * _.pullAllBy(array, [{ 'x': 1 }, { 'x': 3 }], 'x'); + * console.log(array); + * // => [{ 'x': 2 }] + */ + function pullAllBy(array, values, iteratee) { + return (array && array.length && values && values.length) + ? basePullAll(array, values, getIteratee(iteratee, 2)) + : array; + } + + /** + * This method is like `_.pullAll` except that it accepts `comparator` which + * is invoked to compare elements of `array` to `values`. The comparator is + * invoked with two arguments: (arrVal, othVal). + * + * **Note:** Unlike `_.differenceWith`, this method mutates `array`. + * + * @static + * @memberOf _ + * @since 4.6.0 + * @category Array + * @param {Array} array The array to modify. + * @param {Array} values The values to remove. + * @param {Function} [comparator] The comparator invoked per element. + * @returns {Array} Returns `array`. + * @example + * + * var array = [{ 'x': 1, 'y': 2 }, { 'x': 3, 'y': 4 }, { 'x': 5, 'y': 6 }]; + * + * _.pullAllWith(array, [{ 'x': 3, 'y': 4 }], _.isEqual); + * console.log(array); + * // => [{ 'x': 1, 'y': 2 }, { 'x': 5, 'y': 6 }] + */ + function pullAllWith(array, values, comparator) { + return (array && array.length && values && values.length) + ? basePullAll(array, values, undefined, comparator) + : array; + } + + /** + * Removes elements from `array` corresponding to `indexes` and returns an + * array of removed elements. + * + * **Note:** Unlike `_.at`, this method mutates `array`. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Array + * @param {Array} array The array to modify. + * @param {...(number|number[])} [indexes] The indexes of elements to remove. + * @returns {Array} Returns the new array of removed elements. + * @example + * + * var array = ['a', 'b', 'c', 'd']; + * var pulled = _.pullAt(array, [1, 3]); + * + * console.log(array); + * // => ['a', 'c'] + * + * console.log(pulled); + * // => ['b', 'd'] + */ + var pullAt = flatRest(function(array, indexes) { + var length = array == null ? 0 : array.length, + result = baseAt(array, indexes); + + basePullAt(array, arrayMap(indexes, function(index) { + return isIndex(index, length) ? +index : index; + }).sort(compareAscending)); + + return result; + }); + + /** + * Removes all elements from `array` that `predicate` returns truthy for + * and returns an array of the removed elements. The predicate is invoked + * with three arguments: (value, index, array). + * + * **Note:** Unlike `_.filter`, this method mutates `array`. Use `_.pull` + * to pull elements from an array by value. + * + * @static + * @memberOf _ + * @since 2.0.0 + * @category Array + * @param {Array} array The array to modify. + * @param {Function} [predicate=_.identity] The function invoked per iteration. + * @returns {Array} Returns the new array of removed elements. + * @example + * + * var array = [1, 2, 3, 4]; + * var evens = _.remove(array, function(n) { + * return n % 2 == 0; + * }); + * + * console.log(array); + * // => [1, 3] + * + * console.log(evens); + * // => [2, 4] + */ + function remove(array, predicate) { + var result = []; + if (!(array && array.length)) { + return result; + } + var index = -1, + indexes = [], + length = array.length; + + predicate = getIteratee(predicate, 3); + while (++index < length) { + var value = array[index]; + if (predicate(value, index, array)) { + result.push(value); + indexes.push(index); + } + } + basePullAt(array, indexes); + return result; + } + + /** + * Reverses `array` so that the first element becomes the last, the second + * element becomes the second to last, and so on. + * + * **Note:** This method mutates `array` and is based on + * [`Array#reverse`](https://mdn.io/Array/reverse). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Array + * @param {Array} array The array to modify. + * @returns {Array} Returns `array`. + * @example + * + * var array = [1, 2, 3]; + * + * _.reverse(array); + * // => [3, 2, 1] + * + * console.log(array); + * // => [3, 2, 1] + */ + function reverse(array) { + return array == null ? array : nativeReverse.call(array); + } + + /** + * Creates a slice of `array` from `start` up to, but not including, `end`. + * + * **Note:** This method is used instead of + * [`Array#slice`](https://mdn.io/Array/slice) to ensure dense arrays are + * returned. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Array + * @param {Array} array The array to slice. + * @param {number} [start=0] The start position. + * @param {number} [end=array.length] The end position. + * @returns {Array} Returns the slice of `array`. + */ + function slice(array, start, end) { + var length = array == null ? 0 : array.length; + if (!length) { + return []; + } + if (end && typeof end != 'number' && isIterateeCall(array, start, end)) { + start = 0; + end = length; + } + else { + start = start == null ? 0 : toInteger(start); + end = end === undefined ? length : toInteger(end); + } + return baseSlice(array, start, end); + } + + /** + * Uses a binary search to determine the lowest index at which `value` + * should be inserted into `array` in order to maintain its sort order. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Array + * @param {Array} array The sorted array to inspect. + * @param {*} value The value to evaluate. + * @returns {number} Returns the index at which `value` should be inserted + * into `array`. + * @example + * + * _.sortedIndex([30, 50], 40); + * // => 1 + */ + function sortedIndex(array, value) { + return baseSortedIndex(array, value); + } + + /** + * This method is like `_.sortedIndex` except that it accepts `iteratee` + * which is invoked for `value` and each element of `array` to compute their + * sort ranking. The iteratee is invoked with one argument: (value). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Array + * @param {Array} array The sorted array to inspect. + * @param {*} value The value to evaluate. + * @param {Function} [iteratee=_.identity] The iteratee invoked per element. + * @returns {number} Returns the index at which `value` should be inserted + * into `array`. + * @example + * + * var objects = [{ 'x': 4 }, { 'x': 5 }]; + * + * _.sortedIndexBy(objects, { 'x': 4 }, function(o) { return o.x; }); + * // => 0 + * + * // The `_.property` iteratee shorthand. + * _.sortedIndexBy(objects, { 'x': 4 }, 'x'); + * // => 0 + */ + function sortedIndexBy(array, value, iteratee) { + return baseSortedIndexBy(array, value, getIteratee(iteratee, 2)); + } + + /** + * This method is like `_.indexOf` except that it performs a binary + * search on a sorted `array`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Array + * @param {Array} array The array to inspect. + * @param {*} value The value to search for. + * @returns {number} Returns the index of the matched value, else `-1`. + * @example + * + * _.sortedIndexOf([4, 5, 5, 5, 6], 5); + * // => 1 + */ + function sortedIndexOf(array, value) { + var length = array == null ? 0 : array.length; + if (length) { + var index = baseSortedIndex(array, value); + if (index < length && eq(array[index], value)) { + return index; + } + } + return -1; + } + + /** + * This method is like `_.sortedIndex` except that it returns the highest + * index at which `value` should be inserted into `array` in order to + * maintain its sort order. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Array + * @param {Array} array The sorted array to inspect. + * @param {*} value The value to evaluate. + * @returns {number} Returns the index at which `value` should be inserted + * into `array`. + * @example + * + * _.sortedLastIndex([4, 5, 5, 5, 6], 5); + * // => 4 + */ + function sortedLastIndex(array, value) { + return baseSortedIndex(array, value, true); + } + + /** + * This method is like `_.sortedLastIndex` except that it accepts `iteratee` + * which is invoked for `value` and each element of `array` to compute their + * sort ranking. The iteratee is invoked with one argument: (value). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Array + * @param {Array} array The sorted array to inspect. + * @param {*} value The value to evaluate. + * @param {Function} [iteratee=_.identity] The iteratee invoked per element. + * @returns {number} Returns the index at which `value` should be inserted + * into `array`. + * @example + * + * var objects = [{ 'x': 4 }, { 'x': 5 }]; + * + * _.sortedLastIndexBy(objects, { 'x': 4 }, function(o) { return o.x; }); + * // => 1 + * + * // The `_.property` iteratee shorthand. + * _.sortedLastIndexBy(objects, { 'x': 4 }, 'x'); + * // => 1 + */ + function sortedLastIndexBy(array, value, iteratee) { + return baseSortedIndexBy(array, value, getIteratee(iteratee, 2), true); + } + + /** + * This method is like `_.lastIndexOf` except that it performs a binary + * search on a sorted `array`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Array + * @param {Array} array The array to inspect. + * @param {*} value The value to search for. + * @returns {number} Returns the index of the matched value, else `-1`. + * @example + * + * _.sortedLastIndexOf([4, 5, 5, 5, 6], 5); + * // => 3 + */ + function sortedLastIndexOf(array, value) { + var length = array == null ? 0 : array.length; + if (length) { + var index = baseSortedIndex(array, value, true) - 1; + if (eq(array[index], value)) { + return index; + } + } + return -1; + } + + /** + * This method is like `_.uniq` except that it's designed and optimized + * for sorted arrays. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Array + * @param {Array} array The array to inspect. + * @returns {Array} Returns the new duplicate free array. + * @example + * + * _.sortedUniq([1, 1, 2]); + * // => [1, 2] + */ + function sortedUniq(array) { + return (array && array.length) + ? baseSortedUniq(array) + : []; + } + + /** + * This method is like `_.uniqBy` except that it's designed and optimized + * for sorted arrays. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Array + * @param {Array} array The array to inspect. + * @param {Function} [iteratee] The iteratee invoked per element. + * @returns {Array} Returns the new duplicate free array. + * @example + * + * _.sortedUniqBy([1.1, 1.2, 2.3, 2.4], Math.floor); + * // => [1.1, 2.3] + */ + function sortedUniqBy(array, iteratee) { + return (array && array.length) + ? baseSortedUniq(array, getIteratee(iteratee, 2)) + : []; + } + + /** + * Gets all but the first element of `array`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Array + * @param {Array} array The array to query. + * @returns {Array} Returns the slice of `array`. + * @example + * + * _.tail([1, 2, 3]); + * // => [2, 3] + */ + function tail(array) { + var length = array == null ? 0 : array.length; + return length ? baseSlice(array, 1, length) : []; + } + + /** + * Creates a slice of `array` with `n` elements taken from the beginning. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Array + * @param {Array} array The array to query. + * @param {number} [n=1] The number of elements to take. + * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. + * @returns {Array} Returns the slice of `array`. + * @example + * + * _.take([1, 2, 3]); + * // => [1] + * + * _.take([1, 2, 3], 2); + * // => [1, 2] + * + * _.take([1, 2, 3], 5); + * // => [1, 2, 3] + * + * _.take([1, 2, 3], 0); + * // => [] + */ + function take(array, n, guard) { + if (!(array && array.length)) { + return []; + } + n = (guard || n === undefined) ? 1 : toInteger(n); + return baseSlice(array, 0, n < 0 ? 0 : n); + } + + /** + * Creates a slice of `array` with `n` elements taken from the end. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Array + * @param {Array} array The array to query. + * @param {number} [n=1] The number of elements to take. + * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. + * @returns {Array} Returns the slice of `array`. + * @example + * + * _.takeRight([1, 2, 3]); + * // => [3] + * + * _.takeRight([1, 2, 3], 2); + * // => [2, 3] + * + * _.takeRight([1, 2, 3], 5); + * // => [1, 2, 3] + * + * _.takeRight([1, 2, 3], 0); + * // => [] + */ + function takeRight(array, n, guard) { + var length = array == null ? 0 : array.length; + if (!length) { + return []; + } + n = (guard || n === undefined) ? 1 : toInteger(n); + n = length - n; + return baseSlice(array, n < 0 ? 0 : n, length); + } + + /** + * Creates a slice of `array` with elements taken from the end. Elements are + * taken until `predicate` returns falsey. The predicate is invoked with + * three arguments: (value, index, array). + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Array + * @param {Array} array The array to query. + * @param {Function} [predicate=_.identity] The function invoked per iteration. + * @returns {Array} Returns the slice of `array`. + * @example + * + * var users = [ + * { 'user': 'barney', 'active': true }, + * { 'user': 'fred', 'active': false }, + * { 'user': 'pebbles', 'active': false } + * ]; + * + * _.takeRightWhile(users, function(o) { return !o.active; }); + * // => objects for ['fred', 'pebbles'] + * + * // The `_.matches` iteratee shorthand. + * _.takeRightWhile(users, { 'user': 'pebbles', 'active': false }); + * // => objects for ['pebbles'] + * + * // The `_.matchesProperty` iteratee shorthand. + * _.takeRightWhile(users, ['active', false]); + * // => objects for ['fred', 'pebbles'] + * + * // The `_.property` iteratee shorthand. + * _.takeRightWhile(users, 'active'); + * // => [] + */ + function takeRightWhile(array, predicate) { + return (array && array.length) + ? baseWhile(array, getIteratee(predicate, 3), false, true) + : []; + } + + /** + * Creates a slice of `array` with elements taken from the beginning. Elements + * are taken until `predicate` returns falsey. The predicate is invoked with + * three arguments: (value, index, array). + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Array + * @param {Array} array The array to query. + * @param {Function} [predicate=_.identity] The function invoked per iteration. + * @returns {Array} Returns the slice of `array`. + * @example + * + * var users = [ + * { 'user': 'barney', 'active': false }, + * { 'user': 'fred', 'active': false }, + * { 'user': 'pebbles', 'active': true } + * ]; + * + * _.takeWhile(users, function(o) { return !o.active; }); + * // => objects for ['barney', 'fred'] + * + * // The `_.matches` iteratee shorthand. + * _.takeWhile(users, { 'user': 'barney', 'active': false }); + * // => objects for ['barney'] + * + * // The `_.matchesProperty` iteratee shorthand. + * _.takeWhile(users, ['active', false]); + * // => objects for ['barney', 'fred'] + * + * // The `_.property` iteratee shorthand. + * _.takeWhile(users, 'active'); + * // => [] + */ + function takeWhile(array, predicate) { + return (array && array.length) + ? baseWhile(array, getIteratee(predicate, 3)) + : []; + } + + /** + * Creates an array of unique values, in order, from all given arrays using + * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) + * for equality comparisons. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Array + * @param {...Array} [arrays] The arrays to inspect. + * @returns {Array} Returns the new array of combined values. + * @example + * + * _.union([2], [1, 2]); + * // => [2, 1] + */ + var union = baseRest(function(arrays) { + return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true)); + }); + + /** + * This method is like `_.union` except that it accepts `iteratee` which is + * invoked for each element of each `arrays` to generate the criterion by + * which uniqueness is computed. Result values are chosen from the first + * array in which the value occurs. The iteratee is invoked with one argument: + * (value). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Array + * @param {...Array} [arrays] The arrays to inspect. + * @param {Function} [iteratee=_.identity] The iteratee invoked per element. + * @returns {Array} Returns the new array of combined values. + * @example + * + * _.unionBy([2.1], [1.2, 2.3], Math.floor); + * // => [2.1, 1.2] + * + * // The `_.property` iteratee shorthand. + * _.unionBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x'); + * // => [{ 'x': 1 }, { 'x': 2 }] + */ + var unionBy = baseRest(function(arrays) { + var iteratee = last(arrays); + if (isArrayLikeObject(iteratee)) { + iteratee = undefined; + } + return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true), getIteratee(iteratee, 2)); + }); + + /** + * This method is like `_.union` except that it accepts `comparator` which + * is invoked to compare elements of `arrays`. Result values are chosen from + * the first array in which the value occurs. The comparator is invoked + * with two arguments: (arrVal, othVal). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Array + * @param {...Array} [arrays] The arrays to inspect. + * @param {Function} [comparator] The comparator invoked per element. + * @returns {Array} Returns the new array of combined values. + * @example + * + * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }]; + * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }]; + * + * _.unionWith(objects, others, _.isEqual); + * // => [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }, { 'x': 1, 'y': 1 }] + */ + var unionWith = baseRest(function(arrays) { + var comparator = last(arrays); + comparator = typeof comparator == 'function' ? comparator : undefined; + return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true), undefined, comparator); + }); + + /** + * Creates a duplicate-free version of an array, using + * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) + * for equality comparisons, in which only the first occurrence of each element + * is kept. The order of result values is determined by the order they occur + * in the array. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Array + * @param {Array} array The array to inspect. + * @returns {Array} Returns the new duplicate free array. + * @example + * + * _.uniq([2, 1, 2]); + * // => [2, 1] + */ + function uniq(array) { + return (array && array.length) ? baseUniq(array) : []; + } + + /** + * This method is like `_.uniq` except that it accepts `iteratee` which is + * invoked for each element in `array` to generate the criterion by which + * uniqueness is computed. The order of result values is determined by the + * order they occur in the array. The iteratee is invoked with one argument: + * (value). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Array + * @param {Array} array The array to inspect. + * @param {Function} [iteratee=_.identity] The iteratee invoked per element. + * @returns {Array} Returns the new duplicate free array. + * @example + * + * _.uniqBy([2.1, 1.2, 2.3], Math.floor); + * // => [2.1, 1.2] + * + * // The `_.property` iteratee shorthand. + * _.uniqBy([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x'); + * // => [{ 'x': 1 }, { 'x': 2 }] + */ + function uniqBy(array, iteratee) { + return (array && array.length) ? baseUniq(array, getIteratee(iteratee, 2)) : []; + } + + /** + * This method is like `_.uniq` except that it accepts `comparator` which + * is invoked to compare elements of `array`. The order of result values is + * determined by the order they occur in the array.The comparator is invoked + * with two arguments: (arrVal, othVal). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Array + * @param {Array} array The array to inspect. + * @param {Function} [comparator] The comparator invoked per element. + * @returns {Array} Returns the new duplicate free array. + * @example + * + * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }, { 'x': 1, 'y': 2 }]; + * + * _.uniqWith(objects, _.isEqual); + * // => [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }] + */ + function uniqWith(array, comparator) { + comparator = typeof comparator == 'function' ? comparator : undefined; + return (array && array.length) ? baseUniq(array, undefined, comparator) : []; + } + + /** + * This method is like `_.zip` except that it accepts an array of grouped + * elements and creates an array regrouping the elements to their pre-zip + * configuration. + * + * @static + * @memberOf _ + * @since 1.2.0 + * @category Array + * @param {Array} array The array of grouped elements to process. + * @returns {Array} Returns the new array of regrouped elements. + * @example + * + * var zipped = _.zip(['a', 'b'], [1, 2], [true, false]); + * // => [['a', 1, true], ['b', 2, false]] + * + * _.unzip(zipped); + * // => [['a', 'b'], [1, 2], [true, false]] + */ + function unzip(array) { + if (!(array && array.length)) { + return []; + } + var length = 0; + array = arrayFilter(array, function(group) { + if (isArrayLikeObject(group)) { + length = nativeMax(group.length, length); + return true; + } + }); + return baseTimes(length, function(index) { + return arrayMap(array, baseProperty(index)); + }); + } + + /** + * This method is like `_.unzip` except that it accepts `iteratee` to specify + * how regrouped values should be combined. The iteratee is invoked with the + * elements of each group: (...group). + * + * @static + * @memberOf _ + * @since 3.8.0 + * @category Array + * @param {Array} array The array of grouped elements to process. + * @param {Function} [iteratee=_.identity] The function to combine + * regrouped values. + * @returns {Array} Returns the new array of regrouped elements. + * @example + * + * var zipped = _.zip([1, 2], [10, 20], [100, 200]); + * // => [[1, 10, 100], [2, 20, 200]] + * + * _.unzipWith(zipped, _.add); + * // => [3, 30, 300] + */ + function unzipWith(array, iteratee) { + if (!(array && array.length)) { + return []; + } + var result = unzip(array); + if (iteratee == null) { + return result; + } + return arrayMap(result, function(group) { + return apply(iteratee, undefined, group); + }); + } + + /** + * Creates an array excluding all given values using + * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) + * for equality comparisons. + * + * **Note:** Unlike `_.pull`, this method returns a new array. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Array + * @param {Array} array The array to inspect. + * @param {...*} [values] The values to exclude. + * @returns {Array} Returns the new array of filtered values. + * @see _.difference, _.xor + * @example + * + * _.without([2, 1, 2, 3], 1, 2); + * // => [3] + */ + var without = baseRest(function(array, values) { + return isArrayLikeObject(array) + ? baseDifference(array, values) + : []; + }); + + /** + * Creates an array of unique values that is the + * [symmetric difference](https://en.wikipedia.org/wiki/Symmetric_difference) + * of the given arrays. The order of result values is determined by the order + * they occur in the arrays. + * + * @static + * @memberOf _ + * @since 2.4.0 + * @category Array + * @param {...Array} [arrays] The arrays to inspect. + * @returns {Array} Returns the new array of filtered values. + * @see _.difference, _.without + * @example + * + * _.xor([2, 1], [2, 3]); + * // => [1, 3] + */ + var xor = baseRest(function(arrays) { + return baseXor(arrayFilter(arrays, isArrayLikeObject)); + }); + + /** + * This method is like `_.xor` except that it accepts `iteratee` which is + * invoked for each element of each `arrays` to generate the criterion by + * which by which they're compared. The order of result values is determined + * by the order they occur in the arrays. The iteratee is invoked with one + * argument: (value). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Array + * @param {...Array} [arrays] The arrays to inspect. + * @param {Function} [iteratee=_.identity] The iteratee invoked per element. + * @returns {Array} Returns the new array of filtered values. + * @example + * + * _.xorBy([2.1, 1.2], [2.3, 3.4], Math.floor); + * // => [1.2, 3.4] + * + * // The `_.property` iteratee shorthand. + * _.xorBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x'); + * // => [{ 'x': 2 }] + */ + var xorBy = baseRest(function(arrays) { + var iteratee = last(arrays); + if (isArrayLikeObject(iteratee)) { + iteratee = undefined; + } + return baseXor(arrayFilter(arrays, isArrayLikeObject), getIteratee(iteratee, 2)); + }); + + /** + * This method is like `_.xor` except that it accepts `comparator` which is + * invoked to compare elements of `arrays`. The order of result values is + * determined by the order they occur in the arrays. The comparator is invoked + * with two arguments: (arrVal, othVal). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Array + * @param {...Array} [arrays] The arrays to inspect. + * @param {Function} [comparator] The comparator invoked per element. + * @returns {Array} Returns the new array of filtered values. + * @example + * + * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }]; + * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }]; + * + * _.xorWith(objects, others, _.isEqual); + * // => [{ 'x': 2, 'y': 1 }, { 'x': 1, 'y': 1 }] + */ + var xorWith = baseRest(function(arrays) { + var comparator = last(arrays); + comparator = typeof comparator == 'function' ? comparator : undefined; + return baseXor(arrayFilter(arrays, isArrayLikeObject), undefined, comparator); + }); + + /** + * Creates an array of grouped elements, the first of which contains the + * first elements of the given arrays, the second of which contains the + * second elements of the given arrays, and so on. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Array + * @param {...Array} [arrays] The arrays to process. + * @returns {Array} Returns the new array of grouped elements. + * @example + * + * _.zip(['a', 'b'], [1, 2], [true, false]); + * // => [['a', 1, true], ['b', 2, false]] + */ + var zip = baseRest(unzip); + + /** + * This method is like `_.fromPairs` except that it accepts two arrays, + * one of property identifiers and one of corresponding values. + * + * @static + * @memberOf _ + * @since 0.4.0 + * @category Array + * @param {Array} [props=[]] The property identifiers. + * @param {Array} [values=[]] The property values. + * @returns {Object} Returns the new object. + * @example + * + * _.zipObject(['a', 'b'], [1, 2]); + * // => { 'a': 1, 'b': 2 } + */ + function zipObject(props, values) { + return baseZipObject(props || [], values || [], assignValue); + } + + /** + * This method is like `_.zipObject` except that it supports property paths. + * + * @static + * @memberOf _ + * @since 4.1.0 + * @category Array + * @param {Array} [props=[]] The property identifiers. + * @param {Array} [values=[]] The property values. + * @returns {Object} Returns the new object. + * @example + * + * _.zipObjectDeep(['a.b[0].c', 'a.b[1].d'], [1, 2]); + * // => { 'a': { 'b': [{ 'c': 1 }, { 'd': 2 }] } } + */ + function zipObjectDeep(props, values) { + return baseZipObject(props || [], values || [], baseSet); + } + + /** + * This method is like `_.zip` except that it accepts `iteratee` to specify + * how grouped values should be combined. The iteratee is invoked with the + * elements of each group: (...group). + * + * @static + * @memberOf _ + * @since 3.8.0 + * @category Array + * @param {...Array} [arrays] The arrays to process. + * @param {Function} [iteratee=_.identity] The function to combine + * grouped values. + * @returns {Array} Returns the new array of grouped elements. + * @example + * + * _.zipWith([1, 2], [10, 20], [100, 200], function(a, b, c) { + * return a + b + c; + * }); + * // => [111, 222] + */ + var zipWith = baseRest(function(arrays) { + var length = arrays.length, + iteratee = length > 1 ? arrays[length - 1] : undefined; + + iteratee = typeof iteratee == 'function' ? (arrays.pop(), iteratee) : undefined; + return unzipWith(arrays, iteratee); + }); + + /*------------------------------------------------------------------------*/ + + /** + * Creates a `lodash` wrapper instance that wraps `value` with explicit method + * chain sequences enabled. The result of such sequences must be unwrapped + * with `_#value`. + * + * @static + * @memberOf _ + * @since 1.3.0 + * @category Seq + * @param {*} value The value to wrap. + * @returns {Object} Returns the new `lodash` wrapper instance. + * @example + * + * var users = [ + * { 'user': 'barney', 'age': 36 }, + * { 'user': 'fred', 'age': 40 }, + * { 'user': 'pebbles', 'age': 1 } + * ]; + * + * var youngest = _ + * .chain(users) + * .sortBy('age') + * .map(function(o) { + * return o.user + ' is ' + o.age; + * }) + * .head() + * .value(); + * // => 'pebbles is 1' + */ + function chain(value) { + var result = lodash(value); + result.__chain__ = true; + return result; + } + + /** + * This method invokes `interceptor` and returns `value`. The interceptor + * is invoked with one argument; (value). The purpose of this method is to + * "tap into" a method chain sequence in order to modify intermediate results. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Seq + * @param {*} value The value to provide to `interceptor`. + * @param {Function} interceptor The function to invoke. + * @returns {*} Returns `value`. + * @example + * + * _([1, 2, 3]) + * .tap(function(array) { + * // Mutate input array. + * array.pop(); + * }) + * .reverse() + * .value(); + * // => [2, 1] + */ + function tap(value, interceptor) { + interceptor(value); + return value; + } + + /** + * This method is like `_.tap` except that it returns the result of `interceptor`. + * The purpose of this method is to "pass thru" values replacing intermediate + * results in a method chain sequence. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Seq + * @param {*} value The value to provide to `interceptor`. + * @param {Function} interceptor The function to invoke. + * @returns {*} Returns the result of `interceptor`. + * @example + * + * _(' abc ') + * .chain() + * .trim() + * .thru(function(value) { + * return [value]; + * }) + * .value(); + * // => ['abc'] + */ + function thru(value, interceptor) { + return interceptor(value); + } + + /** + * This method is the wrapper version of `_.at`. + * + * @name at + * @memberOf _ + * @since 1.0.0 + * @category Seq + * @param {...(string|string[])} [paths] The property paths to pick. + * @returns {Object} Returns the new `lodash` wrapper instance. + * @example + * + * var object = { 'a': [{ 'b': { 'c': 3 } }, 4] }; + * + * _(object).at(['a[0].b.c', 'a[1]']).value(); + * // => [3, 4] + */ + var wrapperAt = flatRest(function(paths) { + var length = paths.length, + start = length ? paths[0] : 0, + value = this.__wrapped__, + interceptor = function(object) { return baseAt(object, paths); }; + + if (length > 1 || this.__actions__.length || + !(value instanceof LazyWrapper) || !isIndex(start)) { + return this.thru(interceptor); + } + value = value.slice(start, +start + (length ? 1 : 0)); + value.__actions__.push({ + 'func': thru, + 'args': [interceptor], + 'thisArg': undefined + }); + return new LodashWrapper(value, this.__chain__).thru(function(array) { + if (length && !array.length) { + array.push(undefined); + } + return array; + }); + }); + + /** + * Creates a `lodash` wrapper instance with explicit method chain sequences enabled. + * + * @name chain + * @memberOf _ + * @since 0.1.0 + * @category Seq + * @returns {Object} Returns the new `lodash` wrapper instance. + * @example + * + * var users = [ + * { 'user': 'barney', 'age': 36 }, + * { 'user': 'fred', 'age': 40 } + * ]; + * + * // A sequence without explicit chaining. + * _(users).head(); + * // => { 'user': 'barney', 'age': 36 } + * + * // A sequence with explicit chaining. + * _(users) + * .chain() + * .head() + * .pick('user') + * .value(); + * // => { 'user': 'barney' } + */ + function wrapperChain() { + return chain(this); + } + + /** + * Executes the chain sequence and returns the wrapped result. + * + * @name commit + * @memberOf _ + * @since 3.2.0 + * @category Seq + * @returns {Object} Returns the new `lodash` wrapper instance. + * @example + * + * var array = [1, 2]; + * var wrapped = _(array).push(3); + * + * console.log(array); + * // => [1, 2] + * + * wrapped = wrapped.commit(); + * console.log(array); + * // => [1, 2, 3] + * + * wrapped.last(); + * // => 3 + * + * console.log(array); + * // => [1, 2, 3] + */ + function wrapperCommit() { + return new LodashWrapper(this.value(), this.__chain__); + } + + /** + * Gets the next value on a wrapped object following the + * [iterator protocol](https://mdn.io/iteration_protocols#iterator). + * + * @name next + * @memberOf _ + * @since 4.0.0 + * @category Seq + * @returns {Object} Returns the next iterator value. + * @example + * + * var wrapped = _([1, 2]); + * + * wrapped.next(); + * // => { 'done': false, 'value': 1 } + * + * wrapped.next(); + * // => { 'done': false, 'value': 2 } + * + * wrapped.next(); + * // => { 'done': true, 'value': undefined } + */ + function wrapperNext() { + if (this.__values__ === undefined) { + this.__values__ = toArray(this.value()); + } + var done = this.__index__ >= this.__values__.length, + value = done ? undefined : this.__values__[this.__index__++]; + + return { 'done': done, 'value': value }; + } + + /** + * Enables the wrapper to be iterable. + * + * @name Symbol.iterator + * @memberOf _ + * @since 4.0.0 + * @category Seq + * @returns {Object} Returns the wrapper object. + * @example + * + * var wrapped = _([1, 2]); + * + * wrapped[Symbol.iterator]() === wrapped; + * // => true + * + * Array.from(wrapped); + * // => [1, 2] + */ + function wrapperToIterator() { + return this; + } + + /** + * Creates a clone of the chain sequence planting `value` as the wrapped value. + * + * @name plant + * @memberOf _ + * @since 3.2.0 + * @category Seq + * @param {*} value The value to plant. + * @returns {Object} Returns the new `lodash` wrapper instance. + * @example + * + * function square(n) { + * return n * n; + * } + * + * var wrapped = _([1, 2]).map(square); + * var other = wrapped.plant([3, 4]); + * + * other.value(); + * // => [9, 16] + * + * wrapped.value(); + * // => [1, 4] + */ + function wrapperPlant(value) { + var result, + parent = this; + + while (parent instanceof baseLodash) { + var clone = wrapperClone(parent); + clone.__index__ = 0; + clone.__values__ = undefined; + if (result) { + previous.__wrapped__ = clone; + } else { + result = clone; + } + var previous = clone; + parent = parent.__wrapped__; + } + previous.__wrapped__ = value; + return result; + } + + /** + * This method is the wrapper version of `_.reverse`. + * + * **Note:** This method mutates the wrapped array. + * + * @name reverse + * @memberOf _ + * @since 0.1.0 + * @category Seq + * @returns {Object} Returns the new `lodash` wrapper instance. + * @example + * + * var array = [1, 2, 3]; + * + * _(array).reverse().value() + * // => [3, 2, 1] + * + * console.log(array); + * // => [3, 2, 1] + */ + function wrapperReverse() { + var value = this.__wrapped__; + if (value instanceof LazyWrapper) { + var wrapped = value; + if (this.__actions__.length) { + wrapped = new LazyWrapper(this); + } + wrapped = wrapped.reverse(); + wrapped.__actions__.push({ + 'func': thru, + 'args': [reverse], + 'thisArg': undefined + }); + return new LodashWrapper(wrapped, this.__chain__); + } + return this.thru(reverse); + } + + /** + * Executes the chain sequence to resolve the unwrapped value. + * + * @name value + * @memberOf _ + * @since 0.1.0 + * @alias toJSON, valueOf + * @category Seq + * @returns {*} Returns the resolved unwrapped value. + * @example + * + * _([1, 2, 3]).value(); + * // => [1, 2, 3] + */ + function wrapperValue() { + return baseWrapperValue(this.__wrapped__, this.__actions__); + } + + /*------------------------------------------------------------------------*/ + + /** + * Creates an object composed of keys generated from the results of running + * each element of `collection` thru `iteratee`. The corresponding value of + * each key is the number of times the key was returned by `iteratee`. The + * iteratee is invoked with one argument: (value). + * + * @static + * @memberOf _ + * @since 0.5.0 + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} [iteratee=_.identity] The iteratee to transform keys. + * @returns {Object} Returns the composed aggregate object. + * @example + * + * _.countBy([6.1, 4.2, 6.3], Math.floor); + * // => { '4': 1, '6': 2 } + * + * // The `_.property` iteratee shorthand. + * _.countBy(['one', 'two', 'three'], 'length'); + * // => { '3': 2, '5': 1 } + */ + var countBy = createAggregator(function(result, value, key) { + if (hasOwnProperty.call(result, key)) { + ++result[key]; + } else { + baseAssignValue(result, key, 1); + } + }); + + /** + * Checks if `predicate` returns truthy for **all** elements of `collection`. + * Iteration is stopped once `predicate` returns falsey. The predicate is + * invoked with three arguments: (value, index|key, collection). + * + * **Note:** This method returns `true` for + * [empty collections](https://en.wikipedia.org/wiki/Empty_set) because + * [everything is true](https://en.wikipedia.org/wiki/Vacuous_truth) of + * elements of empty collections. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} [predicate=_.identity] The function invoked per iteration. + * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. + * @returns {boolean} Returns `true` if all elements pass the predicate check, + * else `false`. + * @example + * + * _.every([true, 1, null, 'yes'], Boolean); + * // => false + * + * var users = [ + * { 'user': 'barney', 'age': 36, 'active': false }, + * { 'user': 'fred', 'age': 40, 'active': false } + * ]; + * + * // The `_.matches` iteratee shorthand. + * _.every(users, { 'user': 'barney', 'active': false }); + * // => false + * + * // The `_.matchesProperty` iteratee shorthand. + * _.every(users, ['active', false]); + * // => true + * + * // The `_.property` iteratee shorthand. + * _.every(users, 'active'); + * // => false + */ + function every(collection, predicate, guard) { + var func = isArray(collection) ? arrayEvery : baseEvery; + if (guard && isIterateeCall(collection, predicate, guard)) { + predicate = undefined; + } + return func(collection, getIteratee(predicate, 3)); + } + + /** + * Iterates over elements of `collection`, returning an array of all elements + * `predicate` returns truthy for. The predicate is invoked with three + * arguments: (value, index|key, collection). + * + * **Note:** Unlike `_.remove`, this method returns a new array. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} [predicate=_.identity] The function invoked per iteration. + * @returns {Array} Returns the new filtered array. + * @see _.reject + * @example + * + * var users = [ + * { 'user': 'barney', 'age': 36, 'active': true }, + * { 'user': 'fred', 'age': 40, 'active': false } + * ]; + * + * _.filter(users, function(o) { return !o.active; }); + * // => objects for ['fred'] + * + * // The `_.matches` iteratee shorthand. + * _.filter(users, { 'age': 36, 'active': true }); + * // => objects for ['barney'] + * + * // The `_.matchesProperty` iteratee shorthand. + * _.filter(users, ['active', false]); + * // => objects for ['fred'] + * + * // The `_.property` iteratee shorthand. + * _.filter(users, 'active'); + * // => objects for ['barney'] + */ + function filter(collection, predicate) { + var func = isArray(collection) ? arrayFilter : baseFilter; + return func(collection, getIteratee(predicate, 3)); + } + + /** + * Iterates over elements of `collection`, returning the first element + * `predicate` returns truthy for. The predicate is invoked with three + * arguments: (value, index|key, collection). + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Collection + * @param {Array|Object} collection The collection to inspect. + * @param {Function} [predicate=_.identity] The function invoked per iteration. + * @param {number} [fromIndex=0] The index to search from. + * @returns {*} Returns the matched element, else `undefined`. + * @example + * + * var users = [ + * { 'user': 'barney', 'age': 36, 'active': true }, + * { 'user': 'fred', 'age': 40, 'active': false }, + * { 'user': 'pebbles', 'age': 1, 'active': true } + * ]; + * + * _.find(users, function(o) { return o.age < 40; }); + * // => object for 'barney' + * + * // The `_.matches` iteratee shorthand. + * _.find(users, { 'age': 1, 'active': true }); + * // => object for 'pebbles' + * + * // The `_.matchesProperty` iteratee shorthand. + * _.find(users, ['active', false]); + * // => object for 'fred' + * + * // The `_.property` iteratee shorthand. + * _.find(users, 'active'); + * // => object for 'barney' + */ + var find = createFind(findIndex); + + /** + * This method is like `_.find` except that it iterates over elements of + * `collection` from right to left. + * + * @static + * @memberOf _ + * @since 2.0.0 + * @category Collection + * @param {Array|Object} collection The collection to inspect. + * @param {Function} [predicate=_.identity] The function invoked per iteration. + * @param {number} [fromIndex=collection.length-1] The index to search from. + * @returns {*} Returns the matched element, else `undefined`. + * @example + * + * _.findLast([1, 2, 3, 4], function(n) { + * return n % 2 == 1; + * }); + * // => 3 + */ + var findLast = createFind(findLastIndex); + + /** + * Creates a flattened array of values by running each element in `collection` + * thru `iteratee` and flattening the mapped results. The iteratee is invoked + * with three arguments: (value, index|key, collection). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} [iteratee=_.identity] The function invoked per iteration. + * @returns {Array} Returns the new flattened array. + * @example + * + * function duplicate(n) { + * return [n, n]; + * } + * + * _.flatMap([1, 2], duplicate); + * // => [1, 1, 2, 2] + */ + function flatMap(collection, iteratee) { + return baseFlatten(map(collection, iteratee), 1); + } + + /** + * This method is like `_.flatMap` except that it recursively flattens the + * mapped results. + * + * @static + * @memberOf _ + * @since 4.7.0 + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} [iteratee=_.identity] The function invoked per iteration. + * @returns {Array} Returns the new flattened array. + * @example + * + * function duplicate(n) { + * return [[[n, n]]]; + * } + * + * _.flatMapDeep([1, 2], duplicate); + * // => [1, 1, 2, 2] + */ + function flatMapDeep(collection, iteratee) { + return baseFlatten(map(collection, iteratee), INFINITY); + } + + /** + * This method is like `_.flatMap` except that it recursively flattens the + * mapped results up to `depth` times. + * + * @static + * @memberOf _ + * @since 4.7.0 + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} [iteratee=_.identity] The function invoked per iteration. + * @param {number} [depth=1] The maximum recursion depth. + * @returns {Array} Returns the new flattened array. + * @example + * + * function duplicate(n) { + * return [[[n, n]]]; + * } + * + * _.flatMapDepth([1, 2], duplicate, 2); + * // => [[1, 1], [2, 2]] + */ + function flatMapDepth(collection, iteratee, depth) { + depth = depth === undefined ? 1 : toInteger(depth); + return baseFlatten(map(collection, iteratee), depth); + } + + /** + * Iterates over elements of `collection` and invokes `iteratee` for each element. + * The iteratee is invoked with three arguments: (value, index|key, collection). + * Iteratee functions may exit iteration early by explicitly returning `false`. + * + * **Note:** As with other "Collections" methods, objects with a "length" + * property are iterated like arrays. To avoid this behavior use `_.forIn` + * or `_.forOwn` for object iteration. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @alias each + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} [iteratee=_.identity] The function invoked per iteration. + * @returns {Array|Object} Returns `collection`. + * @see _.forEachRight + * @example + * + * _.forEach([1, 2], function(value) { + * console.log(value); + * }); + * // => Logs `1` then `2`. + * + * _.forEach({ 'a': 1, 'b': 2 }, function(value, key) { + * console.log(key); + * }); + * // => Logs 'a' then 'b' (iteration order is not guaranteed). + */ + function forEach(collection, iteratee) { + var func = isArray(collection) ? arrayEach : baseEach; + return func(collection, getIteratee(iteratee, 3)); + } + + /** + * This method is like `_.forEach` except that it iterates over elements of + * `collection` from right to left. + * + * @static + * @memberOf _ + * @since 2.0.0 + * @alias eachRight + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} [iteratee=_.identity] The function invoked per iteration. + * @returns {Array|Object} Returns `collection`. + * @see _.forEach + * @example + * + * _.forEachRight([1, 2], function(value) { + * console.log(value); + * }); + * // => Logs `2` then `1`. + */ + function forEachRight(collection, iteratee) { + var func = isArray(collection) ? arrayEachRight : baseEachRight; + return func(collection, getIteratee(iteratee, 3)); + } + + /** + * Creates an object composed of keys generated from the results of running + * each element of `collection` thru `iteratee`. The order of grouped values + * is determined by the order they occur in `collection`. The corresponding + * value of each key is an array of elements responsible for generating the + * key. The iteratee is invoked with one argument: (value). + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} [iteratee=_.identity] The iteratee to transform keys. + * @returns {Object} Returns the composed aggregate object. + * @example + * + * _.groupBy([6.1, 4.2, 6.3], Math.floor); + * // => { '4': [4.2], '6': [6.1, 6.3] } + * + * // The `_.property` iteratee shorthand. + * _.groupBy(['one', 'two', 'three'], 'length'); + * // => { '3': ['one', 'two'], '5': ['three'] } + */ + var groupBy = createAggregator(function(result, value, key) { + if (hasOwnProperty.call(result, key)) { + result[key].push(value); + } else { + baseAssignValue(result, key, [value]); + } + }); + + /** + * Checks if `value` is in `collection`. If `collection` is a string, it's + * checked for a substring of `value`, otherwise + * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) + * is used for equality comparisons. If `fromIndex` is negative, it's used as + * the offset from the end of `collection`. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Collection + * @param {Array|Object|string} collection The collection to inspect. + * @param {*} value The value to search for. + * @param {number} [fromIndex=0] The index to search from. + * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`. + * @returns {boolean} Returns `true` if `value` is found, else `false`. + * @example + * + * _.includes([1, 2, 3], 1); + * // => true + * + * _.includes([1, 2, 3], 1, 2); + * // => false + * + * _.includes({ 'a': 1, 'b': 2 }, 1); + * // => true + * + * _.includes('abcd', 'bc'); + * // => true + */ + function includes(collection, value, fromIndex, guard) { + collection = isArrayLike(collection) ? collection : values(collection); + fromIndex = (fromIndex && !guard) ? toInteger(fromIndex) : 0; + + var length = collection.length; + if (fromIndex < 0) { + fromIndex = nativeMax(length + fromIndex, 0); + } + return isString(collection) + ? (fromIndex <= length && collection.indexOf(value, fromIndex) > -1) + : (!!length && baseIndexOf(collection, value, fromIndex) > -1); + } + + /** + * Invokes the method at `path` of each element in `collection`, returning + * an array of the results of each invoked method. Any additional arguments + * are provided to each invoked method. If `path` is a function, it's invoked + * for, and `this` bound to, each element in `collection`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {Array|Function|string} path The path of the method to invoke or + * the function invoked per iteration. + * @param {...*} [args] The arguments to invoke each method with. + * @returns {Array} Returns the array of results. + * @example + * + * _.invokeMap([[5, 1, 7], [3, 2, 1]], 'sort'); + * // => [[1, 5, 7], [1, 2, 3]] + * + * _.invokeMap([123, 456], String.prototype.split, ''); + * // => [['1', '2', '3'], ['4', '5', '6']] + */ + var invokeMap = baseRest(function(collection, path, args) { + var index = -1, + isFunc = typeof path == 'function', + result = isArrayLike(collection) ? Array(collection.length) : []; + + baseEach(collection, function(value) { + result[++index] = isFunc ? apply(path, value, args) : baseInvoke(value, path, args); + }); + return result; + }); + + /** + * Creates an object composed of keys generated from the results of running + * each element of `collection` thru `iteratee`. The corresponding value of + * each key is the last element responsible for generating the key. The + * iteratee is invoked with one argument: (value). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} [iteratee=_.identity] The iteratee to transform keys. + * @returns {Object} Returns the composed aggregate object. + * @example + * + * var array = [ + * { 'dir': 'left', 'code': 97 }, + * { 'dir': 'right', 'code': 100 } + * ]; + * + * _.keyBy(array, function(o) { + * return String.fromCharCode(o.code); + * }); + * // => { 'a': { 'dir': 'left', 'code': 97 }, 'd': { 'dir': 'right', 'code': 100 } } + * + * _.keyBy(array, 'dir'); + * // => { 'left': { 'dir': 'left', 'code': 97 }, 'right': { 'dir': 'right', 'code': 100 } } + */ + var keyBy = createAggregator(function(result, value, key) { + baseAssignValue(result, key, value); + }); + + /** + * Creates an array of values by running each element in `collection` thru + * `iteratee`. The iteratee is invoked with three arguments: + * (value, index|key, collection). + * + * Many lodash methods are guarded to work as iteratees for methods like + * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`. + * + * The guarded methods are: + * `ary`, `chunk`, `curry`, `curryRight`, `drop`, `dropRight`, `every`, + * `fill`, `invert`, `parseInt`, `random`, `range`, `rangeRight`, `repeat`, + * `sampleSize`, `slice`, `some`, `sortBy`, `split`, `take`, `takeRight`, + * `template`, `trim`, `trimEnd`, `trimStart`, and `words` + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} [iteratee=_.identity] The function invoked per iteration. + * @returns {Array} Returns the new mapped array. + * @example + * + * function square(n) { + * return n * n; + * } + * + * _.map([4, 8], square); + * // => [16, 64] + * + * _.map({ 'a': 4, 'b': 8 }, square); + * // => [16, 64] (iteration order is not guaranteed) + * + * var users = [ + * { 'user': 'barney' }, + * { 'user': 'fred' } + * ]; + * + * // The `_.property` iteratee shorthand. + * _.map(users, 'user'); + * // => ['barney', 'fred'] + */ + function map(collection, iteratee) { + var func = isArray(collection) ? arrayMap : baseMap; + return func(collection, getIteratee(iteratee, 3)); + } + + /** + * This method is like `_.sortBy` except that it allows specifying the sort + * orders of the iteratees to sort by. If `orders` is unspecified, all values + * are sorted in ascending order. Otherwise, specify an order of "desc" for + * descending or "asc" for ascending sort order of corresponding values. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {Array[]|Function[]|Object[]|string[]} [iteratees=[_.identity]] + * The iteratees to sort by. + * @param {string[]} [orders] The sort orders of `iteratees`. + * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`. + * @returns {Array} Returns the new sorted array. + * @example + * + * var users = [ + * { 'user': 'fred', 'age': 48 }, + * { 'user': 'barney', 'age': 34 }, + * { 'user': 'fred', 'age': 40 }, + * { 'user': 'barney', 'age': 36 } + * ]; + * + * // Sort by `user` in ascending order and by `age` in descending order. + * _.orderBy(users, ['user', 'age'], ['asc', 'desc']); + * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 40]] + */ + function orderBy(collection, iteratees, orders, guard) { + if (collection == null) { + return []; + } + if (!isArray(iteratees)) { + iteratees = iteratees == null ? [] : [iteratees]; + } + orders = guard ? undefined : orders; + if (!isArray(orders)) { + orders = orders == null ? [] : [orders]; + } + return baseOrderBy(collection, iteratees, orders); + } + + /** + * Creates an array of elements split into two groups, the first of which + * contains elements `predicate` returns truthy for, the second of which + * contains elements `predicate` returns falsey for. The predicate is + * invoked with one argument: (value). + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} [predicate=_.identity] The function invoked per iteration. + * @returns {Array} Returns the array of grouped elements. + * @example + * + * var users = [ + * { 'user': 'barney', 'age': 36, 'active': false }, + * { 'user': 'fred', 'age': 40, 'active': true }, + * { 'user': 'pebbles', 'age': 1, 'active': false } + * ]; + * + * _.partition(users, function(o) { return o.active; }); + * // => objects for [['fred'], ['barney', 'pebbles']] + * + * // The `_.matches` iteratee shorthand. + * _.partition(users, { 'age': 1, 'active': false }); + * // => objects for [['pebbles'], ['barney', 'fred']] + * + * // The `_.matchesProperty` iteratee shorthand. + * _.partition(users, ['active', false]); + * // => objects for [['barney', 'pebbles'], ['fred']] + * + * // The `_.property` iteratee shorthand. + * _.partition(users, 'active'); + * // => objects for [['fred'], ['barney', 'pebbles']] + */ + var partition = createAggregator(function(result, value, key) { + result[key ? 0 : 1].push(value); + }, function() { return [[], []]; }); + + /** + * Reduces `collection` to a value which is the accumulated result of running + * each element in `collection` thru `iteratee`, where each successive + * invocation is supplied the return value of the previous. If `accumulator` + * is not given, the first element of `collection` is used as the initial + * value. The iteratee is invoked with four arguments: + * (accumulator, value, index|key, collection). + * + * Many lodash methods are guarded to work as iteratees for methods like + * `_.reduce`, `_.reduceRight`, and `_.transform`. + * + * The guarded methods are: + * `assign`, `defaults`, `defaultsDeep`, `includes`, `merge`, `orderBy`, + * and `sortBy` + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} [iteratee=_.identity] The function invoked per iteration. + * @param {*} [accumulator] The initial value. + * @returns {*} Returns the accumulated value. + * @see _.reduceRight + * @example + * + * _.reduce([1, 2], function(sum, n) { + * return sum + n; + * }, 0); + * // => 3 + * + * _.reduce({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) { + * (result[value] || (result[value] = [])).push(key); + * return result; + * }, {}); + * // => { '1': ['a', 'c'], '2': ['b'] } (iteration order is not guaranteed) + */ + function reduce(collection, iteratee, accumulator) { + var func = isArray(collection) ? arrayReduce : baseReduce, + initAccum = arguments.length < 3; + + return func(collection, getIteratee(iteratee, 4), accumulator, initAccum, baseEach); + } + + /** + * This method is like `_.reduce` except that it iterates over elements of + * `collection` from right to left. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} [iteratee=_.identity] The function invoked per iteration. + * @param {*} [accumulator] The initial value. + * @returns {*} Returns the accumulated value. + * @see _.reduce + * @example + * + * var array = [[0, 1], [2, 3], [4, 5]]; + * + * _.reduceRight(array, function(flattened, other) { + * return flattened.concat(other); + * }, []); + * // => [4, 5, 2, 3, 0, 1] + */ + function reduceRight(collection, iteratee, accumulator) { + var func = isArray(collection) ? arrayReduceRight : baseReduce, + initAccum = arguments.length < 3; + + return func(collection, getIteratee(iteratee, 4), accumulator, initAccum, baseEachRight); + } + + /** + * The opposite of `_.filter`; this method returns the elements of `collection` + * that `predicate` does **not** return truthy for. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} [predicate=_.identity] The function invoked per iteration. + * @returns {Array} Returns the new filtered array. + * @see _.filter + * @example + * + * var users = [ + * { 'user': 'barney', 'age': 36, 'active': false }, + * { 'user': 'fred', 'age': 40, 'active': true } + * ]; + * + * _.reject(users, function(o) { return !o.active; }); + * // => objects for ['fred'] + * + * // The `_.matches` iteratee shorthand. + * _.reject(users, { 'age': 40, 'active': true }); + * // => objects for ['barney'] + * + * // The `_.matchesProperty` iteratee shorthand. + * _.reject(users, ['active', false]); + * // => objects for ['fred'] + * + * // The `_.property` iteratee shorthand. + * _.reject(users, 'active'); + * // => objects for ['barney'] + */ + function reject(collection, predicate) { + var func = isArray(collection) ? arrayFilter : baseFilter; + return func(collection, negate(getIteratee(predicate, 3))); + } + + /** + * Gets a random element from `collection`. + * + * @static + * @memberOf _ + * @since 2.0.0 + * @category Collection + * @param {Array|Object} collection The collection to sample. + * @returns {*} Returns the random element. + * @example + * + * _.sample([1, 2, 3, 4]); + * // => 2 + */ + function sample(collection) { + var func = isArray(collection) ? arraySample : baseSample; + return func(collection); + } + + /** + * Gets `n` random elements at unique keys from `collection` up to the + * size of `collection`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Collection + * @param {Array|Object} collection The collection to sample. + * @param {number} [n=1] The number of elements to sample. + * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. + * @returns {Array} Returns the random elements. + * @example + * + * _.sampleSize([1, 2, 3], 2); + * // => [3, 1] + * + * _.sampleSize([1, 2, 3], 4); + * // => [2, 3, 1] + */ + function sampleSize(collection, n, guard) { + if ((guard ? isIterateeCall(collection, n, guard) : n === undefined)) { + n = 1; + } else { + n = toInteger(n); + } + var func = isArray(collection) ? arraySampleSize : baseSampleSize; + return func(collection, n); + } + + /** + * Creates an array of shuffled values, using a version of the + * [Fisher-Yates shuffle](https://en.wikipedia.org/wiki/Fisher-Yates_shuffle). + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Collection + * @param {Array|Object} collection The collection to shuffle. + * @returns {Array} Returns the new shuffled array. + * @example + * + * _.shuffle([1, 2, 3, 4]); + * // => [4, 1, 3, 2] + */ + function shuffle(collection) { + var func = isArray(collection) ? arrayShuffle : baseShuffle; + return func(collection); + } + + /** + * Gets the size of `collection` by returning its length for array-like + * values or the number of own enumerable string keyed properties for objects. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Collection + * @param {Array|Object|string} collection The collection to inspect. + * @returns {number} Returns the collection size. + * @example + * + * _.size([1, 2, 3]); + * // => 3 + * + * _.size({ 'a': 1, 'b': 2 }); + * // => 2 + * + * _.size('pebbles'); + * // => 7 + */ + function size(collection) { + if (collection == null) { + return 0; + } + if (isArrayLike(collection)) { + return isString(collection) ? stringSize(collection) : collection.length; + } + var tag = getTag(collection); + if (tag == mapTag || tag == setTag) { + return collection.size; + } + return baseKeys(collection).length; + } + + /** + * Checks if `predicate` returns truthy for **any** element of `collection`. + * Iteration is stopped once `predicate` returns truthy. The predicate is + * invoked with three arguments: (value, index|key, collection). + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} [predicate=_.identity] The function invoked per iteration. + * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. + * @returns {boolean} Returns `true` if any element passes the predicate check, + * else `false`. + * @example + * + * _.some([null, 0, 'yes', false], Boolean); + * // => true + * + * var users = [ + * { 'user': 'barney', 'active': true }, + * { 'user': 'fred', 'active': false } + * ]; + * + * // The `_.matches` iteratee shorthand. + * _.some(users, { 'user': 'barney', 'active': false }); + * // => false + * + * // The `_.matchesProperty` iteratee shorthand. + * _.some(users, ['active', false]); + * // => true + * + * // The `_.property` iteratee shorthand. + * _.some(users, 'active'); + * // => true + */ + function some(collection, predicate, guard) { + var func = isArray(collection) ? arraySome : baseSome; + if (guard && isIterateeCall(collection, predicate, guard)) { + predicate = undefined; + } + return func(collection, getIteratee(predicate, 3)); + } + + /** + * Creates an array of elements, sorted in ascending order by the results of + * running each element in a collection thru each iteratee. This method + * performs a stable sort, that is, it preserves the original sort order of + * equal elements. The iteratees are invoked with one argument: (value). + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {...(Function|Function[])} [iteratees=[_.identity]] + * The iteratees to sort by. + * @returns {Array} Returns the new sorted array. + * @example + * + * var users = [ + * { 'user': 'fred', 'age': 48 }, + * { 'user': 'barney', 'age': 36 }, + * { 'user': 'fred', 'age': 40 }, + * { 'user': 'barney', 'age': 34 } + * ]; + * + * _.sortBy(users, [function(o) { return o.user; }]); + * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 40]] + * + * _.sortBy(users, ['user', 'age']); + * // => objects for [['barney', 34], ['barney', 36], ['fred', 40], ['fred', 48]] + */ + var sortBy = baseRest(function(collection, iteratees) { + if (collection == null) { + return []; + } + var length = iteratees.length; + if (length > 1 && isIterateeCall(collection, iteratees[0], iteratees[1])) { + iteratees = []; + } else if (length > 2 && isIterateeCall(iteratees[0], iteratees[1], iteratees[2])) { + iteratees = [iteratees[0]]; + } + return baseOrderBy(collection, baseFlatten(iteratees, 1), []); + }); + + /*------------------------------------------------------------------------*/ + + /** + * Gets the timestamp of the number of milliseconds that have elapsed since + * the Unix epoch (1 January 1970 00:00:00 UTC). + * + * @static + * @memberOf _ + * @since 2.4.0 + * @category Date + * @returns {number} Returns the timestamp. + * @example + * + * _.defer(function(stamp) { + * console.log(_.now() - stamp); + * }, _.now()); + * // => Logs the number of milliseconds it took for the deferred invocation. + */ + var now = ctxNow || function() { + return root.Date.now(); + }; + + /*------------------------------------------------------------------------*/ + + /** + * The opposite of `_.before`; this method creates a function that invokes + * `func` once it's called `n` or more times. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Function + * @param {number} n The number of calls before `func` is invoked. + * @param {Function} func The function to restrict. + * @returns {Function} Returns the new restricted function. + * @example + * + * var saves = ['profile', 'settings']; + * + * var done = _.after(saves.length, function() { + * console.log('done saving!'); + * }); + * + * _.forEach(saves, function(type) { + * asyncSave({ 'type': type, 'complete': done }); + * }); + * // => Logs 'done saving!' after the two async saves have completed. + */ + function after(n, func) { + if (typeof func != 'function') { + throw new TypeError(FUNC_ERROR_TEXT); + } + n = toInteger(n); + return function() { + if (--n < 1) { + return func.apply(this, arguments); + } + }; + } + + /** + * Creates a function that invokes `func`, with up to `n` arguments, + * ignoring any additional arguments. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Function + * @param {Function} func The function to cap arguments for. + * @param {number} [n=func.length] The arity cap. + * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. + * @returns {Function} Returns the new capped function. + * @example + * + * _.map(['6', '8', '10'], _.ary(parseInt, 1)); + * // => [6, 8, 10] + */ + function ary(func, n, guard) { + n = guard ? undefined : n; + n = (func && n == null) ? func.length : n; + return createWrap(func, WRAP_ARY_FLAG, undefined, undefined, undefined, undefined, n); + } + + /** + * Creates a function that invokes `func`, with the `this` binding and arguments + * of the created function, while it's called less than `n` times. Subsequent + * calls to the created function return the result of the last `func` invocation. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Function + * @param {number} n The number of calls at which `func` is no longer invoked. + * @param {Function} func The function to restrict. + * @returns {Function} Returns the new restricted function. + * @example + * + * jQuery(element).on('click', _.before(5, addContactToList)); + * // => Allows adding up to 4 contacts to the list. + */ + function before(n, func) { + var result; + if (typeof func != 'function') { + throw new TypeError(FUNC_ERROR_TEXT); + } + n = toInteger(n); + return function() { + if (--n > 0) { + result = func.apply(this, arguments); + } + if (n <= 1) { + func = undefined; + } + return result; + }; + } + + /** + * Creates a function that invokes `func` with the `this` binding of `thisArg` + * and `partials` prepended to the arguments it receives. + * + * The `_.bind.placeholder` value, which defaults to `_` in monolithic builds, + * may be used as a placeholder for partially applied arguments. + * + * **Note:** Unlike native `Function#bind`, this method doesn't set the "length" + * property of bound functions. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Function + * @param {Function} func The function to bind. + * @param {*} thisArg The `this` binding of `func`. + * @param {...*} [partials] The arguments to be partially applied. + * @returns {Function} Returns the new bound function. + * @example + * + * function greet(greeting, punctuation) { + * return greeting + ' ' + this.user + punctuation; + * } + * + * var object = { 'user': 'fred' }; + * + * var bound = _.bind(greet, object, 'hi'); + * bound('!'); + * // => 'hi fred!' + * + * // Bound with placeholders. + * var bound = _.bind(greet, object, _, '!'); + * bound('hi'); + * // => 'hi fred!' + */ + var bind = baseRest(function(func, thisArg, partials) { + var bitmask = WRAP_BIND_FLAG; + if (partials.length) { + var holders = replaceHolders(partials, getHolder(bind)); + bitmask |= WRAP_PARTIAL_FLAG; + } + return createWrap(func, bitmask, thisArg, partials, holders); + }); + + /** + * Creates a function that invokes the method at `object[key]` with `partials` + * prepended to the arguments it receives. + * + * This method differs from `_.bind` by allowing bound functions to reference + * methods that may be redefined or don't yet exist. See + * [Peter Michaux's article](http://peter.michaux.ca/articles/lazy-function-definition-pattern) + * for more details. + * + * The `_.bindKey.placeholder` value, which defaults to `_` in monolithic + * builds, may be used as a placeholder for partially applied arguments. + * + * @static + * @memberOf _ + * @since 0.10.0 + * @category Function + * @param {Object} object The object to invoke the method on. + * @param {string} key The key of the method. + * @param {...*} [partials] The arguments to be partially applied. + * @returns {Function} Returns the new bound function. + * @example + * + * var object = { + * 'user': 'fred', + * 'greet': function(greeting, punctuation) { + * return greeting + ' ' + this.user + punctuation; + * } + * }; + * + * var bound = _.bindKey(object, 'greet', 'hi'); + * bound('!'); + * // => 'hi fred!' + * + * object.greet = function(greeting, punctuation) { + * return greeting + 'ya ' + this.user + punctuation; + * }; + * + * bound('!'); + * // => 'hiya fred!' + * + * // Bound with placeholders. + * var bound = _.bindKey(object, 'greet', _, '!'); + * bound('hi'); + * // => 'hiya fred!' + */ + var bindKey = baseRest(function(object, key, partials) { + var bitmask = WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG; + if (partials.length) { + var holders = replaceHolders(partials, getHolder(bindKey)); + bitmask |= WRAP_PARTIAL_FLAG; + } + return createWrap(key, bitmask, object, partials, holders); + }); + + /** + * Creates a function that accepts arguments of `func` and either invokes + * `func` returning its result, if at least `arity` number of arguments have + * been provided, or returns a function that accepts the remaining `func` + * arguments, and so on. The arity of `func` may be specified if `func.length` + * is not sufficient. + * + * The `_.curry.placeholder` value, which defaults to `_` in monolithic builds, + * may be used as a placeholder for provided arguments. + * + * **Note:** This method doesn't set the "length" property of curried functions. + * + * @static + * @memberOf _ + * @since 2.0.0 + * @category Function + * @param {Function} func The function to curry. + * @param {number} [arity=func.length] The arity of `func`. + * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. + * @returns {Function} Returns the new curried function. + * @example + * + * var abc = function(a, b, c) { + * return [a, b, c]; + * }; + * + * var curried = _.curry(abc); + * + * curried(1)(2)(3); + * // => [1, 2, 3] + * + * curried(1, 2)(3); + * // => [1, 2, 3] + * + * curried(1, 2, 3); + * // => [1, 2, 3] + * + * // Curried with placeholders. + * curried(1)(_, 3)(2); + * // => [1, 2, 3] + */ + function curry(func, arity, guard) { + arity = guard ? undefined : arity; + var result = createWrap(func, WRAP_CURRY_FLAG, undefined, undefined, undefined, undefined, undefined, arity); + result.placeholder = curry.placeholder; + return result; + } + + /** + * This method is like `_.curry` except that arguments are applied to `func` + * in the manner of `_.partialRight` instead of `_.partial`. + * + * The `_.curryRight.placeholder` value, which defaults to `_` in monolithic + * builds, may be used as a placeholder for provided arguments. + * + * **Note:** This method doesn't set the "length" property of curried functions. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Function + * @param {Function} func The function to curry. + * @param {number} [arity=func.length] The arity of `func`. + * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. + * @returns {Function} Returns the new curried function. + * @example + * + * var abc = function(a, b, c) { + * return [a, b, c]; + * }; + * + * var curried = _.curryRight(abc); + * + * curried(3)(2)(1); + * // => [1, 2, 3] + * + * curried(2, 3)(1); + * // => [1, 2, 3] + * + * curried(1, 2, 3); + * // => [1, 2, 3] + * + * // Curried with placeholders. + * curried(3)(1, _)(2); + * // => [1, 2, 3] + */ + function curryRight(func, arity, guard) { + arity = guard ? undefined : arity; + var result = createWrap(func, WRAP_CURRY_RIGHT_FLAG, undefined, undefined, undefined, undefined, undefined, arity); + result.placeholder = curryRight.placeholder; + return result; + } + + /** + * Creates a debounced function that delays invoking `func` until after `wait` + * milliseconds have elapsed since the last time the debounced function was + * invoked. The debounced function comes with a `cancel` method to cancel + * delayed `func` invocations and a `flush` method to immediately invoke them. + * Provide `options` to indicate whether `func` should be invoked on the + * leading and/or trailing edge of the `wait` timeout. The `func` is invoked + * with the last arguments provided to the debounced function. Subsequent + * calls to the debounced function return the result of the last `func` + * invocation. + * + * **Note:** If `leading` and `trailing` options are `true`, `func` is + * invoked on the trailing edge of the timeout only if the debounced function + * is invoked more than once during the `wait` timeout. + * + * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred + * until to the next tick, similar to `setTimeout` with a timeout of `0`. + * + * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/) + * for details over the differences between `_.debounce` and `_.throttle`. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Function + * @param {Function} func The function to debounce. + * @param {number} [wait=0] The number of milliseconds to delay. + * @param {Object} [options={}] The options object. + * @param {boolean} [options.leading=false] + * Specify invoking on the leading edge of the timeout. + * @param {number} [options.maxWait] + * The maximum time `func` is allowed to be delayed before it's invoked. + * @param {boolean} [options.trailing=true] + * Specify invoking on the trailing edge of the timeout. + * @returns {Function} Returns the new debounced function. + * @example + * + * // Avoid costly calculations while the window size is in flux. + * jQuery(window).on('resize', _.debounce(calculateLayout, 150)); + * + * // Invoke `sendMail` when clicked, debouncing subsequent calls. + * jQuery(element).on('click', _.debounce(sendMail, 300, { + * 'leading': true, + * 'trailing': false + * })); + * + * // Ensure `batchLog` is invoked once after 1 second of debounced calls. + * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 }); + * var source = new EventSource('/stream'); + * jQuery(source).on('message', debounced); + * + * // Cancel the trailing debounced invocation. + * jQuery(window).on('popstate', debounced.cancel); + */ + function debounce(func, wait, options) { + var lastArgs, + lastThis, + maxWait, + result, + timerId, + lastCallTime, + lastInvokeTime = 0, + leading = false, + maxing = false, + trailing = true; + + if (typeof func != 'function') { + throw new TypeError(FUNC_ERROR_TEXT); + } + wait = toNumber(wait) || 0; + if (isObject(options)) { + leading = !!options.leading; + maxing = 'maxWait' in options; + maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait; + trailing = 'trailing' in options ? !!options.trailing : trailing; + } + + function invokeFunc(time) { + var args = lastArgs, + thisArg = lastThis; + + lastArgs = lastThis = undefined; + lastInvokeTime = time; + result = func.apply(thisArg, args); + return result; + } + + function leadingEdge(time) { + // Reset any `maxWait` timer. + lastInvokeTime = time; + // Start the timer for the trailing edge. + timerId = setTimeout(timerExpired, wait); + // Invoke the leading edge. + return leading ? invokeFunc(time) : result; + } + + function remainingWait(time) { + var timeSinceLastCall = time - lastCallTime, + timeSinceLastInvoke = time - lastInvokeTime, + result = wait - timeSinceLastCall; + + return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result; + } + + function shouldInvoke(time) { + var timeSinceLastCall = time - lastCallTime, + timeSinceLastInvoke = time - lastInvokeTime; + + // Either this is the first call, activity has stopped and we're at the + // trailing edge, the system time has gone backwards and we're treating + // it as the trailing edge, or we've hit the `maxWait` limit. + return (lastCallTime === undefined || (timeSinceLastCall >= wait) || + (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait)); + } + + function timerExpired() { + var time = now(); + if (shouldInvoke(time)) { + return trailingEdge(time); + } + // Restart the timer. + timerId = setTimeout(timerExpired, remainingWait(time)); + } + + function trailingEdge(time) { + timerId = undefined; + + // Only invoke if we have `lastArgs` which means `func` has been + // debounced at least once. + if (trailing && lastArgs) { + return invokeFunc(time); + } + lastArgs = lastThis = undefined; + return result; + } + + function cancel() { + if (timerId !== undefined) { + clearTimeout(timerId); + } + lastInvokeTime = 0; + lastArgs = lastCallTime = lastThis = timerId = undefined; + } + + function flush() { + return timerId === undefined ? result : trailingEdge(now()); + } + + function debounced() { + var time = now(), + isInvoking = shouldInvoke(time); + + lastArgs = arguments; + lastThis = this; + lastCallTime = time; + + if (isInvoking) { + if (timerId === undefined) { + return leadingEdge(lastCallTime); + } + if (maxing) { + // Handle invocations in a tight loop. + timerId = setTimeout(timerExpired, wait); + return invokeFunc(lastCallTime); + } + } + if (timerId === undefined) { + timerId = setTimeout(timerExpired, wait); + } + return result; + } + debounced.cancel = cancel; + debounced.flush = flush; + return debounced; + } + + /** + * Defers invoking the `func` until the current call stack has cleared. Any + * additional arguments are provided to `func` when it's invoked. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Function + * @param {Function} func The function to defer. + * @param {...*} [args] The arguments to invoke `func` with. + * @returns {number} Returns the timer id. + * @example + * + * _.defer(function(text) { + * console.log(text); + * }, 'deferred'); + * // => Logs 'deferred' after one millisecond. + */ + var defer = baseRest(function(func, args) { + return baseDelay(func, 1, args); + }); + + /** + * Invokes `func` after `wait` milliseconds. Any additional arguments are + * provided to `func` when it's invoked. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Function + * @param {Function} func The function to delay. + * @param {number} wait The number of milliseconds to delay invocation. + * @param {...*} [args] The arguments to invoke `func` with. + * @returns {number} Returns the timer id. + * @example + * + * _.delay(function(text) { + * console.log(text); + * }, 1000, 'later'); + * // => Logs 'later' after one second. + */ + var delay = baseRest(function(func, wait, args) { + return baseDelay(func, toNumber(wait) || 0, args); + }); + + /** + * Creates a function that invokes `func` with arguments reversed. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Function + * @param {Function} func The function to flip arguments for. + * @returns {Function} Returns the new flipped function. + * @example + * + * var flipped = _.flip(function() { + * return _.toArray(arguments); + * }); + * + * flipped('a', 'b', 'c', 'd'); + * // => ['d', 'c', 'b', 'a'] + */ + function flip(func) { + return createWrap(func, WRAP_FLIP_FLAG); + } + + /** + * Creates a function that memoizes the result of `func`. If `resolver` is + * provided, it determines the cache key for storing the result based on the + * arguments provided to the memoized function. By default, the first argument + * provided to the memoized function is used as the map cache key. The `func` + * is invoked with the `this` binding of the memoized function. + * + * **Note:** The cache is exposed as the `cache` property on the memoized + * function. Its creation may be customized by replacing the `_.memoize.Cache` + * constructor with one whose instances implement the + * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object) + * method interface of `clear`, `delete`, `get`, `has`, and `set`. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Function + * @param {Function} func The function to have its output memoized. + * @param {Function} [resolver] The function to resolve the cache key. + * @returns {Function} Returns the new memoized function. + * @example + * + * var object = { 'a': 1, 'b': 2 }; + * var other = { 'c': 3, 'd': 4 }; + * + * var values = _.memoize(_.values); + * values(object); + * // => [1, 2] + * + * values(other); + * // => [3, 4] + * + * object.a = 2; + * values(object); + * // => [1, 2] + * + * // Modify the result cache. + * values.cache.set(object, ['a', 'b']); + * values(object); + * // => ['a', 'b'] + * + * // Replace `_.memoize.Cache`. + * _.memoize.Cache = WeakMap; + */ + function memoize(func, resolver) { + if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) { + throw new TypeError(FUNC_ERROR_TEXT); + } + var memoized = function() { + var args = arguments, + key = resolver ? resolver.apply(this, args) : args[0], + cache = memoized.cache; + + if (cache.has(key)) { + return cache.get(key); + } + var result = func.apply(this, args); + memoized.cache = cache.set(key, result) || cache; + return result; + }; + memoized.cache = new (memoize.Cache || MapCache); + return memoized; + } + + // Expose `MapCache`. + memoize.Cache = MapCache; + + /** + * Creates a function that negates the result of the predicate `func`. The + * `func` predicate is invoked with the `this` binding and arguments of the + * created function. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Function + * @param {Function} predicate The predicate to negate. + * @returns {Function} Returns the new negated function. + * @example + * + * function isEven(n) { + * return n % 2 == 0; + * } + * + * _.filter([1, 2, 3, 4, 5, 6], _.negate(isEven)); + * // => [1, 3, 5] + */ + function negate(predicate) { + if (typeof predicate != 'function') { + throw new TypeError(FUNC_ERROR_TEXT); + } + return function() { + var args = arguments; + switch (args.length) { + case 0: return !predicate.call(this); + case 1: return !predicate.call(this, args[0]); + case 2: return !predicate.call(this, args[0], args[1]); + case 3: return !predicate.call(this, args[0], args[1], args[2]); + } + return !predicate.apply(this, args); + }; + } + + /** + * Creates a function that is restricted to invoking `func` once. Repeat calls + * to the function return the value of the first invocation. The `func` is + * invoked with the `this` binding and arguments of the created function. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Function + * @param {Function} func The function to restrict. + * @returns {Function} Returns the new restricted function. + * @example + * + * var initialize = _.once(createApplication); + * initialize(); + * initialize(); + * // => `createApplication` is invoked once + */ + function once(func) { + return before(2, func); + } + + /** + * Creates a function that invokes `func` with its arguments transformed. + * + * @static + * @since 4.0.0 + * @memberOf _ + * @category Function + * @param {Function} func The function to wrap. + * @param {...(Function|Function[])} [transforms=[_.identity]] + * The argument transforms. + * @returns {Function} Returns the new function. + * @example + * + * function doubled(n) { + * return n * 2; + * } + * + * function square(n) { + * return n * n; + * } + * + * var func = _.overArgs(function(x, y) { + * return [x, y]; + * }, [square, doubled]); + * + * func(9, 3); + * // => [81, 6] + * + * func(10, 5); + * // => [100, 10] + */ + var overArgs = castRest(function(func, transforms) { + transforms = (transforms.length == 1 && isArray(transforms[0])) + ? arrayMap(transforms[0], baseUnary(getIteratee())) + : arrayMap(baseFlatten(transforms, 1), baseUnary(getIteratee())); + + var funcsLength = transforms.length; + return baseRest(function(args) { + var index = -1, + length = nativeMin(args.length, funcsLength); + + while (++index < length) { + args[index] = transforms[index].call(this, args[index]); + } + return apply(func, this, args); + }); + }); + + /** + * Creates a function that invokes `func` with `partials` prepended to the + * arguments it receives. This method is like `_.bind` except it does **not** + * alter the `this` binding. + * + * The `_.partial.placeholder` value, which defaults to `_` in monolithic + * builds, may be used as a placeholder for partially applied arguments. + * + * **Note:** This method doesn't set the "length" property of partially + * applied functions. + * + * @static + * @memberOf _ + * @since 0.2.0 + * @category Function + * @param {Function} func The function to partially apply arguments to. + * @param {...*} [partials] The arguments to be partially applied. + * @returns {Function} Returns the new partially applied function. + * @example + * + * function greet(greeting, name) { + * return greeting + ' ' + name; + * } + * + * var sayHelloTo = _.partial(greet, 'hello'); + * sayHelloTo('fred'); + * // => 'hello fred' + * + * // Partially applied with placeholders. + * var greetFred = _.partial(greet, _, 'fred'); + * greetFred('hi'); + * // => 'hi fred' + */ + var partial = baseRest(function(func, partials) { + var holders = replaceHolders(partials, getHolder(partial)); + return createWrap(func, WRAP_PARTIAL_FLAG, undefined, partials, holders); + }); + + /** + * This method is like `_.partial` except that partially applied arguments + * are appended to the arguments it receives. + * + * The `_.partialRight.placeholder` value, which defaults to `_` in monolithic + * builds, may be used as a placeholder for partially applied arguments. + * + * **Note:** This method doesn't set the "length" property of partially + * applied functions. + * + * @static + * @memberOf _ + * @since 1.0.0 + * @category Function + * @param {Function} func The function to partially apply arguments to. + * @param {...*} [partials] The arguments to be partially applied. + * @returns {Function} Returns the new partially applied function. + * @example + * + * function greet(greeting, name) { + * return greeting + ' ' + name; + * } + * + * var greetFred = _.partialRight(greet, 'fred'); + * greetFred('hi'); + * // => 'hi fred' + * + * // Partially applied with placeholders. + * var sayHelloTo = _.partialRight(greet, 'hello', _); + * sayHelloTo('fred'); + * // => 'hello fred' + */ + var partialRight = baseRest(function(func, partials) { + var holders = replaceHolders(partials, getHolder(partialRight)); + return createWrap(func, WRAP_PARTIAL_RIGHT_FLAG, undefined, partials, holders); + }); + + /** + * Creates a function that invokes `func` with arguments arranged according + * to the specified `indexes` where the argument value at the first index is + * provided as the first argument, the argument value at the second index is + * provided as the second argument, and so on. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Function + * @param {Function} func The function to rearrange arguments for. + * @param {...(number|number[])} indexes The arranged argument indexes. + * @returns {Function} Returns the new function. + * @example + * + * var rearged = _.rearg(function(a, b, c) { + * return [a, b, c]; + * }, [2, 0, 1]); + * + * rearged('b', 'c', 'a') + * // => ['a', 'b', 'c'] + */ + var rearg = flatRest(function(func, indexes) { + return createWrap(func, WRAP_REARG_FLAG, undefined, undefined, undefined, indexes); + }); + + /** + * Creates a function that invokes `func` with the `this` binding of the + * created function and arguments from `start` and beyond provided as + * an array. + * + * **Note:** This method is based on the + * [rest parameter](https://mdn.io/rest_parameters). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Function + * @param {Function} func The function to apply a rest parameter to. + * @param {number} [start=func.length-1] The start position of the rest parameter. + * @returns {Function} Returns the new function. + * @example + * + * var say = _.rest(function(what, names) { + * return what + ' ' + _.initial(names).join(', ') + + * (_.size(names) > 1 ? ', & ' : '') + _.last(names); + * }); + * + * say('hello', 'fred', 'barney', 'pebbles'); + * // => 'hello fred, barney, & pebbles' + */ + function rest(func, start) { + if (typeof func != 'function') { + throw new TypeError(FUNC_ERROR_TEXT); + } + start = start === undefined ? start : toInteger(start); + return baseRest(func, start); + } + + /** + * Creates a function that invokes `func` with the `this` binding of the + * create function and an array of arguments much like + * [`Function#apply`](http://www.ecma-international.org/ecma-262/7.0/#sec-function.prototype.apply). + * + * **Note:** This method is based on the + * [spread operator](https://mdn.io/spread_operator). + * + * @static + * @memberOf _ + * @since 3.2.0 + * @category Function + * @param {Function} func The function to spread arguments over. + * @param {number} [start=0] The start position of the spread. + * @returns {Function} Returns the new function. + * @example + * + * var say = _.spread(function(who, what) { + * return who + ' says ' + what; + * }); + * + * say(['fred', 'hello']); + * // => 'fred says hello' + * + * var numbers = Promise.all([ + * Promise.resolve(40), + * Promise.resolve(36) + * ]); + * + * numbers.then(_.spread(function(x, y) { + * return x + y; + * })); + * // => a Promise of 76 + */ + function spread(func, start) { + if (typeof func != 'function') { + throw new TypeError(FUNC_ERROR_TEXT); + } + start = start == null ? 0 : nativeMax(toInteger(start), 0); + return baseRest(function(args) { + var array = args[start], + otherArgs = castSlice(args, 0, start); + + if (array) { + arrayPush(otherArgs, array); + } + return apply(func, this, otherArgs); + }); + } + + /** + * Creates a throttled function that only invokes `func` at most once per + * every `wait` milliseconds. The throttled function comes with a `cancel` + * method to cancel delayed `func` invocations and a `flush` method to + * immediately invoke them. Provide `options` to indicate whether `func` + * should be invoked on the leading and/or trailing edge of the `wait` + * timeout. The `func` is invoked with the last arguments provided to the + * throttled function. Subsequent calls to the throttled function return the + * result of the last `func` invocation. + * + * **Note:** If `leading` and `trailing` options are `true`, `func` is + * invoked on the trailing edge of the timeout only if the throttled function + * is invoked more than once during the `wait` timeout. + * + * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred + * until to the next tick, similar to `setTimeout` with a timeout of `0`. + * + * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/) + * for details over the differences between `_.throttle` and `_.debounce`. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Function + * @param {Function} func The function to throttle. + * @param {number} [wait=0] The number of milliseconds to throttle invocations to. + * @param {Object} [options={}] The options object. + * @param {boolean} [options.leading=true] + * Specify invoking on the leading edge of the timeout. + * @param {boolean} [options.trailing=true] + * Specify invoking on the trailing edge of the timeout. + * @returns {Function} Returns the new throttled function. + * @example + * + * // Avoid excessively updating the position while scrolling. + * jQuery(window).on('scroll', _.throttle(updatePosition, 100)); + * + * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes. + * var throttled = _.throttle(renewToken, 300000, { 'trailing': false }); + * jQuery(element).on('click', throttled); + * + * // Cancel the trailing throttled invocation. + * jQuery(window).on('popstate', throttled.cancel); + */ + function throttle(func, wait, options) { + var leading = true, + trailing = true; + + if (typeof func != 'function') { + throw new TypeError(FUNC_ERROR_TEXT); + } + if (isObject(options)) { + leading = 'leading' in options ? !!options.leading : leading; + trailing = 'trailing' in options ? !!options.trailing : trailing; + } + return debounce(func, wait, { + 'leading': leading, + 'maxWait': wait, + 'trailing': trailing + }); + } + + /** + * Creates a function that accepts up to one argument, ignoring any + * additional arguments. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Function + * @param {Function} func The function to cap arguments for. + * @returns {Function} Returns the new capped function. + * @example + * + * _.map(['6', '8', '10'], _.unary(parseInt)); + * // => [6, 8, 10] + */ + function unary(func) { + return ary(func, 1); + } + + /** + * Creates a function that provides `value` to `wrapper` as its first + * argument. Any additional arguments provided to the function are appended + * to those provided to the `wrapper`. The wrapper is invoked with the `this` + * binding of the created function. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Function + * @param {*} value The value to wrap. + * @param {Function} [wrapper=identity] The wrapper function. + * @returns {Function} Returns the new function. + * @example + * + * var p = _.wrap(_.escape, function(func, text) { + * return '

' + func(text) + '

'; + * }); + * + * p('fred, barney, & pebbles'); + * // => '

fred, barney, & pebbles

' + */ + function wrap(value, wrapper) { + return partial(castFunction(wrapper), value); + } + + /*------------------------------------------------------------------------*/ + + /** + * Casts `value` as an array if it's not one. + * + * @static + * @memberOf _ + * @since 4.4.0 + * @category Lang + * @param {*} value The value to inspect. + * @returns {Array} Returns the cast array. + * @example + * + * _.castArray(1); + * // => [1] + * + * _.castArray({ 'a': 1 }); + * // => [{ 'a': 1 }] + * + * _.castArray('abc'); + * // => ['abc'] + * + * _.castArray(null); + * // => [null] + * + * _.castArray(undefined); + * // => [undefined] + * + * _.castArray(); + * // => [] + * + * var array = [1, 2, 3]; + * console.log(_.castArray(array) === array); + * // => true + */ + function castArray() { + if (!arguments.length) { + return []; + } + var value = arguments[0]; + return isArray(value) ? value : [value]; + } + + /** + * Creates a shallow clone of `value`. + * + * **Note:** This method is loosely based on the + * [structured clone algorithm](https://mdn.io/Structured_clone_algorithm) + * and supports cloning arrays, array buffers, booleans, date objects, maps, + * numbers, `Object` objects, regexes, sets, strings, symbols, and typed + * arrays. The own enumerable properties of `arguments` objects are cloned + * as plain objects. An empty object is returned for uncloneable values such + * as error objects, functions, DOM nodes, and WeakMaps. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to clone. + * @returns {*} Returns the cloned value. + * @see _.cloneDeep + * @example + * + * var objects = [{ 'a': 1 }, { 'b': 2 }]; + * + * var shallow = _.clone(objects); + * console.log(shallow[0] === objects[0]); + * // => true + */ + function clone(value) { + return baseClone(value, CLONE_SYMBOLS_FLAG); + } + + /** + * This method is like `_.clone` except that it accepts `customizer` which + * is invoked to produce the cloned value. If `customizer` returns `undefined`, + * cloning is handled by the method instead. The `customizer` is invoked with + * up to four arguments; (value [, index|key, object, stack]). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to clone. + * @param {Function} [customizer] The function to customize cloning. + * @returns {*} Returns the cloned value. + * @see _.cloneDeepWith + * @example + * + * function customizer(value) { + * if (_.isElement(value)) { + * return value.cloneNode(false); + * } + * } + * + * var el = _.cloneWith(document.body, customizer); + * + * console.log(el === document.body); + * // => false + * console.log(el.nodeName); + * // => 'BODY' + * console.log(el.childNodes.length); + * // => 0 + */ + function cloneWith(value, customizer) { + customizer = typeof customizer == 'function' ? customizer : undefined; + return baseClone(value, CLONE_SYMBOLS_FLAG, customizer); + } + + /** + * This method is like `_.clone` except that it recursively clones `value`. + * + * @static + * @memberOf _ + * @since 1.0.0 + * @category Lang + * @param {*} value The value to recursively clone. + * @returns {*} Returns the deep cloned value. + * @see _.clone + * @example + * + * var objects = [{ 'a': 1 }, { 'b': 2 }]; + * + * var deep = _.cloneDeep(objects); + * console.log(deep[0] === objects[0]); + * // => false + */ + function cloneDeep(value) { + return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG); + } + + /** + * This method is like `_.cloneWith` except that it recursively clones `value`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to recursively clone. + * @param {Function} [customizer] The function to customize cloning. + * @returns {*} Returns the deep cloned value. + * @see _.cloneWith + * @example + * + * function customizer(value) { + * if (_.isElement(value)) { + * return value.cloneNode(true); + * } + * } + * + * var el = _.cloneDeepWith(document.body, customizer); + * + * console.log(el === document.body); + * // => false + * console.log(el.nodeName); + * // => 'BODY' + * console.log(el.childNodes.length); + * // => 20 + */ + function cloneDeepWith(value, customizer) { + customizer = typeof customizer == 'function' ? customizer : undefined; + return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG, customizer); + } + + /** + * Checks if `object` conforms to `source` by invoking the predicate + * properties of `source` with the corresponding property values of `object`. + * + * **Note:** This method is equivalent to `_.conforms` when `source` is + * partially applied. + * + * @static + * @memberOf _ + * @since 4.14.0 + * @category Lang + * @param {Object} object The object to inspect. + * @param {Object} source The object of property predicates to conform to. + * @returns {boolean} Returns `true` if `object` conforms, else `false`. + * @example + * + * var object = { 'a': 1, 'b': 2 }; + * + * _.conformsTo(object, { 'b': function(n) { return n > 1; } }); + * // => true + * + * _.conformsTo(object, { 'b': function(n) { return n > 2; } }); + * // => false + */ + function conformsTo(object, source) { + return source == null || baseConformsTo(object, source, keys(source)); + } + + /** + * Performs a + * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) + * comparison between two values to determine if they are equivalent. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to compare. + * @param {*} other The other value to compare. + * @returns {boolean} Returns `true` if the values are equivalent, else `false`. + * @example + * + * var object = { 'a': 1 }; + * var other = { 'a': 1 }; + * + * _.eq(object, object); + * // => true + * + * _.eq(object, other); + * // => false + * + * _.eq('a', 'a'); + * // => true + * + * _.eq('a', Object('a')); + * // => false + * + * _.eq(NaN, NaN); + * // => true + */ + function eq(value, other) { + return value === other || (value !== value && other !== other); + } + + /** + * Checks if `value` is greater than `other`. + * + * @static + * @memberOf _ + * @since 3.9.0 + * @category Lang + * @param {*} value The value to compare. + * @param {*} other The other value to compare. + * @returns {boolean} Returns `true` if `value` is greater than `other`, + * else `false`. + * @see _.lt + * @example + * + * _.gt(3, 1); + * // => true + * + * _.gt(3, 3); + * // => false + * + * _.gt(1, 3); + * // => false + */ + var gt = createRelationalOperation(baseGt); + + /** + * Checks if `value` is greater than or equal to `other`. + * + * @static + * @memberOf _ + * @since 3.9.0 + * @category Lang + * @param {*} value The value to compare. + * @param {*} other The other value to compare. + * @returns {boolean} Returns `true` if `value` is greater than or equal to + * `other`, else `false`. + * @see _.lte + * @example + * + * _.gte(3, 1); + * // => true + * + * _.gte(3, 3); + * // => true + * + * _.gte(1, 3); + * // => false + */ + var gte = createRelationalOperation(function(value, other) { + return value >= other; + }); + + /** + * Checks if `value` is likely an `arguments` object. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an `arguments` object, + * else `false`. + * @example + * + * _.isArguments(function() { return arguments; }()); + * // => true + * + * _.isArguments([1, 2, 3]); + * // => false + */ + var isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) { + return isObjectLike(value) && hasOwnProperty.call(value, 'callee') && + !propertyIsEnumerable.call(value, 'callee'); + }; + + /** + * Checks if `value` is classified as an `Array` object. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an array, else `false`. + * @example + * + * _.isArray([1, 2, 3]); + * // => true + * + * _.isArray(document.body.children); + * // => false + * + * _.isArray('abc'); + * // => false + * + * _.isArray(_.noop); + * // => false + */ + var isArray = Array.isArray; + + /** + * Checks if `value` is classified as an `ArrayBuffer` object. + * + * @static + * @memberOf _ + * @since 4.3.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an array buffer, else `false`. + * @example + * + * _.isArrayBuffer(new ArrayBuffer(2)); + * // => true + * + * _.isArrayBuffer(new Array(2)); + * // => false + */ + var isArrayBuffer = nodeIsArrayBuffer ? baseUnary(nodeIsArrayBuffer) : baseIsArrayBuffer; + + /** + * Checks if `value` is array-like. A value is considered array-like if it's + * not a function and has a `value.length` that's an integer greater than or + * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is array-like, else `false`. + * @example + * + * _.isArrayLike([1, 2, 3]); + * // => true + * + * _.isArrayLike(document.body.children); + * // => true + * + * _.isArrayLike('abc'); + * // => true + * + * _.isArrayLike(_.noop); + * // => false + */ + function isArrayLike(value) { + return value != null && isLength(value.length) && !isFunction(value); + } + + /** + * This method is like `_.isArrayLike` except that it also checks if `value` + * is an object. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an array-like object, + * else `false`. + * @example + * + * _.isArrayLikeObject([1, 2, 3]); + * // => true + * + * _.isArrayLikeObject(document.body.children); + * // => true + * + * _.isArrayLikeObject('abc'); + * // => false + * + * _.isArrayLikeObject(_.noop); + * // => false + */ + function isArrayLikeObject(value) { + return isObjectLike(value) && isArrayLike(value); + } + + /** + * Checks if `value` is classified as a boolean primitive or object. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a boolean, else `false`. + * @example + * + * _.isBoolean(false); + * // => true + * + * _.isBoolean(null); + * // => false + */ + function isBoolean(value) { + return value === true || value === false || + (isObjectLike(value) && baseGetTag(value) == boolTag); + } + + /** + * Checks if `value` is a buffer. + * + * @static + * @memberOf _ + * @since 4.3.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a buffer, else `false`. + * @example + * + * _.isBuffer(new Buffer(2)); + * // => true + * + * _.isBuffer(new Uint8Array(2)); + * // => false + */ + var isBuffer = nativeIsBuffer || stubFalse; + + /** + * Checks if `value` is classified as a `Date` object. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a date object, else `false`. + * @example + * + * _.isDate(new Date); + * // => true + * + * _.isDate('Mon April 23 2012'); + * // => false + */ + var isDate = nodeIsDate ? baseUnary(nodeIsDate) : baseIsDate; + + /** + * Checks if `value` is likely a DOM element. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a DOM element, else `false`. + * @example + * + * _.isElement(document.body); + * // => true + * + * _.isElement(''); + * // => false + */ + function isElement(value) { + return isObjectLike(value) && value.nodeType === 1 && !isPlainObject(value); + } + + /** + * Checks if `value` is an empty object, collection, map, or set. + * + * Objects are considered empty if they have no own enumerable string keyed + * properties. + * + * Array-like values such as `arguments` objects, arrays, buffers, strings, or + * jQuery-like collections are considered empty if they have a `length` of `0`. + * Similarly, maps and sets are considered empty if they have a `size` of `0`. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is empty, else `false`. + * @example + * + * _.isEmpty(null); + * // => true + * + * _.isEmpty(true); + * // => true + * + * _.isEmpty(1); + * // => true + * + * _.isEmpty([1, 2, 3]); + * // => false + * + * _.isEmpty({ 'a': 1 }); + * // => false + */ + function isEmpty(value) { + if (value == null) { + return true; + } + if (isArrayLike(value) && + (isArray(value) || typeof value == 'string' || typeof value.splice == 'function' || + isBuffer(value) || isTypedArray(value) || isArguments(value))) { + return !value.length; + } + var tag = getTag(value); + if (tag == mapTag || tag == setTag) { + return !value.size; + } + if (isPrototype(value)) { + return !baseKeys(value).length; + } + for (var key in value) { + if (hasOwnProperty.call(value, key)) { + return false; + } + } + return true; + } + + /** + * Performs a deep comparison between two values to determine if they are + * equivalent. + * + * **Note:** This method supports comparing arrays, array buffers, booleans, + * date objects, error objects, maps, numbers, `Object` objects, regexes, + * sets, strings, symbols, and typed arrays. `Object` objects are compared + * by their own, not inherited, enumerable properties. Functions and DOM + * nodes are compared by strict equality, i.e. `===`. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to compare. + * @param {*} other The other value to compare. + * @returns {boolean} Returns `true` if the values are equivalent, else `false`. + * @example + * + * var object = { 'a': 1 }; + * var other = { 'a': 1 }; + * + * _.isEqual(object, other); + * // => true + * + * object === other; + * // => false + */ + function isEqual(value, other) { + return baseIsEqual(value, other); + } + + /** + * This method is like `_.isEqual` except that it accepts `customizer` which + * is invoked to compare values. If `customizer` returns `undefined`, comparisons + * are handled by the method instead. The `customizer` is invoked with up to + * six arguments: (objValue, othValue [, index|key, object, other, stack]). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to compare. + * @param {*} other The other value to compare. + * @param {Function} [customizer] The function to customize comparisons. + * @returns {boolean} Returns `true` if the values are equivalent, else `false`. + * @example + * + * function isGreeting(value) { + * return /^h(?:i|ello)$/.test(value); + * } + * + * function customizer(objValue, othValue) { + * if (isGreeting(objValue) && isGreeting(othValue)) { + * return true; + * } + * } + * + * var array = ['hello', 'goodbye']; + * var other = ['hi', 'goodbye']; + * + * _.isEqualWith(array, other, customizer); + * // => true + */ + function isEqualWith(value, other, customizer) { + customizer = typeof customizer == 'function' ? customizer : undefined; + var result = customizer ? customizer(value, other) : undefined; + return result === undefined ? baseIsEqual(value, other, undefined, customizer) : !!result; + } + + /** + * Checks if `value` is an `Error`, `EvalError`, `RangeError`, `ReferenceError`, + * `SyntaxError`, `TypeError`, or `URIError` object. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an error object, else `false`. + * @example + * + * _.isError(new Error); + * // => true + * + * _.isError(Error); + * // => false + */ + function isError(value) { + if (!isObjectLike(value)) { + return false; + } + var tag = baseGetTag(value); + return tag == errorTag || tag == domExcTag || + (typeof value.message == 'string' && typeof value.name == 'string' && !isPlainObject(value)); + } + + /** + * Checks if `value` is a finite primitive number. + * + * **Note:** This method is based on + * [`Number.isFinite`](https://mdn.io/Number/isFinite). + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a finite number, else `false`. + * @example + * + * _.isFinite(3); + * // => true + * + * _.isFinite(Number.MIN_VALUE); + * // => true + * + * _.isFinite(Infinity); + * // => false + * + * _.isFinite('3'); + * // => false + */ + function isFinite(value) { + return typeof value == 'number' && nativeIsFinite(value); + } + + /** + * Checks if `value` is classified as a `Function` object. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a function, else `false`. + * @example + * + * _.isFunction(_); + * // => true + * + * _.isFunction(/abc/); + * // => false + */ + function isFunction(value) { + if (!isObject(value)) { + return false; + } + // The use of `Object#toString` avoids issues with the `typeof` operator + // in Safari 9 which returns 'object' for typed arrays and other constructors. + var tag = baseGetTag(value); + return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag; + } + + /** + * Checks if `value` is an integer. + * + * **Note:** This method is based on + * [`Number.isInteger`](https://mdn.io/Number/isInteger). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an integer, else `false`. + * @example + * + * _.isInteger(3); + * // => true + * + * _.isInteger(Number.MIN_VALUE); + * // => false + * + * _.isInteger(Infinity); + * // => false + * + * _.isInteger('3'); + * // => false + */ + function isInteger(value) { + return typeof value == 'number' && value == toInteger(value); + } + + /** + * Checks if `value` is a valid array-like length. + * + * **Note:** This method is loosely based on + * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a valid length, else `false`. + * @example + * + * _.isLength(3); + * // => true + * + * _.isLength(Number.MIN_VALUE); + * // => false + * + * _.isLength(Infinity); + * // => false + * + * _.isLength('3'); + * // => false + */ + function isLength(value) { + return typeof value == 'number' && + value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER; + } + + /** + * Checks if `value` is the + * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types) + * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an object, else `false`. + * @example + * + * _.isObject({}); + * // => true + * + * _.isObject([1, 2, 3]); + * // => true + * + * _.isObject(_.noop); + * // => true + * + * _.isObject(null); + * // => false + */ + function isObject(value) { + var type = typeof value; + return value != null && (type == 'object' || type == 'function'); + } + + /** + * Checks if `value` is object-like. A value is object-like if it's not `null` + * and has a `typeof` result of "object". + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is object-like, else `false`. + * @example + * + * _.isObjectLike({}); + * // => true + * + * _.isObjectLike([1, 2, 3]); + * // => true + * + * _.isObjectLike(_.noop); + * // => false + * + * _.isObjectLike(null); + * // => false + */ + function isObjectLike(value) { + return value != null && typeof value == 'object'; + } + + /** + * Checks if `value` is classified as a `Map` object. + * + * @static + * @memberOf _ + * @since 4.3.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a map, else `false`. + * @example + * + * _.isMap(new Map); + * // => true + * + * _.isMap(new WeakMap); + * // => false + */ + var isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap; + + /** + * Performs a partial deep comparison between `object` and `source` to + * determine if `object` contains equivalent property values. + * + * **Note:** This method is equivalent to `_.matches` when `source` is + * partially applied. + * + * Partial comparisons will match empty array and empty object `source` + * values against any array or object value, respectively. See `_.isEqual` + * for a list of supported value comparisons. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Lang + * @param {Object} object The object to inspect. + * @param {Object} source The object of property values to match. + * @returns {boolean} Returns `true` if `object` is a match, else `false`. + * @example + * + * var object = { 'a': 1, 'b': 2 }; + * + * _.isMatch(object, { 'b': 2 }); + * // => true + * + * _.isMatch(object, { 'b': 1 }); + * // => false + */ + function isMatch(object, source) { + return object === source || baseIsMatch(object, source, getMatchData(source)); + } + + /** + * This method is like `_.isMatch` except that it accepts `customizer` which + * is invoked to compare values. If `customizer` returns `undefined`, comparisons + * are handled by the method instead. The `customizer` is invoked with five + * arguments: (objValue, srcValue, index|key, object, source). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {Object} object The object to inspect. + * @param {Object} source The object of property values to match. + * @param {Function} [customizer] The function to customize comparisons. + * @returns {boolean} Returns `true` if `object` is a match, else `false`. + * @example + * + * function isGreeting(value) { + * return /^h(?:i|ello)$/.test(value); + * } + * + * function customizer(objValue, srcValue) { + * if (isGreeting(objValue) && isGreeting(srcValue)) { + * return true; + * } + * } + * + * var object = { 'greeting': 'hello' }; + * var source = { 'greeting': 'hi' }; + * + * _.isMatchWith(object, source, customizer); + * // => true + */ + function isMatchWith(object, source, customizer) { + customizer = typeof customizer == 'function' ? customizer : undefined; + return baseIsMatch(object, source, getMatchData(source), customizer); + } + + /** + * Checks if `value` is `NaN`. + * + * **Note:** This method is based on + * [`Number.isNaN`](https://mdn.io/Number/isNaN) and is not the same as + * global [`isNaN`](https://mdn.io/isNaN) which returns `true` for + * `undefined` and other non-number values. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`. + * @example + * + * _.isNaN(NaN); + * // => true + * + * _.isNaN(new Number(NaN)); + * // => true + * + * isNaN(undefined); + * // => true + * + * _.isNaN(undefined); + * // => false + */ + function isNaN(value) { + // An `NaN` primitive is the only value that is not equal to itself. + // Perform the `toStringTag` check first to avoid errors with some + // ActiveX objects in IE. + return isNumber(value) && value != +value; + } + + /** + * Checks if `value` is a pristine native function. + * + * **Note:** This method can't reliably detect native functions in the presence + * of the core-js package because core-js circumvents this kind of detection. + * Despite multiple requests, the core-js maintainer has made it clear: any + * attempt to fix the detection will be obstructed. As a result, we're left + * with little choice but to throw an error. Unfortunately, this also affects + * packages, like [babel-polyfill](https://www.npmjs.com/package/babel-polyfill), + * which rely on core-js. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a native function, + * else `false`. + * @example + * + * _.isNative(Array.prototype.push); + * // => true + * + * _.isNative(_); + * // => false + */ + function isNative(value) { + if (isMaskable(value)) { + throw new Error(CORE_ERROR_TEXT); + } + return baseIsNative(value); + } + + /** + * Checks if `value` is `null`. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is `null`, else `false`. + * @example + * + * _.isNull(null); + * // => true + * + * _.isNull(void 0); + * // => false + */ + function isNull(value) { + return value === null; + } + + /** + * Checks if `value` is `null` or `undefined`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is nullish, else `false`. + * @example + * + * _.isNil(null); + * // => true + * + * _.isNil(void 0); + * // => true + * + * _.isNil(NaN); + * // => false + */ + function isNil(value) { + return value == null; + } + + /** + * Checks if `value` is classified as a `Number` primitive or object. + * + * **Note:** To exclude `Infinity`, `-Infinity`, and `NaN`, which are + * classified as numbers, use the `_.isFinite` method. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a number, else `false`. + * @example + * + * _.isNumber(3); + * // => true + * + * _.isNumber(Number.MIN_VALUE); + * // => true + * + * _.isNumber(Infinity); + * // => true + * + * _.isNumber('3'); + * // => false + */ + function isNumber(value) { + return typeof value == 'number' || + (isObjectLike(value) && baseGetTag(value) == numberTag); + } + + /** + * Checks if `value` is a plain object, that is, an object created by the + * `Object` constructor or one with a `[[Prototype]]` of `null`. + * + * @static + * @memberOf _ + * @since 0.8.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a plain object, else `false`. + * @example + * + * function Foo() { + * this.a = 1; + * } + * + * _.isPlainObject(new Foo); + * // => false + * + * _.isPlainObject([1, 2, 3]); + * // => false + * + * _.isPlainObject({ 'x': 0, 'y': 0 }); + * // => true + * + * _.isPlainObject(Object.create(null)); + * // => true + */ + function isPlainObject(value) { + if (!isObjectLike(value) || baseGetTag(value) != objectTag) { + return false; + } + var proto = getPrototype(value); + if (proto === null) { + return true; + } + var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor; + return typeof Ctor == 'function' && Ctor instanceof Ctor && + funcToString.call(Ctor) == objectCtorString; + } + + /** + * Checks if `value` is classified as a `RegExp` object. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a regexp, else `false`. + * @example + * + * _.isRegExp(/abc/); + * // => true + * + * _.isRegExp('/abc/'); + * // => false + */ + var isRegExp = nodeIsRegExp ? baseUnary(nodeIsRegExp) : baseIsRegExp; + + /** + * Checks if `value` is a safe integer. An integer is safe if it's an IEEE-754 + * double precision number which isn't the result of a rounded unsafe integer. + * + * **Note:** This method is based on + * [`Number.isSafeInteger`](https://mdn.io/Number/isSafeInteger). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a safe integer, else `false`. + * @example + * + * _.isSafeInteger(3); + * // => true + * + * _.isSafeInteger(Number.MIN_VALUE); + * // => false + * + * _.isSafeInteger(Infinity); + * // => false + * + * _.isSafeInteger('3'); + * // => false + */ + function isSafeInteger(value) { + return isInteger(value) && value >= -MAX_SAFE_INTEGER && value <= MAX_SAFE_INTEGER; + } + + /** + * Checks if `value` is classified as a `Set` object. + * + * @static + * @memberOf _ + * @since 4.3.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a set, else `false`. + * @example + * + * _.isSet(new Set); + * // => true + * + * _.isSet(new WeakSet); + * // => false + */ + var isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet; + + /** + * Checks if `value` is classified as a `String` primitive or object. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a string, else `false`. + * @example + * + * _.isString('abc'); + * // => true + * + * _.isString(1); + * // => false + */ + function isString(value) { + return typeof value == 'string' || + (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag); + } + + /** + * Checks if `value` is classified as a `Symbol` primitive or object. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a symbol, else `false`. + * @example + * + * _.isSymbol(Symbol.iterator); + * // => true + * + * _.isSymbol('abc'); + * // => false + */ + function isSymbol(value) { + return typeof value == 'symbol' || + (isObjectLike(value) && baseGetTag(value) == symbolTag); + } + + /** + * Checks if `value` is classified as a typed array. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a typed array, else `false`. + * @example + * + * _.isTypedArray(new Uint8Array); + * // => true + * + * _.isTypedArray([]); + * // => false + */ + var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray; + + /** + * Checks if `value` is `undefined`. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is `undefined`, else `false`. + * @example + * + * _.isUndefined(void 0); + * // => true + * + * _.isUndefined(null); + * // => false + */ + function isUndefined(value) { + return value === undefined; + } + + /** + * Checks if `value` is classified as a `WeakMap` object. + * + * @static + * @memberOf _ + * @since 4.3.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a weak map, else `false`. + * @example + * + * _.isWeakMap(new WeakMap); + * // => true + * + * _.isWeakMap(new Map); + * // => false + */ + function isWeakMap(value) { + return isObjectLike(value) && getTag(value) == weakMapTag; + } + + /** + * Checks if `value` is classified as a `WeakSet` object. + * + * @static + * @memberOf _ + * @since 4.3.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a weak set, else `false`. + * @example + * + * _.isWeakSet(new WeakSet); + * // => true + * + * _.isWeakSet(new Set); + * // => false + */ + function isWeakSet(value) { + return isObjectLike(value) && baseGetTag(value) == weakSetTag; + } + + /** + * Checks if `value` is less than `other`. + * + * @static + * @memberOf _ + * @since 3.9.0 + * @category Lang + * @param {*} value The value to compare. + * @param {*} other The other value to compare. + * @returns {boolean} Returns `true` if `value` is less than `other`, + * else `false`. + * @see _.gt + * @example + * + * _.lt(1, 3); + * // => true + * + * _.lt(3, 3); + * // => false + * + * _.lt(3, 1); + * // => false + */ + var lt = createRelationalOperation(baseLt); + + /** + * Checks if `value` is less than or equal to `other`. + * + * @static + * @memberOf _ + * @since 3.9.0 + * @category Lang + * @param {*} value The value to compare. + * @param {*} other The other value to compare. + * @returns {boolean} Returns `true` if `value` is less than or equal to + * `other`, else `false`. + * @see _.gte + * @example + * + * _.lte(1, 3); + * // => true + * + * _.lte(3, 3); + * // => true + * + * _.lte(3, 1); + * // => false + */ + var lte = createRelationalOperation(function(value, other) { + return value <= other; + }); + + /** + * Converts `value` to an array. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Lang + * @param {*} value The value to convert. + * @returns {Array} Returns the converted array. + * @example + * + * _.toArray({ 'a': 1, 'b': 2 }); + * // => [1, 2] + * + * _.toArray('abc'); + * // => ['a', 'b', 'c'] + * + * _.toArray(1); + * // => [] + * + * _.toArray(null); + * // => [] + */ + function toArray(value) { + if (!value) { + return []; + } + if (isArrayLike(value)) { + return isString(value) ? stringToArray(value) : copyArray(value); + } + if (symIterator && value[symIterator]) { + return iteratorToArray(value[symIterator]()); + } + var tag = getTag(value), + func = tag == mapTag ? mapToArray : (tag == setTag ? setToArray : values); + + return func(value); + } + + /** + * Converts `value` to a finite number. + * + * @static + * @memberOf _ + * @since 4.12.0 + * @category Lang + * @param {*} value The value to convert. + * @returns {number} Returns the converted number. + * @example + * + * _.toFinite(3.2); + * // => 3.2 + * + * _.toFinite(Number.MIN_VALUE); + * // => 5e-324 + * + * _.toFinite(Infinity); + * // => 1.7976931348623157e+308 + * + * _.toFinite('3.2'); + * // => 3.2 + */ + function toFinite(value) { + if (!value) { + return value === 0 ? value : 0; + } + value = toNumber(value); + if (value === INFINITY || value === -INFINITY) { + var sign = (value < 0 ? -1 : 1); + return sign * MAX_INTEGER; + } + return value === value ? value : 0; + } + + /** + * Converts `value` to an integer. + * + * **Note:** This method is loosely based on + * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to convert. + * @returns {number} Returns the converted integer. + * @example + * + * _.toInteger(3.2); + * // => 3 + * + * _.toInteger(Number.MIN_VALUE); + * // => 0 + * + * _.toInteger(Infinity); + * // => 1.7976931348623157e+308 + * + * _.toInteger('3.2'); + * // => 3 + */ + function toInteger(value) { + var result = toFinite(value), + remainder = result % 1; + + return result === result ? (remainder ? result - remainder : result) : 0; + } + + /** + * Converts `value` to an integer suitable for use as the length of an + * array-like object. + * + * **Note:** This method is based on + * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to convert. + * @returns {number} Returns the converted integer. + * @example + * + * _.toLength(3.2); + * // => 3 + * + * _.toLength(Number.MIN_VALUE); + * // => 0 + * + * _.toLength(Infinity); + * // => 4294967295 + * + * _.toLength('3.2'); + * // => 3 + */ + function toLength(value) { + return value ? baseClamp(toInteger(value), 0, MAX_ARRAY_LENGTH) : 0; + } + + /** + * Converts `value` to a number. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to process. + * @returns {number} Returns the number. + * @example + * + * _.toNumber(3.2); + * // => 3.2 + * + * _.toNumber(Number.MIN_VALUE); + * // => 5e-324 + * + * _.toNumber(Infinity); + * // => Infinity + * + * _.toNumber('3.2'); + * // => 3.2 + */ + function toNumber(value) { + if (typeof value == 'number') { + return value; + } + if (isSymbol(value)) { + return NAN; + } + if (isObject(value)) { + var other = typeof value.valueOf == 'function' ? value.valueOf() : value; + value = isObject(other) ? (other + '') : other; + } + if (typeof value != 'string') { + return value === 0 ? value : +value; + } + value = value.replace(reTrim, ''); + var isBinary = reIsBinary.test(value); + return (isBinary || reIsOctal.test(value)) + ? freeParseInt(value.slice(2), isBinary ? 2 : 8) + : (reIsBadHex.test(value) ? NAN : +value); + } + + /** + * Converts `value` to a plain object flattening inherited enumerable string + * keyed properties of `value` to own properties of the plain object. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Lang + * @param {*} value The value to convert. + * @returns {Object} Returns the converted plain object. + * @example + * + * function Foo() { + * this.b = 2; + * } + * + * Foo.prototype.c = 3; + * + * _.assign({ 'a': 1 }, new Foo); + * // => { 'a': 1, 'b': 2 } + * + * _.assign({ 'a': 1 }, _.toPlainObject(new Foo)); + * // => { 'a': 1, 'b': 2, 'c': 3 } + */ + function toPlainObject(value) { + return copyObject(value, keysIn(value)); + } + + /** + * Converts `value` to a safe integer. A safe integer can be compared and + * represented correctly. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to convert. + * @returns {number} Returns the converted integer. + * @example + * + * _.toSafeInteger(3.2); + * // => 3 + * + * _.toSafeInteger(Number.MIN_VALUE); + * // => 0 + * + * _.toSafeInteger(Infinity); + * // => 9007199254740991 + * + * _.toSafeInteger('3.2'); + * // => 3 + */ + function toSafeInteger(value) { + return value + ? baseClamp(toInteger(value), -MAX_SAFE_INTEGER, MAX_SAFE_INTEGER) + : (value === 0 ? value : 0); + } + + /** + * Converts `value` to a string. An empty string is returned for `null` + * and `undefined` values. The sign of `-0` is preserved. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to convert. + * @returns {string} Returns the converted string. + * @example + * + * _.toString(null); + * // => '' + * + * _.toString(-0); + * // => '-0' + * + * _.toString([1, 2, 3]); + * // => '1,2,3' + */ + function toString(value) { + return value == null ? '' : baseToString(value); + } + + /*------------------------------------------------------------------------*/ + + /** + * Assigns own enumerable string keyed properties of source objects to the + * destination object. Source objects are applied from left to right. + * Subsequent sources overwrite property assignments of previous sources. + * + * **Note:** This method mutates `object` and is loosely based on + * [`Object.assign`](https://mdn.io/Object/assign). + * + * @static + * @memberOf _ + * @since 0.10.0 + * @category Object + * @param {Object} object The destination object. + * @param {...Object} [sources] The source objects. + * @returns {Object} Returns `object`. + * @see _.assignIn + * @example + * + * function Foo() { + * this.a = 1; + * } + * + * function Bar() { + * this.c = 3; + * } + * + * Foo.prototype.b = 2; + * Bar.prototype.d = 4; + * + * _.assign({ 'a': 0 }, new Foo, new Bar); + * // => { 'a': 1, 'c': 3 } + */ + var assign = createAssigner(function(object, source) { + if (isPrototype(source) || isArrayLike(source)) { + copyObject(source, keys(source), object); + return; + } + for (var key in source) { + if (hasOwnProperty.call(source, key)) { + assignValue(object, key, source[key]); + } + } + }); + + /** + * This method is like `_.assign` except that it iterates over own and + * inherited source properties. + * + * **Note:** This method mutates `object`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @alias extend + * @category Object + * @param {Object} object The destination object. + * @param {...Object} [sources] The source objects. + * @returns {Object} Returns `object`. + * @see _.assign + * @example + * + * function Foo() { + * this.a = 1; + * } + * + * function Bar() { + * this.c = 3; + * } + * + * Foo.prototype.b = 2; + * Bar.prototype.d = 4; + * + * _.assignIn({ 'a': 0 }, new Foo, new Bar); + * // => { 'a': 1, 'b': 2, 'c': 3, 'd': 4 } + */ + var assignIn = createAssigner(function(object, source) { + copyObject(source, keysIn(source), object); + }); + + /** + * This method is like `_.assignIn` except that it accepts `customizer` + * which is invoked to produce the assigned values. If `customizer` returns + * `undefined`, assignment is handled by the method instead. The `customizer` + * is invoked with five arguments: (objValue, srcValue, key, object, source). + * + * **Note:** This method mutates `object`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @alias extendWith + * @category Object + * @param {Object} object The destination object. + * @param {...Object} sources The source objects. + * @param {Function} [customizer] The function to customize assigned values. + * @returns {Object} Returns `object`. + * @see _.assignWith + * @example + * + * function customizer(objValue, srcValue) { + * return _.isUndefined(objValue) ? srcValue : objValue; + * } + * + * var defaults = _.partialRight(_.assignInWith, customizer); + * + * defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 }); + * // => { 'a': 1, 'b': 2 } + */ + var assignInWith = createAssigner(function(object, source, srcIndex, customizer) { + copyObject(source, keysIn(source), object, customizer); + }); + + /** + * This method is like `_.assign` except that it accepts `customizer` + * which is invoked to produce the assigned values. If `customizer` returns + * `undefined`, assignment is handled by the method instead. The `customizer` + * is invoked with five arguments: (objValue, srcValue, key, object, source). + * + * **Note:** This method mutates `object`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Object + * @param {Object} object The destination object. + * @param {...Object} sources The source objects. + * @param {Function} [customizer] The function to customize assigned values. + * @returns {Object} Returns `object`. + * @see _.assignInWith + * @example + * + * function customizer(objValue, srcValue) { + * return _.isUndefined(objValue) ? srcValue : objValue; + * } + * + * var defaults = _.partialRight(_.assignWith, customizer); + * + * defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 }); + * // => { 'a': 1, 'b': 2 } + */ + var assignWith = createAssigner(function(object, source, srcIndex, customizer) { + copyObject(source, keys(source), object, customizer); + }); + + /** + * Creates an array of values corresponding to `paths` of `object`. + * + * @static + * @memberOf _ + * @since 1.0.0 + * @category Object + * @param {Object} object The object to iterate over. + * @param {...(string|string[])} [paths] The property paths to pick. + * @returns {Array} Returns the picked values. + * @example + * + * var object = { 'a': [{ 'b': { 'c': 3 } }, 4] }; + * + * _.at(object, ['a[0].b.c', 'a[1]']); + * // => [3, 4] + */ + var at = flatRest(baseAt); + + /** + * Creates an object that inherits from the `prototype` object. If a + * `properties` object is given, its own enumerable string keyed properties + * are assigned to the created object. + * + * @static + * @memberOf _ + * @since 2.3.0 + * @category Object + * @param {Object} prototype The object to inherit from. + * @param {Object} [properties] The properties to assign to the object. + * @returns {Object} Returns the new object. + * @example + * + * function Shape() { + * this.x = 0; + * this.y = 0; + * } + * + * function Circle() { + * Shape.call(this); + * } + * + * Circle.prototype = _.create(Shape.prototype, { + * 'constructor': Circle + * }); + * + * var circle = new Circle; + * circle instanceof Circle; + * // => true + * + * circle instanceof Shape; + * // => true + */ + function create(prototype, properties) { + var result = baseCreate(prototype); + return properties == null ? result : baseAssign(result, properties); + } + + /** + * Assigns own and inherited enumerable string keyed properties of source + * objects to the destination object for all destination properties that + * resolve to `undefined`. Source objects are applied from left to right. + * Once a property is set, additional values of the same property are ignored. + * + * **Note:** This method mutates `object`. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Object + * @param {Object} object The destination object. + * @param {...Object} [sources] The source objects. + * @returns {Object} Returns `object`. + * @see _.defaultsDeep + * @example + * + * _.defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 }); + * // => { 'a': 1, 'b': 2 } + */ + var defaults = baseRest(function(args) { + args.push(undefined, customDefaultsAssignIn); + return apply(assignInWith, undefined, args); + }); + + /** + * This method is like `_.defaults` except that it recursively assigns + * default properties. + * + * **Note:** This method mutates `object`. + * + * @static + * @memberOf _ + * @since 3.10.0 + * @category Object + * @param {Object} object The destination object. + * @param {...Object} [sources] The source objects. + * @returns {Object} Returns `object`. + * @see _.defaults + * @example + * + * _.defaultsDeep({ 'a': { 'b': 2 } }, { 'a': { 'b': 1, 'c': 3 } }); + * // => { 'a': { 'b': 2, 'c': 3 } } + */ + var defaultsDeep = baseRest(function(args) { + args.push(undefined, customDefaultsMerge); + return apply(mergeWith, undefined, args); + }); + + /** + * This method is like `_.find` except that it returns the key of the first + * element `predicate` returns truthy for instead of the element itself. + * + * @static + * @memberOf _ + * @since 1.1.0 + * @category Object + * @param {Object} object The object to inspect. + * @param {Function} [predicate=_.identity] The function invoked per iteration. + * @returns {string|undefined} Returns the key of the matched element, + * else `undefined`. + * @example + * + * var users = { + * 'barney': { 'age': 36, 'active': true }, + * 'fred': { 'age': 40, 'active': false }, + * 'pebbles': { 'age': 1, 'active': true } + * }; + * + * _.findKey(users, function(o) { return o.age < 40; }); + * // => 'barney' (iteration order is not guaranteed) + * + * // The `_.matches` iteratee shorthand. + * _.findKey(users, { 'age': 1, 'active': true }); + * // => 'pebbles' + * + * // The `_.matchesProperty` iteratee shorthand. + * _.findKey(users, ['active', false]); + * // => 'fred' + * + * // The `_.property` iteratee shorthand. + * _.findKey(users, 'active'); + * // => 'barney' + */ + function findKey(object, predicate) { + return baseFindKey(object, getIteratee(predicate, 3), baseForOwn); + } + + /** + * This method is like `_.findKey` except that it iterates over elements of + * a collection in the opposite order. + * + * @static + * @memberOf _ + * @since 2.0.0 + * @category Object + * @param {Object} object The object to inspect. + * @param {Function} [predicate=_.identity] The function invoked per iteration. + * @returns {string|undefined} Returns the key of the matched element, + * else `undefined`. + * @example + * + * var users = { + * 'barney': { 'age': 36, 'active': true }, + * 'fred': { 'age': 40, 'active': false }, + * 'pebbles': { 'age': 1, 'active': true } + * }; + * + * _.findLastKey(users, function(o) { return o.age < 40; }); + * // => returns 'pebbles' assuming `_.findKey` returns 'barney' + * + * // The `_.matches` iteratee shorthand. + * _.findLastKey(users, { 'age': 36, 'active': true }); + * // => 'barney' + * + * // The `_.matchesProperty` iteratee shorthand. + * _.findLastKey(users, ['active', false]); + * // => 'fred' + * + * // The `_.property` iteratee shorthand. + * _.findLastKey(users, 'active'); + * // => 'pebbles' + */ + function findLastKey(object, predicate) { + return baseFindKey(object, getIteratee(predicate, 3), baseForOwnRight); + } + + /** + * Iterates over own and inherited enumerable string keyed properties of an + * object and invokes `iteratee` for each property. The iteratee is invoked + * with three arguments: (value, key, object). Iteratee functions may exit + * iteration early by explicitly returning `false`. + * + * @static + * @memberOf _ + * @since 0.3.0 + * @category Object + * @param {Object} object The object to iterate over. + * @param {Function} [iteratee=_.identity] The function invoked per iteration. + * @returns {Object} Returns `object`. + * @see _.forInRight + * @example + * + * function Foo() { + * this.a = 1; + * this.b = 2; + * } + * + * Foo.prototype.c = 3; + * + * _.forIn(new Foo, function(value, key) { + * console.log(key); + * }); + * // => Logs 'a', 'b', then 'c' (iteration order is not guaranteed). + */ + function forIn(object, iteratee) { + return object == null + ? object + : baseFor(object, getIteratee(iteratee, 3), keysIn); + } + + /** + * This method is like `_.forIn` except that it iterates over properties of + * `object` in the opposite order. + * + * @static + * @memberOf _ + * @since 2.0.0 + * @category Object + * @param {Object} object The object to iterate over. + * @param {Function} [iteratee=_.identity] The function invoked per iteration. + * @returns {Object} Returns `object`. + * @see _.forIn + * @example + * + * function Foo() { + * this.a = 1; + * this.b = 2; + * } + * + * Foo.prototype.c = 3; + * + * _.forInRight(new Foo, function(value, key) { + * console.log(key); + * }); + * // => Logs 'c', 'b', then 'a' assuming `_.forIn` logs 'a', 'b', then 'c'. + */ + function forInRight(object, iteratee) { + return object == null + ? object + : baseForRight(object, getIteratee(iteratee, 3), keysIn); + } + + /** + * Iterates over own enumerable string keyed properties of an object and + * invokes `iteratee` for each property. The iteratee is invoked with three + * arguments: (value, key, object). Iteratee functions may exit iteration + * early by explicitly returning `false`. + * + * @static + * @memberOf _ + * @since 0.3.0 + * @category Object + * @param {Object} object The object to iterate over. + * @param {Function} [iteratee=_.identity] The function invoked per iteration. + * @returns {Object} Returns `object`. + * @see _.forOwnRight + * @example + * + * function Foo() { + * this.a = 1; + * this.b = 2; + * } + * + * Foo.prototype.c = 3; + * + * _.forOwn(new Foo, function(value, key) { + * console.log(key); + * }); + * // => Logs 'a' then 'b' (iteration order is not guaranteed). + */ + function forOwn(object, iteratee) { + return object && baseForOwn(object, getIteratee(iteratee, 3)); + } + + /** + * This method is like `_.forOwn` except that it iterates over properties of + * `object` in the opposite order. + * + * @static + * @memberOf _ + * @since 2.0.0 + * @category Object + * @param {Object} object The object to iterate over. + * @param {Function} [iteratee=_.identity] The function invoked per iteration. + * @returns {Object} Returns `object`. + * @see _.forOwn + * @example + * + * function Foo() { + * this.a = 1; + * this.b = 2; + * } + * + * Foo.prototype.c = 3; + * + * _.forOwnRight(new Foo, function(value, key) { + * console.log(key); + * }); + * // => Logs 'b' then 'a' assuming `_.forOwn` logs 'a' then 'b'. + */ + function forOwnRight(object, iteratee) { + return object && baseForOwnRight(object, getIteratee(iteratee, 3)); + } + + /** + * Creates an array of function property names from own enumerable properties + * of `object`. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Object + * @param {Object} object The object to inspect. + * @returns {Array} Returns the function names. + * @see _.functionsIn + * @example + * + * function Foo() { + * this.a = _.constant('a'); + * this.b = _.constant('b'); + * } + * + * Foo.prototype.c = _.constant('c'); + * + * _.functions(new Foo); + * // => ['a', 'b'] + */ + function functions(object) { + return object == null ? [] : baseFunctions(object, keys(object)); + } + + /** + * Creates an array of function property names from own and inherited + * enumerable properties of `object`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Object + * @param {Object} object The object to inspect. + * @returns {Array} Returns the function names. + * @see _.functions + * @example + * + * function Foo() { + * this.a = _.constant('a'); + * this.b = _.constant('b'); + * } + * + * Foo.prototype.c = _.constant('c'); + * + * _.functionsIn(new Foo); + * // => ['a', 'b', 'c'] + */ + function functionsIn(object) { + return object == null ? [] : baseFunctions(object, keysIn(object)); + } + + /** + * Gets the value at `path` of `object`. If the resolved value is + * `undefined`, the `defaultValue` is returned in its place. + * + * @static + * @memberOf _ + * @since 3.7.0 + * @category Object + * @param {Object} object The object to query. + * @param {Array|string} path The path of the property to get. + * @param {*} [defaultValue] The value returned for `undefined` resolved values. + * @returns {*} Returns the resolved value. + * @example + * + * var object = { 'a': [{ 'b': { 'c': 3 } }] }; + * + * _.get(object, 'a[0].b.c'); + * // => 3 + * + * _.get(object, ['a', '0', 'b', 'c']); + * // => 3 + * + * _.get(object, 'a.b.c', 'default'); + * // => 'default' + */ + function get(object, path, defaultValue) { + var result = object == null ? undefined : baseGet(object, path); + return result === undefined ? defaultValue : result; + } + + /** + * Checks if `path` is a direct property of `object`. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Object + * @param {Object} object The object to query. + * @param {Array|string} path The path to check. + * @returns {boolean} Returns `true` if `path` exists, else `false`. + * @example + * + * var object = { 'a': { 'b': 2 } }; + * var other = _.create({ 'a': _.create({ 'b': 2 }) }); + * + * _.has(object, 'a'); + * // => true + * + * _.has(object, 'a.b'); + * // => true + * + * _.has(object, ['a', 'b']); + * // => true + * + * _.has(other, 'a'); + * // => false + */ + function has(object, path) { + return object != null && hasPath(object, path, baseHas); + } + + /** + * Checks if `path` is a direct or inherited property of `object`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Object + * @param {Object} object The object to query. + * @param {Array|string} path The path to check. + * @returns {boolean} Returns `true` if `path` exists, else `false`. + * @example + * + * var object = _.create({ 'a': _.create({ 'b': 2 }) }); + * + * _.hasIn(object, 'a'); + * // => true + * + * _.hasIn(object, 'a.b'); + * // => true + * + * _.hasIn(object, ['a', 'b']); + * // => true + * + * _.hasIn(object, 'b'); + * // => false + */ + function hasIn(object, path) { + return object != null && hasPath(object, path, baseHasIn); + } + + /** + * Creates an object composed of the inverted keys and values of `object`. + * If `object` contains duplicate values, subsequent values overwrite + * property assignments of previous values. + * + * @static + * @memberOf _ + * @since 0.7.0 + * @category Object + * @param {Object} object The object to invert. + * @returns {Object} Returns the new inverted object. + * @example + * + * var object = { 'a': 1, 'b': 2, 'c': 1 }; + * + * _.invert(object); + * // => { '1': 'c', '2': 'b' } + */ + var invert = createInverter(function(result, value, key) { + result[value] = key; + }, constant(identity)); + + /** + * This method is like `_.invert` except that the inverted object is generated + * from the results of running each element of `object` thru `iteratee`. The + * corresponding inverted value of each inverted key is an array of keys + * responsible for generating the inverted value. The iteratee is invoked + * with one argument: (value). + * + * @static + * @memberOf _ + * @since 4.1.0 + * @category Object + * @param {Object} object The object to invert. + * @param {Function} [iteratee=_.identity] The iteratee invoked per element. + * @returns {Object} Returns the new inverted object. + * @example + * + * var object = { 'a': 1, 'b': 2, 'c': 1 }; + * + * _.invertBy(object); + * // => { '1': ['a', 'c'], '2': ['b'] } + * + * _.invertBy(object, function(value) { + * return 'group' + value; + * }); + * // => { 'group1': ['a', 'c'], 'group2': ['b'] } + */ + var invertBy = createInverter(function(result, value, key) { + if (hasOwnProperty.call(result, value)) { + result[value].push(key); + } else { + result[value] = [key]; + } + }, getIteratee); + + /** + * Invokes the method at `path` of `object`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Object + * @param {Object} object The object to query. + * @param {Array|string} path The path of the method to invoke. + * @param {...*} [args] The arguments to invoke the method with. + * @returns {*} Returns the result of the invoked method. + * @example + * + * var object = { 'a': [{ 'b': { 'c': [1, 2, 3, 4] } }] }; + * + * _.invoke(object, 'a[0].b.c.slice', 1, 3); + * // => [2, 3] + */ + var invoke = baseRest(baseInvoke); + + /** + * Creates an array of the own enumerable property names of `object`. + * + * **Note:** Non-object values are coerced to objects. See the + * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys) + * for more details. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Object + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. + * @example + * + * function Foo() { + * this.a = 1; + * this.b = 2; + * } + * + * Foo.prototype.c = 3; + * + * _.keys(new Foo); + * // => ['a', 'b'] (iteration order is not guaranteed) + * + * _.keys('hi'); + * // => ['0', '1'] + */ + function keys(object) { + return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object); + } + + /** + * Creates an array of the own and inherited enumerable property names of `object`. + * + * **Note:** Non-object values are coerced to objects. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Object + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. + * @example + * + * function Foo() { + * this.a = 1; + * this.b = 2; + * } + * + * Foo.prototype.c = 3; + * + * _.keysIn(new Foo); + * // => ['a', 'b', 'c'] (iteration order is not guaranteed) + */ + function keysIn(object) { + return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object); + } + + /** + * The opposite of `_.mapValues`; this method creates an object with the + * same values as `object` and keys generated by running each own enumerable + * string keyed property of `object` thru `iteratee`. The iteratee is invoked + * with three arguments: (value, key, object). + * + * @static + * @memberOf _ + * @since 3.8.0 + * @category Object + * @param {Object} object The object to iterate over. + * @param {Function} [iteratee=_.identity] The function invoked per iteration. + * @returns {Object} Returns the new mapped object. + * @see _.mapValues + * @example + * + * _.mapKeys({ 'a': 1, 'b': 2 }, function(value, key) { + * return key + value; + * }); + * // => { 'a1': 1, 'b2': 2 } + */ + function mapKeys(object, iteratee) { + var result = {}; + iteratee = getIteratee(iteratee, 3); + + baseForOwn(object, function(value, key, object) { + baseAssignValue(result, iteratee(value, key, object), value); + }); + return result; + } + + /** + * Creates an object with the same keys as `object` and values generated + * by running each own enumerable string keyed property of `object` thru + * `iteratee`. The iteratee is invoked with three arguments: + * (value, key, object). + * + * @static + * @memberOf _ + * @since 2.4.0 + * @category Object + * @param {Object} object The object to iterate over. + * @param {Function} [iteratee=_.identity] The function invoked per iteration. + * @returns {Object} Returns the new mapped object. + * @see _.mapKeys + * @example + * + * var users = { + * 'fred': { 'user': 'fred', 'age': 40 }, + * 'pebbles': { 'user': 'pebbles', 'age': 1 } + * }; + * + * _.mapValues(users, function(o) { return o.age; }); + * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed) + * + * // The `_.property` iteratee shorthand. + * _.mapValues(users, 'age'); + * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed) + */ + function mapValues(object, iteratee) { + var result = {}; + iteratee = getIteratee(iteratee, 3); + + baseForOwn(object, function(value, key, object) { + baseAssignValue(result, key, iteratee(value, key, object)); + }); + return result; + } + + /** + * This method is like `_.assign` except that it recursively merges own and + * inherited enumerable string keyed properties of source objects into the + * destination object. Source properties that resolve to `undefined` are + * skipped if a destination value exists. Array and plain object properties + * are merged recursively. Other objects and value types are overridden by + * assignment. Source objects are applied from left to right. Subsequent + * sources overwrite property assignments of previous sources. + * + * **Note:** This method mutates `object`. + * + * @static + * @memberOf _ + * @since 0.5.0 + * @category Object + * @param {Object} object The destination object. + * @param {...Object} [sources] The source objects. + * @returns {Object} Returns `object`. + * @example + * + * var object = { + * 'a': [{ 'b': 2 }, { 'd': 4 }] + * }; + * + * var other = { + * 'a': [{ 'c': 3 }, { 'e': 5 }] + * }; + * + * _.merge(object, other); + * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] } + */ + var merge = createAssigner(function(object, source, srcIndex) { + baseMerge(object, source, srcIndex); + }); + + /** + * This method is like `_.merge` except that it accepts `customizer` which + * is invoked to produce the merged values of the destination and source + * properties. If `customizer` returns `undefined`, merging is handled by the + * method instead. The `customizer` is invoked with six arguments: + * (objValue, srcValue, key, object, source, stack). + * + * **Note:** This method mutates `object`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Object + * @param {Object} object The destination object. + * @param {...Object} sources The source objects. + * @param {Function} customizer The function to customize assigned values. + * @returns {Object} Returns `object`. + * @example + * + * function customizer(objValue, srcValue) { + * if (_.isArray(objValue)) { + * return objValue.concat(srcValue); + * } + * } + * + * var object = { 'a': [1], 'b': [2] }; + * var other = { 'a': [3], 'b': [4] }; + * + * _.mergeWith(object, other, customizer); + * // => { 'a': [1, 3], 'b': [2, 4] } + */ + var mergeWith = createAssigner(function(object, source, srcIndex, customizer) { + baseMerge(object, source, srcIndex, customizer); + }); + + /** + * The opposite of `_.pick`; this method creates an object composed of the + * own and inherited enumerable property paths of `object` that are not omitted. + * + * **Note:** This method is considerably slower than `_.pick`. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Object + * @param {Object} object The source object. + * @param {...(string|string[])} [paths] The property paths to omit. + * @returns {Object} Returns the new object. + * @example + * + * var object = { 'a': 1, 'b': '2', 'c': 3 }; + * + * _.omit(object, ['a', 'c']); + * // => { 'b': '2' } + */ + var omit = flatRest(function(object, paths) { + var result = {}; + if (object == null) { + return result; + } + var isDeep = false; + paths = arrayMap(paths, function(path) { + path = castPath(path, object); + isDeep || (isDeep = path.length > 1); + return path; + }); + copyObject(object, getAllKeysIn(object), result); + if (isDeep) { + result = baseClone(result, CLONE_DEEP_FLAG | CLONE_FLAT_FLAG | CLONE_SYMBOLS_FLAG, customOmitClone); + } + var length = paths.length; + while (length--) { + baseUnset(result, paths[length]); + } + return result; + }); + + /** + * The opposite of `_.pickBy`; this method creates an object composed of + * the own and inherited enumerable string keyed properties of `object` that + * `predicate` doesn't return truthy for. The predicate is invoked with two + * arguments: (value, key). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Object + * @param {Object} object The source object. + * @param {Function} [predicate=_.identity] The function invoked per property. + * @returns {Object} Returns the new object. + * @example + * + * var object = { 'a': 1, 'b': '2', 'c': 3 }; + * + * _.omitBy(object, _.isNumber); + * // => { 'b': '2' } + */ + function omitBy(object, predicate) { + return pickBy(object, negate(getIteratee(predicate))); + } + + /** + * Creates an object composed of the picked `object` properties. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Object + * @param {Object} object The source object. + * @param {...(string|string[])} [paths] The property paths to pick. + * @returns {Object} Returns the new object. + * @example + * + * var object = { 'a': 1, 'b': '2', 'c': 3 }; + * + * _.pick(object, ['a', 'c']); + * // => { 'a': 1, 'c': 3 } + */ + var pick = flatRest(function(object, paths) { + return object == null ? {} : basePick(object, paths); + }); + + /** + * Creates an object composed of the `object` properties `predicate` returns + * truthy for. The predicate is invoked with two arguments: (value, key). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Object + * @param {Object} object The source object. + * @param {Function} [predicate=_.identity] The function invoked per property. + * @returns {Object} Returns the new object. + * @example + * + * var object = { 'a': 1, 'b': '2', 'c': 3 }; + * + * _.pickBy(object, _.isNumber); + * // => { 'a': 1, 'c': 3 } + */ + function pickBy(object, predicate) { + if (object == null) { + return {}; + } + var props = arrayMap(getAllKeysIn(object), function(prop) { + return [prop]; + }); + predicate = getIteratee(predicate); + return basePickBy(object, props, function(value, path) { + return predicate(value, path[0]); + }); + } + + /** + * This method is like `_.get` except that if the resolved value is a + * function it's invoked with the `this` binding of its parent object and + * its result is returned. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Object + * @param {Object} object The object to query. + * @param {Array|string} path The path of the property to resolve. + * @param {*} [defaultValue] The value returned for `undefined` resolved values. + * @returns {*} Returns the resolved value. + * @example + * + * var object = { 'a': [{ 'b': { 'c1': 3, 'c2': _.constant(4) } }] }; + * + * _.result(object, 'a[0].b.c1'); + * // => 3 + * + * _.result(object, 'a[0].b.c2'); + * // => 4 + * + * _.result(object, 'a[0].b.c3', 'default'); + * // => 'default' + * + * _.result(object, 'a[0].b.c3', _.constant('default')); + * // => 'default' + */ + function result(object, path, defaultValue) { + path = castPath(path, object); + + var index = -1, + length = path.length; + + // Ensure the loop is entered when path is empty. + if (!length) { + length = 1; + object = undefined; + } + while (++index < length) { + var value = object == null ? undefined : object[toKey(path[index])]; + if (value === undefined) { + index = length; + value = defaultValue; + } + object = isFunction(value) ? value.call(object) : value; + } + return object; + } + + /** + * Sets the value at `path` of `object`. If a portion of `path` doesn't exist, + * it's created. Arrays are created for missing index properties while objects + * are created for all other missing properties. Use `_.setWith` to customize + * `path` creation. + * + * **Note:** This method mutates `object`. + * + * @static + * @memberOf _ + * @since 3.7.0 + * @category Object + * @param {Object} object The object to modify. + * @param {Array|string} path The path of the property to set. + * @param {*} value The value to set. + * @returns {Object} Returns `object`. + * @example + * + * var object = { 'a': [{ 'b': { 'c': 3 } }] }; + * + * _.set(object, 'a[0].b.c', 4); + * console.log(object.a[0].b.c); + * // => 4 + * + * _.set(object, ['x', '0', 'y', 'z'], 5); + * console.log(object.x[0].y.z); + * // => 5 + */ + function set(object, path, value) { + return object == null ? object : baseSet(object, path, value); + } + + /** + * This method is like `_.set` except that it accepts `customizer` which is + * invoked to produce the objects of `path`. If `customizer` returns `undefined` + * path creation is handled by the method instead. The `customizer` is invoked + * with three arguments: (nsValue, key, nsObject). + * + * **Note:** This method mutates `object`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Object + * @param {Object} object The object to modify. + * @param {Array|string} path The path of the property to set. + * @param {*} value The value to set. + * @param {Function} [customizer] The function to customize assigned values. + * @returns {Object} Returns `object`. + * @example + * + * var object = {}; + * + * _.setWith(object, '[0][1]', 'a', Object); + * // => { '0': { '1': 'a' } } + */ + function setWith(object, path, value, customizer) { + customizer = typeof customizer == 'function' ? customizer : undefined; + return object == null ? object : baseSet(object, path, value, customizer); + } + + /** + * Creates an array of own enumerable string keyed-value pairs for `object` + * which can be consumed by `_.fromPairs`. If `object` is a map or set, its + * entries are returned. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @alias entries + * @category Object + * @param {Object} object The object to query. + * @returns {Array} Returns the key-value pairs. + * @example + * + * function Foo() { + * this.a = 1; + * this.b = 2; + * } + * + * Foo.prototype.c = 3; + * + * _.toPairs(new Foo); + * // => [['a', 1], ['b', 2]] (iteration order is not guaranteed) + */ + var toPairs = createToPairs(keys); + + /** + * Creates an array of own and inherited enumerable string keyed-value pairs + * for `object` which can be consumed by `_.fromPairs`. If `object` is a map + * or set, its entries are returned. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @alias entriesIn + * @category Object + * @param {Object} object The object to query. + * @returns {Array} Returns the key-value pairs. + * @example + * + * function Foo() { + * this.a = 1; + * this.b = 2; + * } + * + * Foo.prototype.c = 3; + * + * _.toPairsIn(new Foo); + * // => [['a', 1], ['b', 2], ['c', 3]] (iteration order is not guaranteed) + */ + var toPairsIn = createToPairs(keysIn); + + /** + * An alternative to `_.reduce`; this method transforms `object` to a new + * `accumulator` object which is the result of running each of its own + * enumerable string keyed properties thru `iteratee`, with each invocation + * potentially mutating the `accumulator` object. If `accumulator` is not + * provided, a new object with the same `[[Prototype]]` will be used. The + * iteratee is invoked with four arguments: (accumulator, value, key, object). + * Iteratee functions may exit iteration early by explicitly returning `false`. + * + * @static + * @memberOf _ + * @since 1.3.0 + * @category Object + * @param {Object} object The object to iterate over. + * @param {Function} [iteratee=_.identity] The function invoked per iteration. + * @param {*} [accumulator] The custom accumulator value. + * @returns {*} Returns the accumulated value. + * @example + * + * _.transform([2, 3, 4], function(result, n) { + * result.push(n *= n); + * return n % 2 == 0; + * }, []); + * // => [4, 9] + * + * _.transform({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) { + * (result[value] || (result[value] = [])).push(key); + * }, {}); + * // => { '1': ['a', 'c'], '2': ['b'] } + */ + function transform(object, iteratee, accumulator) { + var isArr = isArray(object), + isArrLike = isArr || isBuffer(object) || isTypedArray(object); + + iteratee = getIteratee(iteratee, 4); + if (accumulator == null) { + var Ctor = object && object.constructor; + if (isArrLike) { + accumulator = isArr ? new Ctor : []; + } + else if (isObject(object)) { + accumulator = isFunction(Ctor) ? baseCreate(getPrototype(object)) : {}; + } + else { + accumulator = {}; + } + } + (isArrLike ? arrayEach : baseForOwn)(object, function(value, index, object) { + return iteratee(accumulator, value, index, object); + }); + return accumulator; + } + + /** + * Removes the property at `path` of `object`. + * + * **Note:** This method mutates `object`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Object + * @param {Object} object The object to modify. + * @param {Array|string} path The path of the property to unset. + * @returns {boolean} Returns `true` if the property is deleted, else `false`. + * @example + * + * var object = { 'a': [{ 'b': { 'c': 7 } }] }; + * _.unset(object, 'a[0].b.c'); + * // => true + * + * console.log(object); + * // => { 'a': [{ 'b': {} }] }; + * + * _.unset(object, ['a', '0', 'b', 'c']); + * // => true + * + * console.log(object); + * // => { 'a': [{ 'b': {} }] }; + */ + function unset(object, path) { + return object == null ? true : baseUnset(object, path); + } + + /** + * This method is like `_.set` except that accepts `updater` to produce the + * value to set. Use `_.updateWith` to customize `path` creation. The `updater` + * is invoked with one argument: (value). + * + * **Note:** This method mutates `object`. + * + * @static + * @memberOf _ + * @since 4.6.0 + * @category Object + * @param {Object} object The object to modify. + * @param {Array|string} path The path of the property to set. + * @param {Function} updater The function to produce the updated value. + * @returns {Object} Returns `object`. + * @example + * + * var object = { 'a': [{ 'b': { 'c': 3 } }] }; + * + * _.update(object, 'a[0].b.c', function(n) { return n * n; }); + * console.log(object.a[0].b.c); + * // => 9 + * + * _.update(object, 'x[0].y.z', function(n) { return n ? n + 1 : 0; }); + * console.log(object.x[0].y.z); + * // => 0 + */ + function update(object, path, updater) { + return object == null ? object : baseUpdate(object, path, castFunction(updater)); + } + + /** + * This method is like `_.update` except that it accepts `customizer` which is + * invoked to produce the objects of `path`. If `customizer` returns `undefined` + * path creation is handled by the method instead. The `customizer` is invoked + * with three arguments: (nsValue, key, nsObject). + * + * **Note:** This method mutates `object`. + * + * @static + * @memberOf _ + * @since 4.6.0 + * @category Object + * @param {Object} object The object to modify. + * @param {Array|string} path The path of the property to set. + * @param {Function} updater The function to produce the updated value. + * @param {Function} [customizer] The function to customize assigned values. + * @returns {Object} Returns `object`. + * @example + * + * var object = {}; + * + * _.updateWith(object, '[0][1]', _.constant('a'), Object); + * // => { '0': { '1': 'a' } } + */ + function updateWith(object, path, updater, customizer) { + customizer = typeof customizer == 'function' ? customizer : undefined; + return object == null ? object : baseUpdate(object, path, castFunction(updater), customizer); + } + + /** + * Creates an array of the own enumerable string keyed property values of `object`. + * + * **Note:** Non-object values are coerced to objects. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Object + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property values. + * @example + * + * function Foo() { + * this.a = 1; + * this.b = 2; + * } + * + * Foo.prototype.c = 3; + * + * _.values(new Foo); + * // => [1, 2] (iteration order is not guaranteed) + * + * _.values('hi'); + * // => ['h', 'i'] + */ + function values(object) { + return object == null ? [] : baseValues(object, keys(object)); + } + + /** + * Creates an array of the own and inherited enumerable string keyed property + * values of `object`. + * + * **Note:** Non-object values are coerced to objects. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Object + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property values. + * @example + * + * function Foo() { + * this.a = 1; + * this.b = 2; + * } + * + * Foo.prototype.c = 3; + * + * _.valuesIn(new Foo); + * // => [1, 2, 3] (iteration order is not guaranteed) + */ + function valuesIn(object) { + return object == null ? [] : baseValues(object, keysIn(object)); + } + + /*------------------------------------------------------------------------*/ + + /** + * Clamps `number` within the inclusive `lower` and `upper` bounds. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Number + * @param {number} number The number to clamp. + * @param {number} [lower] The lower bound. + * @param {number} upper The upper bound. + * @returns {number} Returns the clamped number. + * @example + * + * _.clamp(-10, -5, 5); + * // => -5 + * + * _.clamp(10, -5, 5); + * // => 5 + */ + function clamp(number, lower, upper) { + if (upper === undefined) { + upper = lower; + lower = undefined; + } + if (upper !== undefined) { + upper = toNumber(upper); + upper = upper === upper ? upper : 0; + } + if (lower !== undefined) { + lower = toNumber(lower); + lower = lower === lower ? lower : 0; + } + return baseClamp(toNumber(number), lower, upper); + } + + /** + * Checks if `n` is between `start` and up to, but not including, `end`. If + * `end` is not specified, it's set to `start` with `start` then set to `0`. + * If `start` is greater than `end` the params are swapped to support + * negative ranges. + * + * @static + * @memberOf _ + * @since 3.3.0 + * @category Number + * @param {number} number The number to check. + * @param {number} [start=0] The start of the range. + * @param {number} end The end of the range. + * @returns {boolean} Returns `true` if `number` is in the range, else `false`. + * @see _.range, _.rangeRight + * @example + * + * _.inRange(3, 2, 4); + * // => true + * + * _.inRange(4, 8); + * // => true + * + * _.inRange(4, 2); + * // => false + * + * _.inRange(2, 2); + * // => false + * + * _.inRange(1.2, 2); + * // => true + * + * _.inRange(5.2, 4); + * // => false + * + * _.inRange(-3, -2, -6); + * // => true + */ + function inRange(number, start, end) { + start = toFinite(start); + if (end === undefined) { + end = start; + start = 0; + } else { + end = toFinite(end); + } + number = toNumber(number); + return baseInRange(number, start, end); + } + + /** + * Produces a random number between the inclusive `lower` and `upper` bounds. + * If only one argument is provided a number between `0` and the given number + * is returned. If `floating` is `true`, or either `lower` or `upper` are + * floats, a floating-point number is returned instead of an integer. + * + * **Note:** JavaScript follows the IEEE-754 standard for resolving + * floating-point values which can produce unexpected results. + * + * @static + * @memberOf _ + * @since 0.7.0 + * @category Number + * @param {number} [lower=0] The lower bound. + * @param {number} [upper=1] The upper bound. + * @param {boolean} [floating] Specify returning a floating-point number. + * @returns {number} Returns the random number. + * @example + * + * _.random(0, 5); + * // => an integer between 0 and 5 + * + * _.random(5); + * // => also an integer between 0 and 5 + * + * _.random(5, true); + * // => a floating-point number between 0 and 5 + * + * _.random(1.2, 5.2); + * // => a floating-point number between 1.2 and 5.2 + */ + function random(lower, upper, floating) { + if (floating && typeof floating != 'boolean' && isIterateeCall(lower, upper, floating)) { + upper = floating = undefined; + } + if (floating === undefined) { + if (typeof upper == 'boolean') { + floating = upper; + upper = undefined; + } + else if (typeof lower == 'boolean') { + floating = lower; + lower = undefined; + } + } + if (lower === undefined && upper === undefined) { + lower = 0; + upper = 1; + } + else { + lower = toFinite(lower); + if (upper === undefined) { + upper = lower; + lower = 0; + } else { + upper = toFinite(upper); + } + } + if (lower > upper) { + var temp = lower; + lower = upper; + upper = temp; + } + if (floating || lower % 1 || upper % 1) { + var rand = nativeRandom(); + return nativeMin(lower + (rand * (upper - lower + freeParseFloat('1e-' + ((rand + '').length - 1)))), upper); + } + return baseRandom(lower, upper); + } + + /*------------------------------------------------------------------------*/ + + /** + * Converts `string` to [camel case](https://en.wikipedia.org/wiki/CamelCase). + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category String + * @param {string} [string=''] The string to convert. + * @returns {string} Returns the camel cased string. + * @example + * + * _.camelCase('Foo Bar'); + * // => 'fooBar' + * + * _.camelCase('--foo-bar--'); + * // => 'fooBar' + * + * _.camelCase('__FOO_BAR__'); + * // => 'fooBar' + */ + var camelCase = createCompounder(function(result, word, index) { + word = word.toLowerCase(); + return result + (index ? capitalize(word) : word); + }); + + /** + * Converts the first character of `string` to upper case and the remaining + * to lower case. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category String + * @param {string} [string=''] The string to capitalize. + * @returns {string} Returns the capitalized string. + * @example + * + * _.capitalize('FRED'); + * // => 'Fred' + */ + function capitalize(string) { + return upperFirst(toString(string).toLowerCase()); + } + + /** + * Deburrs `string` by converting + * [Latin-1 Supplement](https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block)#Character_table) + * and [Latin Extended-A](https://en.wikipedia.org/wiki/Latin_Extended-A) + * letters to basic Latin letters and removing + * [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks). + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category String + * @param {string} [string=''] The string to deburr. + * @returns {string} Returns the deburred string. + * @example + * + * _.deburr('déjà vu'); + * // => 'deja vu' + */ + function deburr(string) { + string = toString(string); + return string && string.replace(reLatin, deburrLetter).replace(reComboMark, ''); + } + + /** + * Checks if `string` ends with the given target string. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category String + * @param {string} [string=''] The string to inspect. + * @param {string} [target] The string to search for. + * @param {number} [position=string.length] The position to search up to. + * @returns {boolean} Returns `true` if `string` ends with `target`, + * else `false`. + * @example + * + * _.endsWith('abc', 'c'); + * // => true + * + * _.endsWith('abc', 'b'); + * // => false + * + * _.endsWith('abc', 'b', 2); + * // => true + */ + function endsWith(string, target, position) { + string = toString(string); + target = baseToString(target); + + var length = string.length; + position = position === undefined + ? length + : baseClamp(toInteger(position), 0, length); + + var end = position; + position -= target.length; + return position >= 0 && string.slice(position, end) == target; + } + + /** + * Converts the characters "&", "<", ">", '"', and "'" in `string` to their + * corresponding HTML entities. + * + * **Note:** No other characters are escaped. To escape additional + * characters use a third-party library like [_he_](https://mths.be/he). + * + * Though the ">" character is escaped for symmetry, characters like + * ">" and "/" don't need escaping in HTML and have no special meaning + * unless they're part of a tag or unquoted attribute value. See + * [Mathias Bynens's article](https://mathiasbynens.be/notes/ambiguous-ampersands) + * (under "semi-related fun fact") for more details. + * + * When working with HTML you should always + * [quote attribute values](http://wonko.com/post/html-escaping) to reduce + * XSS vectors. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category String + * @param {string} [string=''] The string to escape. + * @returns {string} Returns the escaped string. + * @example + * + * _.escape('fred, barney, & pebbles'); + * // => 'fred, barney, & pebbles' + */ + function escape(string) { + string = toString(string); + return (string && reHasUnescapedHtml.test(string)) + ? string.replace(reUnescapedHtml, escapeHtmlChar) + : string; + } + + /** + * Escapes the `RegExp` special characters "^", "$", "\", ".", "*", "+", + * "?", "(", ")", "[", "]", "{", "}", and "|" in `string`. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category String + * @param {string} [string=''] The string to escape. + * @returns {string} Returns the escaped string. + * @example + * + * _.escapeRegExp('[lodash](https://lodash.com/)'); + * // => '\[lodash\]\(https://lodash\.com/\)' + */ + function escapeRegExp(string) { + string = toString(string); + return (string && reHasRegExpChar.test(string)) + ? string.replace(reRegExpChar, '\\$&') + : string; + } + + /** + * Converts `string` to + * [kebab case](https://en.wikipedia.org/wiki/Letter_case#Special_case_styles). + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category String + * @param {string} [string=''] The string to convert. + * @returns {string} Returns the kebab cased string. + * @example + * + * _.kebabCase('Foo Bar'); + * // => 'foo-bar' + * + * _.kebabCase('fooBar'); + * // => 'foo-bar' + * + * _.kebabCase('__FOO_BAR__'); + * // => 'foo-bar' + */ + var kebabCase = createCompounder(function(result, word, index) { + return result + (index ? '-' : '') + word.toLowerCase(); + }); + + /** + * Converts `string`, as space separated words, to lower case. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category String + * @param {string} [string=''] The string to convert. + * @returns {string} Returns the lower cased string. + * @example + * + * _.lowerCase('--Foo-Bar--'); + * // => 'foo bar' + * + * _.lowerCase('fooBar'); + * // => 'foo bar' + * + * _.lowerCase('__FOO_BAR__'); + * // => 'foo bar' + */ + var lowerCase = createCompounder(function(result, word, index) { + return result + (index ? ' ' : '') + word.toLowerCase(); + }); + + /** + * Converts the first character of `string` to lower case. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category String + * @param {string} [string=''] The string to convert. + * @returns {string} Returns the converted string. + * @example + * + * _.lowerFirst('Fred'); + * // => 'fred' + * + * _.lowerFirst('FRED'); + * // => 'fRED' + */ + var lowerFirst = createCaseFirst('toLowerCase'); + + /** + * Pads `string` on the left and right sides if it's shorter than `length`. + * Padding characters are truncated if they can't be evenly divided by `length`. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category String + * @param {string} [string=''] The string to pad. + * @param {number} [length=0] The padding length. + * @param {string} [chars=' '] The string used as padding. + * @returns {string} Returns the padded string. + * @example + * + * _.pad('abc', 8); + * // => ' abc ' + * + * _.pad('abc', 8, '_-'); + * // => '_-abc_-_' + * + * _.pad('abc', 3); + * // => 'abc' + */ + function pad(string, length, chars) { + string = toString(string); + length = toInteger(length); + + var strLength = length ? stringSize(string) : 0; + if (!length || strLength >= length) { + return string; + } + var mid = (length - strLength) / 2; + return ( + createPadding(nativeFloor(mid), chars) + + string + + createPadding(nativeCeil(mid), chars) + ); + } + + /** + * Pads `string` on the right side if it's shorter than `length`. Padding + * characters are truncated if they exceed `length`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category String + * @param {string} [string=''] The string to pad. + * @param {number} [length=0] The padding length. + * @param {string} [chars=' '] The string used as padding. + * @returns {string} Returns the padded string. + * @example + * + * _.padEnd('abc', 6); + * // => 'abc ' + * + * _.padEnd('abc', 6, '_-'); + * // => 'abc_-_' + * + * _.padEnd('abc', 3); + * // => 'abc' + */ + function padEnd(string, length, chars) { + string = toString(string); + length = toInteger(length); + + var strLength = length ? stringSize(string) : 0; + return (length && strLength < length) + ? (string + createPadding(length - strLength, chars)) + : string; + } + + /** + * Pads `string` on the left side if it's shorter than `length`. Padding + * characters are truncated if they exceed `length`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category String + * @param {string} [string=''] The string to pad. + * @param {number} [length=0] The padding length. + * @param {string} [chars=' '] The string used as padding. + * @returns {string} Returns the padded string. + * @example + * + * _.padStart('abc', 6); + * // => ' abc' + * + * _.padStart('abc', 6, '_-'); + * // => '_-_abc' + * + * _.padStart('abc', 3); + * // => 'abc' + */ + function padStart(string, length, chars) { + string = toString(string); + length = toInteger(length); + + var strLength = length ? stringSize(string) : 0; + return (length && strLength < length) + ? (createPadding(length - strLength, chars) + string) + : string; + } + + /** + * Converts `string` to an integer of the specified radix. If `radix` is + * `undefined` or `0`, a `radix` of `10` is used unless `value` is a + * hexadecimal, in which case a `radix` of `16` is used. + * + * **Note:** This method aligns with the + * [ES5 implementation](https://es5.github.io/#x15.1.2.2) of `parseInt`. + * + * @static + * @memberOf _ + * @since 1.1.0 + * @category String + * @param {string} string The string to convert. + * @param {number} [radix=10] The radix to interpret `value` by. + * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. + * @returns {number} Returns the converted integer. + * @example + * + * _.parseInt('08'); + * // => 8 + * + * _.map(['6', '08', '10'], _.parseInt); + * // => [6, 8, 10] + */ + function parseInt(string, radix, guard) { + if (guard || radix == null) { + radix = 0; + } else if (radix) { + radix = +radix; + } + return nativeParseInt(toString(string).replace(reTrimStart, ''), radix || 0); + } + + /** + * Repeats the given string `n` times. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category String + * @param {string} [string=''] The string to repeat. + * @param {number} [n=1] The number of times to repeat the string. + * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. + * @returns {string} Returns the repeated string. + * @example + * + * _.repeat('*', 3); + * // => '***' + * + * _.repeat('abc', 2); + * // => 'abcabc' + * + * _.repeat('abc', 0); + * // => '' + */ + function repeat(string, n, guard) { + if ((guard ? isIterateeCall(string, n, guard) : n === undefined)) { + n = 1; + } else { + n = toInteger(n); + } + return baseRepeat(toString(string), n); + } + + /** + * Replaces matches for `pattern` in `string` with `replacement`. + * + * **Note:** This method is based on + * [`String#replace`](https://mdn.io/String/replace). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category String + * @param {string} [string=''] The string to modify. + * @param {RegExp|string} pattern The pattern to replace. + * @param {Function|string} replacement The match replacement. + * @returns {string} Returns the modified string. + * @example + * + * _.replace('Hi Fred', 'Fred', 'Barney'); + * // => 'Hi Barney' + */ + function replace() { + var args = arguments, + string = toString(args[0]); + + return args.length < 3 ? string : string.replace(args[1], args[2]); + } + + /** + * Converts `string` to + * [snake case](https://en.wikipedia.org/wiki/Snake_case). + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category String + * @param {string} [string=''] The string to convert. + * @returns {string} Returns the snake cased string. + * @example + * + * _.snakeCase('Foo Bar'); + * // => 'foo_bar' + * + * _.snakeCase('fooBar'); + * // => 'foo_bar' + * + * _.snakeCase('--FOO-BAR--'); + * // => 'foo_bar' + */ + var snakeCase = createCompounder(function(result, word, index) { + return result + (index ? '_' : '') + word.toLowerCase(); + }); + + /** + * Splits `string` by `separator`. + * + * **Note:** This method is based on + * [`String#split`](https://mdn.io/String/split). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category String + * @param {string} [string=''] The string to split. + * @param {RegExp|string} separator The separator pattern to split by. + * @param {number} [limit] The length to truncate results to. + * @returns {Array} Returns the string segments. + * @example + * + * _.split('a-b-c', '-', 2); + * // => ['a', 'b'] + */ + function split(string, separator, limit) { + if (limit && typeof limit != 'number' && isIterateeCall(string, separator, limit)) { + separator = limit = undefined; + } + limit = limit === undefined ? MAX_ARRAY_LENGTH : limit >>> 0; + if (!limit) { + return []; + } + string = toString(string); + if (string && ( + typeof separator == 'string' || + (separator != null && !isRegExp(separator)) + )) { + separator = baseToString(separator); + if (!separator && hasUnicode(string)) { + return castSlice(stringToArray(string), 0, limit); + } + } + return string.split(separator, limit); + } + + /** + * Converts `string` to + * [start case](https://en.wikipedia.org/wiki/Letter_case#Stylistic_or_specialised_usage). + * + * @static + * @memberOf _ + * @since 3.1.0 + * @category String + * @param {string} [string=''] The string to convert. + * @returns {string} Returns the start cased string. + * @example + * + * _.startCase('--foo-bar--'); + * // => 'Foo Bar' + * + * _.startCase('fooBar'); + * // => 'Foo Bar' + * + * _.startCase('__FOO_BAR__'); + * // => 'FOO BAR' + */ + var startCase = createCompounder(function(result, word, index) { + return result + (index ? ' ' : '') + upperFirst(word); + }); + + /** + * Checks if `string` starts with the given target string. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category String + * @param {string} [string=''] The string to inspect. + * @param {string} [target] The string to search for. + * @param {number} [position=0] The position to search from. + * @returns {boolean} Returns `true` if `string` starts with `target`, + * else `false`. + * @example + * + * _.startsWith('abc', 'a'); + * // => true + * + * _.startsWith('abc', 'b'); + * // => false + * + * _.startsWith('abc', 'b', 1); + * // => true + */ + function startsWith(string, target, position) { + string = toString(string); + position = position == null + ? 0 + : baseClamp(toInteger(position), 0, string.length); + + target = baseToString(target); + return string.slice(position, position + target.length) == target; + } + + /** + * Creates a compiled template function that can interpolate data properties + * in "interpolate" delimiters, HTML-escape interpolated data properties in + * "escape" delimiters, and execute JavaScript in "evaluate" delimiters. Data + * properties may be accessed as free variables in the template. If a setting + * object is given, it takes precedence over `_.templateSettings` values. + * + * **Note:** In the development build `_.template` utilizes + * [sourceURLs](http://www.html5rocks.com/en/tutorials/developertools/sourcemaps/#toc-sourceurl) + * for easier debugging. + * + * For more information on precompiling templates see + * [lodash's custom builds documentation](https://lodash.com/custom-builds). + * + * For more information on Chrome extension sandboxes see + * [Chrome's extensions documentation](https://developer.chrome.com/extensions/sandboxingEval). + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category String + * @param {string} [string=''] The template string. + * @param {Object} [options={}] The options object. + * @param {RegExp} [options.escape=_.templateSettings.escape] + * The HTML "escape" delimiter. + * @param {RegExp} [options.evaluate=_.templateSettings.evaluate] + * The "evaluate" delimiter. + * @param {Object} [options.imports=_.templateSettings.imports] + * An object to import into the template as free variables. + * @param {RegExp} [options.interpolate=_.templateSettings.interpolate] + * The "interpolate" delimiter. + * @param {string} [options.sourceURL='lodash.templateSources[n]'] + * The sourceURL of the compiled template. + * @param {string} [options.variable='obj'] + * The data object variable name. + * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. + * @returns {Function} Returns the compiled template function. + * @example + * + * // Use the "interpolate" delimiter to create a compiled template. + * var compiled = _.template('hello <%= user %>!'); + * compiled({ 'user': 'fred' }); + * // => 'hello fred!' + * + * // Use the HTML "escape" delimiter to escape data property values. + * var compiled = _.template('<%- value %>'); + * compiled({ 'value': '