':'',ns.innerHTML.indexOf(\"
\")>0}var as=!!V&&os(!1),ss=!!V&&os(!0),cs=g(function(e){var t=Qn(e);return t&&t.innerHTML}),us=Cn.prototype.$mount;return Cn.prototype.$mount=function(e,t){if((e=e&&Qn(e))===document.body||e===document.documentElement)return this;var n=this.$options;if(!n.render){var r=n.template;if(r)if(\"string\"==typeof r)\"#\"===r.charAt(0)&&(r=cs(r));else{if(!r.nodeType)return this;r=r.innerHTML}else e&&(r=function(e){if(e.outerHTML)return e.outerHTML;var t=document.createElement(\"div\");return t.appendChild(e.cloneNode(!0)),t.innerHTML}(e));if(r){var i=is(r,{outputSourceRange:!1,shouldDecodeNewlines:as,shouldDecodeNewlinesForHref:ss,delimiters:n.delimiters,comments:n.comments},this),o=i.render,a=i.staticRenderFns;n.render=o,n.staticRenderFns=a}}return us.call(this,e,t)},Cn.compile=is,Cn});","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","'use strict';\n\nvar utils = require('./utils');\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n } else if (typeof process !== 'undefined') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n }\n return adapter;\n}\n\nvar defaults = {\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Content-Type');\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data)) {\n setContentTypeIfUnset(headers, 'application/json;charset=utf-8');\n return JSON.stringify(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n /*eslint no-param-reassign:0*/\n if (typeof data === 'string') {\n try {\n data = JSON.parse(data);\n } catch (e) { /* Ignore */ }\n }\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n }\n};\n\ndefaults.headers = {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","/*!\n hey, [be]Lazy.js - v1.8.2 - 2016.10.25\n A fast, small and dependency free lazy load script (https://github.com/dinbror/blazy)\n (c) Bjoern Klinggaard - @bklinggaard - http://dinbror.dk/blazy\n*/\n;\n(function(root, blazy) {\n if (typeof define === 'function' && define.amd) {\n // AMD. Register bLazy as an anonymous module\n define(blazy);\n } else if (typeof exports === 'object') {\n // Node. Does not work with strict CommonJS, but\n // only CommonJS-like environments that support module.exports,\n // like Node.\n module.exports = blazy();\n } else {\n // Browser globals. Register bLazy on window\n root.Blazy = blazy();\n }\n})(this, function() {\n 'use strict';\n\n //private vars\n var _source, _viewport, _isRetina, _supportClosest, _attrSrc = 'src', _attrSrcset = 'srcset';\n\n // constructor\n return function Blazy(options) {\n //IE7- fallback for missing querySelectorAll support\n if (!document.querySelectorAll) {\n var s = document.createStyleSheet();\n document.querySelectorAll = function(r, c, i, j, a) {\n a = document.all, c = [], r = r.replace(/\\[for\\b/gi, '[htmlFor').split(',');\n for (i = r.length; i--;) {\n s.addRule(r[i], 'k:v');\n for (j = a.length; j--;) a[j].currentStyle.k && c.push(a[j]);\n s.removeRule(0);\n }\n return c;\n };\n }\n\n //options and helper vars\n var scope = this;\n var util = scope._util = {};\n util.elements = [];\n util.destroyed = true;\n scope.options = options || {};\n scope.options.error = scope.options.error || false;\n scope.options.offset = scope.options.offset || 100;\n scope.options.root = scope.options.root || document;\n scope.options.success = scope.options.success || false;\n scope.options.selector = scope.options.selector || '.b-lazy';\n scope.options.separator = scope.options.separator || '|';\n scope.options.containerClass = scope.options.container;\n scope.options.container = scope.options.containerClass ? document.querySelectorAll(scope.options.containerClass) : false;\n scope.options.errorClass = scope.options.errorClass || 'b-error';\n scope.options.breakpoints = scope.options.breakpoints || false;\n scope.options.loadInvisible = scope.options.loadInvisible || false;\n scope.options.successClass = scope.options.successClass || 'b-loaded';\n scope.options.validateDelay = scope.options.validateDelay || 25;\n scope.options.saveViewportOffsetDelay = scope.options.saveViewportOffsetDelay || 50;\n scope.options.srcset = scope.options.srcset || 'data-srcset';\n scope.options.src = _source = scope.options.src || 'data-src';\n _supportClosest = Element.prototype.closest;\n _isRetina = window.devicePixelRatio > 1;\n _viewport = {};\n _viewport.top = 0 - scope.options.offset;\n _viewport.left = 0 - scope.options.offset;\n\n\n /* public functions\n ************************************/\n scope.revalidate = function() {\n initialize(scope);\n };\n scope.load = function(elements, force) {\n var opt = this.options;\n if (elements && elements.length === undefined) {\n loadElement(elements, force, opt);\n } else {\n each(elements, function(element) {\n loadElement(element, force, opt);\n });\n }\n };\n scope.destroy = function() { \n var util = scope._util;\n if (scope.options.container) {\n each(scope.options.container, function(object) {\n unbindEvent(object, 'scroll', util.validateT);\n });\n }\n unbindEvent(window, 'scroll', util.validateT);\n unbindEvent(window, 'resize', util.validateT);\n unbindEvent(window, 'resize', util.saveViewportOffsetT);\n util.count = 0;\n util.elements.length = 0;\n util.destroyed = true;\n };\n\n //throttle, ensures that we don't call the functions too often\n util.validateT = throttle(function() {\n validate(scope);\n }, scope.options.validateDelay, scope);\n util.saveViewportOffsetT = throttle(function() {\n saveViewportOffset(scope.options.offset);\n }, scope.options.saveViewportOffsetDelay, scope);\n saveViewportOffset(scope.options.offset);\n\n //handle multi-served image src (obsolete)\n each(scope.options.breakpoints, function(object) {\n if (object.width >= window.screen.width) {\n _source = object.src;\n return false;\n }\n });\n\n // start lazy load\n setTimeout(function() {\n initialize(scope);\n }); // \"dom ready\" fix\n\n };\n\n\n /* Private helper functions\n ************************************/\n function initialize(self) {\n var util = self._util;\n // First we create an array of elements to lazy load\n util.elements = toArray(self.options);\n util.count = util.elements.length;\n // Then we bind resize and scroll events if not already binded\n if (util.destroyed) {\n util.destroyed = false;\n if (self.options.container) {\n each(self.options.container, function(object) {\n bindEvent(object, 'scroll', util.validateT);\n });\n }\n bindEvent(window, 'resize', util.saveViewportOffsetT);\n bindEvent(window, 'resize', util.validateT);\n bindEvent(window, 'scroll', util.validateT);\n }\n // And finally, we start to lazy load.\n validate(self);\n }\n\n function validate(self) {\n var util = self._util;\n for (var i = 0; i < util.count; i++) {\n var element = util.elements[i];\n if (elementInView(element, self.options) || hasClass(element, self.options.successClass)) {\n self.load(element);\n util.elements.splice(i, 1);\n util.count--;\n i--;\n }\n }\n if (util.count === 0) {\n self.destroy();\n }\n }\n\n function elementInView(ele, options) {\n var rect = ele.getBoundingClientRect();\n\n if(options.container && _supportClosest){\n // Is element inside a container?\n var elementContainer = ele.closest(options.containerClass);\n if(elementContainer){\n var containerRect = elementContainer.getBoundingClientRect();\n // Is container in view?\n if(inView(containerRect, _viewport)){\n var top = containerRect.top - options.offset;\n var right = containerRect.right + options.offset;\n var bottom = containerRect.bottom + options.offset;\n var left = containerRect.left - options.offset;\n var containerRectWithOffset = {\n top: top > _viewport.top ? top : _viewport.top,\n right: right < _viewport.right ? right : _viewport.right,\n bottom: bottom < _viewport.bottom ? bottom : _viewport.bottom,\n left: left > _viewport.left ? left : _viewport.left\n };\n // Is element in view of container?\n return inView(rect, containerRectWithOffset);\n } else {\n return false;\n }\n }\n } \n return inView(rect, _viewport);\n }\n\n function inView(rect, viewport){\n // Intersection\n return rect.right >= viewport.left &&\n rect.bottom >= viewport.top && \n rect.left <= viewport.right && \n rect.top <= viewport.bottom;\n }\n\n function loadElement(ele, force, options) {\n // if element is visible, not loaded or forced\n if (!hasClass(ele, options.successClass) && (force || options.loadInvisible || (ele.offsetWidth > 0 && ele.offsetHeight > 0))) {\n var dataSrc = getAttr(ele, _source) || getAttr(ele, options.src); // fallback to default 'data-src'\n if (dataSrc) {\n var dataSrcSplitted = dataSrc.split(options.separator);\n var src = dataSrcSplitted[_isRetina && dataSrcSplitted.length > 1 ? 1 : 0];\n var srcset = getAttr(ele, options.srcset);\n var isImage = equal(ele, 'img');\n var parent = ele.parentNode;\n var isPicture = parent && equal(parent, 'picture');\n // Image or background image\n if (isImage || ele.src === undefined) {\n var img = new Image();\n // using EventListener instead of onerror and onload\n // due to bug introduced in chrome v50 \n // (https://productforums.google.com/forum/#!topic/chrome/p51Lk7vnP2o)\n var onErrorHandler = function() {\n if (options.error) options.error(ele, \"invalid\");\n addClass(ele, options.errorClass);\n unbindEvent(img, 'error', onErrorHandler);\n unbindEvent(img, 'load', onLoadHandler);\n };\n var onLoadHandler = function() {\n // Is element an image\n if (isImage) {\n if(!isPicture) {\n handleSources(ele, src, srcset);\n }\n // or background-image\n } else {\n ele.style.backgroundImage = 'url(\"' + src + '\")';\n }\n itemLoaded(ele, options);\n unbindEvent(img, 'load', onLoadHandler);\n unbindEvent(img, 'error', onErrorHandler);\n };\n \n // Picture element\n if (isPicture) {\n img = ele; // Image tag inside picture element wont get preloaded\n each(parent.getElementsByTagName('source'), function(source) {\n handleSource(source, _attrSrcset, options.srcset);\n });\n }\n bindEvent(img, 'error', onErrorHandler);\n bindEvent(img, 'load', onLoadHandler);\n handleSources(img, src, srcset); // Preload\n\n } else { // An item with src like iframe, unity games, simpel video etc\n ele.src = src;\n itemLoaded(ele, options);\n }\n } else {\n // video with child source\n if (equal(ele, 'video')) {\n each(ele.getElementsByTagName('source'), function(source) {\n handleSource(source, _attrSrc, options.src);\n });\n ele.load();\n itemLoaded(ele, options);\n } else {\n if (options.error) options.error(ele, \"missing\");\n addClass(ele, options.errorClass);\n }\n }\n }\n }\n\n function itemLoaded(ele, options) {\n addClass(ele, options.successClass);\n if (options.success) options.success(ele);\n // cleanup markup, remove data source attributes\n removeAttr(ele, options.src);\n removeAttr(ele, options.srcset);\n each(options.breakpoints, function(object) {\n removeAttr(ele, object.src);\n });\n }\n\n function handleSource(ele, attr, dataAttr) {\n var dataSrc = getAttr(ele, dataAttr);\n if (dataSrc) {\n setAttr(ele, attr, dataSrc);\n removeAttr(ele, dataAttr);\n }\n }\n\n function handleSources(ele, src, srcset){\n if(srcset) {\n setAttr(ele, _attrSrcset, srcset); //srcset\n }\n ele.src = src; //src \n }\n\n function setAttr(ele, attr, value){\n ele.setAttribute(attr, value);\n }\n\n function getAttr(ele, attr) {\n return ele.getAttribute(attr);\n }\n\n function removeAttr(ele, attr){\n ele.removeAttribute(attr); \n }\n\n function equal(ele, str) {\n return ele.nodeName.toLowerCase() === str;\n }\n\n function hasClass(ele, className) {\n return (' ' + ele.className + ' ').indexOf(' ' + className + ' ') !== -1;\n }\n\n function addClass(ele, className) {\n if (!hasClass(ele, className)) {\n ele.className += ' ' + className;\n }\n }\n\n function toArray(options) {\n var array = [];\n var nodelist = (options.root).querySelectorAll(options.selector);\n for (var i = nodelist.length; i--; array.unshift(nodelist[i])) {}\n return array;\n }\n\n function saveViewportOffset(offset) {\n _viewport.bottom = (window.innerHeight || document.documentElement.clientHeight) + offset;\n _viewport.right = (window.innerWidth || document.documentElement.clientWidth) + offset;\n }\n\n function bindEvent(ele, type, fn) {\n if (ele.attachEvent) {\n ele.attachEvent && ele.attachEvent('on' + type, fn);\n } else {\n ele.addEventListener(type, fn, { capture: false, passive: true });\n }\n }\n\n function unbindEvent(ele, type, fn) {\n if (ele.detachEvent) {\n ele.detachEvent && ele.detachEvent('on' + type, fn);\n } else {\n ele.removeEventListener(type, fn, { capture: false, passive: true });\n }\n }\n\n function each(object, fn) {\n if (object && fn) {\n var l = object.length;\n for (var i = 0; i < l && fn(object[i], i) !== false; i++) {}\n }\n }\n\n function throttle(fn, minDelay, scope) {\n var lastCall = 0;\n return function() {\n var now = +new Date();\n if (now - lastCall < minDelay) {\n return;\n }\n lastCall = now;\n fn.apply(scope, arguments);\n };\n }\n});\n","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar buildURL = require('./../helpers/buildURL');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password || '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n request.open(config.method.toUpperCase(), buildURL(config.url, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n // Listen for ready state\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !config.responseType || config.responseType === 'text' ? request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(resolve, reject, response);\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n reject(createError('timeout of ' + config.timeout + 'ms exceeded', config, 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n var cookies = require('./../helpers/cookies');\n\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(config.url)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (config.withCredentials) {\n request.withCredentials = true;\n }\n\n // Add responseType to request if needed\n if (config.responseType) {\n try {\n request.responseType = config.responseType;\n } catch (e) {\n // Expected DOMException thrown by browsers not compatible XMLHttpRequest Level 2.\n // But, this can be suppressed for 'json' type as it can be parsed by default 'transformResponse' function.\n if (config.responseType !== 'json') {\n throw e;\n }\n }\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (!request) {\n return;\n }\n\n request.abort();\n reject(cancel);\n // Clean up request\n request = null;\n });\n }\n\n if (requestData === undefined) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n","'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n","'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n","// This file can be required in Browserify and Node.js for automatic polyfill\n// To use it: require('es6-promise/auto');\n'use strict';\nmodule.exports = require('./').polyfill();\n","/**\n * SVGInjector v1.1.3 - Fast, caching, dynamic inline SVG DOM injection library\n * https://github.com/iconic/SVGInjector\n *\n * Copyright (c) 2014-2015 Waybury \n * @license MIT\n */\n\n(function (window, document) {\n\n 'use strict';\n\n // Environment\n var isLocal = window.location.protocol === 'file:';\n var hasSvgSupport = document.implementation.hasFeature('http://www.w3.org/TR/SVG11/feature#BasicStructure', '1.1');\n\n function uniqueClasses(list) {\n list = list.split(' ');\n\n var hash = {};\n var i = list.length;\n var out = [];\n\n while (i--) {\n if (!hash.hasOwnProperty(list[i])) {\n hash[list[i]] = 1;\n out.unshift(list[i]);\n }\n }\n\n return out.join(' ');\n }\n\n /**\n * cache (or polyfill for <= IE8) Array.forEach()\n * source: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach\n */\n var forEach = Array.prototype.forEach || function (fn, scope) {\n if (this === void 0 || this === null || typeof fn !== 'function') {\n throw new TypeError();\n }\n\n /* jshint bitwise: false */\n var i, len = this.length >>> 0;\n /* jshint bitwise: true */\n\n for (i = 0; i < len; ++i) {\n if (i in this) {\n fn.call(scope, this[i], i, this);\n }\n }\n };\n\n // SVG Cache\n var svgCache = {};\n\n var injectCount = 0;\n var injectedElements = [];\n\n // Request Queue\n var requestQueue = [];\n\n // Script running status\n var ranScripts = {};\n\n var cloneSvg = function (sourceSvg) {\n return sourceSvg.cloneNode(true);\n };\n\n var queueRequest = function (url, callback) {\n requestQueue[url] = requestQueue[url] || [];\n requestQueue[url].push(callback);\n };\n\n var processRequestQueue = function (url) {\n for (var i = 0, len = requestQueue[url].length; i < len; i++) {\n // Make these calls async so we avoid blocking the page/renderer\n /* jshint loopfunc: true */\n (function (index) {\n setTimeout(function () {\n requestQueue[url][index](cloneSvg(svgCache[url]));\n }, 0);\n })(i);\n /* jshint loopfunc: false */\n }\n };\n\n var loadSvg = function (url, callback) {\n if (svgCache[url] !== undefined) {\n if (svgCache[url] instanceof SVGSVGElement) {\n // We already have it in cache, so use it\n callback(cloneSvg(svgCache[url]));\n }\n else {\n // We don't have it in cache yet, but we are loading it, so queue this request\n queueRequest(url, callback);\n }\n }\n else {\n\n if (!window.XMLHttpRequest) {\n callback('Browser does not support XMLHttpRequest');\n return false;\n }\n\n // Seed the cache to indicate we are loading this URL already\n svgCache[url] = {};\n queueRequest(url, callback);\n\n var httpRequest = new XMLHttpRequest();\n\n httpRequest.onreadystatechange = function () {\n // readyState 4 = complete\n if (httpRequest.readyState === 4) {\n\n // Handle status\n if (httpRequest.status === 404 || httpRequest.responseXML === null) {\n callback('Unable to load SVG file: ' + url);\n\n if (isLocal) callback('Note: SVG injection ajax calls do not work locally without adjusting security setting in your browser. Or consider using a local webserver.');\n\n callback();\n return false;\n }\n\n // 200 success from server, or 0 when using file:// protocol locally\n if (httpRequest.status === 200 || (isLocal && httpRequest.status === 0)) {\n\n /* globals Document */\n if (httpRequest.responseXML instanceof Document) {\n // Cache it\n svgCache[url] = httpRequest.responseXML.documentElement;\n }\n /* globals -Document */\n\n // IE9 doesn't create a responseXML Document object from loaded SVG,\n // and throws a \"DOM Exception: HIERARCHY_REQUEST_ERR (3)\" error when injected.\n //\n // So, we'll just create our own manually via the DOMParser using\n // the the raw XML responseText.\n //\n // :NOTE: IE8 and older doesn't have DOMParser, but they can't do SVG either, so...\n else if (DOMParser && (DOMParser instanceof Function)) {\n var xmlDoc;\n try {\n var parser = new DOMParser();\n xmlDoc = parser.parseFromString(httpRequest.responseText, 'text/xml');\n }\n catch (e) {\n xmlDoc = undefined;\n }\n\n if (!xmlDoc || xmlDoc.getElementsByTagName('parsererror').length) {\n callback('Unable to parse SVG file: ' + url);\n return false;\n }\n else {\n // Cache it\n svgCache[url] = xmlDoc.documentElement;\n }\n }\n\n // We've loaded a new asset, so process any requests waiting for it\n processRequestQueue(url);\n }\n else {\n callback('There was a problem injecting the SVG: ' + httpRequest.status + ' ' + httpRequest.statusText);\n return false;\n }\n }\n };\n\n httpRequest.open('GET', url);\n\n // Treat and parse the response as XML, even if the\n // server sends us a different mimetype\n if (httpRequest.overrideMimeType) httpRequest.overrideMimeType('text/xml');\n\n httpRequest.send();\n }\n };\n\n // Inject a single element\n var injectElement = function (el, evalScripts, pngFallback, callback) {\n\n // Grab the src or data-src attribute\n var imgUrl = el.getAttribute('data-src') || el.getAttribute('src');\n\n // We can only inject SVG\n if (!(/\\.svg/i).test(imgUrl)) {\n callback('Attempted to inject a file with a non-svg extension: ' + imgUrl);\n return;\n }\n\n // If we don't have SVG support try to fall back to a png,\n // either defined per-element via data-fallback or data-png,\n // or globally via the pngFallback directory setting\n if (!hasSvgSupport) {\n var perElementFallback = el.getAttribute('data-fallback') || el.getAttribute('data-png');\n\n // Per-element specific PNG fallback defined, so use that\n if (perElementFallback) {\n el.setAttribute('src', perElementFallback);\n callback(null);\n }\n // Global PNG fallback directoriy defined, use the same-named PNG\n else if (pngFallback) {\n el.setAttribute('src', pngFallback + '/' + imgUrl.split('/').pop().replace('.svg', '.png'));\n callback(null);\n }\n // um...\n else {\n callback('This browser does not support SVG and no PNG fallback was defined.');\n }\n\n return;\n }\n\n // Make sure we aren't already in the process of injecting this element to\n // avoid a race condition if multiple injections for the same element are run.\n // :NOTE: Using indexOf() only _after_ we check for SVG support and bail,\n // so no need for IE8 indexOf() polyfill\n if (injectedElements.indexOf(el) !== -1) {\n return;\n }\n\n // Remember the request to inject this element, in case other injection\n // calls are also trying to replace this element before we finish\n injectedElements.push(el);\n\n // Try to avoid loading the orginal image src if possible.\n el.setAttribute('src', '');\n\n // Load it up\n loadSvg(imgUrl, function (svg) {\n\n if (typeof svg === 'undefined' || typeof svg === 'string') {\n callback(svg);\n return false;\n }\n\n var imgId = el.getAttribute('id');\n if (imgId) {\n svg.setAttribute('id', imgId);\n }\n\n var imgTitle = el.getAttribute('title');\n if (imgTitle) {\n svg.setAttribute('title', imgTitle);\n }\n\n // Concat the SVG classes + 'injected-svg' + the img classes\n var classMerge = [].concat(svg.getAttribute('class') || [], 'injected-svg', el.getAttribute('class') || []).join(' ');\n svg.setAttribute('class', uniqueClasses(classMerge));\n\n var imgStyle = el.getAttribute('style');\n if (imgStyle) {\n svg.setAttribute('style', imgStyle);\n }\n\n // Copy all the data elements to the svg\n var imgData = [].filter.call(el.attributes, function (at) {\n return (/^data-\\w[\\w\\-]*$/).test(at.name);\n });\n forEach.call(imgData, function (dataAttr) {\n if (dataAttr.name && dataAttr.value) {\n svg.setAttribute(dataAttr.name, dataAttr.value);\n }\n });\n\n // Make sure any internally referenced clipPath ids and their\n // clip-path references are unique.\n //\n // This addresses the issue of having multiple instances of the\n // same SVG on a page and only the first clipPath id is referenced.\n //\n // Browsers often shortcut the SVG Spec and don't use clipPaths\n // contained in parent elements that are hidden, so if you hide the first\n // SVG instance on the page, then all other instances lose their clipping.\n // Reference: https://bugzilla.mozilla.org/show_bug.cgi?id=376027\n\n // Handle all defs elements that have iri capable attributes as defined by w3c: http://www.w3.org/TR/SVG/linking.html#processingIRI\n // Mapping IRI addressable elements to the properties that can reference them:\n var iriElementsAndProperties = {\n 'clipPath': ['clip-path'],\n 'color-profile': ['color-profile'],\n 'cursor': ['cursor'],\n 'filter': ['filter'],\n 'linearGradient': ['fill', 'stroke'],\n 'marker': ['marker', 'marker-start', 'marker-mid', 'marker-end'],\n 'mask': ['mask'],\n 'pattern': ['fill', 'stroke'],\n 'radialGradient': ['fill', 'stroke']\n };\n\n var element, elementDefs, properties, currentId, newId;\n Object.keys(iriElementsAndProperties).forEach(function (key) {\n element = key;\n properties = iriElementsAndProperties[key];\n\n elementDefs = svg.querySelectorAll('defs ' + element + '[id]');\n for (var i = 0, elementsLen = elementDefs.length; i < elementsLen; i++) {\n currentId = elementDefs[i].id;\n newId = currentId + '-' + injectCount;\n\n // All of the properties that can reference this element type\n var referencingElements;\n forEach.call(properties, function (property) {\n // :NOTE: using a substring match attr selector here to deal with IE \"adding extra quotes in url() attrs\"\n referencingElements = svg.querySelectorAll('[' + property + '*=\"' + currentId + '\"]');\n for (var j = 0, referencingElementLen = referencingElements.length; j < referencingElementLen; j++) {\n referencingElements[j].setAttribute(property, 'url(#' + newId + ')');\n }\n });\n\n elementDefs[i].id = newId;\n }\n });\n\n // Remove any unwanted/invalid namespaces that might have been added by SVG editing tools\n svg.removeAttribute('xmlns:a');\n\n // Post page load injected SVGs don't automatically have their script\n // elements run, so we'll need to make that happen, if requested\n\n // Find then prune the scripts\n var scripts = svg.querySelectorAll('script');\n var scriptsToEval = [];\n var script, scriptType;\n\n for (var k = 0, scriptsLen = scripts.length; k < scriptsLen; k++) {\n scriptType = scripts[k].getAttribute('type');\n\n // Only process javascript types.\n // SVG defaults to 'application/ecmascript' for unset types\n if (!scriptType || scriptType === 'application/ecmascript' || scriptType === 'application/javascript') {\n\n // innerText for IE, textContent for other browsers\n script = scripts[k].innerText || scripts[k].textContent;\n\n // Stash\n scriptsToEval.push(script);\n\n // Tidy up and remove the script element since we don't need it anymore\n svg.removeChild(scripts[k]);\n }\n }\n\n // Run/Eval the scripts if needed\n if (scriptsToEval.length > 0 && (evalScripts === 'always' || (evalScripts === 'once' && !ranScripts[imgUrl]))) {\n for (var l = 0, scriptsToEvalLen = scriptsToEval.length; l < scriptsToEvalLen; l++) {\n\n // :NOTE: Yup, this is a form of eval, but it is being used to eval code\n // the caller has explictely asked to be loaded, and the code is in a caller\n // defined SVG file... not raw user input.\n //\n // Also, the code is evaluated in a closure and not in the global scope.\n // If you need to put something in global scope, use 'window'\n new Function(scriptsToEval[l])(window); // jshint ignore:line\n }\n\n // Remember we already ran scripts for this svg\n ranScripts[imgUrl] = true;\n }\n\n // :WORKAROUND:\n // IE doesn't evaluate