From e71b4421c33530f8a4085c8983d381fedfda4f68 Mon Sep 17 00:00:00 2001 From: Roberto Tonino Date: Wed, 4 Nov 2020 20:51:14 +0100 Subject: [PATCH] workflow: added rollup-plugin-esbuild, bundling should be a bit faster; style: fixed settings flags display --- package-lock.json | 215 +- package.json | 3 +- public/js/bundle.js | 32971 +++++++++++++++++++++++++++- rollup.config.js | 18 +- src/components/pages/Settings.vue | 6 +- 5 files changed, 33021 insertions(+), 192 deletions(-) diff --git a/package-lock.json b/package-lock.json index f57987b..a347673 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4,63 +4,6 @@ "lockfileVersion": 1, "requires": true, "dependencies": { - "@babel/code-frame": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", - "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", - "dev": true, - "requires": { - "@babel/highlight": "^7.10.4" - } - }, - "@babel/helper-validator-identifier": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", - "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==", - "dev": true - }, - "@babel/highlight": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", - "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.10.4", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, "@babel/runtime": { "version": "7.12.1", "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.1.tgz", @@ -721,12 +664,6 @@ "node-releases": "^1.1.65" } }, - "buffer-from": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", - "dev": true - }, "builtin-modules": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.1.0.tgz", @@ -1008,12 +945,6 @@ "delayed-stream": "~1.0.0" } }, - "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, "commondir": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", @@ -1771,6 +1702,12 @@ "is-symbol": "^1.0.2" } }, + "esbuild": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.8.3.tgz", + "integrity": "sha512-PxoukdXYOyT3pxwZmcD6jDLaPH4e2oRmWx51aflBUYk5+JcGLqwjfH9eXsnkK/1kgOA3WOVP7IhQ2gLyEH+Xbg==", + "dev": true + }, "escalade": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", @@ -2418,33 +2355,11 @@ "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", "dev": true }, - "jest-worker": { - "version": "26.6.1", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.1.tgz", - "integrity": "sha512-R5IE3qSGz+QynJx8y+ICEkdI2OJ3RJjRQVEyCcFAd3yVhQSEtquziPO29Mlzgn07LOVE8u8jhJ1FqcwegiXWOw==", - "dev": true, - "requires": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^7.0.0" - }, - "dependencies": { - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } + "joycon": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/joycon/-/joycon-2.2.5.tgz", + "integrity": "sha512-YqvUxoOcVPnCp0VU1/56f+iKSdvIRJYPznH22BdXV3xMk75SFXhWeJkZ8C9XxUWt1b5x2X1SxuFygW1U0FmkEQ==", + "dev": true }, "js-base64": { "version": "2.6.4", @@ -2452,12 +2367,6 @@ "integrity": "sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==", "dev": true }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, "js-yaml": { "version": "3.14.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz", @@ -2697,12 +2606,6 @@ } } }, - "merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true - }, "mime-db": { "version": "1.44.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", @@ -6084,15 +5987,6 @@ "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", "dev": true }, - "randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dev": true, - "requires": { - "safe-buffer": "^5.1.0" - } - }, "read-pkg": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", @@ -6273,6 +6167,29 @@ "integrity": "sha512-zUPGitW4usmZcVa0nKecRvw3odtXgnxdCben9Hx1kxVoR3demek8RU9tmRG/R35hnRPQTb7wEsYEe3GUcjxIMA==", "dev": true }, + "rollup-plugin-esbuild": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/rollup-plugin-esbuild/-/rollup-plugin-esbuild-2.5.2.tgz", + "integrity": "sha512-E4q3ac1AlMd0m0ZRYffdiorOt2eZcxfbdPaqBLs7JLnPE8krgIAihOD6cTUc54UJjoOMA9WcY63TR+JKWLzYNw==", + "dev": true, + "requires": { + "@rollup/pluginutils": "^4.0.0", + "joycon": "^2.2.5", + "strip-json-comments": "^3.1.1" + }, + "dependencies": { + "@rollup/pluginutils": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.1.0.tgz", + "integrity": "sha512-TrBhfJkFxA+ER+ew2U2/fHbebhLT/l/2pRk0hfj9KusXUuRXd2v0R58AfaZK9VXDQ4TogOSEmICVrQAA3zFnHQ==", + "dev": true, + "requires": { + "estree-walker": "^2.0.1", + "picomatch": "^2.2.2" + } + } + } + }, "rollup-plugin-postcss": { "version": "3.1.8", "resolved": "https://registry.npmjs.org/rollup-plugin-postcss/-/rollup-plugin-postcss-3.1.8.tgz", @@ -6459,18 +6376,6 @@ } } }, - "rollup-plugin-terser": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz", - "integrity": "sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.10.4", - "jest-worker": "^26.2.1", - "serialize-javascript": "^4.0.0", - "terser": "^5.0.0" - } - }, "rollup-plugin-vue": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/rollup-plugin-vue/-/rollup-plugin-vue-4.2.0.tgz", @@ -6613,15 +6518,6 @@ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true }, - "serialize-javascript": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", - "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", - "dev": true, - "requires": { - "randombytes": "^2.1.0" - } - }, "set-blocking": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", @@ -6687,24 +6583,6 @@ "amdefine": ">=0.0.4" } }, - "source-map-support": { - "version": "0.5.19", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", - "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, "sourcemap-codec": { "version": "1.4.8", "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", @@ -6908,6 +6786,12 @@ "get-stdin": "^4.0.1" } }, + "strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true + }, "style-inject": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/style-inject/-/style-inject-0.3.0.tgz", @@ -7230,25 +7114,6 @@ "inherits": "2" } }, - "terser": { - "version": "5.3.8", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.3.8.tgz", - "integrity": "sha512-zVotuHoIfnYjtlurOouTazciEfL7V38QMAOhGqpXDEg6yT13cF4+fEP9b0rrCEQTn+tT46uxgFsTZzhygk+CzQ==", - "dev": true, - "requires": { - "commander": "^2.20.0", - "source-map": "~0.7.2", - "source-map-support": "~0.5.19" - }, - "dependencies": { - "source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", - "dev": true - } - } - }, "timsort": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz", diff --git a/package.json b/package.json index 4f51e89..d0a71c0 100644 --- a/package.json +++ b/package.json @@ -33,15 +33,16 @@ "@rollup/plugin-commonjs": "^16.0.0", "@rollup/plugin-node-resolve": "^10.0.0", "@rollup/plugin-replace": "^2.3.4", + "esbuild": "^0.8.3", "node-sass": "^4.14.1", "npm-run-all": "^4.1.5", "postcss": "^8.1.4", "rimraf": "^3.0.2", "rollup": "^2.32.1", "rollup-plugin-analyzer": "^3.3.0", + "rollup-plugin-esbuild": "^2.5.2", "rollup-plugin-postcss": "^3.1.8", "rollup-plugin-svg": "^2.0.0", - "rollup-plugin-terser": "^7.0.2", "rollup-plugin-vue": "^4.2.0", "sass": "^1.27.0", "tailwindcss": "^1.9.6", diff --git a/public/js/bundle.js b/public/js/bundle.js index b82f8f3..85aa0e6 100644 --- a/public/js/bundle.js +++ b/public/js/bundle.js @@ -3,13 +3,14097 @@ * (c) 2014-2020 Evan You * Released under the MIT License. */ -var e=Object.freeze({});function t(e){return null==e}function a(e){return null!=e}function n(e){return!0===e}function i(e){return"string"==typeof e||"number"==typeof e||"symbol"==typeof e||"boolean"==typeof e}function r(e){return null!==e&&"object"==typeof e}var s=Object.prototype.toString;function o(e){return"[object Object]"===s.call(e)}function l(e){var t=parseFloat(String(e));return t>=0&&Math.floor(t)===t&&isFinite(e)}function c(e){return a(e)&&"function"==typeof e.then&&"function"==typeof e.catch}function d(e){return null==e?"":Array.isArray(e)||o(e)&&e.toString===s?JSON.stringify(e,null,2):String(e)}function u(e){var t=parseFloat(e);return isNaN(t)?e:t}function p(e,t){for(var a=Object.create(null),n=e.split(","),i=0;i-1)return e.splice(a,1)}}var g=Object.prototype.hasOwnProperty;function v(e,t){return g.call(e,t)}function b(e){var t=Object.create(null);return function(a){return t[a]||(t[a]=e(a))}}var y=/-(\w)/g,k=b((function(e){return e.replace(y,(function(e,t){return t?t.toUpperCase():""}))})),_=b((function(e){return e.charAt(0).toUpperCase()+e.slice(1)})),w=/\B([A-Z])/g,A=b((function(e){return e.replace(w,"-$1").toLowerCase()}));var x=Function.prototype.bind?function(e,t){return e.bind(t)}:function(e,t){function a(a){var n=arguments.length;return n?n>1?e.apply(t,arguments):e.call(t,a):e.call(t)}return a._length=e.length,a};function C(e,t){t=t||0;for(var a=e.length-t,n=new Array(a);a--;)n[a]=e[a+t];return n}function z(e,t){for(var a in t)e[a]=t[a];return e}function S(e){for(var t={},a=0;a0,Y=H&&H.indexOf("edge/")>0,Q=(H&&H.indexOf("android"),H&&/iphone|ipad|ipod|ios/.test(H)||"ios"===G),J=(H&&/chrome\/\d+/.test(H),H&&/phantomjs/.test(H),H&&H.match(/firefox\/(\d+)/)),Z={}.watch,X=!1;if(q)try{var ee={};Object.defineProperty(ee,"passive",{get:function(){X=!0}}),window.addEventListener("test-passive",null,ee)}catch(e){}var te=function(){return void 0===E&&(E=!q&&!V&&"undefined"!=typeof global&&(global.process&&"server"===global.process.env.VUE_ENV)),E},ae=q&&window.__VUE_DEVTOOLS_GLOBAL_HOOK__;function ne(e){return"function"==typeof e&&/native code/.test(e.toString())}var ie,re="undefined"!=typeof Symbol&&ne(Symbol)&&"undefined"!=typeof Reflect&&ne(Reflect.ownKeys);ie="undefined"!=typeof Set&&ne(Set)?Set:function(){function e(){this.set=Object.create(null)}return e.prototype.has=function(e){return!0===this.set[e]},e.prototype.add=function(e){this.set[e]=!0},e.prototype.clear=function(){this.set=Object.create(null)},e}();var se=T,oe=0,le=function(){this.id=oe++,this.subs=[]};le.prototype.addSub=function(e){this.subs.push(e)},le.prototype.removeSub=function(e){f(this.subs,e)},le.prototype.depend=function(){le.target&&le.target.addDep(this)},le.prototype.notify=function(){for(var e=this.subs.slice(),t=0,a=e.length;t-1)if(r&&!v(i,"default"))s=!1;else if(""===s||s===A(e)){var l=je(String,i.type);(l<0||o0&&(ct((o=dt(o,(r||"")+"_"+s))[0])&&ct(c)&&(d[l]=fe(c.text+o[0].text),o.shift()),d.push.apply(d,o)):i(o)?ct(c)?d[l]=fe(c.text+o):""!==o&&d.push(fe(o)):ct(o)&&ct(c)?d[l]=fe(c.text+o.text):(n(e._isVList)&&a(o.tag)&&t(o.key)&&a(r)&&(o.key="__vlist"+r+"_"+s+"__"),d.push(o)));return d}function ut(e,t){if(e){for(var a=Object.create(null),n=re?Reflect.ownKeys(e):Object.keys(e),i=0;i0,s=t?!!t.$stable:!r,o=t&&t.$key;if(t){if(t._normalized)return t._normalized;if(s&&n&&n!==e&&o===n.$key&&!r&&!n.$hasNormal)return n;for(var l in i={},t)t[l]&&"$"!==l[0]&&(i[l]=ft(a,l,t[l]))}else i={};for(var c in a)c in i||(i[c]=gt(a,c));return t&&Object.isExtensible(t)&&(t._normalized=i),j(i,"$stable",s),j(i,"$key",o),j(i,"$hasNormal",r),i}function ft(e,t,a){var n=function(){var e=arguments.length?a.apply(null,arguments):a({});return(e=e&&"object"==typeof e&&!Array.isArray(e)?[e]:lt(e))&&(0===e.length||1===e.length&&e[0].isComment)?void 0:e};return a.proxy&&Object.defineProperty(e,t,{get:n,enumerable:!0,configurable:!0}),n}function gt(e,t){return function(){return e[t]}}function vt(e,t){var n,i,s,o,l;if(Array.isArray(e)||"string"==typeof e)for(n=new Array(e.length),i=0,s=e.length;idocument.createEvent("Event").timeStamp&&(ca=function(){return da.now()})}function ua(){var e,t;for(la=ca(),sa=!0,aa.sort((function(e,t){return e.id-t.id})),oa=0;oaoa&&aa[a].id>e.id;)a--;aa.splice(a+1,0,e)}else aa.push(e);ra||(ra=!0,Xe(ua))}}(this)},ma.prototype.run=function(){if(this.active){var e=this.get();if(e!==this.value||r(e)||this.deep){var t=this.value;if(this.value=e,this.user)try{this.cb.call(this.vm,e,t)}catch(e){Oe(e,this.vm,'callback for watcher "'+this.expression+'"')}else this.cb.call(this.vm,e,t)}}},ma.prototype.evaluate=function(){this.value=this.get(),this.dirty=!1},ma.prototype.depend=function(){for(var e=this.deps.length;e--;)this.deps[e].depend()},ma.prototype.teardown=function(){if(this.active){this.vm._isBeingDestroyed||f(this.vm._watchers,this);for(var e=this.deps.length;e--;)this.deps[e].removeSub(this);this.active=!1}};var ha={enumerable:!0,configurable:!0,get:T,set:T};function fa(e,t,a){ha.get=function(){return this[t][a]},ha.set=function(e){this[t][a]=e},Object.defineProperty(e,a,ha)}function ga(e){e._watchers=[];var t=e.$options;t.props&&function(e,t){var a=e.$options.propsData||{},n=e._props={},i=e.$options._propKeys=[];e.$parent&&_e(!1);var r=function(r){i.push(r);var s=Re(r,t,a,e);xe(n,r,s),r in e||fa(e,"_props",r)};for(var s in t)r(s);_e(!0)}(e,t.props),t.methods&&function(e,t){e.$options.props;for(var a in t)e[a]="function"!=typeof t[a]?T:x(t[a],e)}(e,t.methods),t.data?function(e){var t=e.$options.data;o(t=e._data="function"==typeof t?function(e,t){de();try{return e.call(t,t)}catch(e){return Oe(e,t,"data()"),{}}finally{ue()}}(t,e):t||{})||(t={});var a=Object.keys(t),n=e.$options.props,i=(e.$options.methods,a.length);for(;i--;){var r=a[i];n&&v(n,r)||I(r)||fa(e,"_data",r)}Ae(t,!0)}(e):Ae(e._data={},!0),t.computed&&function(e,t){var a=e._computedWatchers=Object.create(null),n=te();for(var i in t){var r=t[i],s="function"==typeof r?r:r.get;n||(a[i]=new ma(e,s||T,T,va)),i in e||ba(e,i,r)}}(e,t.computed),t.watch&&t.watch!==Z&&function(e,t){for(var a in t){var n=t[a];if(Array.isArray(n))for(var i=0;i-1:"string"==typeof e?e.split(",").indexOf(t)>-1:(a=e,"[object RegExp]"===s.call(a)&&e.test(t));var a}function Ta(e,t){var a=e.cache,n=e.keys,i=e._vnode;for(var r in a){var s=a[r];if(s){var o=za(s.componentOptions);o&&!t(o)&&Ma(a,r,n,i)}}}function Ma(e,t,a,n){var i=e[t];!i||n&&i.tag===n.tag||i.componentInstance.$destroy(),e[t]=null,f(a,t)}!function(t){t.prototype._init=function(t){var a=this;a._uid=wa++,a._isVue=!0,t&&t._isComponent?function(e,t){var a=e.$options=Object.create(e.constructor.options),n=t._parentVnode;a.parent=t.parent,a._parentVnode=n;var i=n.componentOptions;a.propsData=i.propsData,a._parentListeners=i.listeners,a._renderChildren=i.children,a._componentTag=i.tag,t.render&&(a.render=t.render,a.staticRenderFns=t.staticRenderFns)}(a,t):a.$options=Le(Aa(a.constructor),t||{},a),a._renderProxy=a,a._self=a,function(e){var t=e.$options,a=t.parent;if(a&&!t.abstract){for(;a.$options.abstract&&a.$parent;)a=a.$parent;a.$children.push(e)}e.$parent=a,e.$root=a?a.$root:e,e.$children=[],e.$refs={},e._watcher=null,e._inactive=null,e._directInactive=!1,e._isMounted=!1,e._isDestroyed=!1,e._isBeingDestroyed=!1}(a),function(e){e._events=Object.create(null),e._hasHookEvent=!1;var t=e.$options._parentListeners;t&&Yt(e,t)}(a),function(t){t._vnode=null,t._staticTrees=null;var a=t.$options,n=t.$vnode=a._parentVnode,i=n&&n.context;t.$slots=pt(a._renderChildren,i),t.$scopedSlots=e,t._c=function(e,a,n,i){return jt(t,e,a,n,i,!1)},t.$createElement=function(e,a,n,i){return jt(t,e,a,n,i,!0)};var r=n&&n.data;xe(t,"$attrs",r&&r.attrs||e,null,!0),xe(t,"$listeners",a._parentListeners||e,null,!0)}(a),ta(a,"beforeCreate"),function(e){var t=ut(e.$options.inject,e);t&&(_e(!1),Object.keys(t).forEach((function(a){xe(e,a,t[a])})),_e(!0))}(a),ga(a),function(e){var t=e.$options.provide;t&&(e._provided="function"==typeof t?t.call(e):t)}(a),ta(a,"created"),a.$options.el&&a.$mount(a.$options.el)}}(xa),function(e){var t={get:function(){return this._data}},a={get:function(){return this._props}};Object.defineProperty(e.prototype,"$data",t),Object.defineProperty(e.prototype,"$props",a),e.prototype.$set=Ce,e.prototype.$delete=ze,e.prototype.$watch=function(e,t,a){var n=this;if(o(t))return _a(n,e,t,a);(a=a||{}).user=!0;var i=new ma(n,e,t,a);if(a.immediate)try{t.call(n,i.value)}catch(e){Oe(e,n,'callback for immediate watcher "'+i.expression+'"')}return function(){i.teardown()}}}(xa),function(e){var t=/^hook:/;e.prototype.$on=function(e,a){var n=this;if(Array.isArray(e))for(var i=0,r=e.length;i1?C(a):a;for(var n=C(arguments,1),i='event handler for "'+e+'"',r=0,s=a.length;rparseInt(this.max)&&Ma(s,o[0],o,this._vnode)),t.data.keepAlive=!0}return t||e&&e[0]}}};!function(e){var t={get:function(){return R}};Object.defineProperty(e,"config",t),e.util={warn:se,extend:z,mergeOptions:Le,defineReactive:xe},e.set=Ce,e.delete=ze,e.nextTick=Xe,e.observable=function(e){return Ae(e),e},e.options=Object.create(null),L.forEach((function(t){e.options[t+"s"]=Object.create(null)})),e.options._base=e,z(e.options.components,Da),function(e){e.use=function(e){var t=this._installedPlugins||(this._installedPlugins=[]);if(t.indexOf(e)>-1)return this;var a=C(arguments,1);return a.unshift(this),"function"==typeof e.install?e.install.apply(e,a):"function"==typeof e&&e.apply(null,a),t.push(e),this}}(e),function(e){e.mixin=function(e){return this.options=Le(this.options,e),this}}(e),Ca(e),function(e){L.forEach((function(t){e[t]=function(e,a){return a?("component"===t&&o(a)&&(a.name=a.name||e,a=this.options._base.extend(a)),"directive"===t&&"function"==typeof a&&(a={bind:a,update:a}),this.options[t+"s"][e]=a,a):this.options[t+"s"][e]}}))}(e)}(xa),Object.defineProperty(xa.prototype,"$isServer",{get:te}),Object.defineProperty(xa.prototype,"$ssrContext",{get:function(){return this.$vnode&&this.$vnode.ssrContext}}),Object.defineProperty(xa,"FunctionalRenderContext",{value:Pt}),xa.version="2.6.12";var Pa=p("style,class"),Na=p("input,textarea,option,select,progress"),La=function(e,t,a){return"value"===a&&Na(e)&&"button"!==t||"selected"===a&&"option"===e||"checked"===a&&"input"===e||"muted"===a&&"video"===e},Ua=p("contenteditable,draggable,spellcheck"),Ra=p("events,caret,typing,plaintext-only"),$a=p("allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,default,defaultchecked,defaultmuted,defaultselected,defer,disabled,enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,required,reversed,scoped,seamless,selected,sortable,translate,truespeed,typemustmatch,visible"),Ia="http://www.w3.org/1999/xlink",ja=function(e){return":"===e.charAt(5)&&"xlink"===e.slice(0,5)},Oa=function(e){return ja(e)?e.slice(6,e.length):""},Ea=function(e){return null==e||!1===e};function Ba(e){for(var t=e.data,n=e,i=e;a(i.componentInstance);)(i=i.componentInstance._vnode)&&i.data&&(t=qa(i.data,t));for(;a(n=n.parent);)n&&n.data&&(t=qa(t,n.data));return function(e,t){if(a(e)||a(t))return Va(e,Ga(t));return""}(t.staticClass,t.class)}function qa(e,t){return{staticClass:Va(e.staticClass,t.staticClass),class:a(e.class)?[e.class,t.class]:t.class}}function Va(e,t){return e?t?e+" "+t:e:t||""}function Ga(e){return Array.isArray(e)?function(e){for(var t,n="",i=0,r=e.length;i-1?vn(e,t,a):$a(t)?Ea(a)?e.removeAttribute(t):(a="allowfullscreen"===t&&"EMBED"===e.tagName?"true":t,e.setAttribute(t,a)):Ua(t)?e.setAttribute(t,function(e,t){return Ea(t)||"false"===t?"false":"contenteditable"===e&&Ra(t)?t:"true"}(t,a)):ja(t)?Ea(a)?e.removeAttributeNS(Ia,Oa(t)):e.setAttributeNS(Ia,t,a):vn(e,t,a)}function vn(e,t,a){if(Ea(a))e.removeAttribute(t);else{if(W&&!K&&"TEXTAREA"===e.tagName&&"placeholder"===t&&""!==a&&!e.__ieph){var n=function(t){t.stopImmediatePropagation(),e.removeEventListener("input",n)};e.addEventListener("input",n),e.__ieph=!0}e.setAttribute(t,a)}}var bn={create:fn,update:fn};function yn(e,n){var i=n.elm,r=n.data,s=e.data;if(!(t(r.staticClass)&&t(r.class)&&(t(s)||t(s.staticClass)&&t(s.class)))){var o=Ba(n),l=i._transitionClasses;a(l)&&(o=Va(o,Ga(l))),o!==i._prevClass&&(i.setAttribute("class",o),i._prevClass=o)}}var kn,_n,wn,An,xn,Cn,zn={create:yn,update:yn},Sn=/[\w).+\-_$\]]/;function Tn(e){var t,a,n,i,r,s=!1,o=!1,l=!1,c=!1,d=0,u=0,p=0,m=0;for(n=0;n=0&&" "===(f=e.charAt(h));h--);f&&Sn.test(f)||(c=!0)}}else void 0===i?(m=n+1,i=e.slice(0,n).trim()):g();function g(){(r||(r=[])).push(e.slice(m,n).trim()),m=n+1}if(void 0===i?i=e.slice(0,n).trim():0!==m&&g(),r)for(n=0;n-1?{exp:e.slice(0,An),key:'"'+e.slice(An+1)+'"'}:{exp:e,key:null};_n=e,An=xn=Cn=0;for(;!Gn();)Hn(wn=Vn())?Kn(wn):91===wn&&Wn(wn);return{exp:e.slice(0,xn),key:e.slice(xn+1,Cn)}}(e);return null===a.key?e+"="+t:"$set("+a.exp+", "+a.key+", "+t+")"}function Vn(){return _n.charCodeAt(++An)}function Gn(){return An>=kn}function Hn(e){return 34===e||39===e}function Wn(e){var t=1;for(xn=An;!Gn();)if(Hn(e=Vn()))Kn(e);else if(91===e&&t++,93===e&&t--,0===t){Cn=An;break}}function Kn(e){for(var t=e;!Gn()&&(e=Vn())!==t;);}var Yn;function Qn(e,t,a){var n=Yn;return function i(){var r=t.apply(null,arguments);null!==r&&Xn(e,i,a,n)}}var Jn=Ge&&!(J&&Number(J[1])<=53);function Zn(e,t,a,n){if(Jn){var i=la,r=t;t=r._wrapper=function(e){if(e.target===e.currentTarget||e.timeStamp>=i||e.timeStamp<=0||e.target.ownerDocument!==document)return r.apply(this,arguments)}}Yn.addEventListener(e,t,X?{capture:a,passive:n}:a)}function Xn(e,t,a,n){(n||Yn).removeEventListener(e,t._wrapper||t,a)}function ei(e,n){if(!t(e.data.on)||!t(n.data.on)){var i=n.data.on||{},r=e.data.on||{};Yn=n.elm,function(e){if(a(e.__r)){var t=W?"change":"input";e[t]=[].concat(e.__r,e[t]||[]),delete e.__r}a(e.__c)&&(e.change=[].concat(e.__c,e.change||[]),delete e.__c)}(i),rt(i,r,Zn,Xn,Qn,n.context),Yn=void 0}}var ti,ai={create:ei,update:ei};function ni(e,n){if(!t(e.data.domProps)||!t(n.data.domProps)){var i,r,s=n.elm,o=e.data.domProps||{},l=n.data.domProps||{};for(i in a(l.__ob__)&&(l=n.data.domProps=z({},l)),o)i in l||(s[i]="");for(i in l){if(r=l[i],"textContent"===i||"innerHTML"===i){if(n.children&&(n.children.length=0),r===o[i])continue;1===s.childNodes.length&&s.removeChild(s.childNodes[0])}if("value"===i&&"PROGRESS"!==s.tagName){s._value=r;var c=t(r)?"":String(r);ii(s,c)&&(s.value=c)}else if("innerHTML"===i&&Ka(s.tagName)&&t(s.innerHTML)){(ti=ti||document.createElement("div")).innerHTML=""+r+"";for(var d=ti.firstChild;s.firstChild;)s.removeChild(s.firstChild);for(;d.firstChild;)s.appendChild(d.firstChild)}else if(r!==o[i])try{s[i]=r}catch(e){}}}}function ii(e,t){return!e.composing&&("OPTION"===e.tagName||function(e,t){var a=!0;try{a=document.activeElement!==e}catch(e){}return a&&e.value!==t}(e,t)||function(e,t){var n=e.value,i=e._vModifiers;if(a(i)){if(i.number)return u(n)!==u(t);if(i.trim)return n.trim()!==t.trim()}return n!==t}(e,t))}var ri={create:ni,update:ni},si=b((function(e){var t={},a=/:(.+)/;return e.split(/;(?![^(]*\))/g).forEach((function(e){if(e){var n=e.split(a);n.length>1&&(t[n[0].trim()]=n[1].trim())}})),t}));function oi(e){var t=li(e.style);return e.staticStyle?z(e.staticStyle,t):t}function li(e){return Array.isArray(e)?S(e):"string"==typeof e?si(e):e}var ci,di=/^--/,ui=/\s*!important$/,pi=function(e,t,a){if(di.test(t))e.style.setProperty(t,a);else if(ui.test(a))e.style.setProperty(A(t),a.replace(ui,""),"important");else{var n=hi(t);if(Array.isArray(a))for(var i=0,r=a.length;i-1?t.split(vi).forEach((function(t){return e.classList.add(t)})):e.classList.add(t);else{var a=" "+(e.getAttribute("class")||"")+" ";a.indexOf(" "+t+" ")<0&&e.setAttribute("class",(a+t).trim())}}function yi(e,t){if(t&&(t=t.trim()))if(e.classList)t.indexOf(" ")>-1?t.split(vi).forEach((function(t){return e.classList.remove(t)})):e.classList.remove(t),e.classList.length||e.removeAttribute("class");else{for(var a=" "+(e.getAttribute("class")||"")+" ",n=" "+t+" ";a.indexOf(n)>=0;)a=a.replace(n," ");(a=a.trim())?e.setAttribute("class",a):e.removeAttribute("class")}}function ki(e){if(e){if("object"==typeof e){var t={};return!1!==e.css&&z(t,_i(e.name||"v")),z(t,e),t}return"string"==typeof e?_i(e):void 0}}var _i=b((function(e){return{enterClass:e+"-enter",enterToClass:e+"-enter-to",enterActiveClass:e+"-enter-active",leaveClass:e+"-leave",leaveToClass:e+"-leave-to",leaveActiveClass:e+"-leave-active"}})),wi=q&&!K,Ai="transition",xi="transitionend",Ci="animation",zi="animationend";wi&&(void 0===window.ontransitionend&&void 0!==window.onwebkittransitionend&&(Ai="WebkitTransition",xi="webkitTransitionEnd"),void 0===window.onanimationend&&void 0!==window.onwebkitanimationend&&(Ci="WebkitAnimation",zi="webkitAnimationEnd"));var Si=q?window.requestAnimationFrame?window.requestAnimationFrame.bind(window):setTimeout:function(e){return e()};function Ti(e){Si((function(){Si(e)}))}function Mi(e,t){var a=e._transitionClasses||(e._transitionClasses=[]);a.indexOf(t)<0&&(a.push(t),bi(e,t))}function Fi(e,t){e._transitionClasses&&f(e._transitionClasses,t),yi(e,t)}function Di(e,t,a){var n=Ni(e,t),i=n.type,r=n.timeout,s=n.propCount;if(!i)return a();var o="transition"===i?xi:zi,l=0,c=function(){e.removeEventListener(o,d),a()},d=function(t){t.target===e&&++l>=s&&c()};setTimeout((function(){l0&&(a="transition",d=s,u=r.length):"animation"===t?c>0&&(a="animation",d=c,u=l.length):u=(a=(d=Math.max(s,c))>0?s>c?"transition":"animation":null)?"transition"===a?r.length:l.length:0,{type:a,timeout:d,propCount:u,hasTransform:"transition"===a&&Pi.test(n[Ai+"Property"])}}function Li(e,t){for(;e.length1}function Oi(e,t){!0!==t.data.show&&Ri(t)}var Ei=function(e){var r,s,o={},l=e.modules,c=e.nodeOps;for(r=0;rh?y(e,t(i[v+1])?null:i[v+1].elm,i,m,v,r):m>v&&_(n,p,h)}(p,f,v,r,d):a(v)?(a(e.text)&&c.setTextContent(p,""),y(p,null,v,0,v.length-1,r)):a(f)?_(f,0,f.length-1):a(e.text)&&c.setTextContent(p,""):e.text!==i.text&&c.setTextContent(p,i.text),a(h)&&a(m=h.hook)&&a(m=m.postpatch)&&m(e,i)}}}function C(e,t,i){if(n(i)&&a(e.parent))e.parent.data.pendingInsert=t;else for(var r=0;r-1,s.selected!==r&&(s.selected=r);else if(D(Hi(s),n))return void(e.selectedIndex!==o&&(e.selectedIndex=o));i||(e.selectedIndex=-1)}}function Gi(e,t){return t.every((function(t){return!D(t,e)}))}function Hi(e){return"_value"in e?e._value:e.value}function Wi(e){e.target.composing=!0}function Ki(e){e.target.composing&&(e.target.composing=!1,Yi(e.target,"input"))}function Yi(e,t){var a=document.createEvent("HTMLEvents");a.initEvent(t,!0,!0),e.dispatchEvent(a)}function Qi(e){return!e.componentInstance||e.data&&e.data.transition?e:Qi(e.componentInstance._vnode)}var Ji={model:Bi,show:{bind:function(e,t,a){var n=t.value,i=(a=Qi(a)).data&&a.data.transition,r=e.__vOriginalDisplay="none"===e.style.display?"":e.style.display;n&&i?(a.data.show=!0,Ri(a,(function(){e.style.display=r}))):e.style.display=n?r:"none"},update:function(e,t,a){var n=t.value;!n!=!t.oldValue&&((a=Qi(a)).data&&a.data.transition?(a.data.show=!0,n?Ri(a,(function(){e.style.display=e.__vOriginalDisplay})):$i(a,(function(){e.style.display="none"}))):e.style.display=n?e.__vOriginalDisplay:"none")},unbind:function(e,t,a,n,i){i||(e.style.display=e.__vOriginalDisplay)}}},Zi={name:String,appear:Boolean,css:Boolean,mode:String,type:String,enterClass:String,leaveClass:String,enterToClass:String,leaveToClass:String,enterActiveClass:String,leaveActiveClass:String,appearClass:String,appearActiveClass:String,appearToClass:String,duration:[Number,String,Object]};function Xi(e){var t=e&&e.componentOptions;return t&&t.Ctor.options.abstract?Xi(Gt(t.children)):e}function er(e){var t={},a=e.$options;for(var n in a.propsData)t[n]=e[n];var i=a._parentListeners;for(var r in i)t[k(r)]=i[r];return t}function tr(e,t){if(/\d-keep-alive$/.test(t.tag))return e("keep-alive",{props:t.componentOptions.propsData})}var ar=function(e){return e.tag||Vt(e)},nr=function(e){return"show"===e.name},ir={name:"transition",props:Zi,abstract:!0,render:function(e){var t=this,a=this.$slots.default;if(a&&(a=a.filter(ar)).length){var n=this.mode,r=a[0];if(function(e){for(;e=e.parent;)if(e.data.transition)return!0}(this.$vnode))return r;var s=Xi(r);if(!s)return r;if(this._leaving)return tr(e,r);var o="__transition-"+this._uid+"-";s.key=null==s.key?s.isComment?o+"comment":o+s.tag:i(s.key)?0===String(s.key).indexOf(o)?s.key:o+s.key:s.key;var l=(s.data||(s.data={})).transition=er(this),c=this._vnode,d=Xi(c);if(s.data.directives&&s.data.directives.some(nr)&&(s.data.show=!0),d&&d.data&&!function(e,t){return t.key===e.key&&t.tag===e.tag}(s,d)&&!Vt(d)&&(!d.componentInstance||!d.componentInstance._vnode.isComment)){var u=d.data.transition=z({},l);if("out-in"===n)return this._leaving=!0,st(u,"afterLeave",(function(){t._leaving=!1,t.$forceUpdate()})),tr(e,r);if("in-out"===n){if(Vt(s))return c;var p,m=function(){p()};st(l,"afterEnter",m),st(l,"enterCancelled",m),st(u,"delayLeave",(function(e){p=e}))}}return r}}},rr=z({tag:String,moveClass:String},Zi);function sr(e){e.elm._moveCb&&e.elm._moveCb(),e.elm._enterCb&&e.elm._enterCb()}function or(e){e.data.newPos=e.elm.getBoundingClientRect()}function lr(e){var t=e.data.pos,a=e.data.newPos,n=t.left-a.left,i=t.top-a.top;if(n||i){e.data.moved=!0;var r=e.elm.style;r.transform=r.WebkitTransform="translate("+n+"px,"+i+"px)",r.transitionDuration="0s"}}delete rr.mode;var cr={Transition:ir,TransitionGroup:{props:rr,beforeMount:function(){var e=this,t=this._update;this._update=function(a,n){var i=Jt(e);e.__patch__(e._vnode,e.kept,!1,!0),e._vnode=e.kept,i(),t.call(e,a,n)}},render:function(e){for(var t=this.tag||this.$vnode.data.tag||"span",a=Object.create(null),n=this.prevChildren=this.children,i=this.$slots.default||[],r=this.children=[],s=er(this),o=0;o-1?Ja[e]=t.constructor===window.HTMLUnknownElement||t.constructor===window.HTMLElement:Ja[e]=/HTMLUnknownElement/.test(t.toString())},z(xa.options.directives,Ji),z(xa.options.components,cr),xa.prototype.__patch__=q?Ei:T,xa.prototype.$mount=function(e,t){return function(e,t,a){var n;return e.$el=t,e.$options.render||(e.$options.render=he),ta(e,"beforeMount"),n=function(){e._update(e._render(),a)},new ma(e,n,T,{before:function(){e._isMounted&&!e._isDestroyed&&ta(e,"beforeUpdate")}},!0),a=!1,null==e.$vnode&&(e._isMounted=!0,ta(e,"mounted")),e}(this,e=e&&q?Xa(e):void 0,t)},q&&setTimeout((function(){R.devtools&&ae&&ae.emit("init",xa)}),0);var dr=/\{\{((?:.|\r?\n)+?)\}\}/g,ur=/[-.*+?^${}()|[\]\/\\]/g,pr=b((function(e){var t=e[0].replace(ur,"\\$&"),a=e[1].replace(ur,"\\$&");return new RegExp(t+"((?:.|\\n)+?)"+a,"g")}));var mr={staticKeys:["staticClass"],transformNode:function(e,t){t.warn;var a=jn(e,"class");a&&(e.staticClass=JSON.stringify(a));var n=In(e,"class",!1);n&&(e.classBinding=n)},genData:function(e){var t="";return e.staticClass&&(t+="staticClass:"+e.staticClass+","),e.classBinding&&(t+="class:"+e.classBinding+","),t}};var hr,fr={staticKeys:["staticStyle"],transformNode:function(e,t){t.warn;var a=jn(e,"style");a&&(e.staticStyle=JSON.stringify(si(a)));var n=In(e,"style",!1);n&&(e.styleBinding=n)},genData:function(e){var t="";return e.staticStyle&&(t+="staticStyle:"+e.staticStyle+","),e.styleBinding&&(t+="style:("+e.styleBinding+"),"),t}},gr=function(e){return(hr=hr||document.createElement("div")).innerHTML=e,hr.textContent},vr=p("area,base,br,col,embed,frame,hr,img,input,isindex,keygen,link,meta,param,source,track,wbr"),br=p("colgroup,dd,dt,li,options,p,td,tfoot,th,thead,tr,source"),yr=p("address,article,aside,base,blockquote,body,caption,col,colgroup,dd,details,dialog,div,dl,dt,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,head,header,hgroup,hr,html,legend,li,menuitem,meta,optgroup,option,param,rp,rt,source,style,summary,tbody,td,tfoot,th,thead,title,tr,track"),kr=/^\s*([^\s"'<>\/=]+)(?:\s*(=)\s*(?:"([^"]*)"+|'([^']*)'+|([^\s"'=<>`]+)))?/,_r=/^\s*((?:v-[\w-]+:|@|:|#)\[[^=]+\][^\s"'<>\/=]*)(?:\s*(=)\s*(?:"([^"]*)"+|'([^']*)'+|([^\s"'=<>`]+)))?/,wr="[a-zA-Z_][\\-\\.0-9_a-zA-Z"+$.source+"]*",Ar="((?:"+wr+"\\:)?"+wr+")",xr=new RegExp("^<"+Ar),Cr=/^\s*(\/?)>/,zr=new RegExp("^<\\/"+Ar+"[^>]*>"),Sr=/^]+>/i,Tr=/^",""":'"',"&":"&"," ":"\n"," ":"\t","'":"'"},Nr=/&(?:lt|gt|quot|amp|#39);/g,Lr=/&(?:lt|gt|quot|amp|#39|#10|#9);/g,Ur=p("pre,textarea",!0),Rr=function(e,t){return e&&Ur(e)&&"\n"===t[0]};function $r(e,t){var a=t?Lr:Nr;return e.replace(a,(function(e){return Pr[e]}))}var Ir,jr,Or,Er,Br,qr,Vr,Gr,Hr=/^@|^v-on:/,Wr=/^v-|^@|^:|^#/,Kr=/([\s\S]*?)\s+(?:in|of)\s+([\s\S]*)/,Yr=/,([^,\}\]]*)(?:,([^,\}\]]*))?$/,Qr=/^\(|\)$/g,Jr=/^\[.*\]$/,Zr=/:(.*)$/,Xr=/^:|^\.|^v-bind:/,es=/\.[^.\]]+(?=[^\]]*$)/g,ts=/^v-slot(:|$)|^#/,as=/[\r\n]/,ns=/\s+/g,is=b(gr);function rs(e,t,a){return{type:1,tag:e,attrsList:t,attrsMap:ps(t),rawAttrsMap:{},parent:a,children:[]}}function ss(e,t){Ir=t.warn||Fn,qr=t.isPreTag||M,Vr=t.mustUseProp||M,Gr=t.getTagNamespace||M;t.isReservedTag;Or=Dn(t.modules,"transformNode"),Er=Dn(t.modules,"preTransformNode"),Br=Dn(t.modules,"postTransformNode"),jr=t.delimiters;var a,n,i=[],r=!1!==t.preserveWhitespace,s=t.whitespace,o=!1,l=!1;function c(e){if(d(e),o||e.processed||(e=os(e,t)),i.length||e===a||a.if&&(e.elseif||e.else)&&cs(a,{exp:e.elseif,block:e}),n&&!e.forbidden)if(e.elseif||e.else)s=e,(c=function(e){for(var t=e.length;t--;){if(1===e[t].type)return e[t];e.pop()}}(n.children))&&c.if&&cs(c,{exp:s.elseif,block:s});else{if(e.slotScope){var r=e.slotTarget||'"default"';(n.scopedSlots||(n.scopedSlots={}))[r]=e}n.children.push(e),e.parent=n}var s,c;e.children=e.children.filter((function(e){return!e.slotScope})),d(e),e.pre&&(o=!1),qr(e.tag)&&(l=!1);for(var u=0;u]*>)","i")),p=e.replace(u,(function(e,a,n){return c=n.length,Fr(d)||"noscript"===d||(a=a.replace(//g,"$1").replace(//g,"$1")),Rr(d,a)&&(a=a.slice(1)),t.chars&&t.chars(a),""}));l+=e.length-p.length,e=p,z(d,l-c,l)}else{var m=e.indexOf("<");if(0===m){if(Tr.test(e)){var h=e.indexOf("--\x3e");if(h>=0){t.shouldKeepComment&&t.comment(e.substring(4,h),l,l+h+3),A(h+3);continue}}if(Mr.test(e)){var f=e.indexOf("]>");if(f>=0){A(f+2);continue}}var g=e.match(Sr);if(g){A(g[0].length);continue}var v=e.match(zr);if(v){var b=l;A(v[0].length),z(v[1],b,l);continue}var y=x();if(y){C(y),Rr(y.tagName,e)&&A(1);continue}}var k=void 0,_=void 0,w=void 0;if(m>=0){for(_=e.slice(m);!(zr.test(_)||xr.test(_)||Tr.test(_)||Mr.test(_)||(w=_.indexOf("<",1))<0);)m+=w,_=e.slice(m);k=e.substring(0,m)}m<0&&(k=e),k&&A(k.length),t.chars&&k&&t.chars(k,l-k.length,l)}if(e===a){t.chars&&t.chars(e);break}}function A(t){l+=t,e=e.substring(t)}function x(){var t=e.match(xr);if(t){var a,n,i={tagName:t[1],attrs:[],start:l};for(A(t[0].length);!(a=e.match(Cr))&&(n=e.match(_r)||e.match(kr));)n.start=l,A(n[0].length),n.end=l,i.attrs.push(n);if(a)return i.unarySlash=a[1],A(a[0].length),i.end=l,i}}function C(e){var a=e.tagName,l=e.unarySlash;r&&("p"===n&&yr(a)&&z(n),o(a)&&n===a&&z(a));for(var c=s(a)||!!l,d=e.attrs.length,u=new Array(d),p=0;p=0&&i[s].lowerCasedTag!==o;s--);else s=0;if(s>=0){for(var c=i.length-1;c>=s;c--)t.end&&t.end(i[c].tag,a,r);i.length=s,n=s&&i[s-1].tag}else"br"===o?t.start&&t.start(e,[],!0,a,r):"p"===o&&(t.start&&t.start(e,[],!1,a,r),t.end&&t.end(e,a,r))}z()}(e,{warn:Ir,expectHTML:t.expectHTML,isUnaryTag:t.isUnaryTag,canBeLeftOpenTag:t.canBeLeftOpenTag,shouldDecodeNewlines:t.shouldDecodeNewlines,shouldDecodeNewlinesForHref:t.shouldDecodeNewlinesForHref,shouldKeepComment:t.comments,outputSourceRange:t.outputSourceRange,start:function(e,r,s,d,u){var p=n&&n.ns||Gr(e);W&&"svg"===p&&(r=function(e){for(var t=[],a=0;al&&(o.push(r=e.slice(l,i)),s.push(JSON.stringify(r)));var c=Tn(n[1].trim());s.push("_s("+c+")"),o.push({"@binding":c}),l=i+n[0].length}return l-1"+("true"===r?":("+t+")":":_q("+t+","+r+")")),$n(e,"change","var $$a="+t+",$$el=$event.target,$$c=$$el.checked?("+r+"):("+s+");if(Array.isArray($$a)){var $$v="+(n?"_n("+i+")":i)+",$$i=_i($$a,$$v);if($$el.checked){$$i<0&&("+qn(t,"$$a.concat([$$v])")+")}else{$$i>-1&&("+qn(t,"$$a.slice(0,$$i).concat($$a.slice($$i+1))")+")}}else{"+qn(t,"$$c")+"}",null,!0)}(e,n,i);else if("input"===r&&"radio"===s)!function(e,t,a){var n=a&&a.number,i=In(e,"value")||"null";Pn(e,"checked","_q("+t+","+(i=n?"_n("+i+")":i)+")"),$n(e,"change",qn(t,i),null,!0)}(e,n,i);else if("input"===r||"textarea"===r)!function(e,t,a){var n=e.attrsMap.type,i=a||{},r=i.lazy,s=i.number,o=i.trim,l=!r&&"range"!==n,c=r?"change":"range"===n?"__r":"input",d="$event.target.value";o&&(d="$event.target.value.trim()");s&&(d="_n("+d+")");var u=qn(t,d);l&&(u="if($event.target.composing)return;"+u);Pn(e,"value","("+t+")"),$n(e,c,u,null,!0),(o||s)&&$n(e,"blur","$forceUpdate()")}(e,n,i);else if(!R.isReservedTag(r))return Bn(e,n,i),!1;return!0},text:function(e,t){t.value&&Pn(e,"textContent","_s("+t.value+")",t)},html:function(e,t){t.value&&Pn(e,"innerHTML","_s("+t.value+")",t)}},isPreTag:function(e){return"pre"===e},isUnaryTag:vr,mustUseProp:La,canBeLeftOpenTag:br,isReservedTag:Ya,getTagNamespace:Qa,staticKeys:function(e){return e.reduce((function(e,t){return e.concat(t.staticKeys||[])}),[]).join(",")}(gs)},ks=b((function(e){return p("type,tag,attrsList,attrsMap,plain,parent,children,attrs,start,end,rawAttrsMap"+(e?","+e:""))}));function _s(e,t){e&&(vs=ks(t.staticKeys||""),bs=t.isReservedTag||M,ws(e),As(e,!1))}function ws(e){if(e.static=function(e){if(2===e.type)return!1;if(3===e.type)return!0;return!(!e.pre&&(e.hasBindings||e.if||e.for||m(e.tag)||!bs(e.tag)||function(e){for(;e.parent;){if("template"!==(e=e.parent).tag)return!1;if(e.for)return!0}return!1}(e)||!Object.keys(e).every(vs)))}(e),1===e.type){if(!bs(e.tag)&&"slot"!==e.tag&&null==e.attrsMap["inline-template"])return;for(var t=0,a=e.children.length;t|^function(?:\s+[\w$]+)?\s*\(/,Cs=/\([^)]*?\);*$/,zs=/^[A-Za-z_$][\w$]*(?:\.[A-Za-z_$][\w$]*|\['[^']*?']|\["[^"]*?"]|\[\d+]|\[[A-Za-z_$][\w$]*])*$/,Ss={esc:27,tab:9,enter:13,space:32,up:38,left:37,right:39,down:40,delete:[8,46]},Ts={esc:["Esc","Escape"],tab:"Tab",enter:"Enter",space:[" ","Spacebar"],up:["Up","ArrowUp"],left:["Left","ArrowLeft"],right:["Right","ArrowRight"],down:["Down","ArrowDown"],delete:["Backspace","Delete","Del"]},Ms=function(e){return"if("+e+")return null;"},Fs={stop:"$event.stopPropagation();",prevent:"$event.preventDefault();",self:Ms("$event.target !== $event.currentTarget"),ctrl:Ms("!$event.ctrlKey"),shift:Ms("!$event.shiftKey"),alt:Ms("!$event.altKey"),meta:Ms("!$event.metaKey"),left:Ms("'button' in $event && $event.button !== 0"),middle:Ms("'button' in $event && $event.button !== 1"),right:Ms("'button' in $event && $event.button !== 2")};function Ds(e,t){var a=t?"nativeOn:":"on:",n="",i="";for(var r in e){var s=Ps(e[r]);e[r]&&e[r].dynamic?i+=r+","+s+",":n+='"'+r+'":'+s+","}return n="{"+n.slice(0,-1)+"}",i?a+"_d("+n+",["+i.slice(0,-1)+"])":a+n}function Ps(e){if(!e)return"function(){}";if(Array.isArray(e))return"["+e.map((function(e){return Ps(e)})).join(",")+"]";var t=zs.test(e.value),a=xs.test(e.value),n=zs.test(e.value.replace(Cs,""));if(e.modifiers){var i="",r="",s=[];for(var o in e.modifiers)if(Fs[o])r+=Fs[o],Ss[o]&&s.push(o);else if("exact"===o){var l=e.modifiers;r+=Ms(["ctrl","shift","alt","meta"].filter((function(e){return!l[e]})).map((function(e){return"$event."+e+"Key"})).join("||"))}else s.push(o);return s.length&&(i+=function(e){return"if(!$event.type.indexOf('key')&&"+e.map(Ns).join("&&")+")return null;"}(s)),r&&(i+=r),"function($event){"+i+(t?"return "+e.value+"($event)":a?"return ("+e.value+")($event)":n?"return "+e.value:e.value)+"}"}return t||a?e.value:"function($event){"+(n?"return "+e.value:e.value)+"}"}function Ns(e){var t=parseInt(e,10);if(t)return"$event.keyCode!=="+t;var a=Ss[e],n=Ts[e];return"_k($event.keyCode,"+JSON.stringify(e)+","+JSON.stringify(a)+",$event.key,"+JSON.stringify(n)+")"}var Ls={on:function(e,t){e.wrapListeners=function(e){return"_g("+e+","+t.value+")"}},bind:function(e,t){e.wrapData=function(a){return"_b("+a+",'"+e.tag+"',"+t.value+","+(t.modifiers&&t.modifiers.prop?"true":"false")+(t.modifiers&&t.modifiers.sync?",true":"")+")"}},cloak:T},Us=function(e){this.options=e,this.warn=e.warn||Fn,this.transforms=Dn(e.modules,"transformCode"),this.dataGenFns=Dn(e.modules,"genData"),this.directives=z(z({},Ls),e.directives);var t=e.isReservedTag||M;this.maybeComponent=function(e){return!!e.component||!t(e.tag)},this.onceId=0,this.staticRenderFns=[],this.pre=!1};function Rs(e,t){var a=new Us(t);return{render:"with(this){return "+(e?$s(e,a):'_c("div")')+"}",staticRenderFns:a.staticRenderFns}}function $s(e,t){if(e.parent&&(e.pre=e.pre||e.parent.pre),e.staticRoot&&!e.staticProcessed)return Is(e,t);if(e.once&&!e.onceProcessed)return js(e,t);if(e.for&&!e.forProcessed)return Bs(e,t);if(e.if&&!e.ifProcessed)return Os(e,t);if("template"!==e.tag||e.slotTarget||t.pre){if("slot"===e.tag)return function(e,t){var a=e.slotName||'"default"',n=Hs(e,t),i="_t("+a+(n?","+n:""),r=e.attrs||e.dynamicAttrs?Ys((e.attrs||[]).concat(e.dynamicAttrs||[]).map((function(e){return{name:k(e.name),value:e.value,dynamic:e.dynamic}}))):null,s=e.attrsMap["v-bind"];!r&&!s||n||(i+=",null");r&&(i+=","+r);s&&(i+=(r?"":",null")+","+s);return i+")"}(e,t);var a;if(e.component)a=function(e,t,a){var n=t.inlineTemplate?null:Hs(t,a,!0);return"_c("+e+","+qs(t,a)+(n?","+n:"")+")"}(e.component,e,t);else{var n;(!e.plain||e.pre&&t.maybeComponent(e))&&(n=qs(e,t));var i=e.inlineTemplate?null:Hs(e,t,!0);a="_c('"+e.tag+"'"+(n?","+n:"")+(i?","+i:"")+")"}for(var r=0;r>>0}(s):"")+")"}(e,e.scopedSlots,t)+","),e.model&&(a+="model:{value:"+e.model.value+",callback:"+e.model.callback+",expression:"+e.model.expression+"},"),e.inlineTemplate){var r=function(e,t){var a=e.children[0];if(a&&1===a.type){var n=Rs(a,t.options);return"inlineTemplate:{render:function(){"+n.render+"},staticRenderFns:["+n.staticRenderFns.map((function(e){return"function(){"+e+"}"})).join(",")+"]}"}}(e,t);r&&(a+=r+",")}return a=a.replace(/,$/,"")+"}",e.dynamicAttrs&&(a="_b("+a+',"'+e.tag+'",'+Ys(e.dynamicAttrs)+")"),e.wrapData&&(a=e.wrapData(a)),e.wrapListeners&&(a=e.wrapListeners(a)),a}function Vs(e){return 1===e.type&&("slot"===e.tag||e.children.some(Vs))}function Gs(e,t){var a=e.attrsMap["slot-scope"];if(e.if&&!e.ifProcessed&&!a)return Os(e,t,Gs,"null");if(e.for&&!e.forProcessed)return Bs(e,t,Gs);var n="_empty_"===e.slotScope?"":String(e.slotScope),i="function("+n+"){return "+("template"===e.tag?e.if&&a?"("+e.if+")?"+(Hs(e,t)||"undefined")+":undefined":Hs(e,t)||"undefined":$s(e,t))+"}",r=n?"":",proxy:true";return"{key:"+(e.slotTarget||'"default"')+",fn:"+i+r+"}"}function Hs(e,t,a,n,i){var r=e.children;if(r.length){var s=r[0];if(1===r.length&&s.for&&"template"!==s.tag&&"slot"!==s.tag){var o=a?t.maybeComponent(s)?",1":",0":"";return""+(n||$s)(s,t)+o}var l=a?function(e,t){for(var a=0,n=0;n':'
',eo.innerHTML.indexOf(" ")>0}var no=!!q&&ao(!1),ro=!!q&&ao(!0),so=b((function(e){var t=Xa(e);return t&&t.innerHTML})),oo=xa.prototype.$mount;function lo(e,t){void 0===t&&(t={});var a=t.insertAt;if(e&&"undefined"!=typeof document){var n=document.head||document.getElementsByTagName("head")[0],i=document.createElement("style");i.type="text/css","top"===a&&n.firstChild?n.insertBefore(i,n.firstChild):n.appendChild(i),i.styleSheet?i.styleSheet.cssText=e:i.appendChild(document.createTextNode(e))}}xa.prototype.$mount=function(e,t){if((e=e&&Xa(e))===document.body||e===document.documentElement)return this;var a=this.$options;if(!a.render){var n=a.template;if(n)if("string"==typeof n)"#"===n.charAt(0)&&(n=so(n));else{if(!n.nodeType)return this;n=n.innerHTML}else e&&(n=function(e){if(e.outerHTML)return e.outerHTML;var t=document.createElement("div");return t.appendChild(e.cloneNode(!0)),t.innerHTML}(e));if(n){var i=to(n,{outputSourceRange:!1,shouldDecodeNewlines:no,shouldDecodeNewlinesForHref:ro,delimiters:a.delimiters,comments:a.comments},this),r=i.render,s=i.staticRenderFns;a.render=r,a.staticRenderFns=s}}return oo.call(this,e,t)},xa.compile=to;lo("/* fallback */\n\n@font-face {\n font-family: 'Material Icons';\n\n font-style: normal;\n\n font-weight: 400;\n\n src: url('../../fonts/icons/MaterialIcons-Regular.eot'); /* For IE6-8 */\n\n src: url('../../fonts/icons/MaterialIcons-Regular.woff2') format('woff2'),\n\t\turl('../../fonts/icons/MaterialIcons-Regular.woff') format('woff'),\n\t\turl('../../fonts/icons/MaterialIcons-Regular.ttf') format('truetype');\n}\n\n.material-icons {\n font-family: 'Material Icons';\n font-weight: normal;\n font-style: normal;\n font-size: 24px;\n line-height: 1;\n letter-spacing: normal;\n text-transform: none;\n display: inline-block;\n white-space: nowrap;\n word-wrap: normal;\n direction: ltr;\n font-feature-settings: 'liga';\n -webkit-font-smoothing: antialiased;\n}\n\n.material-icons.explicit-icon {\n margin-right: 0.3125em;\n margin-left: -3px;\n color: hsl(240, 5%, 59%);\n}\n\n.material-icons.explicit-icon.explicit-icon--right {\n margin-right: 0px;\n margin-left: 0.3125em;\n}\n\n.material-icons.disabled {\n opacity: 0.5;\n cursor: default;\n}\n\n.material-icons.mirrored {\n transform: scaleX(-1);\n}\n");lo("/* cyrillic-ext */\n\n@font-face {\n font-family: 'Open Sans';\n\n font-style: italic;\n\n font-weight: 300;\n\n font-display: swap;\n\n src: url('../../fonts/OpenSans/memnYaGs126MiZpBA-UFUKWyV9hmIqOjjg.woff2') format('woff2');\n\n unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;\n}\n\n/* cyrillic */\n\n@font-face {\n font-family: 'Open Sans';\n\n font-style: italic;\n\n font-weight: 300;\n\n font-display: swap;\n\n src: url('../../fonts/OpenSans/memnYaGs126MiZpBA-UFUKWyV9hvIqOjjg.woff2') format('woff2');\n\n unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;\n}\n\n/* greek-ext */\n\n@font-face {\n font-family: 'Open Sans';\n\n font-style: italic;\n\n font-weight: 300;\n\n font-display: swap;\n\n src: url('../../fonts/OpenSans/memnYaGs126MiZpBA-UFUKWyV9hnIqOjjg.woff2') format('woff2');\n\n unicode-range: U+1F00-1FFF;\n}\n\n/* greek */\n\n@font-face {\n font-family: 'Open Sans';\n\n font-style: italic;\n\n font-weight: 300;\n\n font-display: swap;\n\n src: url('../../fonts/OpenSans/memnYaGs126MiZpBA-UFUKWyV9hoIqOjjg.woff2') format('woff2');\n\n unicode-range: U+0370-03FF;\n}\n\n/* vietnamese */\n\n@font-face {\n font-family: 'Open Sans';\n\n font-style: italic;\n\n font-weight: 300;\n\n font-display: swap;\n\n src: url('../../fonts/OpenSans/memnYaGs126MiZpBA-UFUKWyV9hkIqOjjg.woff2') format('woff2');\n\n unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB;\n}\n\n/* latin-ext */\n\n@font-face {\n font-family: 'Open Sans';\n\n font-style: italic;\n\n font-weight: 300;\n\n font-display: swap;\n\n src: url('../../fonts/OpenSans/memnYaGs126MiZpBA-UFUKWyV9hlIqOjjg.woff2') format('woff2');\n\n unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n\n/* latin */\n\n@font-face {\n font-family: 'Open Sans';\n\n font-style: italic;\n\n font-weight: 300;\n\n font-display: swap;\n\n src: url('../../fonts/OpenSans/memnYaGs126MiZpBA-UFUKWyV9hrIqM.woff2') format('woff2');\n\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n\n/* cyrillic-ext */\n\n@font-face {\n font-family: 'Open Sans';\n\n font-style: italic;\n\n font-weight: 400;\n\n font-display: swap;\n\n src: url('../../fonts/OpenSans/mem6YaGs126MiZpBA-UFUK0Udc1UAw.woff2') format('woff2');\n\n unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;\n}\n\n/* cyrillic */\n\n@font-face {\n font-family: 'Open Sans';\n\n font-style: italic;\n\n font-weight: 400;\n\n font-display: swap;\n\n src: url('../../fonts/OpenSans/mem6YaGs126MiZpBA-UFUK0ddc1UAw.woff2') format('woff2');\n\n unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;\n}\n\n/* greek-ext */\n\n@font-face {\n font-family: 'Open Sans';\n\n font-style: italic;\n\n font-weight: 400;\n\n font-display: swap;\n\n src: url('../../fonts/OpenSans/mem6YaGs126MiZpBA-UFUK0Vdc1UAw.woff2') format('woff2');\n\n unicode-range: U+1F00-1FFF;\n}\n\n/* greek */\n\n@font-face {\n font-family: 'Open Sans';\n\n font-style: italic;\n\n font-weight: 400;\n\n font-display: swap;\n\n src: url('../../fonts/OpenSans/mem6YaGs126MiZpBA-UFUK0adc1UAw.woff2') format('woff2');\n\n unicode-range: U+0370-03FF;\n}\n\n/* vietnamese */\n\n@font-face {\n font-family: 'Open Sans';\n\n font-style: italic;\n\n font-weight: 400;\n\n font-display: swap;\n\n src: url('../../fonts/OpenSans/mem6YaGs126MiZpBA-UFUK0Wdc1UAw.woff2') format('woff2');\n\n unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB;\n}\n\n/* latin-ext */\n\n@font-face {\n font-family: 'Open Sans';\n\n font-style: italic;\n\n font-weight: 400;\n\n font-display: swap;\n\n src: url('../../fonts/OpenSans/mem6YaGs126MiZpBA-UFUK0Xdc1UAw.woff2') format('woff2');\n\n unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n\n/* latin */\n\n@font-face {\n font-family: 'Open Sans';\n\n font-style: italic;\n\n font-weight: 400;\n\n font-display: swap;\n\n src: url('../../fonts/OpenSans/mem6YaGs126MiZpBA-UFUK0Zdc0.woff2') format('woff2');\n\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n\n/* cyrillic-ext */\n\n@font-face {\n font-family: 'Open Sans';\n\n font-style: italic;\n\n font-weight: 600;\n\n font-display: swap;\n\n src: url('../../fonts/OpenSans/memnYaGs126MiZpBA-UFUKXGUdhmIqOjjg.woff2') format('woff2');\n\n unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;\n}\n\n/* cyrillic */\n\n@font-face {\n font-family: 'Open Sans';\n\n font-style: italic;\n\n font-weight: 600;\n\n font-display: swap;\n\n src: url('../../fonts/OpenSans/memnYaGs126MiZpBA-UFUKXGUdhvIqOjjg.woff2') format('woff2');\n\n unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;\n}\n\n/* greek-ext */\n\n@font-face {\n font-family: 'Open Sans';\n\n font-style: italic;\n\n font-weight: 600;\n\n font-display: swap;\n\n src: url('../../fonts/OpenSans/memnYaGs126MiZpBA-UFUKXGUdhnIqOjjg.woff2') format('woff2');\n\n unicode-range: U+1F00-1FFF;\n}\n\n/* greek */\n\n@font-face {\n font-family: 'Open Sans';\n\n font-style: italic;\n\n font-weight: 600;\n\n font-display: swap;\n\n src: url('../../fonts/OpenSans/memnYaGs126MiZpBA-UFUKXGUdhoIqOjjg.woff2') format('woff2');\n\n unicode-range: U+0370-03FF;\n}\n\n/* vietnamese */\n\n@font-face {\n font-family: 'Open Sans';\n\n font-style: italic;\n\n font-weight: 600;\n\n font-display: swap;\n\n src: url('../../fonts/OpenSans/memnYaGs126MiZpBA-UFUKXGUdhkIqOjjg.woff2') format('woff2');\n\n unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB;\n}\n\n/* latin-ext */\n\n@font-face {\n font-family: 'Open Sans';\n\n font-style: italic;\n\n font-weight: 600;\n\n font-display: swap;\n\n src: url('../../fonts/OpenSans/memnYaGs126MiZpBA-UFUKXGUdhlIqOjjg.woff2') format('woff2');\n\n unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n\n/* latin */\n\n@font-face {\n font-family: 'Open Sans';\n\n font-style: italic;\n\n font-weight: 600;\n\n font-display: swap;\n\n src: url('../../fonts/OpenSans/memnYaGs126MiZpBA-UFUKXGUdhrIqM.woff2') format('woff2');\n\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n\n/* cyrillic-ext */\n\n@font-face {\n font-family: 'Open Sans';\n\n font-style: italic;\n\n font-weight: 700;\n\n font-display: swap;\n\n src: url('../../fonts/OpenSans/memnYaGs126MiZpBA-UFUKWiUNhmIqOjjg.woff2') format('woff2');\n\n unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;\n}\n\n/* cyrillic */\n\n@font-face {\n font-family: 'Open Sans';\n\n font-style: italic;\n\n font-weight: 700;\n\n font-display: swap;\n\n src: url('../../fonts/OpenSans/memnYaGs126MiZpBA-UFUKWiUNhvIqOjjg.woff2') format('woff2');\n\n unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;\n}\n\n/* greek-ext */\n\n@font-face {\n font-family: 'Open Sans';\n\n font-style: italic;\n\n font-weight: 700;\n\n font-display: swap;\n\n src: url('../../fonts/OpenSans/memnYaGs126MiZpBA-UFUKWiUNhnIqOjjg.woff2') format('woff2');\n\n unicode-range: U+1F00-1FFF;\n}\n\n/* greek */\n\n@font-face {\n font-family: 'Open Sans';\n\n font-style: italic;\n\n font-weight: 700;\n\n font-display: swap;\n\n src: url('../../fonts/OpenSans/memnYaGs126MiZpBA-UFUKWiUNhoIqOjjg.woff2') format('woff2');\n\n unicode-range: U+0370-03FF;\n}\n\n/* vietnamese */\n\n@font-face {\n font-family: 'Open Sans';\n\n font-style: italic;\n\n font-weight: 700;\n\n font-display: swap;\n\n src: url('../../fonts/OpenSans/memnYaGs126MiZpBA-UFUKWiUNhkIqOjjg.woff2') format('woff2');\n\n unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB;\n}\n\n/* latin-ext */\n\n@font-face {\n font-family: 'Open Sans';\n\n font-style: italic;\n\n font-weight: 700;\n\n font-display: swap;\n\n src: url('../../fonts/OpenSans/memnYaGs126MiZpBA-UFUKWiUNhlIqOjjg.woff2') format('woff2');\n\n unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n\n/* latin */\n\n@font-face {\n font-family: 'Open Sans';\n\n font-style: italic;\n\n font-weight: 700;\n\n font-display: swap;\n\n src: url('../../fonts/OpenSans/memnYaGs126MiZpBA-UFUKWiUNhrIqM.woff2') format('woff2');\n\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n\n/* cyrillic-ext */\n\n@font-face {\n font-family: 'Open Sans';\n\n font-style: italic;\n\n font-weight: 800;\n\n font-display: swap;\n\n src: url('../../fonts/OpenSans/memnYaGs126MiZpBA-UFUKW-U9hmIqOjjg.woff2') format('woff2');\n\n unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;\n}\n\n/* cyrillic */\n\n@font-face {\n font-family: 'Open Sans';\n\n font-style: italic;\n\n font-weight: 800;\n\n font-display: swap;\n\n src: url('../../fonts/OpenSans/memnYaGs126MiZpBA-UFUKW-U9hvIqOjjg.woff2') format('woff2');\n\n unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;\n}\n\n/* greek-ext */\n\n@font-face {\n font-family: 'Open Sans';\n\n font-style: italic;\n\n font-weight: 800;\n\n font-display: swap;\n\n src: url('../../fonts/OpenSans/memnYaGs126MiZpBA-UFUKW-U9hnIqOjjg.woff2') format('woff2');\n\n unicode-range: U+1F00-1FFF;\n}\n\n/* greek */\n\n@font-face {\n font-family: 'Open Sans';\n\n font-style: italic;\n\n font-weight: 800;\n\n font-display: swap;\n\n src: url('../../fonts/OpenSans/memnYaGs126MiZpBA-UFUKW-U9hoIqOjjg.woff2') format('woff2');\n\n unicode-range: U+0370-03FF;\n}\n\n/* vietnamese */\n\n@font-face {\n font-family: 'Open Sans';\n\n font-style: italic;\n\n font-weight: 800;\n\n font-display: swap;\n\n src: url('../../fonts/OpenSans/memnYaGs126MiZpBA-UFUKW-U9hkIqOjjg.woff2') format('woff2');\n\n unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB;\n}\n\n/* latin-ext */\n\n@font-face {\n font-family: 'Open Sans';\n\n font-style: italic;\n\n font-weight: 800;\n\n font-display: swap;\n\n src: url('../../fonts/OpenSans/memnYaGs126MiZpBA-UFUKW-U9hlIqOjjg.woff2') format('woff2');\n\n unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n\n/* latin */\n\n@font-face {\n font-family: 'Open Sans';\n\n font-style: italic;\n\n font-weight: 800;\n\n font-display: swap;\n\n src: url('../../fonts/OpenSans/memnYaGs126MiZpBA-UFUKW-U9hrIqM.woff2') format('woff2');\n\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n\n/* cyrillic-ext */\n\n@font-face {\n font-family: 'Open Sans';\n\n font-style: normal;\n\n font-weight: 300;\n\n font-display: swap;\n\n src: url('../../fonts/OpenSans/mem5YaGs126MiZpBA-UN_r8OX-hpOqc.woff2') format('woff2');\n\n unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;\n}\n\n/* cyrillic */\n\n@font-face {\n font-family: 'Open Sans';\n\n font-style: normal;\n\n font-weight: 300;\n\n font-display: swap;\n\n src: url('../../fonts/OpenSans/mem5YaGs126MiZpBA-UN_r8OVuhpOqc.woff2') format('woff2');\n\n unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;\n}\n\n/* greek-ext */\n\n@font-face {\n font-family: 'Open Sans';\n\n font-style: normal;\n\n font-weight: 300;\n\n font-display: swap;\n\n src: url('../../fonts/OpenSans/mem5YaGs126MiZpBA-UN_r8OXuhpOqc.woff2') format('woff2');\n\n unicode-range: U+1F00-1FFF;\n}\n\n/* greek */\n\n@font-face {\n font-family: 'Open Sans';\n\n font-style: normal;\n\n font-weight: 300;\n\n font-display: swap;\n\n src: url('../../fonts/OpenSans/mem5YaGs126MiZpBA-UN_r8OUehpOqc.woff2') format('woff2');\n\n unicode-range: U+0370-03FF;\n}\n\n/* vietnamese */\n\n@font-face {\n font-family: 'Open Sans';\n\n font-style: normal;\n\n font-weight: 300;\n\n font-display: swap;\n\n src: url('../../fonts/OpenSans/mem5YaGs126MiZpBA-UN_r8OXehpOqc.woff2') format('woff2');\n\n unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB;\n}\n\n/* latin-ext */\n\n@font-face {\n font-family: 'Open Sans';\n\n font-style: normal;\n\n font-weight: 300;\n\n font-display: swap;\n\n src: url('../../fonts/OpenSans/mem5YaGs126MiZpBA-UN_r8OXOhpOqc.woff2') format('woff2');\n\n unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n\n/* latin */\n\n@font-face {\n font-family: 'Open Sans';\n\n font-style: normal;\n\n font-weight: 300;\n\n font-display: swap;\n\n src: url('../../fonts/OpenSans/mem5YaGs126MiZpBA-UN_r8OUuhp.woff2') format('woff2');\n\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n\n/* cyrillic-ext */\n\n@font-face {\n font-family: 'Open Sans';\n\n font-style: normal;\n\n font-weight: 400;\n\n font-display: swap;\n\n src: url('../../fonts/OpenSans/mem8YaGs126MiZpBA-UFWJ0bbck.woff2') format('woff2');\n\n unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;\n}\n\n/* cyrillic */\n\n@font-face {\n font-family: 'Open Sans';\n\n font-style: normal;\n\n font-weight: 400;\n\n font-display: swap;\n\n src: url('../../fonts/OpenSans/mem8YaGs126MiZpBA-UFUZ0bbck.woff2') format('woff2');\n\n unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;\n}\n\n/* greek-ext */\n\n@font-face {\n font-family: 'Open Sans';\n\n font-style: normal;\n\n font-weight: 400;\n\n font-display: swap;\n\n src: url('../../fonts/OpenSans/mem8YaGs126MiZpBA-UFWZ0bbck.woff2') format('woff2');\n\n unicode-range: U+1F00-1FFF;\n}\n\n/* greek */\n\n@font-face {\n font-family: 'Open Sans';\n\n font-style: normal;\n\n font-weight: 400;\n\n font-display: swap;\n\n src: url('../../fonts/OpenSans/mem8YaGs126MiZpBA-UFVp0bbck.woff2') format('woff2');\n\n unicode-range: U+0370-03FF;\n}\n\n/* vietnamese */\n\n@font-face {\n font-family: 'Open Sans';\n\n font-style: normal;\n\n font-weight: 400;\n\n font-display: swap;\n\n src: url('../../fonts/OpenSans/mem8YaGs126MiZpBA-UFWp0bbck.woff2') format('woff2');\n\n unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB;\n}\n\n/* latin-ext */\n\n@font-face {\n font-family: 'Open Sans';\n\n font-style: normal;\n\n font-weight: 400;\n\n font-display: swap;\n\n src: url('../../fonts/OpenSans/mem8YaGs126MiZpBA-UFW50bbck.woff2') format('woff2');\n\n unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n\n/* latin */\n\n@font-face {\n font-family: 'Open Sans';\n\n font-style: normal;\n\n font-weight: 400;\n\n font-display: swap;\n\n src: url('../../fonts/OpenSans/mem8YaGs126MiZpBA-UFVZ0b.woff2') format('woff2');\n\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n\n/* cyrillic-ext */\n\n@font-face {\n font-family: 'Open Sans';\n\n font-style: normal;\n\n font-weight: 600;\n\n font-display: swap;\n\n src: url('../../fonts/OpenSans/mem5YaGs126MiZpBA-UNirkOX-hpOqc.woff2') format('woff2');\n\n unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;\n}\n\n/* cyrillic */\n\n@font-face {\n font-family: 'Open Sans';\n\n font-style: normal;\n\n font-weight: 600;\n\n font-display: swap;\n\n src: url('../../fonts/OpenSans/mem5YaGs126MiZpBA-UNirkOVuhpOqc.woff2') format('woff2');\n\n unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;\n}\n\n/* greek-ext */\n\n@font-face {\n font-family: 'Open Sans';\n\n font-style: normal;\n\n font-weight: 600;\n\n font-display: swap;\n\n src: url('../../fonts/OpenSans/mem5YaGs126MiZpBA-UNirkOXuhpOqc.woff2') format('woff2');\n\n unicode-range: U+1F00-1FFF;\n}\n\n/* greek */\n\n@font-face {\n font-family: 'Open Sans';\n\n font-style: normal;\n\n font-weight: 600;\n\n font-display: swap;\n\n src: url('../../fonts/OpenSans/mem5YaGs126MiZpBA-UNirkOUehpOqc.woff2') format('woff2');\n\n unicode-range: U+0370-03FF;\n}\n\n/* vietnamese */\n\n@font-face {\n font-family: 'Open Sans';\n\n font-style: normal;\n\n font-weight: 600;\n\n font-display: swap;\n\n src: url('../../fonts/OpenSans/mem5YaGs126MiZpBA-UNirkOXehpOqc.woff2') format('woff2');\n\n unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB;\n}\n\n/* latin-ext */\n\n@font-face {\n font-family: 'Open Sans';\n\n font-style: normal;\n\n font-weight: 600;\n\n font-display: swap;\n\n src: url('../../fonts/OpenSans/mem5YaGs126MiZpBA-UNirkOXOhpOqc.woff2') format('woff2');\n\n unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n\n/* latin */\n\n@font-face {\n font-family: 'Open Sans';\n\n font-style: normal;\n\n font-weight: 600;\n\n font-display: swap;\n\n src: url('../../fonts/OpenSans/mem5YaGs126MiZpBA-UNirkOUuhp.woff2') format('woff2');\n\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n\n/* cyrillic-ext */\n\n@font-face {\n font-family: 'Open Sans';\n\n font-style: normal;\n\n font-weight: 700;\n\n font-display: swap;\n\n src: url('../../fonts/OpenSans/mem5YaGs126MiZpBA-UN7rgOX-hpOqc.woff2') format('woff2');\n\n unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;\n}\n\n/* cyrillic */\n\n@font-face {\n font-family: 'Open Sans';\n\n font-style: normal;\n\n font-weight: 700;\n\n font-display: swap;\n\n src: url('../../fonts/OpenSans/mem5YaGs126MiZpBA-UN7rgOVuhpOqc.woff2') format('woff2');\n\n unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;\n}\n\n/* greek-ext */\n\n@font-face {\n font-family: 'Open Sans';\n\n font-style: normal;\n\n font-weight: 700;\n\n font-display: swap;\n\n src: url('../../fonts/OpenSans/mem5YaGs126MiZpBA-UN7rgOXuhpOqc.woff2') format('woff2');\n\n unicode-range: U+1F00-1FFF;\n}\n\n/* greek */\n\n@font-face {\n font-family: 'Open Sans';\n\n font-style: normal;\n\n font-weight: 700;\n\n font-display: swap;\n\n src: url('../../fonts/OpenSans/mem5YaGs126MiZpBA-UN7rgOUehpOqc.woff2') format('woff2');\n\n unicode-range: U+0370-03FF;\n}\n\n/* vietnamese */\n\n@font-face {\n font-family: 'Open Sans';\n\n font-style: normal;\n\n font-weight: 700;\n\n font-display: swap;\n\n src: url('../../fonts/OpenSans/mem5YaGs126MiZpBA-UN7rgOXehpOqc.woff2') format('woff2');\n\n unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB;\n}\n\n/* latin-ext */\n\n@font-face {\n font-family: 'Open Sans';\n\n font-style: normal;\n\n font-weight: 700;\n\n font-display: swap;\n\n src: url('../../fonts/OpenSans/mem5YaGs126MiZpBA-UN7rgOXOhpOqc.woff2') format('woff2');\n\n unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n\n/* latin */\n\n@font-face {\n font-family: 'Open Sans';\n\n font-style: normal;\n\n font-weight: 700;\n\n font-display: swap;\n\n src: url('../../fonts/OpenSans/mem5YaGs126MiZpBA-UN7rgOUuhp.woff2') format('woff2');\n\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n\n/* cyrillic-ext */\n\n@font-face {\n font-family: 'Open Sans';\n\n font-style: normal;\n\n font-weight: 800;\n\n font-display: swap;\n\n src: url('../../fonts/OpenSans/mem5YaGs126MiZpBA-UN8rsOX-hpOqc.woff2') format('woff2');\n\n unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;\n}\n\n/* cyrillic */\n\n@font-face {\n font-family: 'Open Sans';\n\n font-style: normal;\n\n font-weight: 800;\n\n font-display: swap;\n\n src: url('../../fonts/OpenSans/mem5YaGs126MiZpBA-UN8rsOVuhpOqc.woff2') format('woff2');\n\n unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;\n}\n\n/* greek-ext */\n\n@font-face {\n font-family: 'Open Sans';\n\n font-style: normal;\n\n font-weight: 800;\n\n font-display: swap;\n\n src: url('../../fonts/OpenSans/mem5YaGs126MiZpBA-UN8rsOXuhpOqc.woff2') format('woff2');\n\n unicode-range: U+1F00-1FFF;\n}\n\n/* greek */\n\n@font-face {\n font-family: 'Open Sans';\n\n font-style: normal;\n\n font-weight: 800;\n\n font-display: swap;\n\n src: url('../../fonts/OpenSans/mem5YaGs126MiZpBA-UN8rsOUehpOqc.woff2') format('woff2');\n\n unicode-range: U+0370-03FF;\n}\n\n/* vietnamese */\n\n@font-face {\n font-family: 'Open Sans';\n\n font-style: normal;\n\n font-weight: 800;\n\n font-display: swap;\n\n src: url('../../fonts/OpenSans/mem5YaGs126MiZpBA-UN8rsOXehpOqc.woff2') format('woff2');\n\n unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB;\n}\n\n/* latin-ext */\n\n@font-face {\n font-family: 'Open Sans';\n\n font-style: normal;\n\n font-weight: 800;\n\n font-display: swap;\n\n src: url('../../fonts/OpenSans/mem5YaGs126MiZpBA-UN8rsOXOhpOqc.woff2') format('woff2');\n\n unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n\n/* latin */\n\n@font-face {\n font-family: 'Open Sans';\n\n font-style: normal;\n\n font-weight: 800;\n\n font-display: swap;\n\n src: url('../../fonts/OpenSans/mem5YaGs126MiZpBA-UN8rsOUuhp.woff2') format('woff2');\n\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n");lo("a {\n color: dodgerblue;\n}\n\n.container {\n width: 100%;\n}\n\n@media (min-width: 640px) {\n .container {\n max-width: 640px;\n }\n}\n\n@media (min-width: 768px) {\n .container {\n max-width: 768px;\n }\n}\n\n@media (min-width: 1024px) {\n .container {\n max-width: 1024px;\n }\n}\n\n@media (min-width: 1280px) {\n .container {\n max-width: 1280px;\n }\n}\n\n.bg-black {\n --bg-opacity: 1;\n background-color: #000;\n background-color: rgba(0, 0, 0, var(--bg-opacity));\n}\n\n.bg-red-600 {\n --bg-opacity: 1;\n background-color: #e53e3e;\n background-color: rgba(229, 62, 62, var(--bg-opacity));\n}\n\n.bg-grayscale-200 {\n --bg-opacity: 1;\n background-color: hsl(0, 0%, 20%);\n background-color: rgba(51, 51, 51, var(--bg-opacity));\n}\n\n.bg-primary {\n --bg-opacity: 1;\n background-color: hsl(210, 100%, 52%);\n background-color: rgba(10.20000000000001, 132.59999999999988, 255, var(--bg-opacity));\n}\n\n.bg-background-main {\n background-color: var(--main-background);\n}\n\n.bg-panels-bg {\n background-color: var(--panels-background);\n}\n\n.hover\\:bg-primary:hover {\n --bg-opacity: 1;\n background-color: hsl(210, 100%, 52%);\n background-color: rgba(10.20000000000001, 132.59999999999988, 255, var(--bg-opacity));\n}\n\n.hover\\:bg-background-main:hover {\n background-color: var(--main-background);\n}\n\n.bg-opacity-50 {\n --bg-opacity: 0.5;\n}\n\n.border-transparent {\n border-color: transparent;\n}\n\n.border-grayscale-500 {\n --border-opacity: 1;\n border-color: hsl(0, 0%, 50%);\n border-color: rgba(127.5, 127.5, 127.5, var(--border-opacity));\n}\n\n.rounded {\n border-radius: 0.25rem;\n}\n\n.rounded-xl {\n border-radius: 0.75rem;\n}\n\n.rounded-full {\n border-radius: 9999px;\n}\n\n.border-solid {\n border-style: solid;\n}\n\n.border-0 {\n border-width: 0;\n}\n\n.border {\n border-width: 1px;\n}\n\n.border-t {\n border-top-width: 1px;\n}\n\n.first\\:border-t-0:first-child {\n border-top-width: 0;\n}\n\n.cursor-default {\n cursor: default;\n}\n\n.cursor-pointer {\n cursor: pointer;\n}\n\n.block {\n display: block;\n}\n\n.inline-block {\n display: inline-block;\n}\n\n.flex {\n display: flex;\n}\n\n.table {\n display: table;\n}\n\n.grid {\n display: grid;\n}\n\n.hidden {\n display: none;\n}\n\n.flex-col {\n flex-direction: column;\n}\n\n.place-items-center {\n place-items: center;\n}\n\n.items-center {\n align-items: center;\n}\n\n.justify-center {\n justify-content: center;\n}\n\n.justify-evenly {\n justify-content: space-evenly;\n}\n\n.flex-1 {\n flex: 1 1 0%;\n}\n\n.flex-shrink {\n flex-shrink: 1;\n}\n\n.float-none {\n float: none;\n}\n\n.h-3 {\n height: 0.75rem;\n}\n\n.h-6 {\n height: 1.5rem;\n}\n\n.h-12 {\n height: 3rem;\n}\n\n.h-16 {\n height: 4rem;\n}\n\n.h-40 {\n height: 10rem;\n}\n\n.h-full {\n height: 100%;\n}\n\n.h-screen {\n height: 100vh;\n}\n\n.text-xs {\n font-size: 0.75rem;\n}\n\n.text-lg {\n font-size: 1.125rem;\n}\n\n.text-xl {\n font-size: 1.25rem;\n}\n\n.text-2xl {\n font-size: 1.5rem;\n}\n\n.text-3xl {\n font-size: 1.875rem;\n}\n\n.text-4xl {\n font-size: 2.25rem;\n}\n\n.text-5xl {\n font-size: 3rem;\n}\n\n.m-0 {\n margin: 0;\n}\n\n.m-1 {\n margin: 0.25rem;\n}\n\n.my-4 {\n margin-top: 1rem;\n margin-bottom: 1rem;\n}\n\n.mb-1 {\n margin-bottom: 0.25rem;\n}\n\n.ml-1 {\n margin-left: 0.25rem;\n}\n\n.mr-2 {\n margin-right: 0.5rem;\n}\n\n.ml-2 {\n margin-left: 0.5rem;\n}\n\n.mb-3 {\n margin-bottom: 0.75rem;\n}\n\n.mt-4 {\n margin-top: 1rem;\n}\n\n.mb-4 {\n margin-bottom: 1rem;\n}\n\n.mt-5 {\n margin-top: 1.25rem;\n}\n\n.mb-5 {\n margin-bottom: 1.25rem;\n}\n\n.ml-5 {\n margin-left: 1.25rem;\n}\n\n.mb-6 {\n margin-bottom: 1.5rem;\n}\n\n.mb-8 {\n margin-bottom: 2rem;\n}\n\n.ml-auto {\n margin-left: auto;\n}\n\n.-mt-16 {\n margin-top: -4rem;\n}\n\n.-ml-20 {\n margin-left: -5rem;\n}\n\n.opacity-0 {\n opacity: 0;\n}\n\n.opacity-100 {\n opacity: 1;\n}\n\n.overflow-hidden {\n overflow: hidden;\n}\n\n.p-0 {\n padding: 0;\n}\n\n.p-1 {\n padding: 0.25rem;\n}\n\n.p-2 {\n padding: 0.5rem;\n}\n\n.p-3 {\n padding: 0.75rem;\n}\n\n.px-2 {\n padding-left: 0.5rem;\n padding-right: 0.5rem;\n}\n\n.py-5 {\n padding-top: 1.25rem;\n padding-bottom: 1.25rem;\n}\n\n.py-6 {\n padding-top: 1.5rem;\n padding-bottom: 1.5rem;\n}\n\n.pr-2 {\n padding-right: 0.5rem;\n}\n\n.pb-3 {\n padding-bottom: 0.75rem;\n}\n\n.absolute {\n position: absolute;\n}\n\n.relative {\n position: relative;\n}\n\n.sticky {\n position: -webkit-sticky;\n position: sticky;\n}\n\n.top-0 {\n top: 0;\n}\n\n.right-0 {\n right: 0;\n}\n\n.left-0 {\n left: 0;\n}\n\n.text-center {\n text-align: center;\n}\n\n.text-white {\n --text-opacity: 1;\n color: #fff;\n color: rgba(255, 255, 255, var(--text-opacity));\n}\n\n.text-grayscale-870 {\n --text-opacity: 1;\n color: hsl(0, 0%, 87%);\n color: rgba(221.85, 221.85, 221.85, var(--text-opacity));\n}\n\n.text-primary {\n --text-opacity: 1;\n color: hsl(210, 100%, 52%);\n color: rgba(10.20000000000001, 132.59999999999988, 255, var(--text-opacity));\n}\n\n.text-foreground {\n color: var(--foreground);\n}\n\n.hover\\:text-primary:hover {\n --text-opacity: 1;\n color: hsl(210, 100%, 52%);\n color: rgba(10.20000000000001, 132.59999999999988, 255, var(--text-opacity));\n}\n\n.group:hover .group-hover\\:text-primary {\n --text-opacity: 1;\n color: hsl(210, 100%, 52%);\n color: rgba(10.20000000000001, 132.59999999999988, 255, var(--text-opacity));\n}\n\n.capitalize {\n text-transform: capitalize;\n}\n\n.no-underline {\n text-decoration: none;\n}\n\n.hover\\:underline:hover {\n text-decoration: underline;\n}\n\n.visible {\n visibility: visible;\n}\n\n.invisible {\n visibility: hidden;\n}\n\n.whitespace-no-wrap {\n white-space: nowrap;\n}\n\n.break-words {\n word-wrap: break-word;\n overflow-wrap: break-word;\n}\n\n.w-3 {\n width: 0.75rem;\n}\n\n.w-4 {\n width: 1rem;\n}\n\n.w-6 {\n width: 1.5rem;\n}\n\n.w-8 {\n width: 2rem;\n}\n\n.w-16 {\n width: 4rem;\n}\n\n.w-40 {\n width: 10rem;\n}\n\n.w-64 {\n width: 16rem;\n}\n\n.w-full {\n width: 100%;\n}\n\n.w-screen {\n width: 100vw;\n}\n\n.z-10 {\n z-index: 10;\n}\n\n.z-50 {\n z-index: 50;\n}\n\n.transform {\n --transform-translate-x: 0;\n --transform-translate-y: 0;\n --transform-rotate: 0;\n --transform-skew-x: 0;\n --transform-skew-y: 0;\n --transform-scale-x: 1;\n --transform-scale-y: 1;\n transform: translateX(var(--transform-translate-x)) translateY(var(--transform-translate-y)) rotate(var(--transform-rotate)) skewX(var(--transform-skew-x)) skewY(var(--transform-skew-y)) scaleX(var(--transform-scale-x)) scaleY(var(--transform-scale-y));\n}\n\n.transition-all {\n transition-property: all;\n}\n\n.transition {\n transition-property: background-color, border-color, color, fill, stroke, opacity, box-shadow, transform;\n}\n\n.transition-colors {\n transition-property: background-color, border-color, color, fill, stroke;\n}\n\n.transition-opacity {\n transition-property: opacity;\n}\n\n.ease-out {\n transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n}\n\n.ease-in-out {\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n}\n\n.duration-150 {\n transition-duration: 150ms;\n}\n\n.duration-200 {\n transition-duration: 200ms;\n}\n\n.duration-500 {\n transition-duration: 500ms;\n}\n\n@-webkit-keyframes spin {\n to {\n transform: rotate(360deg);\n }\n}\n\n@keyframes spin {\n to {\n transform: rotate(360deg);\n }\n}\n\n@-webkit-keyframes ping {\n 75%, 100% {\n transform: scale(2);\n opacity: 0;\n }\n}\n\n@keyframes ping {\n 75%, 100% {\n transform: scale(2);\n opacity: 0;\n }\n}\n\n@-webkit-keyframes pulse {\n 50% {\n opacity: .5;\n }\n}\n\n@keyframes pulse {\n 50% {\n opacity: .5;\n }\n}\n\n@-webkit-keyframes bounce {\n 0%, 100% {\n transform: translateY(-25%);\n -webkit-animation-timing-function: cubic-bezier(0.8,0,1,1);\n animation-timing-function: cubic-bezier(0.8,0,1,1);\n }\n\n 50% {\n transform: none;\n -webkit-animation-timing-function: cubic-bezier(0,0,0.2,1);\n animation-timing-function: cubic-bezier(0,0,0.2,1);\n }\n}\n\n@keyframes bounce {\n 0%, 100% {\n transform: translateY(-25%);\n -webkit-animation-timing-function: cubic-bezier(0.8,0,1,1);\n animation-timing-function: cubic-bezier(0.8,0,1,1);\n }\n\n 50% {\n transform: none;\n -webkit-animation-timing-function: cubic-bezier(0,0,0.2,1);\n animation-timing-function: cubic-bezier(0,0,0.2,1);\n }\n}\n\n:root {\n --main-scroll: hsl(0, 0%, 30%);\n --panels-scroll: hsl(180, 2%, 17%);\n --toast-background: hsla(240, 12%, 16%, 0.85);\n --toast-secondary: hsla(240, 12%, 16%, 0.15);\n --toast-text: hsla(0, 0%, 100%, 0.85);\n --primary-color: hsl(210, 100%, 52%);\n --primary-text: hsl(0, 0%, 87%);\n --secondary-color: hsl(46, 100%, 57%);\n}\n\n:root[data-theme='light'] {\n --main-background: #fff;\n --secondary-background: hsl(0, 0%, 93%);\n --foreground: hsl(0, 0%, 20%);\n --panels-background: hsl(216, 4%, 78%);\n --table-bg: #fff;\n --table-zebra: hsl(0, 0%, 90%);\n --table-highlight: hsl(0, 0%, 84%);\n}\n\n:root[data-theme='dark'] {\n --main-background: hsl(240, 10%, 8%);\n --secondary-background: hsl(240, 12%, 16%);\n --foreground: hsl(0, 0%, 93%);\n --panels-background: hsl(240, 15%, 12%);\n --table-bg: hsl(240, 10%, 8%);\n --table-zebra: hsl(240, 15%, 11%);\n --table-highlight: hsl(240, 10%, 22%);\n}\n\n:root[data-theme='purple'] {\n --main-background: hsl(261, 74%, 6%);\n --secondary-background: hsl(257, 61%, 10%);\n --foreground: hsl(0, 0%, 93%);\n --panels-background: hsl(257, 70%, 9%);\n --table-bg: hsl(261, 74%, 6%);\n --table-zebra: hsl(257, 61%, 10%);\n --table-highlight: hsl(257, 66%, 27%);\n}\n\nhtml {\n height: 100vh;\n}\n\nbody {\n margin: 0px;\n width: 100%;\n height: 100%;\n font-family: 'Open Sans', 'sans-serif';\n overflow: hidden;\n background: var(--main-background);\n color: var(--foreground);\n}\n\n* {\n margin: 0;\n padding: 0;\n box-sizing: border-box;\n}\n\n:root {\n font-size: 16px;\n}\n\ntable,\ncaption,\ntbody,\ntfoot,\nthead,\ntr,\nth,\ntd {\n margin: 0;\n padding: 0;\n border: 0;\n font-size: 100%;\n font: inherit;\n vertical-align: baseline;\n}\n\ntable {\n border-collapse: collapse;\n border-spacing: 0;\n}\n\n/* Taken from Tailwind Preflight */\n\nbutton,\n[type='button'],\n[type='reset'],\n[type='submit'] {\n -webkit-appearance: button;\n}\n\ninput[type='text'],\ninput[type='password'],\ninput[type='number'],\ninput[type='search'],\ninput[type='checkbox'],\nselect {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n}\n\n[type='number']::-webkit-inner-spin-button,\n[type='number']::-webkit-outer-spin-button {\n height: auto;\n}\n\nbutton,\n[role='button'] {\n cursor: pointer;\n}\n\n*,\n::before,\n::after {\n border-width: 0;\n border-style: solid;\n}\n\n@keyframes spin {\n 0% {\n transform: rotate(0deg);\n }\n\n 100% {\n transform: rotate(360deg);\n }\n}\n\ninput[type='text'],\ninput[type='password'],\ninput[type='number'] {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n margin-bottom: 8px;\n border: 0px solid black;\n border-radius: 4px;\n background-color: var(--secondary-background);\n padding: 0px 8px;\n width: calc(100% - 16px);\n line-height: 36px;\n color: var(--foreground);\n}\n\ninput[type='checkbox'] {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n display: inline-block;\n position: relative;\n opacity: 0.5;\n margin: 3px;\n border: 2px solid gray;\n border-radius: 2px;\n background-color: none;\n padding: 7px;\n}\n\ninput[type='checkbox']:checked {\n opacity: 1;\n margin: 3px;\n border: 0px solid var(--primary-color);\n border-radius: 2px;\n background-color: var(--primary-color);\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' height='18' viewBox='3 3 18 18' width='18'%3E%3Cpath fill='%23ffffff' d='M 10,17 5,12 6.41,10.59 10,14.17 17.59,6.58 19,8 Z'/%3E%3Cpath d='M0 0h24v24H0z' fill='none'/%3E%3C/svg%3E\");\n background-position: center center;\n padding: 9px;\n color: var(--primary-text);\n}\n\nselect {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n margin-bottom: 8px;\n border: 0px solid black;\n border-radius: 4px;\n background-clip: border-box;\n background-color: var(--secondary-background);\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' height='24' viewBox='0 0 24 24' width='24'%3E%3Cpath style='fill%3A%23000000%3Bfill-opacity%3A0.25' d='M7 10l5 5 5-5z'/%3E%3Cpath d='M0 0h24v24H0z' fill='none'/%3E%3C/svg%3E\");\n background-position: calc(100% - 8px) center;\n background-repeat: no-repeat;\n background-size: 24px;\n padding: 0px 40px 0px 8px;\n width: 100%;\n line-height: 36px;\n color: var(--foreground);\n}\n\np {\n word-break: break-word;\n}\n\nimg.rounded {\n border-radius: 5px;\n}\n\nimg.circle {\n border-radius: 50%;\n}\n\n.single-cover {\n display: inline-block;\n position: relative;\n color: white;\n}\n\n.clickable {\n cursor: pointer !important;\n}\n\n.coverart {\n background-color: var(--secondary-background);\n}\n\n.table {\n width: 100%;\n -webkit-border-horizontal-spacing: 0px;\n -webkit-border-vertical-spacing: 0px;\n /* === Tracks Table === */\n /* === Tracklist Table === */\n /* === Charts Table === */\n}\n\n.table tbody tr:not(.table__row-no-highlight):hover {\n background: var(--table-highlight);\n cursor: default;\n}\n\n.table tr {\n background: var(--table-bg);\n transition: background-color 175ms ease-in-out;\n}\n\n.table tr:nth-child(even) {\n background: var(--table-zebra);\n transition: background-color 175ms ease-in-out;\n}\n\n.table tr:not(:last-child) {\n border-bottom: 1px solid var(--table-highlight);\n}\n\n.table td,\n .table th {\n vertical-align: middle;\n}\n\n.table th .sortable {\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n\n.table th .sort-asc::after,\n .table th .sort-desc::after {\n font-size: 0.7em;\n padding-left: 3px;\n line-height: 0.7em;\n}\n\n.table th .sort-asc::after {\n content: '\\25b2';\n}\n\n.table th .sort-desc::after {\n content: '\\25bc';\n}\n\n.table td {\n padding: 7px 10px;\n}\n\n.table td:first-child {\n padding: 7px 10px 7px 20px;\n}\n\n.table td:last-child {\n padding: 7px 20px 7px 10px;\n}\n\n.table td img {\n vertical-align: middle;\n}\n\n.table--tracks {\n border-collapse: collapse;\n}\n\n.table--tracks thead {\n border-bottom: 2px solid var(--table-highlight);\n}\n\n.table--tracks tr:first-child td:first-child {\n border-top-left-radius: 3px;\n}\n\n.table--tracks tr:first-child td:last-child {\n border-top-right-radius: 3px;\n}\n\n.table--tracks tr:last-child td:first-child {\n border-bottom-left-radius: 3px;\n}\n\n.table--tracks tr:last-child td:last-child {\n border-bottom-right-radius: 3px;\n}\n\n.table--tracklist thead {\n border-bottom: 2px solid var(--table-highlight);\n text-transform: capitalize;\n}\n\n.table--tracklist th {\n height: 45px;\n padding: 7px 10px;\n}\n\n.table--tracklist th:first-child {\n padding: 7px 10px 7px 20px;\n}\n\n.table--tracklist th:last-child {\n padding: 7px 20px 7px 10px;\n}\n\n.table--tracklist td {\n height: 35px;\n}\n\n.table--charts td {\n height: 35px;\n}\n\n.table .table__icon {\n box-sizing: content-box;\n width: 32px;\n}\n\n.table .table__icon--big {\n width: 48px;\n text-align: center;\n}\n\n.table .table__cell--x-small {\n width: 0.32%;\n}\n\n.table .table__cell--small {\n width: 3.2%;\n}\n\n.table .table__cell--medium {\n width: 28.7%;\n}\n\n.table .table__cell--large {\n width: 50%;\n}\n\n.table .table__cell--left {\n text-align: left;\n}\n\n.table .table__cell--center {\n text-align: center;\n}\n\n.table .table__cell--right {\n text-align: right;\n}\n\n.table .table__cell-content.table__cell-content--vertical-center {\n display: flex;\n align-items: center;\n}\n\n.track_row > td > img {\n width: 32px;\n height: 32px;\n}\n\n.track_row > td > a > img {\n width: 56px;\n height: 56px;\n}\n\n.table--tracklist .clickable:hover,\n.table--charts .clickable:hover {\n text-decoration: underline;\n}\n\n.release_grid {\n grid-gap: 1rem;\n gap: 1rem;\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(10rem, 1fr));\n}\n\n.primary-text {\n margin-bottom: 0.25rem;\n transition-property: background-color, border-color, color, fill, stroke;\n transition-duration: 200ms;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n}\n\n.primary-text:hover {\n --text-opacity: 1;\n color: hsl(210, 100%, 52%);\n color: rgba(10.20000000000001, 132.59999999999988, 255, var(--text-opacity));\n}\n\n.secondary-text {\n margin-bottom: 0.25rem;\n font-size: 0.875rem;\n opacity: 0.75;\n}\n\n#settings_picture {\n width: 125px;\n height: 125px;\n}\n\n#log_info {\n display: flex;\n flex-direction: column;\n align-items: center;\n}\n\n#open_login_prompt {\n margin: 8px 0px;\n}\n\n.inline-flex input {\n margin-bottom: 0px;\n}\n\n#spotify_icon {\n width: 24px;\n height: 24px;\n fill: #1db954;\n margin-right: 15px;\n}\n\n/* Settings group */\n\n.settings-group {\n display: flex;\n flex-direction: column;\n justify-content: center;\n border-top: 1px solid hsl(0, 0%, 50%);\n /* Need less opacity */\n padding-top: 20px;\n padding-bottom: 20px;\n}\n\n.settings-group > * {\n margin-bottom: 15px;\n}\n\n/* Settings group header */\n\n.settings-group__header {\n font-size: 1.5rem;\n margin-bottom: 25px;\n}\n\n.settings-group__header.settings-group__header--with-icon {\n display: inline-flex;\n align-items: center;\n}\n\n.settings-group__header.settings-group__header--with-icon i.material-icons {\n margin-right: 15px;\n}\n\n/* Settings container */\n\n.settings-container {\n display: flex;\n}\n\n.settings-container__half {\n width: 50%;\n}\n\n.settings-container__third {\n width: 33%;\n}\n\n.settings-container__third--only-checkbox {\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: start;\n}\n\n.settings-container__half > *,\n .settings-container__third > * {\n margin-bottom: 15px;\n}\n\n.with-checkbox {\n display: flex;\n align-items: center;\n}\n\n.with-checkbox [type='checkbox'] {\n cursor: pointer;\n}\n\n.with-checkbox .checkbox_text {\n margin-left: 10px;\n cursor: pointer;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n\n/* Input group */\n\n.input_group {\n margin-bottom: 25px;\n}\n\n.input_group .input_group_text {\n margin-bottom: 7px;\n}\n\n.with-checkbox + .input_group {\n margin-top: 10px;\n}\n\n.release {\n display: inline-block;\n width: 156px;\n}\n\n.release .cover_container {\n width: 156px;\n height: 156px;\n margin-bottom: 10px;\n}\n\n@media (min-width: 640px) {\n}\n\n@media (min-width: 768px) {\n}\n\n@media (min-width: 1024px) {\n}\n\n@media (min-width: 1280px) {\n}\n");lo("/* Button */\n\n.btn {\n position: relative;\n height: 2rem;\n padding-left: 0.5rem;\n padding-right: 0.5rem;\n padding-top: 0;\n padding-bottom: 0;\n font-size: 0.875rem;\n font-weight: 600;\n text-transform: uppercase;\n border-width: 1px;\n border-color: transparent;\n border-style: solid;\n border-radius: 0.25rem;\n --text-opacity: 1;\n color: hsl(0, 0%, 90%);\n color: rgba(229.5, 229.5, 229.5, var(--text-opacity));\n font-family: inherit;\n transition: transform 50ms ease-in-out;\n}\n\n.btn:active {\n transform: scale(0.98);\n}\n\n.btn[disabled] {\n --text-opacity: 1;\n color: #e2e8f0;\n color: rgba(226, 232, 240, var(--text-opacity));\n --bg-opacity: 1;\n background-color: #718096;\n background-color: rgba(113, 128, 150, var(--bg-opacity));\n opacity: 0.75;\n cursor: not-allowed;\n}\n\n.btn-only-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 3rem;\n padding-left: 0.25rem;\n padding-right: 0.25rem;\n padding-top: 0;\n padding-bottom: 0;\n min-width: 24px;\n}\n\n.btn-primary {\n --bg-opacity: 1;\n background-color: hsl(210, 100%, 52%);\n background-color: rgba(10.20000000000001, 132.59999999999988, 255, var(--bg-opacity));\n}\n\n.btn-primary:hover {\n --bg-opacity: 1;\n background-color: #3182ce;\n background-color: rgba(49, 130, 206, var(--bg-opacity));\n border-color: var(--foreground);\n}\n\n/* Section tabs */\n\n.section-tabs {\n display: flex;\n margin-top: 1rem;\n margin-bottom: 1.5rem;\n list-style-type: none;\n cursor: pointer;\n}\n\n.section-tabs__tab {\n flex: 1 1 0%;\n padding: 0.75rem;\n font-size: 1.25rem;\n text-align: center;\n text-transform: capitalize;\n border-top-width: 4px;\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n border-color: var(--foreground);\n background-color: var(--main-background);\n}\n\n.section-tabs__tab.active {\n --text-opacity: 1;\n color: hsl(210, 100%, 52%);\n color: rgba(10.20000000000001, 132.59999999999988, 255, var(--text-opacity));\n --border-opacity: 1;\n border-color: hsl(210, 100%, 52%);\n border-color: rgba(10.20000000000001, 132.59999999999988, 255, var(--border-opacity));\n background-color: var(--main-background);\n}\n\n.section-tabs__tab:hover {\n --text-opacity: 1;\n color: hsl(210, 100%, 52%);\n color: rgba(10.20000000000001, 132.59999999999988, 255, var(--text-opacity));\n --border-opacity: 1;\n border-color: hsl(210, 100%, 52%);\n border-color: rgba(10.20000000000001, 132.59999999999988, 255, var(--border-opacity));\n background-color: var(--secondary-background);\n --bg-opacity: 0.25;\n}\n\n/* Image header */\n\n.image-header header {\n background-size: cover;\n padding-top: 14rem;\n padding-left: 1.5rem;\n padding-right: 1.5rem;\n padding-bottom: 0.5rem;\n border-top-left-radius: 0.5rem;\n border-top-right-radius: 0.5rem;\n background-position: 0% 35%;\n}\n\n/* Fixed footer */\n\n.fixed-footer footer {\n position: -webkit-sticky;\n position: sticky;\n align-items: center;\n display: flex;\n flex-direction: row;\n justify-content: flex-end;\n bottom: 0;\n height: 4rem;\n width: 100%;\n margin-top: 1.5rem;\n}\n");lo(".changing-theme {\n transition: all 200ms ease-in-out;\n}\n\n[v-cloak] {\n display: none;\n}\n");var co=("undefined"!=typeof window?window:"undefined"!=typeof global?global:{}).__VUE_DEVTOOLS_GLOBAL_HOOK__;function uo(e,t){if(void 0===t&&(t=[]),null===e||"object"!=typeof e)return e;var a,n=(a=function(t){return t.original===e},t.filter(a)[0]);if(n)return n.copy;var i=Array.isArray(e)?[]:{};return t.push({original:e,copy:i}),Object.keys(e).forEach((function(a){i[a]=uo(e[a],t)})),i}function po(e,t){Object.keys(e).forEach((function(a){return t(e[a],a)}))}function mo(e){return null!==e&&"object"==typeof e}var ho=function(e,t){this.runtime=t,this._children=Object.create(null),this._rawModule=e;var a=e.state;this.state=("function"==typeof a?a():a)||{}},fo={namespaced:{configurable:!0}};fo.namespaced.get=function(){return!!this._rawModule.namespaced},ho.prototype.addChild=function(e,t){this._children[e]=t},ho.prototype.removeChild=function(e){delete this._children[e]},ho.prototype.getChild=function(e){return this._children[e]},ho.prototype.hasChild=function(e){return e in this._children},ho.prototype.update=function(e){this._rawModule.namespaced=e.namespaced,e.actions&&(this._rawModule.actions=e.actions),e.mutations&&(this._rawModule.mutations=e.mutations),e.getters&&(this._rawModule.getters=e.getters)},ho.prototype.forEachChild=function(e){po(this._children,e)},ho.prototype.forEachGetter=function(e){this._rawModule.getters&&po(this._rawModule.getters,e)},ho.prototype.forEachAction=function(e){this._rawModule.actions&&po(this._rawModule.actions,e)},ho.prototype.forEachMutation=function(e){this._rawModule.mutations&&po(this._rawModule.mutations,e)},Object.defineProperties(ho.prototype,fo);var go,vo=function(e){this.register([],e,!1)};function bo(e,t,a){if(t.update(a),a.modules)for(var n in a.modules){if(!t.getChild(n))return;bo(e.concat(n),t.getChild(n),a.modules[n])}}vo.prototype.get=function(e){return e.reduce((function(e,t){return e.getChild(t)}),this.root)},vo.prototype.getNamespace=function(e){var t=this.root;return e.reduce((function(e,a){return e+((t=t.getChild(a)).namespaced?a+"/":"")}),"")},vo.prototype.update=function(e){bo([],this.root,e)},vo.prototype.register=function(e,t,a){var n=this;void 0===a&&(a=!0);var i=new ho(t,a);0===e.length?this.root=i:this.get(e.slice(0,-1)).addChild(e[e.length-1],i);t.modules&&po(t.modules,(function(t,i){n.register(e.concat(i),t,a)}))},vo.prototype.unregister=function(e){var t=this.get(e.slice(0,-1)),a=e[e.length-1],n=t.getChild(a);n&&n.runtime&&t.removeChild(a)},vo.prototype.isRegistered=function(e){var t=this.get(e.slice(0,-1)),a=e[e.length-1];return t.hasChild(a)};var yo=function(e){var t=this;void 0===e&&(e={}),!go&&"undefined"!=typeof window&&window.Vue&&So(window.Vue);var a=e.plugins;void 0===a&&(a=[]);var n=e.strict;void 0===n&&(n=!1),this._committing=!1,this._actions=Object.create(null),this._actionSubscribers=[],this._mutations=Object.create(null),this._wrappedGetters=Object.create(null),this._modules=new vo(e),this._modulesNamespaceMap=Object.create(null),this._subscribers=[],this._watcherVM=new go,this._makeLocalGettersCache=Object.create(null);var i=this,r=this.dispatch,s=this.commit;this.dispatch=function(e,t){return r.call(i,e,t)},this.commit=function(e,t,a){return s.call(i,e,t,a)},this.strict=n;var o=this._modules.root.state;xo(this,o,[],this._modules.root),Ao(this,o),a.forEach((function(e){return e(t)})),(void 0!==e.devtools?e.devtools:go.config.devtools)&&function(e){co&&(e._devtoolHook=co,co.emit("vuex:init",e),co.on("vuex:travel-to-state",(function(t){e.replaceState(t)})),e.subscribe((function(e,t){co.emit("vuex:mutation",e,t)}),{prepend:!0}),e.subscribeAction((function(e,t){co.emit("vuex:action",e,t)}),{prepend:!0}))}(this)},ko={state:{configurable:!0}};function _o(e,t,a){return t.indexOf(e)<0&&(a&&a.prepend?t.unshift(e):t.push(e)),function(){var a=t.indexOf(e);a>-1&&t.splice(a,1)}}function wo(e,t){e._actions=Object.create(null),e._mutations=Object.create(null),e._wrappedGetters=Object.create(null),e._modulesNamespaceMap=Object.create(null);var a=e.state;xo(e,a,[],e._modules.root,!0),Ao(e,a,t)}function Ao(e,t,a){var n=e._vm;e.getters={},e._makeLocalGettersCache=Object.create(null);var i=e._wrappedGetters,r={};po(i,(function(t,a){r[a]=function(e,t){return function(){return e(t)}}(t,e),Object.defineProperty(e.getters,a,{get:function(){return e._vm[a]},enumerable:!0})}));var s=go.config.silent;go.config.silent=!0,e._vm=new go({data:{$$state:t},computed:r}),go.config.silent=s,e.strict&&function(e){e._vm.$watch((function(){return this._data.$$state}),(function(){}),{deep:!0,sync:!0})}(e),n&&(a&&e._withCommit((function(){n._data.$$state=null})),go.nextTick((function(){return n.$destroy()})))}function xo(e,t,a,n,i){var r=!a.length,s=e._modules.getNamespace(a);if(n.namespaced&&(e._modulesNamespaceMap[s],e._modulesNamespaceMap[s]=n),!r&&!i){var o=Co(t,a.slice(0,-1)),l=a[a.length-1];e._withCommit((function(){go.set(o,l,n.state)}))}var c=n.context=function(e,t,a){var n=""===t,i={dispatch:n?e.dispatch:function(a,n,i){var r=zo(a,n,i),s=r.payload,o=r.options,l=r.type;return o&&o.root||(l=t+l),e.dispatch(l,s)},commit:n?e.commit:function(a,n,i){var r=zo(a,n,i),s=r.payload,o=r.options,l=r.type;o&&o.root||(l=t+l),e.commit(l,s,o)}};return Object.defineProperties(i,{getters:{get:n?function(){return e.getters}:function(){return function(e,t){if(!e._makeLocalGettersCache[t]){var a={},n=t.length;Object.keys(e.getters).forEach((function(i){if(i.slice(0,n)===t){var r=i.slice(n);Object.defineProperty(a,r,{get:function(){return e.getters[i]},enumerable:!0})}})),e._makeLocalGettersCache[t]=a}return e._makeLocalGettersCache[t]}(e,t)}},state:{get:function(){return Co(e.state,a)}}}),i}(e,s,a);n.forEachMutation((function(t,a){!function(e,t,a,n){(e._mutations[t]||(e._mutations[t]=[])).push((function(t){a.call(e,n.state,t)}))}(e,s+a,t,c)})),n.forEachAction((function(t,a){var n=t.root?a:s+a,i=t.handler||t;!function(e,t,a,n){(e._actions[t]||(e._actions[t]=[])).push((function(t){var i,r=a.call(e,{dispatch:n.dispatch,commit:n.commit,getters:n.getters,state:n.state,rootGetters:e.getters,rootState:e.state},t);return(i=r)&&"function"==typeof i.then||(r=Promise.resolve(r)),e._devtoolHook?r.catch((function(t){throw e._devtoolHook.emit("vuex:error",t),t})):r}))}(e,n,i,c)})),n.forEachGetter((function(t,a){!function(e,t,a,n){if(e._wrappedGetters[t])return;e._wrappedGetters[t]=function(e){return a(n.state,n.getters,e.state,e.getters)}}(e,s+a,t,c)})),n.forEachChild((function(n,r){xo(e,t,a.concat(r),n,i)}))}function Co(e,t){return t.reduce((function(e,t){return e[t]}),e)}function zo(e,t,a){return mo(e)&&e.type&&(a=t,t=e,e=e.type),{type:e,payload:t,options:a}}function So(e){go&&e===go|| +/* */ + +var emptyObject = Object.freeze({}); + +// These helpers produce better VM code in JS engines due to their +// explicitness and function inlining. +function isUndef (v) { + return v === undefined || v === null +} + +function isDef (v) { + return v !== undefined && v !== null +} + +function isTrue (v) { + return v === true +} + +function isFalse (v) { + return v === false +} + +/** + * Check if value is primitive. + */ +function isPrimitive (value) { + return ( + typeof value === 'string' || + typeof value === 'number' || + // $flow-disable-line + typeof value === 'symbol' || + typeof value === 'boolean' + ) +} + +/** + * Quick object check - this is primarily used to tell + * Objects from primitive values when we know the value + * is a JSON-compliant type. + */ +function isObject (obj) { + return obj !== null && typeof obj === 'object' +} + +/** + * Get the raw type string of a value, e.g., [object Object]. + */ +var _toString = Object.prototype.toString; + +function toRawType (value) { + return _toString.call(value).slice(8, -1) +} + +/** + * Strict object type check. Only returns true + * for plain JavaScript objects. + */ +function isPlainObject (obj) { + return _toString.call(obj) === '[object Object]' +} + +function isRegExp (v) { + return _toString.call(v) === '[object RegExp]' +} + +/** + * Check if val is a valid array index. + */ +function isValidArrayIndex (val) { + var n = parseFloat(String(val)); + return n >= 0 && Math.floor(n) === n && isFinite(val) +} + +function isPromise (val) { + return ( + isDef(val) && + typeof val.then === 'function' && + typeof val.catch === 'function' + ) +} + +/** + * Convert a value to a string that is actually rendered. + */ +function toString (val) { + return val == null + ? '' + : Array.isArray(val) || (isPlainObject(val) && val.toString === _toString) + ? JSON.stringify(val, null, 2) + : String(val) +} + +/** + * Convert an input value to a number for persistence. + * If the conversion fails, return original string. + */ +function toNumber (val) { + var n = parseFloat(val); + return isNaN(n) ? val : n +} + +/** + * Make a map and return a function for checking if a key + * is in that map. + */ +function makeMap ( + str, + expectsLowerCase +) { + var map = Object.create(null); + var list = str.split(','); + for (var i = 0; i < list.length; i++) { + map[list[i]] = true; + } + return expectsLowerCase + ? function (val) { return map[val.toLowerCase()]; } + : function (val) { return map[val]; } +} + +/** + * Check if a tag is a built-in tag. + */ +var isBuiltInTag = makeMap('slot,component', true); + +/** + * Check if an attribute is a reserved attribute. + */ +var isReservedAttribute = makeMap('key,ref,slot,slot-scope,is'); + +/** + * Remove an item from an array. + */ +function remove (arr, item) { + if (arr.length) { + var index = arr.indexOf(item); + if (index > -1) { + return arr.splice(index, 1) + } + } +} + +/** + * Check whether an object has the property. + */ +var hasOwnProperty = Object.prototype.hasOwnProperty; +function hasOwn (obj, key) { + return hasOwnProperty.call(obj, key) +} + +/** + * Create a cached version of a pure function. + */ +function cached (fn) { + var cache = Object.create(null); + return (function cachedFn (str) { + var hit = cache[str]; + return hit || (cache[str] = fn(str)) + }) +} + +/** + * Camelize a hyphen-delimited string. + */ +var camelizeRE = /-(\w)/g; +var camelize = cached(function (str) { + return str.replace(camelizeRE, function (_, c) { return c ? c.toUpperCase() : ''; }) +}); + +/** + * Capitalize a string. + */ +var capitalize = cached(function (str) { + return str.charAt(0).toUpperCase() + str.slice(1) +}); + +/** + * Hyphenate a camelCase string. + */ +var hyphenateRE = /\B([A-Z])/g; +var hyphenate = cached(function (str) { + return str.replace(hyphenateRE, '-$1').toLowerCase() +}); + +/** + * Simple bind polyfill for environments that do not support it, + * e.g., PhantomJS 1.x. Technically, we don't need this anymore + * since native bind is now performant enough in most browsers. + * But removing it would mean breaking code that was able to run in + * PhantomJS 1.x, so this must be kept for backward compatibility. + */ + +/* istanbul ignore next */ +function polyfillBind (fn, ctx) { + function boundFn (a) { + var l = arguments.length; + return l + ? l > 1 + ? fn.apply(ctx, arguments) + : fn.call(ctx, a) + : fn.call(ctx) + } + + boundFn._length = fn.length; + return boundFn +} + +function nativeBind (fn, ctx) { + return fn.bind(ctx) +} + +var bind = Function.prototype.bind + ? nativeBind + : polyfillBind; + +/** + * Convert an Array-like object to a real Array. + */ +function toArray (list, start) { + start = start || 0; + var i = list.length - start; + var ret = new Array(i); + while (i--) { + ret[i] = list[i + start]; + } + return ret +} + +/** + * Mix properties into target object. + */ +function extend (to, _from) { + for (var key in _from) { + to[key] = _from[key]; + } + return to +} + +/** + * Merge an Array of Objects into a single Object. + */ +function toObject (arr) { + var res = {}; + for (var i = 0; i < arr.length; i++) { + if (arr[i]) { + extend(res, arr[i]); + } + } + return res +} + +/* eslint-disable no-unused-vars */ + +/** + * Perform no operation. + * Stubbing args to make Flow happy without leaving useless transpiled code + * with ...rest (https://flow.org/blog/2017/05/07/Strict-Function-Call-Arity/). + */ +function noop (a, b, c) {} + +/** + * Always return false. + */ +var no = function (a, b, c) { return false; }; + +/* eslint-enable no-unused-vars */ + +/** + * Return the same value. + */ +var identity = function (_) { return _; }; + +/** + * Generate a string containing static keys from compiler modules. + */ +function genStaticKeys (modules) { + return modules.reduce(function (keys, m) { + return keys.concat(m.staticKeys || []) + }, []).join(',') +} + +/** + * Check if two values are loosely equal - that is, + * if they are plain objects, do they have the same shape? + */ +function looseEqual (a, b) { + if (a === b) { return true } + var isObjectA = isObject(a); + var isObjectB = isObject(b); + if (isObjectA && isObjectB) { + try { + var isArrayA = Array.isArray(a); + var isArrayB = Array.isArray(b); + if (isArrayA && isArrayB) { + return a.length === b.length && a.every(function (e, i) { + return looseEqual(e, b[i]) + }) + } else if (a instanceof Date && b instanceof Date) { + return a.getTime() === b.getTime() + } else if (!isArrayA && !isArrayB) { + var keysA = Object.keys(a); + var keysB = Object.keys(b); + return keysA.length === keysB.length && keysA.every(function (key) { + return looseEqual(a[key], b[key]) + }) + } else { + /* istanbul ignore next */ + return false + } + } catch (e) { + /* istanbul ignore next */ + return false + } + } else if (!isObjectA && !isObjectB) { + return String(a) === String(b) + } else { + return false + } +} + +/** + * Return the first index at which a loosely equal value can be + * found in the array (if value is a plain object, the array must + * contain an object of the same shape), or -1 if it is not present. + */ +function looseIndexOf (arr, val) { + for (var i = 0; i < arr.length; i++) { + if (looseEqual(arr[i], val)) { return i } + } + return -1 +} + +/** + * Ensure a function is called only once. + */ +function once (fn) { + var called = false; + return function () { + if (!called) { + called = true; + fn.apply(this, arguments); + } + } +} + +var SSR_ATTR = 'data-server-rendered'; + +var ASSET_TYPES = [ + 'component', + 'directive', + 'filter' +]; + +var LIFECYCLE_HOOKS = [ + 'beforeCreate', + 'created', + 'beforeMount', + 'mounted', + 'beforeUpdate', + 'updated', + 'beforeDestroy', + 'destroyed', + 'activated', + 'deactivated', + 'errorCaptured', + 'serverPrefetch' +]; + +/* */ + + + +var config = ({ + /** + * Option merge strategies (used in core/util/options) + */ + // $flow-disable-line + optionMergeStrategies: Object.create(null), + + /** + * Whether to suppress warnings. + */ + silent: false, + + /** + * Show production mode tip message on boot? + */ + productionTip: "production" !== 'production', + + /** + * Whether to enable devtools + */ + devtools: "production" !== 'production', + + /** + * Whether to record perf + */ + performance: false, + + /** + * Error handler for watcher errors + */ + errorHandler: null, + + /** + * Warn handler for watcher warns + */ + warnHandler: null, + + /** + * Ignore certain custom elements + */ + ignoredElements: [], + + /** + * Custom user key aliases for v-on + */ + // $flow-disable-line + keyCodes: Object.create(null), + + /** + * Check if a tag is reserved so that it cannot be registered as a + * component. This is platform-dependent and may be overwritten. + */ + isReservedTag: no, + + /** + * Check if an attribute is reserved so that it cannot be used as a component + * prop. This is platform-dependent and may be overwritten. + */ + isReservedAttr: no, + + /** + * Check if a tag is an unknown element. + * Platform-dependent. + */ + isUnknownElement: no, + + /** + * Get the namespace of an element + */ + getTagNamespace: noop, + + /** + * Parse the real tag name for the specific platform. + */ + parsePlatformTagName: identity, + + /** + * Check if an attribute must be bound using property, e.g. value + * Platform-dependent. + */ + mustUseProp: no, + + /** + * Perform updates asynchronously. Intended to be used by Vue Test Utils + * This will significantly reduce performance if set to false. + */ + async: true, + + /** + * Exposed for legacy reasons + */ + _lifecycleHooks: LIFECYCLE_HOOKS +}); + +/* */ + +/** + * unicode letters used for parsing html tags, component names and property paths. + * using https://www.w3.org/TR/html53/semantics-scripting.html#potentialcustomelementname + * skipping \u10000-\uEFFFF due to it freezing up PhantomJS + */ +var unicodeRegExp = /a-zA-Z\u00B7\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u037D\u037F-\u1FFF\u200C-\u200D\u203F-\u2040\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD/; + +/** + * Check if a string starts with $ or _ + */ +function isReserved (str) { + var c = (str + '').charCodeAt(0); + return c === 0x24 || c === 0x5F +} + +/** + * Define a property. + */ +function def (obj, key, val, enumerable) { + Object.defineProperty(obj, key, { + value: val, + enumerable: !!enumerable, + writable: true, + configurable: true + }); +} + +/** + * Parse simple path. + */ +var bailRE = new RegExp(("[^" + (unicodeRegExp.source) + ".$_\\d]")); +function parsePath (path) { + if (bailRE.test(path)) { + return + } + var segments = path.split('.'); + return function (obj) { + for (var i = 0; i < segments.length; i++) { + if (!obj) { return } + obj = obj[segments[i]]; + } + return obj + } +} + +/* */ + +// can we use __proto__? +var hasProto = '__proto__' in {}; + +// Browser environment sniffing +var inBrowser = typeof window !== 'undefined'; +var inWeex = typeof WXEnvironment !== 'undefined' && !!WXEnvironment.platform; +var weexPlatform = inWeex && WXEnvironment.platform.toLowerCase(); +var UA = inBrowser && window.navigator.userAgent.toLowerCase(); +var isIE = UA && /msie|trident/.test(UA); +var isIE9 = UA && UA.indexOf('msie 9.0') > 0; +var isEdge = UA && UA.indexOf('edge/') > 0; +var isAndroid = (UA && UA.indexOf('android') > 0) || (weexPlatform === 'android'); +var isIOS = (UA && /iphone|ipad|ipod|ios/.test(UA)) || (weexPlatform === 'ios'); +var isChrome = UA && /chrome\/\d+/.test(UA) && !isEdge; +var isPhantomJS = UA && /phantomjs/.test(UA); +var isFF = UA && UA.match(/firefox\/(\d+)/); + +// Firefox has a "watch" function on Object.prototype... +var nativeWatch = ({}).watch; + +var supportsPassive = false; +if (inBrowser) { + try { + var opts = {}; + Object.defineProperty(opts, 'passive', ({ + get: function get () { + /* istanbul ignore next */ + supportsPassive = true; + } + })); // https://github.com/facebook/flow/issues/285 + window.addEventListener('test-passive', null, opts); + } catch (e) {} +} + +// this needs to be lazy-evaled because vue may be required before +// vue-server-renderer can set VUE_ENV +var _isServer; +var isServerRendering = function () { + if (_isServer === undefined) { + /* istanbul ignore if */ + if (!inBrowser && !inWeex && typeof global !== 'undefined') { + // detect presence of vue-server-renderer and avoid + // Webpack shimming the process + _isServer = global['process'] && global['process'].env.VUE_ENV === 'server'; + } else { + _isServer = false; + } + } + return _isServer +}; + +// detect devtools +var devtools = inBrowser && window.__VUE_DEVTOOLS_GLOBAL_HOOK__; + +/* istanbul ignore next */ +function isNative (Ctor) { + return typeof Ctor === 'function' && /native code/.test(Ctor.toString()) +} + +var hasSymbol = + typeof Symbol !== 'undefined' && isNative(Symbol) && + typeof Reflect !== 'undefined' && isNative(Reflect.ownKeys); + +var _Set; +/* istanbul ignore if */ // $flow-disable-line +if (typeof Set !== 'undefined' && isNative(Set)) { + // use native Set when available. + _Set = Set; +} else { + // a non-standard Set polyfill that only works with primitive keys. + _Set = /*@__PURE__*/(function () { + function Set () { + this.set = Object.create(null); + } + Set.prototype.has = function has (key) { + return this.set[key] === true + }; + Set.prototype.add = function add (key) { + this.set[key] = true; + }; + Set.prototype.clear = function clear () { + this.set = Object.create(null); + }; + + return Set; + }()); +} + +/* */ + +var warn = noop; + +/* */ + +var uid = 0; + +/** + * A dep is an observable that can have multiple + * directives subscribing to it. + */ +var Dep = function Dep () { + this.id = uid++; + this.subs = []; +}; + +Dep.prototype.addSub = function addSub (sub) { + this.subs.push(sub); +}; + +Dep.prototype.removeSub = function removeSub (sub) { + remove(this.subs, sub); +}; + +Dep.prototype.depend = function depend () { + if (Dep.target) { + Dep.target.addDep(this); + } +}; + +Dep.prototype.notify = function notify () { + // stabilize the subscriber list first + var subs = this.subs.slice(); + for (var i = 0, l = subs.length; i < l; i++) { + subs[i].update(); + } +}; + +// The current target watcher being evaluated. +// This is globally unique because only one watcher +// can be evaluated at a time. +Dep.target = null; +var targetStack = []; + +function pushTarget (target) { + targetStack.push(target); + Dep.target = target; +} + +function popTarget () { + targetStack.pop(); + Dep.target = targetStack[targetStack.length - 1]; +} + +/* */ + +var VNode = function VNode ( + tag, + data, + children, + text, + elm, + context, + componentOptions, + asyncFactory +) { + this.tag = tag; + this.data = data; + this.children = children; + this.text = text; + this.elm = elm; + this.ns = undefined; + this.context = context; + this.fnContext = undefined; + this.fnOptions = undefined; + this.fnScopeId = undefined; + this.key = data && data.key; + this.componentOptions = componentOptions; + this.componentInstance = undefined; + this.parent = undefined; + this.raw = false; + this.isStatic = false; + this.isRootInsert = true; + this.isComment = false; + this.isCloned = false; + this.isOnce = false; + this.asyncFactory = asyncFactory; + this.asyncMeta = undefined; + this.isAsyncPlaceholder = false; +}; + +var prototypeAccessors = { child: { configurable: true } }; + +// DEPRECATED: alias for componentInstance for backwards compat. +/* istanbul ignore next */ +prototypeAccessors.child.get = function () { + return this.componentInstance +}; + +Object.defineProperties( VNode.prototype, prototypeAccessors ); + +var createEmptyVNode = function (text) { + if ( text === void 0 ) text = ''; + + var node = new VNode(); + node.text = text; + node.isComment = true; + return node +}; + +function createTextVNode (val) { + return new VNode(undefined, undefined, undefined, String(val)) +} + +// optimized shallow clone +// used for static nodes and slot nodes because they may be reused across +// multiple renders, cloning them avoids errors when DOM manipulations rely +// on their elm reference. +function cloneVNode (vnode) { + var cloned = new VNode( + vnode.tag, + vnode.data, + // #7975 + // clone children array to avoid mutating original in case of cloning + // a child. + vnode.children && vnode.children.slice(), + vnode.text, + vnode.elm, + vnode.context, + vnode.componentOptions, + vnode.asyncFactory + ); + cloned.ns = vnode.ns; + cloned.isStatic = vnode.isStatic; + cloned.key = vnode.key; + cloned.isComment = vnode.isComment; + cloned.fnContext = vnode.fnContext; + cloned.fnOptions = vnode.fnOptions; + cloned.fnScopeId = vnode.fnScopeId; + cloned.asyncMeta = vnode.asyncMeta; + cloned.isCloned = true; + return cloned +} + +/* + * not type checking this file because flow doesn't play well with + * dynamically accessing methods on Array prototype + */ + +var arrayProto = Array.prototype; +var arrayMethods = Object.create(arrayProto); + +var methodsToPatch = [ + 'push', + 'pop', + 'shift', + 'unshift', + 'splice', + 'sort', + 'reverse' +]; + +/** + * Intercept mutating methods and emit events + */ +methodsToPatch.forEach(function (method) { + // cache original method + var original = arrayProto[method]; + def(arrayMethods, method, function mutator () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + var result = original.apply(this, args); + var ob = this.__ob__; + var inserted; + switch (method) { + case 'push': + case 'unshift': + inserted = args; + break + case 'splice': + inserted = args.slice(2); + break + } + if (inserted) { ob.observeArray(inserted); } + // notify change + ob.dep.notify(); + return result + }); +}); + +/* */ + +var arrayKeys = Object.getOwnPropertyNames(arrayMethods); + +/** + * In some cases we may want to disable observation inside a component's + * update computation. + */ +var shouldObserve = true; + +function toggleObserving (value) { + shouldObserve = value; +} + +/** + * Observer class that is attached to each observed + * object. Once attached, the observer converts the target + * object's property keys into getter/setters that + * collect dependencies and dispatch updates. + */ +var Observer = function Observer (value) { + this.value = value; + this.dep = new Dep(); + this.vmCount = 0; + def(value, '__ob__', this); + if (Array.isArray(value)) { + if (hasProto) { + protoAugment(value, arrayMethods); + } else { + copyAugment(value, arrayMethods, arrayKeys); + } + this.observeArray(value); + } else { + this.walk(value); + } +}; + +/** + * Walk through all properties and convert them into + * getter/setters. This method should only be called when + * value type is Object. + */ +Observer.prototype.walk = function walk (obj) { + var keys = Object.keys(obj); + for (var i = 0; i < keys.length; i++) { + defineReactive$$1(obj, keys[i]); + } +}; + +/** + * Observe a list of Array items. + */ +Observer.prototype.observeArray = function observeArray (items) { + for (var i = 0, l = items.length; i < l; i++) { + observe(items[i]); + } +}; + +// helpers + +/** + * Augment a target Object or Array by intercepting + * the prototype chain using __proto__ + */ +function protoAugment (target, src) { + /* eslint-disable no-proto */ + target.__proto__ = src; + /* eslint-enable no-proto */ +} + +/** + * Augment a target Object or Array by defining + * hidden properties. + */ +/* istanbul ignore next */ +function copyAugment (target, src, keys) { + for (var i = 0, l = keys.length; i < l; i++) { + var key = keys[i]; + def(target, key, src[key]); + } +} + +/** + * Attempt to create an observer instance for a value, + * returns the new observer if successfully observed, + * or the existing observer if the value already has one. + */ +function observe (value, asRootData) { + if (!isObject(value) || value instanceof VNode) { + return + } + var ob; + if (hasOwn(value, '__ob__') && value.__ob__ instanceof Observer) { + ob = value.__ob__; + } else if ( + shouldObserve && + !isServerRendering() && + (Array.isArray(value) || isPlainObject(value)) && + Object.isExtensible(value) && + !value._isVue + ) { + ob = new Observer(value); + } + if (asRootData && ob) { + ob.vmCount++; + } + return ob +} + +/** + * Define a reactive property on an Object. + */ +function defineReactive$$1 ( + obj, + key, + val, + customSetter, + shallow +) { + var dep = new Dep(); + + var property = Object.getOwnPropertyDescriptor(obj, key); + if (property && property.configurable === false) { + return + } + + // cater for pre-defined getter/setters + var getter = property && property.get; + var setter = property && property.set; + if ((!getter || setter) && arguments.length === 2) { + val = obj[key]; + } + + var childOb = !shallow && observe(val); + Object.defineProperty(obj, key, { + enumerable: true, + configurable: true, + get: function reactiveGetter () { + var value = getter ? getter.call(obj) : val; + if (Dep.target) { + dep.depend(); + if (childOb) { + childOb.dep.depend(); + if (Array.isArray(value)) { + dependArray(value); + } + } + } + return value + }, + set: function reactiveSetter (newVal) { + var value = getter ? getter.call(obj) : val; + /* eslint-disable no-self-compare */ + if (newVal === value || (newVal !== newVal && value !== value)) { + return + } + // #7981: for accessor properties without setter + if (getter && !setter) { return } + if (setter) { + setter.call(obj, newVal); + } else { + val = newVal; + } + childOb = !shallow && observe(newVal); + dep.notify(); + } + }); +} + +/** + * Set a property on an object. Adds the new property and + * triggers change notification if the property doesn't + * already exist. + */ +function set (target, key, val) { + if (Array.isArray(target) && isValidArrayIndex(key)) { + target.length = Math.max(target.length, key); + target.splice(key, 1, val); + return val + } + if (key in target && !(key in Object.prototype)) { + target[key] = val; + return val + } + var ob = (target).__ob__; + if (target._isVue || (ob && ob.vmCount)) { + return val + } + if (!ob) { + target[key] = val; + return val + } + defineReactive$$1(ob.value, key, val); + ob.dep.notify(); + return val +} + +/** + * Delete a property and trigger change if necessary. + */ +function del (target, key) { + if (Array.isArray(target) && isValidArrayIndex(key)) { + target.splice(key, 1); + return + } + var ob = (target).__ob__; + if (target._isVue || (ob && ob.vmCount)) { + return + } + if (!hasOwn(target, key)) { + return + } + delete target[key]; + if (!ob) { + return + } + ob.dep.notify(); +} + +/** + * Collect dependencies on array elements when the array is touched, since + * we cannot intercept array element access like property getters. + */ +function dependArray (value) { + for (var e = (void 0), i = 0, l = value.length; i < l; i++) { + e = value[i]; + e && e.__ob__ && e.__ob__.dep.depend(); + if (Array.isArray(e)) { + dependArray(e); + } + } +} + +/* */ + +/** + * Option overwriting strategies are functions that handle + * how to merge a parent option value and a child option + * value into the final value. + */ +var strats = config.optionMergeStrategies; + +/** + * Helper that recursively merges two data objects together. + */ +function mergeData (to, from) { + if (!from) { return to } + var key, toVal, fromVal; + + var keys = hasSymbol + ? Reflect.ownKeys(from) + : Object.keys(from); + + for (var i = 0; i < keys.length; i++) { + key = keys[i]; + // in case the object is already observed... + if (key === '__ob__') { continue } + toVal = to[key]; + fromVal = from[key]; + if (!hasOwn(to, key)) { + set(to, key, fromVal); + } else if ( + toVal !== fromVal && + isPlainObject(toVal) && + isPlainObject(fromVal) + ) { + mergeData(toVal, fromVal); + } + } + return to +} + +/** + * Data + */ +function mergeDataOrFn ( + parentVal, + childVal, + vm +) { + if (!vm) { + // in a Vue.extend merge, both should be functions + if (!childVal) { + return parentVal + } + if (!parentVal) { + return childVal + } + // when parentVal & childVal are both present, + // we need to return a function that returns the + // merged result of both functions... no need to + // check if parentVal is a function here because + // it has to be a function to pass previous merges. + return function mergedDataFn () { + return mergeData( + typeof childVal === 'function' ? childVal.call(this, this) : childVal, + typeof parentVal === 'function' ? parentVal.call(this, this) : parentVal + ) + } + } else { + return function mergedInstanceDataFn () { + // instance merge + var instanceData = typeof childVal === 'function' + ? childVal.call(vm, vm) + : childVal; + var defaultData = typeof parentVal === 'function' + ? parentVal.call(vm, vm) + : parentVal; + if (instanceData) { + return mergeData(instanceData, defaultData) + } else { + return defaultData + } + } + } +} + +strats.data = function ( + parentVal, + childVal, + vm +) { + if (!vm) { + if (childVal && typeof childVal !== 'function') { + + return parentVal + } + return mergeDataOrFn(parentVal, childVal) + } + + return mergeDataOrFn(parentVal, childVal, vm) +}; + +/** + * Hooks and props are merged as arrays. + */ +function mergeHook ( + parentVal, + childVal +) { + var res = childVal + ? parentVal + ? parentVal.concat(childVal) + : Array.isArray(childVal) + ? childVal + : [childVal] + : parentVal; + return res + ? dedupeHooks(res) + : res +} + +function dedupeHooks (hooks) { + var res = []; + for (var i = 0; i < hooks.length; i++) { + if (res.indexOf(hooks[i]) === -1) { + res.push(hooks[i]); + } + } + return res +} + +LIFECYCLE_HOOKS.forEach(function (hook) { + strats[hook] = mergeHook; +}); + +/** + * Assets + * + * When a vm is present (instance creation), we need to do + * a three-way merge between constructor options, instance + * options and parent options. + */ +function mergeAssets ( + parentVal, + childVal, + vm, + key +) { + var res = Object.create(parentVal || null); + if (childVal) { + return extend(res, childVal) + } else { + return res + } +} + +ASSET_TYPES.forEach(function (type) { + strats[type + 's'] = mergeAssets; +}); + +/** + * Watchers. + * + * Watchers hashes should not overwrite one + * another, so we merge them as arrays. + */ +strats.watch = function ( + parentVal, + childVal, + vm, + key +) { + // work around Firefox's Object.prototype.watch... + if (parentVal === nativeWatch) { parentVal = undefined; } + if (childVal === nativeWatch) { childVal = undefined; } + /* istanbul ignore if */ + if (!childVal) { return Object.create(parentVal || null) } + if (!parentVal) { return childVal } + var ret = {}; + extend(ret, parentVal); + for (var key$1 in childVal) { + var parent = ret[key$1]; + var child = childVal[key$1]; + if (parent && !Array.isArray(parent)) { + parent = [parent]; + } + ret[key$1] = parent + ? parent.concat(child) + : Array.isArray(child) ? child : [child]; + } + return ret +}; + +/** + * Other object hashes. + */ +strats.props = +strats.methods = +strats.inject = +strats.computed = function ( + parentVal, + childVal, + vm, + key +) { + if (childVal && "production" !== 'production') { + assertObjectType(key, childVal); + } + if (!parentVal) { return childVal } + var ret = Object.create(null); + extend(ret, parentVal); + if (childVal) { extend(ret, childVal); } + return ret +}; +strats.provide = mergeDataOrFn; + +/** + * Default strategy. + */ +var defaultStrat = function (parentVal, childVal) { + return childVal === undefined + ? parentVal + : childVal +}; + +/** + * Ensure all props option syntax are normalized into the + * Object-based format. + */ +function normalizeProps (options, vm) { + var props = options.props; + if (!props) { return } + var res = {}; + var i, val, name; + if (Array.isArray(props)) { + i = props.length; + while (i--) { + val = props[i]; + if (typeof val === 'string') { + name = camelize(val); + res[name] = { type: null }; + } + } + } else if (isPlainObject(props)) { + for (var key in props) { + val = props[key]; + name = camelize(key); + res[name] = isPlainObject(val) + ? val + : { type: val }; + } + } else ; + options.props = res; +} + +/** + * Normalize all injections into Object-based format + */ +function normalizeInject (options, vm) { + var inject = options.inject; + if (!inject) { return } + var normalized = options.inject = {}; + if (Array.isArray(inject)) { + for (var i = 0; i < inject.length; i++) { + normalized[inject[i]] = { from: inject[i] }; + } + } else if (isPlainObject(inject)) { + for (var key in inject) { + var val = inject[key]; + normalized[key] = isPlainObject(val) + ? extend({ from: key }, val) + : { from: val }; + } + } else ; +} + +/** + * Normalize raw function directives into object format. + */ +function normalizeDirectives (options) { + var dirs = options.directives; + if (dirs) { + for (var key in dirs) { + var def$$1 = dirs[key]; + if (typeof def$$1 === 'function') { + dirs[key] = { bind: def$$1, update: def$$1 }; + } + } + } +} + +function assertObjectType (name, value, vm) { + if (!isPlainObject(value)) { + warn( + "Invalid value for option \"" + name + "\": expected an Object, " + + "but got " + (toRawType(value)) + "."); + } +} + +/** + * Merge two option objects into a new one. + * Core utility used in both instantiation and inheritance. + */ +function mergeOptions ( + parent, + child, + vm +) { + + if (typeof child === 'function') { + child = child.options; + } + + normalizeProps(child); + normalizeInject(child); + normalizeDirectives(child); + + // Apply extends and mixins on the child options, + // but only if it is a raw options object that isn't + // the result of another mergeOptions call. + // Only merged options has the _base property. + if (!child._base) { + if (child.extends) { + parent = mergeOptions(parent, child.extends, vm); + } + if (child.mixins) { + for (var i = 0, l = child.mixins.length; i < l; i++) { + parent = mergeOptions(parent, child.mixins[i], vm); + } + } + } + + var options = {}; + var key; + for (key in parent) { + mergeField(key); + } + for (key in child) { + if (!hasOwn(parent, key)) { + mergeField(key); + } + } + function mergeField (key) { + var strat = strats[key] || defaultStrat; + options[key] = strat(parent[key], child[key], vm, key); + } + return options +} + +/** + * Resolve an asset. + * This function is used because child instances need access + * to assets defined in its ancestor chain. + */ +function resolveAsset ( + options, + type, + id, + warnMissing +) { + /* istanbul ignore if */ + if (typeof id !== 'string') { + return + } + var assets = options[type]; + // check local registration variations first + if (hasOwn(assets, id)) { return assets[id] } + var camelizedId = camelize(id); + if (hasOwn(assets, camelizedId)) { return assets[camelizedId] } + var PascalCaseId = capitalize(camelizedId); + if (hasOwn(assets, PascalCaseId)) { return assets[PascalCaseId] } + // fallback to prototype chain + var res = assets[id] || assets[camelizedId] || assets[PascalCaseId]; + return res +} + +/* */ + + + +function validateProp ( + key, + propOptions, + propsData, + vm +) { + var prop = propOptions[key]; + var absent = !hasOwn(propsData, key); + var value = propsData[key]; + // boolean casting + var booleanIndex = getTypeIndex(Boolean, prop.type); + if (booleanIndex > -1) { + if (absent && !hasOwn(prop, 'default')) { + value = false; + } else if (value === '' || value === hyphenate(key)) { + // only cast empty string / same name to boolean if + // boolean has higher priority + var stringIndex = getTypeIndex(String, prop.type); + if (stringIndex < 0 || booleanIndex < stringIndex) { + value = true; + } + } + } + // check default value + if (value === undefined) { + value = getPropDefaultValue(vm, prop, key); + // since the default value is a fresh copy, + // make sure to observe it. + var prevShouldObserve = shouldObserve; + toggleObserving(true); + observe(value); + toggleObserving(prevShouldObserve); + } + return value +} + +/** + * Get the default value of a prop. + */ +function getPropDefaultValue (vm, prop, key) { + // no default, return undefined + if (!hasOwn(prop, 'default')) { + return undefined + } + var def = prop.default; + // the raw prop value was also undefined from previous render, + // return previous default value to avoid unnecessary watcher trigger + if (vm && vm.$options.propsData && + vm.$options.propsData[key] === undefined && + vm._props[key] !== undefined + ) { + return vm._props[key] + } + // call factory function for non-Function types + // a value is Function if its prototype is function even across different execution context + return typeof def === 'function' && getType(prop.type) !== 'Function' + ? def.call(vm) + : def +} + +/** + * Use function string name to check built-in types, + * because a simple equality check will fail when running + * across different vms / iframes. + */ +function getType (fn) { + var match = fn && fn.toString().match(/^\s*function (\w+)/); + return match ? match[1] : '' +} + +function isSameType (a, b) { + return getType(a) === getType(b) +} + +function getTypeIndex (type, expectedTypes) { + if (!Array.isArray(expectedTypes)) { + return isSameType(expectedTypes, type) ? 0 : -1 + } + for (var i = 0, len = expectedTypes.length; i < len; i++) { + if (isSameType(expectedTypes[i], type)) { + return i + } + } + return -1 +} + +/* */ + +function handleError (err, vm, info) { + // Deactivate deps tracking while processing error handler to avoid possible infinite rendering. + // See: https://github.com/vuejs/vuex/issues/1505 + pushTarget(); + try { + if (vm) { + var cur = vm; + while ((cur = cur.$parent)) { + var hooks = cur.$options.errorCaptured; + if (hooks) { + for (var i = 0; i < hooks.length; i++) { + try { + var capture = hooks[i].call(cur, err, vm, info) === false; + if (capture) { return } + } catch (e) { + globalHandleError(e, cur, 'errorCaptured hook'); + } + } + } + } + } + globalHandleError(err, vm, info); + } finally { + popTarget(); + } +} + +function invokeWithErrorHandling ( + handler, + context, + args, + vm, + info +) { + var res; + try { + res = args ? handler.apply(context, args) : handler.call(context); + if (res && !res._isVue && isPromise(res) && !res._handled) { + res.catch(function (e) { return handleError(e, vm, info + " (Promise/async)"); }); + // issue #9511 + // avoid catch triggering multiple times when nested calls + res._handled = true; + } + } catch (e) { + handleError(e, vm, info); + } + return res +} + +function globalHandleError (err, vm, info) { + if (config.errorHandler) { + try { + return config.errorHandler.call(null, err, vm, info) + } catch (e) { + // if the user intentionally throws the original error in the handler, + // do not log it twice + if (e !== err) { + logError(e); + } + } + } + logError(err); +} + +function logError (err, vm, info) { + /* istanbul ignore else */ + if ((inBrowser || inWeex) && typeof console !== 'undefined') { + console.error(err); + } else { + throw err + } +} + +/* */ + +var isUsingMicroTask = false; + +var callbacks = []; +var pending = false; + +function flushCallbacks () { + pending = false; + var copies = callbacks.slice(0); + callbacks.length = 0; + for (var i = 0; i < copies.length; i++) { + copies[i](); + } +} + +// Here we have async deferring wrappers using microtasks. +// In 2.5 we used (macro) tasks (in combination with microtasks). +// However, it has subtle problems when state is changed right before repaint +// (e.g. #6813, out-in transitions). +// Also, using (macro) tasks in event handler would cause some weird behaviors +// that cannot be circumvented (e.g. #7109, #7153, #7546, #7834, #8109). +// So we now use microtasks everywhere, again. +// A major drawback of this tradeoff is that there are some scenarios +// where microtasks have too high a priority and fire in between supposedly +// sequential events (e.g. #4521, #6690, which have workarounds) +// or even between bubbling of the same event (#6566). +var timerFunc; + +// The nextTick behavior leverages the microtask queue, which can be accessed +// via either native Promise.then or MutationObserver. +// MutationObserver has wider support, however it is seriously bugged in +// UIWebView in iOS >= 9.3.3 when triggered in touch event handlers. It +// completely stops working after triggering a few times... so, if native +// Promise is available, we will use it: +/* istanbul ignore next, $flow-disable-line */ +if (typeof Promise !== 'undefined' && isNative(Promise)) { + var p = Promise.resolve(); + timerFunc = function () { + p.then(flushCallbacks); + // In problematic UIWebViews, Promise.then doesn't completely break, but + // it can get stuck in a weird state where callbacks are pushed into the + // microtask queue but the queue isn't being flushed, until the browser + // needs to do some other work, e.g. handle a timer. Therefore we can + // "force" the microtask queue to be flushed by adding an empty timer. + if (isIOS) { setTimeout(noop); } + }; + isUsingMicroTask = true; +} else if (!isIE && typeof MutationObserver !== 'undefined' && ( + isNative(MutationObserver) || + // PhantomJS and iOS 7.x + MutationObserver.toString() === '[object MutationObserverConstructor]' +)) { + // Use MutationObserver where native Promise is not available, + // e.g. PhantomJS, iOS7, Android 4.4 + // (#6466 MutationObserver is unreliable in IE11) + var counter = 1; + var observer = new MutationObserver(flushCallbacks); + var textNode = document.createTextNode(String(counter)); + observer.observe(textNode, { + characterData: true + }); + timerFunc = function () { + counter = (counter + 1) % 2; + textNode.data = String(counter); + }; + isUsingMicroTask = true; +} else if (typeof setImmediate !== 'undefined' && isNative(setImmediate)) { + // Fallback to setImmediate. + // Technically it leverages the (macro) task queue, + // but it is still a better choice than setTimeout. + timerFunc = function () { + setImmediate(flushCallbacks); + }; +} else { + // Fallback to setTimeout. + timerFunc = function () { + setTimeout(flushCallbacks, 0); + }; +} + +function nextTick (cb, ctx) { + var _resolve; + callbacks.push(function () { + if (cb) { + try { + cb.call(ctx); + } catch (e) { + handleError(e, ctx, 'nextTick'); + } + } else if (_resolve) { + _resolve(ctx); + } + }); + if (!pending) { + pending = true; + timerFunc(); + } + // $flow-disable-line + if (!cb && typeof Promise !== 'undefined') { + return new Promise(function (resolve) { + _resolve = resolve; + }) + } +} + +/* */ + +var seenObjects = new _Set(); + +/** + * Recursively traverse an object to evoke all converted + * getters, so that every nested property inside the object + * is collected as a "deep" dependency. + */ +function traverse (val) { + _traverse(val, seenObjects); + seenObjects.clear(); +} + +function _traverse (val, seen) { + var i, keys; + var isA = Array.isArray(val); + if ((!isA && !isObject(val)) || Object.isFrozen(val) || val instanceof VNode) { + return + } + if (val.__ob__) { + var depId = val.__ob__.dep.id; + if (seen.has(depId)) { + return + } + seen.add(depId); + } + if (isA) { + i = val.length; + while (i--) { _traverse(val[i], seen); } + } else { + keys = Object.keys(val); + i = keys.length; + while (i--) { _traverse(val[keys[i]], seen); } + } +} + +/* */ + +var normalizeEvent = cached(function (name) { + var passive = name.charAt(0) === '&'; + name = passive ? name.slice(1) : name; + var once$$1 = name.charAt(0) === '~'; // Prefixed last, checked first + name = once$$1 ? name.slice(1) : name; + var capture = name.charAt(0) === '!'; + name = capture ? name.slice(1) : name; + return { + name: name, + once: once$$1, + capture: capture, + passive: passive + } +}); + +function createFnInvoker (fns, vm) { + function invoker () { + var arguments$1 = arguments; + + var fns = invoker.fns; + if (Array.isArray(fns)) { + var cloned = fns.slice(); + for (var i = 0; i < cloned.length; i++) { + invokeWithErrorHandling(cloned[i], null, arguments$1, vm, "v-on handler"); + } + } else { + // return handler return value for single handlers + return invokeWithErrorHandling(fns, null, arguments, vm, "v-on handler") + } + } + invoker.fns = fns; + return invoker +} + +function updateListeners ( + on, + oldOn, + add, + remove$$1, + createOnceHandler, + vm +) { + var name, def$$1, cur, old, event; + for (name in on) { + def$$1 = cur = on[name]; + old = oldOn[name]; + event = normalizeEvent(name); + if (isUndef(cur)) ; else if (isUndef(old)) { + if (isUndef(cur.fns)) { + cur = on[name] = createFnInvoker(cur, vm); + } + if (isTrue(event.once)) { + cur = on[name] = createOnceHandler(event.name, cur, event.capture); + } + add(event.name, cur, event.capture, event.passive, event.params); + } else if (cur !== old) { + old.fns = cur; + on[name] = old; + } + } + for (name in oldOn) { + if (isUndef(on[name])) { + event = normalizeEvent(name); + remove$$1(event.name, oldOn[name], event.capture); + } + } +} + +/* */ + +function mergeVNodeHook (def, hookKey, hook) { + if (def instanceof VNode) { + def = def.data.hook || (def.data.hook = {}); + } + var invoker; + var oldHook = def[hookKey]; + + function wrappedHook () { + hook.apply(this, arguments); + // important: remove merged hook to ensure it's called only once + // and prevent memory leak + remove(invoker.fns, wrappedHook); + } + + if (isUndef(oldHook)) { + // no existing hook + invoker = createFnInvoker([wrappedHook]); + } else { + /* istanbul ignore if */ + if (isDef(oldHook.fns) && isTrue(oldHook.merged)) { + // already a merged invoker + invoker = oldHook; + invoker.fns.push(wrappedHook); + } else { + // existing plain hook + invoker = createFnInvoker([oldHook, wrappedHook]); + } + } + + invoker.merged = true; + def[hookKey] = invoker; +} + +/* */ + +function extractPropsFromVNodeData ( + data, + Ctor, + tag +) { + // we are only extracting raw values here. + // validation and default values are handled in the child + // component itself. + var propOptions = Ctor.options.props; + if (isUndef(propOptions)) { + return + } + var res = {}; + var attrs = data.attrs; + var props = data.props; + if (isDef(attrs) || isDef(props)) { + for (var key in propOptions) { + var altKey = hyphenate(key); + checkProp(res, props, key, altKey, true) || + checkProp(res, attrs, key, altKey, false); + } + } + return res +} + +function checkProp ( + res, + hash, + key, + altKey, + preserve +) { + if (isDef(hash)) { + if (hasOwn(hash, key)) { + res[key] = hash[key]; + if (!preserve) { + delete hash[key]; + } + return true + } else if (hasOwn(hash, altKey)) { + res[key] = hash[altKey]; + if (!preserve) { + delete hash[altKey]; + } + return true + } + } + return false +} + +/* */ + +// The template compiler attempts to minimize the need for normalization by +// statically analyzing the template at compile time. +// +// For plain HTML markup, normalization can be completely skipped because the +// generated render function is guaranteed to return Array. There are +// two cases where extra normalization is needed: + +// 1. When the children contains components - because a functional component +// may return an Array instead of a single root. In this case, just a simple +// normalization is needed - if any child is an Array, we flatten the whole +// thing with Array.prototype.concat. It is guaranteed to be only 1-level deep +// because functional components already normalize their own children. +function simpleNormalizeChildren (children) { + for (var i = 0; i < children.length; i++) { + if (Array.isArray(children[i])) { + return Array.prototype.concat.apply([], children) + } + } + return children +} + +// 2. When the children contains constructs that always generated nested Arrays, +// e.g.