{"version":3,"sources":["webpack:///./node_modules/vue-clip/dist/vue-clip.js"],"names":["factory","modules","installedModules","__webpack_require__","moduleId","exports","module","id","loaded","call","m","c","p","Object","defineProperty","value","obj","_index","_index2","__esModule","default","VueClip","install","Vue","component","window","use","global","Math","self","Function","__g","get","a","anObject","IE8_DOM_DEFINE","toPrimitive","dP","f","O","P","Attributes","e","TypeError","IObject","defined","it","hasOwnProperty","key","isObject","exec","$keys","enumBugKeys","keys","px","random","concat","undefined","toString","core","version","__e","split","createDesc","object","propertyIsEnumerable","bitmap","enumerable","configurable","writable","store","S","fn","val","valueOf","LIBRARY","wksExt","name","$Symbol","Symbol","charAt","uid","USE_SYMBOL","slice","document","is","createElement","hiddenKeys","getOwnPropertyNames","getOwnPropertySymbols","has","toIObject","arrayIndexOf","IE_PROTO","names","i","result","push","length","shared","ceil","floor","isNaN","webpackPolyfill","deprecate","paths","children","_createClass","defineProperties","target","props","descriptor","Constructor","protoProps","staticProps","prototype","File","file","instance","_classCallCheck","this","_file","status","width","height","bytesSent","upload","progress","total","type","size","dataUrl","xhrResponse","customAttributes","errorMessage","response","_dropzone","_dropzone2","autoDiscover","Uploader","options","_options","_existingInit","init","_hooks","_uploader","_this","bind","forEach","hook","on","event","callback","domElem","_bindHooks","disable","removeFile","addFile","cancelQueued","removeAllFiles","_Uploader2","_interopRequireDefault","_File2","_lodash2","_symbol2","uploaderClass","String","onAddedFile","onRemovedFile","onSending","onDragEnter","onDragLeave","onDrop","onTotalProgress","onQueueComplete","onMaxFiles","onInit","onComplete","data","files","dragCounter","uploader","mounted","accept","done","previewTemplate","$refs","innerHTML","_ref","blobId","getFile","maxFiles","_options$maxFiles","limit","message","dictMaxFilesExceeded","maxFilesize","_options$maxFilesize","_limit","_message","dictFileTooBig","acceptedFiles","Array","_options$acceptedFile","extensions","_message2","join","dictInvalidFileType","bindEvents","mount","$el","firstElementChild","methods","addedFile","removedFile","sending","complete","error","uploadProgress","thumbnail","drop","dragEnter","dragLeave","totalUploadProgress","maxFilesExceeded","queueComplete","matchedFile","fileId","_ref2","fileInstance","updateStatus","_ref3","xhr","formData","_ref4","_ref4$xhr","updateXhrResponse","responseText","statusCode","_ref5","updateErrorMessage","_ref6","updateProgress","updateBytesSent","_ref7","updateDataUrl","preventDefault","apply","arguments","_ref8","toLength","toIndex","IS_INCLUDES","$this","el","fromIndex","index","aFunction","that","b","getKeys","gOPS","pIE","getSymbols","symbols","isEnum","ctx","hide","$export","source","own","out","IS_FORCED","F","IS_GLOBAL","G","IS_STATIC","IS_PROTO","IS_BIND","B","IS_WRAP","W","expProto","C","virtual","R","U","documentElement","cof","isArray","arg","META","setDesc","isExtensible","FREEZE","preventExtensions","setMeta","w","meta","KEY","NEED","fastKey","create","getWeak","onFreeze","dPs","Empty","createDict","iframeDocument","iframe","style","display","appendChild","src","contentWindow","open","write","lt","close","Properties","gOPD","getOwnPropertyDescriptor","gOPN","windowNames","getWindowNames","def","TAG","tag","stat","toInteger","max","min","DESCRIPTORS","redefine","$fails","setToStringTag","wks","wksDefine","keyOf","enumKeys","_create","gOPNExt","$GOPD","$DP","$JSON","JSON","_stringify","stringify","HIDDEN","TO_PRIMITIVE","SymbolRegistry","AllSymbols","OPSymbols","ObjectProto","USE_NATIVE","QObject","setter","findChild","setSymbolDesc","D","protoDesc","wrap","sym","_k","isSymbol","iterator","$defineProperty","$defineProperties","l","$propertyIsEnumerable","E","$getOwnPropertyDescriptor","$getOwnPropertyNames","$getOwnPropertySymbols","IS_OP","$set","set","keyFor","useSetter","useSimple","replacer","$replacer","args","Dropzone","Emitter","camelize","contentLoaded","detectVerticalSquash","drawImageIOSFix","noop","without","__slice","__hasProp","addEventListener","_callbacks","emit","callbacks","_i","_len","removeListener","off","removeAllListeners","removeEventListener","splice","_super","extend","resolveOption","element","elementOptions","fallback","defaultOptions","replace","clickableElements","listeners","querySelector","nodeType","Error","dropzone","instances","optionsForElement","forceFallback","isBrowserSupported","url","getAttribute","acceptedMimeTypes","method","toUpperCase","getExistingFallback","parentNode","removeChild","previewsContainer","getElement","clickable","getElements","child","parent","ctor","constructor","__super__","__extends","events","withCredentials","parallelUploads","uploadMultiple","paramName","createImageThumbnails","maxThumbnailFilesize","thumbnailWidth","thumbnailHeight","filesizeBase","params","ignoreHiddenFiles","autoProcessQueue","autoQueue","addRemoveLinks","hiddenInputContainer","capture","renameFilename","dictDefaultMessage","dictFallbackMessage","dictFallbackText","dictResponseError","dictCancelUpload","dictCancelUploadConfirmation","dictRemoveFile","dictRemoveFileConfirmation","messageElement","span","className","getElementsByTagName","test","textContent","innerText","getFallbackForm","resize","info","srcRatio","trgRatio","srcX","srcY","srcWidth","srcHeight","optWidth","optHeight","trgHeight","trgWidth","classList","remove","dragstart","dragend","dragenter","add","dragover","dragleave","paste","reset","addedfile","removeFileEvent","removeLink","_j","_len1","_len2","_ref1","_results","previewElement","trim","querySelectorAll","_renameFilename","filesize","_removeLink","stopPropagation","UPLOADING","confirm","removedfile","_updateMaxFilesReachedClass","thumbnailElement","alt","setTimeout","node","errormultiple","processing","processingmultiple","uploadprogress","nodeName","totaluploadprogress","sendingmultiple","success","successmultiple","canceled","canceledmultiple","completemultiple","maxfilesexceeded","maxfilesreached","queuecomplete","addedfiles","objects","getAcceptedFiles","accepted","getRejectedFiles","getFilesWithStatus","getQueuedFiles","QUEUED","getUploadingFiles","getAddedFiles","ADDED","getActiveFiles","eventName","noPropagation","setupHiddenFileInput","tagName","setAttribute","contains","hiddenFileInput","visibility","position","top","left","URL","webkitURL","updateTotalUploadProgress","returnValue","efct","dataTransfer","effectAllowed","_error","dropEffect","clickableElement","evt","elementInside","click","enable","destroy","indexOf","totalBytes","totalBytesSent","_getParamName","n","existingFallback","fields","fieldsString","form","getFallback","elements","setupEventListeners","elementListeners","listener","_results1","removeEventListeners","cancelUpload","selectedSize","selectedUnit","unit","units","pow","round","items","webkitGetAsEntry","_addFilesFromItems","handleFiles","clipboardData","entry","item","isFile","getAsFile","isDirectory","_addFilesFromDirectory","kind","directory","path","dirReader","errorHandler","readEntries","createReader","console","log","entries","substring","fullPath","isValidFile","_enqueueThumbnail","_errorProcessing","enqueueFile","enqueueFiles","processQueue","_thumbnailQueue","_processingThumbnail","match","_processThumbnailQueue","createThumbnail","shift","cancelIfNecessary","fileReader","FileReader","onload","createThumbnailFromUrl","readAsDataURL","imageUrl","crossOrigin","img","canvas","resizeInfo","getContext","trgX","trgY","toDataURL","onerror","processingLength","queuedFiles","processFiles","processFile","uploadFiles","_getFilesWithXhr","groupedFile","groupedFiles","CANCELED","abort","option","uploadFile","handleError","headerName","headerValue","headers","input","inputName","inputType","_l","_len3","_m","XMLHttpRequest","allFilesFinished","readyState","getResponseHeader","parse","_finished","onprogress","setRequestHeader","FormData","append","hasAttribute","selected","toLowerCase","checked","submitRequest","send","SUCCESS","ERROR","forElement","discover","checkElements","dropzones","blacklistedBrowsers","capableBrowser","FileList","Blob","navigator","userAgent","list","rejectedItem","str","string","div","childNodes","container","els","question","rejected","baseMimeType","mimeType","validType","jQuery","each","ACCEPTED","PROCESSING","ey","ih","py","ratio","sy","naturalWidth","naturalHeight","drawImage","getImageData","sx","sw","sh","dx","dy","dw","dh","vertSquashRatio","win","doc","poll","pre","rem","root","doScroll","createEventObject","frameElement","_autoDiscoverFunction","argsTag","funcTag","genTag","mapTag","setTag","reFlags","reIsHostCtor","reIsUint","cloneableTags","freeGlobal","freeSelf","freeExports","freeModule","moduleExports","addMapEntry","map","pair","addSetEntry","arrayReduce","array","iteratee","accumulator","initAccum","isHostObject","mapToArray","overArg","func","transform","setToArray","arrayProto","funcProto","objectProto","coreJsData","maskSrcKey","funcToString","objectToString","reIsNative","RegExp","Buffer","Uint8Array","getPrototype","getPrototypeOf","objectCreate","nativeGetSymbols","nativeIsBuffer","isBuffer","nativeKeys","DataView","getNative","Map","Promise","Set","WeakMap","nativeCreate","dataViewCtorString","toSource","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","symbolProto","symbolValueOf","Hash","clear","ListCache","MapCache","Stack","__data__","arrayLikeKeys","inherited","isObjectLike","isArrayLike","isArrayLikeObject","isArguments","baseTimes","skipIndexes","isIndex","assignValue","objValue","eq","assocIndexOf","baseClone","isDeep","isFull","customizer","stack","isArr","initCloneArray","copyArray","getTag","isFunc","buffer","copy","cloneBuffer","isPrototype","proto","initCloneObject","copyObject","copySymbols","baseAssign","cloneFunc","symbol","Ctor","cloneArrayBuffer","dataView","byteOffset","byteLength","cloneDataView","typedArray","cloneTypedArray","cloneMap","regexp","lastIndex","cloneRegExp","cloneSet","initCloneByTag","stacked","keysFunc","symbolsFunc","values","offset","arrayPush","baseGetAllKeys","getAllKeys","arrayEach","subValue","baseIsNative","isFunction","arrayBuffer","newValue","getMapData","getValue","pop","cache","pairs","LARGE_ARRAY_SIZE","other","ArrayBuffer","resolve","ctorString","isLength","baseKeys"],"mappings":"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","file":"assets/js/chunk-2d0e17d2.c5339bad.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse {\n\t\tvar a = factory();\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _index = __webpack_require__(33);\n\t\n\tvar _index2 = _interopRequireDefault(_index);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tvar VueClip = {\n\t install: function install(Vue) {\n\t Vue.component('vue-clip', _index2.default);\n\t }\n\t};\n\t\n\t/**\n\t * When required globally\n\t */\n\tif (typeof window !== 'undefined' && typeof window.Vue !== 'undefined') {\n\t window.Vue.use(VueClip);\n\t}\n\t\n\texports.default = VueClip;\n\n/***/ },\n/* 1 */\n/***/ function(module, exports) {\n\n\t// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\n\tvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n\t ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')();\n\tif(typeof __g == 'number')__g = global; // eslint-disable-line no-undef\n\n/***/ },\n/* 2 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// Thank's IE8 for his funny defineProperty\n\tmodule.exports = !__webpack_require__(7)(function(){\n\t return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7;\n\t});\n\n/***/ },\n/* 3 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar anObject = __webpack_require__(6)\n\t , IE8_DOM_DEFINE = __webpack_require__(22)\n\t , toPrimitive = __webpack_require__(17)\n\t , dP = Object.defineProperty;\n\t\n\texports.f = __webpack_require__(2) ? Object.defineProperty : function defineProperty(O, P, Attributes){\n\t anObject(O);\n\t P = toPrimitive(P, true);\n\t anObject(Attributes);\n\t if(IE8_DOM_DEFINE)try {\n\t return dP(O, P, Attributes);\n\t } catch(e){ /* empty */ }\n\t if('get' in Attributes || 'set' in Attributes)throw TypeError('Accessors not supported!');\n\t if('value' in Attributes)O[P] = Attributes.value;\n\t return O;\n\t};\n\n/***/ },\n/* 4 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// to indexed object, toObject with fallback for non-array-like ES3 strings\n\tvar IObject = __webpack_require__(43)\n\t , defined = __webpack_require__(39);\n\tmodule.exports = function(it){\n\t return IObject(defined(it));\n\t};\n\n/***/ },\n/* 5 */\n/***/ function(module, exports) {\n\n\tvar hasOwnProperty = {}.hasOwnProperty;\n\tmodule.exports = function(it, key){\n\t return hasOwnProperty.call(it, key);\n\t};\n\n/***/ },\n/* 6 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar isObject = __webpack_require__(8);\n\tmodule.exports = function(it){\n\t if(!isObject(it))throw TypeError(it + ' is not an object!');\n\t return it;\n\t};\n\n/***/ },\n/* 7 */\n/***/ function(module, exports) {\n\n\tmodule.exports = function(exec){\n\t try {\n\t return !!exec();\n\t } catch(e){\n\t return true;\n\t }\n\t};\n\n/***/ },\n/* 8 */\n/***/ function(module, exports) {\n\n\tmodule.exports = function(it){\n\t return typeof it === 'object' ? it !== null : typeof it === 'function';\n\t};\n\n/***/ },\n/* 9 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 19.1.2.14 / 15.2.3.14 Object.keys(O)\n\tvar $keys = __webpack_require__(26)\n\t , enumBugKeys = __webpack_require__(12);\n\t\n\tmodule.exports = Object.keys || function keys(O){\n\t return $keys(O, enumBugKeys);\n\t};\n\n/***/ },\n/* 10 */\n/***/ function(module, exports) {\n\n\tvar id = 0\n\t , px = Math.random();\n\tmodule.exports = function(key){\n\t return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n\t};\n\n/***/ },\n/* 11 */\n/***/ function(module, exports) {\n\n\tvar core = module.exports = {version: '2.4.0'};\n\tif(typeof __e == 'number')__e = core; // eslint-disable-line no-undef\n\n/***/ },\n/* 12 */\n/***/ function(module, exports) {\n\n\t// IE 8- don't enum bug keys\n\tmodule.exports = (\n\t 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n\t).split(',');\n\n/***/ },\n/* 13 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar dP = __webpack_require__(3)\n\t , createDesc = __webpack_require__(15);\n\tmodule.exports = __webpack_require__(2) ? function(object, key, value){\n\t return dP.f(object, key, createDesc(1, value));\n\t} : function(object, key, value){\n\t object[key] = value;\n\t return object;\n\t};\n\n/***/ },\n/* 14 */\n/***/ function(module, exports) {\n\n\texports.f = {}.propertyIsEnumerable;\n\n/***/ },\n/* 15 */\n/***/ function(module, exports) {\n\n\tmodule.exports = function(bitmap, value){\n\t return {\n\t enumerable : !(bitmap & 1),\n\t configurable: !(bitmap & 2),\n\t writable : !(bitmap & 4),\n\t value : value\n\t };\n\t};\n\n/***/ },\n/* 16 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar global = __webpack_require__(1)\n\t , SHARED = '__core-js_shared__'\n\t , store = global[SHARED] || (global[SHARED] = {});\n\tmodule.exports = function(key){\n\t return store[key] || (store[key] = {});\n\t};\n\n/***/ },\n/* 17 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 7.1.1 ToPrimitive(input [, PreferredType])\n\tvar isObject = __webpack_require__(8);\n\t// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n\t// and the second argument - flag - preferred type is a string\n\tmodule.exports = function(it, S){\n\t if(!isObject(it))return it;\n\t var fn, val;\n\t if(S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val;\n\t if(typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it)))return val;\n\t if(!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val;\n\t throw TypeError(\"Can't convert object to primitive value\");\n\t};\n\n/***/ },\n/* 18 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar global = __webpack_require__(1)\n\t , core = __webpack_require__(11)\n\t , LIBRARY = __webpack_require__(23)\n\t , wksExt = __webpack_require__(29)\n\t , defineProperty = __webpack_require__(3).f;\n\tmodule.exports = function(name){\n\t var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});\n\t if(name.charAt(0) != '_' && !(name in $Symbol))defineProperty($Symbol, name, {value: wksExt.f(name)});\n\t};\n\n/***/ },\n/* 19 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar store = __webpack_require__(16)('wks')\n\t , uid = __webpack_require__(10)\n\t , Symbol = __webpack_require__(1).Symbol\n\t , USE_SYMBOL = typeof Symbol == 'function';\n\t\n\tvar $exports = module.exports = function(name){\n\t return store[name] || (store[name] =\n\t USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n\t};\n\t\n\t$exports.store = store;\n\n/***/ },\n/* 20 */\n/***/ function(module, exports) {\n\n\tvar toString = {}.toString;\n\t\n\tmodule.exports = function(it){\n\t return toString.call(it).slice(8, -1);\n\t};\n\n/***/ },\n/* 21 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar isObject = __webpack_require__(8)\n\t , document = __webpack_require__(1).document\n\t // in old IE typeof document.createElement is 'object'\n\t , is = isObject(document) && isObject(document.createElement);\n\tmodule.exports = function(it){\n\t return is ? document.createElement(it) : {};\n\t};\n\n/***/ },\n/* 22 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = !__webpack_require__(2) && !__webpack_require__(7)(function(){\n\t return Object.defineProperty(__webpack_require__(21)('div'), 'a', {get: function(){ return 7; }}).a != 7;\n\t});\n\n/***/ },\n/* 23 */\n/***/ function(module, exports) {\n\n\tmodule.exports = true;\n\n/***/ },\n/* 24 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)\n\tvar $keys = __webpack_require__(26)\n\t , hiddenKeys = __webpack_require__(12).concat('length', 'prototype');\n\t\n\texports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O){\n\t return $keys(O, hiddenKeys);\n\t};\n\n/***/ },\n/* 25 */\n/***/ function(module, exports) {\n\n\texports.f = Object.getOwnPropertySymbols;\n\n/***/ },\n/* 26 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar has = __webpack_require__(5)\n\t , toIObject = __webpack_require__(4)\n\t , arrayIndexOf = __webpack_require__(37)(false)\n\t , IE_PROTO = __webpack_require__(27)('IE_PROTO');\n\t\n\tmodule.exports = function(object, names){\n\t var O = toIObject(object)\n\t , i = 0\n\t , result = []\n\t , key;\n\t for(key in O)if(key != IE_PROTO)has(O, key) && result.push(key);\n\t // Don't enum bug & hidden keys\n\t while(names.length > i)if(has(O, key = names[i++])){\n\t ~arrayIndexOf(result, key) || result.push(key);\n\t }\n\t return result;\n\t};\n\n/***/ },\n/* 27 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar shared = __webpack_require__(16)('keys')\n\t , uid = __webpack_require__(10);\n\tmodule.exports = function(key){\n\t return shared[key] || (shared[key] = uid(key));\n\t};\n\n/***/ },\n/* 28 */\n/***/ function(module, exports) {\n\n\t// 7.1.4 ToInteger\n\tvar ceil = Math.ceil\n\t , floor = Math.floor;\n\tmodule.exports = function(it){\n\t return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n\t};\n\n/***/ },\n/* 29 */\n/***/ function(module, exports, __webpack_require__) {\n\n\texports.f = __webpack_require__(19);\n\n/***/ },\n/* 30 */\n/***/ function(module, exports) {\n\n\tmodule.exports = function(module) {\r\n\t\tif(!module.webpackPolyfill) {\r\n\t\t\tmodule.deprecate = function() {};\r\n\t\t\tmodule.paths = [];\r\n\t\t\t// module.parent = undefined by default\r\n\t\t\tmodule.children = [];\r\n\t\t\tmodule.webpackPolyfill = 1;\r\n\t\t}\r\n\t\treturn module;\r\n\t}\r\n\n\n/***/ },\n/* 31 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tvar File = function () {\n\t function File(file) {\n\t _classCallCheck(this, File);\n\t\n\t this._file = file;\n\t this.status = file.status;\n\t this.name = file.name;\n\t this.width = file.width;\n\t this.height = file.height;\n\t this.bytesSent = file.upload.bytesSent || 0;\n\t this.progress = file.upload.progress || 0;\n\t this.total = file.upload.total;\n\t this.type = file.type;\n\t this.size = file.size;\n\t this.dataUrl = '';\n\t this.xhrResponse = {};\n\t this.customAttributes = {};\n\t this.errorMessage = '';\n\t }\n\t\n\t _createClass(File, [{\n\t key: 'updateDataUrl',\n\t value: function updateDataUrl(dataUrl) {\n\t this.dataUrl = dataUrl;\n\t }\n\t }, {\n\t key: 'updateStatus',\n\t value: function updateStatus(status) {\n\t this.status = status;\n\t }\n\t }, {\n\t key: 'updateProgress',\n\t value: function updateProgress(progress) {\n\t this.progress = progress;\n\t }\n\t }, {\n\t key: 'updateBytesSent',\n\t value: function updateBytesSent(bytesSent) {\n\t this.bytesSent = bytesSent;\n\t }\n\t }, {\n\t key: 'updateXhrResponse',\n\t value: function updateXhrResponse(response) {\n\t this.xhrResponse = response;\n\t }\n\t }, {\n\t key: 'updateErrorMessage',\n\t value: function updateErrorMessage(errorMessage) {\n\t this.errorMessage = errorMessage;\n\t }\n\t }, {\n\t key: 'addAttribute',\n\t value: function addAttribute(key, value) {\n\t this.customAttributes[key] = value;\n\t }\n\t }]);\n\t\n\t return File;\n\t}();\n\t\n\texports.default = File;\n\n/***/ },\n/* 32 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\t\n\tvar _dropzone = __webpack_require__(59);\n\t\n\tvar _dropzone2 = _interopRequireDefault(_dropzone);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\t_dropzone2.default.autoDiscover = false;\n\t\n\tvar Uploader = function () {\n\t function Uploader(options) {\n\t _classCallCheck(this, Uploader);\n\t\n\t this._options = options || {};\n\t this._existingInit = this._options.init || function () {};\n\t this._hooks = [];\n\t this._uploader = null;\n\t }\n\t\n\t /**\n\t * Bind hooks to the uploader instance. Also\n\t * makes sure to call the options init if\n\t * defined.\n\t *\n\t * @private\n\t */\n\t\n\t\n\t _createClass(Uploader, [{\n\t key: '_bindHooks',\n\t value: function _bindHooks(self) {\n\t var _this = this;\n\t\n\t self._existingInit.bind(this)();\n\t self._hooks.forEach(function (hook) {\n\t _this.on(hook.event, hook.callback);\n\t });\n\t self._hooks = [];\n\t }\n\t\n\t /**\n\t * Mounts uploader to the DOM\n\t *\n\t * @param {DOMElement} domElem\n\t */\n\t\n\t }, {\n\t key: 'mount',\n\t value: function mount(domElem) {\n\t var self = this;\n\t this._options.init = function () {\n\t self._bindHooks.bind(this)(self);\n\t };\n\t this._uploader = new _dropzone2.default(domElem, this._options);\n\t }\n\t\n\t /**\n\t * Binds a hook listener\n\t *\n\t * @param {String} event\n\t * @param {Function} callback\n\t */\n\t\n\t }, {\n\t key: 'on',\n\t value: function on(event, callback) {\n\t this._hooks.push({ event: event, callback: callback });\n\t }\n\t\n\t /**\n\t * Removes all listeners and dom bindings.\n\t */\n\t\n\t }, {\n\t key: 'destroy',\n\t value: function destroy() {\n\t this._uploader.disable();\n\t }\n\t\n\t /**\n\t * Remove file from the uploader\n\t *\n\t * @param {Object} file\n\t */\n\t\n\t }, {\n\t key: 'removeFile',\n\t value: function removeFile(file) {\n\t this._uploader.removeFile(file);\n\t }\n\t\n\t /**\n\t * Add native file object to dropzone\n\t *\n\t * @param {Object} file\n\t */\n\t\n\t }, {\n\t key: 'addFile',\n\t value: function addFile(file) {\n\t this._uploader.addFile(file);\n\t }\n\t\n\t /**\n\t * Remove all files\n\t *\n\t * @param {Boolean} [cancelQueued]\n\t */\n\t\n\t }, {\n\t key: 'removeAllFiles',\n\t value: function removeAllFiles(cancelQueued) {\n\t this._uploader.removeAllFiles(cancelQueued);\n\t }\n\t }]);\n\t\n\t return Uploader;\n\t}();\n\t\n\texports.default = Uploader;\n\n/***/ },\n/* 33 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\t/*\n\t * vue-clip\n\t *\n\t * (c) Harminder Virk \n\t *\n\t * For the full copyright and license information, please view the LICENSE\n\t * file that was distributed with this source code.\n\t*/\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _Uploader = __webpack_require__(32);\n\t\n\tvar _Uploader2 = _interopRequireDefault(_Uploader);\n\t\n\tvar _File = __webpack_require__(31);\n\t\n\tvar _File2 = _interopRequireDefault(_File);\n\t\n\tvar _lodash = __webpack_require__(60);\n\t\n\tvar _lodash2 = _interopRequireDefault(_lodash);\n\t\n\tvar _symbol = __webpack_require__(34);\n\t\n\tvar _symbol2 = _interopRequireDefault(_symbol);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tvar component = {};\n\t\n\tcomponent.template = '
\\n 0\">\\n \\n
\\n
';\n\t\n\t// DEFINING PROPS\n\tcomponent.props = {};\n\t\n\t/**\n\t * css class to be placed on action button parent div.\n\t * clip component sets its display to inline-block,\n\t * which may cause issues and this class can be\n\t * used to override it's styles.\n\t *\n\t * @type {Object}\n\t */\n\tcomponent.props.uploaderClass = {\n\t type: String\n\t};\n\t\n\t/**\n\t * Uploader options, majority of options\n\t * are based of dropzone. Check docs\n\t * for more insights.\n\t *\n\t * @type {Object}\n\t */\n\tcomponent.props.options = {\n\t type: Object,\n\t default: function _default() {\n\t return {};\n\t }\n\t};\n\t\n\tcomponent.props.onAddedFile = {\n\t type: Function,\n\t default: function _default() {\n\t return function () {};\n\t }\n\t};\n\t\n\tcomponent.props.onRemovedFile = {\n\t type: Function,\n\t default: function _default() {\n\t return function () {};\n\t }\n\t};\n\t\n\tcomponent.props.onSending = {\n\t type: Function,\n\t default: function _default() {\n\t return function () {};\n\t }\n\t};\n\t\n\tcomponent.props.onDragEnter = {\n\t type: Function,\n\t default: function _default() {\n\t return function () {};\n\t }\n\t};\n\t\n\tcomponent.props.onDragLeave = {\n\t type: Function,\n\t default: function _default() {\n\t return function () {};\n\t }\n\t};\n\t\n\tcomponent.props.onDrop = {\n\t type: Function,\n\t default: function _default() {\n\t return function () {};\n\t }\n\t};\n\t\n\tcomponent.props.onTotalProgress = {\n\t type: Function,\n\t default: function _default() {\n\t return function () {};\n\t }\n\t};\n\t\n\tcomponent.props.onQueueComplete = {\n\t type: Function,\n\t default: function _default() {\n\t return function () {};\n\t }\n\t};\n\t\n\tcomponent.props.onMaxFiles = {\n\t type: Function,\n\t default: function _default() {\n\t return function () {};\n\t }\n\t};\n\t\n\tcomponent.props.onInit = {\n\t type: Function,\n\t default: function _default() {\n\t return function () {};\n\t }\n\t};\n\t\n\tcomponent.props.onComplete = {\n\t type: Function,\n\t default: function _default() {\n\t return function () {};\n\t }\n\t};\n\t\n\t// COMPONENT DATA\n\tcomponent.data = function () {\n\t return {\n\t files: [],\n\t dragCounter: 0,\n\t uploader: null\n\t };\n\t};\n\t\n\t// LIFECYCLE HOOKS\n\tcomponent.mounted = function () {\n\t var _this = this;\n\t\n\t var options = (0, _lodash2.default)(this.options);\n\t var accept = options.accept || function (file, done) {\n\t done();\n\t };\n\t\n\t /**\n\t * Overriding properties of the options object\n\t */\n\t options.previewTemplate = this.$refs['clip-preview-template'].innerHTML;\n\t options.accept = function (_ref, done) {\n\t var blobId = _ref.blobId;\n\t\n\t accept(_this.getFile(blobId), done);\n\t };\n\t\n\t if (typeof options.maxFiles !== 'undefined' && options.maxFiles instanceof Object === true) {\n\t var _options$maxFiles = options.maxFiles,\n\t limit = _options$maxFiles.limit,\n\t message = _options$maxFiles.message;\n\t\n\t options.maxFiles = limit;\n\t options.dictMaxFilesExceeded = message;\n\t }\n\t\n\t if (typeof options.maxFilesize !== 'undefined' && options.maxFilesize instanceof Object === true) {\n\t var _options$maxFilesize = options.maxFilesize,\n\t _limit = _options$maxFilesize.limit,\n\t _message = _options$maxFilesize.message;\n\t\n\t options.maxFilesize = _limit;\n\t options.dictFileTooBig = _message;\n\t }\n\t\n\t if (typeof options.acceptedFiles !== 'undefined' && options.acceptedFiles instanceof Object === true && options.acceptedFiles instanceof Array === false) {\n\t var _options$acceptedFile = options.acceptedFiles,\n\t extensions = _options$acceptedFile.extensions,\n\t _message2 = _options$acceptedFile.message;\n\t\n\t options.acceptedFiles = extensions.join(',');\n\t options.dictInvalidFileType = _message2;\n\t }\n\t\n\t /**\n\t * Instantiating uploader\n\t */\n\t this.uploader = new _Uploader2.default(options);\n\t this.bindEvents();\n\t this.uploader.mount(this.$el.firstElementChild);\n\t this.onInit(this);\n\t};\n\t\n\t// DEFINING METHODS\n\tcomponent.methods = {};\n\t\n\t/**\n\t * Listening for uploader events.\n\t *\n\t * @param {Object}\n\t */\n\tcomponent.methods.bindEvents = function () {\n\t this.uploader.on('addedfile', this.addedFile.bind(this));\n\t this.uploader.on('removedfile', this.removedFile.bind(this));\n\t this.uploader.on('sending', this.sending.bind(this));\n\t this.uploader.on('complete', this.complete.bind(this));\n\t this.uploader.on('error', this.error.bind(this));\n\t this.uploader.on('uploadprogress', this.uploadProgress.bind(this));\n\t this.uploader.on('thumbnail', this.thumbnail.bind(this));\n\t this.uploader.on('drop', this.drop.bind(this));\n\t this.uploader.on('dragenter', this.dragEnter.bind(this));\n\t this.uploader.on('dragleave', this.dragLeave.bind(this));\n\t this.uploader.on('totaluploadprogress', this.totalUploadProgress.bind(this));\n\t this.uploader.on('maxfilesexceeded', this.maxFilesExceeded.bind(this));\n\t this.uploader.on('queuecomplete', this.queueComplete.bind(this));\n\t};\n\t\n\t/**\n\t * Returns file instance of a unique file id or\n\t * an empty object\n\t *\n\t * @param {Symbol} blobId\n\t *\n\t * @return {Object}\n\t */\n\tcomponent.methods.getFile = function (blobId) {\n\t var matchedFile = {};\n\t this.files.forEach(function (file) {\n\t if (file._file.blobId === blobId) {\n\t matchedFile = file;\n\t }\n\t });\n\t return matchedFile;\n\t};\n\t\n\t/**\n\t * Adds file to the list of local files object\n\t * with a unique symbol key. Same is required\n\t * for update the file object to keep it\n\t * reactive.\n\t *\n\t * Also invokes the onAddedFile prop.\n\t *\n\t * @param {Object} file\n\t */\n\tcomponent.methods.addedFile = function (file) {\n\t var fileId = (0, _symbol2.default)();\n\t file.blobId = fileId;\n\t this.files.push(new _File2.default(file));\n\t this.onAddedFile(this.getFile(fileId));\n\t};\n\t\n\t/**\n\t * Removes the file from the files list and invokes\n\t * the onRemovedFile prop\n\t *\n\t * @param {Symbol} options.blobId\n\t */\n\tcomponent.methods.removedFile = function (_ref2) {\n\t var blobId = _ref2.blobId;\n\t\n\t var fileInstance = this.getFile(blobId);\n\t fileInstance.updateStatus('removed');\n\t this.onRemovedFile(fileInstance);\n\t};\n\t\n\t/**\n\t * Listens for sending event and calls onSending\n\t * prop\n\t *\n\t * @param {Symbol} options.blobId\n\t * @param {Object} xhr\n\t * @param {Object} formData\n\t */\n\tcomponent.methods.sending = function (_ref3, xhr, formData) {\n\t var blobId = _ref3.blobId;\n\t\n\t var fileInstance = this.getFile(blobId);\n\t this.onSending(fileInstance, xhr, formData);\n\t};\n\t\n\t/**\n\t * Updates the file status on completion\n\t *\n\t * @param {Symbol} options.blobId\n\t * @param {String} options.status\n\t */\n\tcomponent.methods.complete = function (_ref4) {\n\t var blobId = _ref4.blobId,\n\t status = _ref4.status,\n\t _ref4$xhr = _ref4.xhr,\n\t xhr = _ref4$xhr === undefined ? {} : _ref4$xhr;\n\t\n\t var fileInstance = this.getFile(blobId);\n\t fileInstance.updateStatus(status);\n\t fileInstance.updateXhrResponse({\n\t response: xhr.response,\n\t responseText: xhr.responseText,\n\t statusCode: xhr.status\n\t });\n\t this.onComplete(fileInstance, status, xhr);\n\t};\n\t\n\t/**\n\t * Update the file error message to be used for\n\t * displaying the error\n\t *\n\t * @param {Symbol} options.blobId\n\t * @param {String} options.status\n\t * @param {String} errorMessage\n\t */\n\tcomponent.methods.error = function (_ref5, errorMessage) {\n\t var blobId = _ref5.blobId,\n\t status = _ref5.status;\n\t\n\t var fileInstance = this.getFile(blobId);\n\t fileInstance.updateStatus(status);\n\t fileInstance.updateErrorMessage(errorMessage);\n\t};\n\t\n\t/**\n\t * Updates file progress and bytes sent\n\t *\n\t * @param {Symbol} options.blobId\n\t * @param {Number} progress\n\t * @param {Number} bytesSent\n\t */\n\tcomponent.methods.uploadProgress = function (_ref6, progress, bytesSent) {\n\t var blobId = _ref6.blobId;\n\t\n\t var fileInstance = this.getFile(blobId);\n\t fileInstance.updateProgress(progress);\n\t fileInstance.updateBytesSent(bytesSent);\n\t};\n\t\n\t/**\n\t * Updates file thumbnail, only in case of image uploads\n\t *\n\t * @param {Symbol} options.blobId\n\t * @param {String} dataUrl\n\t */\n\tcomponent.methods.thumbnail = function (_ref7, dataUrl) {\n\t var blobId = _ref7.blobId;\n\t\n\t var fileInstance = this.getFile(blobId);\n\t fileInstance.updateDataUrl(dataUrl);\n\t};\n\t\n\t/**\n\t * Listen for drop event and call onDrop\n\t * and onDragLeave prop.\n\t */\n\tcomponent.methods.drop = function () {\n\t this.dragCounter = 0;\n\t this.onDrop();\n\t this.onDragLeave();\n\t};\n\t\n\t/**\n\t * Listen for dragenter event and call onDragEnter\n\t * prop. Also increment the drag counter, required\n\t * for handling browser flickering issues.\n\t *\n\t * @param {Object} event\n\t */\n\tcomponent.methods.dragEnter = function (event) {\n\t event.preventDefault();\n\t this.dragCounter++;\n\t this.onDragEnter();\n\t};\n\t\n\t/**\n\t * Listen for dragleave event and call onDragLeave\n\t * prop. Also decrement the drag counter, required\n\t * for handling browser flickering issues.\n\t */\n\tcomponent.methods.dragLeave = function () {\n\t this.dragCounter--;\n\t if (this.dragCounter === 0) {\n\t this.onDragLeave();\n\t }\n\t};\n\t\n\t/**\n\t * Listen for totaluploadprogress event and call\n\t * onTotalProgress prop.\n\t *\n\t * @param {Spread} args\n\t */\n\tcomponent.methods.totalUploadProgress = function () {\n\t this.onTotalProgress.apply(this, arguments);\n\t};\n\t\n\t/**\n\t * Listen for queuecomplete event and call\n\t * onQueueComplete prop.\n\t *\n\t */\n\tcomponent.methods.queueComplete = function () {\n\t this.onQueueComplete();\n\t};\n\t\n\t/**\n\t * Listen for maxfilesreached event and call\n\t * onMaxFiles prop.\n\t *\n\t * @param {Symbol} blobId\n\t *\n\t */\n\tcomponent.methods.maxFilesExceeded = function (_ref8) {\n\t var blobId = _ref8.blobId;\n\t\n\t var fileInstance = this.getFile(blobId);\n\t this.onMaxFiles(fileInstance);\n\t};\n\t\n\t/**\n\t * Removes file from the uploader. This file will\n\t * not receive any more events.\n\t *\n\t * @param {Object} file\n\t */\n\tcomponent.methods.removeFile = function (file) {\n\t this.uploader.removeFile(file._file);\n\t};\n\t\n\t/**\n\t * Add a native file object directly to dropzone.\n\t *\n\t * @param {Object} file\n\t */\n\tcomponent.methods.addFile = function (file) {\n\t this.uploader.addFile(file);\n\t};\n\t\n\t/**\n\t * Remove all files.\n\t *\n\t * @param {Boolean} cancelQueued\n\t */\n\tcomponent.methods.removeAllFiles = function (cancelQueued) {\n\t this.uploader.removeAllFiles(cancelQueued);\n\t};\n\t\n\texports.default = component;\n\n/***/ },\n/* 34 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = { \"default\": __webpack_require__(35), __esModule: true };\n\n/***/ },\n/* 35 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(56);\n\t__webpack_require__(55);\n\t__webpack_require__(57);\n\t__webpack_require__(58);\n\tmodule.exports = __webpack_require__(11).Symbol;\n\n/***/ },\n/* 36 */\n/***/ function(module, exports) {\n\n\tmodule.exports = function(it){\n\t if(typeof it != 'function')throw TypeError(it + ' is not a function!');\n\t return it;\n\t};\n\n/***/ },\n/* 37 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// false -> Array#indexOf\n\t// true -> Array#includes\n\tvar toIObject = __webpack_require__(4)\n\t , toLength = __webpack_require__(54)\n\t , toIndex = __webpack_require__(53);\n\tmodule.exports = function(IS_INCLUDES){\n\t return function($this, el, fromIndex){\n\t var O = toIObject($this)\n\t , length = toLength(O.length)\n\t , index = toIndex(fromIndex, length)\n\t , value;\n\t // Array#includes uses SameValueZero equality algorithm\n\t if(IS_INCLUDES && el != el)while(length > index){\n\t value = O[index++];\n\t if(value != value)return true;\n\t // Array#toIndex ignores holes, Array#includes - not\n\t } else for(;length > index; index++)if(IS_INCLUDES || index in O){\n\t if(O[index] === el)return IS_INCLUDES || index || 0;\n\t } return !IS_INCLUDES && -1;\n\t };\n\t};\n\n/***/ },\n/* 38 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// optional / simple context binding\n\tvar aFunction = __webpack_require__(36);\n\tmodule.exports = function(fn, that, length){\n\t aFunction(fn);\n\t if(that === undefined)return fn;\n\t switch(length){\n\t case 1: return function(a){\n\t return fn.call(that, a);\n\t };\n\t case 2: return function(a, b){\n\t return fn.call(that, a, b);\n\t };\n\t case 3: return function(a, b, c){\n\t return fn.call(that, a, b, c);\n\t };\n\t }\n\t return function(/* ...args */){\n\t return fn.apply(that, arguments);\n\t };\n\t};\n\n/***/ },\n/* 39 */\n/***/ function(module, exports) {\n\n\t// 7.2.1 RequireObjectCoercible(argument)\n\tmodule.exports = function(it){\n\t if(it == undefined)throw TypeError(\"Can't call method on \" + it);\n\t return it;\n\t};\n\n/***/ },\n/* 40 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// all enumerable object keys, includes symbols\n\tvar getKeys = __webpack_require__(9)\n\t , gOPS = __webpack_require__(25)\n\t , pIE = __webpack_require__(14);\n\tmodule.exports = function(it){\n\t var result = getKeys(it)\n\t , getSymbols = gOPS.f;\n\t if(getSymbols){\n\t var symbols = getSymbols(it)\n\t , isEnum = pIE.f\n\t , i = 0\n\t , key;\n\t while(symbols.length > i)if(isEnum.call(it, key = symbols[i++]))result.push(key);\n\t } return result;\n\t};\n\n/***/ },\n/* 41 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar global = __webpack_require__(1)\n\t , core = __webpack_require__(11)\n\t , ctx = __webpack_require__(38)\n\t , hide = __webpack_require__(13)\n\t , PROTOTYPE = 'prototype';\n\t\n\tvar $export = function(type, name, source){\n\t var IS_FORCED = type & $export.F\n\t , IS_GLOBAL = type & $export.G\n\t , IS_STATIC = type & $export.S\n\t , IS_PROTO = type & $export.P\n\t , IS_BIND = type & $export.B\n\t , IS_WRAP = type & $export.W\n\t , exports = IS_GLOBAL ? core : core[name] || (core[name] = {})\n\t , expProto = exports[PROTOTYPE]\n\t , target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE]\n\t , key, own, out;\n\t if(IS_GLOBAL)source = name;\n\t for(key in source){\n\t // contains in native\n\t own = !IS_FORCED && target && target[key] !== undefined;\n\t if(own && key in exports)continue;\n\t // export native or passed\n\t out = own ? target[key] : source[key];\n\t // prevent global pollution for namespaces\n\t exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]\n\t // bind timers to global for call from export context\n\t : IS_BIND && own ? ctx(out, global)\n\t // wrap global constructors for prevent change them in library\n\t : IS_WRAP && target[key] == out ? (function(C){\n\t var F = function(a, b, c){\n\t if(this instanceof C){\n\t switch(arguments.length){\n\t case 0: return new C;\n\t case 1: return new C(a);\n\t case 2: return new C(a, b);\n\t } return new C(a, b, c);\n\t } return C.apply(this, arguments);\n\t };\n\t F[PROTOTYPE] = C[PROTOTYPE];\n\t return F;\n\t // make static versions for prototype methods\n\t })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n\t // export proto methods to core.%CONSTRUCTOR%.methods.%NAME%\n\t if(IS_PROTO){\n\t (exports.virtual || (exports.virtual = {}))[key] = out;\n\t // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%\n\t if(type & $export.R && expProto && !expProto[key])hide(expProto, key, out);\n\t }\n\t }\n\t};\n\t// type bitmap\n\t$export.F = 1; // forced\n\t$export.G = 2; // global\n\t$export.S = 4; // static\n\t$export.P = 8; // proto\n\t$export.B = 16; // bind\n\t$export.W = 32; // wrap\n\t$export.U = 64; // safe\n\t$export.R = 128; // real proto method for `library` \n\tmodule.exports = $export;\n\n/***/ },\n/* 42 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = __webpack_require__(1).document && document.documentElement;\n\n/***/ },\n/* 43 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// fallback for non-array-like ES3 and non-enumerable old V8 strings\n\tvar cof = __webpack_require__(20);\n\tmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){\n\t return cof(it) == 'String' ? it.split('') : Object(it);\n\t};\n\n/***/ },\n/* 44 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 7.2.2 IsArray(argument)\n\tvar cof = __webpack_require__(20);\n\tmodule.exports = Array.isArray || function isArray(arg){\n\t return cof(arg) == 'Array';\n\t};\n\n/***/ },\n/* 45 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar getKeys = __webpack_require__(9)\n\t , toIObject = __webpack_require__(4);\n\tmodule.exports = function(object, el){\n\t var O = toIObject(object)\n\t , keys = getKeys(O)\n\t , length = keys.length\n\t , index = 0\n\t , key;\n\t while(length > index)if(O[key = keys[index++]] === el)return key;\n\t};\n\n/***/ },\n/* 46 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar META = __webpack_require__(10)('meta')\n\t , isObject = __webpack_require__(8)\n\t , has = __webpack_require__(5)\n\t , setDesc = __webpack_require__(3).f\n\t , id = 0;\n\tvar isExtensible = Object.isExtensible || function(){\n\t return true;\n\t};\n\tvar FREEZE = !__webpack_require__(7)(function(){\n\t return isExtensible(Object.preventExtensions({}));\n\t});\n\tvar setMeta = function(it){\n\t setDesc(it, META, {value: {\n\t i: 'O' + ++id, // object ID\n\t w: {} // weak collections IDs\n\t }});\n\t};\n\tvar fastKey = function(it, create){\n\t // return primitive with prefix\n\t if(!isObject(it))return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n\t if(!has(it, META)){\n\t // can't set metadata to uncaught frozen object\n\t if(!isExtensible(it))return 'F';\n\t // not necessary to add metadata\n\t if(!create)return 'E';\n\t // add missing metadata\n\t setMeta(it);\n\t // return object ID\n\t } return it[META].i;\n\t};\n\tvar getWeak = function(it, create){\n\t if(!has(it, META)){\n\t // can't set metadata to uncaught frozen object\n\t if(!isExtensible(it))return true;\n\t // not necessary to add metadata\n\t if(!create)return false;\n\t // add missing metadata\n\t setMeta(it);\n\t // return hash weak collections IDs\n\t } return it[META].w;\n\t};\n\t// add metadata on freeze-family methods calling\n\tvar onFreeze = function(it){\n\t if(FREEZE && meta.NEED && isExtensible(it) && !has(it, META))setMeta(it);\n\t return it;\n\t};\n\tvar meta = module.exports = {\n\t KEY: META,\n\t NEED: false,\n\t fastKey: fastKey,\n\t getWeak: getWeak,\n\t onFreeze: onFreeze\n\t};\n\n/***/ },\n/* 47 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\n\tvar anObject = __webpack_require__(6)\n\t , dPs = __webpack_require__(48)\n\t , enumBugKeys = __webpack_require__(12)\n\t , IE_PROTO = __webpack_require__(27)('IE_PROTO')\n\t , Empty = function(){ /* empty */ }\n\t , PROTOTYPE = 'prototype';\n\t\n\t// Create object with fake `null` prototype: use iframe Object with cleared prototype\n\tvar createDict = function(){\n\t // Thrash, waste and sodomy: IE GC bug\n\t var iframe = __webpack_require__(21)('iframe')\n\t , i = enumBugKeys.length\n\t , lt = '<'\n\t , gt = '>'\n\t , iframeDocument;\n\t iframe.style.display = 'none';\n\t __webpack_require__(42).appendChild(iframe);\n\t iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n\t // createDict = iframe.contentWindow.Object;\n\t // html.removeChild(iframe);\n\t iframeDocument = iframe.contentWindow.document;\n\t iframeDocument.open();\n\t iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n\t iframeDocument.close();\n\t createDict = iframeDocument.F;\n\t while(i--)delete createDict[PROTOTYPE][enumBugKeys[i]];\n\t return createDict();\n\t};\n\t\n\tmodule.exports = Object.create || function create(O, Properties){\n\t var result;\n\t if(O !== null){\n\t Empty[PROTOTYPE] = anObject(O);\n\t result = new Empty;\n\t Empty[PROTOTYPE] = null;\n\t // add \"__proto__\" for Object.getPrototypeOf polyfill\n\t result[IE_PROTO] = O;\n\t } else result = createDict();\n\t return Properties === undefined ? result : dPs(result, Properties);\n\t};\n\n\n/***/ },\n/* 48 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar dP = __webpack_require__(3)\n\t , anObject = __webpack_require__(6)\n\t , getKeys = __webpack_require__(9);\n\t\n\tmodule.exports = __webpack_require__(2) ? Object.defineProperties : function defineProperties(O, Properties){\n\t anObject(O);\n\t var keys = getKeys(Properties)\n\t , length = keys.length\n\t , i = 0\n\t , P;\n\t while(length > i)dP.f(O, P = keys[i++], Properties[P]);\n\t return O;\n\t};\n\n/***/ },\n/* 49 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar pIE = __webpack_require__(14)\n\t , createDesc = __webpack_require__(15)\n\t , toIObject = __webpack_require__(4)\n\t , toPrimitive = __webpack_require__(17)\n\t , has = __webpack_require__(5)\n\t , IE8_DOM_DEFINE = __webpack_require__(22)\n\t , gOPD = Object.getOwnPropertyDescriptor;\n\t\n\texports.f = __webpack_require__(2) ? gOPD : function getOwnPropertyDescriptor(O, P){\n\t O = toIObject(O);\n\t P = toPrimitive(P, true);\n\t if(IE8_DOM_DEFINE)try {\n\t return gOPD(O, P);\n\t } catch(e){ /* empty */ }\n\t if(has(O, P))return createDesc(!pIE.f.call(O, P), O[P]);\n\t};\n\n/***/ },\n/* 50 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\n\tvar toIObject = __webpack_require__(4)\n\t , gOPN = __webpack_require__(24).f\n\t , toString = {}.toString;\n\t\n\tvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n\t ? Object.getOwnPropertyNames(window) : [];\n\t\n\tvar getWindowNames = function(it){\n\t try {\n\t return gOPN(it);\n\t } catch(e){\n\t return windowNames.slice();\n\t }\n\t};\n\t\n\tmodule.exports.f = function getOwnPropertyNames(it){\n\t return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));\n\t};\n\n\n/***/ },\n/* 51 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = __webpack_require__(13);\n\n/***/ },\n/* 52 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar def = __webpack_require__(3).f\n\t , has = __webpack_require__(5)\n\t , TAG = __webpack_require__(19)('toStringTag');\n\t\n\tmodule.exports = function(it, tag, stat){\n\t if(it && !has(it = stat ? it : it.prototype, TAG))def(it, TAG, {configurable: true, value: tag});\n\t};\n\n/***/ },\n/* 53 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar toInteger = __webpack_require__(28)\n\t , max = Math.max\n\t , min = Math.min;\n\tmodule.exports = function(index, length){\n\t index = toInteger(index);\n\t return index < 0 ? max(index + length, 0) : min(index, length);\n\t};\n\n/***/ },\n/* 54 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 7.1.15 ToLength\n\tvar toInteger = __webpack_require__(28)\n\t , min = Math.min;\n\tmodule.exports = function(it){\n\t return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n\t};\n\n/***/ },\n/* 55 */\n/***/ function(module, exports) {\n\n\n\n/***/ },\n/* 56 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t// ECMAScript 6 symbols shim\n\tvar global = __webpack_require__(1)\n\t , has = __webpack_require__(5)\n\t , DESCRIPTORS = __webpack_require__(2)\n\t , $export = __webpack_require__(41)\n\t , redefine = __webpack_require__(51)\n\t , META = __webpack_require__(46).KEY\n\t , $fails = __webpack_require__(7)\n\t , shared = __webpack_require__(16)\n\t , setToStringTag = __webpack_require__(52)\n\t , uid = __webpack_require__(10)\n\t , wks = __webpack_require__(19)\n\t , wksExt = __webpack_require__(29)\n\t , wksDefine = __webpack_require__(18)\n\t , keyOf = __webpack_require__(45)\n\t , enumKeys = __webpack_require__(40)\n\t , isArray = __webpack_require__(44)\n\t , anObject = __webpack_require__(6)\n\t , toIObject = __webpack_require__(4)\n\t , toPrimitive = __webpack_require__(17)\n\t , createDesc = __webpack_require__(15)\n\t , _create = __webpack_require__(47)\n\t , gOPNExt = __webpack_require__(50)\n\t , $GOPD = __webpack_require__(49)\n\t , $DP = __webpack_require__(3)\n\t , $keys = __webpack_require__(9)\n\t , gOPD = $GOPD.f\n\t , dP = $DP.f\n\t , gOPN = gOPNExt.f\n\t , $Symbol = global.Symbol\n\t , $JSON = global.JSON\n\t , _stringify = $JSON && $JSON.stringify\n\t , PROTOTYPE = 'prototype'\n\t , HIDDEN = wks('_hidden')\n\t , TO_PRIMITIVE = wks('toPrimitive')\n\t , isEnum = {}.propertyIsEnumerable\n\t , SymbolRegistry = shared('symbol-registry')\n\t , AllSymbols = shared('symbols')\n\t , OPSymbols = shared('op-symbols')\n\t , ObjectProto = Object[PROTOTYPE]\n\t , USE_NATIVE = typeof $Symbol == 'function'\n\t , QObject = global.QObject;\n\t// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\n\tvar setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\t\n\t// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\n\tvar setSymbolDesc = DESCRIPTORS && $fails(function(){\n\t return _create(dP({}, 'a', {\n\t get: function(){ return dP(this, 'a', {value: 7}).a; }\n\t })).a != 7;\n\t}) ? function(it, key, D){\n\t var protoDesc = gOPD(ObjectProto, key);\n\t if(protoDesc)delete ObjectProto[key];\n\t dP(it, key, D);\n\t if(protoDesc && it !== ObjectProto)dP(ObjectProto, key, protoDesc);\n\t} : dP;\n\t\n\tvar wrap = function(tag){\n\t var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);\n\t sym._k = tag;\n\t return sym;\n\t};\n\t\n\tvar isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function(it){\n\t return typeof it == 'symbol';\n\t} : function(it){\n\t return it instanceof $Symbol;\n\t};\n\t\n\tvar $defineProperty = function defineProperty(it, key, D){\n\t if(it === ObjectProto)$defineProperty(OPSymbols, key, D);\n\t anObject(it);\n\t key = toPrimitive(key, true);\n\t anObject(D);\n\t if(has(AllSymbols, key)){\n\t if(!D.enumerable){\n\t if(!has(it, HIDDEN))dP(it, HIDDEN, createDesc(1, {}));\n\t it[HIDDEN][key] = true;\n\t } else {\n\t if(has(it, HIDDEN) && it[HIDDEN][key])it[HIDDEN][key] = false;\n\t D = _create(D, {enumerable: createDesc(0, false)});\n\t } return setSymbolDesc(it, key, D);\n\t } return dP(it, key, D);\n\t};\n\tvar $defineProperties = function defineProperties(it, P){\n\t anObject(it);\n\t var keys = enumKeys(P = toIObject(P))\n\t , i = 0\n\t , l = keys.length\n\t , key;\n\t while(l > i)$defineProperty(it, key = keys[i++], P[key]);\n\t return it;\n\t};\n\tvar $create = function create(it, P){\n\t return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n\t};\n\tvar $propertyIsEnumerable = function propertyIsEnumerable(key){\n\t var E = isEnum.call(this, key = toPrimitive(key, true));\n\t if(this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key))return false;\n\t return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;\n\t};\n\tvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key){\n\t it = toIObject(it);\n\t key = toPrimitive(key, true);\n\t if(it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key))return;\n\t var D = gOPD(it, key);\n\t if(D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key]))D.enumerable = true;\n\t return D;\n\t};\n\tvar $getOwnPropertyNames = function getOwnPropertyNames(it){\n\t var names = gOPN(toIObject(it))\n\t , result = []\n\t , i = 0\n\t , key;\n\t while(names.length > i){\n\t if(!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META)result.push(key);\n\t } return result;\n\t};\n\tvar $getOwnPropertySymbols = function getOwnPropertySymbols(it){\n\t var IS_OP = it === ObjectProto\n\t , names = gOPN(IS_OP ? OPSymbols : toIObject(it))\n\t , result = []\n\t , i = 0\n\t , key;\n\t while(names.length > i){\n\t if(has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true))result.push(AllSymbols[key]);\n\t } return result;\n\t};\n\t\n\t// 19.4.1.1 Symbol([description])\n\tif(!USE_NATIVE){\n\t $Symbol = function Symbol(){\n\t if(this instanceof $Symbol)throw TypeError('Symbol is not a constructor!');\n\t var tag = uid(arguments.length > 0 ? arguments[0] : undefined);\n\t var $set = function(value){\n\t if(this === ObjectProto)$set.call(OPSymbols, value);\n\t if(has(this, HIDDEN) && has(this[HIDDEN], tag))this[HIDDEN][tag] = false;\n\t setSymbolDesc(this, tag, createDesc(1, value));\n\t };\n\t if(DESCRIPTORS && setter)setSymbolDesc(ObjectProto, tag, {configurable: true, set: $set});\n\t return wrap(tag);\n\t };\n\t redefine($Symbol[PROTOTYPE], 'toString', function toString(){\n\t return this._k;\n\t });\n\t\n\t $GOPD.f = $getOwnPropertyDescriptor;\n\t $DP.f = $defineProperty;\n\t __webpack_require__(24).f = gOPNExt.f = $getOwnPropertyNames;\n\t __webpack_require__(14).f = $propertyIsEnumerable;\n\t __webpack_require__(25).f = $getOwnPropertySymbols;\n\t\n\t if(DESCRIPTORS && !__webpack_require__(23)){\n\t redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n\t }\n\t\n\t wksExt.f = function(name){\n\t return wrap(wks(name));\n\t }\n\t}\n\t\n\t$export($export.G + $export.W + $export.F * !USE_NATIVE, {Symbol: $Symbol});\n\t\n\tfor(var symbols = (\n\t // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14\n\t 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'\n\t).split(','), i = 0; symbols.length > i; )wks(symbols[i++]);\n\t\n\tfor(var symbols = $keys(wks.store), i = 0; symbols.length > i; )wksDefine(symbols[i++]);\n\t\n\t$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {\n\t // 19.4.2.1 Symbol.for(key)\n\t 'for': function(key){\n\t return has(SymbolRegistry, key += '')\n\t ? SymbolRegistry[key]\n\t : SymbolRegistry[key] = $Symbol(key);\n\t },\n\t // 19.4.2.5 Symbol.keyFor(sym)\n\t keyFor: function keyFor(key){\n\t if(isSymbol(key))return keyOf(SymbolRegistry, key);\n\t throw TypeError(key + ' is not a symbol!');\n\t },\n\t useSetter: function(){ setter = true; },\n\t useSimple: function(){ setter = false; }\n\t});\n\t\n\t$export($export.S + $export.F * !USE_NATIVE, 'Object', {\n\t // 19.1.2.2 Object.create(O [, Properties])\n\t create: $create,\n\t // 19.1.2.4 Object.defineProperty(O, P, Attributes)\n\t defineProperty: $defineProperty,\n\t // 19.1.2.3 Object.defineProperties(O, Properties)\n\t defineProperties: $defineProperties,\n\t // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\n\t getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n\t // 19.1.2.7 Object.getOwnPropertyNames(O)\n\t getOwnPropertyNames: $getOwnPropertyNames,\n\t // 19.1.2.8 Object.getOwnPropertySymbols(O)\n\t getOwnPropertySymbols: $getOwnPropertySymbols\n\t});\n\t\n\t// 24.3.2 JSON.stringify(value [, replacer [, space]])\n\t$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function(){\n\t var S = $Symbol();\n\t // MS Edge converts symbol values to JSON as {}\n\t // WebKit converts symbol values to JSON as null\n\t // V8 throws on boxed symbols\n\t return _stringify([S]) != '[null]' || _stringify({a: S}) != '{}' || _stringify(Object(S)) != '{}';\n\t})), 'JSON', {\n\t stringify: function stringify(it){\n\t if(it === undefined || isSymbol(it))return; // IE8 returns string on undefined\n\t var args = [it]\n\t , i = 1\n\t , replacer, $replacer;\n\t while(arguments.length > i)args.push(arguments[i++]);\n\t replacer = args[1];\n\t if(typeof replacer == 'function')$replacer = replacer;\n\t if($replacer || !isArray(replacer))replacer = function(key, value){\n\t if($replacer)value = $replacer.call(this, key, value);\n\t if(!isSymbol(value))return value;\n\t };\n\t args[1] = replacer;\n\t return _stringify.apply($JSON, args);\n\t }\n\t});\n\t\n\t// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)\n\t$Symbol[PROTOTYPE][TO_PRIMITIVE] || __webpack_require__(13)($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n\t// 19.4.3.5 Symbol.prototype[@@toStringTag]\n\tsetToStringTag($Symbol, 'Symbol');\n\t// 20.2.1.9 Math[@@toStringTag]\n\tsetToStringTag(Math, 'Math', true);\n\t// 24.3.3 JSON[@@toStringTag]\n\tsetToStringTag(global.JSON, 'JSON', true);\n\n/***/ },\n/* 57 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(18)('asyncIterator');\n\n/***/ },\n/* 58 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(18)('observable');\n\n/***/ },\n/* 59 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(module) {\n\t/*\n\t *\n\t * More info at [www.dropzonejs.com](http://www.dropzonejs.com)\n\t *\n\t * Copyright (c) 2012, Matias Meno\n\t *\n\t * Permission is hereby granted, free of charge, to any person obtaining a copy\n\t * of this software and associated documentation files (the \"Software\"), to deal\n\t * in the Software without restriction, including without limitation the rights\n\t * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n\t * copies of the Software, and to permit persons to whom the Software is\n\t * furnished to do so, subject to the following conditions:\n\t *\n\t * The above copyright notice and this permission notice shall be included in\n\t * all copies or substantial portions of the Software.\n\t *\n\t * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n\t * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n\t * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n\t * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n\t * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n\t * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n\t * THE SOFTWARE.\n\t *\n\t */\n\t\n\t(function() {\n\t var Dropzone, Emitter, camelize, contentLoaded, detectVerticalSquash, drawImageIOSFix, noop, without,\n\t __slice = [].slice,\n\t __hasProp = {}.hasOwnProperty,\n\t __extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; };\n\t\n\t noop = function() {};\n\t\n\t Emitter = (function() {\n\t function Emitter() {}\n\t\n\t Emitter.prototype.addEventListener = Emitter.prototype.on;\n\t\n\t Emitter.prototype.on = function(event, fn) {\n\t this._callbacks = this._callbacks || {};\n\t if (!this._callbacks[event]) {\n\t this._callbacks[event] = [];\n\t }\n\t this._callbacks[event].push(fn);\n\t return this;\n\t };\n\t\n\t Emitter.prototype.emit = function() {\n\t var args, callback, callbacks, event, _i, _len;\n\t event = arguments[0], args = 2 <= arguments.length ? __slice.call(arguments, 1) : [];\n\t this._callbacks = this._callbacks || {};\n\t callbacks = this._callbacks[event];\n\t if (callbacks) {\n\t for (_i = 0, _len = callbacks.length; _i < _len; _i++) {\n\t callback = callbacks[_i];\n\t callback.apply(this, args);\n\t }\n\t }\n\t return this;\n\t };\n\t\n\t Emitter.prototype.removeListener = Emitter.prototype.off;\n\t\n\t Emitter.prototype.removeAllListeners = Emitter.prototype.off;\n\t\n\t Emitter.prototype.removeEventListener = Emitter.prototype.off;\n\t\n\t Emitter.prototype.off = function(event, fn) {\n\t var callback, callbacks, i, _i, _len;\n\t if (!this._callbacks || arguments.length === 0) {\n\t this._callbacks = {};\n\t return this;\n\t }\n\t callbacks = this._callbacks[event];\n\t if (!callbacks) {\n\t return this;\n\t }\n\t if (arguments.length === 1) {\n\t delete this._callbacks[event];\n\t return this;\n\t }\n\t for (i = _i = 0, _len = callbacks.length; _i < _len; i = ++_i) {\n\t callback = callbacks[i];\n\t if (callback === fn) {\n\t callbacks.splice(i, 1);\n\t break;\n\t }\n\t }\n\t return this;\n\t };\n\t\n\t return Emitter;\n\t\n\t })();\n\t\n\t Dropzone = (function(_super) {\n\t var extend, resolveOption;\n\t\n\t __extends(Dropzone, _super);\n\t\n\t Dropzone.prototype.Emitter = Emitter;\n\t\n\t\n\t /*\n\t This is a list of all available events you can register on a dropzone object.\n\t\n\t You can register an event handler like this:\n\t\n\t dropzone.on(\"dragEnter\", function() { });\n\t */\n\t\n\t Dropzone.prototype.events = [\"drop\", \"dragstart\", \"dragend\", \"dragenter\", \"dragover\", \"dragleave\", \"addedfile\", \"addedfiles\", \"removedfile\", \"thumbnail\", \"error\", \"errormultiple\", \"processing\", \"processingmultiple\", \"uploadprogress\", \"totaluploadprogress\", \"sending\", \"sendingmultiple\", \"success\", \"successmultiple\", \"canceled\", \"canceledmultiple\", \"complete\", \"completemultiple\", \"reset\", \"maxfilesexceeded\", \"maxfilesreached\", \"queuecomplete\"];\n\t\n\t Dropzone.prototype.defaultOptions = {\n\t url: null,\n\t method: \"post\",\n\t withCredentials: false,\n\t parallelUploads: 2,\n\t uploadMultiple: false,\n\t maxFilesize: 256,\n\t paramName: \"file\",\n\t createImageThumbnails: true,\n\t maxThumbnailFilesize: 10,\n\t thumbnailWidth: 120,\n\t thumbnailHeight: 120,\n\t filesizeBase: 1000,\n\t maxFiles: null,\n\t params: {},\n\t clickable: true,\n\t ignoreHiddenFiles: true,\n\t acceptedFiles: null,\n\t acceptedMimeTypes: null,\n\t autoProcessQueue: true,\n\t autoQueue: true,\n\t addRemoveLinks: false,\n\t previewsContainer: null,\n\t hiddenInputContainer: \"body\",\n\t capture: null,\n\t renameFilename: null,\n\t dictDefaultMessage: \"Drop files here to upload\",\n\t dictFallbackMessage: \"Your browser does not support drag'n'drop file uploads.\",\n\t dictFallbackText: \"Please use the fallback form below to upload your files like in the olden days.\",\n\t dictFileTooBig: \"File is too big ({{filesize}}MiB). Max filesize: {{maxFilesize}}MiB.\",\n\t dictInvalidFileType: \"You can't upload files of this type.\",\n\t dictResponseError: \"Server responded with {{statusCode}} code.\",\n\t dictCancelUpload: \"Cancel upload\",\n\t dictCancelUploadConfirmation: \"Are you sure you want to cancel this upload?\",\n\t dictRemoveFile: \"Remove file\",\n\t dictRemoveFileConfirmation: null,\n\t dictMaxFilesExceeded: \"You can not upload any more files.\",\n\t accept: function(file, done) {\n\t return done();\n\t },\n\t init: function() {\n\t return noop;\n\t },\n\t forceFallback: false,\n\t fallback: function() {\n\t var child, messageElement, span, _i, _len, _ref;\n\t this.element.className = \"\" + this.element.className + \" dz-browser-not-supported\";\n\t _ref = this.element.getElementsByTagName(\"div\");\n\t for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n\t child = _ref[_i];\n\t if (/(^| )dz-message($| )/.test(child.className)) {\n\t messageElement = child;\n\t child.className = \"dz-message\";\n\t continue;\n\t }\n\t }\n\t if (!messageElement) {\n\t messageElement = Dropzone.createElement(\"
\");\n\t this.element.appendChild(messageElement);\n\t }\n\t span = messageElement.getElementsByTagName(\"span\")[0];\n\t if (span) {\n\t if (span.textContent != null) {\n\t span.textContent = this.options.dictFallbackMessage;\n\t } else if (span.innerText != null) {\n\t span.innerText = this.options.dictFallbackMessage;\n\t }\n\t }\n\t return this.element.appendChild(this.getFallbackForm());\n\t },\n\t resize: function(file) {\n\t var info, srcRatio, trgRatio;\n\t info = {\n\t srcX: 0,\n\t srcY: 0,\n\t srcWidth: file.width,\n\t srcHeight: file.height\n\t };\n\t srcRatio = file.width / file.height;\n\t info.optWidth = this.options.thumbnailWidth;\n\t info.optHeight = this.options.thumbnailHeight;\n\t if ((info.optWidth == null) && (info.optHeight == null)) {\n\t info.optWidth = info.srcWidth;\n\t info.optHeight = info.srcHeight;\n\t } else if (info.optWidth == null) {\n\t info.optWidth = srcRatio * info.optHeight;\n\t } else if (info.optHeight == null) {\n\t info.optHeight = (1 / srcRatio) * info.optWidth;\n\t }\n\t trgRatio = info.optWidth / info.optHeight;\n\t if (file.height < info.optHeight || file.width < info.optWidth) {\n\t info.trgHeight = info.srcHeight;\n\t info.trgWidth = info.srcWidth;\n\t } else {\n\t if (srcRatio > trgRatio) {\n\t info.srcHeight = file.height;\n\t info.srcWidth = info.srcHeight * trgRatio;\n\t } else {\n\t info.srcWidth = file.width;\n\t info.srcHeight = info.srcWidth / trgRatio;\n\t }\n\t }\n\t info.srcX = (file.width - info.srcWidth) / 2;\n\t info.srcY = (file.height - info.srcHeight) / 2;\n\t return info;\n\t },\n\t\n\t /*\n\t Those functions register themselves to the events on init and handle all\n\t the user interface specific stuff. Overwriting them won't break the upload\n\t but can break the way it's displayed.\n\t You can overwrite them if you don't like the default behavior. If you just\n\t want to add an additional event handler, register it on the dropzone object\n\t and don't overwrite those options.\n\t */\n\t drop: function(e) {\n\t return this.element.classList.remove(\"dz-drag-hover\");\n\t },\n\t dragstart: noop,\n\t dragend: function(e) {\n\t return this.element.classList.remove(\"dz-drag-hover\");\n\t },\n\t dragenter: function(e) {\n\t return this.element.classList.add(\"dz-drag-hover\");\n\t },\n\t dragover: function(e) {\n\t return this.element.classList.add(\"dz-drag-hover\");\n\t },\n\t dragleave: function(e) {\n\t return this.element.classList.remove(\"dz-drag-hover\");\n\t },\n\t paste: noop,\n\t reset: function() {\n\t return this.element.classList.remove(\"dz-started\");\n\t },\n\t addedfile: function(file) {\n\t var node, removeFileEvent, removeLink, _i, _j, _k, _len, _len1, _len2, _ref, _ref1, _ref2, _results;\n\t if (this.element === this.previewsContainer) {\n\t this.element.classList.add(\"dz-started\");\n\t }\n\t if (this.previewsContainer) {\n\t file.previewElement = Dropzone.createElement(this.options.previewTemplate.trim());\n\t file.previewTemplate = file.previewElement;\n\t this.previewsContainer.appendChild(file.previewElement);\n\t _ref = file.previewElement.querySelectorAll(\"[data-dz-name]\");\n\t for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n\t node = _ref[_i];\n\t node.textContent = this._renameFilename(file.name);\n\t }\n\t _ref1 = file.previewElement.querySelectorAll(\"[data-dz-size]\");\n\t for (_j = 0, _len1 = _ref1.length; _j < _len1; _j++) {\n\t node = _ref1[_j];\n\t node.innerHTML = this.filesize(file.size);\n\t }\n\t if (this.options.addRemoveLinks) {\n\t file._removeLink = Dropzone.createElement(\"\" + this.options.dictRemoveFile + \"\");\n\t file.previewElement.appendChild(file._removeLink);\n\t }\n\t removeFileEvent = (function(_this) {\n\t return function(e) {\n\t e.preventDefault();\n\t e.stopPropagation();\n\t if (file.status === Dropzone.UPLOADING) {\n\t return Dropzone.confirm(_this.options.dictCancelUploadConfirmation, function() {\n\t return _this.removeFile(file);\n\t });\n\t } else {\n\t if (_this.options.dictRemoveFileConfirmation) {\n\t return Dropzone.confirm(_this.options.dictRemoveFileConfirmation, function() {\n\t return _this.removeFile(file);\n\t });\n\t } else {\n\t return _this.removeFile(file);\n\t }\n\t }\n\t };\n\t })(this);\n\t _ref2 = file.previewElement.querySelectorAll(\"[data-dz-remove]\");\n\t _results = [];\n\t for (_k = 0, _len2 = _ref2.length; _k < _len2; _k++) {\n\t removeLink = _ref2[_k];\n\t _results.push(removeLink.addEventListener(\"click\", removeFileEvent));\n\t }\n\t return _results;\n\t }\n\t },\n\t removedfile: function(file) {\n\t var _ref;\n\t if (file.previewElement) {\n\t if ((_ref = file.previewElement) != null) {\n\t _ref.parentNode.removeChild(file.previewElement);\n\t }\n\t }\n\t return this._updateMaxFilesReachedClass();\n\t },\n\t thumbnail: function(file, dataUrl) {\n\t var thumbnailElement, _i, _len, _ref;\n\t if (file.previewElement) {\n\t file.previewElement.classList.remove(\"dz-file-preview\");\n\t _ref = file.previewElement.querySelectorAll(\"[data-dz-thumbnail]\");\n\t for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n\t thumbnailElement = _ref[_i];\n\t thumbnailElement.alt = file.name;\n\t thumbnailElement.src = dataUrl;\n\t }\n\t return setTimeout(((function(_this) {\n\t return function() {\n\t return file.previewElement.classList.add(\"dz-image-preview\");\n\t };\n\t })(this)), 1);\n\t }\n\t },\n\t error: function(file, message) {\n\t var node, _i, _len, _ref, _results;\n\t if (file.previewElement) {\n\t file.previewElement.classList.add(\"dz-error\");\n\t if (typeof message !== \"String\" && message.error) {\n\t message = message.error;\n\t }\n\t _ref = file.previewElement.querySelectorAll(\"[data-dz-errormessage]\");\n\t _results = [];\n\t for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n\t node = _ref[_i];\n\t _results.push(node.textContent = message);\n\t }\n\t return _results;\n\t }\n\t },\n\t errormultiple: noop,\n\t processing: function(file) {\n\t if (file.previewElement) {\n\t file.previewElement.classList.add(\"dz-processing\");\n\t if (file._removeLink) {\n\t return file._removeLink.textContent = this.options.dictCancelUpload;\n\t }\n\t }\n\t },\n\t processingmultiple: noop,\n\t uploadprogress: function(file, progress, bytesSent) {\n\t var node, _i, _len, _ref, _results;\n\t if (file.previewElement) {\n\t _ref = file.previewElement.querySelectorAll(\"[data-dz-uploadprogress]\");\n\t _results = [];\n\t for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n\t node = _ref[_i];\n\t if (node.nodeName === 'PROGRESS') {\n\t _results.push(node.value = progress);\n\t } else {\n\t _results.push(node.style.width = \"\" + progress + \"%\");\n\t }\n\t }\n\t return _results;\n\t }\n\t },\n\t totaluploadprogress: noop,\n\t sending: noop,\n\t sendingmultiple: noop,\n\t success: function(file) {\n\t if (file.previewElement) {\n\t return file.previewElement.classList.add(\"dz-success\");\n\t }\n\t },\n\t successmultiple: noop,\n\t canceled: function(file) {\n\t return this.emit(\"error\", file, \"Upload canceled.\");\n\t },\n\t canceledmultiple: noop,\n\t complete: function(file) {\n\t if (file._removeLink) {\n\t file._removeLink.textContent = this.options.dictRemoveFile;\n\t }\n\t if (file.previewElement) {\n\t return file.previewElement.classList.add(\"dz-complete\");\n\t }\n\t },\n\t completemultiple: noop,\n\t maxfilesexceeded: noop,\n\t maxfilesreached: noop,\n\t queuecomplete: noop,\n\t addedfiles: noop,\n\t previewTemplate: \"\"\n\t };\n\t\n\t extend = function() {\n\t var key, object, objects, target, val, _i, _len;\n\t target = arguments[0], objects = 2 <= arguments.length ? __slice.call(arguments, 1) : [];\n\t for (_i = 0, _len = objects.length; _i < _len; _i++) {\n\t object = objects[_i];\n\t for (key in object) {\n\t val = object[key];\n\t target[key] = val;\n\t }\n\t }\n\t return target;\n\t };\n\t\n\t function Dropzone(element, options) {\n\t var elementOptions, fallback, _ref;\n\t this.element = element;\n\t this.version = Dropzone.version;\n\t this.defaultOptions.previewTemplate = this.defaultOptions.previewTemplate.replace(/\\n*/g, \"\");\n\t this.clickableElements = [];\n\t this.listeners = [];\n\t this.files = [];\n\t if (typeof this.element === \"string\") {\n\t this.element = document.querySelector(this.element);\n\t }\n\t if (!(this.element && (this.element.nodeType != null))) {\n\t throw new Error(\"Invalid dropzone element.\");\n\t }\n\t if (this.element.dropzone) {\n\t throw new Error(\"Dropzone already attached.\");\n\t }\n\t Dropzone.instances.push(this);\n\t this.element.dropzone = this;\n\t elementOptions = (_ref = Dropzone.optionsForElement(this.element)) != null ? _ref : {};\n\t this.options = extend({}, this.defaultOptions, elementOptions, options != null ? options : {});\n\t if (this.options.forceFallback || !Dropzone.isBrowserSupported()) {\n\t return this.options.fallback.call(this);\n\t }\n\t if (this.options.url == null) {\n\t this.options.url = this.element.getAttribute(\"action\");\n\t }\n\t if (!this.options.url) {\n\t throw new Error(\"No URL provided.\");\n\t }\n\t if (this.options.acceptedFiles && this.options.acceptedMimeTypes) {\n\t throw new Error(\"You can't provide both 'acceptedFiles' and 'acceptedMimeTypes'. 'acceptedMimeTypes' is deprecated.\");\n\t }\n\t if (this.options.acceptedMimeTypes) {\n\t this.options.acceptedFiles = this.options.acceptedMimeTypes;\n\t delete this.options.acceptedMimeTypes;\n\t }\n\t this.options.method = this.options.method.toUpperCase();\n\t if ((fallback = this.getExistingFallback()) && fallback.parentNode) {\n\t fallback.parentNode.removeChild(fallback);\n\t }\n\t if (this.options.previewsContainer !== false) {\n\t if (this.options.previewsContainer) {\n\t this.previewsContainer = Dropzone.getElement(this.options.previewsContainer, \"previewsContainer\");\n\t } else {\n\t this.previewsContainer = this.element;\n\t }\n\t }\n\t if (this.options.clickable) {\n\t if (this.options.clickable === true) {\n\t this.clickableElements = [this.element];\n\t } else {\n\t this.clickableElements = Dropzone.getElements(this.options.clickable, \"clickable\");\n\t }\n\t }\n\t this.init();\n\t }\n\t\n\t Dropzone.prototype.getAcceptedFiles = function() {\n\t var file, _i, _len, _ref, _results;\n\t _ref = this.files;\n\t _results = [];\n\t for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n\t file = _ref[_i];\n\t if (file.accepted) {\n\t _results.push(file);\n\t }\n\t }\n\t return _results;\n\t };\n\t\n\t Dropzone.prototype.getRejectedFiles = function() {\n\t var file, _i, _len, _ref, _results;\n\t _ref = this.files;\n\t _results = [];\n\t for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n\t file = _ref[_i];\n\t if (!file.accepted) {\n\t _results.push(file);\n\t }\n\t }\n\t return _results;\n\t };\n\t\n\t Dropzone.prototype.getFilesWithStatus = function(status) {\n\t var file, _i, _len, _ref, _results;\n\t _ref = this.files;\n\t _results = [];\n\t for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n\t file = _ref[_i];\n\t if (file.status === status) {\n\t _results.push(file);\n\t }\n\t }\n\t return _results;\n\t };\n\t\n\t Dropzone.prototype.getQueuedFiles = function() {\n\t return this.getFilesWithStatus(Dropzone.QUEUED);\n\t };\n\t\n\t Dropzone.prototype.getUploadingFiles = function() {\n\t return this.getFilesWithStatus(Dropzone.UPLOADING);\n\t };\n\t\n\t Dropzone.prototype.getAddedFiles = function() {\n\t return this.getFilesWithStatus(Dropzone.ADDED);\n\t };\n\t\n\t Dropzone.prototype.getActiveFiles = function() {\n\t var file, _i, _len, _ref, _results;\n\t _ref = this.files;\n\t _results = [];\n\t for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n\t file = _ref[_i];\n\t if (file.status === Dropzone.UPLOADING || file.status === Dropzone.QUEUED) {\n\t _results.push(file);\n\t }\n\t }\n\t return _results;\n\t };\n\t\n\t Dropzone.prototype.init = function() {\n\t var eventName, noPropagation, setupHiddenFileInput, _i, _len, _ref, _ref1;\n\t if (this.element.tagName === \"form\") {\n\t this.element.setAttribute(\"enctype\", \"multipart/form-data\");\n\t }\n\t if (this.element.classList.contains(\"dropzone\") && !this.element.querySelector(\".dz-message\")) {\n\t this.element.appendChild(Dropzone.createElement(\"
\" + this.options.dictDefaultMessage + \"
\"));\n\t }\n\t if (this.clickableElements.length) {\n\t setupHiddenFileInput = (function(_this) {\n\t return function() {\n\t if (_this.hiddenFileInput) {\n\t _this.hiddenFileInput.parentNode.removeChild(_this.hiddenFileInput);\n\t }\n\t _this.hiddenFileInput = document.createElement(\"input\");\n\t _this.hiddenFileInput.setAttribute(\"type\", \"file\");\n\t if ((_this.options.maxFiles == null) || _this.options.maxFiles > 1) {\n\t _this.hiddenFileInput.setAttribute(\"multiple\", \"multiple\");\n\t }\n\t _this.hiddenFileInput.className = \"dz-hidden-input\";\n\t if (_this.options.acceptedFiles != null) {\n\t _this.hiddenFileInput.setAttribute(\"accept\", _this.options.acceptedFiles);\n\t }\n\t if (_this.options.capture != null) {\n\t _this.hiddenFileInput.setAttribute(\"capture\", _this.options.capture);\n\t }\n\t _this.hiddenFileInput.style.visibility = \"hidden\";\n\t _this.hiddenFileInput.style.position = \"absolute\";\n\t _this.hiddenFileInput.style.top = \"0\";\n\t _this.hiddenFileInput.style.left = \"0\";\n\t _this.hiddenFileInput.style.height = \"0\";\n\t _this.hiddenFileInput.style.width = \"0\";\n\t document.querySelector(_this.options.hiddenInputContainer).appendChild(_this.hiddenFileInput);\n\t return _this.hiddenFileInput.addEventListener(\"change\", function() {\n\t var file, files, _i, _len;\n\t files = _this.hiddenFileInput.files;\n\t if (files.length) {\n\t for (_i = 0, _len = files.length; _i < _len; _i++) {\n\t file = files[_i];\n\t _this.addFile(file);\n\t }\n\t }\n\t _this.emit(\"addedfiles\", files);\n\t return setupHiddenFileInput();\n\t });\n\t };\n\t })(this);\n\t setupHiddenFileInput();\n\t }\n\t this.URL = (_ref = window.URL) != null ? _ref : window.webkitURL;\n\t _ref1 = this.events;\n\t for (_i = 0, _len = _ref1.length; _i < _len; _i++) {\n\t eventName = _ref1[_i];\n\t this.on(eventName, this.options[eventName]);\n\t }\n\t this.on(\"uploadprogress\", (function(_this) {\n\t return function() {\n\t return _this.updateTotalUploadProgress();\n\t };\n\t })(this));\n\t this.on(\"removedfile\", (function(_this) {\n\t return function() {\n\t return _this.updateTotalUploadProgress();\n\t };\n\t })(this));\n\t this.on(\"canceled\", (function(_this) {\n\t return function(file) {\n\t return _this.emit(\"complete\", file);\n\t };\n\t })(this));\n\t this.on(\"complete\", (function(_this) {\n\t return function(file) {\n\t if (_this.getAddedFiles().length === 0 && _this.getUploadingFiles().length === 0 && _this.getQueuedFiles().length === 0) {\n\t return setTimeout((function() {\n\t return _this.emit(\"queuecomplete\");\n\t }), 0);\n\t }\n\t };\n\t })(this));\n\t noPropagation = function(e) {\n\t e.stopPropagation();\n\t if (e.preventDefault) {\n\t return e.preventDefault();\n\t } else {\n\t return e.returnValue = false;\n\t }\n\t };\n\t this.listeners = [\n\t {\n\t element: this.element,\n\t events: {\n\t \"dragstart\": (function(_this) {\n\t return function(e) {\n\t return _this.emit(\"dragstart\", e);\n\t };\n\t })(this),\n\t \"dragenter\": (function(_this) {\n\t return function(e) {\n\t noPropagation(e);\n\t return _this.emit(\"dragenter\", e);\n\t };\n\t })(this),\n\t \"dragover\": (function(_this) {\n\t return function(e) {\n\t var efct;\n\t try {\n\t efct = e.dataTransfer.effectAllowed;\n\t } catch (_error) {}\n\t e.dataTransfer.dropEffect = 'move' === efct || 'linkMove' === efct ? 'move' : 'copy';\n\t noPropagation(e);\n\t return _this.emit(\"dragover\", e);\n\t };\n\t })(this),\n\t \"dragleave\": (function(_this) {\n\t return function(e) {\n\t return _this.emit(\"dragleave\", e);\n\t };\n\t })(this),\n\t \"drop\": (function(_this) {\n\t return function(e) {\n\t noPropagation(e);\n\t return _this.drop(e);\n\t };\n\t })(this),\n\t \"dragend\": (function(_this) {\n\t return function(e) {\n\t return _this.emit(\"dragend\", e);\n\t };\n\t })(this)\n\t }\n\t }\n\t ];\n\t this.clickableElements.forEach((function(_this) {\n\t return function(clickableElement) {\n\t return _this.listeners.push({\n\t element: clickableElement,\n\t events: {\n\t \"click\": function(evt) {\n\t if ((clickableElement !== _this.element) || (evt.target === _this.element || Dropzone.elementInside(evt.target, _this.element.querySelector(\".dz-message\")))) {\n\t _this.hiddenFileInput.click();\n\t }\n\t return true;\n\t }\n\t }\n\t });\n\t };\n\t })(this));\n\t this.enable();\n\t return this.options.init.call(this);\n\t };\n\t\n\t Dropzone.prototype.destroy = function() {\n\t var _ref;\n\t this.disable();\n\t this.removeAllFiles(true);\n\t if ((_ref = this.hiddenFileInput) != null ? _ref.parentNode : void 0) {\n\t this.hiddenFileInput.parentNode.removeChild(this.hiddenFileInput);\n\t this.hiddenFileInput = null;\n\t }\n\t delete this.element.dropzone;\n\t return Dropzone.instances.splice(Dropzone.instances.indexOf(this), 1);\n\t };\n\t\n\t Dropzone.prototype.updateTotalUploadProgress = function() {\n\t var activeFiles, file, totalBytes, totalBytesSent, totalUploadProgress, _i, _len, _ref;\n\t totalBytesSent = 0;\n\t totalBytes = 0;\n\t activeFiles = this.getActiveFiles();\n\t if (activeFiles.length) {\n\t _ref = this.getActiveFiles();\n\t for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n\t file = _ref[_i];\n\t totalBytesSent += file.upload.bytesSent;\n\t totalBytes += file.upload.total;\n\t }\n\t totalUploadProgress = 100 * totalBytesSent / totalBytes;\n\t } else {\n\t totalUploadProgress = 100;\n\t }\n\t return this.emit(\"totaluploadprogress\", totalUploadProgress, totalBytes, totalBytesSent);\n\t };\n\t\n\t Dropzone.prototype._getParamName = function(n) {\n\t if (typeof this.options.paramName === \"function\") {\n\t return this.options.paramName(n);\n\t } else {\n\t return \"\" + this.options.paramName + (this.options.uploadMultiple ? \"[\" + n + \"]\" : \"\");\n\t }\n\t };\n\t\n\t Dropzone.prototype._renameFilename = function(name) {\n\t if (typeof this.options.renameFilename !== \"function\") {\n\t return name;\n\t }\n\t return this.options.renameFilename(name);\n\t };\n\t\n\t Dropzone.prototype.getFallbackForm = function() {\n\t var existingFallback, fields, fieldsString, form;\n\t if (existingFallback = this.getExistingFallback()) {\n\t return existingFallback;\n\t }\n\t fieldsString = \"
\";\n\t if (this.options.dictFallbackText) {\n\t fieldsString += \"

\" + this.options.dictFallbackText + \"

\";\n\t }\n\t fieldsString += \"
\";\n\t fields = Dropzone.createElement(fieldsString);\n\t if (this.element.tagName !== \"FORM\") {\n\t form = Dropzone.createElement(\"
\");\n\t form.appendChild(fields);\n\t } else {\n\t this.element.setAttribute(\"enctype\", \"multipart/form-data\");\n\t this.element.setAttribute(\"method\", this.options.method);\n\t }\n\t return form != null ? form : fields;\n\t };\n\t\n\t Dropzone.prototype.getExistingFallback = function() {\n\t var fallback, getFallback, tagName, _i, _len, _ref;\n\t getFallback = function(elements) {\n\t var el, _i, _len;\n\t for (_i = 0, _len = elements.length; _i < _len; _i++) {\n\t el = elements[_i];\n\t if (/(^| )fallback($| )/.test(el.className)) {\n\t return el;\n\t }\n\t }\n\t };\n\t _ref = [\"div\", \"form\"];\n\t for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n\t tagName = _ref[_i];\n\t if (fallback = getFallback(this.element.getElementsByTagName(tagName))) {\n\t return fallback;\n\t }\n\t }\n\t };\n\t\n\t Dropzone.prototype.setupEventListeners = function() {\n\t var elementListeners, event, listener, _i, _len, _ref, _results;\n\t _ref = this.listeners;\n\t _results = [];\n\t for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n\t elementListeners = _ref[_i];\n\t _results.push((function() {\n\t var _ref1, _results1;\n\t _ref1 = elementListeners.events;\n\t _results1 = [];\n\t for (event in _ref1) {\n\t listener = _ref1[event];\n\t _results1.push(elementListeners.element.addEventListener(event, listener, false));\n\t }\n\t return _results1;\n\t })());\n\t }\n\t return _results;\n\t };\n\t\n\t Dropzone.prototype.removeEventListeners = function() {\n\t var elementListeners, event, listener, _i, _len, _ref, _results;\n\t _ref = this.listeners;\n\t _results = [];\n\t for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n\t elementListeners = _ref[_i];\n\t _results.push((function() {\n\t var _ref1, _results1;\n\t _ref1 = elementListeners.events;\n\t _results1 = [];\n\t for (event in _ref1) {\n\t listener = _ref1[event];\n\t _results1.push(elementListeners.element.removeEventListener(event, listener, false));\n\t }\n\t return _results1;\n\t })());\n\t }\n\t return _results;\n\t };\n\t\n\t Dropzone.prototype.disable = function() {\n\t var file, _i, _len, _ref, _results;\n\t this.clickableElements.forEach(function(element) {\n\t return element.classList.remove(\"dz-clickable\");\n\t });\n\t this.removeEventListeners();\n\t _ref = this.files;\n\t _results = [];\n\t for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n\t file = _ref[_i];\n\t _results.push(this.cancelUpload(file));\n\t }\n\t return _results;\n\t };\n\t\n\t Dropzone.prototype.enable = function() {\n\t this.clickableElements.forEach(function(element) {\n\t return element.classList.add(\"dz-clickable\");\n\t });\n\t return this.setupEventListeners();\n\t };\n\t\n\t Dropzone.prototype.filesize = function(size) {\n\t var cutoff, i, selectedSize, selectedUnit, unit, units, _i, _len;\n\t selectedSize = 0;\n\t selectedUnit = \"b\";\n\t if (size > 0) {\n\t units = ['TB', 'GB', 'MB', 'KB', 'b'];\n\t for (i = _i = 0, _len = units.length; _i < _len; i = ++_i) {\n\t unit = units[i];\n\t cutoff = Math.pow(this.options.filesizeBase, 4 - i) / 10;\n\t if (size >= cutoff) {\n\t selectedSize = size / Math.pow(this.options.filesizeBase, 4 - i);\n\t selectedUnit = unit;\n\t break;\n\t }\n\t }\n\t selectedSize = Math.round(10 * selectedSize) / 10;\n\t }\n\t return \"\" + selectedSize + \" \" + selectedUnit;\n\t };\n\t\n\t Dropzone.prototype._updateMaxFilesReachedClass = function() {\n\t if ((this.options.maxFiles != null) && this.getAcceptedFiles().length >= this.options.maxFiles) {\n\t if (this.getAcceptedFiles().length === this.options.maxFiles) {\n\t this.emit('maxfilesreached', this.files);\n\t }\n\t return this.element.classList.add(\"dz-max-files-reached\");\n\t } else {\n\t return this.element.classList.remove(\"dz-max-files-reached\");\n\t }\n\t };\n\t\n\t Dropzone.prototype.drop = function(e) {\n\t var files, items;\n\t if (!e.dataTransfer) {\n\t return;\n\t }\n\t this.emit(\"drop\", e);\n\t files = e.dataTransfer.files;\n\t this.emit(\"addedfiles\", files);\n\t if (files.length) {\n\t items = e.dataTransfer.items;\n\t if (items && items.length && (items[0].webkitGetAsEntry != null)) {\n\t this._addFilesFromItems(items);\n\t } else {\n\t this.handleFiles(files);\n\t }\n\t }\n\t };\n\t\n\t Dropzone.prototype.paste = function(e) {\n\t var items, _ref;\n\t if ((e != null ? (_ref = e.clipboardData) != null ? _ref.items : void 0 : void 0) == null) {\n\t return;\n\t }\n\t this.emit(\"paste\", e);\n\t items = e.clipboardData.items;\n\t if (items.length) {\n\t return this._addFilesFromItems(items);\n\t }\n\t };\n\t\n\t Dropzone.prototype.handleFiles = function(files) {\n\t var file, _i, _len, _results;\n\t _results = [];\n\t for (_i = 0, _len = files.length; _i < _len; _i++) {\n\t file = files[_i];\n\t _results.push(this.addFile(file));\n\t }\n\t return _results;\n\t };\n\t\n\t Dropzone.prototype._addFilesFromItems = function(items) {\n\t var entry, item, _i, _len, _results;\n\t _results = [];\n\t for (_i = 0, _len = items.length; _i < _len; _i++) {\n\t item = items[_i];\n\t if ((item.webkitGetAsEntry != null) && (entry = item.webkitGetAsEntry())) {\n\t if (entry.isFile) {\n\t _results.push(this.addFile(item.getAsFile()));\n\t } else if (entry.isDirectory) {\n\t _results.push(this._addFilesFromDirectory(entry, entry.name));\n\t } else {\n\t _results.push(void 0);\n\t }\n\t } else if (item.getAsFile != null) {\n\t if ((item.kind == null) || item.kind === \"file\") {\n\t _results.push(this.addFile(item.getAsFile()));\n\t } else {\n\t _results.push(void 0);\n\t }\n\t } else {\n\t _results.push(void 0);\n\t }\n\t }\n\t return _results;\n\t };\n\t\n\t Dropzone.prototype._addFilesFromDirectory = function(directory, path) {\n\t var dirReader, errorHandler, readEntries;\n\t dirReader = directory.createReader();\n\t errorHandler = function(error) {\n\t return typeof console !== \"undefined\" && console !== null ? typeof console.log === \"function\" ? console.log(error) : void 0 : void 0;\n\t };\n\t readEntries = (function(_this) {\n\t return function() {\n\t return dirReader.readEntries(function(entries) {\n\t var entry, _i, _len;\n\t if (entries.length > 0) {\n\t for (_i = 0, _len = entries.length; _i < _len; _i++) {\n\t entry = entries[_i];\n\t if (entry.isFile) {\n\t entry.file(function(file) {\n\t if (_this.options.ignoreHiddenFiles && file.name.substring(0, 1) === '.') {\n\t return;\n\t }\n\t file.fullPath = \"\" + path + \"/\" + file.name;\n\t return _this.addFile(file);\n\t });\n\t } else if (entry.isDirectory) {\n\t _this._addFilesFromDirectory(entry, \"\" + path + \"/\" + entry.name);\n\t }\n\t }\n\t readEntries();\n\t }\n\t return null;\n\t }, errorHandler);\n\t };\n\t })(this);\n\t return readEntries();\n\t };\n\t\n\t Dropzone.prototype.accept = function(file, done) {\n\t if (file.size > this.options.maxFilesize * 1024 * 1024) {\n\t return done(this.options.dictFileTooBig.replace(\"{{filesize}}\", Math.round(file.size / 1024 / 10.24) / 100).replace(\"{{maxFilesize}}\", this.options.maxFilesize));\n\t } else if (!Dropzone.isValidFile(file, this.options.acceptedFiles)) {\n\t return done(this.options.dictInvalidFileType);\n\t } else if ((this.options.maxFiles != null) && this.getAcceptedFiles().length >= this.options.maxFiles) {\n\t done(this.options.dictMaxFilesExceeded.replace(\"{{maxFiles}}\", this.options.maxFiles));\n\t return this.emit(\"maxfilesexceeded\", file);\n\t } else {\n\t return this.options.accept.call(this, file, done);\n\t }\n\t };\n\t\n\t Dropzone.prototype.addFile = function(file) {\n\t file.upload = {\n\t progress: 0,\n\t total: file.size,\n\t bytesSent: 0\n\t };\n\t this.files.push(file);\n\t file.status = Dropzone.ADDED;\n\t this.emit(\"addedfile\", file);\n\t this._enqueueThumbnail(file);\n\t return this.accept(file, (function(_this) {\n\t return function(error) {\n\t if (error) {\n\t file.accepted = false;\n\t _this._errorProcessing([file], error);\n\t } else {\n\t file.accepted = true;\n\t if (_this.options.autoQueue) {\n\t _this.enqueueFile(file);\n\t }\n\t }\n\t return _this._updateMaxFilesReachedClass();\n\t };\n\t })(this));\n\t };\n\t\n\t Dropzone.prototype.enqueueFiles = function(files) {\n\t var file, _i, _len;\n\t for (_i = 0, _len = files.length; _i < _len; _i++) {\n\t file = files[_i];\n\t this.enqueueFile(file);\n\t }\n\t return null;\n\t };\n\t\n\t Dropzone.prototype.enqueueFile = function(file) {\n\t if (file.status === Dropzone.ADDED && file.accepted === true) {\n\t file.status = Dropzone.QUEUED;\n\t if (this.options.autoProcessQueue) {\n\t return setTimeout(((function(_this) {\n\t return function() {\n\t return _this.processQueue();\n\t };\n\t })(this)), 0);\n\t }\n\t } else {\n\t throw new Error(\"This file can't be queued because it has already been processed or was rejected.\");\n\t }\n\t };\n\t\n\t Dropzone.prototype._thumbnailQueue = [];\n\t\n\t Dropzone.prototype._processingThumbnail = false;\n\t\n\t Dropzone.prototype._enqueueThumbnail = function(file) {\n\t if (this.options.createImageThumbnails && file.type.match(/image.*/) && file.size <= this.options.maxThumbnailFilesize * 1024 * 1024) {\n\t this._thumbnailQueue.push(file);\n\t return setTimeout(((function(_this) {\n\t return function() {\n\t return _this._processThumbnailQueue();\n\t };\n\t })(this)), 0);\n\t }\n\t };\n\t\n\t Dropzone.prototype._processThumbnailQueue = function() {\n\t if (this._processingThumbnail || this._thumbnailQueue.length === 0) {\n\t return;\n\t }\n\t this._processingThumbnail = true;\n\t return this.createThumbnail(this._thumbnailQueue.shift(), (function(_this) {\n\t return function() {\n\t _this._processingThumbnail = false;\n\t return _this._processThumbnailQueue();\n\t };\n\t })(this));\n\t };\n\t\n\t Dropzone.prototype.removeFile = function(file) {\n\t if (file.status === Dropzone.UPLOADING) {\n\t this.cancelUpload(file);\n\t }\n\t this.files = without(this.files, file);\n\t this.emit(\"removedfile\", file);\n\t if (this.files.length === 0) {\n\t return this.emit(\"reset\");\n\t }\n\t };\n\t\n\t Dropzone.prototype.removeAllFiles = function(cancelIfNecessary) {\n\t var file, _i, _len, _ref;\n\t if (cancelIfNecessary == null) {\n\t cancelIfNecessary = false;\n\t }\n\t _ref = this.files.slice();\n\t for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n\t file = _ref[_i];\n\t if (file.status !== Dropzone.UPLOADING || cancelIfNecessary) {\n\t this.removeFile(file);\n\t }\n\t }\n\t return null;\n\t };\n\t\n\t Dropzone.prototype.createThumbnail = function(file, callback) {\n\t var fileReader;\n\t fileReader = new FileReader;\n\t fileReader.onload = (function(_this) {\n\t return function() {\n\t if (file.type === \"image/svg+xml\") {\n\t _this.emit(\"thumbnail\", file, fileReader.result);\n\t if (callback != null) {\n\t callback();\n\t }\n\t return;\n\t }\n\t return _this.createThumbnailFromUrl(file, fileReader.result, callback);\n\t };\n\t })(this);\n\t return fileReader.readAsDataURL(file);\n\t };\n\t\n\t Dropzone.prototype.createThumbnailFromUrl = function(file, imageUrl, callback, crossOrigin) {\n\t var img;\n\t img = document.createElement(\"img\");\n\t if (crossOrigin) {\n\t img.crossOrigin = crossOrigin;\n\t }\n\t img.onload = (function(_this) {\n\t return function() {\n\t var canvas, ctx, resizeInfo, thumbnail, _ref, _ref1, _ref2, _ref3;\n\t file.width = img.width;\n\t file.height = img.height;\n\t resizeInfo = _this.options.resize.call(_this, file);\n\t if (resizeInfo.trgWidth == null) {\n\t resizeInfo.trgWidth = resizeInfo.optWidth;\n\t }\n\t if (resizeInfo.trgHeight == null) {\n\t resizeInfo.trgHeight = resizeInfo.optHeight;\n\t }\n\t canvas = document.createElement(\"canvas\");\n\t ctx = canvas.getContext(\"2d\");\n\t canvas.width = resizeInfo.trgWidth;\n\t canvas.height = resizeInfo.trgHeight;\n\t drawImageIOSFix(ctx, img, (_ref = resizeInfo.srcX) != null ? _ref : 0, (_ref1 = resizeInfo.srcY) != null ? _ref1 : 0, resizeInfo.srcWidth, resizeInfo.srcHeight, (_ref2 = resizeInfo.trgX) != null ? _ref2 : 0, (_ref3 = resizeInfo.trgY) != null ? _ref3 : 0, resizeInfo.trgWidth, resizeInfo.trgHeight);\n\t thumbnail = canvas.toDataURL(\"image/png\");\n\t _this.emit(\"thumbnail\", file, thumbnail);\n\t if (callback != null) {\n\t return callback();\n\t }\n\t };\n\t })(this);\n\t if (callback != null) {\n\t img.onerror = callback;\n\t }\n\t return img.src = imageUrl;\n\t };\n\t\n\t Dropzone.prototype.processQueue = function() {\n\t var i, parallelUploads, processingLength, queuedFiles;\n\t parallelUploads = this.options.parallelUploads;\n\t processingLength = this.getUploadingFiles().length;\n\t i = processingLength;\n\t if (processingLength >= parallelUploads) {\n\t return;\n\t }\n\t queuedFiles = this.getQueuedFiles();\n\t if (!(queuedFiles.length > 0)) {\n\t return;\n\t }\n\t if (this.options.uploadMultiple) {\n\t return this.processFiles(queuedFiles.slice(0, parallelUploads - processingLength));\n\t } else {\n\t while (i < parallelUploads) {\n\t if (!queuedFiles.length) {\n\t return;\n\t }\n\t this.processFile(queuedFiles.shift());\n\t i++;\n\t }\n\t }\n\t };\n\t\n\t Dropzone.prototype.processFile = function(file) {\n\t return this.processFiles([file]);\n\t };\n\t\n\t Dropzone.prototype.processFiles = function(files) {\n\t var file, _i, _len;\n\t for (_i = 0, _len = files.length; _i < _len; _i++) {\n\t file = files[_i];\n\t file.processing = true;\n\t file.status = Dropzone.UPLOADING;\n\t this.emit(\"processing\", file);\n\t }\n\t if (this.options.uploadMultiple) {\n\t this.emit(\"processingmultiple\", files);\n\t }\n\t return this.uploadFiles(files);\n\t };\n\t\n\t Dropzone.prototype._getFilesWithXhr = function(xhr) {\n\t var file, files;\n\t return files = (function() {\n\t var _i, _len, _ref, _results;\n\t _ref = this.files;\n\t _results = [];\n\t for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n\t file = _ref[_i];\n\t if (file.xhr === xhr) {\n\t _results.push(file);\n\t }\n\t }\n\t return _results;\n\t }).call(this);\n\t };\n\t\n\t Dropzone.prototype.cancelUpload = function(file) {\n\t var groupedFile, groupedFiles, _i, _j, _len, _len1, _ref;\n\t if (file.status === Dropzone.UPLOADING) {\n\t groupedFiles = this._getFilesWithXhr(file.xhr);\n\t for (_i = 0, _len = groupedFiles.length; _i < _len; _i++) {\n\t groupedFile = groupedFiles[_i];\n\t groupedFile.status = Dropzone.CANCELED;\n\t }\n\t file.xhr.abort();\n\t for (_j = 0, _len1 = groupedFiles.length; _j < _len1; _j++) {\n\t groupedFile = groupedFiles[_j];\n\t this.emit(\"canceled\", groupedFile);\n\t }\n\t if (this.options.uploadMultiple) {\n\t this.emit(\"canceledmultiple\", groupedFiles);\n\t }\n\t } else if ((_ref = file.status) === Dropzone.ADDED || _ref === Dropzone.QUEUED) {\n\t file.status = Dropzone.CANCELED;\n\t this.emit(\"canceled\", file);\n\t if (this.options.uploadMultiple) {\n\t this.emit(\"canceledmultiple\", [file]);\n\t }\n\t }\n\t if (this.options.autoProcessQueue) {\n\t return this.processQueue();\n\t }\n\t };\n\t\n\t resolveOption = function() {\n\t var args, option;\n\t option = arguments[0], args = 2 <= arguments.length ? __slice.call(arguments, 1) : [];\n\t if (typeof option === 'function') {\n\t return option.apply(this, args);\n\t }\n\t return option;\n\t };\n\t\n\t Dropzone.prototype.uploadFile = function(file) {\n\t return this.uploadFiles([file]);\n\t };\n\t\n\t Dropzone.prototype.uploadFiles = function(files) {\n\t var file, formData, handleError, headerName, headerValue, headers, i, input, inputName, inputType, key, method, option, progressObj, response, updateProgress, url, value, xhr, _i, _j, _k, _l, _len, _len1, _len2, _len3, _m, _ref, _ref1, _ref2, _ref3, _ref4, _ref5;\n\t xhr = new XMLHttpRequest();\n\t for (_i = 0, _len = files.length; _i < _len; _i++) {\n\t file = files[_i];\n\t file.xhr = xhr;\n\t }\n\t method = resolveOption(this.options.method, files);\n\t url = resolveOption(this.options.url, files);\n\t xhr.open(method, url, true);\n\t xhr.withCredentials = !!this.options.withCredentials;\n\t response = null;\n\t handleError = (function(_this) {\n\t return function() {\n\t var _j, _len1, _results;\n\t _results = [];\n\t for (_j = 0, _len1 = files.length; _j < _len1; _j++) {\n\t file = files[_j];\n\t _results.push(_this._errorProcessing(files, response || _this.options.dictResponseError.replace(\"{{statusCode}}\", xhr.status), xhr));\n\t }\n\t return _results;\n\t };\n\t })(this);\n\t updateProgress = (function(_this) {\n\t return function(e) {\n\t var allFilesFinished, progress, _j, _k, _l, _len1, _len2, _len3, _results;\n\t if (e != null) {\n\t progress = 100 * e.loaded / e.total;\n\t for (_j = 0, _len1 = files.length; _j < _len1; _j++) {\n\t file = files[_j];\n\t file.upload = {\n\t progress: progress,\n\t total: e.total,\n\t bytesSent: e.loaded\n\t };\n\t }\n\t } else {\n\t allFilesFinished = true;\n\t progress = 100;\n\t for (_k = 0, _len2 = files.length; _k < _len2; _k++) {\n\t file = files[_k];\n\t if (!(file.upload.progress === 100 && file.upload.bytesSent === file.upload.total)) {\n\t allFilesFinished = false;\n\t }\n\t file.upload.progress = progress;\n\t file.upload.bytesSent = file.upload.total;\n\t }\n\t if (allFilesFinished) {\n\t return;\n\t }\n\t }\n\t _results = [];\n\t for (_l = 0, _len3 = files.length; _l < _len3; _l++) {\n\t file = files[_l];\n\t _results.push(_this.emit(\"uploadprogress\", file, progress, file.upload.bytesSent));\n\t }\n\t return _results;\n\t };\n\t })(this);\n\t xhr.onload = (function(_this) {\n\t return function(e) {\n\t var _ref;\n\t if (files[0].status === Dropzone.CANCELED) {\n\t return;\n\t }\n\t if (xhr.readyState !== 4) {\n\t return;\n\t }\n\t response = xhr.responseText;\n\t if (xhr.getResponseHeader(\"content-type\") && ~xhr.getResponseHeader(\"content-type\").indexOf(\"application/json\")) {\n\t try {\n\t response = JSON.parse(response);\n\t } catch (_error) {\n\t e = _error;\n\t response = \"Invalid JSON response from server.\";\n\t }\n\t }\n\t updateProgress();\n\t if (!((200 <= (_ref = xhr.status) && _ref < 300))) {\n\t return handleError();\n\t } else {\n\t return _this._finished(files, response, e);\n\t }\n\t };\n\t })(this);\n\t xhr.onerror = (function(_this) {\n\t return function() {\n\t if (files[0].status === Dropzone.CANCELED) {\n\t return;\n\t }\n\t return handleError();\n\t };\n\t })(this);\n\t progressObj = (_ref = xhr.upload) != null ? _ref : xhr;\n\t progressObj.onprogress = updateProgress;\n\t headers = {\n\t \"Accept\": \"application/json\",\n\t \"Cache-Control\": \"no-cache\",\n\t \"X-Requested-With\": \"XMLHttpRequest\"\n\t };\n\t if (this.options.headers) {\n\t extend(headers, this.options.headers);\n\t }\n\t for (headerName in headers) {\n\t headerValue = headers[headerName];\n\t if (headerValue) {\n\t xhr.setRequestHeader(headerName, headerValue);\n\t }\n\t }\n\t formData = new FormData();\n\t if (this.options.params) {\n\t _ref1 = this.options.params;\n\t for (key in _ref1) {\n\t value = _ref1[key];\n\t formData.append(key, value);\n\t }\n\t }\n\t for (_j = 0, _len1 = files.length; _j < _len1; _j++) {\n\t file = files[_j];\n\t this.emit(\"sending\", file, xhr, formData);\n\t }\n\t if (this.options.uploadMultiple) {\n\t this.emit(\"sendingmultiple\", files, xhr, formData);\n\t }\n\t if (this.element.tagName === \"FORM\") {\n\t _ref2 = this.element.querySelectorAll(\"input, textarea, select, button\");\n\t for (_k = 0, _len2 = _ref2.length; _k < _len2; _k++) {\n\t input = _ref2[_k];\n\t inputName = input.getAttribute(\"name\");\n\t inputType = input.getAttribute(\"type\");\n\t if (input.tagName === \"SELECT\" && input.hasAttribute(\"multiple\")) {\n\t _ref3 = input.options;\n\t for (_l = 0, _len3 = _ref3.length; _l < _len3; _l++) {\n\t option = _ref3[_l];\n\t if (option.selected) {\n\t formData.append(inputName, option.value);\n\t }\n\t }\n\t } else if (!inputType || ((_ref4 = inputType.toLowerCase()) !== \"checkbox\" && _ref4 !== \"radio\") || input.checked) {\n\t formData.append(inputName, input.value);\n\t }\n\t }\n\t }\n\t for (i = _m = 0, _ref5 = files.length - 1; 0 <= _ref5 ? _m <= _ref5 : _m >= _ref5; i = 0 <= _ref5 ? ++_m : --_m) {\n\t formData.append(this._getParamName(i), files[i], this._renameFilename(files[i].name));\n\t }\n\t return this.submitRequest(xhr, formData, files);\n\t };\n\t\n\t Dropzone.prototype.submitRequest = function(xhr, formData, files) {\n\t return xhr.send(formData);\n\t };\n\t\n\t Dropzone.prototype._finished = function(files, responseText, e) {\n\t var file, _i, _len;\n\t for (_i = 0, _len = files.length; _i < _len; _i++) {\n\t file = files[_i];\n\t file.status = Dropzone.SUCCESS;\n\t this.emit(\"success\", file, responseText, e);\n\t this.emit(\"complete\", file);\n\t }\n\t if (this.options.uploadMultiple) {\n\t this.emit(\"successmultiple\", files, responseText, e);\n\t this.emit(\"completemultiple\", files);\n\t }\n\t if (this.options.autoProcessQueue) {\n\t return this.processQueue();\n\t }\n\t };\n\t\n\t Dropzone.prototype._errorProcessing = function(files, message, xhr) {\n\t var file, _i, _len;\n\t for (_i = 0, _len = files.length; _i < _len; _i++) {\n\t file = files[_i];\n\t file.status = Dropzone.ERROR;\n\t this.emit(\"error\", file, message, xhr);\n\t this.emit(\"complete\", file);\n\t }\n\t if (this.options.uploadMultiple) {\n\t this.emit(\"errormultiple\", files, message, xhr);\n\t this.emit(\"completemultiple\", files);\n\t }\n\t if (this.options.autoProcessQueue) {\n\t return this.processQueue();\n\t }\n\t };\n\t\n\t return Dropzone;\n\t\n\t })(Emitter);\n\t\n\t Dropzone.version = \"4.3.0\";\n\t\n\t Dropzone.options = {};\n\t\n\t Dropzone.optionsForElement = function(element) {\n\t if (element.getAttribute(\"id\")) {\n\t return Dropzone.options[camelize(element.getAttribute(\"id\"))];\n\t } else {\n\t return void 0;\n\t }\n\t };\n\t\n\t Dropzone.instances = [];\n\t\n\t Dropzone.forElement = function(element) {\n\t if (typeof element === \"string\") {\n\t element = document.querySelector(element);\n\t }\n\t if ((element != null ? element.dropzone : void 0) == null) {\n\t throw new Error(\"No Dropzone found for given element. This is probably because you're trying to access it before Dropzone had the time to initialize. Use the `init` option to setup any additional observers on your Dropzone.\");\n\t }\n\t return element.dropzone;\n\t };\n\t\n\t Dropzone.autoDiscover = true;\n\t\n\t Dropzone.discover = function() {\n\t var checkElements, dropzone, dropzones, _i, _len, _results;\n\t if (document.querySelectorAll) {\n\t dropzones = document.querySelectorAll(\".dropzone\");\n\t } else {\n\t dropzones = [];\n\t checkElements = function(elements) {\n\t var el, _i, _len, _results;\n\t _results = [];\n\t for (_i = 0, _len = elements.length; _i < _len; _i++) {\n\t el = elements[_i];\n\t if (/(^| )dropzone($| )/.test(el.className)) {\n\t _results.push(dropzones.push(el));\n\t } else {\n\t _results.push(void 0);\n\t }\n\t }\n\t return _results;\n\t };\n\t checkElements(document.getElementsByTagName(\"div\"));\n\t checkElements(document.getElementsByTagName(\"form\"));\n\t }\n\t _results = [];\n\t for (_i = 0, _len = dropzones.length; _i < _len; _i++) {\n\t dropzone = dropzones[_i];\n\t if (Dropzone.optionsForElement(dropzone) !== false) {\n\t _results.push(new Dropzone(dropzone));\n\t } else {\n\t _results.push(void 0);\n\t }\n\t }\n\t return _results;\n\t };\n\t\n\t Dropzone.blacklistedBrowsers = [/opera.*Macintosh.*version\\/12/i];\n\t\n\t Dropzone.isBrowserSupported = function() {\n\t var capableBrowser, regex, _i, _len, _ref;\n\t capableBrowser = true;\n\t if (window.File && window.FileReader && window.FileList && window.Blob && window.FormData && document.querySelector) {\n\t if (!(\"classList\" in document.createElement(\"a\"))) {\n\t capableBrowser = false;\n\t } else {\n\t _ref = Dropzone.blacklistedBrowsers;\n\t for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n\t regex = _ref[_i];\n\t if (regex.test(navigator.userAgent)) {\n\t capableBrowser = false;\n\t continue;\n\t }\n\t }\n\t }\n\t } else {\n\t capableBrowser = false;\n\t }\n\t return capableBrowser;\n\t };\n\t\n\t without = function(list, rejectedItem) {\n\t var item, _i, _len, _results;\n\t _results = [];\n\t for (_i = 0, _len = list.length; _i < _len; _i++) {\n\t item = list[_i];\n\t if (item !== rejectedItem) {\n\t _results.push(item);\n\t }\n\t }\n\t return _results;\n\t };\n\t\n\t camelize = function(str) {\n\t return str.replace(/[\\-_](\\w)/g, function(match) {\n\t return match.charAt(1).toUpperCase();\n\t });\n\t };\n\t\n\t Dropzone.createElement = function(string) {\n\t var div;\n\t div = document.createElement(\"div\");\n\t div.innerHTML = string;\n\t return div.childNodes[0];\n\t };\n\t\n\t Dropzone.elementInside = function(element, container) {\n\t if (element === container) {\n\t return true;\n\t }\n\t while (element = element.parentNode) {\n\t if (element === container) {\n\t return true;\n\t }\n\t }\n\t return false;\n\t };\n\t\n\t Dropzone.getElement = function(el, name) {\n\t var element;\n\t if (typeof el === \"string\") {\n\t element = document.querySelector(el);\n\t } else if (el.nodeType != null) {\n\t element = el;\n\t }\n\t if (element == null) {\n\t throw new Error(\"Invalid `\" + name + \"` option provided. Please provide a CSS selector or a plain HTML element.\");\n\t }\n\t return element;\n\t };\n\t\n\t Dropzone.getElements = function(els, name) {\n\t var e, el, elements, _i, _j, _len, _len1, _ref;\n\t if (els instanceof Array) {\n\t elements = [];\n\t try {\n\t for (_i = 0, _len = els.length; _i < _len; _i++) {\n\t el = els[_i];\n\t elements.push(this.getElement(el, name));\n\t }\n\t } catch (_error) {\n\t e = _error;\n\t elements = null;\n\t }\n\t } else if (typeof els === \"string\") {\n\t elements = [];\n\t _ref = document.querySelectorAll(els);\n\t for (_j = 0, _len1 = _ref.length; _j < _len1; _j++) {\n\t el = _ref[_j];\n\t elements.push(el);\n\t }\n\t } else if (els.nodeType != null) {\n\t elements = [els];\n\t }\n\t if (!((elements != null) && elements.length)) {\n\t throw new Error(\"Invalid `\" + name + \"` option provided. Please provide a CSS selector, a plain HTML element or a list of those.\");\n\t }\n\t return elements;\n\t };\n\t\n\t Dropzone.confirm = function(question, accepted, rejected) {\n\t if (window.confirm(question)) {\n\t return accepted();\n\t } else if (rejected != null) {\n\t return rejected();\n\t }\n\t };\n\t\n\t Dropzone.isValidFile = function(file, acceptedFiles) {\n\t var baseMimeType, mimeType, validType, _i, _len;\n\t if (!acceptedFiles) {\n\t return true;\n\t }\n\t acceptedFiles = acceptedFiles.split(\",\");\n\t mimeType = file.type;\n\t baseMimeType = mimeType.replace(/\\/.*$/, \"\");\n\t for (_i = 0, _len = acceptedFiles.length; _i < _len; _i++) {\n\t validType = acceptedFiles[_i];\n\t validType = validType.trim();\n\t if (validType.charAt(0) === \".\") {\n\t if (file.name.toLowerCase().indexOf(validType.toLowerCase(), file.name.length - validType.length) !== -1) {\n\t return true;\n\t }\n\t } else if (/\\/\\*$/.test(validType)) {\n\t if (baseMimeType === validType.replace(/\\/.*$/, \"\")) {\n\t return true;\n\t }\n\t } else {\n\t if (mimeType === validType) {\n\t return true;\n\t }\n\t }\n\t }\n\t return false;\n\t };\n\t\n\t if (typeof jQuery !== \"undefined\" && jQuery !== null) {\n\t jQuery.fn.dropzone = function(options) {\n\t return this.each(function() {\n\t return new Dropzone(this, options);\n\t });\n\t };\n\t }\n\t\n\t if (typeof module !== \"undefined\" && module !== null) {\n\t module.exports = Dropzone;\n\t } else {\n\t window.Dropzone = Dropzone;\n\t }\n\t\n\t Dropzone.ADDED = \"added\";\n\t\n\t Dropzone.QUEUED = \"queued\";\n\t\n\t Dropzone.ACCEPTED = Dropzone.QUEUED;\n\t\n\t Dropzone.UPLOADING = \"uploading\";\n\t\n\t Dropzone.PROCESSING = Dropzone.UPLOADING;\n\t\n\t Dropzone.CANCELED = \"canceled\";\n\t\n\t Dropzone.ERROR = \"error\";\n\t\n\t Dropzone.SUCCESS = \"success\";\n\t\n\t\n\t /*\n\t\n\t Bugfix for iOS 6 and 7\n\t Source: http://stackoverflow.com/questions/11929099/html5-canvas-drawimage-ratio-bug-ios\n\t based on the work of https://github.com/stomita/ios-imagefile-megapixel\n\t */\n\t\n\t detectVerticalSquash = function(img) {\n\t var alpha, canvas, ctx, data, ey, ih, iw, py, ratio, sy;\n\t iw = img.naturalWidth;\n\t ih = img.naturalHeight;\n\t canvas = document.createElement(\"canvas\");\n\t canvas.width = 1;\n\t canvas.height = ih;\n\t ctx = canvas.getContext(\"2d\");\n\t ctx.drawImage(img, 0, 0);\n\t data = ctx.getImageData(0, 0, 1, ih).data;\n\t sy = 0;\n\t ey = ih;\n\t py = ih;\n\t while (py > sy) {\n\t alpha = data[(py - 1) * 4 + 3];\n\t if (alpha === 0) {\n\t ey = py;\n\t } else {\n\t sy = py;\n\t }\n\t py = (ey + sy) >> 1;\n\t }\n\t ratio = py / ih;\n\t if (ratio === 0) {\n\t return 1;\n\t } else {\n\t return ratio;\n\t }\n\t };\n\t\n\t drawImageIOSFix = function(ctx, img, sx, sy, sw, sh, dx, dy, dw, dh) {\n\t var vertSquashRatio;\n\t vertSquashRatio = detectVerticalSquash(img);\n\t return ctx.drawImage(img, sx, sy, sw, sh, dx, dy, dw, dh / vertSquashRatio);\n\t };\n\t\n\t\n\t /*\n\t * contentloaded.js\n\t *\n\t * Author: Diego Perini (diego.perini at gmail.com)\n\t * Summary: cross-browser wrapper for DOMContentLoaded\n\t * Updated: 20101020\n\t * License: MIT\n\t * Version: 1.2\n\t *\n\t * URL:\n\t * http://javascript.nwbox.com/ContentLoaded/\n\t * http://javascript.nwbox.com/ContentLoaded/MIT-LICENSE\n\t */\n\t\n\t contentLoaded = function(win, fn) {\n\t var add, doc, done, init, poll, pre, rem, root, top;\n\t done = false;\n\t top = true;\n\t doc = win.document;\n\t root = doc.documentElement;\n\t add = (doc.addEventListener ? \"addEventListener\" : \"attachEvent\");\n\t rem = (doc.addEventListener ? \"removeEventListener\" : \"detachEvent\");\n\t pre = (doc.addEventListener ? \"\" : \"on\");\n\t init = function(e) {\n\t if (e.type === \"readystatechange\" && doc.readyState !== \"complete\") {\n\t return;\n\t }\n\t (e.type === \"load\" ? win : doc)[rem](pre + e.type, init, false);\n\t if (!done && (done = true)) {\n\t return fn.call(win, e.type || e);\n\t }\n\t };\n\t poll = function() {\n\t var e;\n\t try {\n\t root.doScroll(\"left\");\n\t } catch (_error) {\n\t e = _error;\n\t setTimeout(poll, 50);\n\t return;\n\t }\n\t return init(\"poll\");\n\t };\n\t if (doc.readyState !== \"complete\") {\n\t if (doc.createEventObject && root.doScroll) {\n\t try {\n\t top = !win.frameElement;\n\t } catch (_error) {}\n\t if (top) {\n\t poll();\n\t }\n\t }\n\t doc[add](pre + \"DOMContentLoaded\", init, false);\n\t doc[add](pre + \"readystatechange\", init, false);\n\t return win[add](pre + \"load\", init, false);\n\t }\n\t };\n\t\n\t Dropzone._autoDiscoverFunction = function() {\n\t if (Dropzone.autoDiscover) {\n\t return Dropzone.discover();\n\t }\n\t };\n\t\n\t contentLoaded(window, Dropzone._autoDiscoverFunction);\n\t\n\t}).call(this);\n\t\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(30)(module)))\n\n/***/ },\n/* 60 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(global, module) {/**\n\t * lodash (Custom Build) \n\t * Build: `lodash modularize exports=\"npm\" -o ./`\n\t * Copyright jQuery Foundation and other contributors \n\t * Released under MIT license \n\t * Based on Underscore.js 1.8.3 \n\t * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t */\n\t\n\t/** Used as the size to enable large array optimizations. */\n\tvar LARGE_ARRAY_SIZE = 200;\n\t\n\t/** Used to stand-in for `undefined` hash values. */\n\tvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\t\n\t/** Used as references for various `Number` constants. */\n\tvar MAX_SAFE_INTEGER = 9007199254740991;\n\t\n\t/** `Object#toString` result references. */\n\tvar argsTag = '[object Arguments]',\n\t arrayTag = '[object Array]',\n\t boolTag = '[object Boolean]',\n\t dateTag = '[object Date]',\n\t errorTag = '[object Error]',\n\t funcTag = '[object Function]',\n\t genTag = '[object GeneratorFunction]',\n\t mapTag = '[object Map]',\n\t numberTag = '[object Number]',\n\t objectTag = '[object Object]',\n\t promiseTag = '[object Promise]',\n\t regexpTag = '[object RegExp]',\n\t setTag = '[object Set]',\n\t stringTag = '[object String]',\n\t symbolTag = '[object Symbol]',\n\t weakMapTag = '[object WeakMap]';\n\t\n\tvar arrayBufferTag = '[object ArrayBuffer]',\n\t dataViewTag = '[object DataView]',\n\t float32Tag = '[object Float32Array]',\n\t float64Tag = '[object Float64Array]',\n\t int8Tag = '[object Int8Array]',\n\t int16Tag = '[object Int16Array]',\n\t int32Tag = '[object Int32Array]',\n\t uint8Tag = '[object Uint8Array]',\n\t uint8ClampedTag = '[object Uint8ClampedArray]',\n\t uint16Tag = '[object Uint16Array]',\n\t uint32Tag = '[object Uint32Array]';\n\t\n\t/**\n\t * Used to match `RegExp`\n\t * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n\t */\n\tvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\t\n\t/** Used to match `RegExp` flags from their coerced string values. */\n\tvar reFlags = /\\w*$/;\n\t\n\t/** Used to detect host constructors (Safari). */\n\tvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\t\n\t/** Used to detect unsigned integer values. */\n\tvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\t\n\t/** Used to identify `toStringTag` values supported by `_.clone`. */\n\tvar cloneableTags = {};\n\tcloneableTags[argsTag] = cloneableTags[arrayTag] =\n\tcloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\n\tcloneableTags[boolTag] = cloneableTags[dateTag] =\n\tcloneableTags[float32Tag] = cloneableTags[float64Tag] =\n\tcloneableTags[int8Tag] = cloneableTags[int16Tag] =\n\tcloneableTags[int32Tag] = cloneableTags[mapTag] =\n\tcloneableTags[numberTag] = cloneableTags[objectTag] =\n\tcloneableTags[regexpTag] = cloneableTags[setTag] =\n\tcloneableTags[stringTag] = cloneableTags[symbolTag] =\n\tcloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\n\tcloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\n\tcloneableTags[errorTag] = cloneableTags[funcTag] =\n\tcloneableTags[weakMapTag] = false;\n\t\n\t/** Detect free variable `global` from Node.js. */\n\tvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\t\n\t/** Detect free variable `self`. */\n\tvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\t\n\t/** Used as a reference to the global object. */\n\tvar root = freeGlobal || freeSelf || Function('return this')();\n\t\n\t/** Detect free variable `exports`. */\n\tvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\t\n\t/** Detect free variable `module`. */\n\tvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\t\n\t/** Detect the popular CommonJS extension `module.exports`. */\n\tvar moduleExports = freeModule && freeModule.exports === freeExports;\n\t\n\t/**\n\t * Adds the key-value `pair` to `map`.\n\t *\n\t * @private\n\t * @param {Object} map The map to modify.\n\t * @param {Array} pair The key-value pair to add.\n\t * @returns {Object} Returns `map`.\n\t */\n\tfunction addMapEntry(map, pair) {\n\t // Don't return `map.set` because it's not chainable in IE 11.\n\t map.set(pair[0], pair[1]);\n\t return map;\n\t}\n\t\n\t/**\n\t * Adds `value` to `set`.\n\t *\n\t * @private\n\t * @param {Object} set The set to modify.\n\t * @param {*} value The value to add.\n\t * @returns {Object} Returns `set`.\n\t */\n\tfunction addSetEntry(set, value) {\n\t // Don't return `set.add` because it's not chainable in IE 11.\n\t set.add(value);\n\t return set;\n\t}\n\t\n\t/**\n\t * A specialized version of `_.forEach` for arrays without support for\n\t * iteratee shorthands.\n\t *\n\t * @private\n\t * @param {Array} [array] The array to iterate over.\n\t * @param {Function} iteratee The function invoked per iteration.\n\t * @returns {Array} Returns `array`.\n\t */\n\tfunction arrayEach(array, iteratee) {\n\t var index = -1,\n\t length = array ? array.length : 0;\n\t\n\t while (++index < length) {\n\t if (iteratee(array[index], index, array) === false) {\n\t break;\n\t }\n\t }\n\t return array;\n\t}\n\t\n\t/**\n\t * Appends the elements of `values` to `array`.\n\t *\n\t * @private\n\t * @param {Array} array The array to modify.\n\t * @param {Array} values The values to append.\n\t * @returns {Array} Returns `array`.\n\t */\n\tfunction arrayPush(array, values) {\n\t var index = -1,\n\t length = values.length,\n\t offset = array.length;\n\t\n\t while (++index < length) {\n\t array[offset + index] = values[index];\n\t }\n\t return array;\n\t}\n\t\n\t/**\n\t * A specialized version of `_.reduce` for arrays without support for\n\t * iteratee shorthands.\n\t *\n\t * @private\n\t * @param {Array} [array] The array to iterate over.\n\t * @param {Function} iteratee The function invoked per iteration.\n\t * @param {*} [accumulator] The initial value.\n\t * @param {boolean} [initAccum] Specify using the first element of `array` as\n\t * the initial value.\n\t * @returns {*} Returns the accumulated value.\n\t */\n\tfunction arrayReduce(array, iteratee, accumulator, initAccum) {\n\t var index = -1,\n\t length = array ? array.length : 0;\n\t\n\t if (initAccum && length) {\n\t accumulator = array[++index];\n\t }\n\t while (++index < length) {\n\t accumulator = iteratee(accumulator, array[index], index, array);\n\t }\n\t return accumulator;\n\t}\n\t\n\t/**\n\t * The base implementation of `_.times` without support for iteratee shorthands\n\t * or max array length checks.\n\t *\n\t * @private\n\t * @param {number} n The number of times to invoke `iteratee`.\n\t * @param {Function} iteratee The function invoked per iteration.\n\t * @returns {Array} Returns the array of results.\n\t */\n\tfunction baseTimes(n, iteratee) {\n\t var index = -1,\n\t result = Array(n);\n\t\n\t while (++index < n) {\n\t result[index] = iteratee(index);\n\t }\n\t return result;\n\t}\n\t\n\t/**\n\t * Gets the value at `key` of `object`.\n\t *\n\t * @private\n\t * @param {Object} [object] The object to query.\n\t * @param {string} key The key of the property to get.\n\t * @returns {*} Returns the property value.\n\t */\n\tfunction getValue(object, key) {\n\t return object == null ? undefined : object[key];\n\t}\n\t\n\t/**\n\t * Checks if `value` is a host object in IE < 9.\n\t *\n\t * @private\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is a host object, else `false`.\n\t */\n\tfunction isHostObject(value) {\n\t // Many host objects are `Object` objects that can coerce to strings\n\t // despite having improperly defined `toString` methods.\n\t var result = false;\n\t if (value != null && typeof value.toString != 'function') {\n\t try {\n\t result = !!(value + '');\n\t } catch (e) {}\n\t }\n\t return result;\n\t}\n\t\n\t/**\n\t * Converts `map` to its key-value pairs.\n\t *\n\t * @private\n\t * @param {Object} map The map to convert.\n\t * @returns {Array} Returns the key-value pairs.\n\t */\n\tfunction mapToArray(map) {\n\t var index = -1,\n\t result = Array(map.size);\n\t\n\t map.forEach(function(value, key) {\n\t result[++index] = [key, value];\n\t });\n\t return result;\n\t}\n\t\n\t/**\n\t * Creates a unary function that invokes `func` with its argument transformed.\n\t *\n\t * @private\n\t * @param {Function} func The function to wrap.\n\t * @param {Function} transform The argument transform.\n\t * @returns {Function} Returns the new function.\n\t */\n\tfunction overArg(func, transform) {\n\t return function(arg) {\n\t return func(transform(arg));\n\t };\n\t}\n\t\n\t/**\n\t * Converts `set` to an array of its values.\n\t *\n\t * @private\n\t * @param {Object} set The set to convert.\n\t * @returns {Array} Returns the values.\n\t */\n\tfunction setToArray(set) {\n\t var index = -1,\n\t result = Array(set.size);\n\t\n\t set.forEach(function(value) {\n\t result[++index] = value;\n\t });\n\t return result;\n\t}\n\t\n\t/** Used for built-in method references. */\n\tvar arrayProto = Array.prototype,\n\t funcProto = Function.prototype,\n\t objectProto = Object.prototype;\n\t\n\t/** Used to detect overreaching core-js shims. */\n\tvar coreJsData = root['__core-js_shared__'];\n\t\n\t/** Used to detect methods masquerading as native. */\n\tvar maskSrcKey = (function() {\n\t var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n\t return uid ? ('Symbol(src)_1.' + uid) : '';\n\t}());\n\t\n\t/** Used to resolve the decompiled source of functions. */\n\tvar funcToString = funcProto.toString;\n\t\n\t/** Used to check objects for own properties. */\n\tvar hasOwnProperty = objectProto.hasOwnProperty;\n\t\n\t/**\n\t * Used to resolve the\n\t * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n\t * of values.\n\t */\n\tvar objectToString = objectProto.toString;\n\t\n\t/** Used to detect if a method is native. */\n\tvar reIsNative = RegExp('^' +\n\t funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n\t .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n\t);\n\t\n\t/** Built-in value references. */\n\tvar Buffer = moduleExports ? root.Buffer : undefined,\n\t Symbol = root.Symbol,\n\t Uint8Array = root.Uint8Array,\n\t getPrototype = overArg(Object.getPrototypeOf, Object),\n\t objectCreate = Object.create,\n\t propertyIsEnumerable = objectProto.propertyIsEnumerable,\n\t splice = arrayProto.splice;\n\t\n\t/* Built-in method references for those with the same name as other `lodash` methods. */\n\tvar nativeGetSymbols = Object.getOwnPropertySymbols,\n\t nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n\t nativeKeys = overArg(Object.keys, Object);\n\t\n\t/* Built-in method references that are verified to be native. */\n\tvar DataView = getNative(root, 'DataView'),\n\t Map = getNative(root, 'Map'),\n\t Promise = getNative(root, 'Promise'),\n\t Set = getNative(root, 'Set'),\n\t WeakMap = getNative(root, 'WeakMap'),\n\t nativeCreate = getNative(Object, 'create');\n\t\n\t/** Used to detect maps, sets, and weakmaps. */\n\tvar dataViewCtorString = toSource(DataView),\n\t mapCtorString = toSource(Map),\n\t promiseCtorString = toSource(Promise),\n\t setCtorString = toSource(Set),\n\t weakMapCtorString = toSource(WeakMap);\n\t\n\t/** Used to convert symbols to primitives and strings. */\n\tvar symbolProto = Symbol ? Symbol.prototype : undefined,\n\t symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\t\n\t/**\n\t * Creates a hash object.\n\t *\n\t * @private\n\t * @constructor\n\t * @param {Array} [entries] The key-value pairs to cache.\n\t */\n\tfunction Hash(entries) {\n\t var index = -1,\n\t length = entries ? entries.length : 0;\n\t\n\t this.clear();\n\t while (++index < length) {\n\t var entry = entries[index];\n\t this.set(entry[0], entry[1]);\n\t }\n\t}\n\t\n\t/**\n\t * Removes all key-value entries from the hash.\n\t *\n\t * @private\n\t * @name clear\n\t * @memberOf Hash\n\t */\n\tfunction hashClear() {\n\t this.__data__ = nativeCreate ? nativeCreate(null) : {};\n\t}\n\t\n\t/**\n\t * Removes `key` and its value from the hash.\n\t *\n\t * @private\n\t * @name delete\n\t * @memberOf Hash\n\t * @param {Object} hash The hash to modify.\n\t * @param {string} key The key of the value to remove.\n\t * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n\t */\n\tfunction hashDelete(key) {\n\t return this.has(key) && delete this.__data__[key];\n\t}\n\t\n\t/**\n\t * Gets the hash value for `key`.\n\t *\n\t * @private\n\t * @name get\n\t * @memberOf Hash\n\t * @param {string} key The key of the value to get.\n\t * @returns {*} Returns the entry value.\n\t */\n\tfunction hashGet(key) {\n\t var data = this.__data__;\n\t if (nativeCreate) {\n\t var result = data[key];\n\t return result === HASH_UNDEFINED ? undefined : result;\n\t }\n\t return hasOwnProperty.call(data, key) ? data[key] : undefined;\n\t}\n\t\n\t/**\n\t * Checks if a hash value for `key` exists.\n\t *\n\t * @private\n\t * @name has\n\t * @memberOf Hash\n\t * @param {string} key The key of the entry to check.\n\t * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n\t */\n\tfunction hashHas(key) {\n\t var data = this.__data__;\n\t return nativeCreate ? data[key] !== undefined : hasOwnProperty.call(data, key);\n\t}\n\t\n\t/**\n\t * Sets the hash `key` to `value`.\n\t *\n\t * @private\n\t * @name set\n\t * @memberOf Hash\n\t * @param {string} key The key of the value to set.\n\t * @param {*} value The value to set.\n\t * @returns {Object} Returns the hash instance.\n\t */\n\tfunction hashSet(key, value) {\n\t var data = this.__data__;\n\t data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n\t return this;\n\t}\n\t\n\t// Add methods to `Hash`.\n\tHash.prototype.clear = hashClear;\n\tHash.prototype['delete'] = hashDelete;\n\tHash.prototype.get = hashGet;\n\tHash.prototype.has = hashHas;\n\tHash.prototype.set = hashSet;\n\t\n\t/**\n\t * Creates an list cache object.\n\t *\n\t * @private\n\t * @constructor\n\t * @param {Array} [entries] The key-value pairs to cache.\n\t */\n\tfunction ListCache(entries) {\n\t var index = -1,\n\t length = entries ? entries.length : 0;\n\t\n\t this.clear();\n\t while (++index < length) {\n\t var entry = entries[index];\n\t this.set(entry[0], entry[1]);\n\t }\n\t}\n\t\n\t/**\n\t * Removes all key-value entries from the list cache.\n\t *\n\t * @private\n\t * @name clear\n\t * @memberOf ListCache\n\t */\n\tfunction listCacheClear() {\n\t this.__data__ = [];\n\t}\n\t\n\t/**\n\t * Removes `key` and its value from the list cache.\n\t *\n\t * @private\n\t * @name delete\n\t * @memberOf ListCache\n\t * @param {string} key The key of the value to remove.\n\t * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n\t */\n\tfunction listCacheDelete(key) {\n\t var data = this.__data__,\n\t index = assocIndexOf(data, key);\n\t\n\t if (index < 0) {\n\t return false;\n\t }\n\t var lastIndex = data.length - 1;\n\t if (index == lastIndex) {\n\t data.pop();\n\t } else {\n\t splice.call(data, index, 1);\n\t }\n\t return true;\n\t}\n\t\n\t/**\n\t * Gets the list cache value for `key`.\n\t *\n\t * @private\n\t * @name get\n\t * @memberOf ListCache\n\t * @param {string} key The key of the value to get.\n\t * @returns {*} Returns the entry value.\n\t */\n\tfunction listCacheGet(key) {\n\t var data = this.__data__,\n\t index = assocIndexOf(data, key);\n\t\n\t return index < 0 ? undefined : data[index][1];\n\t}\n\t\n\t/**\n\t * Checks if a list cache value for `key` exists.\n\t *\n\t * @private\n\t * @name has\n\t * @memberOf ListCache\n\t * @param {string} key The key of the entry to check.\n\t * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n\t */\n\tfunction listCacheHas(key) {\n\t return assocIndexOf(this.__data__, key) > -1;\n\t}\n\t\n\t/**\n\t * Sets the list cache `key` to `value`.\n\t *\n\t * @private\n\t * @name set\n\t * @memberOf ListCache\n\t * @param {string} key The key of the value to set.\n\t * @param {*} value The value to set.\n\t * @returns {Object} Returns the list cache instance.\n\t */\n\tfunction listCacheSet(key, value) {\n\t var data = this.__data__,\n\t index = assocIndexOf(data, key);\n\t\n\t if (index < 0) {\n\t data.push([key, value]);\n\t } else {\n\t data[index][1] = value;\n\t }\n\t return this;\n\t}\n\t\n\t// Add methods to `ListCache`.\n\tListCache.prototype.clear = listCacheClear;\n\tListCache.prototype['delete'] = listCacheDelete;\n\tListCache.prototype.get = listCacheGet;\n\tListCache.prototype.has = listCacheHas;\n\tListCache.prototype.set = listCacheSet;\n\t\n\t/**\n\t * Creates a map cache object to store key-value pairs.\n\t *\n\t * @private\n\t * @constructor\n\t * @param {Array} [entries] The key-value pairs to cache.\n\t */\n\tfunction MapCache(entries) {\n\t var index = -1,\n\t length = entries ? entries.length : 0;\n\t\n\t this.clear();\n\t while (++index < length) {\n\t var entry = entries[index];\n\t this.set(entry[0], entry[1]);\n\t }\n\t}\n\t\n\t/**\n\t * Removes all key-value entries from the map.\n\t *\n\t * @private\n\t * @name clear\n\t * @memberOf MapCache\n\t */\n\tfunction mapCacheClear() {\n\t this.__data__ = {\n\t 'hash': new Hash,\n\t 'map': new (Map || ListCache),\n\t 'string': new Hash\n\t };\n\t}\n\t\n\t/**\n\t * Removes `key` and its value from the map.\n\t *\n\t * @private\n\t * @name delete\n\t * @memberOf MapCache\n\t * @param {string} key The key of the value to remove.\n\t * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n\t */\n\tfunction mapCacheDelete(key) {\n\t return getMapData(this, key)['delete'](key);\n\t}\n\t\n\t/**\n\t * Gets the map value for `key`.\n\t *\n\t * @private\n\t * @name get\n\t * @memberOf MapCache\n\t * @param {string} key The key of the value to get.\n\t * @returns {*} Returns the entry value.\n\t */\n\tfunction mapCacheGet(key) {\n\t return getMapData(this, key).get(key);\n\t}\n\t\n\t/**\n\t * Checks if a map value for `key` exists.\n\t *\n\t * @private\n\t * @name has\n\t * @memberOf MapCache\n\t * @param {string} key The key of the entry to check.\n\t * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n\t */\n\tfunction mapCacheHas(key) {\n\t return getMapData(this, key).has(key);\n\t}\n\t\n\t/**\n\t * Sets the map `key` to `value`.\n\t *\n\t * @private\n\t * @name set\n\t * @memberOf MapCache\n\t * @param {string} key The key of the value to set.\n\t * @param {*} value The value to set.\n\t * @returns {Object} Returns the map cache instance.\n\t */\n\tfunction mapCacheSet(key, value) {\n\t getMapData(this, key).set(key, value);\n\t return this;\n\t}\n\t\n\t// Add methods to `MapCache`.\n\tMapCache.prototype.clear = mapCacheClear;\n\tMapCache.prototype['delete'] = mapCacheDelete;\n\tMapCache.prototype.get = mapCacheGet;\n\tMapCache.prototype.has = mapCacheHas;\n\tMapCache.prototype.set = mapCacheSet;\n\t\n\t/**\n\t * Creates a stack cache object to store key-value pairs.\n\t *\n\t * @private\n\t * @constructor\n\t * @param {Array} [entries] The key-value pairs to cache.\n\t */\n\tfunction Stack(entries) {\n\t this.__data__ = new ListCache(entries);\n\t}\n\t\n\t/**\n\t * Removes all key-value entries from the stack.\n\t *\n\t * @private\n\t * @name clear\n\t * @memberOf Stack\n\t */\n\tfunction stackClear() {\n\t this.__data__ = new ListCache;\n\t}\n\t\n\t/**\n\t * Removes `key` and its value from the stack.\n\t *\n\t * @private\n\t * @name delete\n\t * @memberOf Stack\n\t * @param {string} key The key of the value to remove.\n\t * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n\t */\n\tfunction stackDelete(key) {\n\t return this.__data__['delete'](key);\n\t}\n\t\n\t/**\n\t * Gets the stack value for `key`.\n\t *\n\t * @private\n\t * @name get\n\t * @memberOf Stack\n\t * @param {string} key The key of the value to get.\n\t * @returns {*} Returns the entry value.\n\t */\n\tfunction stackGet(key) {\n\t return this.__data__.get(key);\n\t}\n\t\n\t/**\n\t * Checks if a stack value for `key` exists.\n\t *\n\t * @private\n\t * @name has\n\t * @memberOf Stack\n\t * @param {string} key The key of the entry to check.\n\t * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n\t */\n\tfunction stackHas(key) {\n\t return this.__data__.has(key);\n\t}\n\t\n\t/**\n\t * Sets the stack `key` to `value`.\n\t *\n\t * @private\n\t * @name set\n\t * @memberOf Stack\n\t * @param {string} key The key of the value to set.\n\t * @param {*} value The value to set.\n\t * @returns {Object} Returns the stack cache instance.\n\t */\n\tfunction stackSet(key, value) {\n\t var cache = this.__data__;\n\t if (cache instanceof ListCache) {\n\t var pairs = cache.__data__;\n\t if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n\t pairs.push([key, value]);\n\t return this;\n\t }\n\t cache = this.__data__ = new MapCache(pairs);\n\t }\n\t cache.set(key, value);\n\t return this;\n\t}\n\t\n\t// Add methods to `Stack`.\n\tStack.prototype.clear = stackClear;\n\tStack.prototype['delete'] = stackDelete;\n\tStack.prototype.get = stackGet;\n\tStack.prototype.has = stackHas;\n\tStack.prototype.set = stackSet;\n\t\n\t/**\n\t * Creates an array of the enumerable property names of the array-like `value`.\n\t *\n\t * @private\n\t * @param {*} value The value to query.\n\t * @param {boolean} inherited Specify returning inherited property names.\n\t * @returns {Array} Returns the array of property names.\n\t */\n\tfunction arrayLikeKeys(value, inherited) {\n\t // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n\t // Safari 9 makes `arguments.length` enumerable in strict mode.\n\t var result = (isArray(value) || isArguments(value))\n\t ? baseTimes(value.length, String)\n\t : [];\n\t\n\t var length = result.length,\n\t skipIndexes = !!length;\n\t\n\t for (var key in value) {\n\t if ((inherited || hasOwnProperty.call(value, key)) &&\n\t !(skipIndexes && (key == 'length' || isIndex(key, length)))) {\n\t result.push(key);\n\t }\n\t }\n\t return result;\n\t}\n\t\n\t/**\n\t * Assigns `value` to `key` of `object` if the existing value is not equivalent\n\t * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n\t * for equality comparisons.\n\t *\n\t * @private\n\t * @param {Object} object The object to modify.\n\t * @param {string} key The key of the property to assign.\n\t * @param {*} value The value to assign.\n\t */\n\tfunction assignValue(object, key, value) {\n\t var objValue = object[key];\n\t if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n\t (value === undefined && !(key in object))) {\n\t object[key] = value;\n\t }\n\t}\n\t\n\t/**\n\t * Gets the index at which the `key` is found in `array` of key-value pairs.\n\t *\n\t * @private\n\t * @param {Array} array The array to inspect.\n\t * @param {*} key The key to search for.\n\t * @returns {number} Returns the index of the matched value, else `-1`.\n\t */\n\tfunction assocIndexOf(array, key) {\n\t var length = array.length;\n\t while (length--) {\n\t if (eq(array[length][0], key)) {\n\t return length;\n\t }\n\t }\n\t return -1;\n\t}\n\t\n\t/**\n\t * The base implementation of `_.assign` without support for multiple sources\n\t * or `customizer` functions.\n\t *\n\t * @private\n\t * @param {Object} object The destination object.\n\t * @param {Object} source The source object.\n\t * @returns {Object} Returns `object`.\n\t */\n\tfunction baseAssign(object, source) {\n\t return object && copyObject(source, keys(source), object);\n\t}\n\t\n\t/**\n\t * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n\t * traversed objects.\n\t *\n\t * @private\n\t * @param {*} value The value to clone.\n\t * @param {boolean} [isDeep] Specify a deep clone.\n\t * @param {boolean} [isFull] Specify a clone including symbols.\n\t * @param {Function} [customizer] The function to customize cloning.\n\t * @param {string} [key] The key of `value`.\n\t * @param {Object} [object] The parent object of `value`.\n\t * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n\t * @returns {*} Returns the cloned value.\n\t */\n\tfunction baseClone(value, isDeep, isFull, customizer, key, object, stack) {\n\t var result;\n\t if (customizer) {\n\t result = object ? customizer(value, key, object, stack) : customizer(value);\n\t }\n\t if (result !== undefined) {\n\t return result;\n\t }\n\t if (!isObject(value)) {\n\t return value;\n\t }\n\t var isArr = isArray(value);\n\t if (isArr) {\n\t result = initCloneArray(value);\n\t if (!isDeep) {\n\t return copyArray(value, result);\n\t }\n\t } else {\n\t var tag = getTag(value),\n\t isFunc = tag == funcTag || tag == genTag;\n\t\n\t if (isBuffer(value)) {\n\t return cloneBuffer(value, isDeep);\n\t }\n\t if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n\t if (isHostObject(value)) {\n\t return object ? value : {};\n\t }\n\t result = initCloneObject(isFunc ? {} : value);\n\t if (!isDeep) {\n\t return copySymbols(value, baseAssign(result, value));\n\t }\n\t } else {\n\t if (!cloneableTags[tag]) {\n\t return object ? value : {};\n\t }\n\t result = initCloneByTag(value, tag, baseClone, isDeep);\n\t }\n\t }\n\t // Check for circular references and return its corresponding clone.\n\t stack || (stack = new Stack);\n\t var stacked = stack.get(value);\n\t if (stacked) {\n\t return stacked;\n\t }\n\t stack.set(value, result);\n\t\n\t if (!isArr) {\n\t var props = isFull ? getAllKeys(value) : keys(value);\n\t }\n\t arrayEach(props || value, function(subValue, key) {\n\t if (props) {\n\t key = subValue;\n\t subValue = value[key];\n\t }\n\t // Recursively populate clone (susceptible to call stack limits).\n\t assignValue(result, key, baseClone(subValue, isDeep, isFull, customizer, key, value, stack));\n\t });\n\t return result;\n\t}\n\t\n\t/**\n\t * The base implementation of `_.create` without support for assigning\n\t * properties to the created object.\n\t *\n\t * @private\n\t * @param {Object} prototype The object to inherit from.\n\t * @returns {Object} Returns the new object.\n\t */\n\tfunction baseCreate(proto) {\n\t return isObject(proto) ? objectCreate(proto) : {};\n\t}\n\t\n\t/**\n\t * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n\t * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n\t * symbols of `object`.\n\t *\n\t * @private\n\t * @param {Object} object The object to query.\n\t * @param {Function} keysFunc The function to get the keys of `object`.\n\t * @param {Function} symbolsFunc The function to get the symbols of `object`.\n\t * @returns {Array} Returns the array of property names and symbols.\n\t */\n\tfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n\t var result = keysFunc(object);\n\t return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n\t}\n\t\n\t/**\n\t * The base implementation of `getTag`.\n\t *\n\t * @private\n\t * @param {*} value The value to query.\n\t * @returns {string} Returns the `toStringTag`.\n\t */\n\tfunction baseGetTag(value) {\n\t return objectToString.call(value);\n\t}\n\t\n\t/**\n\t * The base implementation of `_.isNative` without bad shim checks.\n\t *\n\t * @private\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is a native function,\n\t * else `false`.\n\t */\n\tfunction baseIsNative(value) {\n\t if (!isObject(value) || isMasked(value)) {\n\t return false;\n\t }\n\t var pattern = (isFunction(value) || isHostObject(value)) ? reIsNative : reIsHostCtor;\n\t return pattern.test(toSource(value));\n\t}\n\t\n\t/**\n\t * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n\t *\n\t * @private\n\t * @param {Object} object The object to query.\n\t * @returns {Array} Returns the array of property names.\n\t */\n\tfunction baseKeys(object) {\n\t if (!isPrototype(object)) {\n\t return nativeKeys(object);\n\t }\n\t var result = [];\n\t for (var key in Object(object)) {\n\t if (hasOwnProperty.call(object, key) && key != 'constructor') {\n\t result.push(key);\n\t }\n\t }\n\t return result;\n\t}\n\t\n\t/**\n\t * Creates a clone of `buffer`.\n\t *\n\t * @private\n\t * @param {Buffer} buffer The buffer to clone.\n\t * @param {boolean} [isDeep] Specify a deep clone.\n\t * @returns {Buffer} Returns the cloned buffer.\n\t */\n\tfunction cloneBuffer(buffer, isDeep) {\n\t if (isDeep) {\n\t return buffer.slice();\n\t }\n\t var result = new buffer.constructor(buffer.length);\n\t buffer.copy(result);\n\t return result;\n\t}\n\t\n\t/**\n\t * Creates a clone of `arrayBuffer`.\n\t *\n\t * @private\n\t * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n\t * @returns {ArrayBuffer} Returns the cloned array buffer.\n\t */\n\tfunction cloneArrayBuffer(arrayBuffer) {\n\t var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n\t new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n\t return result;\n\t}\n\t\n\t/**\n\t * Creates a clone of `dataView`.\n\t *\n\t * @private\n\t * @param {Object} dataView The data view to clone.\n\t * @param {boolean} [isDeep] Specify a deep clone.\n\t * @returns {Object} Returns the cloned data view.\n\t */\n\tfunction cloneDataView(dataView, isDeep) {\n\t var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n\t return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n\t}\n\t\n\t/**\n\t * Creates a clone of `map`.\n\t *\n\t * @private\n\t * @param {Object} map The map to clone.\n\t * @param {Function} cloneFunc The function to clone values.\n\t * @param {boolean} [isDeep] Specify a deep clone.\n\t * @returns {Object} Returns the cloned map.\n\t */\n\tfunction cloneMap(map, isDeep, cloneFunc) {\n\t var array = isDeep ? cloneFunc(mapToArray(map), true) : mapToArray(map);\n\t return arrayReduce(array, addMapEntry, new map.constructor);\n\t}\n\t\n\t/**\n\t * Creates a clone of `regexp`.\n\t *\n\t * @private\n\t * @param {Object} regexp The regexp to clone.\n\t * @returns {Object} Returns the cloned regexp.\n\t */\n\tfunction cloneRegExp(regexp) {\n\t var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n\t result.lastIndex = regexp.lastIndex;\n\t return result;\n\t}\n\t\n\t/**\n\t * Creates a clone of `set`.\n\t *\n\t * @private\n\t * @param {Object} set The set to clone.\n\t * @param {Function} cloneFunc The function to clone values.\n\t * @param {boolean} [isDeep] Specify a deep clone.\n\t * @returns {Object} Returns the cloned set.\n\t */\n\tfunction cloneSet(set, isDeep, cloneFunc) {\n\t var array = isDeep ? cloneFunc(setToArray(set), true) : setToArray(set);\n\t return arrayReduce(array, addSetEntry, new set.constructor);\n\t}\n\t\n\t/**\n\t * Creates a clone of the `symbol` object.\n\t *\n\t * @private\n\t * @param {Object} symbol The symbol object to clone.\n\t * @returns {Object} Returns the cloned symbol object.\n\t */\n\tfunction cloneSymbol(symbol) {\n\t return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n\t}\n\t\n\t/**\n\t * Creates a clone of `typedArray`.\n\t *\n\t * @private\n\t * @param {Object} typedArray The typed array to clone.\n\t * @param {boolean} [isDeep] Specify a deep clone.\n\t * @returns {Object} Returns the cloned typed array.\n\t */\n\tfunction cloneTypedArray(typedArray, isDeep) {\n\t var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n\t return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n\t}\n\t\n\t/**\n\t * Copies the values of `source` to `array`.\n\t *\n\t * @private\n\t * @param {Array} source The array to copy values from.\n\t * @param {Array} [array=[]] The array to copy values to.\n\t * @returns {Array} Returns `array`.\n\t */\n\tfunction copyArray(source, array) {\n\t var index = -1,\n\t length = source.length;\n\t\n\t array || (array = Array(length));\n\t while (++index < length) {\n\t array[index] = source[index];\n\t }\n\t return array;\n\t}\n\t\n\t/**\n\t * Copies properties of `source` to `object`.\n\t *\n\t * @private\n\t * @param {Object} source The object to copy properties from.\n\t * @param {Array} props The property identifiers to copy.\n\t * @param {Object} [object={}] The object to copy properties to.\n\t * @param {Function} [customizer] The function to customize copied values.\n\t * @returns {Object} Returns `object`.\n\t */\n\tfunction copyObject(source, props, object, customizer) {\n\t object || (object = {});\n\t\n\t var index = -1,\n\t length = props.length;\n\t\n\t while (++index < length) {\n\t var key = props[index];\n\t\n\t var newValue = customizer\n\t ? customizer(object[key], source[key], key, object, source)\n\t : undefined;\n\t\n\t assignValue(object, key, newValue === undefined ? source[key] : newValue);\n\t }\n\t return object;\n\t}\n\t\n\t/**\n\t * Copies own symbol properties of `source` to `object`.\n\t *\n\t * @private\n\t * @param {Object} source The object to copy symbols from.\n\t * @param {Object} [object={}] The object to copy symbols to.\n\t * @returns {Object} Returns `object`.\n\t */\n\tfunction copySymbols(source, object) {\n\t return copyObject(source, getSymbols(source), object);\n\t}\n\t\n\t/**\n\t * Creates an array of own enumerable property names and symbols of `object`.\n\t *\n\t * @private\n\t * @param {Object} object The object to query.\n\t * @returns {Array} Returns the array of property names and symbols.\n\t */\n\tfunction getAllKeys(object) {\n\t return baseGetAllKeys(object, keys, getSymbols);\n\t}\n\t\n\t/**\n\t * Gets the data for `map`.\n\t *\n\t * @private\n\t * @param {Object} map The map to query.\n\t * @param {string} key The reference key.\n\t * @returns {*} Returns the map data.\n\t */\n\tfunction getMapData(map, key) {\n\t var data = map.__data__;\n\t return isKeyable(key)\n\t ? data[typeof key == 'string' ? 'string' : 'hash']\n\t : data.map;\n\t}\n\t\n\t/**\n\t * Gets the native function at `key` of `object`.\n\t *\n\t * @private\n\t * @param {Object} object The object to query.\n\t * @param {string} key The key of the method to get.\n\t * @returns {*} Returns the function if it's native, else `undefined`.\n\t */\n\tfunction getNative(object, key) {\n\t var value = getValue(object, key);\n\t return baseIsNative(value) ? value : undefined;\n\t}\n\t\n\t/**\n\t * Creates an array of the own enumerable symbol properties of `object`.\n\t *\n\t * @private\n\t * @param {Object} object The object to query.\n\t * @returns {Array} Returns the array of symbols.\n\t */\n\tvar getSymbols = nativeGetSymbols ? overArg(nativeGetSymbols, Object) : stubArray;\n\t\n\t/**\n\t * Gets the `toStringTag` of `value`.\n\t *\n\t * @private\n\t * @param {*} value The value to query.\n\t * @returns {string} Returns the `toStringTag`.\n\t */\n\tvar getTag = baseGetTag;\n\t\n\t// Fallback for data views, maps, sets, and weak maps in IE 11,\n\t// for data views in Edge < 14, and promises in Node.js.\n\tif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n\t (Map && getTag(new Map) != mapTag) ||\n\t (Promise && getTag(Promise.resolve()) != promiseTag) ||\n\t (Set && getTag(new Set) != setTag) ||\n\t (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n\t getTag = function(value) {\n\t var result = objectToString.call(value),\n\t Ctor = result == objectTag ? value.constructor : undefined,\n\t ctorString = Ctor ? toSource(Ctor) : undefined;\n\t\n\t if (ctorString) {\n\t switch (ctorString) {\n\t case dataViewCtorString: return dataViewTag;\n\t case mapCtorString: return mapTag;\n\t case promiseCtorString: return promiseTag;\n\t case setCtorString: return setTag;\n\t case weakMapCtorString: return weakMapTag;\n\t }\n\t }\n\t return result;\n\t };\n\t}\n\t\n\t/**\n\t * Initializes an array clone.\n\t *\n\t * @private\n\t * @param {Array} array The array to clone.\n\t * @returns {Array} Returns the initialized clone.\n\t */\n\tfunction initCloneArray(array) {\n\t var length = array.length,\n\t result = array.constructor(length);\n\t\n\t // Add properties assigned by `RegExp#exec`.\n\t if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n\t result.index = array.index;\n\t result.input = array.input;\n\t }\n\t return result;\n\t}\n\t\n\t/**\n\t * Initializes an object clone.\n\t *\n\t * @private\n\t * @param {Object} object The object to clone.\n\t * @returns {Object} Returns the initialized clone.\n\t */\n\tfunction initCloneObject(object) {\n\t return (typeof object.constructor == 'function' && !isPrototype(object))\n\t ? baseCreate(getPrototype(object))\n\t : {};\n\t}\n\t\n\t/**\n\t * Initializes an object clone based on its `toStringTag`.\n\t *\n\t * **Note:** This function only supports cloning values with tags of\n\t * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n\t *\n\t * @private\n\t * @param {Object} object The object to clone.\n\t * @param {string} tag The `toStringTag` of the object to clone.\n\t * @param {Function} cloneFunc The function to clone values.\n\t * @param {boolean} [isDeep] Specify a deep clone.\n\t * @returns {Object} Returns the initialized clone.\n\t */\n\tfunction initCloneByTag(object, tag, cloneFunc, isDeep) {\n\t var Ctor = object.constructor;\n\t switch (tag) {\n\t case arrayBufferTag:\n\t return cloneArrayBuffer(object);\n\t\n\t case boolTag:\n\t case dateTag:\n\t return new Ctor(+object);\n\t\n\t case dataViewTag:\n\t return cloneDataView(object, isDeep);\n\t\n\t case float32Tag: case float64Tag:\n\t case int8Tag: case int16Tag: case int32Tag:\n\t case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n\t return cloneTypedArray(object, isDeep);\n\t\n\t case mapTag:\n\t return cloneMap(object, isDeep, cloneFunc);\n\t\n\t case numberTag:\n\t case stringTag:\n\t return new Ctor(object);\n\t\n\t case regexpTag:\n\t return cloneRegExp(object);\n\t\n\t case setTag:\n\t return cloneSet(object, isDeep, cloneFunc);\n\t\n\t case symbolTag:\n\t return cloneSymbol(object);\n\t }\n\t}\n\t\n\t/**\n\t * Checks if `value` is a valid array-like index.\n\t *\n\t * @private\n\t * @param {*} value The value to check.\n\t * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n\t * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n\t */\n\tfunction isIndex(value, length) {\n\t length = length == null ? MAX_SAFE_INTEGER : length;\n\t return !!length &&\n\t (typeof value == 'number' || reIsUint.test(value)) &&\n\t (value > -1 && value % 1 == 0 && value < length);\n\t}\n\t\n\t/**\n\t * Checks if `value` is suitable for use as unique object key.\n\t *\n\t * @private\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n\t */\n\tfunction isKeyable(value) {\n\t var type = typeof value;\n\t return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n\t ? (value !== '__proto__')\n\t : (value === null);\n\t}\n\t\n\t/**\n\t * Checks if `func` has its source masked.\n\t *\n\t * @private\n\t * @param {Function} func The function to check.\n\t * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n\t */\n\tfunction isMasked(func) {\n\t return !!maskSrcKey && (maskSrcKey in func);\n\t}\n\t\n\t/**\n\t * Checks if `value` is likely a prototype object.\n\t *\n\t * @private\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n\t */\n\tfunction isPrototype(value) {\n\t var Ctor = value && value.constructor,\n\t proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\t\n\t return value === proto;\n\t}\n\t\n\t/**\n\t * Converts `func` to its source code.\n\t *\n\t * @private\n\t * @param {Function} func The function to process.\n\t * @returns {string} Returns the source code.\n\t */\n\tfunction toSource(func) {\n\t if (func != null) {\n\t try {\n\t return funcToString.call(func);\n\t } catch (e) {}\n\t try {\n\t return (func + '');\n\t } catch (e) {}\n\t }\n\t return '';\n\t}\n\t\n\t/**\n\t * Creates a shallow clone of `value`.\n\t *\n\t * **Note:** This method is loosely based on the\n\t * [structured clone algorithm](https://mdn.io/Structured_clone_algorithm)\n\t * and supports cloning arrays, array buffers, booleans, date objects, maps,\n\t * numbers, `Object` objects, regexes, sets, strings, symbols, and typed\n\t * arrays. The own enumerable properties of `arguments` objects are cloned\n\t * as plain objects. An empty object is returned for uncloneable values such\n\t * as error objects, functions, DOM nodes, and WeakMaps.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 0.1.0\n\t * @category Lang\n\t * @param {*} value The value to clone.\n\t * @returns {*} Returns the cloned value.\n\t * @see _.cloneDeep\n\t * @example\n\t *\n\t * var objects = [{ 'a': 1 }, { 'b': 2 }];\n\t *\n\t * var shallow = _.clone(objects);\n\t * console.log(shallow[0] === objects[0]);\n\t * // => true\n\t */\n\tfunction clone(value) {\n\t return baseClone(value, false, true);\n\t}\n\t\n\t/**\n\t * Performs a\n\t * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n\t * comparison between two values to determine if they are equivalent.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.0.0\n\t * @category Lang\n\t * @param {*} value The value to compare.\n\t * @param {*} other The other value to compare.\n\t * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n\t * @example\n\t *\n\t * var object = { 'a': 1 };\n\t * var other = { 'a': 1 };\n\t *\n\t * _.eq(object, object);\n\t * // => true\n\t *\n\t * _.eq(object, other);\n\t * // => false\n\t *\n\t * _.eq('a', 'a');\n\t * // => true\n\t *\n\t * _.eq('a', Object('a'));\n\t * // => false\n\t *\n\t * _.eq(NaN, NaN);\n\t * // => true\n\t */\n\tfunction eq(value, other) {\n\t return value === other || (value !== value && other !== other);\n\t}\n\t\n\t/**\n\t * Checks if `value` is likely an `arguments` object.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 0.1.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n\t * else `false`.\n\t * @example\n\t *\n\t * _.isArguments(function() { return arguments; }());\n\t * // => true\n\t *\n\t * _.isArguments([1, 2, 3]);\n\t * // => false\n\t */\n\tfunction isArguments(value) {\n\t // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n\t return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') &&\n\t (!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag);\n\t}\n\t\n\t/**\n\t * Checks if `value` is classified as an `Array` object.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 0.1.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n\t * @example\n\t *\n\t * _.isArray([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isArray(document.body.children);\n\t * // => false\n\t *\n\t * _.isArray('abc');\n\t * // => false\n\t *\n\t * _.isArray(_.noop);\n\t * // => false\n\t */\n\tvar isArray = Array.isArray;\n\t\n\t/**\n\t * Checks if `value` is array-like. A value is considered array-like if it's\n\t * not a function and has a `value.length` that's an integer greater than or\n\t * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.0.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n\t * @example\n\t *\n\t * _.isArrayLike([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isArrayLike(document.body.children);\n\t * // => true\n\t *\n\t * _.isArrayLike('abc');\n\t * // => true\n\t *\n\t * _.isArrayLike(_.noop);\n\t * // => false\n\t */\n\tfunction isArrayLike(value) {\n\t return value != null && isLength(value.length) && !isFunction(value);\n\t}\n\t\n\t/**\n\t * This method is like `_.isArrayLike` except that it also checks if `value`\n\t * is an object.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.0.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is an array-like object,\n\t * else `false`.\n\t * @example\n\t *\n\t * _.isArrayLikeObject([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isArrayLikeObject(document.body.children);\n\t * // => true\n\t *\n\t * _.isArrayLikeObject('abc');\n\t * // => false\n\t *\n\t * _.isArrayLikeObject(_.noop);\n\t * // => false\n\t */\n\tfunction isArrayLikeObject(value) {\n\t return isObjectLike(value) && isArrayLike(value);\n\t}\n\t\n\t/**\n\t * Checks if `value` is a buffer.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.3.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n\t * @example\n\t *\n\t * _.isBuffer(new Buffer(2));\n\t * // => true\n\t *\n\t * _.isBuffer(new Uint8Array(2));\n\t * // => false\n\t */\n\tvar isBuffer = nativeIsBuffer || stubFalse;\n\t\n\t/**\n\t * Checks if `value` is classified as a `Function` object.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 0.1.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n\t * @example\n\t *\n\t * _.isFunction(_);\n\t * // => true\n\t *\n\t * _.isFunction(/abc/);\n\t * // => false\n\t */\n\tfunction isFunction(value) {\n\t // The use of `Object#toString` avoids issues with the `typeof` operator\n\t // in Safari 8-9 which returns 'object' for typed array and other constructors.\n\t var tag = isObject(value) ? objectToString.call(value) : '';\n\t return tag == funcTag || tag == genTag;\n\t}\n\t\n\t/**\n\t * Checks if `value` is a valid array-like length.\n\t *\n\t * **Note:** This method is loosely based on\n\t * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.0.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n\t * @example\n\t *\n\t * _.isLength(3);\n\t * // => true\n\t *\n\t * _.isLength(Number.MIN_VALUE);\n\t * // => false\n\t *\n\t * _.isLength(Infinity);\n\t * // => false\n\t *\n\t * _.isLength('3');\n\t * // => false\n\t */\n\tfunction isLength(value) {\n\t return typeof value == 'number' &&\n\t value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n\t}\n\t\n\t/**\n\t * Checks if `value` is the\n\t * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n\t * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 0.1.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n\t * @example\n\t *\n\t * _.isObject({});\n\t * // => true\n\t *\n\t * _.isObject([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isObject(_.noop);\n\t * // => true\n\t *\n\t * _.isObject(null);\n\t * // => false\n\t */\n\tfunction isObject(value) {\n\t var type = typeof value;\n\t return !!value && (type == 'object' || type == 'function');\n\t}\n\t\n\t/**\n\t * Checks if `value` is object-like. A value is object-like if it's not `null`\n\t * and has a `typeof` result of \"object\".\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.0.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n\t * @example\n\t *\n\t * _.isObjectLike({});\n\t * // => true\n\t *\n\t * _.isObjectLike([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isObjectLike(_.noop);\n\t * // => false\n\t *\n\t * _.isObjectLike(null);\n\t * // => false\n\t */\n\tfunction isObjectLike(value) {\n\t return !!value && typeof value == 'object';\n\t}\n\t\n\t/**\n\t * Creates an array of the own enumerable property names of `object`.\n\t *\n\t * **Note:** Non-object values are coerced to objects. See the\n\t * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n\t * for more details.\n\t *\n\t * @static\n\t * @since 0.1.0\n\t * @memberOf _\n\t * @category Object\n\t * @param {Object} object The object to query.\n\t * @returns {Array} Returns the array of property names.\n\t * @example\n\t *\n\t * function Foo() {\n\t * this.a = 1;\n\t * this.b = 2;\n\t * }\n\t *\n\t * Foo.prototype.c = 3;\n\t *\n\t * _.keys(new Foo);\n\t * // => ['a', 'b'] (iteration order is not guaranteed)\n\t *\n\t * _.keys('hi');\n\t * // => ['0', '1']\n\t */\n\tfunction keys(object) {\n\t return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n\t}\n\t\n\t/**\n\t * This method returns a new empty array.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.13.0\n\t * @category Util\n\t * @returns {Array} Returns the new empty array.\n\t * @example\n\t *\n\t * var arrays = _.times(2, _.stubArray);\n\t *\n\t * console.log(arrays);\n\t * // => [[], []]\n\t *\n\t * console.log(arrays[0] === arrays[1]);\n\t * // => false\n\t */\n\tfunction stubArray() {\n\t return [];\n\t}\n\t\n\t/**\n\t * This method returns `false`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.13.0\n\t * @category Util\n\t * @returns {boolean} Returns `false`.\n\t * @example\n\t *\n\t * _.times(2, _.stubFalse);\n\t * // => [false, false]\n\t */\n\tfunction stubFalse() {\n\t return false;\n\t}\n\t\n\tmodule.exports = clone;\n\t\n\t/* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }()), __webpack_require__(30)(module)))\n\n/***/ }\n/******/ ])\n});\n;"],"sourceRoot":""}