{"version":3,"sources":["../node_modules/webpack/buildin/amd-define.js","../node_modules/toastr/toastr.js","../node_modules/util/support/isBufferBrowser.js","../node_modules/util/node_modules/inherits/inherits_browser.js","../node_modules/vm-browserify/index.js","../node_modules/webpack/buildin/global.js","../node_modules/unix-time/lib/index.js","../node_modules/tiny-invariant/dist/tiny-invariant.esm.js","../node_modules/webpack/buildin/module.js","../node_modules/tiny-warning/dist/tiny-warning.esm.js","../node_modules/tinycolor2/tinycolor.js","../node_modules/util/util.js","../node_modules/util-deprecate/browser.js","../node_modules/webpack/buildin/harmony-module.js","../node_modules/warning/warning.js","../node_modules/value-equal/esm/value-equal.js"],"names":["module","exports","Error","define","$","$container","listener","previousToast","toastId","toastType","toastr","clear","$toastElement","clearOptions","options","getOptions","getContainer","clearToast","toastsToClear","children","i","length","clearContainer","remove","removeToast","error","message","title","optionsOverride","notify","type","iconClass","iconClasses","info","subscribe","callback","success","version","warning","create","containerId","attr","addClass","positionClass","appendTo","target","createContainer","force","hideMethod","duration","hideDuration","easing","hideEasing","complete","publish","args","map","extend","preventDuplicates","shouldExit","intervalId","$titleElement","$messageElement","$progressElement","$closeElement","closeHtml","progressBar","hideEta","maxHideTime","response","state","startTime","Date","toastClass","suffix","escapeHtml","append","titleClass","setTitle","messageClass","setMessage","closeButton","closeClass","prepend","progressClass","rtl","newestOnTop","ariaValue","setAria","hide","showMethod","showDuration","showEasing","onShown","timeOut","setTimeout","hideToast","parseFloat","getTime","setInterval","updateProgress","closeOnHover","hover","stickAround","delayedHideToast","onclick","tapToDismiss","click","event","stopPropagation","undefined","cancelBubble","onCloseClick","debug","console","source","replace","override","method","closeMethod","closeDuration","closeEasing","clearTimeout","onHidden","endTime","extendedTimeOut","stop","percentage","width","is","arg","copy","fill","readUInt8","Object","ctor","superCtor","super_","prototype","constructor","value","enumerable","writable","configurable","TempCtor","indexOf","xs","item","Object_keys","obj","keys","res","key","push","forEach","fn","defineProp","defineProperty","name","e","globals","Context","Script","code","this","runInContext","context","TypeError","iframe","document","createElement","style","display","body","appendChild","win","contentWindow","wEval","eval","wExecScript","execScript","call","winKeys","removeChild","runInThisContext","runInNewContext","ctx","createContext","s","apply","slice","arguments","isContext","createScript","g","Function","window","date","Math","floor","prefix","invariant","condition","webpackPolyfill","deprecate","paths","get","l","trimLeft","trimRight","tinyCounter","mathRound","round","mathMin","min","mathMax","max","mathRandom","random","tinycolor","color","opts","rgb","r","b","a","v","ok","format","toLowerCase","match","named","names","matchers","exec","rgba","hsl","h","hsla","hsv","hsva","hex8","parseIntFromHex","convertHexToDecimal","hex6","hex4","hex3","stringInputToObject","isValidCSSUnit","bound01","String","substr","convertToPercentage","f","p","q","t","mod","hsvToRgb","hue2rgb","hslToRgb","hasOwnProperty","boundAlpha","inputToRGB","_originalInput","_r","_g","_b","_a","_roundA","_format","_gradientType","gradientType","_ok","_tc_id","rgbToHsl","d","rgbToHsv","rgbToHex","allow3Char","hex","pad2","toString","charAt","join","rgbaToArgbHex","convertDecimalToHex","desaturate","amount","toHsl","clamp01","saturate","greyscale","lighten","brighten","toRgb","darken","spin","hue","complement","triad","tetrad","splitcomplement","analogous","results","slices","part","ret","monochromatic","toHsv","modification","isDark","getBrightness","isLight","isValid","getOriginalInput","getFormat","getAlpha","getLuminance","RsRGB","GsRGB","BsRGB","pow","setAlpha","toHsvString","toHslString","toHex","toHexString","toHex8","allow4Char","rgbaToHex","toHex8String","toRgbString","toPercentageRgb","toPercentageRgbString","toName","hexNames","toFilter","secondColor","hex8String","secondHex8String","formatSet","formattedString","hasAlpha","clone","_applyModification","concat","_applyCombination","fromRatio","newColor","equals","color1","color2","mix","rgb1","rgb2","readability","c1","c2","isReadable","wcag2","wcag2Parms","out","parms","level","size","toUpperCase","validateWCAG2Parms","mostReadable","baseColor","colorList","includeFallbackColors","bestColor","bestScore","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","burntsienna","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","o","flipped","flip","isNaN","n","isOnePointZero","processPercent","isPercentage","parseInt","abs","val","c","CSS_UNIT","PERMISSIVE_MATCH3","PERMISSIVE_MATCH4","RegExp","getOwnPropertyDescriptors","descriptors","getOwnPropertyDescriptor","formatRegExp","isString","objects","inspect","len","str","x","Number","JSON","stringify","_","isNull","isObject","msg","process","noDeprecation","warned","throwDeprecation","traceDeprecation","debugEnviron","debugs","seen","stylize","stylizeNoColor","depth","colors","isBoolean","showHidden","_extend","isUndefined","customInspect","stylizeWithColor","formatValue","styleType","styles","recurseTimes","isFunction","primitive","simple","isNumber","formatPrimitive","visibleKeys","array","hash","idx","arrayToHash","getOwnPropertyNames","isError","formatError","isRegExp","isDate","output","base","braces","isArray","toUTCString","formatProperty","formatArray","pop","reduce","prev","cur","numLinesEst","reduceToSingleString","desc","set","split","line","ar","Array","re","objectToString","debuglog","NODE_DEBUG","test","pid","isNullOrUndefined","isSymbol","isPrimitive","isBuffer","require","prop","log","inherits","origin","add","kCustomPromisifiedSymbol","Symbol","callbackifyOnRejected","reason","cb","newReason","promisify","original","promiseResolve","promiseReject","promise","Promise","resolve","reject","err","setPrototypeOf","getPrototypeOf","defineProperties","custom","callbackify","callbackified","maybeCb","self","then","nextTick","rej","config","global","localStorage","originalModule","valueOf","valueEqual","every","index","aValue","bValue","assign"],"mappings":"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","file":"static/js/main~1c3a2c3f.59d71946.chunk.js","sourcesContent":["module.exports = function() {\n\tthrow new Error(\"define cannot be used indirect\");\n};\n","/*\n * Toastr\n * Copyright 2012-2015\n * Authors: John Papa, Hans FjÀllemark, and Tim Ferrell.\n * All Rights Reserved.\n * Use, reproduction, distribution, and modification of this code is subject to the terms and\n * conditions of the MIT license, available at http://www.opensource.org/licenses/mit-license.php\n *\n * ARIA Support: Greta Krafsig\n *\n * Project: https://github.com/CodeSeven/toastr\n */\n/* global define */\n(function (define) {\n define(['jquery'], function ($) {\n return (function () {\n var $container;\n var listener;\n var toastId = 0;\n var toastType = {\n error: 'error',\n info: 'info',\n success: 'success',\n warning: 'warning'\n };\n\n var toastr = {\n clear: clear,\n remove: remove,\n error: error,\n getContainer: getContainer,\n info: info,\n options: {},\n subscribe: subscribe,\n success: success,\n version: '2.1.4',\n warning: warning\n };\n\n var previousToast;\n\n return toastr;\n\n ////////////////\n\n function error(message, title, optionsOverride) {\n return notify({\n type: toastType.error,\n iconClass: getOptions().iconClasses.error,\n message: message,\n optionsOverride: optionsOverride,\n title: title\n });\n }\n\n function getContainer(options, create) {\n if (!options) { options = getOptions(); }\n $container = $('#' + options.containerId);\n if ($container.length) {\n return $container;\n }\n if (create) {\n $container = createContainer(options);\n }\n return $container;\n }\n\n function info(message, title, optionsOverride) {\n return notify({\n type: toastType.info,\n iconClass: getOptions().iconClasses.info,\n message: message,\n optionsOverride: optionsOverride,\n title: title\n });\n }\n\n function subscribe(callback) {\n listener = callback;\n }\n\n function success(message, title, optionsOverride) {\n return notify({\n type: toastType.success,\n iconClass: getOptions().iconClasses.success,\n message: message,\n optionsOverride: optionsOverride,\n title: title\n });\n }\n\n function warning(message, title, optionsOverride) {\n return notify({\n type: toastType.warning,\n iconClass: getOptions().iconClasses.warning,\n message: message,\n optionsOverride: optionsOverride,\n title: title\n });\n }\n\n function clear($toastElement, clearOptions) {\n var options = getOptions();\n if (!$container) { getContainer(options); }\n if (!clearToast($toastElement, options, clearOptions)) {\n clearContainer(options);\n }\n }\n\n function remove($toastElement) {\n var options = getOptions();\n if (!$container) { getContainer(options); }\n if ($toastElement && $(':focus', $toastElement).length === 0) {\n removeToast($toastElement);\n return;\n }\n if ($container.children().length) {\n $container.remove();\n }\n }\n\n // internal functions\n\n function clearContainer (options) {\n var toastsToClear = $container.children();\n for (var i = toastsToClear.length - 1; i >= 0; i--) {\n clearToast($(toastsToClear[i]), options);\n }\n }\n\n function clearToast ($toastElement, options, clearOptions) {\n var force = clearOptions && clearOptions.force ? clearOptions.force : false;\n if ($toastElement && (force || $(':focus', $toastElement).length === 0)) {\n $toastElement[options.hideMethod]({\n duration: options.hideDuration,\n easing: options.hideEasing,\n complete: function () { removeToast($toastElement); }\n });\n return true;\n }\n return false;\n }\n\n function createContainer(options) {\n $container = $('
')\n .attr('id', options.containerId)\n .addClass(options.positionClass);\n\n $container.appendTo($(options.target));\n return $container;\n }\n\n function getDefaults() {\n return {\n tapToDismiss: true,\n toastClass: 'toast',\n containerId: 'toast-container',\n debug: false,\n\n showMethod: 'fadeIn', //fadeIn, slideDown, and show are built into jQuery\n showDuration: 300,\n showEasing: 'swing', //swing and linear are built into jQuery\n onShown: undefined,\n hideMethod: 'fadeOut',\n hideDuration: 1000,\n hideEasing: 'swing',\n onHidden: undefined,\n closeMethod: false,\n closeDuration: false,\n closeEasing: false,\n closeOnHover: true,\n\n extendedTimeOut: 1000,\n iconClasses: {\n error: 'toast-error',\n info: 'toast-info',\n success: 'toast-success',\n warning: 'toast-warning'\n },\n iconClass: 'toast-info',\n positionClass: 'toast-top-right',\n timeOut: 5000, // Set timeOut and extendedTimeOut to 0 to make it sticky\n titleClass: 'toast-title',\n messageClass: 'toast-message',\n escapeHtml: false,\n target: 'body',\n closeHtml: '',\n closeClass: 'toast-close-button',\n newestOnTop: true,\n preventDuplicates: false,\n progressBar: false,\n progressClass: 'toast-progress',\n rtl: false\n };\n }\n\n function publish(args) {\n if (!listener) { return; }\n listener(args);\n }\n\n function notify(map) {\n var options = getOptions();\n var iconClass = map.iconClass || options.iconClass;\n\n if (typeof (map.optionsOverride) !== 'undefined') {\n options = $.extend(options, map.optionsOverride);\n iconClass = map.optionsOverride.iconClass || iconClass;\n }\n\n if (shouldExit(options, map)) { return; }\n\n toastId++;\n\n $container = getContainer(options, true);\n\n var intervalId = null;\n var $toastElement = $('
');\n var $titleElement = $('
');\n var $messageElement = $('
');\n var $progressElement = $('
');\n var $closeElement = $(options.closeHtml);\n var progressBar = {\n intervalId: null,\n hideEta: null,\n maxHideTime: null\n };\n var response = {\n toastId: toastId,\n state: 'visible',\n startTime: new Date(),\n options: options,\n map: map\n };\n\n personalizeToast();\n\n displayToast();\n\n handleEvents();\n\n publish(response);\n\n if (options.debug && console) {\n console.log(response);\n }\n\n return $toastElement;\n\n function escapeHtml(source) {\n if (source == null) {\n source = '';\n }\n\n return source\n .replace(/&/g, '&')\n .replace(/\"/g, '"')\n .replace(/'/g, ''')\n .replace(//g, '>');\n }\n\n function personalizeToast() {\n setIcon();\n setTitle();\n setMessage();\n setCloseButton();\n setProgressBar();\n setRTL();\n setSequence();\n setAria();\n }\n\n function setAria() {\n var ariaValue = '';\n switch (map.iconClass) {\n case 'toast-success':\n case 'toast-info':\n ariaValue = 'polite';\n break;\n default:\n ariaValue = 'assertive';\n }\n $toastElement.attr('aria-live', ariaValue);\n }\n\n function handleEvents() {\n if (options.closeOnHover) {\n $toastElement.hover(stickAround, delayedHideToast);\n }\n\n if (!options.onclick && options.tapToDismiss) {\n $toastElement.click(hideToast);\n }\n\n if (options.closeButton && $closeElement) {\n $closeElement.click(function (event) {\n if (event.stopPropagation) {\n event.stopPropagation();\n } else if (event.cancelBubble !== undefined && event.cancelBubble !== true) {\n event.cancelBubble = true;\n }\n\n if (options.onCloseClick) {\n options.onCloseClick(event);\n }\n\n hideToast(true);\n });\n }\n\n if (options.onclick) {\n $toastElement.click(function (event) {\n options.onclick(event);\n hideToast();\n });\n }\n }\n\n function displayToast() {\n $toastElement.hide();\n\n $toastElement[options.showMethod](\n {duration: options.showDuration, easing: options.showEasing, complete: options.onShown}\n );\n\n if (options.timeOut > 0) {\n intervalId = setTimeout(hideToast, options.timeOut);\n progressBar.maxHideTime = parseFloat(options.timeOut);\n progressBar.hideEta = new Date().getTime() + progressBar.maxHideTime;\n if (options.progressBar) {\n progressBar.intervalId = setInterval(updateProgress, 10);\n }\n }\n }\n\n function setIcon() {\n if (map.iconClass) {\n $toastElement.addClass(options.toastClass).addClass(iconClass);\n }\n }\n\n function setSequence() {\n if (options.newestOnTop) {\n $container.prepend($toastElement);\n } else {\n $container.append($toastElement);\n }\n }\n\n function setTitle() {\n if (map.title) {\n var suffix = map.title;\n if (options.escapeHtml) {\n suffix = escapeHtml(map.title);\n }\n $titleElement.append(suffix).addClass(options.titleClass);\n $toastElement.append($titleElement);\n }\n }\n\n function setMessage() {\n if (map.message) {\n var suffix = map.message;\n if (options.escapeHtml) {\n suffix = escapeHtml(map.message);\n }\n $messageElement.append(suffix).addClass(options.messageClass);\n $toastElement.append($messageElement);\n }\n }\n\n function setCloseButton() {\n if (options.closeButton) {\n $closeElement.addClass(options.closeClass).attr('role', 'button');\n $toastElement.prepend($closeElement);\n }\n }\n\n function setProgressBar() {\n if (options.progressBar) {\n $progressElement.addClass(options.progressClass);\n $toastElement.prepend($progressElement);\n }\n }\n\n function setRTL() {\n if (options.rtl) {\n $toastElement.addClass('rtl');\n }\n }\n\n function shouldExit(options, map) {\n if (options.preventDuplicates) {\n if (map.message === previousToast) {\n return true;\n } else {\n previousToast = map.message;\n }\n }\n return false;\n }\n\n function hideToast(override) {\n var method = override && options.closeMethod !== false ? options.closeMethod : options.hideMethod;\n var duration = override && options.closeDuration !== false ?\n options.closeDuration : options.hideDuration;\n var easing = override && options.closeEasing !== false ? options.closeEasing : options.hideEasing;\n if ($(':focus', $toastElement).length && !override) {\n return;\n }\n clearTimeout(progressBar.intervalId);\n return $toastElement[method]({\n duration: duration,\n easing: easing,\n complete: function () {\n removeToast($toastElement);\n clearTimeout(intervalId);\n if (options.onHidden && response.state !== 'hidden') {\n options.onHidden();\n }\n response.state = 'hidden';\n response.endTime = new Date();\n publish(response);\n }\n });\n }\n\n function delayedHideToast() {\n if (options.timeOut > 0 || options.extendedTimeOut > 0) {\n intervalId = setTimeout(hideToast, options.extendedTimeOut);\n progressBar.maxHideTime = parseFloat(options.extendedTimeOut);\n progressBar.hideEta = new Date().getTime() + progressBar.maxHideTime;\n }\n }\n\n function stickAround() {\n clearTimeout(intervalId);\n progressBar.hideEta = 0;\n $toastElement.stop(true, true)[options.showMethod](\n {duration: options.showDuration, easing: options.showEasing}\n );\n }\n\n function updateProgress() {\n var percentage = ((progressBar.hideEta - (new Date().getTime())) / progressBar.maxHideTime) * 100;\n $progressElement.width(percentage + '%');\n }\n }\n\n function getOptions() {\n return $.extend({}, getDefaults(), toastr.options);\n }\n\n function removeToast($toastElement) {\n if (!$container) { $container = getContainer(); }\n if ($toastElement.is(':visible')) {\n return;\n }\n $toastElement.remove();\n $toastElement = null;\n if ($container.children().length === 0) {\n $container.remove();\n previousToast = undefined;\n }\n }\n\n })();\n });\n}(typeof define === 'function' && define.amd ? define : function (deps, factory) {\n if (typeof module !== 'undefined' && module.exports) { //Node\n module.exports = factory(require('jquery'));\n } else {\n window.toastr = factory(window.jQuery);\n }\n}));\n","module.exports = function isBuffer(arg) {\n return arg && typeof arg === 'object'\n && typeof arg.copy === 'function'\n && typeof arg.fill === 'function'\n && typeof arg.readUInt8 === 'function';\n}","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n}\n","var indexOf = function (xs, item) {\n if (xs.indexOf) return xs.indexOf(item);\n else for (var i = 0; i < xs.length; i++) {\n if (xs[i] === item) return i;\n }\n return -1;\n};\nvar Object_keys = function (obj) {\n if (Object.keys) return Object.keys(obj)\n else {\n var res = [];\n for (var key in obj) res.push(key)\n return res;\n }\n};\n\nvar forEach = function (xs, fn) {\n if (xs.forEach) return xs.forEach(fn)\n else for (var i = 0; i < xs.length; i++) {\n fn(xs[i], i, xs);\n }\n};\n\nvar defineProp = (function() {\n try {\n Object.defineProperty({}, '_', {});\n return function(obj, name, value) {\n Object.defineProperty(obj, name, {\n writable: true,\n enumerable: false,\n configurable: true,\n value: value\n })\n };\n } catch(e) {\n return function(obj, name, value) {\n obj[name] = value;\n };\n }\n}());\n\nvar globals = ['Array', 'Boolean', 'Date', 'Error', 'EvalError', 'Function',\n'Infinity', 'JSON', 'Math', 'NaN', 'Number', 'Object', 'RangeError',\n'ReferenceError', 'RegExp', 'String', 'SyntaxError', 'TypeError', 'URIError',\n'decodeURI', 'decodeURIComponent', 'encodeURI', 'encodeURIComponent', 'escape',\n'eval', 'isFinite', 'isNaN', 'parseFloat', 'parseInt', 'undefined', 'unescape'];\n\nfunction Context() {}\nContext.prototype = {};\n\nvar Script = exports.Script = function NodeScript (code) {\n if (!(this instanceof Script)) return new Script(code);\n this.code = code;\n};\n\nScript.prototype.runInContext = function (context) {\n if (!(context instanceof Context)) {\n throw new TypeError(\"needs a 'context' argument.\");\n }\n \n var iframe = document.createElement('iframe');\n if (!iframe.style) iframe.style = {};\n iframe.style.display = 'none';\n \n document.body.appendChild(iframe);\n \n var win = iframe.contentWindow;\n var wEval = win.eval, wExecScript = win.execScript;\n\n if (!wEval && wExecScript) {\n // win.eval() magically appears when this is called in IE:\n wExecScript.call(win, 'null');\n wEval = win.eval;\n }\n \n forEach(Object_keys(context), function (key) {\n win[key] = context[key];\n });\n forEach(globals, function (key) {\n if (context[key]) {\n win[key] = context[key];\n }\n });\n \n var winKeys = Object_keys(win);\n\n var res = wEval.call(win, this.code);\n \n forEach(Object_keys(win), function (key) {\n // Avoid copying circular objects like `top` and `window` by only\n // updating existing context properties or new properties in the `win`\n // that was only introduced after the eval.\n if (key in context || indexOf(winKeys, key) === -1) {\n context[key] = win[key];\n }\n });\n\n forEach(globals, function (key) {\n if (!(key in context)) {\n defineProp(context, key, win[key]);\n }\n });\n \n document.body.removeChild(iframe);\n \n return res;\n};\n\nScript.prototype.runInThisContext = function () {\n return eval(this.code); // maybe...\n};\n\nScript.prototype.runInNewContext = function (context) {\n var ctx = Script.createContext(context);\n var res = this.runInContext(ctx);\n\n if (context) {\n forEach(Object_keys(ctx), function (key) {\n context[key] = ctx[key];\n });\n }\n\n return res;\n};\n\nforEach(Object_keys(Script.prototype), function (name) {\n exports[name] = Script[name] = function (code) {\n var s = Script(code);\n return s[name].apply(s, [].slice.call(arguments, 1));\n };\n});\n\nexports.isContext = function (context) {\n return context instanceof Context;\n};\n\nexports.createScript = function (code) {\n return exports.Script(code);\n};\n\nexports.createContext = Script.createContext = function (context) {\n var copy = new Context();\n if(typeof context === 'object') {\n forEach(Object_keys(context), function (key) {\n copy[key] = context[key];\n });\n }\n return copy;\n};\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","\n\n/**\n * Converts a date to a unix time stamp\n */\n\nmodule.exports = function (date) {\n date = new Date(date);\n return Math.floor(date.getTime() / 1000);\n}","var isProduction = process.env.NODE_ENV === 'production';\nvar prefix = 'Invariant failed';\nfunction invariant(condition, message) {\n if (condition) {\n return;\n }\n if (isProduction) {\n throw new Error(prefix);\n }\n var provided = typeof message === 'function' ? message() : message;\n var value = provided ? prefix + \": \" + provided : prefix;\n throw new Error(value);\n}\n\nexport { invariant as default };\n","module.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function() {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n","var isProduction = process.env.NODE_ENV === 'production';\nfunction warning(condition, message) {\n if (!isProduction) {\n if (condition) {\n return;\n }\n\n var text = \"Warning: \" + message;\n\n if (typeof console !== 'undefined') {\n console.warn(text);\n }\n\n try {\n throw Error(text);\n } catch (x) {}\n }\n}\n\nexport default warning;\n","// TinyColor v1.4.2\n// https://github.com/bgrins/TinyColor\n// Brian Grinstead, MIT License\n\n(function(Math) {\n\nvar trimLeft = /^\\s+/,\n trimRight = /\\s+$/,\n tinyCounter = 0,\n mathRound = Math.round,\n mathMin = Math.min,\n mathMax = Math.max,\n mathRandom = Math.random;\n\nfunction tinycolor (color, opts) {\n\n color = (color) ? color : '';\n opts = opts || { };\n\n // If input is already a tinycolor, return itself\n if (color instanceof tinycolor) {\n return color;\n }\n // If we are called as a function, call using new instead\n if (!(this instanceof tinycolor)) {\n return new tinycolor(color, opts);\n }\n\n var rgb = inputToRGB(color);\n this._originalInput = color,\n this._r = rgb.r,\n this._g = rgb.g,\n this._b = rgb.b,\n this._a = rgb.a,\n this._roundA = mathRound(100*this._a) / 100,\n this._format = opts.format || rgb.format;\n this._gradientType = opts.gradientType;\n\n // Don't let the range of [0,255] come back in [0,1].\n // Potentially lose a little bit of precision here, but will fix issues where\n // .5 gets interpreted as half of the total, instead of half of 1\n // If it was supposed to be 128, this was already taken care of by `inputToRgb`\n if (this._r < 1) { this._r = mathRound(this._r); }\n if (this._g < 1) { this._g = mathRound(this._g); }\n if (this._b < 1) { this._b = mathRound(this._b); }\n\n this._ok = rgb.ok;\n this._tc_id = tinyCounter++;\n}\n\ntinycolor.prototype = {\n isDark: function() {\n return this.getBrightness() < 128;\n },\n isLight: function() {\n return !this.isDark();\n },\n isValid: function() {\n return this._ok;\n },\n getOriginalInput: function() {\n return this._originalInput;\n },\n getFormat: function() {\n return this._format;\n },\n getAlpha: function() {\n return this._a;\n },\n getBrightness: function() {\n //http://www.w3.org/TR/AERT#color-contrast\n var rgb = this.toRgb();\n return (rgb.r * 299 + rgb.g * 587 + rgb.b * 114) / 1000;\n },\n getLuminance: function() {\n //http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef\n var rgb = this.toRgb();\n var RsRGB, GsRGB, BsRGB, R, G, B;\n RsRGB = rgb.r/255;\n GsRGB = rgb.g/255;\n BsRGB = rgb.b/255;\n\n if (RsRGB <= 0.03928) {R = RsRGB / 12.92;} else {R = Math.pow(((RsRGB + 0.055) / 1.055), 2.4);}\n if (GsRGB <= 0.03928) {G = GsRGB / 12.92;} else {G = Math.pow(((GsRGB + 0.055) / 1.055), 2.4);}\n if (BsRGB <= 0.03928) {B = BsRGB / 12.92;} else {B = Math.pow(((BsRGB + 0.055) / 1.055), 2.4);}\n return (0.2126 * R) + (0.7152 * G) + (0.0722 * B);\n },\n setAlpha: function(value) {\n this._a = boundAlpha(value);\n this._roundA = mathRound(100*this._a) / 100;\n return this;\n },\n toHsv: function() {\n var hsv = rgbToHsv(this._r, this._g, this._b);\n return { h: hsv.h * 360, s: hsv.s, v: hsv.v, a: this._a };\n },\n toHsvString: function() {\n var hsv = rgbToHsv(this._r, this._g, this._b);\n var h = mathRound(hsv.h * 360), s = mathRound(hsv.s * 100), v = mathRound(hsv.v * 100);\n return (this._a == 1) ?\n \"hsv(\" + h + \", \" + s + \"%, \" + v + \"%)\" :\n \"hsva(\" + h + \", \" + s + \"%, \" + v + \"%, \"+ this._roundA + \")\";\n },\n toHsl: function() {\n var hsl = rgbToHsl(this._r, this._g, this._b);\n return { h: hsl.h * 360, s: hsl.s, l: hsl.l, a: this._a };\n },\n toHslString: function() {\n var hsl = rgbToHsl(this._r, this._g, this._b);\n var h = mathRound(hsl.h * 360), s = mathRound(hsl.s * 100), l = mathRound(hsl.l * 100);\n return (this._a == 1) ?\n \"hsl(\" + h + \", \" + s + \"%, \" + l + \"%)\" :\n \"hsla(\" + h + \", \" + s + \"%, \" + l + \"%, \"+ this._roundA + \")\";\n },\n toHex: function(allow3Char) {\n return rgbToHex(this._r, this._g, this._b, allow3Char);\n },\n toHexString: function(allow3Char) {\n return '#' + this.toHex(allow3Char);\n },\n toHex8: function(allow4Char) {\n return rgbaToHex(this._r, this._g, this._b, this._a, allow4Char);\n },\n toHex8String: function(allow4Char) {\n return '#' + this.toHex8(allow4Char);\n },\n toRgb: function() {\n return { r: mathRound(this._r), g: mathRound(this._g), b: mathRound(this._b), a: this._a };\n },\n toRgbString: function() {\n return (this._a == 1) ?\n \"rgb(\" + mathRound(this._r) + \", \" + mathRound(this._g) + \", \" + mathRound(this._b) + \")\" :\n \"rgba(\" + mathRound(this._r) + \", \" + mathRound(this._g) + \", \" + mathRound(this._b) + \", \" + this._roundA + \")\";\n },\n toPercentageRgb: function() {\n return { r: mathRound(bound01(this._r, 255) * 100) + \"%\", g: mathRound(bound01(this._g, 255) * 100) + \"%\", b: mathRound(bound01(this._b, 255) * 100) + \"%\", a: this._a };\n },\n toPercentageRgbString: function() {\n return (this._a == 1) ?\n \"rgb(\" + mathRound(bound01(this._r, 255) * 100) + \"%, \" + mathRound(bound01(this._g, 255) * 100) + \"%, \" + mathRound(bound01(this._b, 255) * 100) + \"%)\" :\n \"rgba(\" + mathRound(bound01(this._r, 255) * 100) + \"%, \" + mathRound(bound01(this._g, 255) * 100) + \"%, \" + mathRound(bound01(this._b, 255) * 100) + \"%, \" + this._roundA + \")\";\n },\n toName: function() {\n if (this._a === 0) {\n return \"transparent\";\n }\n\n if (this._a < 1) {\n return false;\n }\n\n return hexNames[rgbToHex(this._r, this._g, this._b, true)] || false;\n },\n toFilter: function(secondColor) {\n var hex8String = '#' + rgbaToArgbHex(this._r, this._g, this._b, this._a);\n var secondHex8String = hex8String;\n var gradientType = this._gradientType ? \"GradientType = 1, \" : \"\";\n\n if (secondColor) {\n var s = tinycolor(secondColor);\n secondHex8String = '#' + rgbaToArgbHex(s._r, s._g, s._b, s._a);\n }\n\n return \"progid:DXImageTransform.Microsoft.gradient(\"+gradientType+\"startColorstr=\"+hex8String+\",endColorstr=\"+secondHex8String+\")\";\n },\n toString: function(format) {\n var formatSet = !!format;\n format = format || this._format;\n\n var formattedString = false;\n var hasAlpha = this._a < 1 && this._a >= 0;\n var needsAlphaFormat = !formatSet && hasAlpha && (format === \"hex\" || format === \"hex6\" || format === \"hex3\" || format === \"hex4\" || format === \"hex8\" || format === \"name\");\n\n if (needsAlphaFormat) {\n // Special case for \"transparent\", all other non-alpha formats\n // will return rgba when there is transparency.\n if (format === \"name\" && this._a === 0) {\n return this.toName();\n }\n return this.toRgbString();\n }\n if (format === \"rgb\") {\n formattedString = this.toRgbString();\n }\n if (format === \"prgb\") {\n formattedString = this.toPercentageRgbString();\n }\n if (format === \"hex\" || format === \"hex6\") {\n formattedString = this.toHexString();\n }\n if (format === \"hex3\") {\n formattedString = this.toHexString(true);\n }\n if (format === \"hex4\") {\n formattedString = this.toHex8String(true);\n }\n if (format === \"hex8\") {\n formattedString = this.toHex8String();\n }\n if (format === \"name\") {\n formattedString = this.toName();\n }\n if (format === \"hsl\") {\n formattedString = this.toHslString();\n }\n if (format === \"hsv\") {\n formattedString = this.toHsvString();\n }\n\n return formattedString || this.toHexString();\n },\n clone: function() {\n return tinycolor(this.toString());\n },\n\n _applyModification: function(fn, args) {\n var color = fn.apply(null, [this].concat([].slice.call(args)));\n this._r = color._r;\n this._g = color._g;\n this._b = color._b;\n this.setAlpha(color._a);\n return this;\n },\n lighten: function() {\n return this._applyModification(lighten, arguments);\n },\n brighten: function() {\n return this._applyModification(brighten, arguments);\n },\n darken: function() {\n return this._applyModification(darken, arguments);\n },\n desaturate: function() {\n return this._applyModification(desaturate, arguments);\n },\n saturate: function() {\n return this._applyModification(saturate, arguments);\n },\n greyscale: function() {\n return this._applyModification(greyscale, arguments);\n },\n spin: function() {\n return this._applyModification(spin, arguments);\n },\n\n _applyCombination: function(fn, args) {\n return fn.apply(null, [this].concat([].slice.call(args)));\n },\n analogous: function() {\n return this._applyCombination(analogous, arguments);\n },\n complement: function() {\n return this._applyCombination(complement, arguments);\n },\n monochromatic: function() {\n return this._applyCombination(monochromatic, arguments);\n },\n splitcomplement: function() {\n return this._applyCombination(splitcomplement, arguments);\n },\n triad: function() {\n return this._applyCombination(triad, arguments);\n },\n tetrad: function() {\n return this._applyCombination(tetrad, arguments);\n }\n};\n\n// If input is an object, force 1 into \"1.0\" to handle ratios properly\n// String input requires \"1.0\" as input, so 1 will be treated as 1\ntinycolor.fromRatio = function(color, opts) {\n if (typeof color == \"object\") {\n var newColor = {};\n for (var i in color) {\n if (color.hasOwnProperty(i)) {\n if (i === \"a\") {\n newColor[i] = color[i];\n }\n else {\n newColor[i] = convertToPercentage(color[i]);\n }\n }\n }\n color = newColor;\n }\n\n return tinycolor(color, opts);\n};\n\n// Given a string or object, convert that input to RGB\n// Possible string inputs:\n//\n// \"red\"\n// \"#f00\" or \"f00\"\n// \"#ff0000\" or \"ff0000\"\n// \"#ff000000\" or \"ff000000\"\n// \"rgb 255 0 0\" or \"rgb (255, 0, 0)\"\n// \"rgb 1.0 0 0\" or \"rgb (1, 0, 0)\"\n// \"rgba (255, 0, 0, 1)\" or \"rgba 255, 0, 0, 1\"\n// \"rgba (1.0, 0, 0, 1)\" or \"rgba 1.0, 0, 0, 1\"\n// \"hsl(0, 100%, 50%)\" or \"hsl 0 100% 50%\"\n// \"hsla(0, 100%, 50%, 1)\" or \"hsla 0 100% 50%, 1\"\n// \"hsv(0, 100%, 100%)\" or \"hsv 0 100% 100%\"\n//\nfunction inputToRGB(color) {\n\n var rgb = { r: 0, g: 0, b: 0 };\n var a = 1;\n var s = null;\n var v = null;\n var l = null;\n var ok = false;\n var format = false;\n\n if (typeof color == \"string\") {\n color = stringInputToObject(color);\n }\n\n if (typeof color == \"object\") {\n if (isValidCSSUnit(color.r) && isValidCSSUnit(color.g) && isValidCSSUnit(color.b)) {\n rgb = rgbToRgb(color.r, color.g, color.b);\n ok = true;\n format = String(color.r).substr(-1) === \"%\" ? \"prgb\" : \"rgb\";\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.v)) {\n s = convertToPercentage(color.s);\n v = convertToPercentage(color.v);\n rgb = hsvToRgb(color.h, s, v);\n ok = true;\n format = \"hsv\";\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.l)) {\n s = convertToPercentage(color.s);\n l = convertToPercentage(color.l);\n rgb = hslToRgb(color.h, s, l);\n ok = true;\n format = \"hsl\";\n }\n\n if (color.hasOwnProperty(\"a\")) {\n a = color.a;\n }\n }\n\n a = boundAlpha(a);\n\n return {\n ok: ok,\n format: color.format || format,\n r: mathMin(255, mathMax(rgb.r, 0)),\n g: mathMin(255, mathMax(rgb.g, 0)),\n b: mathMin(255, mathMax(rgb.b, 0)),\n a: a\n };\n}\n\n\n// Conversion Functions\n// --------------------\n\n// `rgbToHsl`, `rgbToHsv`, `hslToRgb`, `hsvToRgb` modified from:\n// \n\n// `rgbToRgb`\n// Handle bounds / percentage checking to conform to CSS color spec\n// \n// *Assumes:* r, g, b in [0, 255] or [0, 1]\n// *Returns:* { r, g, b } in [0, 255]\nfunction rgbToRgb(r, g, b){\n return {\n r: bound01(r, 255) * 255,\n g: bound01(g, 255) * 255,\n b: bound01(b, 255) * 255\n };\n}\n\n// `rgbToHsl`\n// Converts an RGB color value to HSL.\n// *Assumes:* r, g, and b are contained in [0, 255] or [0, 1]\n// *Returns:* { h, s, l } in [0,1]\nfunction rgbToHsl(r, g, b) {\n\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n\n var max = mathMax(r, g, b), min = mathMin(r, g, b);\n var h, s, l = (max + min) / 2;\n\n if(max == min) {\n h = s = 0; // achromatic\n }\n else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n switch(max) {\n case r: h = (g - b) / d + (g < b ? 6 : 0); break;\n case g: h = (b - r) / d + 2; break;\n case b: h = (r - g) / d + 4; break;\n }\n\n h /= 6;\n }\n\n return { h: h, s: s, l: l };\n}\n\n// `hslToRgb`\n// Converts an HSL color value to RGB.\n// *Assumes:* h is contained in [0, 1] or [0, 360] and s and l are contained [0, 1] or [0, 100]\n// *Returns:* { r, g, b } in the set [0, 255]\nfunction hslToRgb(h, s, l) {\n var r, g, b;\n\n h = bound01(h, 360);\n s = bound01(s, 100);\n l = bound01(l, 100);\n\n function hue2rgb(p, q, t) {\n if(t < 0) t += 1;\n if(t > 1) t -= 1;\n if(t < 1/6) return p + (q - p) * 6 * t;\n if(t < 1/2) return q;\n if(t < 2/3) return p + (q - p) * (2/3 - t) * 6;\n return p;\n }\n\n if(s === 0) {\n r = g = b = l; // achromatic\n }\n else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1/3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1/3);\n }\n\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\n\n// `rgbToHsv`\n// Converts an RGB color value to HSV\n// *Assumes:* r, g, and b are contained in the set [0, 255] or [0, 1]\n// *Returns:* { h, s, v } in [0,1]\nfunction rgbToHsv(r, g, b) {\n\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n\n var max = mathMax(r, g, b), min = mathMin(r, g, b);\n var h, s, v = max;\n\n var d = max - min;\n s = max === 0 ? 0 : d / max;\n\n if(max == min) {\n h = 0; // achromatic\n }\n else {\n switch(max) {\n case r: h = (g - b) / d + (g < b ? 6 : 0); break;\n case g: h = (b - r) / d + 2; break;\n case b: h = (r - g) / d + 4; break;\n }\n h /= 6;\n }\n return { h: h, s: s, v: v };\n}\n\n// `hsvToRgb`\n// Converts an HSV color value to RGB.\n// *Assumes:* h is contained in [0, 1] or [0, 360] and s and v are contained in [0, 1] or [0, 100]\n// *Returns:* { r, g, b } in the set [0, 255]\n function hsvToRgb(h, s, v) {\n\n h = bound01(h, 360) * 6;\n s = bound01(s, 100);\n v = bound01(v, 100);\n\n var i = Math.floor(h),\n f = h - i,\n p = v * (1 - s),\n q = v * (1 - f * s),\n t = v * (1 - (1 - f) * s),\n mod = i % 6,\n r = [v, q, p, p, t, v][mod],\n g = [t, v, v, q, p, p][mod],\n b = [p, p, t, v, v, q][mod];\n\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\n\n// `rgbToHex`\n// Converts an RGB color to hex\n// Assumes r, g, and b are contained in the set [0, 255]\n// Returns a 3 or 6 character hex\nfunction rgbToHex(r, g, b, allow3Char) {\n\n var hex = [\n pad2(mathRound(r).toString(16)),\n pad2(mathRound(g).toString(16)),\n pad2(mathRound(b).toString(16))\n ];\n\n // Return a 3 character hex if possible\n if (allow3Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1)) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0);\n }\n\n return hex.join(\"\");\n}\n\n// `rgbaToHex`\n// Converts an RGBA color plus alpha transparency to hex\n// Assumes r, g, b are contained in the set [0, 255] and\n// a in [0, 1]. Returns a 4 or 8 character rgba hex\nfunction rgbaToHex(r, g, b, a, allow4Char) {\n\n var hex = [\n pad2(mathRound(r).toString(16)),\n pad2(mathRound(g).toString(16)),\n pad2(mathRound(b).toString(16)),\n pad2(convertDecimalToHex(a))\n ];\n\n // Return a 4 character hex if possible\n if (allow4Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1) && hex[3].charAt(0) == hex[3].charAt(1)) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0) + hex[3].charAt(0);\n }\n\n return hex.join(\"\");\n}\n\n// `rgbaToArgbHex`\n// Converts an RGBA color to an ARGB Hex8 string\n// Rarely used, but required for \"toFilter()\"\nfunction rgbaToArgbHex(r, g, b, a) {\n\n var hex = [\n pad2(convertDecimalToHex(a)),\n pad2(mathRound(r).toString(16)),\n pad2(mathRound(g).toString(16)),\n pad2(mathRound(b).toString(16))\n ];\n\n return hex.join(\"\");\n}\n\n// `equals`\n// Can be called with any tinycolor input\ntinycolor.equals = function (color1, color2) {\n if (!color1 || !color2) { return false; }\n return tinycolor(color1).toRgbString() == tinycolor(color2).toRgbString();\n};\n\ntinycolor.random = function() {\n return tinycolor.fromRatio({\n r: mathRandom(),\n g: mathRandom(),\n b: mathRandom()\n });\n};\n\n\n// Modification Functions\n// ----------------------\n// Thanks to less.js for some of the basics here\n// \n\nfunction desaturate(color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.s -= amount / 100;\n hsl.s = clamp01(hsl.s);\n return tinycolor(hsl);\n}\n\nfunction saturate(color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.s += amount / 100;\n hsl.s = clamp01(hsl.s);\n return tinycolor(hsl);\n}\n\nfunction greyscale(color) {\n return tinycolor(color).desaturate(100);\n}\n\nfunction lighten (color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.l += amount / 100;\n hsl.l = clamp01(hsl.l);\n return tinycolor(hsl);\n}\n\nfunction brighten(color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var rgb = tinycolor(color).toRgb();\n rgb.r = mathMax(0, mathMin(255, rgb.r - mathRound(255 * - (amount / 100))));\n rgb.g = mathMax(0, mathMin(255, rgb.g - mathRound(255 * - (amount / 100))));\n rgb.b = mathMax(0, mathMin(255, rgb.b - mathRound(255 * - (amount / 100))));\n return tinycolor(rgb);\n}\n\nfunction darken (color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.l -= amount / 100;\n hsl.l = clamp01(hsl.l);\n return tinycolor(hsl);\n}\n\n// Spin takes a positive or negative amount within [-360, 360] indicating the change of hue.\n// Values outside of this range will be wrapped into this range.\nfunction spin(color, amount) {\n var hsl = tinycolor(color).toHsl();\n var hue = (hsl.h + amount) % 360;\n hsl.h = hue < 0 ? 360 + hue : hue;\n return tinycolor(hsl);\n}\n\n// Combination Functions\n// ---------------------\n// Thanks to jQuery xColor for some of the ideas behind these\n// \n\nfunction complement(color) {\n var hsl = tinycolor(color).toHsl();\n hsl.h = (hsl.h + 180) % 360;\n return tinycolor(hsl);\n}\n\nfunction triad(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [\n tinycolor(color),\n tinycolor({ h: (h + 120) % 360, s: hsl.s, l: hsl.l }),\n tinycolor({ h: (h + 240) % 360, s: hsl.s, l: hsl.l })\n ];\n}\n\nfunction tetrad(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [\n tinycolor(color),\n tinycolor({ h: (h + 90) % 360, s: hsl.s, l: hsl.l }),\n tinycolor({ h: (h + 180) % 360, s: hsl.s, l: hsl.l }),\n tinycolor({ h: (h + 270) % 360, s: hsl.s, l: hsl.l })\n ];\n}\n\nfunction splitcomplement(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [\n tinycolor(color),\n tinycolor({ h: (h + 72) % 360, s: hsl.s, l: hsl.l}),\n tinycolor({ h: (h + 216) % 360, s: hsl.s, l: hsl.l})\n ];\n}\n\nfunction analogous(color, results, slices) {\n results = results || 6;\n slices = slices || 30;\n\n var hsl = tinycolor(color).toHsl();\n var part = 360 / slices;\n var ret = [tinycolor(color)];\n\n for (hsl.h = ((hsl.h - (part * results >> 1)) + 720) % 360; --results; ) {\n hsl.h = (hsl.h + part) % 360;\n ret.push(tinycolor(hsl));\n }\n return ret;\n}\n\nfunction monochromatic(color, results) {\n results = results || 6;\n var hsv = tinycolor(color).toHsv();\n var h = hsv.h, s = hsv.s, v = hsv.v;\n var ret = [];\n var modification = 1 / results;\n\n while (results--) {\n ret.push(tinycolor({ h: h, s: s, v: v}));\n v = (v + modification) % 1;\n }\n\n return ret;\n}\n\n// Utility Functions\n// ---------------------\n\ntinycolor.mix = function(color1, color2, amount) {\n amount = (amount === 0) ? 0 : (amount || 50);\n\n var rgb1 = tinycolor(color1).toRgb();\n var rgb2 = tinycolor(color2).toRgb();\n\n var p = amount / 100;\n\n var rgba = {\n r: ((rgb2.r - rgb1.r) * p) + rgb1.r,\n g: ((rgb2.g - rgb1.g) * p) + rgb1.g,\n b: ((rgb2.b - rgb1.b) * p) + rgb1.b,\n a: ((rgb2.a - rgb1.a) * p) + rgb1.a\n };\n\n return tinycolor(rgba);\n};\n\n\n// Readability Functions\n// ---------------------\n// false\n// tinycolor.isReadable(\"#000\", \"#111\",{level:\"AA\",size:\"large\"}) => false\ntinycolor.isReadable = function(color1, color2, wcag2) {\n var readability = tinycolor.readability(color1, color2);\n var wcag2Parms, out;\n\n out = false;\n\n wcag2Parms = validateWCAG2Parms(wcag2);\n switch (wcag2Parms.level + wcag2Parms.size) {\n case \"AAsmall\":\n case \"AAAlarge\":\n out = readability >= 4.5;\n break;\n case \"AAlarge\":\n out = readability >= 3;\n break;\n case \"AAAsmall\":\n out = readability >= 7;\n break;\n }\n return out;\n\n};\n\n// `mostReadable`\n// Given a base color and a list of possible foreground or background\n// colors for that base, returns the most readable color.\n// Optionally returns Black or White if the most readable color is unreadable.\n// *Example*\n// tinycolor.mostReadable(tinycolor.mostReadable(\"#123\", [\"#124\", \"#125\"],{includeFallbackColors:false}).toHexString(); // \"#112255\"\n// tinycolor.mostReadable(tinycolor.mostReadable(\"#123\", [\"#124\", \"#125\"],{includeFallbackColors:true}).toHexString(); // \"#ffffff\"\n// tinycolor.mostReadable(\"#a8015a\", [\"#faf3f3\"],{includeFallbackColors:true,level:\"AAA\",size:\"large\"}).toHexString(); // \"#faf3f3\"\n// tinycolor.mostReadable(\"#a8015a\", [\"#faf3f3\"],{includeFallbackColors:true,level:\"AAA\",size:\"small\"}).toHexString(); // \"#ffffff\"\ntinycolor.mostReadable = function(baseColor, colorList, args) {\n var bestColor = null;\n var bestScore = 0;\n var readability;\n var includeFallbackColors, level, size ;\n args = args || {};\n includeFallbackColors = args.includeFallbackColors ;\n level = args.level;\n size = args.size;\n\n for (var i= 0; i < colorList.length ; i++) {\n readability = tinycolor.readability(baseColor, colorList[i]);\n if (readability > bestScore) {\n bestScore = readability;\n bestColor = tinycolor(colorList[i]);\n }\n }\n\n if (tinycolor.isReadable(baseColor, bestColor, {\"level\":level,\"size\":size}) || !includeFallbackColors) {\n return bestColor;\n }\n else {\n args.includeFallbackColors=false;\n return tinycolor.mostReadable(baseColor,[\"#fff\", \"#000\"],args);\n }\n};\n\n\n// Big List of Colors\n// ------------------\n// \nvar names = tinycolor.names = {\n aliceblue: \"f0f8ff\",\n antiquewhite: \"faebd7\",\n aqua: \"0ff\",\n aquamarine: \"7fffd4\",\n azure: \"f0ffff\",\n beige: \"f5f5dc\",\n bisque: \"ffe4c4\",\n black: \"000\",\n blanchedalmond: \"ffebcd\",\n blue: \"00f\",\n blueviolet: \"8a2be2\",\n brown: \"a52a2a\",\n burlywood: \"deb887\",\n burntsienna: \"ea7e5d\",\n cadetblue: \"5f9ea0\",\n chartreuse: \"7fff00\",\n chocolate: \"d2691e\",\n coral: \"ff7f50\",\n cornflowerblue: \"6495ed\",\n cornsilk: \"fff8dc\",\n crimson: \"dc143c\",\n cyan: \"0ff\",\n darkblue: \"00008b\",\n darkcyan: \"008b8b\",\n darkgoldenrod: \"b8860b\",\n darkgray: \"a9a9a9\",\n darkgreen: \"006400\",\n darkgrey: \"a9a9a9\",\n darkkhaki: \"bdb76b\",\n darkmagenta: \"8b008b\",\n darkolivegreen: \"556b2f\",\n darkorange: \"ff8c00\",\n darkorchid: \"9932cc\",\n darkred: \"8b0000\",\n darksalmon: \"e9967a\",\n darkseagreen: \"8fbc8f\",\n darkslateblue: \"483d8b\",\n darkslategray: \"2f4f4f\",\n darkslategrey: \"2f4f4f\",\n darkturquoise: \"00ced1\",\n darkviolet: \"9400d3\",\n deeppink: \"ff1493\",\n deepskyblue: \"00bfff\",\n dimgray: \"696969\",\n dimgrey: \"696969\",\n dodgerblue: \"1e90ff\",\n firebrick: \"b22222\",\n floralwhite: \"fffaf0\",\n forestgreen: \"228b22\",\n fuchsia: \"f0f\",\n gainsboro: \"dcdcdc\",\n ghostwhite: \"f8f8ff\",\n gold: \"ffd700\",\n goldenrod: \"daa520\",\n gray: \"808080\",\n green: \"008000\",\n greenyellow: \"adff2f\",\n grey: \"808080\",\n honeydew: \"f0fff0\",\n hotpink: \"ff69b4\",\n indianred: \"cd5c5c\",\n indigo: \"4b0082\",\n ivory: \"fffff0\",\n khaki: \"f0e68c\",\n lavender: \"e6e6fa\",\n lavenderblush: \"fff0f5\",\n lawngreen: \"7cfc00\",\n lemonchiffon: \"fffacd\",\n lightblue: \"add8e6\",\n lightcoral: \"f08080\",\n lightcyan: \"e0ffff\",\n lightgoldenrodyellow: \"fafad2\",\n lightgray: \"d3d3d3\",\n lightgreen: \"90ee90\",\n lightgrey: \"d3d3d3\",\n lightpink: \"ffb6c1\",\n lightsalmon: \"ffa07a\",\n lightseagreen: \"20b2aa\",\n lightskyblue: \"87cefa\",\n lightslategray: \"789\",\n lightslategrey: \"789\",\n lightsteelblue: \"b0c4de\",\n lightyellow: \"ffffe0\",\n lime: \"0f0\",\n limegreen: \"32cd32\",\n linen: \"faf0e6\",\n magenta: \"f0f\",\n maroon: \"800000\",\n mediumaquamarine: \"66cdaa\",\n mediumblue: \"0000cd\",\n mediumorchid: \"ba55d3\",\n mediumpurple: \"9370db\",\n mediumseagreen: \"3cb371\",\n mediumslateblue: \"7b68ee\",\n mediumspringgreen: \"00fa9a\",\n mediumturquoise: \"48d1cc\",\n mediumvioletred: \"c71585\",\n midnightblue: \"191970\",\n mintcream: \"f5fffa\",\n mistyrose: \"ffe4e1\",\n moccasin: \"ffe4b5\",\n navajowhite: \"ffdead\",\n navy: \"000080\",\n oldlace: \"fdf5e6\",\n olive: \"808000\",\n olivedrab: \"6b8e23\",\n orange: \"ffa500\",\n orangered: \"ff4500\",\n orchid: \"da70d6\",\n palegoldenrod: \"eee8aa\",\n palegreen: \"98fb98\",\n paleturquoise: \"afeeee\",\n palevioletred: \"db7093\",\n papayawhip: \"ffefd5\",\n peachpuff: \"ffdab9\",\n peru: \"cd853f\",\n pink: \"ffc0cb\",\n plum: \"dda0dd\",\n powderblue: \"b0e0e6\",\n purple: \"800080\",\n rebeccapurple: \"663399\",\n red: \"f00\",\n rosybrown: \"bc8f8f\",\n royalblue: \"4169e1\",\n saddlebrown: \"8b4513\",\n salmon: \"fa8072\",\n sandybrown: \"f4a460\",\n seagreen: \"2e8b57\",\n seashell: \"fff5ee\",\n sienna: \"a0522d\",\n silver: \"c0c0c0\",\n skyblue: \"87ceeb\",\n slateblue: \"6a5acd\",\n slategray: \"708090\",\n slategrey: \"708090\",\n snow: \"fffafa\",\n springgreen: \"00ff7f\",\n steelblue: \"4682b4\",\n tan: \"d2b48c\",\n teal: \"008080\",\n thistle: \"d8bfd8\",\n tomato: \"ff6347\",\n turquoise: \"40e0d0\",\n violet: \"ee82ee\",\n wheat: \"f5deb3\",\n white: \"fff\",\n whitesmoke: \"f5f5f5\",\n yellow: \"ff0\",\n yellowgreen: \"9acd32\"\n};\n\n// Make it easy to access colors via `hexNames[hex]`\nvar hexNames = tinycolor.hexNames = flip(names);\n\n\n// Utilities\n// ---------\n\n// `{ 'name1': 'val1' }` becomes `{ 'val1': 'name1' }`\nfunction flip(o) {\n var flipped = { };\n for (var i in o) {\n if (o.hasOwnProperty(i)) {\n flipped[o[i]] = i;\n }\n }\n return flipped;\n}\n\n// Return a valid alpha value [0,1] with all invalid values being set to 1\nfunction boundAlpha(a) {\n a = parseFloat(a);\n\n if (isNaN(a) || a < 0 || a > 1) {\n a = 1;\n }\n\n return a;\n}\n\n// Take input from [0, n] and return it as [0, 1]\nfunction bound01(n, max) {\n if (isOnePointZero(n)) { n = \"100%\"; }\n\n var processPercent = isPercentage(n);\n n = mathMin(max, mathMax(0, parseFloat(n)));\n\n // Automatically convert percentage into number\n if (processPercent) {\n n = parseInt(n * max, 10) / 100;\n }\n\n // Handle floating point rounding errors\n if ((Math.abs(n - max) < 0.000001)) {\n return 1;\n }\n\n // Convert into [0, 1] range if it isn't already\n return (n % max) / parseFloat(max);\n}\n\n// Force a number between 0 and 1\nfunction clamp01(val) {\n return mathMin(1, mathMax(0, val));\n}\n\n// Parse a base-16 hex value into a base-10 integer\nfunction parseIntFromHex(val) {\n return parseInt(val, 16);\n}\n\n// Need to handle 1.0 as 100%, since once it is a number, there is no difference between it and 1\n// \nfunction isOnePointZero(n) {\n return typeof n == \"string\" && n.indexOf('.') != -1 && parseFloat(n) === 1;\n}\n\n// Check to see if string passed in is a percentage\nfunction isPercentage(n) {\n return typeof n === \"string\" && n.indexOf('%') != -1;\n}\n\n// Force a hex value to have 2 characters\nfunction pad2(c) {\n return c.length == 1 ? '0' + c : '' + c;\n}\n\n// Replace a decimal with it's percentage value\nfunction convertToPercentage(n) {\n if (n <= 1) {\n n = (n * 100) + \"%\";\n }\n\n return n;\n}\n\n// Converts a decimal to a hex value\nfunction convertDecimalToHex(d) {\n return Math.round(parseFloat(d) * 255).toString(16);\n}\n// Converts a hex value to a decimal\nfunction convertHexToDecimal(h) {\n return (parseIntFromHex(h) / 255);\n}\n\nvar matchers = (function() {\n\n // \n var CSS_INTEGER = \"[-\\\\+]?\\\\d+%?\";\n\n // \n var CSS_NUMBER = \"[-\\\\+]?\\\\d*\\\\.\\\\d+%?\";\n\n // Allow positive/negative integer/number. Don't capture the either/or, just the entire outcome.\n var CSS_UNIT = \"(?:\" + CSS_NUMBER + \")|(?:\" + CSS_INTEGER + \")\";\n\n // Actual matching.\n // Parentheses and commas are optional, but not required.\n // Whitespace can take the place of commas or opening paren\n var PERMISSIVE_MATCH3 = \"[\\\\s|\\\\(]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")\\\\s*\\\\)?\";\n var PERMISSIVE_MATCH4 = \"[\\\\s|\\\\(]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")\\\\s*\\\\)?\";\n\n return {\n CSS_UNIT: new RegExp(CSS_UNIT),\n rgb: new RegExp(\"rgb\" + PERMISSIVE_MATCH3),\n rgba: new RegExp(\"rgba\" + PERMISSIVE_MATCH4),\n hsl: new RegExp(\"hsl\" + PERMISSIVE_MATCH3),\n hsla: new RegExp(\"hsla\" + PERMISSIVE_MATCH4),\n hsv: new RegExp(\"hsv\" + PERMISSIVE_MATCH3),\n hsva: new RegExp(\"hsva\" + PERMISSIVE_MATCH4),\n hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/\n };\n})();\n\n// `isValidCSSUnit`\n// Take in a single string / number and check to see if it looks like a CSS unit\n// (see `matchers` above for definition).\nfunction isValidCSSUnit(color) {\n return !!matchers.CSS_UNIT.exec(color);\n}\n\n// `stringInputToObject`\n// Permissive string parsing. Take in a number of formats, and output an object\n// based on detected format. Returns `{ r, g, b }` or `{ h, s, l }` or `{ h, s, v}`\nfunction stringInputToObject(color) {\n\n color = color.replace(trimLeft,'').replace(trimRight, '').toLowerCase();\n var named = false;\n if (names[color]) {\n color = names[color];\n named = true;\n }\n else if (color == 'transparent') {\n return { r: 0, g: 0, b: 0, a: 0, format: \"name\" };\n }\n\n // Try to match string input using regular expressions.\n // Keep most of the number bounding out of this function - don't worry about [0,1] or [0,100] or [0,360]\n // Just return an object and let the conversion functions handle that.\n // This way the result will be the same whether the tinycolor is initialized with string or object.\n var match;\n if ((match = matchers.rgb.exec(color))) {\n return { r: match[1], g: match[2], b: match[3] };\n }\n if ((match = matchers.rgba.exec(color))) {\n return { r: match[1], g: match[2], b: match[3], a: match[4] };\n }\n if ((match = matchers.hsl.exec(color))) {\n return { h: match[1], s: match[2], l: match[3] };\n }\n if ((match = matchers.hsla.exec(color))) {\n return { h: match[1], s: match[2], l: match[3], a: match[4] };\n }\n if ((match = matchers.hsv.exec(color))) {\n return { h: match[1], s: match[2], v: match[3] };\n }\n if ((match = matchers.hsva.exec(color))) {\n return { h: match[1], s: match[2], v: match[3], a: match[4] };\n }\n if ((match = matchers.hex8.exec(color))) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n a: convertHexToDecimal(match[4]),\n format: named ? \"name\" : \"hex8\"\n };\n }\n if ((match = matchers.hex6.exec(color))) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n format: named ? \"name\" : \"hex\"\n };\n }\n if ((match = matchers.hex4.exec(color))) {\n return {\n r: parseIntFromHex(match[1] + '' + match[1]),\n g: parseIntFromHex(match[2] + '' + match[2]),\n b: parseIntFromHex(match[3] + '' + match[3]),\n a: convertHexToDecimal(match[4] + '' + match[4]),\n format: named ? \"name\" : \"hex8\"\n };\n }\n if ((match = matchers.hex3.exec(color))) {\n return {\n r: parseIntFromHex(match[1] + '' + match[1]),\n g: parseIntFromHex(match[2] + '' + match[2]),\n b: parseIntFromHex(match[3] + '' + match[3]),\n format: named ? \"name\" : \"hex\"\n };\n }\n\n return false;\n}\n\nfunction validateWCAG2Parms(parms) {\n // return valid WCAG2 parms for isReadable.\n // If input parms are invalid, return {\"level\":\"AA\", \"size\":\"small\"}\n var level, size;\n parms = parms || {\"level\":\"AA\", \"size\":\"small\"};\n level = (parms.level || \"AA\").toUpperCase();\n size = (parms.size || \"small\").toLowerCase();\n if (level !== \"AA\" && level !== \"AAA\") {\n level = \"AA\";\n }\n if (size !== \"small\" && size !== \"large\") {\n size = \"small\";\n }\n return {\"level\":level, \"size\":size};\n}\n\n// Node: Export function\nif (typeof module !== \"undefined\" && module.exports) {\n module.exports = tinycolor;\n}\n// AMD/requirejs: Define the module\nelse if (typeof define === 'function' && define.amd) {\n define(function () {return tinycolor;});\n}\n// Browser: Expose to window\nelse {\n window.tinycolor = tinycolor;\n}\n\n})(Math);\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nvar getOwnPropertyDescriptors = Object.getOwnPropertyDescriptors ||\n function getOwnPropertyDescriptors(obj) {\n var keys = Object.keys(obj);\n var descriptors = {};\n for (var i = 0; i < keys.length; i++) {\n descriptors[keys[i]] = Object.getOwnPropertyDescriptor(obj, keys[i]);\n }\n return descriptors;\n };\n\nvar formatRegExp = /%[sdj%]/g;\nexports.format = function(f) {\n if (!isString(f)) {\n var objects = [];\n for (var i = 0; i < arguments.length; i++) {\n objects.push(inspect(arguments[i]));\n }\n return objects.join(' ');\n }\n\n var i = 1;\n var args = arguments;\n var len = args.length;\n var str = String(f).replace(formatRegExp, function(x) {\n if (x === '%%') return '%';\n if (i >= len) return x;\n switch (x) {\n case '%s': return String(args[i++]);\n case '%d': return Number(args[i++]);\n case '%j':\n try {\n return JSON.stringify(args[i++]);\n } catch (_) {\n return '[Circular]';\n }\n default:\n return x;\n }\n });\n for (var x = args[i]; i < len; x = args[++i]) {\n if (isNull(x) || !isObject(x)) {\n str += ' ' + x;\n } else {\n str += ' ' + inspect(x);\n }\n }\n return str;\n};\n\n\n// Mark that a method should not be used.\n// Returns a modified function which warns once by default.\n// If --no-deprecation is set, then it is a no-op.\nexports.deprecate = function(fn, msg) {\n if (typeof process !== 'undefined' && process.noDeprecation === true) {\n return fn;\n }\n\n // Allow for deprecating things in the process of starting up.\n if (typeof process === 'undefined') {\n return function() {\n return exports.deprecate(fn, msg).apply(this, arguments);\n };\n }\n\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (process.throwDeprecation) {\n throw new Error(msg);\n } else if (process.traceDeprecation) {\n console.trace(msg);\n } else {\n console.error(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n};\n\n\nvar debugs = {};\nvar debugEnviron;\nexports.debuglog = function(set) {\n if (isUndefined(debugEnviron))\n debugEnviron = process.env.NODE_DEBUG || '';\n set = set.toUpperCase();\n if (!debugs[set]) {\n if (new RegExp('\\\\b' + set + '\\\\b', 'i').test(debugEnviron)) {\n var pid = process.pid;\n debugs[set] = function() {\n var msg = exports.format.apply(exports, arguments);\n console.error('%s %d: %s', set, pid, msg);\n };\n } else {\n debugs[set] = function() {};\n }\n }\n return debugs[set];\n};\n\n\n/**\n * Echos the value of a value. Trys to print the value out\n * in the best way possible given the different types.\n *\n * @param {Object} obj The object to print out.\n * @param {Object} opts Optional options object that alters the output.\n */\n/* legacy: obj, showHidden, depth, colors*/\nfunction inspect(obj, opts) {\n // default options\n var ctx = {\n seen: [],\n stylize: stylizeNoColor\n };\n // legacy...\n if (arguments.length >= 3) ctx.depth = arguments[2];\n if (arguments.length >= 4) ctx.colors = arguments[3];\n if (isBoolean(opts)) {\n // legacy...\n ctx.showHidden = opts;\n } else if (opts) {\n // got an \"options\" object\n exports._extend(ctx, opts);\n }\n // set default options\n if (isUndefined(ctx.showHidden)) ctx.showHidden = false;\n if (isUndefined(ctx.depth)) ctx.depth = 2;\n if (isUndefined(ctx.colors)) ctx.colors = false;\n if (isUndefined(ctx.customInspect)) ctx.customInspect = true;\n if (ctx.colors) ctx.stylize = stylizeWithColor;\n return formatValue(ctx, obj, ctx.depth);\n}\nexports.inspect = inspect;\n\n\n// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics\ninspect.colors = {\n 'bold' : [1, 22],\n 'italic' : [3, 23],\n 'underline' : [4, 24],\n 'inverse' : [7, 27],\n 'white' : [37, 39],\n 'grey' : [90, 39],\n 'black' : [30, 39],\n 'blue' : [34, 39],\n 'cyan' : [36, 39],\n 'green' : [32, 39],\n 'magenta' : [35, 39],\n 'red' : [31, 39],\n 'yellow' : [33, 39]\n};\n\n// Don't use 'blue' not visible on cmd.exe\ninspect.styles = {\n 'special': 'cyan',\n 'number': 'yellow',\n 'boolean': 'yellow',\n 'undefined': 'grey',\n 'null': 'bold',\n 'string': 'green',\n 'date': 'magenta',\n // \"name\": intentionally not styling\n 'regexp': 'red'\n};\n\n\nfunction stylizeWithColor(str, styleType) {\n var style = inspect.styles[styleType];\n\n if (style) {\n return '\\u001b[' + inspect.colors[style][0] + 'm' + str +\n '\\u001b[' + inspect.colors[style][1] + 'm';\n } else {\n return str;\n }\n}\n\n\nfunction stylizeNoColor(str, styleType) {\n return str;\n}\n\n\nfunction arrayToHash(array) {\n var hash = {};\n\n array.forEach(function(val, idx) {\n hash[val] = true;\n });\n\n return hash;\n}\n\n\nfunction formatValue(ctx, value, recurseTimes) {\n // Provide a hook for user-specified inspect functions.\n // Check that value is an object with an inspect function on it\n if (ctx.customInspect &&\n value &&\n isFunction(value.inspect) &&\n // Filter out the util module, it's inspect function is special\n value.inspect !== exports.inspect &&\n // Also filter out any prototype objects using the circular check.\n !(value.constructor && value.constructor.prototype === value)) {\n var ret = value.inspect(recurseTimes, ctx);\n if (!isString(ret)) {\n ret = formatValue(ctx, ret, recurseTimes);\n }\n return ret;\n }\n\n // Primitive types cannot have properties\n var primitive = formatPrimitive(ctx, value);\n if (primitive) {\n return primitive;\n }\n\n // Look up the keys of the object.\n var keys = Object.keys(value);\n var visibleKeys = arrayToHash(keys);\n\n if (ctx.showHidden) {\n keys = Object.getOwnPropertyNames(value);\n }\n\n // IE doesn't make error fields non-enumerable\n // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx\n if (isError(value)\n && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) {\n return formatError(value);\n }\n\n // Some type of object without properties can be shortcutted.\n if (keys.length === 0) {\n if (isFunction(value)) {\n var name = value.name ? ': ' + value.name : '';\n return ctx.stylize('[Function' + name + ']', 'special');\n }\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n }\n if (isDate(value)) {\n return ctx.stylize(Date.prototype.toString.call(value), 'date');\n }\n if (isError(value)) {\n return formatError(value);\n }\n }\n\n var base = '', array = false, braces = ['{', '}'];\n\n // Make Array say that they are Array\n if (isArray(value)) {\n array = true;\n braces = ['[', ']'];\n }\n\n // Make functions say that they are functions\n if (isFunction(value)) {\n var n = value.name ? ': ' + value.name : '';\n base = ' [Function' + n + ']';\n }\n\n // Make RegExps say that they are RegExps\n if (isRegExp(value)) {\n base = ' ' + RegExp.prototype.toString.call(value);\n }\n\n // Make dates with properties first say the date\n if (isDate(value)) {\n base = ' ' + Date.prototype.toUTCString.call(value);\n }\n\n // Make error with message first say the error\n if (isError(value)) {\n base = ' ' + formatError(value);\n }\n\n if (keys.length === 0 && (!array || value.length == 0)) {\n return braces[0] + base + braces[1];\n }\n\n if (recurseTimes < 0) {\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n } else {\n return ctx.stylize('[Object]', 'special');\n }\n }\n\n ctx.seen.push(value);\n\n var output;\n if (array) {\n output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);\n } else {\n output = keys.map(function(key) {\n return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);\n });\n }\n\n ctx.seen.pop();\n\n return reduceToSingleString(output, base, braces);\n}\n\n\nfunction formatPrimitive(ctx, value) {\n if (isUndefined(value))\n return ctx.stylize('undefined', 'undefined');\n if (isString(value)) {\n var simple = '\\'' + JSON.stringify(value).replace(/^\"|\"$/g, '')\n .replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"') + '\\'';\n return ctx.stylize(simple, 'string');\n }\n if (isNumber(value))\n return ctx.stylize('' + value, 'number');\n if (isBoolean(value))\n return ctx.stylize('' + value, 'boolean');\n // For some reason typeof null is \"object\", so special case here.\n if (isNull(value))\n return ctx.stylize('null', 'null');\n}\n\n\nfunction formatError(value) {\n return '[' + Error.prototype.toString.call(value) + ']';\n}\n\n\nfunction formatArray(ctx, value, recurseTimes, visibleKeys, keys) {\n var output = [];\n for (var i = 0, l = value.length; i < l; ++i) {\n if (hasOwnProperty(value, String(i))) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n String(i), true));\n } else {\n output.push('');\n }\n }\n keys.forEach(function(key) {\n if (!key.match(/^\\d+$/)) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n key, true));\n }\n });\n return output;\n}\n\n\nfunction formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {\n var name, str, desc;\n desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };\n if (desc.get) {\n if (desc.set) {\n str = ctx.stylize('[Getter/Setter]', 'special');\n } else {\n str = ctx.stylize('[Getter]', 'special');\n }\n } else {\n if (desc.set) {\n str = ctx.stylize('[Setter]', 'special');\n }\n }\n if (!hasOwnProperty(visibleKeys, key)) {\n name = '[' + key + ']';\n }\n if (!str) {\n if (ctx.seen.indexOf(desc.value) < 0) {\n if (isNull(recurseTimes)) {\n str = formatValue(ctx, desc.value, null);\n } else {\n str = formatValue(ctx, desc.value, recurseTimes - 1);\n }\n if (str.indexOf('\\n') > -1) {\n if (array) {\n str = str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n').substr(2);\n } else {\n str = '\\n' + str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n');\n }\n }\n } else {\n str = ctx.stylize('[Circular]', 'special');\n }\n }\n if (isUndefined(name)) {\n if (array && key.match(/^\\d+$/)) {\n return str;\n }\n name = JSON.stringify('' + key);\n if (name.match(/^\"([a-zA-Z_][a-zA-Z_0-9]*)\"$/)) {\n name = name.substr(1, name.length - 2);\n name = ctx.stylize(name, 'name');\n } else {\n name = name.replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"')\n .replace(/(^\"|\"$)/g, \"'\");\n name = ctx.stylize(name, 'string');\n }\n }\n\n return name + ': ' + str;\n}\n\n\nfunction reduceToSingleString(output, base, braces) {\n var numLinesEst = 0;\n var length = output.reduce(function(prev, cur) {\n numLinesEst++;\n if (cur.indexOf('\\n') >= 0) numLinesEst++;\n return prev + cur.replace(/\\u001b\\[\\d\\d?m/g, '').length + 1;\n }, 0);\n\n if (length > 60) {\n return braces[0] +\n (base === '' ? '' : base + '\\n ') +\n ' ' +\n output.join(',\\n ') +\n ' ' +\n braces[1];\n }\n\n return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1];\n}\n\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\nfunction isArray(ar) {\n return Array.isArray(ar);\n}\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n return typeof arg === 'boolean';\n}\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n return arg === null;\n}\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n return typeof arg === 'string';\n}\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n return typeof arg === 'symbol';\n}\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n return isObject(re) && objectToString(re) === '[object RegExp]';\n}\nexports.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\nexports.isObject = isObject;\n\nfunction isDate(d) {\n return isObject(d) && objectToString(d) === '[object Date]';\n}\nexports.isDate = isDate;\n\nfunction isError(e) {\n return isObject(e) &&\n (objectToString(e) === '[object Error]' || e instanceof Error);\n}\nexports.isError = isError;\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n return arg === null ||\n typeof arg === 'boolean' ||\n typeof arg === 'number' ||\n typeof arg === 'string' ||\n typeof arg === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\nexports.isPrimitive = isPrimitive;\n\nexports.isBuffer = require('./support/isBuffer');\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n\n\nfunction pad(n) {\n return n < 10 ? '0' + n.toString(10) : n.toString(10);\n}\n\n\nvar months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',\n 'Oct', 'Nov', 'Dec'];\n\n// 26 Feb 16:19:34\nfunction timestamp() {\n var d = new Date();\n var time = [pad(d.getHours()),\n pad(d.getMinutes()),\n pad(d.getSeconds())].join(':');\n return [d.getDate(), months[d.getMonth()], time].join(' ');\n}\n\n\n// log is just a thin wrapper to console.log that prepends a timestamp\nexports.log = function() {\n console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));\n};\n\n\n/**\n * Inherit the prototype methods from one constructor into another.\n *\n * The Function.prototype.inherits from lang.js rewritten as a standalone\n * function (not on Function.prototype). NOTE: If this file is to be loaded\n * during bootstrapping this function needs to be rewritten using some native\n * functions as prototype setup using normal JavaScript does not work as\n * expected during bootstrapping (see mirror.js in r114903).\n *\n * @param {function} ctor Constructor function which needs to inherit the\n * prototype.\n * @param {function} superCtor Constructor function to inherit prototype from.\n */\nexports.inherits = require('inherits');\n\nexports._extend = function(origin, add) {\n // Don't do anything if add isn't an object\n if (!add || !isObject(add)) return origin;\n\n var keys = Object.keys(add);\n var i = keys.length;\n while (i--) {\n origin[keys[i]] = add[keys[i]];\n }\n return origin;\n};\n\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nvar kCustomPromisifiedSymbol = typeof Symbol !== 'undefined' ? Symbol('util.promisify.custom') : undefined;\n\nexports.promisify = function promisify(original) {\n if (typeof original !== 'function')\n throw new TypeError('The \"original\" argument must be of type Function');\n\n if (kCustomPromisifiedSymbol && original[kCustomPromisifiedSymbol]) {\n var fn = original[kCustomPromisifiedSymbol];\n if (typeof fn !== 'function') {\n throw new TypeError('The \"util.promisify.custom\" argument must be of type Function');\n }\n Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n value: fn, enumerable: false, writable: false, configurable: true\n });\n return fn;\n }\n\n function fn() {\n var promiseResolve, promiseReject;\n var promise = new Promise(function (resolve, reject) {\n promiseResolve = resolve;\n promiseReject = reject;\n });\n\n var args = [];\n for (var i = 0; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n args.push(function (err, value) {\n if (err) {\n promiseReject(err);\n } else {\n promiseResolve(value);\n }\n });\n\n try {\n original.apply(this, args);\n } catch (err) {\n promiseReject(err);\n }\n\n return promise;\n }\n\n Object.setPrototypeOf(fn, Object.getPrototypeOf(original));\n\n if (kCustomPromisifiedSymbol) Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n value: fn, enumerable: false, writable: false, configurable: true\n });\n return Object.defineProperties(\n fn,\n getOwnPropertyDescriptors(original)\n );\n}\n\nexports.promisify.custom = kCustomPromisifiedSymbol\n\nfunction callbackifyOnRejected(reason, cb) {\n // `!reason` guard inspired by bluebird (Ref: https://goo.gl/t5IS6M).\n // Because `null` is a special error value in callbacks which means \"no error\n // occurred\", we error-wrap so the callback consumer can distinguish between\n // \"the promise rejected with null\" or \"the promise fulfilled with undefined\".\n if (!reason) {\n var newReason = new Error('Promise was rejected with a falsy value');\n newReason.reason = reason;\n reason = newReason;\n }\n return cb(reason);\n}\n\nfunction callbackify(original) {\n if (typeof original !== 'function') {\n throw new TypeError('The \"original\" argument must be of type Function');\n }\n\n // We DO NOT return the promise as it gives the user a false sense that\n // the promise is actually somehow related to the callback's execution\n // and that the callback throwing will reject the promise.\n function callbackified() {\n var args = [];\n for (var i = 0; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n\n var maybeCb = args.pop();\n if (typeof maybeCb !== 'function') {\n throw new TypeError('The last argument must be of type Function');\n }\n var self = this;\n var cb = function() {\n return maybeCb.apply(self, arguments);\n };\n // In true node style we process the callback on `nextTick` with all the\n // implications (stack, `uncaughtException`, `async_hooks`)\n original.apply(this, args)\n .then(function(ret) { process.nextTick(cb, null, ret) },\n function(rej) { process.nextTick(callbackifyOnRejected, rej, cb) });\n }\n\n Object.setPrototypeOf(callbackified, Object.getPrototypeOf(original));\n Object.defineProperties(callbackified,\n getOwnPropertyDescriptors(original));\n return callbackified;\n}\nexports.callbackify = callbackify;\n","\n/**\n * Module exports.\n */\n\nmodule.exports = deprecate;\n\n/**\n * Mark that a method should not be used.\n * Returns a modified function which warns once by default.\n *\n * If `localStorage.noDeprecation = true` is set, then it is a no-op.\n *\n * If `localStorage.throwDeprecation = true` is set, then deprecated functions\n * will throw an Error when invoked.\n *\n * If `localStorage.traceDeprecation = true` is set, then deprecated functions\n * will invoke `console.trace()` instead of `console.error()`.\n *\n * @param {Function} fn - the function to deprecate\n * @param {String} msg - the string to print to the console when `fn` is invoked\n * @returns {Function} a new \"deprecated\" version of `fn`\n * @api public\n */\n\nfunction deprecate (fn, msg) {\n if (config('noDeprecation')) {\n return fn;\n }\n\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (config('throwDeprecation')) {\n throw new Error(msg);\n } else if (config('traceDeprecation')) {\n console.trace(msg);\n } else {\n console.warn(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n}\n\n/**\n * Checks `localStorage` for boolean values for the given `name`.\n *\n * @param {String} name\n * @returns {Boolean}\n * @api private\n */\n\nfunction config (name) {\n // accessing global.localStorage can trigger a DOMException in sandboxed iframes\n try {\n if (!global.localStorage) return false;\n } catch (_) {\n return false;\n }\n var val = global.localStorage[name];\n if (null == val) return false;\n return String(val).toLowerCase() === 'true';\n}\n","module.exports = function(originalModule) {\n\tif (!originalModule.webpackPolyfill) {\n\t\tvar module = Object.create(originalModule);\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"exports\", {\n\t\t\tenumerable: true\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar __DEV__ = process.env.NODE_ENV !== 'production';\n\nvar warning = function() {};\n\nif (__DEV__) {\n var printWarning = function printWarning(format, args) {\n var len = arguments.length;\n args = new Array(len > 1 ? len - 1 : 0);\n for (var key = 1; key < len; key++) {\n args[key - 1] = arguments[key];\n }\n var argIndex = 0;\n var message = 'Warning: ' +\n format.replace(/%s/g, function() {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n }\n\n warning = function(condition, format, args) {\n var len = arguments.length;\n args = new Array(len > 2 ? len - 2 : 0);\n for (var key = 2; key < len; key++) {\n args[key - 2] = arguments[key];\n }\n if (format === undefined) {\n throw new Error(\n '`warning(condition, format, ...args)` requires a warning ' +\n 'message argument'\n );\n }\n if (!condition) {\n printWarning.apply(null, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;\n","function valueOf(obj) {\n return obj.valueOf ? obj.valueOf() : Object.prototype.valueOf.call(obj);\n}\n\nfunction valueEqual(a, b) {\n // Test for strict equality first.\n if (a === b) return true;\n\n // Otherwise, if either of them == null they are not equal.\n if (a == null || b == null) return false;\n\n if (Array.isArray(a)) {\n return (\n Array.isArray(b) &&\n a.length === b.length &&\n a.every(function(item, index) {\n return valueEqual(item, b[index]);\n })\n );\n }\n\n if (typeof a === 'object' || typeof b === 'object') {\n var aValue = valueOf(a);\n var bValue = valueOf(b);\n\n if (aValue !== a || bValue !== b) return valueEqual(aValue, bValue);\n\n return Object.keys(Object.assign({}, a, b)).every(function(key) {\n return valueEqual(a[key], b[key]);\n });\n }\n\n return false;\n}\n\nexport default valueEqual;\n"],"sourceRoot":""}