From 66e91ded3420642baf177de63db8413656481025 Mon Sep 17 00:00:00 2001 From: Martin Donnelly Date: Thu, 28 May 2020 23:31:02 +0100 Subject: [PATCH] Initial commit --- .eslintrc.json | 62 + .gitignore | 4 + .idea/.gitignore | 5 + .idea/inspectionProfiles/Project_Default.xml | 6 + .idea/jsLibraryMappings.xml | 6 + .idea/jsLinters/eslint.xml | 6 + .idea/misc.xml | 6 + .idea/modules.xml | 8 + .idea/svelte-multiview.iml | 12 + README.md | 106 + ecosystem.config.js | 7 + icon.png | Bin 0 -> 37516 bytes package-lock.json | 4210 ++++++++++++++++++ package.json | 34 + public/browserconfig.xml | 9 + public/favicon.png | Bin 0 -> 25472 bytes public/global.css | 79 + public/img/android-chrome-192x192.png | Bin 0 -> 4009 bytes public/img/android-chrome-512x512.png | Bin 0 -> 9498 bytes public/img/apple-touch-icon.png | Bin 0 -> 3691 bytes public/img/favicon-16x16.png | Bin 0 -> 1298 bytes public/img/favicon-32x32.png | Bin 0 -> 1785 bytes public/img/favicon.ico | Bin 0 -> 15086 bytes public/img/mstile-150x150.png | Bin 0 -> 435 bytes public/img/safari-pinned-tab.svg | 1 + public/index.html | 36 + public/js/videojs.youtube.min.js | 544 +++ public/service-worker.js | 106 + public/site.webmanifest | 21 + rollup.config.js | 91 + server.js | 16 + src/App.svelte | 26 + src/components/Live.svelte | 73 + src/components/Twitch.svelte | 91 + src/components/Youtube.svelte | 96 + src/main.js | 32 + src/store/state.js | 24 + 37 files changed, 5717 insertions(+) create mode 100644 .eslintrc.json create mode 100644 .gitignore create mode 100644 .idea/.gitignore create mode 100644 .idea/inspectionProfiles/Project_Default.xml create mode 100644 .idea/jsLibraryMappings.xml create mode 100644 .idea/jsLinters/eslint.xml create mode 100644 .idea/misc.xml create mode 100644 .idea/modules.xml create mode 100644 .idea/svelte-multiview.iml create mode 100644 README.md create mode 100644 ecosystem.config.js create mode 100644 icon.png create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 public/browserconfig.xml create mode 100644 public/favicon.png create mode 100644 public/global.css create mode 100644 public/img/android-chrome-192x192.png create mode 100644 public/img/android-chrome-512x512.png create mode 100644 public/img/apple-touch-icon.png create mode 100644 public/img/favicon-16x16.png create mode 100644 public/img/favicon-32x32.png create mode 100644 public/img/favicon.ico create mode 100644 public/img/mstile-150x150.png create mode 100644 public/img/safari-pinned-tab.svg create mode 100644 public/index.html create mode 100644 public/js/videojs.youtube.min.js create mode 100644 public/service-worker.js create mode 100644 public/site.webmanifest create mode 100644 rollup.config.js create mode 100644 server.js create mode 100644 src/App.svelte create mode 100644 src/components/Live.svelte create mode 100644 src/components/Twitch.svelte create mode 100644 src/components/Youtube.svelte create mode 100644 src/main.js create mode 100644 src/store/state.js diff --git a/.eslintrc.json b/.eslintrc.json new file mode 100644 index 0000000..9ffdd44 --- /dev/null +++ b/.eslintrc.json @@ -0,0 +1,62 @@ +{ + "parserOptions": { + "ecmaVersion": 2019, + "sourceType": "module" + }, + "env": { + "es6": true, + "browser": true + }, + "plugins": [ + "svelte3" + ], + "overrides": [ + { + "files": [ + "**/*.svelte" + ], + "processor": "svelte3/svelte3" + } + ], + "rules": { + "arrow-spacing": "error", + "block-scoped-var": "error", + "block-spacing": "error", + "brace-style": ["error", "stroustrup", {}], + "camelcase": "error", + "comma-dangle": ["error", "never"], + "comma-spacing": ["error", { "before": false, "after": true }], + "comma-style": [1, "last"], + "consistent-this": [1, "_this"], + "curly": [1, "multi"], + "eol-last": 1, + "eqeqeq": 1, + "func-names": 1, + "indent": ["error", 2, { "SwitchCase": 1 }], + "lines-around-comment": ["error", { "beforeBlockComment": true, "allowArrayStart": true }], + "max-len": [1, 240, 2], // 2 spaces per tab, max 80 chars per line + "new-cap": 1, + "newline-before-return": "error", + "no-array-constructor": 1, + "no-inner-declarations": [1, "both"], + "no-mixed-spaces-and-tabs": 1, + "no-multi-spaces": 2, + "no-new-object": 1, + "no-shadow-restricted-names": 1, + "object-curly-spacing": ["error", "always"], + "padded-blocks": ["error", { "blocks": "never", "switches": "always" }], + "prefer-const": "error", + "prefer-template": "error", + "one-var": 0, + "quote-props": ["error", "always"], + "quotes": [1, "single"], + "radix": 1, + "semi": [1, "always"], + "space-before-blocks": [1, "always"], + "space-infix-ops": 1, + "vars-on-top": 1, + "no-multiple-empty-lines": ["error", { "max": 1, "maxEOF": 1 }], + "spaced-comment": ["error", "always", { "markers": ["/"] }] + } + +} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..da93220 --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +/node_modules/ +/public/build/ + +.DS_Store diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..b58b603 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,5 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml new file mode 100644 index 0000000..03d9549 --- /dev/null +++ b/.idea/inspectionProfiles/Project_Default.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/.idea/jsLibraryMappings.xml b/.idea/jsLibraryMappings.xml new file mode 100644 index 0000000..d23208f --- /dev/null +++ b/.idea/jsLibraryMappings.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/jsLinters/eslint.xml b/.idea/jsLinters/eslint.xml new file mode 100644 index 0000000..541945b --- /dev/null +++ b/.idea/jsLinters/eslint.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..28a804d --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..d832460 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/svelte-multiview.iml b/.idea/svelte-multiview.iml new file mode 100644 index 0000000..24643cc --- /dev/null +++ b/.idea/svelte-multiview.iml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..25b1041 --- /dev/null +++ b/README.md @@ -0,0 +1,106 @@ +*Looking for a shareable component template? Go here --> [sveltejs/component-template](https://github.com/sveltejs/component-template)* + +--- + +# Updates + +## 2020-04-17 + +Added [svelte-preprocess](https://www.npmjs.com/package/svelte-preprocess) preprocessor with support for: PostCSS, SCSS, Less, Stylus, Coffeescript, TypeScript and Pug. + +Added [rollup-plugin-node-builtins](https://www.npmjs.com/package/rollup-plugin-node-builtins) Allows the node builtins to be required/imported. Doing so gives the proper shims to support modules that were designed for Browserify, some modules require rollup-plugin-node-globals. + +Added [rollup-plugin-node-globals](https://www.npmjs.com/package/rollup-plugin-node-globals) Plugin to insert node globals including so code that works with browserify should work even if it uses process or buffers. + + +--- + +# svelte app + +This is a project template for [Svelte](https://svelte.dev) apps. It lives at https://github.com/sveltejs/template. + +To create a new project based on this template using [degit](https://github.com/Rich-Harris/degit): + +```bash +npx degit sveltejs/template svelte-app +cd svelte-app +``` + +*Note that you will need to have [Node.js](https://nodejs.org) installed.* + + +## Get started + +Install the dependencies... + +```bash +cd svelte-app +npm install +``` + +...then start [Rollup](https://rollupjs.org): + +```bash +npm run dev +``` + +Navigate to [localhost:5000](http://localhost:5000). You should see your app running. Edit a component file in `src`, save it, and reload the page to see your changes. + +By default, the server will only respond to requests from localhost. To allow connections from other computers, edit the `sirv` commands in package.json to include the option `--host 0.0.0.0`. + + +## Building and running in production mode + +To create an optimised version of the app: + +```bash +npm run build +``` + +You can run the newly built app with `npm run start`. This uses [sirv](https://github.com/lukeed/sirv), which is included in your package.json's `dependencies` so that the app will work when you deploy to platforms like [Heroku](https://heroku.com). + + +## Single-page app mode + +By default, sirv will only respond to requests that match files in `public`. This is to maximise compatibility with static fileservers, allowing you to deploy your app anywhere. + +If you're building a single-page app (SPA) with multiple routes, sirv needs to be able to respond to requests for *any* path. You can make it so by editing the `"start"` command in package.json: + +```js +"start": "sirv public --single" +``` + + +## Deploying to the web + +### With [now](https://zeit.co/now) + +Install `now` if you haven't already: + +```bash +npm install -g now +``` + +Then, from within your project folder: + +```bash +cd public +now deploy --name my-project +``` + +As an alternative, use the [Now desktop client](https://zeit.co/download) and simply drag the unzipped project folder to the taskbar icon. + +### With [surge](https://surge.sh/) + +Install `surge` if you haven't already: + +```bash +npm install -g surge +``` + +Then, from within your project folder: + +```bash +npm run build +surge public my-project.surge.sh +``` diff --git a/ecosystem.config.js b/ecosystem.config.js new file mode 100644 index 0000000..ae2f0f1 --- /dev/null +++ b/ecosystem.config.js @@ -0,0 +1,7 @@ +module.exports = { + 'apps' : [{ + 'name': 'Multiview', + 'script': './server.js', + 'watch': './server.js' + }] +}; diff --git a/icon.png b/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..ccf3623f8320710bda0dc21d09d2fdcb36d337ac GIT binary patch literal 37516 zcmd41WmH_zwl!F|yIXK~cMTBS-5r7xAUK6Pfdmf(4Z+w(4gdfTJA?_} zjh#QobxICj-X5-j&m_k;Pd3dlMyh3MMWgyidp_eAN`Z=MWXJT8iRG7T&`+Qs9D5eUQ5~gcA`)!Pv@_Rr2bPc{uYw--N zceY@^79|d(PZ8~YXe5s*%9w*v z4n-`#Oud%?xlF#?fgvT)x7Ah>b7t-RcQ-)^Z_cvZ9-F2h@iA`)ykCY69`nOk|E_-S zH=0J57=3a|3u*LTF*#_cmrDLDPHpChyEf3*LSb-Op34?I5z0i)YL* zQ>iG`H$3L|7Y> zw7r=9tjl;l=_GTw2X?xjYqC2w`#_})rksv?YSyKf&Ty)P*1}DJ#7Y*w^CD8;+`EX% zQy3;zM1E|UOs96Jlb7M+O$>)S98+*!*G#JI_*LqV+)*>^Q|;bJEt%13yXo@%=*42_ zd{Bn~({M7VeawE0dh5vD8^)bGf#J$%%AyZn?vHWnsecKM1BF4qU46Gs^ZYtGjl(2>-}lq`x8#U% z;GTTAZr%DWdPs*j`P$bWZ~dx^vsupo_2G<;GQOPn?(E>rZ#eSbbB$j%TZe`M1uQ$c z2T7$`%WBNxist#*5fLxPd|mApLOpt26@P>48uE@#&_)*z*MFmiJSB(R9RwaGyce#S z{D=m!aDg`zH+Jw{a>w{g&5mVzV3w@WS79i+go;C4&Kf#Jh~v&@yAYZ&Ux+emc#s$_ z&n1v`mSDM$`Acu2*cnS@?|yOdVAZ~1QRMyKmafx=@JXVsM5BzucU|@-8*}dKU7*SD zCb|%bF0Z#qbRRyOd~ofQOLm;E;i?zvNhILl5B@aF;?uk{;TYW`Re$=X0RgI}g|UoS z&0=b(O7n)G$c-vnZQ$Fx<5u_JuSD>)yziw|HmOwYj|{FFHU+&h84o4`eE&Lyv;YJ^ilnY}xt{@;5saYsAiaeF8m{0u^y#_&hoS6yd*6wtX6yNP^pk`yKH} zri7woZe*)C9zY#(Atg7f*j#$4)7SQEMb1>Qj;6w|Pxjsj7md4`!K+ z%h=psxe!_XYtH!b7I#)ik@;%$NXUyczSf8@FMC`3 z3k+{V8+xMR*d2x+tnRcBz>};|?%Hy2>27s*`VQjKW11H=9om`t^*4b-=Zux$AKJ^p z%joPR@W$uaQ4{KOW3IGhs9B#f&ZvW?jY)ZhhegC2^w zs;ST3h9NFbzpJO{61LTfqg7|=`u9!Ro!$DAx0AC8j`U^}T|nOq*j6Vklse6?gO0YR z&0L#Fm2|(3Amm*Ei2N>*QDs@iOaDjDH{{A1< z&6meu$0i#s3exv<=dRV;myF=wJzFH~nYAvmKX{OO#tYCLe%Fldej2!yoB5{OXJ8+g z#2emD^FoJNM+!&>*h#+3ZPYe>o3S>^>uo2`tZwP4Jy;A+)^s%W`b`+cBL02v2OQjx zfg%?zzMX;1N7+GJuc=X^LIgJw)hKLu6%6Z@u<=SBYGgFH!QCH^*NvfzF2=!X|4a&1 zXINsGBvfqNXiAaHj%`%N&1!(AUZDMV;Y~j28GcZ>?U#Tr)c2s zt=m8Ir!Mc_El)_aCJo_kgvtDNJBxg>BynU-u?wnIQUuZyJO2`((S z<^hjWq6GEy{d1YJYZ-+&k~{^@1qT_HFUWEp*!%xI|2MNENQVc>_48HeJ2TCsZIBw@ zWf;%p5cJ^m_(3rV{#y7Dym)Vf9BQ5BeT}?+uz4JUkukFrwwQ<8O~3;_k`KK89P zQ>-uGLis5oU5dEFzFzQm(?T6?m}RAuU4(=BE=IY{Ln@XI8|nQD$_^dA3FY@Qf0C2F zFEn+AB!oVowMVJox@a$1{~j*hE-f(aaTtZ|U`qMzFb4tePfJKE0Zn|=eaa=(;^mji zQJ&LtG+83|D6uP6G>s-}*8FT#a$$!koN1R2xDGClfFUEfB`JqT6Wh#ne#gRs@epJL zO8(ZvlQ2(BKEN({9j#_7~_K9BQx!$ zMkf?m6VX)a31(P8?g{$ z`pb(x0FPjC%I#AG#ovnx`X?zT+u*K-D6^@R^?pCsfS(|^$>o-v&Mi~v_P0thH((Gd z=p^-%q_3IHp+9q{3H)aMKLZ?|qcb)<9BvP^A2@Ke}~GMXZ@ z@4(E|$!=1)5+;4+C;q<*LQ6@u9#@7FBUe}Q66sL7`PAP84+rS`WdC+{9A!v+5Y)wH zw7+n#@G(18|KXWHaarV)mzfTC2pvTJQitCl_Mm0qcq3nZA0tip zP9b4$pN>XIgGWH_hwao!6NzGBJiB2WI&*-yF?hN~IMzQ#f2oC5Ej6dNqz`{mE`I(| zrCHgxA&N=m@aCxML za9Vt+V zCuG5ub=vR8_57Z1+ z@4a}ke=KH>QUU}sG?QaLgs4m$vZ8+`G`S*@?fCA@J?I5++Hs&Un^5s{WpW)McS+jI>1pygWGJUMgPnC^SaqCPL zX&J3dgLOuKd1`2Kh6!8m(kQvv=Hex&VxA}7Fw>y_pj&ne7Y$_8`35roN2SHdwem&% zy;tlXN}}AM86pC zyh*@ zFX78aCVo>2rxV8ZIEPE_d}&Ib$p}Khi(p3lIm51jrr?TRHIvnXIX)Cc_cxzh zqpF5j9P|UjU(K)PBxAVQvl#~A>1?XwsYTLB6>R|(TZlHyU&bO%bPpE3>**5JjtKQ@ zrF=$PF5+F^%3InbK_r?Q*5hi@h^J?hX|=)GjgKz6Lpag;B>iponQW7Qw2-6aaOCj* zDiZn;^8$7v8z>&(+%frSd*5LW{&DapngmYxX99U1@##db=}+5^s_xR(_|rFJZB*nk z>6=Z+xg7?DUAV%1n3VgMN#yEpRDN}m7qMi^Mop~**$B*}>T?wZziFji%jekdM#D9@ zN3yUfH7;dD2>LY}Yd<8)T~tIT94W^Y>bXB27}jEr%6y1V=~(9)z2*0u;5=tOG#}LD zglb96)mdu(u0R+kUb3i|eHN~o@sz--q^7BeLX1`+fbK>sbYgnm3q5h=3PGDYAbMyg zUv9dfbCqrABb&kRW1mey%T6(+DUOS}a>bRmOZxKSM`Cq0@YIQ8EZ;KZZ`7B$)3_(g z+lg(y*i2o?Ys*l>d!+|l!_u;hXX8xydi0ghOCCn9Z;)Wmu*IoA z_^#uwn*|8}7^Hv67}xn14a6|!9-9qsw{pzZ!Ex@@($JTc-r#366I_MEZs9aYF~ zp;YT7gMNNNe*CBPIPWtrveL3K{TI`~^>y$=%8ftxHxZypq}0ZSE{4sS)@7K}OWw~p z16_<+hICn9>Ie0w{(nEJ&l?%*BtGf0?)ERy@9A2{Dnw(Id&;Oe?{H=l!80sI@k=)C zgKRi&`-VHCTn-L;`9uX(ukh0yZMs5TgGsH@s&#!gR>iY(XW$5*M82wR3;t>#wPq|B zNt3=#!fQC7fb21tT!v153vniYuk_>}H~8fz@AS+YvnY}i$8#HNJW{%o`TYXfqxwpQ z9iG@i1A8Z2bdI%cf4RU5JkZB|JKx+ft=xvw>>#`Sfh7tR5UqCN4uS2iTgntfAAL6n zGt7m2?9G!0+VhSP&l=G2VDf$*9AV`69Q^^;DvW^g6JVOFcy}jmZ?_U`Kq-J8jD$G3 zrRB-u%cs+W*2^?&t#91yI2w}~)->pnJ%b*M#S|bRTR(kLB0$up0XD7Ii5ssdrPWT~ z1kOR3A3aFMQ%+Z_hvQ!)Lm2i1rBS17WD~25Xt^D$*&KcH!g=YhVy*`wR|-sRH+9=bW`%5eM;@gI z}C=RhFmzUVw}(X8zm@0O!Bu;XD}x!F^t+|ydu zBD|=;UCUV#x|+WPw&y-;V|Jtks?tLAAdEzDy?0eiiW9tJAY!sTPEe@oQdxyc$#ilH zS>X`w3**-f9|yhXWCywEnj=7KZ*Mm;Zonc^7sG=Unz?ej^pERFU+Qz_s#VkqMMQl; z6iH9%+p)>Hp(3-UuPY3{^2tZuVuoeO1>?6PUE;kzly95oFGH=}DG#42Ylp1(dW z`I}LjZhD4Y5HE{mul-$nA3H36KV{PR{y}Bi;(CsU;>VYayMgv?evLmoICu<>xrO%dMYI>eT1W=)8Jn5Xb|{3y6Kpc;Oajg#4+~mY|C$<6rX$z% zyc4x!KR!4`zn`j5#!OBY9{C<2jCi=Xx87zW7waS2b7%ZX6idiZdUNQL2szUR#~$s( zr~chu2(h1gtg?Q&8*FQ;Nbh;@jgDsx=^o(J$|_;|plKCc9cFvZ8GqgGOS*1wkw2EL zvanG7-P_XMrc$cI?gI{#F<7~%_&=t<6UY*u=P-k01lC2&MP=b+Xe)_IKUd{Q*w{lj$x6`VL$^0jtlVat*E8gCt4Nm`djO5WW?XK7$JA3R zsuZ+IA4~AxH)oemyde3?R5^Y1r$0Ot{U*RCNLOD87m{tb z@8f_ggsZI6;aJ6SB_m;Ow9?_BgQ|*|%_sx!r1kveQeLj`t-yEZfyuy4U+j)?53|UR z>1hTeb}xw4)CK&I0U4h4q+1OuhQ*Nul%Eb71Z~ls5twDjWD`Aq_Xo2jW_aSgWQG66 zjrwd8qSg(VQa-z9l^+jt;SZXB$q{xwDs9W%<`_t<<+ptpLyky)ck+YjR!m56DnP-& zsxTjtMe`W#v0qxvXw6luJGDUc89*38ABeL5C@`}wGH80qJWG;E7eMYi#5^f5b~k9{ z`_ayRC~T!Vzf7tG=Y1ver}l5x7=~|l#SRWotdQ|^in)~-Sa0Vj6q~%?awBP^T%IYN zqcW{T<6qQ&)JvDI`YJrpxUjH0Fv_X=PuHO&su8Sb$3?~^T$9dg!?aQz-Yzj4sxd); z2)CDTy^?y0Qh+qsFQ`ZzkN;^~Byo7+TE2o&(1lo>L0pd#8&Ofj^_%m>K8vMZgyPih zm2H(jO42wR$aTA7pT@}I8gaocw%sZCgJJ$RQ>#Xi^0z^IHca6>)$JJ%f#N444B;y9D5@jJ#T9%@Umj2gk!5TApf&$-F1y+u1(~#bn5dU-V5lriaP>$qwucs1kE@cUurMmdCf)2U(>3St4*W(UqUI<09X%mghlZ z@gwUMzLWDJ510S_HumH3$4{?$!w>m(+`o3d-{+K(%e$@k?rvJz&j}%Sz+e;_(lU2YFAdV{C4FWY>mIi1g9ZM}iKh$nEGVg+0PaZkXm! zC?Ue;Y*qFbDe`KM&Aa>2-O&~H5TkDLW?n&>>k`sS+f(v@P^+ZMntr-|63BO=j5S@% z1jdSc((Q5`0wtOsiQ*sd+vOL_N=hk|!qO_t5+1oZP>Q$uA&4tVs;mT<$7I8NLq|ez z#?sFX=jt+_A&%vlxc2N4y|@w?M6-)t1VLPij>)r^bX3g@2evH#YvZ=u zsK=Z!$8|GFJx*o3YT>jq4dYEEtjWsLpZC=J@VDVC9=-0xu2u1BzH=|Uh`k%?`CBI? zOhzrHY20dCqy1H%7_nFNDRpFfdhX^u?m}-Uf;@KiI~+=p(}5PE7|sK2SBU}QMDmPN zf0PGPIPu{Jj&`y=+!R}gd~L#!O7(Y?B&lOA81*#}Z0XO@)t$+ckSw{biv$@|3yBa_ zjAGF|)oA3A7SUu~5d*;`o#4I{JZewee|SAxC0~6Pk?F#T<90FAWZ5S4PqHe~{x$35 zK8Si!Q0rmsy%`TOvX>iW4XI!#bS5owO`Z}J$&|*iQc;^~XXSw((*E`x{Ydq^|DzL) zS4^a;mbqq)R3R&FDH2ZVmx@`U{%U;$W?NMbpjV;KUEu`T5_~dk!*tKl*wgo>EoDw) z7S`y1NmHH8I$G-i<>eJ?!l*YjdR(PAo>fkmnZ zl@fLX*Q_QkYo3Rzm2sKaA-O zUw+77ea>h_Z`cKctLU^Volmx(=q=mvTPo*6YqjHRzvaGDG`-Wxd861}my1YpNmihRHSYdYBSwh6_cotk6sk9%Lm~jG%$5ecXMsnsi71`l}=`j*Dh_Q5t zW0g{$;AdGF@jJfY5!8NwGV*Fs6(c|8E{u@A4Tv~huk3aC9j?9j5UHn(%w!vlBjv<+ z&?n=)fKG$=MgJy>n2VB>F=D@j*6IV1^FS19)~(aqg+?bd34CZxm}J$=;Ic**oZnoU z%8j~J%#k=E+71c4UIVs+UX`Q-Z8~GCXwcQyW|w{yv0&Ul%=_>L8xu(tX(Hh1=WS%)NcHf=INz$e24&I-LmdVjKNLkGFs$SeQ z^Y#ZhvJES>N9;MT>bhO5=>>!>)4S?1{6%MT1m~ZJ;k47VF7zRhl04XW1*FQa4FIUD z*WO1shAbctq#U#&;77zyvZdQ@Dm|9qHoQok#HcD{bkM`Y>7cnA*_Y$v>l_B;J;h+~ zM2s1xQ7tiQMTVNL=qd$%@najpC#pcjccx^NH_8yDS-UNnRTaRIr^l3HScS_zF+|ejIU9G9K{E7?)+^<=lDWs&x|74F-Kf@2&M;i}pYaY- zVrhi0mu&D#Hxmn5<0#xgq6UN)7R%s7b`bt}+>-t62142lwJE`a>3lMriE_dRFJ700 zHd;wi30XufYG>S|qf|7(T9sOn@G(7F09#G@6gb5!3?ZTwO(EBGeg@Kfxvt2Inr(tL z(_?Ob)5F*pyP6lm64tG$Orb!7-&)RV@Sb*FI||(PuKO@a_a{7l_`NmuB^HOf`)_H7 z1T_WG6kJI~xUk|t-8~YdB0Ng%L1TE#_J7kl9#-V>Lcd~GJ%fS;FcO`!8lB_uDtM{- zlRLRrV_E%t7UfwlX9fW@tG3EY5i5Tg@XiYb$b_Yt#rP^SB}Fx`+W!<1eUBngEz$t7 zYA@W;n0PZ*5;`{?#ql$ik>thw&Y8jn`i}B8!rS1m`pG2=8eh*tQ_FP9)(QE)Wz1;< zVwt4;d5BBR%blCX{r^>~^%m%4jvLYaEGW#*jTOQ->%xZ=CsUGqJ}<(#1)1E&tj#Tr zJz?!TrH@fTcA9@zqp)^S8#t>-VQ&1H$5wvs6Bmtnm{@LYrF;_lVAc3TY%~>P>?Z)5 z$jDXEsoXVh?xT8dF}L5eCElEVb~DzR@#?>maH+G(U6Od@!WyStwxug zRZbU-%*hM_@1KL@f)XrwClvtmZ%>=zzx=|X#$J3aBc3PY^*1W=am1%<5auQ2RlWAO zF*QP=Si^n?fDnT$Enk)lfZG=7v%1?U>bTX$%o|=p#E7b~;YGI+Cm~Oa3~8)t#*L8X z?Vn$5G&hmQ-%{>JAY0N_Qiyec0P)p&v&>Omv5vN7y4~fcdLHV?2-;B6FCwgWF5LJ_ z=BD_+m_AEZ{jC`Is%@kY!m#dQh=Xj62aJ)$gP?PSFI>8@k;@IYHOUaDIOh~|nejTS zk>mE~?No1*&$}}&vVU|t8*abCQpzE}_>h|_p-<%KqVJ2xSWM{d0cYY@t(N5Zo`6sK zf-y=5Ux+N1+}oY_h*pBdJUFK6jZVo^zVok5HXJP4*oih*FB0y%MNLO}EVe*@`?5Bn zW%O5q)03%u`b{MQpd|=rszUuSoXSjaWvyBacY{wJlNJT)Q`!!H-6i(E=LeQ*IW;pw zv;0uh^G;G&@1%Bsp~%meutFLEpHh=SH9OgoU*B#f60iv+j5*VWSVy^}L?U!B2gq~H zsOS@a;s0*DYs*~wk*fI)w~}Y z!;7X#u!;Q)R~RX&X%}Xy@yN3KR8j|U66ZmSVCRge!%3MSQgYbBpW!o!^h5 zzz^jUy}tYI=wr+?<)Gnd;@-Or5yYjYg;=o+4gY%Mvuo{+zh5LIdHxdTSrmpojCE`^ z+JrY%c5{noTvG`vBz-7H{OhhDYqMXSAEyeJ%nQVJnyI+iwQp8-r5Otm&3hUol+Szd zyHrCMhTDGI{?c;zh;)A@ZT*Dw{!ADWbwthLW|18e)o0y@Jar7^)Bwi52a)7W4WXwm z(A+*ub79>Y_Br#o+tZLvmj01@Urw#mgS(4o2U^{FS+@LXF!G09O@mztP}CC37XB&F zC^axIYn7n#{qanIKT4_jyieA4Zj?zWm;Quf>amiDD>0Wr6`$}j+Ham6LD z%`YvsPIl$E@VUDEt)_E%sL=4-1i819l@3VWV#>s5!EWK&2bY(jH}B^+KkK)&2~`9G zA_B9A>*2`I*g%Z%Xmk2MDaO02h5w-usRRWV-lm)rB%Cm{_4fI{t)q9_Gk>(?T3wRNd;t&;>cV(TPZ$C++)i8uQ?K~z!c?|25gM@h4f z|0Fv@H6+6jYicR8E`GW7J&9r`AjOn!3|A&wm*{Af$PQ;y)FSUMWU6EwHD$A}o2;-c z(}0l8V?-;ojy0J@g+HMZMLVP{6gZsA9URD1T9=SlEkGC~eBNvR z(zDKOiE%frf>)g9udT;7yuFMrH^_kVv3{pa5!k11Dxhj0u0-9OAcyo3eXjf;g6icd z-30ynWN+5D$=J3U`T#M@Flph%mIxY*DIPe+tQY|+1Gu=+?lVj_3bqYxqSWjk?=(;0 zQjChXy(DPAbI54YEB`KQsX5MjOD0_R#`>&oUb@94QDTTs^K)*tRbBQwGGXB)a$ivmy+)pd29}$`fu~Hr!4|}&H+mkcaoT0_gwweJG<7e-SOWF(nHED09 z;r!3|*0H}%MWZFJwAXP;c?0{0YXIHPbC-t+q%K@z14jop^Q87K=WkK7DTBOC6CQPL zOwETJ#h2?15%eUh>Hfhfp*(|zAOq6{)-=*sM(oE@m0O)D&E0`j+eI9!aBT$}Us&_s zj7~xm5DHYR8gD30xSLw7JxbUhoeoLBZeO?qplpb2}1nuRE6po!0=UJw=OS# zG~4*Q$Cz~StKQZMb1fyFuCFNwt)+4xR1N>TU?vR=UL8yE)`;gyKWwW8^Ja0}b-m33 zP0=xls=;`OZXH#Bbm4kY=r<+)g+NGq+K5@@u9vlCKe?bzdC3~zETig(!8+b%HM5G> zsAO0ZM?XbecCAcGZV20xmg#=RwohCImT+c+FxKz4ZZn+flf$~xF#%uXa&$p9b8|d5 zzd4p8uLjsV%0t|uLf30lI{B-jqyTELmoelPlrldqs9jP!8~s7)$63u>HVy?eyD(>C z);nkUMZU8s6#X8JW@m3^wG)BA@NT{xNeM4V@SZ3&q@Lb@Q&k!6ek?u=Yg_uVT!>BE z9-f?E|K^4=>G{tuhgr0!AZwzlZxk|0BO@$sT8)*w0QNw-c=MA0!oK`ttUSP$HVA9S z?t`SMUMtxc2JV~gyD2M<#et8KWmpK1Tj6)%h2U;G%%fTU!I!lvaUtulWT*hH1 zV(L!o%p(^vvs7``5$DEAZlhVni&Z;&8(Uf83I5G*>vg0i#yUza=U)&`-?9X8mZ7W8 zIF*mT`}TEE{*1i~Cx7M#d`sZ*C^Dk_gR4U6L6g1~^+hh`zi-6_^lX3nzjOtU%IgQ3<@ZPQhoVqsgT2{+gUy%0ZCPXFZC7W<@yefWY=tEYRHBdU0+`QfUcF71yneEAj|NE&{)dWg!8N$w zcc?^*YA{^)^g3gEgPOCYtG@PtG<_v69Ve>q-bmMd8d*Rb&d0s38Gv?-#O^lEDZcm%Wsva_)~aLuO8-G zHV=H>sBGp=Fwle}NL&15kT%bmJ>Mm>ETSG4S2-~LnI6_MN~s9f0wJuC6_RzwRxaQs zXBzy4HY=gMCH?_H**hD>ZP}yCTjq*)g3SG*$Fh~x&f`p1(uN1C4lMNt4z?g7xV5=@a=X+^_hTB*mOCbQ}wks*fWSA zUUqrs`FDM=#bTmT#bxNK(?yof_+-I3y?Z|aouKhCN5r=2Ej*Ndc2$mDI;!hY>zZ^~ z>sQLM^o>@uaR3Mks3ZPM4?heS1OULLynp*vOZn~F|NBK-0D$Fl$med=0WHEIP2EHV zHtd81pWj+kgApuok%{^oa?x7sM!q}&FZf>s7+ASJMY#0K`dqopNXz*6dJ-YZ;>lBj zF~BC@2cN&lBsNR=uUl%IOLqCap~1*oe!@-5u~$>o zLFZh$M}Y6z9O*DT>G@H`pVdZ+iyMEKZM{0k_%~jCZ97W6gl8Z-FzV9h(|y_(_y&&lP4Uia6LoQpemvY0PTIRIRj3?j zE>V&jLKYycPmM)IB6>2grq|GC9+LaoiJ$J~T>!WAu2^*F)<%FokuPAZ7U97ZJh{x4 zloFtU_W`?GWNL(FrUzrb@)OAWRHTJ~<^j{}3>GJU_3Wbj4vbs4R(L)>ycisZpu+U(_5rr!P{b z7`pZR41JeAR6adklkv@&eybD<$-fUN5G%_AzDbddV;U8$K0n@mD3a*i+*$Qs`@oTk zvWegUfMmy_iM=g0ZmcI1`A2d&&2hP#z2;3Y1NRQI4=do`92tI%r-TR@74j_lr^vaC zp|7C=f$iqo|4!pFpYCF$1XhcMd}WYt-SBYH0rFZI0Cp`=)$c8u_P%UU@BrEV6T&3K1_40jNo7 zTA!H&!2`RM@xAy9>ItzqoyT zs+8@RqFL+x$f@C2Cg#~4-dmS~mg}aNr4A>9@v?m8wcF;gcx)^6+;+8ghc!)>(w~?% zxvC4doUK4%n}TE|f!0xd9d`u_H-6#`kL{o%L)TW=gOPU??Q**X7^5L^V; znzKN{(7NaMu40av_a15KJsWDCCuNq%gzLzSljH?EQ8RUOet1^h)$I-$eJKx1tisK7 zkoM-etOs3jmI{2J&@w!oSAX1i7+LniPpskF!Cs3(y(&(Nq27fT!cnYd1YDq{F|gY$ z@NA1BcHMKZ_t?^f4WNt*q~HUpAvE0OJkGfuXm%?pGI)jEh|~+}*VZvZ)G>csJ3wlC z6YWr1)o(6lqD11tN-VbAZ^+OA_+KA|E0G^2!6(RgSbR{$5k&@R&^=8xlhf5bt|tqK zMDY1z*qshdPH(}nQH`@nYIqHNSd;@~(I1iwkNY`cqBo}zNX`evMN!6kyY*=t)MlS+ zQ3;0*NIl&0IjD01=wv;P&_Y`6An1Tq6Y%bDFg+18^~t9Z0T2L@;)f>m3TpgdhFKh} zm}O;+S(n0dQdw&;x#`i7H*9ode_=yfI`cD|0*~{b@p4 z<7!DEtkn_H8U#@S>t;L#;r?v}fm^U;uHj7sAdntSH&Zy61HlKDZD({|IlU;>ZY0x| ze+yDyEel?GoVWn?9)$}Yt4<4QCoJ=O`Jh6a&uzJfnusrJ5C9AnCNPCDaUyIaz$hV9gbyko5B03a=ea@#T!V9`!S8REohX~wUU|O;Q(TlG6s4;~ zkMtSj16lr3XCmQl3I6xK5G2jp)l%6%2@_k9^<$tV4nWl_!%9P2QS)uP75@zd&h@fW zUXnD-V``05`fBdyagc{~ZhX!ETvY)_Q|0tZKr@Fd@8OkxJdAvPWYz&!4PP@D{+Eln z00Qg!a>Il==?LkGU`~OHjpKe*;x#zq(R870 z|MA_$;}W_%0m=VZI$6eqo;l?u3cNzGNG-{QGd9129nJ_LFo6F@GO=W&6_mIk2i()W z_E-0LaOhQouZq0N2O@^MwG;i$WS5#pRX|ek4h``h1S^O882OEMO4erm^Xq8QY>U`a+|0kYh3$|~QIeIPD ze5qur_O$~b#QqQy6q>GA^1%7PxEHbZ|7HLT8mo-BTvXbBfzjGQ{%M5uJb&Epy#}9M zfj3%7c={0m$$ZW*pn(uUP7JKfp0N_xH4xaBGfePR(zIue_A+jcNPWv$kK>?w!yLR8 zeue2 z@#&Tx68l~c)ukXH(+(B_MhLAQ+}`8b;p5WA4^#~>jLY-KciIc+EC8On*Bf5W+MGnR z$O9mYfe=Mu1ZPpy)I*Q5Ll1m!?l2RVvEQJ&29Hc5x?gDz^wZJ;S2*h+LmFITC@fEE z52=R~YT;@TtYGUOKmJ5gbSk`&(ts`18VKnW^aTC29KkPN>V=uydt^Sg05A=|){vCG z-%do^Ok>|+PTj%q^}jM09tWh!2P%z2ku6~bsQ`D{k^~SVCPOzZeK#RJ*x$$r%LZVO z1QhlBLk>nY|Ip{xFcmx|GCjl2S4jfxAv*?bHow7Zo1he$b}SECng9rALa%8Up^m=1 zKLvv+73Kb8Z0_Sypql^58nHd3xpNXZB9~=adT`8uX&IYH`&A7c6P8r~WL+d!1Pl-A zRAfLQon$}R_a=HXoJ}fW#xpyxLtj_E%6NI9q)7fenWen{xR&d-S!~oaFb`A~+R!&`)oDobL5W zO~=9w^`x*m*isR!;go>dZD67XK$P3x$nBOu;qd>%Yer7hCDr;EsBI2J4UrOEv_!!5 zf%z*fGHof0*r*G38v_%-2t<#smwGLyg8``7X4~J`1j66u1KIO|_7nn&LefTKpcE-k zoi~?S_X{4@bBhE}RT9{?M1)Rk03b)t)eKKNr0zPbI|9~VeYpnL+=6{+tz=|tB!J?Q zP+WvHPcHa$Sl!ZRD7P)a4@;@#oR-GR?;Y%|@LGfEc@d;}pb&Nqrf-!0ij|~?cF75` zA5qWm&B%v!y~Qd3?Q1%tO`$hb!Q;mC(N0S%OLy5Yq8qT@cv#p7t2VS5 zFM?W%uR(vo8k@{~Awq24tb>ue`}mFrizf^{%*)tFF&}uDsg(HFlIYPT%=PDl^d!sy z>1+s<6)czqi`A(nLdp6>fHuAWUHDiDXuSl~-; z4_eBGK~G`17m^Pwc7Xd0^20M6mw+}-F9B9uacQQvGf|Fgtcm`oM zdSyko8)1_|>JUt<9QnY>i~0<>u(B^b63_<;ApNXIktwWD(SUGF!GZ)de_)c9E((M& zMeNsl!+lD{dd&zgSedlp+VLuEmIT!?51#EkR*`R)xWG)VfHbGNVcl%)0(NTViH3E0 zOJmyd*H*CSnwnyg1oXEgbZ-LIygf<}xvxCLp8dX(2JbzNXx$m&&ZNUS#Fh@MT5byw z_?J1e2wj71uU-ofW~R_K1I24rm_KK z(_3?Kjk#g%85j>tWz>Py_5eunEnC=@bFu_fJ`l2_2cX=8E#lEDLv#FECI_XfVT=Jy z{ULaIupyHhHkQFY`9SoiHVLRt!0Q8M{Q3bf+`3{iir*fW2owS!bpLu_%QXi=@LtES zahR6IL53^R?_cfeoIS=G!8y^vG8~rrXbAR0u>Qmdslb4R>!Ra~6%UHb1{+3TF8ZV< ziM_`C8myqyUjwrS%PD<;vpwhV(0Of^u-&NL-dJN;_w~?4>T@+gheZSQcPomK?ka^2`I1-5m)Q;`d=>#^jYw+3#2&V`>OahiQN7M`h6X28hVhJFg z0$|$^hML&|9QoS0?=4{l3#u`d^Lxi2?=fB7UdN=iZg?2?Z4bh}UTVpG7 zduv>80W91=Ga|sdeAw`GN6rw*^1PP!xU>SZ!+NwNiv}B&29aBHti<&>wH03P@j(Q@ z7Pyty&hL%;*~mC8-I5O!Aqv}h4=Z4%(_sC(Hjl9C+n*A^jF-9BjMofVk^YVjo6a{4Oce6#!Qi=>BWC_h~w=ez2;eH^U^^JNY^o-CcnPDgf8|7m>rU|r9R4Tg420~}fPItKD7eSTnOdd@nmYXq)#`h8>5GJ<&}ok0W>UeG8^ zSfj6OWIa^D8l$H17Ir!OHjIL|T69;MBQ!^bu&F#zhy)hmiduj_9&itqF>~y&^%)_` z7hANiehU}^E??Vx)&sL!YBkvKl}~)w1C;>1xZKw?T8;dVhs{WE)(QV5Q4S$2`DsbU zzk)HsLZRg#<^-6zY-&=M9Z?;NvrFlbhByfqFj5Avs+_i!qJO?L_kuQyQ38uO= zf{w7q(KIcDnw9lF1$1A{S-u2+R6!er|BXXTYG%3YS)Ye*Ei}aCFs6d2ZU<@MyW4?^ zQf%6GnLEym-6E(P@}G)bMMfgoyS^C&dOF43c2E+cZ>lE0L2fiUX9i4m`#pqkjTDa2 zH57T^wCT>DuSUb4#KzF1d6DS!<}@$$ob7iHq!6KRjzgrLK1_zxEcJ3)musO4{B{!s z@VpHmez^_c`_{3V(|)BVv*cfIqqs%Lx`=xED6$tD^BaY98(A05s3kL)lCC_k0QGh))A8(Av=}yB2vJx# z+@b_130ppwV4VXH-vHbH`Ao_uhWLNnE&AX0k^YZY@aTvC+>w4G|J>N~U5Yb;Y3Xy3 zWvr}#IE}AJ^{Cih)5^n|H{jBVw^ESI2;+FIIJzHik+?4j`3^ah(mSYesOQ^sKlwK* zJb8&6ij^TWG2-GQ*-_f9rG5m$zaHZf+lE83ABqsl5U5~VX-LRe9Kjfu?il2A=HLK8 zwjs+ff}Fro1M8>d4#+K-@9Lf(Op6;BnS-d&WecJ)vL5 zX{0!Prbg(v?-hVY7b7i3!}M84pVGu!dego5)nNmQ=ih?SN*UEP`yL-MDwcW{_Kaec zGJfhb$Fa>|MLSca%kXvT$$IGWBGz){7MTiv))kO?R5&y1lJAW<4h+0`TF&)(jI3cQ^ueClVe?O<$uuf#-MjU;b9H*^Y6A~D|IVnMAB5MQ}q3Sv^UwvdhuJ@ zuUL%y*e-eS)MQ4VAKlg`I|z*yv1}K4*t2#Vjbj_cl#7k|u*YN3DO;*@W4RbZ#jON+ z;P2qL5EMnk6pA0$CjkWBOw;~U*s~l+vF=Gnzdw##(7#}bIG|p~oLYr9yhXZon~3vz1j=5h~dkS=Xep zDoL^N9C z>-Z50{;ziUGBY~~8Evn*(Qv}*FOp-}z|`KEypb%^g26=+ zy-DxyNY3`k!P}_Ge8}NUnf_RKq~3wfv^q72M%FWK|69KV682}{HnKFOCj4}p1KS|C zHY2(tFg}!f)kJjFOv@{DG$qif?%K`?_Jp3U&*M8A*6%$yf+o^?=+e=__cX9kWM&E@ z$oywsr*{hTjq=)skpQxapcOY8hQJt?t5k9A@Z3|UwofA+xWwa$9^Yq z?HCB?jP0rW>>Z2`nY|Cb|u7nsmhI^f!^CF;fnmQ#*-a{So)zmRL z;QsFFy(XmE#KV|>DmOPUs&!XyRd=RAFh|;w^JVw;Om7{4_`JfniRccqJ(!HIyJ6JN zWv>@wbA(ZJdsHQEpZfzoL{QF&$FTwvCnNkqb9C5V^xz%Y(`M8DNpg+gyFIE7?OWMi zvq&tzCi5tLy`uE$od-_}OXwl}BcTF3ksJd3-`psgHYx`WMO)SeG-~J{W@Sh3mF3CSZL7ca1x;eFF z4N7teM*EIn#{qOCdUMAWNM;X}2fA2t?MeN3;zPqw31Z{7Q7;VgXTt?(To zw&h(N*$LqrpIQQI*g0#upPhTFLXQw-7A1_9Itl;Pm1@>?eR%)S5#uMYBTrzL_anLy z4>}4wJ8)&=ZjR$_lTi`KIqT#(_{q{y9%={rgG^E9d}x>vFHuOJ=f|hJ@u%)8mYwoo z+~6@9X2W?bz|TEZy7+3&+B+Kt^yqe;@91)9VXFp;1!04hcD&cC#J!FfcxR)Fpi0-kTOxXBr9NtI zpICVwy7mmu-xs>)dPqV_q>+s*QP%e%SCJ25hC#T6K2029A&7B3G#vqr7S?Z~T|bJ& zC^C){X}#^}=3?l7531KmiL#BJWPtEEXE*K(v-T-M^~f7MA?ot1@TK-BtAD%PdAloz zAXJdEq1B0YcC`**9Cd1pBOGj}C(JH|FjK49VG!q`+HvNM7b00fWqltyY8_;6u%~^9q1(p~ zohm!Y!amnVkJbCK!cSx7P8Juya;o}p?|5U%Sj!MZv>Wl0BMNDg(kDppf*fc!DP4)A zXY0E^;0@j32W_7|NqMHPAf^Lnl6Hb5beY!j)E+EqA(ke_)~*hM z(x@kh!g;)b!kG(7;HUFgnoX$Q82|$TfJd?HIBO`x(O0yxPccI-J8%gsuAgje4G>~j zejj@I&wY6-uxE0qluVS>%`@R0u)aRrO)R2Kw=LN>FyPtq|GsEyo%h&>lhnHB|Fb&4 zic?@F+K6Fhp*pqrIEj3u{hAl!c%u{mzU#FSg({!i|96Sf@j~zU(>|mDTS-3&2!$9$ z6_72$%@>foXHr?vV#|M7Kqh_SHwpQ@-{U4Ld493Gl6Xdw6=b^_GvBW5FA)Y?hUhhB zYQWh<1Hi~}fbY0-$W_EiSH^h^ozRDVkLe~MacUQ#v6-wbtCMfP1~QAq1FJ* zs+91*3kC3^ws&UVPJ)Fh+@=jx?g!`qRg1YSd_LZh1;pm#U62puU$D|b7itak<-Wl9 zS1h>ArI{;+tM4ZZG`NtDcs8&6LXiR3oXaHId6dZ2WL7p)>&fV$xBa(DdW!y=w9>SK zx$zm0<@M0ogy$-Znc)TQZ~zyh0f7>hbHN|j0WOomy|k-m;M|I4tq_icq~+em@kOvQ z-7+lg+3^yWd++!^tpX!6z@leUA#PEuB(|;(#__P_8Gr)7AA#JT2Q4(~dxggS0~mSA z$0vxaY{V~P=Iz%94OJlbduf;R@bE9^bY`1b5XCPNa`(`z0|hJ-_wn{Op$xZCkUVyF z3Csb+ZlDkCxuMup0`hThW5kna@3S!}!ri30b`o6FX!IIXBj}=jST-Wun7Nz~bLzof z71*vMhaLDZ2}e1!z2d0?{XZyp^a0dof9*#v#?m%TW#R};0-(I^1$bma%>OLheG;IV z?t4S7s%d~({Gd5axLmKi_U1R(u`tHXaK>%6`Z8_i;e^o-VGO0e2ch3xyRLu_K&}^u zw1hq}wMd_X14AmsBM(AVxxv@2ZP6?_%%R-Q&`Zt>1<_cv5lGGS?3p0FFT<wfK)HmIbFe5)ZtyG zlm>g=EuFm)*Z1GSbS0(_k<{stW>deBoX>ys!7d%C9VQ9wnn0ko5Z${4U@$whAU(`Y zX)qUnTfc5eZKw?)l8-zD*bRUZ`>tb(?i_ao(|JQzA)C2-C`ik(;ol5{gK7XF=Iq)i zWA;zSK_;}B!CSPK8Un&$j5jHW?~3maf?HWNOh=G`J&Db;8C;@Y~lz9BgE0YSPm%Q-p=v{`~tA7BL{F$ z*NNoW-I08*&(I-q%+m2ffGFMo2${Ru?J}MpBxPp+PNhKFD#4~Z;CD028O5vUCjcqM zA;w_5SQa+z%?`lQE)r5igJW!%-HGQ?KDs#{t$E{H;XCM0q!3u;MvC6uC*QJmN4(>B z%xC~5nV2Gl9H&c3WwK4*uzkaVL0zJJPF)D^X9(EpU3-Pcg)b2Bl;fnjYSt-m1c>-A zgex?rIMsi0I042p=K)>Q*^-sZ2Zcu-Ba|& ze`L+oY{bueMDx7zAwFhj03TS}FosUueLF}D3o5I_l92qKr>^X!aR5)WwA;&j?>L|w z(gD(Y`PWGZVayo7avQYX_0i9#hZx*FMI2W72ueO8t~O=0qZ*Oh z$}Vamgyq`+gv(LKDM;}=15UvmM+Bd(jV6J%FRO_(c zK9T*}`dqaA##*=4yPw+6&XGfTjSGK-Jp1@_(8h@ku7|}fL_mKY3k0xsBi@A>4w=3G zZVQlRV#Y9*r}lC^8p#Q56Xo@|i9Af&yQ9@Bo?*YI@i)_S=nd_M}@dVG3Q3(h?!X6mn@~-zG*Azv_ye8Nyxn>p&Y)K)7RjItm z2-`lbg*19xy>mHY-2T?(;B9sfyYt+xTJt~BC*MS3IW~>mHLR5A`Di+sO(UoXgiduW zz?tXX`^psH>`w~a?PkR|eKeiM4!e%1ZC(Rsr%OA#RM(lY3*W|$H<|i%O#QtHv64IA zJfZo!@$`A8LfV8BASA>l9(~Q@yjo3D!{TJIF5ZxD&McBG50C7_;bL&miGlbrW30wp zIrn}>o};DTcGTaSaotv)pW#wmW)?-y*DR9oxF6FM-E6>>ADG?Ev||6AwKN5Yvh;uX zXg_Yp^yzCAQ{o!lC;w_edTnYDR?(U=D&j+xY@5c0)u<4@O_``CJG9bv^dIu6bqMB$ zB|Ers3-B%|k80D)Fd0Xd6G4Tx&U4SRVb@1Omx-sa<$Y}?L9<_u%n-31pkt~q3sVyuWm1~yn3+_1(V!YSYffViBaCJ3$hveB9IctedBlyq6{ z2tUpPW{aiE4+Qv4T9U=AHAZXr*r#kXJ*E;OZb{7T(5Bc@-l<%SefF#q9K+w>3gZU1 zZvX4Df4c|10Ao>p8Jma4)XpEt8MLbvkzp6ga6mubb~3C$1?D#2Wj=>V0}2b-dPCQAU$@fAnML#QQ)4vk)LSH8_B=!FESZ<#SXev+ zbEb`jF2CMYHrxd+=-dL~AElc_?%P`O2+83xZup`8?g8dd1NZuo%&Ej0nIX;2%Vl`E z>zqJ)0~mmXg7(9}bpR(9MsQU6dhl+G}iyD5GDjkA{LOg;?wuG-al>_S^_(9I*qtf$W1t zwW_nA>B@af{+Wj}hoj^Q?-(2JQhyj2Rt#icrPD80;N@;Zu9^s3WywgsrDFO$ezVwy zx)Zc)Y0&`)ieqajMbbEL;hL7G${z!pUL@Zo@W>U&Ouo#2Q`mIHq=3nQ^ar+r6XVTf zk61RBP(PjT7Jtz7S@!p{g+m#;+zwEUwqFWZmu$qise6wE+vZCaf{Z7aQ}X;YTp%VF zG35Iq{V)GrG}S-9CE@wF`=dOIR5;9f;%yC>B%}|K%m|8R}z)ee|-8okL&Q2Tg1o*!DR|$Bc}vucJ{&png6Y0;z_%Wa;*BeM9o%TQBz1T@(~^ie=W9FHcaZTTnXTUD zZnm(dEhE|*eq+?d)ivltFuF1DNCNE-zu?YMka(ShXxs()BA_E!cV}52daAvk?(ui& zte0=|mY3tA(vw1@*@x=lOSI_-Q^Myt?C&yNcpD&abAcKpCcc*ZD5x6Oi2w1XmOEe@w9=EpfNOfOr{~C zZOqh6!l%)Ji2q4$ox{&&B+V4#VwsZ<*4_u?Zf~W9W(=1W`Q8%1G5TN_;7D%(i!rC! z$nsN!0TuTRL=+1Te6yEl3Io#dcn!`eq+UA8?%g~7hQ7t{^U-zS| zLaf!jsa;B@H1@BMS3e5=qcm>dBw3W6)IR2^ry*0J{^U!;V&b&`M=W^nG<@xFZkUnmZ?RsA_a0Ej1IcjdOq}2^Ma%o zpQEMg3q^17N4lbn=UjR|-uK^Bo*8FiS_-Pl!;G6#{BzIUu?jf@B0u3p0ED z5DG-N)F4vPUo{!+g2knLe#6NlFs`v`d$YN-o@+-SVd`4}m~@q@D1*!K+%NpLbuPOE zjff3;MB$BRBbauR+~$j`w=K#8qjESPMG1V2xgWG=4qWh8 zyD0`4zL>iRBmfjh$Z*S)Y%~#IbvGx5PBK>c7S7I~FYh%m#;9$!>8&LNC#-tSPc#=k zrEcU!JYCs;3zLkp8!usVon-lCKs1Ga(>wG2oQH!bf~^nuCbQ0Gfq9yqYMJaIFSf$y zW74?+ijItktmde26tZ!3pWPIDql_53!jrnRT!Xk)c!mvP<8=rmyiX9zUqH$<(L;jG ziKMZScs6F+$+OK?@hb)Kc<5V6JUxD0^1Zk-vXsW$&sz%tIK2PLdfO|@Y{>)3D%J!rs=UOFc}AJX|Lz&(_&wp zbd>s`XF6mcIxGp_pG#**wELM=%#YEdk*D3Y5=4`kBKQ_=Y&`Mh1b*dhe@j!~yO5)f z(cwP*i_5qB&M=ShCZxVjI{tG4$|Bv0t67w(G0D1sLgsIIgFK6ExU)ZV5oH)4NJGnE zWT`a-GMP?tyT?;*q+O(SCboR~^`D#2+d`1ss*LO2RB$XLp{I^8Zco6j>0=g3U4O02 ze4H%}o4e@0bzI}&S5#|Pf0C`rOcAz(SJ;&E-F1K~0uHc{X*G5+Y?GBz}Npe!tQ+qEgLewK^qz%g2#;>>xII7zF_{z=nPRT~cPp$;ctBU@9u~4ZFIXj}d z%#Bp@y!W&Z=SQ&RgK5h#AHPj8v=J{(Fa$4$=*^2TZyyX^au*bE_Ugf&Z^nKY4BH&% z5`ya#5mPMkgsLvmjCWQlS6nCTuFEqb@*yKe&bi~tL}dRW(Vt;i+4tB#_pCw0p9^Ch z3SS_SZ4E&y_Cv6%is9=hTG96|zZLFRGC@r+veXu)lKMWX@6Df6vVXyALfanTNEN1yMEyIo6%Tx#Ty%#^u3 zsw$yILOLmEH}aiJ-J1wYR7F0*m}Xs-J!yJ2pr6J*`)U_`0vq$!$IGd90LZ;-+o7^(}TA=Qy83 z4fK|R$3l5S&NkG?a~tzB>khNiD+*ISYK@7?BPP9b9sT$XPWNM?k5@3U@z2hm_m;d~ zxBosr+n=(LvzPS0vst+0zxaxnlh&tdg_0NsmHjXJTe_IsR`nvAgC|B(iRVw=_Q1aX z@mY`O$geAe!#<7rigSq8gpD?|IW5k0nV<6WZU#Jjy!0G&|w`5KGy9;g~)q^`AzNeXGQF_rgpeEQT=6Kk>jB zF|(ESI6Yc>v)}Ku6-x-ufz0OeRFADJ-H%cLmS6|tGQ$r2Mrn*O^Ey^e$a`p~SQP_x z{e=^Y$1u9cbGUI1!Ua3IT&i~c%!91T8mkA3c}09yjDkygW7!GaIVwPcpNwfotk}Je zINV|wFk|oEHt+v4LI(-EvJ(}dx$*S*@i&e=?;&S+GI)vBtG5}2#cd-DetgscCCj0G z&p=nRByzsgl9F;-h5Lw@C-0G?jDUd2k(v6TUtvK^8)jmrOF|bR0WYUwq8kM~oRmd2 zzXQR;`jb04ZpLho6FT1@#+v_-hvnlA#13Pl8`&n*s9q+WnV4PoHW9?;0u{*9M}u0}b-)%{BgrsQ_SvImss$o>w` z(gV6!G%)^#LxM(HQFdflq`KoHaU(MM4{W7TE-~`G@CuAJ$$*Uo$`F~e8f_MJOX znE_!hoh`QOs!n(Cm0McayOU3Q9$0m9=%@VKw8Pb3TLQR9D|6|JWKIjgD#6_}{@$SA zUu~4=2GjEQ*kx0{?-G#VAQiR%6<$R|09glK1b<2OIGZeAj2adqfD` zBpdDTS;;2M9Wo^y1<{Cp_>E|)N3Uyz6;2khf0Y!3_~llaDx}`aXOAgdd+IuBJ6m2LuYG1ML{rRL058W!R_x5RQ$3`s%X+M|+y z)?LvE)INQT#+`N7wryHhZlOR5YrE`Lb>|>$k-9M-xORVNP4m@8+L*Yrz3}iK)Y@c= z@|;1_=A{JTH`n#sP7n!sJO$smrXSwh6WpFcJVp-ik(U`CpRXi8^me~9Wt-=FBtB{k ztxzr%I(W*S_fNw=ddxjXw zQTZH0b^D?ue2lp}FW!i<--5GPY!MqC|Ldz`;E3Xy*n_83jFW~zTpKNUO8`wbC33qK z%+EeQ;EJDe+oJf_o|fEgXsXQrkMT~aVp<6DdYRMM7Y4a!atacQ{mj=*CWFosm2=|S z1`_M!poVKAUv;Xt{(UAtxR#rAgUlv;?$(9bDa?&0h%;Yr3))4>m{gfnb)a9-gePgX z6pFL|T+U27`q;Xca8vEKGL-KZ;E88es$0VGCW7g6) z0%k(cZ;b&}xmm(Gi`U#2v;_2z)pA8rsvbFRkeB5tJ<7A%aCku&9h{zDHZzM$8*Okg z37rRtnes5_$~V$1Z|^hvakRDxmo$?#^df3&^ZZ6vK^t*m>@*Vg#ofQ(egk!IBgOkY z;uD(8T*F_hqrBD^%6!8nes1(SG*oz0aZ>;UZ7Xt@cjRGw1@XNo4ze>c?M6@g>5Xo4 zS3=0C=(UDu{YMtRwU6qCtS77UT;)8&;}%E3rd_1HuWy21??5=gXn(Kh-vtSsl({&@ zODLZCR!H60j#*=Ebf|`cOtYb}oU+gC=&jnlH$uuGzDzT@m~<2$D&n@*!gg2pnjMB% zJzEF+67^L!LVx+Du?*Sm8c-)x#KyUgEjLxa4EcCdHAzMN%E)iju^&P$334&m{Oe8J z=M>T3PcDmhp#HvNT~c4OzFWyvc>R?!S-O*DVrb93l0Px?w|QnS@OQx5f72_oucl_< zh{>(d140tTqNcrZEaP00WovrxP2?L;vs!bgI^$GiyO)Ux<8J%s zqUvl$BqYtzwtT$5BbN;fU`MKc<3a>sJk!IEc5;%ee2a9O zUn*oBS_rPX_mIQa1;dbZGay==`NbR@rn?=$28jxt4#^r-Fksyl^-qHLaJAf+Rhc#8 zLo0i;day)7|Hv?X=^s+}6suxQUboLNm}5_VYLRN+) z9|y}b&MJ>p<9o&1YBDiM^atmk&a}Qai7W|7dw1%ky4ruK6mn?j16+rk+JKqFTD$Ou z3hVqq2dz4B53HIZ8vov{|C`cLvovICCui{$)Kt;r`tKdvG{g(OIRW0nGpbdkYB>fq zeU<{Zc8P|X?5c$>wRjX%E;Y7E0f2m(tI!NXx!losJed3k;ljKU>Z^Iuffrd8!_DL+ z)5V>`zvb;w1$1>f2Pq2i$?V!A2iZNtJfw^^9_bURLW6_H?�YcsxZAF6jSNsK7Hc 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 1.43.0 < 2" + } + }, + "compression": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", + "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", + "requires": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.16", + "debug": "2.6.9", + "on-headers": "~1.0.2", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "console-clear": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/console-clear/-/console-clear-1.1.1.tgz", + "integrity": "sha512-pMD+MVR538ipqkG5JXeOEbKWS5um1H4LUUccUQG68qpeqBYbzYy79Gh55jkd2TtPdRfUaLWdv6LPP//5Zt0aPQ==" + }, + "console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + }, + "create-ecdh": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz", + "integrity": "sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw==", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "elliptic": "^6.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + } + } + }, + "create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "dev": true, + "requires": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "dev": true, + "requires": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, + "crypto-browserify": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", + "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", + "dev": true, + "requires": { + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" + } + }, + "currently-unhandled": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", + "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", + "requires": { + "array-find-index": "^1.0.1" + } + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "requires": { + "assert-plus": "^1.0.0" + } + }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" + }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "dev": true + }, + "deferred-leveldown": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-0.2.0.tgz", + "integrity": "sha1-LO8fER4cV4cNi7uK8mUOWHzS9bQ=", + "dev": true, + "requires": { + "abstract-leveldown": "~0.12.1" + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" + }, + "delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" + }, + "des.js": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", + "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "detect-indent": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.0.0.tgz", + "integrity": "sha512-oSyFlqaTHCItVRGK5RmrmjB+CmaMOW7IaNA/kdxqhoa6d17j/5ce9O9eWXmV/KEdRwqpQA+Vqe8a8Bsybu4YnA==", + "dev": true + }, + "diffie-hellman": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + } + } + }, + "doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "dom-walk": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz", + "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==" + }, + "ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "requires": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "electron-to-chromium": { + "version": "1.3.453", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.453.tgz", + "integrity": "sha512-IQbCfjJR0NDDn/+vojTlq7fPSREcALtF8M1n01gw7nQghCtfFYrJ2dfhsp8APr8bANoFC8vRTFVXMOGpT0eetw==", + "dev": true + }, + "elliptic": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.2.tgz", + "integrity": "sha512-f4x70okzZbIQl/NSRLkI/+tteV/9WqL98zx+SQ69KbXxmVrmjwsNUPn/gYJJ0sHvEak24cZgHIPegRePAtA/xw==", + "dev": true, + "requires": { + "bn.js": "^4.4.0", + "brorand": "^1.0.1", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + } + } + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "errno": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", + "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", + "dev": true, + "requires": { + "prr": "~1.0.1" + } + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + }, + "eslint": { + "version": "6.8.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-6.8.0.tgz", + "integrity": "sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "ajv": "^6.10.0", + "chalk": "^2.1.0", + "cross-spawn": "^6.0.5", + "debug": "^4.0.1", + "doctrine": "^3.0.0", + "eslint-scope": "^5.0.0", + "eslint-utils": "^1.4.3", + "eslint-visitor-keys": "^1.1.0", + "espree": "^6.1.2", + "esquery": "^1.0.1", + "esutils": "^2.0.2", + "file-entry-cache": "^5.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^5.0.0", + "globals": "^12.1.0", + "ignore": "^4.0.6", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "inquirer": "^7.0.0", + "is-glob": "^4.0.0", + "js-yaml": "^3.13.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.3.0", + "lodash": "^4.17.14", + "minimatch": "^3.0.4", + "mkdirp": "^0.5.1", + "natural-compare": "^1.4.0", + "optionator": "^0.8.3", + "progress": "^2.0.0", + "regexpp": "^2.0.1", + "semver": "^6.1.2", + "strip-ansi": "^5.2.0", + "strip-json-comments": "^3.0.1", + "table": "^5.2.3", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + } + }, + "eslint-plugin-svelte3": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-svelte3/-/eslint-plugin-svelte3-2.7.3.tgz", + "integrity": "sha512-p6HhxyICX9x/x+8WSy6AVk2bmv9ayoznoTSyCvK47th/k/07ksuJixMwbGX9qxJVAmPBaYMjEIMSEZtJHPIN7w==", + "dev": true + }, + "eslint-scope": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.0.0.tgz", + "integrity": "sha512-oYrhJW7S0bxAFDvWqzvMPRm6pcgcnWc4QnofCAqRTRfQC0JcwenzGglTtsLyIuuWFfkqDG9vz67cnttSd53djw==", + "dev": true, + "requires": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } + }, + "eslint-utils": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz", + "integrity": "sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^1.1.0" + } + }, + "eslint-visitor-keys": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz", + "integrity": "sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A==", + "dev": true + }, + "espree": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-6.2.1.tgz", + "integrity": "sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==", + "dev": true, + "requires": { + "acorn": "^7.1.1", + "acorn-jsx": "^5.2.0", + "eslint-visitor-keys": "^1.1.0" + } + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true + }, + "esquery": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.3.1.tgz", + "integrity": "sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ==", + "dev": true, + "requires": { + "estraverse": "^5.1.0" + }, + "dependencies": { + "estraverse": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.1.0.tgz", + "integrity": "sha512-FyohXK+R0vE+y1nHLoBM7ZTyqRpqAlhdZHCWIWEviFLiGB8b04H6bQs8G+XTthacvT8VuwvteiP7RJSxMs8UEw==", + "dev": true + } + } + }, + "esrecurse": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", + "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", + "dev": true, + "requires": { + "estraverse": "^4.1.0" + } + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true + }, + "estree-walker": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz", + "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==" + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true + }, + "evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "dev": true, + "requires": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + }, + "external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "dev": true, + "requires": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + } + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" + }, + "fast-deep-equal": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz", + "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==" + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, + "file-entry-cache": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", + "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", + "dev": true, + "requires": { + "flat-cache": "^2.0.1" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "requires": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "flat-cache": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", + "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", + "dev": true, + "requires": { + "flatted": "^2.0.0", + "rimraf": "2.6.3", + "write": "1.0.3" + } + }, + "flatted": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", + "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", + "dev": true + }, + "foreach": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", + "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=", + "dev": true + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" + }, + "form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "fsevents": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", + "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", + "dev": true, + "optional": true + }, + "fstream": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz", + "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==", + "requires": { + "graceful-fs": "^4.1.2", + "inherits": "~2.0.0", + "mkdirp": ">=0.5 0", + "rimraf": "2" + } + }, + "functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "dev": true + }, + "fwd-stream": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/fwd-stream/-/fwd-stream-1.0.4.tgz", + "integrity": "sha1-7Sgcq+1G/uz5Ie4y3ExQs3KsfPo=", + "dev": true, + "requires": { + "readable-stream": "~1.0.26-4" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + } + } + }, + "gauge": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", + "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "requires": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "requires": { + "ansi-regex": "^2.0.0" + } + } + } + }, + "gaze": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz", + "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==", + "requires": { + "globule": "^1.0.0" + } + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" + }, + "get-port": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/get-port/-/get-port-3.2.0.tgz", + "integrity": "sha1-3Xzn3hh8Bsi/NTeWrHHgmfCYDrw=" + }, + "get-stdin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", + "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=" + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "requires": { + "assert-plus": "^1.0.0" + } + }, + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", + "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "global": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/global/-/global-4.3.2.tgz", + "integrity": "sha1-52mJJopsdMOJCLEwWxD8DjlOnQ8=", + "requires": { + "min-document": "^2.19.0", + "process": "~0.5.1" + } + }, + "globals": { + "version": "12.4.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", + "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", + "dev": true, + "requires": { + "type-fest": "^0.8.1" + } + }, + "globule": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/globule/-/globule-1.3.1.tgz", + "integrity": "sha512-OVyWOHgw29yosRHCHo7NncwR1hW5ew0W/UrvtwvjefVJeQ26q4/8r8FmPsSF1hJ93IgWkyv16pCTz6WblMzm/g==", + "requires": { + "glob": "~7.1.1", + "lodash": "~4.17.12", + "minimatch": "~3.0.2" + } + }, + "graceful-fs": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==" + }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" + }, + "har-validator": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", + "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", + "requires": { + "ajv": "^6.5.5", + "har-schema": "^2.0.0" + } + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "requires": { + "ansi-regex": "^2.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + } + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" + }, + "hash-base": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", + "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", + "dev": true, + "requires": { + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + } + } + }, + "hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "dev": true, + "requires": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "hosted-git-info": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", + "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==" + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "idb-wrapper": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/idb-wrapper/-/idb-wrapper-1.7.2.tgz", + "integrity": "sha512-zfNREywMuf0NzDo9mVsL0yegjsirJxHpKHvWcyRozIqQy89g0a3U+oBPOCN4cc0oCiOuYgZHimzaW/R46G1Mpg==", + "dev": true + }, + "ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true + }, + "import-fresh": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz", + "integrity": "sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==", + "dev": true, + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true + }, + "in-publish": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/in-publish/-/in-publish-2.0.1.tgz", + "integrity": "sha512-oDM0kUSNFC31ShNxHKUyfZKy8ZeXZBWMjMdZHKLOk13uvT27VTL/QzRGfRUcevJhpkZAvlhPYuXkF7eNWrtyxQ==" + }, + "indent-string": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", + "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", + "requires": { + "repeating": "^2.0.0" + } + }, + "indexof": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", + "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=", + "dev": true + }, + "individual": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/individual/-/individual-2.0.0.tgz", + "integrity": "sha1-gzsJfa0jKU52EXqY+zjg2a1hu5c=" + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "inquirer": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.1.0.tgz", + "integrity": "sha512-5fJMWEmikSYu0nv/flMc475MhGbB7TSPd/2IpFV4I4rMklboCH2rQjYY5kKiYGHqUF9gvaambupcJFFG9dvReg==", + "dev": true, + "requires": { + "ansi-escapes": "^4.2.1", + "chalk": "^3.0.0", + "cli-cursor": "^3.1.0", + "cli-width": "^2.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.15", + "mute-stream": "0.0.8", + "run-async": "^2.4.0", + "rxjs": "^6.5.3", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6" + }, + "dependencies": { + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "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 + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "is": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/is/-/is-0.2.7.tgz", + "integrity": "sha1-OzSixI81mXLzUEKEkZOucmS2NWI=", + "dev": true + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-finite": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz", + "integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==" + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "is-function": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.2.tgz", + "integrity": "sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==" + }, + "is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", + "integrity": "sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=", + "dev": true + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "is-object": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/is-object/-/is-object-0.1.2.tgz", + "integrity": "sha1-AO+8CIFsM8/ErIJR0TLhDcZQmNc=", + "dev": true + }, + "is-reference": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.1.4.tgz", + "integrity": "sha512-uJA/CDPO3Tao3GTrxYn6AwkM4nUPJiGGYu5+cB8qbC7WGFlrKZbiRo7SFKxUAEpFUfiHofWCXBUNhvYJMh+6zw==", + "dev": true, + "requires": { + "@types/estree": "0.0.39" + } + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" + }, + "is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=" + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "isbuffer": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/isbuffer/-/isbuffer-0.0.0.tgz", + "integrity": "sha1-OMFG2d9Si4v5sHAcPUPPEt8/w5s=", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" + }, + "jest-worker": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-24.9.0.tgz", + "integrity": "sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw==", + "dev": true, + "requires": { + "merge-stream": "^2.0.0", + "supports-color": "^6.1.0" + }, + "dependencies": { + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "js-base64": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.5.2.tgz", + "integrity": "sha512-Vg8czh0Q7sFBSUMWWArX/miJeBWYBPpdU/3M/DKSaekLMqrqVPaedp+5mZhie/r0lgrcaYBfwXatEew6gwgiQQ==" + }, + "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", + "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" + }, + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + }, + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "dev": true + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" + }, + "jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + } + }, + "keycode": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/keycode/-/keycode-2.2.0.tgz", + "integrity": "sha1-PQr1bce4uOXLqNCpfxByBO7CKwQ=" + }, + "kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==" + }, + "level-blobs": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/level-blobs/-/level-blobs-0.1.7.tgz", + "integrity": "sha1-mrm5e7mfHtv594o0M+Ie1WOGva8=", + "dev": true, + "requires": { + "level-peek": "1.0.6", + "once": "^1.3.0", + "readable-stream": "^1.0.26-4" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + } + } + }, + "level-filesystem": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/level-filesystem/-/level-filesystem-1.2.0.tgz", + "integrity": "sha1-oArKmRnEpN+v3KaoEI0iWq3/Y7M=", + "dev": true, + "requires": { + "concat-stream": "^1.4.4", + "errno": "^0.1.1", + "fwd-stream": "^1.0.4", + "level-blobs": "^0.1.7", + "level-peek": "^1.0.6", + "level-sublevel": "^5.2.0", + "octal": "^1.0.0", + "once": "^1.3.0", + "xtend": "^2.2.0" + } + }, + "level-fix-range": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/level-fix-range/-/level-fix-range-1.0.2.tgz", + "integrity": "sha1-vxW5Fa422EcMgh6IPd95zRZCCCg=", + "dev": true + }, + "level-hooks": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/level-hooks/-/level-hooks-4.5.0.tgz", + "integrity": "sha1-G5rmGSKTDzMF0aYfxNg8gQLA3ZM=", + "dev": true, + "requires": { + "string-range": "~1.2" + } + }, + "level-js": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/level-js/-/level-js-2.2.4.tgz", + "integrity": "sha1-vAVfQYBjXUSJtWHJSG+jcOjBFpc=", + "dev": true, + "requires": { + "abstract-leveldown": "~0.12.0", + "idb-wrapper": "^1.5.0", + "isbuffer": "~0.0.0", + "ltgt": "^2.1.2", + "typedarray-to-buffer": "~1.0.0", + "xtend": "~2.1.2" + }, + "dependencies": { + "object-keys": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz", + "integrity": "sha1-KKaq50KN0sOpLz2V8hM13SBOAzY=", + "dev": true + }, + "xtend": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz", + "integrity": "sha1-bv7MKk2tjmlixJAbM3znuoe10os=", + "dev": true, + "requires": { + "object-keys": "~0.4.0" + } + } + } + }, + "level-peek": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/level-peek/-/level-peek-1.0.6.tgz", + "integrity": "sha1-vsUccqgu5GTTNkNMfIdsP8vM538=", + "dev": true, + "requires": { + "level-fix-range": "~1.0.2" + } + }, + "level-sublevel": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/level-sublevel/-/level-sublevel-5.2.3.tgz", + "integrity": "sha1-dEwSxy0ucr543eO5tc2E1iGRQTo=", + "dev": true, + "requires": { + "level-fix-range": "2.0", + "level-hooks": ">=4.4.0 <5", + "string-range": "~1.2.1", + "xtend": "~2.0.4" + }, + "dependencies": { + "level-fix-range": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/level-fix-range/-/level-fix-range-2.0.0.tgz", + "integrity": "sha1-xBfWIVlEIVGhnZojZ4aPFyTC1Ug=", + "dev": true, + "requires": { + "clone": "~0.1.9" + } + }, + "xtend": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.0.6.tgz", + "integrity": "sha1-XqZXptukRwacLlnFihE4ywxebO4=", + "dev": true, + "requires": { + "is-object": "~0.1.2", + "object-keys": "~0.2.0" + } + } + } + }, + "levelup": { + "version": "0.18.6", + "resolved": "https://registry.npmjs.org/levelup/-/levelup-0.18.6.tgz", + "integrity": "sha1-5qAcsIlhbI7MApHCqb0/DETj5es=", + "dev": true, + "requires": { + "bl": "~0.8.1", + "deferred-leveldown": "~0.2.0", + "errno": "~0.1.1", + "prr": "~0.0.0", + "readable-stream": "~1.0.26", + "semver": "~2.3.1", + "xtend": "~3.0.0" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "prr": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/prr/-/prr-0.0.0.tgz", + "integrity": "sha1-GoS4WQgyVQFBGFPQCB7j+obikmo=", + "dev": true + }, + "readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "semver": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-2.3.2.tgz", + "integrity": "sha1-uYSPJdbPNjMwc+ye+IVtQvEjPlI=", + "dev": true + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + }, + "xtend": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-3.0.0.tgz", + "integrity": "sha1-XM50B7r2Qsunvs2laBEcST9ZZlo=", + "dev": true + } + } + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dev": true, + "requires": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + } + }, + "livereload": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/livereload/-/livereload-0.9.1.tgz", + "integrity": "sha512-9g7sua11kkyZNo2hLRCG3LuZZwqexoyEyecSlV8cAsfAVVCZqLzVir6XDqmH0r+Vzgnd5LrdHDMyjtFnJQLAYw==", + "dev": true, + "requires": { + "chokidar": "^3.3.0", + "livereload-js": "^3.1.0", + "opts": ">= 1.2.0", + "ws": "^6.2.1" + } + }, + "livereload-js": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/livereload-js/-/livereload-js-3.2.2.tgz", + "integrity": "sha512-xhScbNeC687ZINjEf/bD+BMiPx4s4q0mehcLb3zCc8+mykOtmaBR4vqzyIV9rIGdG9JjHaT0LiFdscvivCjX1Q==", + "dev": true + }, + "load-json-file": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" + } + }, + "local-access": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/local-access/-/local-access-1.0.1.tgz", + "integrity": "sha512-ykt2pgN0aqIy6KQC1CqdWTWkmUwNgaOS6dcpHVjyBJONA+Xi7AtSB1vuxC/U/0tjIP3wcRudwQk1YYzUvzk2bA==" + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "dependencies": { + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" + } + } + }, + "lodash": { + "version": "4.17.15", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", + "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==" + }, + "loud-rejection": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", + "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", + "requires": { + "currently-unhandled": "^0.4.1", + "signal-exit": "^3.0.0" + } + }, + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "ltgt": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ltgt/-/ltgt-2.2.1.tgz", + "integrity": "sha1-81ypHEk/e3PaDgdJUwTxezH4fuU=", + "dev": true + }, + "m3u8-parser": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/m3u8-parser/-/m3u8-parser-4.4.0.tgz", + "integrity": "sha512-iH2AygTFILtato+XAgnoPYzLHM4R3DjATj7Ozbk7EHdB2XoLF2oyOUguM7Kc4UVHbQHHL/QPaw98r7PbWzG0gg==", + "requires": { + "global": "^4.3.2" + } + }, + "magic-string": { + "version": "0.25.7", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz", + "integrity": "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==", + "requires": { + "sourcemap-codec": "^1.4.4" + } + }, + "map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=" + }, + "matchit": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/matchit/-/matchit-1.0.8.tgz", + "integrity": "sha512-CwPPICzozd/ezCzpVwGYG5bMVieaapnA0vvHDQnmQ2u2vZtVLynoPmvFsZjL67hFOvTBhhpqSR0bq3uloDP/Rw==", + "requires": { + "@arr/every": "^1.0.0" + } + }, + "md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "dev": true, + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "meow": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", + "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", + "requires": { + "camelcase-keys": "^2.0.0", + "decamelize": "^1.1.2", + "loud-rejection": "^1.0.0", + "map-obj": "^1.0.1", + "minimist": "^1.1.3", + "normalize-package-data": "^2.3.4", + "object-assign": "^4.0.1", + "read-pkg-up": "^1.0.1", + "redent": "^1.0.0", + "trim-newlines": "^1.0.0" + } + }, + "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 + }, + "miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "dev": true, + "requires": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + } + } + }, + "mime": { + "version": "2.4.5", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.5.tgz", + "integrity": "sha512-3hQhEUF027BuxZjQA3s7rIv/7VCQPa27hN9u9g87sEkWaKwQPuXOkVKtOeiyUrnWqTDiOs8Ed2rwg733mB0R5w==" + }, + "mime-db": { + "version": "1.44.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", + "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==" + }, + "mime-types": { + "version": "2.1.27", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz", + "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==", + "requires": { + "mime-db": "1.44.0" + } + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true + }, + "min-document": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", + "integrity": "sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=", + "requires": { + "dom-walk": "^0.1.0" + } + }, + "min-indent": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.0.tgz", + "integrity": "sha1-z8RcN+nsDY8KDsPdTvf3w6vjklY=", + "dev": true + }, + "minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "dev": true + }, + "minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", + "dev": true + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + }, + "mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "requires": { + "minimist": "^1.2.5" + } + }, + "mpd-parser": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/mpd-parser/-/mpd-parser-0.10.0.tgz", + "integrity": "sha512-eIqkH/2osPr7tIIjhRmDWqm2wdJ7Q8oPfWvdjealzsLV2D2oNe0a0ae2gyYYs1sw5e5hdssDA2V6Sz8MW+Uvvw==", + "requires": { + "@babel/runtime": "^7.5.5", + "@videojs/vhs-utils": "^1.1.0", + "global": "^4.3.2", + "xmldom": "^0.1.27" + } + }, + "mri": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/mri/-/mri-1.1.5.tgz", + "integrity": "sha512-d2RKzMD4JNyHMbnbWnznPaa8vbdlq/4pNZ3IgdaGrVbBhebBsGUUE/6qorTMYNS6TwuH3ilfOlD2bf4Igh8CKg==" + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", + "dev": true + }, + "mux.js": { + "version": "5.5.1", + "resolved": "https://registry.npmjs.org/mux.js/-/mux.js-5.5.1.tgz", + "integrity": "sha512-5VmmjADBqS4++8pTI6poSRJ+chHdaoI4XErcQPM5w4QfwaDl+FQlSI0iOgWbYDn6CBCbDRKaSCcEiN2K5aHNGQ==" + }, + "nan": { + "version": "2.14.1", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.1.tgz", + "integrity": "sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw==" + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "dev": true + }, + "negotiator": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", + "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" + }, + "nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true + }, + "node-gyp": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz", + "integrity": "sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==", + "requires": { + "fstream": "^1.0.0", + "glob": "^7.0.3", + "graceful-fs": "^4.1.2", + "mkdirp": "^0.5.0", + "nopt": "2 || 3", + "npmlog": "0 || 1 || 2 || 3 || 4", + "osenv": "0", + "request": "^2.87.0", + "rimraf": "2", + "semver": "~5.3.0", + "tar": "^2.0.0", + "which": "1" + }, + "dependencies": { + "semver": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", + "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=" + } + } + }, + "node-releases": { + "version": "1.1.56", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.56.tgz", + "integrity": "sha512-EVo605FhWLygH8a64TjgpjyHYOihkxECwX1bHHr8tETJKWEiWS2YJjPbvsX2jFjnjTNEgBCmk9mLjKG1Mf11cw==", + "dev": true + }, + "node-sass": { + "version": "4.14.1", + "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.14.1.tgz", + "integrity": "sha512-sjCuOlvGyCJS40R8BscF5vhVlQjNN069NtQ1gSxyK1u9iqvn6tf7O1R4GNowVZfiZUCRt5MmMs1xd+4V/7Yr0g==", + "requires": { + "async-foreach": "^0.1.3", + "chalk": "^1.1.1", + "cross-spawn": "^3.0.0", + "gaze": "^1.0.0", + "get-stdin": "^4.0.1", + "glob": "^7.0.3", + "in-publish": "^2.0.0", + "lodash": "^4.17.15", + "meow": "^3.7.0", + "mkdirp": "^0.5.1", + "nan": "^2.13.2", + "node-gyp": "^3.8.0", + "npmlog": "^4.0.0", + "request": "^2.88.0", + "sass-graph": "2.2.5", + "stdout-stream": "^1.4.0", + "true-case-path": "^1.0.2" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "cross-spawn": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-3.0.1.tgz", + "integrity": "sha1-ElYDfsufDF9549bvE14wdwGEuYI=", + "requires": { + "lru-cache": "^4.0.1", + "which": "^1.2.9" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" + } + } + }, + "nopt": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", + "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", + "requires": { + "abbrev": "1" + } + }, + "normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "requires": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + } + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", + "dev": true + }, + "npmlog": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", + "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", + "requires": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "num2fraction": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", + "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=", + "dev": true + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" + }, + "oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + }, + "object-keys": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.2.0.tgz", + "integrity": "sha1-zd7AKZiwkb5CvxA1rjLknxy26mc=", + "dev": true, + "requires": { + "foreach": "~2.0.1", + "indexof": "~0.0.1", + "is": "~0.2.6" + } + }, + "octal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/octal/-/octal-1.0.0.tgz", + "integrity": "sha1-Y+cWKmjvvrniE1iNWOmJ0eXEUws=", + "dev": true + }, + "on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==" + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz", + "integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==", + "dev": true, + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "dev": true, + "requires": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + } + }, + "opts": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/opts/-/opts-1.2.7.tgz", + "integrity": "sha512-hwZhzGGG/GQ7igxAVFOEun2N4fWul31qE9nfBdCnZGQCB5+L7tN9xZ+94B4aUpLOJx/of3zZs5XsuubayQYQjA==", + "dev": true + }, + "os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" + }, + "osenv": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", + "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" + }, + "parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "requires": { + "callsites": "^3.0.0" + } + }, + "parse-asn1": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.5.tgz", + "integrity": "sha512-jkMYn1dcJqF6d5CpU689bq7w/b5ALS9ROVSpQDPrZsqqesUJii9qutvoT5ltGedNXMO2e16YUWIghG9KxaViTQ==", + "dev": true, + "requires": { + "asn1.js": "^4.0.0", + "browserify-aes": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3", + "safe-buffer": "^5.1.1" + } + }, + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "requires": { + "error-ex": "^1.2.0" + } + }, + "path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "requires": { + "pinkie-promise": "^2.0.0" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true + }, + "path-parse": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==" + }, + "path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "requires": { + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "pbkdf2": { + "version": "3.0.17", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.17.tgz", + "integrity": "sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA==", + "dev": true, + "requires": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" + }, + "picomatch": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", + "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", + "dev": true + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=" + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "requires": { + "pinkie": "^2.0.0" + } + }, + "pkcs7": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pkcs7/-/pkcs7-1.0.2.tgz", + "integrity": "sha1-ttulJ1KMKUK/wSLOLa/NteWQdOc=" + }, + "pkg-up": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-2.0.0.tgz", + "integrity": "sha1-yBmscoBZpGHKscOImivjxJoATX8=", + "dev": true, + "requires": { + "find-up": "^2.1.0" + }, + "dependencies": { + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "requires": { + "locate-path": "^2.0.0" + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + } + } + }, + "polka": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/polka/-/polka-0.5.2.tgz", + "integrity": "sha512-FVg3vDmCqP80tOrs+OeNlgXYmFppTXdjD5E7I4ET1NjvtNmQrb1/mJibybKkb/d4NA7YWAr1ojxuhpL3FHqdlw==", + "requires": { + "@polka/url": "^0.5.0", + "trouter": "^2.0.1" + } + }, + "postcss": { + "version": "7.0.31", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.31.tgz", + "integrity": "sha512-a937VDHE1ftkjk+8/7nj/mrjtmkn69xxzJgRETXdAUU+IgOYPQNJF17haGWbeDxSyk++HA14UA98FurvPyBJOA==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "dependencies": { + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-value-parser": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", + "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==", + "dev": true + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true + }, + "process": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/process/-/process-0.5.2.tgz", + "integrity": "sha1-FjjYqONML0QKkduVq5rrZ3/Bhc8=" + }, + "process-es6": { + "version": "0.11.6", + "resolved": "https://registry.npmjs.org/process-es6/-/process-es6-0.11.6.tgz", + "integrity": "sha1-xrs4n5qVH4K9TrFpYAEFvS/5x3g=", + "dev": true + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true + }, + "prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", + "dev": true + }, + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" + }, + "psl": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", + "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" + }, + "public-encrypt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", + "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + } + } + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" + }, + "qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" + }, + "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" + } + }, + "randomfill": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "dev": true, + "requires": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, + "read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "requires": { + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" + } + }, + "read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "requires": { + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" + } + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "readdirp": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.4.0.tgz", + "integrity": "sha512-0xe001vZBnJEK+uKcj8qOhyAKPzIT+gStxWr3LCB0DwcXR5NZJ3IaC+yGnHCYzB/S7ov3m3EEbZI2zeNvX+hGQ==", + "dev": true, + "requires": { + "picomatch": "^2.2.1" + } + }, + "redent": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", + "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", + "requires": { + "indent-string": "^2.1.0", + "strip-indent": "^1.0.1" + }, + "dependencies": { + "strip-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", + "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", + "requires": { + "get-stdin": "^4.0.1" + } + } + } + }, + "regenerator-runtime": { + "version": "0.13.5", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz", + "integrity": "sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA==" + }, + "regexpp": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz", + "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==", + "dev": true + }, + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "requires": { + "is-finite": "^1.0.0" + } + }, + "request": { + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "requires": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" + }, + "require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" + }, + "require-relative": { + "version": "0.8.7", + "resolved": "https://registry.npmjs.org/require-relative/-/require-relative-0.8.7.tgz", + "integrity": "sha1-eZlTn8ngR6N5KPoZb44VY9q9Nt4=", + "dev": true + }, + "resolve": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", + "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", + "requires": { + "path-parse": "^1.0.6" + } + }, + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true + }, + "restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, + "requires": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + } + }, + "rimraf": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "requires": { + "glob": "^7.1.3" + } + }, + "ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "dev": true, + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "rollup": { + "version": "1.32.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-1.32.1.tgz", + "integrity": "sha512-/2HA0Ec70TvQnXdzynFffkjA6XN+1e2pEv/uKS5Ulca40g2L7KuOE3riasHoNVHOsFD5KKZgDsMk1CP3Tw9s+A==", + "dev": true, + "requires": { + "@types/estree": "*", + "@types/node": "*", + "acorn": "^7.1.0" + } + }, + "rollup-plugin-livereload": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/rollup-plugin-livereload/-/rollup-plugin-livereload-1.3.0.tgz", + "integrity": "sha512-abyqXaB21+nFHo+vJULBqfzNx6zXABC19UyvqgDfdoxR/8pFAd041GO+GIUe8ZYC2DbuMUmioh1Lvbk14YLZgw==", + "dev": true, + "requires": { + "livereload": "^0.9.1" + } + }, + "rollup-plugin-node-builtins": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/rollup-plugin-node-builtins/-/rollup-plugin-node-builtins-2.1.2.tgz", + "integrity": "sha1-JKH+1KQyV7a2Q3HYq8bOGrFFl+k=", + "dev": true, + "requires": { + "browserify-fs": "^1.0.0", + "buffer-es6": "^4.9.2", + "crypto-browserify": "^3.11.0", + "process-es6": "^0.11.2" + } + }, + "rollup-plugin-node-globals": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/rollup-plugin-node-globals/-/rollup-plugin-node-globals-1.4.0.tgz", + "integrity": "sha512-xRkB+W/m1KLIzPUmG0ofvR+CPNcvuCuNdjVBVS7ALKSxr3EDhnzNceGkGi1m8MToSli13AzKFYH4ie9w3I5L3g==", + "dev": true, + "requires": { + "acorn": "^5.7.3", + "buffer-es6": "^4.9.3", + "estree-walker": "^0.5.2", + "magic-string": "^0.22.5", + "process-es6": "^0.11.6", + "rollup-pluginutils": "^2.3.1" + }, + "dependencies": { + "acorn": { + "version": "5.7.4", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.4.tgz", + "integrity": "sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg==", + "dev": true + }, + "estree-walker": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.5.2.tgz", + "integrity": "sha512-XpCnW/AE10ws/kDAs37cngSkvgIR8aN3G0MS85m7dUpuK2EREo9VJ00uvw6Dg/hXEpfsE1I1TvJOJr+Z+TL+ig==", + "dev": true + }, + "magic-string": { + "version": "0.22.5", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.22.5.tgz", + "integrity": "sha512-oreip9rJZkzvA8Qzk9HFs8fZGF/u7H/gtrE8EN6RjKJ9kh2HlC+yQ2QezifqTZfGyiuAV0dRv5a+y/8gBb1m9w==", + "dev": true, + "requires": { + "vlq": "^0.2.2" + } + } + } + }, + "rollup-plugin-replace": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/rollup-plugin-replace/-/rollup-plugin-replace-2.2.0.tgz", + "integrity": "sha512-/5bxtUPkDHyBJAKketb4NfaeZjL5yLZdeUihSfbF2PQMz+rSTEb8ARKoOl3UBT4m7/X+QOXJo3sLTcq+yMMYTA==", + "requires": { + "magic-string": "^0.25.2", + "rollup-pluginutils": "^2.6.0" + } + }, + "rollup-plugin-svelte": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/rollup-plugin-svelte/-/rollup-plugin-svelte-5.2.2.tgz", + "integrity": "sha512-I+TJ2T+VLKGbKQcpeMJ4AR2ciROqTZNjxbiMiH4Cn1yByaB9OEuy3CnrgHHuWatQcPuF3yIViyKX7OlETWDKOQ==", + "dev": true, + "requires": { + "require-relative": "^0.8.7", + "rollup-pluginutils": "^2.8.2", + "sourcemap-codec": "^1.4.8" + } + }, + "rollup-plugin-terser": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-5.3.0.tgz", + "integrity": "sha512-XGMJihTIO3eIBsVGq7jiNYOdDMb3pVxuzY0uhOE/FM4x/u9nQgr3+McsjzqBn3QfHIpNSZmFnpoKAwHBEcsT7g==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.5.5", + "jest-worker": "^24.9.0", + "rollup-pluginutils": "^2.8.2", + "serialize-javascript": "^2.1.2", + "terser": "^4.6.2" + } + }, + "rollup-pluginutils": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz", + "integrity": "sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==", + "requires": { + "estree-walker": "^0.6.1" + } + }, + "run-async": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", + "dev": true + }, + "rust-result": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/rust-result/-/rust-result-1.0.0.tgz", + "integrity": "sha1-NMdbLm3Dn+WHXlveyFteD5FTb3I=", + "requires": { + "individual": "^2.0.0" + } + }, + "rxjs": { + "version": "6.5.5", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.5.tgz", + "integrity": "sha512-WfQI+1gohdf0Dai/Bbmk5L5ItH5tYqm3ki2c5GdWhKjalzjg93N3avFjVStyZZz+A2Em+ZxKH5bNghw9UeylGQ==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, + "sade": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/sade/-/sade-1.7.3.tgz", + "integrity": "sha512-m4BctppMvJ60W1dXnHq7jMmFe3hPJZDAH85kQ3ACTo7XZNVUuTItCQ+2HfyaMeV5cKrbw7l4vD/6We3GBxvdJw==", + "requires": { + "mri": "^1.1.0" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "safe-json-parse": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/safe-json-parse/-/safe-json-parse-4.0.0.tgz", + "integrity": "sha1-fA9XjPzNEtM6ccDgVBPi7KFx6qw=", + "requires": { + "rust-result": "^1.0.0" + } + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "sass-graph": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.5.tgz", + "integrity": "sha512-VFWDAHOe6mRuT4mZRd4eKE+d8Uedrk6Xnh7Sh9b4NGufQLQjOrvf/MQoOdx+0s92L89FeyUUNfU597j/3uNpag==", + "requires": { + "glob": "^7.0.0", + "lodash": "^4.0.0", + "scss-tokenizer": "^0.2.3", + "yargs": "^13.3.2" + } + }, + "scss-tokenizer": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz", + "integrity": "sha1-jrBtualyMzOCTT9VMGQRSYR85dE=", + "requires": { + "js-base64": "^2.1.8", + "source-map": "^0.4.2" + }, + "dependencies": { + "source-map": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", + "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", + "requires": { + "amdefine": ">=0.0.4" + } + } + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + }, + "serialize-javascript": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-2.1.2.tgz", + "integrity": "sha512-rs9OggEUF0V4jUSecXazOYsLfu7OGK2qIn3c7IPBiffz32XniEp/TX9Xmc9LQfK2nQ2QKHvZ2oygKUGU0lG4jQ==", + "dev": true + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" + }, + "sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true + }, + "signal-exit": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", + "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" + }, + "sirv": { + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/sirv/-/sirv-0.4.6.tgz", + "integrity": "sha512-rYpOXlNbpHiY4nVXxuDf4mXPvKz1reZGap/LkWp9TvcZ84qD/nPBjjH/6GZsgIjVMbOslnY8YYULAyP8jMn1GQ==", + "requires": { + "@polka/url": "^0.5.0", + "mime": "^2.3.1" + } + }, + "sirv-cli": { + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/sirv-cli/-/sirv-cli-0.4.6.tgz", + "integrity": "sha512-/Vj85/kBvPL+n9ibgX6FicLE8VjidC1BhlX67PYPBfbBAphzR6i0k0HtU5c2arejfU3uzq8l3SYPCwl1x7z6Ww==", + "requires": { + "console-clear": "^1.1.0", + "get-port": "^3.2.0", + "kleur": "^3.0.0", + "local-access": "^1.0.1", + "sade": "^1.4.0", + "sirv": "^0.4.6", + "tinydate": "^1.0.0" + } + }, + "slice-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", + "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.0", + "astral-regex": "^1.0.0", + "is-fullwidth-code-point": "^2.0.0" + }, + "dependencies": { + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + } + } + }, + "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 + }, + "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" + } + }, + "sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==" + }, + "spdx-correct": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", + "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==" + }, + "spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz", + "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==" + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + }, + "sshpk": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", + "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", + "requires": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + } + }, + "stdout-stream": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.1.tgz", + "integrity": "sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA==", + "requires": { + "readable-stream": "^2.0.1" + } + }, + "string-range": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/string-range/-/string-range-1.2.2.tgz", + "integrity": "sha1-qJPtNH5yKZvIO++78qaSqNI51d0=", + "dev": true + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + } + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "requires": { + "ansi-regex": "^4.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" + } + } + }, + "strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "requires": { + "is-utf8": "^0.2.0" + } + }, + "strip-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "dev": true, + "requires": { + "min-indent": "^1.0.0" + } + }, + "strip-json-comments": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.0.tgz", + "integrity": "sha512-e6/d0eBu7gHtdCqFt0xJr642LdToM5/cN4Qb9DbHjVx1CP5RyeM+zH7pbecEmDv/lBqb0QH+6Uqq75rxFPkM0w==", + "dev": true + }, + "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" + } + }, + "svelte": { + "version": "3.23.0", + "resolved": "https://registry.npmjs.org/svelte/-/svelte-3.23.0.tgz", + "integrity": "sha512-cnyd96bK/Nw5DnYuB1hzm5cl6+I1fpmdKOteA7KLzU9KGLsLmvWsSkSKbcntzODCLmSySN3HjcgTHRo6/rJNTw==", + "dev": true + }, + "svelte-preprocess": { + "version": "3.7.4", + "resolved": "https://registry.npmjs.org/svelte-preprocess/-/svelte-preprocess-3.7.4.tgz", + "integrity": "sha512-0nW7TIjbav2nmw1Y7EAFRRkhNVwJ3zKN85/eITLQMkPuhqHO2i2IK0O3y4YXsSXlc0VGI5jQDVXkcXpga6zzew==", + "dev": true, + "requires": { + "@types/pug": "^2.0.4", + "@types/sass": "^1.16.0", + "detect-indent": "^6.0.0", + "strip-indent": "^3.0.0" + } + }, + "table": { + "version": "5.4.6", + "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", + "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", + "dev": true, + "requires": { + "ajv": "^6.10.2", + "lodash": "^4.17.14", + "slice-ansi": "^2.1.0", + "string-width": "^3.0.0" + }, + "dependencies": { + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + } + } + }, + "tar": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.2.tgz", + "integrity": "sha512-FCEhQ/4rE1zYv9rYXJw/msRqsnmlje5jHP6huWeBZ704jUTy02c5AZyWujpMR1ax6mVw9NyJMfuK2CMDWVIfgA==", + "requires": { + "block-stream": "*", + "fstream": "^1.0.12", + "inherits": "2" + } + }, + "terser": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.7.0.tgz", + "integrity": "sha512-Lfb0RiZcjRDXCC3OSHJpEkxJ9Qeqs6mp2v4jf2MHfy8vGERmVDuvjXdd/EnP5Deme5F2yBRBymKmKHCBg2echw==", + "dev": true, + "requires": { + "commander": "^2.20.0", + "source-map": "~0.6.1", + "source-map-support": "~0.5.12" + } + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "dev": true + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "dev": true + }, + "tinydate": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/tinydate/-/tinydate-1.2.0.tgz", + "integrity": "sha512-3GwPk8VhDFnUZ2TrgkhXJs6hcMAIIw4x/xkz+ayK6dGoQmp2nUwKzBXK0WnMsqkh6vfUhpqQicQF3rbshfyJkg==" + }, + "tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, + "requires": { + "os-tmpdir": "~1.0.2" + } + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + }, + "tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "requires": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + } + }, + "trim-newlines": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", + "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=" + }, + "trouter": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/trouter/-/trouter-2.0.1.tgz", + "integrity": "sha512-kr8SKKw94OI+xTGOkfsvwZQ8mWoikZDd2n8XZHjJVZUARZT+4/VV6cacRS6CLsH9bNm+HFIPU1Zx4CnNnb4qlQ==", + "requires": { + "matchit": "^1.0.0" + } + }, + "true-case-path": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-1.0.3.tgz", + "integrity": "sha512-m6s2OdQe5wgpFMC+pAJ+q9djG82O2jcHPOI6RNg1yy9rCYR+WD6Nbpl32fDpfC56nirdRy+opFa/Vk7HYhqaew==", + "requires": { + "glob": "^7.1.2" + } + }, + "tslib": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz", + "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==", + "dev": true + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dev": true, + "requires": { + "prelude-ls": "~1.1.2" + } + }, + "type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", + "dev": true + }, + "typedarray-to-buffer": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-1.0.4.tgz", + "integrity": "sha1-m7i6DoQfs/TPH+fCRenz+opf6Zw=", + "dev": true + }, + "uri-js": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", + "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", + "requires": { + "punycode": "^2.1.0" + } + }, + "url-toolkit": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/url-toolkit/-/url-toolkit-2.1.6.tgz", + "integrity": "sha512-UaZ2+50am4HwrV2crR/JAf63Q4VvPYphe63WGeoJxeu8gmOm0qxPt+KsukfakPNrX9aymGNEkkaoICwn+OuvBw==" + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" + }, + "v8-compile-cache": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz", + "integrity": "sha512-usZBT3PW+LOjM25wbqIlZwPeJV+3OSz3M1k1Ws8snlW39dZyYL9lOGC5FgPVHfk0jKmjiDV8Z0mIbVQPiwFs7g==", + "dev": true + }, + "validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "requires": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "video.js": { + "version": "7.8.2", + "resolved": "https://registry.npmjs.org/video.js/-/video.js-7.8.2.tgz", + "integrity": "sha512-NIxRWCpq5N9QFnwPtemgdBf3IE3GAqLUR6R/12+qv6Flc/o2hRvPw3aFQwytRvBAqgc6Wg2whrHCh8ltQ3RiRA==", + "requires": { + "@babel/runtime": "^7.9.2", + "@videojs/http-streaming": "1.13.2", + "@videojs/xhr": "2.5.1", + "global": "4.3.2", + "keycode": "^2.2.0", + "safe-json-parse": "4.0.0", + "videojs-font": "3.2.0", + "videojs-vtt.js": "^0.15.2" + } + }, + "videojs-font": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/videojs-font/-/videojs-font-3.2.0.tgz", + "integrity": "sha512-g8vHMKK2/JGorSfqAZQUmYYNnXmfec4MLhwtEFS+mMs2IDY398GLysy6BH6K+aS1KMNu/xWZ8Sue/X/mdQPliA==" + }, + "videojs-vtt.js": { + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/videojs-vtt.js/-/videojs-vtt.js-0.15.2.tgz", + "integrity": "sha512-kEo4hNMvu+6KhPvVYPKwESruwhHC3oFis133LwhXHO9U7nRnx0RiJYMiqbgwjgazDEXHR6t8oGJiHM6wq5XlAw==", + "requires": { + "global": "^4.3.1" + } + }, + "videojs-youtube": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/videojs-youtube/-/videojs-youtube-2.6.1.tgz", + "integrity": "sha512-qvwrkgXixbX8xzdkBa7o5r9KUITRISAy4bbyrpBgub3m0mhwz6WLXDIwJZ6/w4Z/JijWjLQqlg8W1jYhCEgHZw==", + "requires": { + "video.js": "^5.6.0 || ^6.2.8 || ^7.0.2" + } + }, + "vlq": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/vlq/-/vlq-0.2.3.tgz", + "integrity": "sha512-DRibZL6DsNhIgYQ+wNdWDL2SL3bKPlVrRiBqV5yuMm++op8W4kGFtaQfCs4KEJn0wBZcHVHJ3eoywX8983k1ow==", + "dev": true + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "requires": { + "isexe": "^2.0.0" + } + }, + "which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" + }, + "wide-align": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", + "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", + "requires": { + "string-width": "^1.0.2 || 2" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true + }, + "wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "requires": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + }, + "dependencies": { + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + } + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "write": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz", + "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", + "dev": true, + "requires": { + "mkdirp": "^0.5.1" + } + }, + "ws": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz", + "integrity": "sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==", + "dev": true, + "requires": { + "async-limiter": "~1.0.0" + } + }, + "xmldom": { + "version": "0.1.31", + "resolved": "https://registry.npmjs.org/xmldom/-/xmldom-0.1.31.tgz", + "integrity": "sha512-yS2uJflVQs6n+CyjHoaBmVSqIDevTAWrzMmjG1Gc7h1qQ7uVozNhEPJAwZXWyGQ/Gafo3fCwrcaokezLPupVyQ==" + }, + "xtend": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.2.0.tgz", + "integrity": "sha1-7vax8ZjByN6vrYsXZaBNrUoBxak=", + "dev": true + }, + "y18n": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", + "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==" + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" + }, + "yargs": { + "version": "13.3.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", + "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", + "requires": { + "cliui": "^5.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.1.2" + }, + "dependencies": { + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "requires": { + "locate-path": "^3.0.0" + } + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + } + } + }, + "yargs-parser": { + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", + "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "dependencies": { + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" + } + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..ccbc675 --- /dev/null +++ b/package.json @@ -0,0 +1,34 @@ +{ + "name": "svelte-app", + "version": "1.0.0", + "scripts": { + "build": "rollup -c", + "dev": "rollup -c -w", + "start": "sirv public" + }, + "devDependencies": { + "@rollup/plugin-commonjs": "^11.0.0", + "@rollup/plugin-node-resolve": "^7.0.0", + "autoprefixer": "^9.8.0", + "eslint": "^6.8.0", + "eslint-plugin-svelte3": "^2.7.3", + "rollup": "^1.20.0", + "rollup-plugin-livereload": "^1.0.0", + "rollup-plugin-node-builtins": "^2.1.2", + "rollup-plugin-node-globals": "^1.4.0", + "rollup-plugin-svelte": "^5.0.3", + "rollup-plugin-terser": "^5.1.2", + "svelte": "^3.0.0", + "svelte-preprocess": "^3.7.1" + }, + "dependencies": { + "compression": "^1.7.4", + "node-sass": "^4.14.1", + "polka": "^0.5.2", + "rollup-plugin-replace": "^2.2.0", + "sirv": "^0.4.6", + "sirv-cli": "^0.4.4", + "video.js": "^7.8.2", + "videojs-youtube": "^2.6.1" + } +} diff --git a/public/browserconfig.xml b/public/browserconfig.xml new file mode 100644 index 0000000..1affccc --- /dev/null +++ b/public/browserconfig.xml @@ -0,0 +1,9 @@ + + + + + + #da532c + + + diff --git a/public/favicon.png b/public/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..07c392932c4825727ccc8247bcef6aed413654aa GIT binary patch literal 25472 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 literal 0 HcmV?d00001 diff --git a/public/global.css b/public/global.css new file mode 100644 index 0000000..a49d422 --- /dev/null +++ b/public/global.css @@ -0,0 +1,79 @@ +html, body { + background-color: #000000; + width: 100%; + height: 100%; + overflow: hidden; + margin: 0; + font-family: 'Muli', sans-serif; + color: #cccccc; +} + +#container { + width: 100%; + height: 100%; + padding: 1px 5px; +} + +.quarter { + width: calc(50% - 5px); + float: left; +} + +.stream { + position: absolute; + top: 0; + left: 0; + bottom: 0; + right: 0; + border: 3px solid #000000; +} + +.wrapper { + padding-bottom: 56.55%; + width: 100%; + position: relative; + overflow: hidden; +} + +.active { + border: 3px solid #ff3333; +} + +.title { + background-color: #000000; + opacity: 0.3; + border-bottom-right-radius: 4px; + padding: 0px 8px 5px 5px; + color: #ffffff; + position: absolute; + top: 0; + left: 0; + z-index: 1000; +} + +.overlay { + width: 100%; + height: 100%; + position: absolute; + top: 0; + left: 0; + z-index: 1500; +} + +.live .overlay { + cursor: pointer; +} + +.offline { + background-color: #111111; +} + +.offline p { + position: absolute; + text-align: center; + top: 25%; + left: 25%; + width: 50%; + height: 50%; + +} diff --git a/public/img/android-chrome-192x192.png b/public/img/android-chrome-192x192.png new file mode 100644 index 0000000000000000000000000000000000000000..6b33fc99641162576374ddbe8dbc9fe90e5f6962 GIT binary patch literal 4009 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 literal 0 HcmV?d00001 diff --git a/public/img/android-chrome-512x512.png b/public/img/android-chrome-512x512.png new file mode 100644 index 0000000000000000000000000000000000000000..e06bd45f5601fb2b6518fb7ad05dcef68922f834 GIT binary patch literal 9498 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 literal 0 HcmV?d00001 diff --git a/public/img/favicon-16x16.png b/public/img/favicon-16x16.png new file mode 100644 index 0000000000000000000000000000000000000000..0fc14b4dd9ce011358f6d6c5843849e80f9e4056 GIT binary patch literal 1298 zcmW+#2~<-@6n#GlNeqifuq;N5q6Li7NJS}HY$6m%@;@=8XxTA9K#BH;5wu#$R>4G+O^_(m(#EA~DMt(E1ff69dCR?T-gz_gW=1Z={4HsYGyt#+ z*yJn1y|qcHMBKWroEwBYl9YpT0Mv!%)6r%)M|O(*xlr59cm+VH6bi(C)c`esTm-lP zu(<-M!6}09$`Q02@L+#9Jc@uG2^b2kpTr_etSDaN_#_UgqtU|EKNd$_sXt40zD`fT#bkTaNy=n-Ci9iW*^zDXe9+h}rd*ri>lPa`-5oG9)Ww=ft_ zy}kV^kXBF6n`H9dPIqAiGR$D06~v(!7|tS{9taD*WUgnkk9Lcm1qR{=EUL_Rvp#l{#^fEp2x?MFOqoJXr63G<=>4}7)XlS&x?+XQCH4$%! znoJ$s3cYlCy_LvyHj~bBPXz;5<3^^3>RWm%Z(a{NSS8o{fYy&lk{3sH{HB=2k z951GiH@RrcC|j=4`Xiw)5^!ozIhZn|VZ3&6Uj&S+9B^Q=#q<{y4lhdP8}?CW9(ar? ztPF=NChMJN?zoK|w3xi@I@Reud6DrUDr)wgyM71ZmW_=*hccu0df?@SWz|0P_kSN3 zr(3p+n||3VrcBu|{PEi2$-KO-jT_g*pTE%dM@)Ww=K0?6yoLlt<4p7N2_8>tXZJxW z4Jl}Sci_ORZq>QF`obIfetH@EcD9j`c?i58aPxyPI2n5oU7ORndNM8TC7Z3#d%x!KW}94Q2iL4) ztB&IjH(w^gf-sE5!afaq44YCYj3&V_g#s5GexfFfBNI_zN_<|3tH5Y9vhW~g!~{yC z9A`q7(v+@b8HI8MW;6;=fdZ8a<@QFo!YH?AP2qJ=6qTbmoyIF+#wiS)MyHL&>5nJh zQt_X(Ai$R+w(mo%k$-03Wd6a!_H%shwJidhs?yUZApexSfQf8=+_m0}QG51G861>f zI_8CZKRke$t+{jc@)bB-aI9UpRr*XH1A)KZYP<}b-~SDqR;+y(m14R7r^K*rLz}o?!e>;fXOJZI#~qP0A|GH5*xD^#^_3tv zZj1ldzJBhXFNX_tH=4fS1axlDs=xTq({+uOCrBb;ZSNjwDv= z&r2u^3y)MD0#!-*xw-SL>l^5lc}m5hV&YIjRc3g^X8hu|WQn)RMA4bd)by0Ngrr!e zY)@(|Ga*$b0oYwOHeo?c3wCwAAE?y@{3QaSv$?y(obF8L7ugc&OyAtqZ81dW1~F4R m)Zf{zYiG1mw7HuqdG7GqZk}v{>v;lS0s{On-&$_e{{I0{ktFf} literal 0 HcmV?d00001 diff --git a/public/img/favicon-32x32.png b/public/img/favicon-32x32.png new file mode 100644 index 0000000000000000000000000000000000000000..4060cd2b06586cba9522d4e342858ea7a5f1e2a2 GIT binary patch literal 1785 zcmVPx&08mU+MNDaNOPT<%0s_xk07{tv&Q|~yMTgK?0Hgo_ zr2qg-ngP{i0M%;&TBZ!K2M1K71F;MY)n@_ETL92p08N_#(OdvdodKo*0H^=})olVI zQIODG0Hy!{Oq>D6LjbG+0n}sw&|Lsfp8`^#1SnOKB~y_aNr^66l&1gyr~m*gSCbn` ziKhSnr~m*lTa~H+0H*)|8%v8EONy%j0o7{(r~m+~0RjHKDbis8{>w1_wk7_>EvM>b zlH)+qWB}4)0HEku{;wgK=1m_>jQ-Lz_=$=3Zf=X=Gvt>PkF?wOe0=_>9rRva^vfCuA- z3xwY$^`RR7$1cVT3v0O?QJ?}(odWb`X7+h`{lhGn( z=T=sAy(@gbH+a1=|KdGlxD05y6zCuz`=O!7ARthm0nc0j^>lRq+&T2gFJFtjukCd6 zS6B9Rbs|rW_k)A~=01DTBKBuz=4NJXnaK25SoxTk_?4A+q|)U!Hu6eJ45ARzR=D)^9)e!x9di^BNSHG$VCP=vh3 z85zn%MEJujvCHP~iHYkVYdh9fPlm|H;mUoUa|(j1_t-6AoRH?@Q{$5x!B+u z8uO_i_`NCPZ*RaH9Qd>(^t2@Kq#W?18|;V-8cB%OJw1P-%k8lvp4?+)k-~VS)AoUZ z^Gi#a+F0yqX@t}>q2XfVKR@!5638$xt>t&&E-t6zY{MZT*meYClE$y*dy}%(VwTM9 zZ*O>@&2*Z_irP8IE-vvdF70GwkFC*Zv>WL>Jn2C}bhs`?dbHUU6_~Tsroi33)9bFq z;ApfNkE+aYx+Ka&Ls9_(yZ`_IHgr->QvfyckdTlyHIOxs@$vET@$vDJQHU}gh#v9r z@sKqO@$%#G_44sD@isE?@$ohB^)(CQ_44Btx?Dg200Qz!L_t(I%Y~75IF(@-haa0m zWsmFfL(o`yBC846dciMaJ>*{&lPk;26`>*%9 z?)y9E`+hIP39S&JP*V!D9QX_eEifI*?>U3;%F2)fE$2HGq(Hi%zP@OES?F15km=h| zU(~Ta^b#MeR;DDlRr;Kx;8@H?+i8<$#$q6UI_BV-?W+t%(mvy7>r$mP+*2-m(}Jl6T4RrFVFl9FVj*cRwG5 z=Y7ym_n_bbJ)cv-g7@oEH|M@PgF)xHQ~BN=_w_L74z2x^5gpx(foM?e=k&bjZ+y^H zKxAe0^i@D@v?yb^8VnxG9d(C-R1YdTpl&R~Fjfbh!Q4^C6ncdx&Y`RdN{SK;MI}&I zljhI@|1XEa!z04{255uW6FWP*z3%RTVj!d2aI7@D@aCK|c|YuuEB9 zjI()3u&L8UMROHDf`piHtFHcWbSNzNoy4|tW<-Wen4%|>Y9f_TKUhmY@W zE$|ZuDY=lUlAXufy9D6a`t!un*;8LpaA-T5odS(2HhY^89KVxy-Y^J*aPmtmqbMjr zzu3$hf8hi9O;0I^V17y@1v|-`dti`Be#_zh7=$suAd-jgaGboglK@sK74o@9^lAMY(lpw}L zNL6B{w`*e6A)R@%?yLN&1KfwBj**i4@MjdGTp( zJ}7^F)VB!%ANFZ1j`H7n$3=acq4fU+AyJ)z`D1)l8iOsexycJfDdW$uexzCHQX`Af;v0G zNk)y-P*S4G+5rTe)%=~pGpWXmOXM{xSD^ZPxg^8$@42LeOT<~hAM+0G=eB<&aCXaF z%G&fkonAYI(pQeB@8d?&w=p3CM-~mHn1L;A_`9wONPq6Lk<`Cng+TB8IO=|N3B7cA zF}2J47q!U!fV?lw5omm2CRN)qgm8_Tzx#x2^4(ub?GKkx+b>MidQTa(+)+j?wv|z{ zEoIbn(_;&u3)Teu6Q}g0OZz{ii@Rd%>Hs|)@eeLcARzGPl>{AnT#d2O!4dy<2TRHC zyK;K*Xc@KpvW(j7*VaMJKkwighdMaoAD+K~La%So)xi<}7mt+EODD^z<1u|5)ckV~ zZz4xJz>e(MPovL9QN)cT0X-dHM|$?t@!Ln#Iis99eXp;Bl7I5_0d)1)R=RpLQCA1> zhp(&s7q$%k6K|#nKo2b)I$wz*-wPkuwZcPF=Fg9O?kSmhB(>fBrs=3XXrK zs{{Pm9)Is`V`%#I&uQANR9zk5)3sAVH2oL+{ZExrw~OWU@|kj79Rz=lweVl?zjkUb z6`tH_SBLDab45JT<3IcME&}v)=yFM)f9K5KsmJAVT^$gY)ckLrIY@w>4kr?(QEafU zru|_4=ilB-i|+heSBKZ~Vsz)f%a4!f)q-+*CD*o4^1{>b zx2MD3uB{dMLC=0<{?I{Q2iYGGmk?W#AC&wN|MR}tW&vUmpv(!#Z+i0&|BcMwO0%w~ z3BVWdH)1Lfd^uj=jf?i@ANdRM2RZ<-CHMn;8s`yPkspxbkf$;Ks2>m$mksyR#3w^v zBpH}{d-Vfqf;vgV9iqmjzmdKA0rd=YfFG-Y^GcxBz<9*M$|9=2_l)*oJDo)RmSFJY zIw0C@bzoX$fNR|OTHHh2D=cdU^VucpIMi}a3Dl95h0I;lj{L(td9ceLfqXrV;-08O zD+}dK{)E4y2COtH*4;91VVTvWune!tA+wtGI&NWGO6Go`auB@-*W#!Fo(2_ldo=7t zEEl+kW^9l`PyZl=oKEMMpbw0}SX_f^#b*cKYjd^v4 zL&LAFr$N_NTlCQCpBiVsug#xrrrNX%qUS)}ZtkDTH2Wv$fb|e|rsDt1GpRIc)NL9! z?mmTu-KXH-VhRYjN3XwLL|wZUQOAyVsZEhE6=dEWn&x%aTA1A17!`JX!VHqDsv(4h`W{_XZm zv8s9Ptpof4zHVdxY(LY4o)_K*2T?e0hi#3eoc-7Y*9b-SJp z*bmX;zj*Plv}{?at`7bC-y@m7O9g+_?2dGB#Q&9C6ZO1m?mg`3fZj=ue@x6BN=SI5 ztHa>I#hU!>=@4?=99vPl>&-v-qwlb%17a)kgC75-OYhLejgPE!(DH}IjSq?Vue2Y` zKY$(t{f8WrME}A2Qg-=sE`|T1=YS3XY)SM@?9-P1gZHG6;{<<={0sYs{lv#V6o`u} zsj#EF75-dAh_53@-XWPk>Icjz`d2m3Qvui;1W;ets~=oOXA*R<2jn*Z-1X{*MveAT z)27zIIT@%e089OVz2iS|{Z{GP8TI!6qx#ug|NV)7R<>W`@z#9@bVvREN1&XyKXN@^ z^OSwEWgL2J?zNxjfW8U6$L5_}kEcByFc#O~T71Agc?O@`^>o)Of^`!g^m|F^hzF?Om2h+0PFkpl9qHy?QRXi=SzRyROXnV94+wift#_9Qys*85 znx~YI&*l_^bOD+yk|aUjG9AwdUuFXCCr%oA!sy&u!GtpY-@6zeGkB(d5Yw zgbwHdwRCXAU){gRI;iJCIsf2~XCCtYD4soO>EMX}d+$9UKu-tQlHUABMw9nkyPvmeYqYWI2b9_s3VUR;kq`WMvx@;unnLCqia7HVF-b%0OX zU-qP3Mme>=~vVUd&qP&Ne4s!hu`>(qw*Ydo;o(^rlC=+o>kAG}z2?6Mz zl=9)zvOgd;VNb^%e`WuoyoXW;#052f)a>%}0!wwsb9N~yRdJpJfPY3Mj=5wjW&6SWD|;tP z|DlLW;Ez1575`!X;4Sw~vJUVGc@8H{x-WVU>;+>^pAsyWYbLGwr;_&|$>js5BPc=s(?^dFoUX7K5+B>+ ze_XywKf63Cc>Z7U!FyWXj9v`Ods_T1m-@4)pErFR)WQOzp&2Q$xPQ~4kNPzB$93+j z4Y5@c22l0&Z&8(X18u?IVT_P5Jj0)#0~9%r$|9H1S%jk%xVGo#9YXFG(Gm1r{8akp zlQHyF)KL0z;Xr}iGvB18gIZeT^PWnq_wMo3>&GbSe0CwVIr~p~{>=N-@bomQfBNs_ zwQ~evj4a=6Ty{~@#5>e{YcaoHR7}sWc|eU;6jOuc#T*lEku!5xGN?7BZ=6dxyZIfX zZ3`%qpN0RhdJ>)dbhO~2mjB|H(RCC`bEBPK1 zv+uP#^iaHW)9z3?wb@%vFQk@}Pjb27fcb#@Q^_Av-j}OvI2<(&v(n!szJILW!GF-0 zo5?in+Bypde}4Z29BS{2u#w;4Yku!1o%i0q=J%Eka{XJu0rMcs&)D`cT{)UWKYbBz z#R2QV&!+Fm>ks)aADlr`Z*AA)@a+D#t>jmkoL$uE#6x;Hi)&aF2dsrGKYQ1wRG7ZQ zh6C0?Dc_mp_xNfK&HZh!CWl4`#@op6e7cmn=a4lAUJKZREdTt01o{QqdU&mwj2^=sFSPR$#Y!ZF}{o&tnLpu~L z4|&OgWy3p)bCAvNB@`^~=j~VF|BF4>4Jxj?IiyGn_>TR5vGBjpOh2cvi~?|g9mv4n z0DKei0k)+F$c_$ZDxQbBCj>q3x+bu*%c=l>E#Nzh5%OREmY=_7`bmgGdJu#Edp{5_ z5wq+8^J&p3G-Dt?pNx}+o{AM1emYiC0^ebb_$2c@B=K5o;&^BeNg|#jrowjNKk#A1 z5yUdYQ>-cGTHKOlc}_jgu`{1)FEGPvc0S2)pKzY*6y_v8oBiF~Qi_{5KT1A6-wD*O z|1H(6dyHz={+7JFzT#SAv&bcV&MmRTGC7|5$kwrf1UGL)pb39eVGQ?8= zJf6r;^siYnt!TuETNEDtfCdgMrry2p@iW^ZYS*ra_mVG@i%W`-58u&>>Bucw@)676 z!^(JSPyX1kw`t4;8#b6M9A?ih;eP8O@5kknherybog5J}ha7@jB0h+zoB6*W5;-1f0pDQ^f5bJ( zoHw<`;an0US=7kLg-Y;Vz&#nrp@M_BY0_fER8P;;dotYIQj4A-rPv(vF*w=J**UpD z9*5(Tapr4Smm<_4s0CW@F6H;}EB2??m55roKJQC|hsd8o{-#*iO>ppa>f84w_3Cwl z;KwanUKcRObmSU*68#|)b{-V;i_O?ZjV=iPbBV}e+4p&$nXKYz^R4BAgIYdpcgmE9 zBBo>iQ5n;bSIoK2EFbY7@ps&~2Q+Nhecm%Jrk*{`IY5rTu4A&O?ScFJZUouH^d>wH zYWeUV*@ux=lpK)T)bb-EZ_xDV4+V#zL$Pmd<{-yk$VWZaHJe0@tc<7FR}^&;>`;6* z#rEuZf}*2KH8~)^D&-^o&7N)E_nbBj`?e2A=HTaNj{lI48WAyF8Osn)VGnBgh$Aaj zJQDF#JrBt9YWax&OP7|4y;qq7)18h<)AF&MabmhuNmU)ov zK}$a3KgNRtp4ZE3@#dQa7W-?p{dB9r09$=I33$=X2)A{qS)2vz7`MJOi8auX- zLPLKRJ^|lQ>JR&ijLg#<|LUth3i;@P;RBclC2$VDi5mHd|0TsDW>>40B2cwz3IWI? z0KQ}Yukb&PE$rX;9^>V)%JHbbq;PlsXD)r1_cVy4NPev3U@XR1#yc9z-(#PmCc~Ry z*{7&@g2$&UpEYB;)ApG`lrpt9C64b(aX~GNu4@Mxy!VVZ`5b(oN3^+6$3nVdtr7KHKt5iOyt#P{f^aX76S($?s{ZjhmO=3*0SE`RRh z8=i82K*QiuOHGsV zlW9oaD)Ku%+vJfD!18}GzIfyw|Bd$+O9;BG7}CMGaqMfx4G}$!31R**%lkD8a9JPV z+aM(*$|r5Kv2p51W1X!-qCD31@pTz=N*xA5mV+u=~tiAKN!LmD#YtAh!l}2U;*78b=>eh|_=cQAQ$;aoS$;<1o zsms^1DTM!r>Ggs*YJF}l)z}tnbRK!u@WS@HCiuGVej>hyNg9!1c)sC2Pay)|TKXrx9lYo2)G?<$FA49*?1mG%_Qwe!U%0;o;{g zA|lT;V8BnT!x2-}wE>1|Yl95c))@?*YXb*(tncG1=4w=Cpi@Mq!I|MSIx|ojmGzvH zl;rE?mOQ}SJ=wrVgR}EygWKB|j8)&wHCCCJYjhuXDaLu!`2Z)LXRqpMQ8jDqF?xFJ zF}k~^Me$towJ8C$YVD5k^4e>xT6M3{)pfhEUUWXS+G)ebt03<$WwHQx>Hb*^#0b&MLtUnBn?@ct$DN}N}!MCKUXU6KtU zA$g|A$P#+%t^4Hbo5R;98=5rPZ+!RNTOwcJIcwv_>C|N1HIC2x4k6zIJgQF1F?#Uz z6DM9a8I7ePC->-aNnGEo*?!}~h35AK$Bw*cTJ`Y}bGsDA3-wf@!t6JDS;AXxJz z`jXSkx14@&dxZS@q`f{H-#!2GHA(h((D$BFpU(o> z)&85Am2)C=-@EI+U-^Fyk|wAz*88pPADnxCZas>L5J`5310ZDRFGhz-{d_~;4bnh? z@T!oAlAy$Lg@U5|w9K4Tg_6pGRE5lfl4J&kiaC!z@o*G|X=t4CKYhmYX%GXmGPhnb zx3IFX_hb=fVFi~4lfx;@%9}$JPT#n4;>ejJGDp}?H+U@Y(qnifE?Dx($#g2nPES`q Jmvv4FO#r$_t#$wa literal 0 HcmV?d00001 diff --git a/public/img/safari-pinned-tab.svg b/public/img/safari-pinned-tab.svg new file mode 100644 index 0000000..efa1edc --- /dev/null +++ b/public/img/safari-pinned-tab.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/index.html b/public/index.html new file mode 100644 index 0000000..ce4e38b --- /dev/null +++ b/public/index.html @@ -0,0 +1,36 @@ + + + + + + + Multiview + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/js/videojs.youtube.min.js b/public/js/videojs.youtube.min.js new file mode 100644 index 0000000..1471886 --- /dev/null +++ b/public/js/videojs.youtube.min.js @@ -0,0 +1,544 @@ +(function (root, factory) { + if (typeof exports === "object" && typeof module !== "undefined") { + var videojs = require("video.js"); + module.exports = factory(videojs.default || videojs) + } else if (typeof define === "function" && define.amd) { + define(["videojs"], function (videojs) { + return root.Youtube = factory(videojs) + }) + } else { + root.Youtube = factory(root.videojs) + } +})(this, function (videojs) { + "use strict"; + var _isOnMobile = videojs.browser.IS_IOS || videojs.browser.IS_NATIVE_ANDROID; + var Tech = videojs.getTech("Tech"); + var Youtube = videojs.extend(Tech, { + constructor: function (options, ready) { + Tech.call(this, options, ready); + this.setPoster(options.poster); + this.setSrc(this.options_.source, true); + this.setTimeout(function () { + if (this.el_) { + this.el_.parentNode.className += " vjs-youtube"; + if (_isOnMobile) { + this.el_.parentNode.className += " vjs-youtube-mobile" + } + if (Youtube.isApiReady) { + this.initYTPlayer() + } else { + Youtube.apiReadyQueue.push(this) + } + } + }.bind(this)) + }, dispose: function () { + if (this.ytPlayer) { + if (this.ytPlayer.stopVideo) { + this.ytPlayer.stopVideo() + } + if (this.ytPlayer.destroy) { + this.ytPlayer.destroy() + } + } else { + var index = Youtube.apiReadyQueue.indexOf(this); + if (index !== -1) { + Youtube.apiReadyQueue.splice(index, 1) + } + } + this.ytPlayer = null; + this.el_.parentNode.className = this.el_.parentNode.className.replace(" vjs-youtube", "").replace(" vjs-youtube-mobile", ""); + this.el_.parentNode.removeChild(this.el_); + Tech.prototype.dispose.call(this) + }, createEl: function () { + var div = document.createElement("div"); + div.setAttribute("id", this.options_.techId); + div.setAttribute("style", "width:100%;height:100%;top:0;left:0;position:absolute"); + div.setAttribute("class", "vjs-tech"); + var divWrapper = document.createElement("div"); + divWrapper.appendChild(div); + if (!_isOnMobile && !this.options_.ytControls) { + var divBlocker = document.createElement("div"); + divBlocker.setAttribute("class", "vjs-iframe-blocker"); + divBlocker.setAttribute("style", "position:absolute;top:0;left:0;width:100%;height:100%"); + divBlocker.onclick = function () { + this.pause() + }.bind(this); + divWrapper.appendChild(divBlocker) + } + return divWrapper + }, initYTPlayer: function () { + var playerVars = {controls: 0, modestbranding: 1, rel: 0, showinfo: 0, loop: this.options_.loop ? 1 : 0}; + if (typeof this.options_.autohide !== "undefined") { + playerVars.autohide = this.options_.autohide + } + if (typeof this.options_["cc_load_policy"] !== "undefined") { + playerVars["cc_load_policy"] = this.options_["cc_load_policy"] + } + if (typeof this.options_.ytControls !== "undefined") { + playerVars.controls = this.options_.ytControls + } + if (typeof this.options_.disablekb !== "undefined") { + playerVars.disablekb = this.options_.disablekb + } + if (typeof this.options_.color !== "undefined") { + playerVars.color = this.options_.color + } + if (!playerVars.controls) { + playerVars.fs = 0 + } else if (typeof this.options_.fs !== "undefined") { + playerVars.fs = this.options_.fs + } + if (this.options_.source.src.indexOf("end=") !== -1) { + var srcEndTime = this.options_.source.src.match(/end=([0-9]*)/); + this.options_.end = parseInt(srcEndTime[1]) + } + if (typeof this.options_.end !== "undefined") { + playerVars.end = this.options_.end + } + if (typeof this.options_.hl !== "undefined") { + playerVars.hl = this.options_.hl + } else if (typeof this.options_.language !== "undefined") { + playerVars.hl = this.options_.language.substr(0, 2) + } + if (typeof this.options_["iv_load_policy"] !== "undefined") { + playerVars["iv_load_policy"] = this.options_["iv_load_policy"] + } + if (typeof this.options_.list !== "undefined") { + playerVars.list = this.options_.list + } else if (this.url && typeof this.url.listId !== "undefined") { + playerVars.list = this.url.listId + } + if (typeof this.options_.listType !== "undefined") { + playerVars.listType = this.options_.listType + } + if (typeof this.options_.modestbranding !== "undefined") { + playerVars.modestbranding = this.options_.modestbranding + } + if (typeof this.options_.playlist !== "undefined") { + playerVars.playlist = this.options_.playlist + } + if (typeof this.options_.playsinline !== "undefined") { + playerVars.playsinline = this.options_.playsinline + } + if (typeof this.options_.rel !== "undefined") { + playerVars.rel = this.options_.rel + } + if (typeof this.options_.showinfo !== "undefined") { + playerVars.showinfo = this.options_.showinfo + } + if (this.options_.source.src.indexOf("start=") !== -1) { + var srcStartTime = this.options_.source.src.match(/start=([0-9]*)/); + this.options_.start = parseInt(srcStartTime[1]) + } + if (typeof this.options_.start !== "undefined") { + playerVars.start = this.options_.start + } + if (typeof this.options_.theme !== "undefined") { + playerVars.theme = this.options_.theme + } + if (typeof this.options_.customVars !== "undefined") { + var customVars = this.options_.customVars; + Object.keys(customVars).forEach(function (key) { + playerVars[key] = customVars[key] + }) + } + this.activeVideoId = this.url ? this.url.videoId : null; + this.activeList = playerVars.list; + var playerConfig = { + videoId: this.activeVideoId, + playerVars: playerVars, + events: { + onReady: this.onPlayerReady.bind(this), + onPlaybackQualityChange: this.onPlayerPlaybackQualityChange.bind(this), + onPlaybackRateChange: this.onPlayerPlaybackRateChange.bind(this), + onStateChange: this.onPlayerStateChange.bind(this), + onVolumeChange: this.onPlayerVolumeChange.bind(this), + onError: this.onPlayerError.bind(this) + } + }; + if (typeof this.options_.enablePrivacyEnhancedMode !== "undefined" && this.options_.enablePrivacyEnhancedMode) { + playerConfig.host = "https://www.youtube-nocookie.com" + } + this.ytPlayer = new YT.Player(this.options_.techId, playerConfig) + }, onPlayerReady: function () { + if (this.options_.muted) { + this.ytPlayer.mute() + } + var playbackRates = this.ytPlayer.getAvailablePlaybackRates(); + if (playbackRates.length > 1) { + this.featuresPlaybackRate = true + } + this.playerReady_ = true; + this.triggerReady(); + if (this.playOnReady) { + this.play() + } else if (this.cueOnReady) { + this.cueVideoById_(this.url.videoId); + this.activeVideoId = this.url.videoId + } + }, onPlayerPlaybackQualityChange: function () { + }, onPlayerPlaybackRateChange: function () { + this.trigger("ratechange") + }, onPlayerStateChange: function (e) { + var state = e.data; + if (state === this.lastState || this.errorNumber) { + return + } + this.lastState = state; + switch (state) { + case-1: + this.trigger("loadstart"); + this.trigger("loadedmetadata"); + this.trigger("durationchange"); + this.trigger("ratechange"); + break; + case YT.PlayerState.ENDED: + this.trigger("ended"); + break; + case YT.PlayerState.PLAYING: + this.trigger("timeupdate"); + this.trigger("durationchange"); + this.trigger("playing"); + this.trigger("play"); + if (this.isSeeking) { + this.onSeeked() + } + break; + case YT.PlayerState.PAUSED: + this.trigger("canplay"); + if (this.isSeeking) { + this.onSeeked() + } else { + this.trigger("pause") + } + break; + case YT.PlayerState.BUFFERING: + this.player_.trigger("timeupdate"); + this.player_.trigger("waiting"); + break + } + }, onPlayerVolumeChange: function () { + this.trigger("volumechange") + }, onPlayerError: function (e) { + this.errorNumber = e.data; + this.trigger("pause"); + this.trigger("error") + }, error: function () { + var code = 1e3 + this.errorNumber; + switch (this.errorNumber) { + case 5: + return {code: code, message: "Error while trying to play the video"}; + case 2: + case 100: + return {code: code, message: "Unable to find the video"}; + case 101: + case 150: + return {code: code, message: "Playback on other Websites has been disabled by the video owner."} + } + return {code: code, message: "YouTube unknown error (" + this.errorNumber + ")"} + }, loadVideoById_: function (id) { + var options = {videoId: id}; + if (this.options_.start) { + options.startSeconds = this.options_.start + } + if (this.options_.end) { + options.endEnd = this.options_.end + } + this.ytPlayer.loadVideoById(options) + }, cueVideoById_: function (id) { + var options = {videoId: id}; + if (this.options_.start) { + options.startSeconds = this.options_.start + } + if (this.options_.end) { + options.endEnd = this.options_.end + } + this.ytPlayer.cueVideoById(options) + }, src: function (src) { + if (src) { + this.setSrc({src: src}) + } + return this.source + }, poster: function () { + if (_isOnMobile) { + return null + } + return this.poster_ + }, setPoster: function (poster) { + this.poster_ = poster + }, setSrc: function (source) { + if (!source || !source.src) { + return + } + delete this.errorNumber; + this.source = source; + this.url = Youtube.parseUrl(source.src); + if (!this.options_.poster) { + if (this.url.videoId) { + this.poster_ = "https://img.youtube.com/vi/" + this.url.videoId + "/0.jpg"; + this.trigger("posterchange"); + this.checkHighResPoster() + } + } + if (this.options_.autoplay && !_isOnMobile) { + if (this.isReady_) { + this.play() + } else { + this.playOnReady = true + } + } else if (this.activeVideoId !== this.url.videoId) { + if (this.isReady_) { + this.cueVideoById_(this.url.videoId); + this.activeVideoId = this.url.videoId + } else { + this.cueOnReady = true + } + } + }, autoplay: function () { + return this.options_.autoplay + }, setAutoplay: function (val) { + this.options_.autoplay = val + }, loop: function () { + return this.options_.loop + }, setLoop: function (val) { + this.options_.loop = val + }, play: function () { + if (!this.url || !this.url.videoId) { + return + } + this.wasPausedBeforeSeek = false; + if (this.isReady_) { + if (this.url.listId) { + if (this.activeList === this.url.listId) { + this.ytPlayer.playVideo() + } else { + this.ytPlayer.loadPlaylist(this.url.listId); + this.activeList = this.url.listId + } + } + if (this.activeVideoId === this.url.videoId) { + this.ytPlayer.playVideo() + } else { + this.loadVideoById_(this.url.videoId); + this.activeVideoId = this.url.videoId + } + } else { + this.trigger("waiting"); + this.playOnReady = true + } + }, pause: function () { + if (this.ytPlayer) { + this.ytPlayer.pauseVideo() + } + }, paused: function () { + return this.ytPlayer ? this.lastState !== YT.PlayerState.PLAYING && this.lastState !== YT.PlayerState.BUFFERING : true + }, currentTime: function () { + return this.ytPlayer ? this.ytPlayer.getCurrentTime() : 0 + }, setCurrentTime: function (seconds) { + if (this.lastState === YT.PlayerState.PAUSED) { + this.timeBeforeSeek = this.currentTime() + } + if (!this.isSeeking) { + this.wasPausedBeforeSeek = this.paused() + } + this.ytPlayer.seekTo(seconds, true); + this.trigger("timeupdate"); + this.trigger("seeking"); + this.isSeeking = true; + if (this.lastState === YT.PlayerState.PAUSED && this.timeBeforeSeek !== seconds) { + clearInterval(this.checkSeekedInPauseInterval); + this.checkSeekedInPauseInterval = setInterval(function () { + if (this.lastState !== YT.PlayerState.PAUSED || !this.isSeeking) { + clearInterval(this.checkSeekedInPauseInterval) + } else if (this.currentTime() !== this.timeBeforeSeek) { + this.trigger("timeupdate"); + this.onSeeked() + } + }.bind(this), 250) + } + }, seeking: function () { + return this.isSeeking + }, seekable: function () { + if (!this.ytPlayer) { + return videojs.createTimeRange() + } + return videojs.createTimeRange(0, this.ytPlayer.getDuration()) + }, onSeeked: function () { + clearInterval(this.checkSeekedInPauseInterval); + this.isSeeking = false; + if (this.wasPausedBeforeSeek) { + this.pause() + } + this.trigger("seeked") + }, playbackRate: function () { + return this.ytPlayer ? this.ytPlayer.getPlaybackRate() : 1 + }, setPlaybackRate: function (suggestedRate) { + if (!this.ytPlayer) { + return + } + this.ytPlayer.setPlaybackRate(suggestedRate) + }, duration: function () { + return this.ytPlayer ? this.ytPlayer.getDuration() : 0 + }, currentSrc: function () { + return this.source && this.source.src + }, ended: function () { + return this.ytPlayer ? this.lastState === YT.PlayerState.ENDED : false + }, volume: function () { + return this.ytPlayer ? this.ytPlayer.getVolume() / 100 : 1 + }, setVolume: function (percentAsDecimal) { + if (!this.ytPlayer) { + return + } + this.ytPlayer.setVolume(percentAsDecimal * 100) + }, muted: function () { + return this.ytPlayer ? this.ytPlayer.isMuted() : false + }, setMuted: function (mute) { + if (!this.ytPlayer) { + return + } else { + this.muted(true) + } + if (mute) { + this.ytPlayer.mute() + } else { + this.ytPlayer.unMute() + } + this.setTimeout(function () { + this.trigger("volumechange") + }, 50) + }, buffered: function () { + if (!this.ytPlayer || !this.ytPlayer.getVideoLoadedFraction) { + return videojs.createTimeRange() + } + var bufferedEnd = this.ytPlayer.getVideoLoadedFraction() * this.ytPlayer.getDuration(); + return videojs.createTimeRange(0, bufferedEnd) + }, preload: function () { + }, load: function () { + }, reset: function () { + }, networkState: function () { + if (!this.ytPlayer) { + return 0 + } + switch (this.ytPlayer.getPlayerState()) { + case-1: + return 0; + case 3: + return 2; + default: + return 1 + } + }, readyState: function () { + if (!this.ytPlayer) { + return 0 + } + switch (this.ytPlayer.getPlayerState()) { + case-1: + return 0; + case 5: + return 1; + case 3: + return 2; + default: + return 4 + } + }, supportsFullScreen: function () { + return document.fullscreenEnabled || document.webkitFullscreenEnabled || document.mozFullScreenEnabled || document.msFullscreenEnabled + }, checkHighResPoster: function () { + var uri = "https://img.youtube.com/vi/" + this.url.videoId + "/maxresdefault.jpg"; + try { + var image = new Image; + image.onload = function () { + if ("naturalHeight" in image) { + if (image.naturalHeight <= 90 || image.naturalWidth <= 120) { + return + } + } else if (image.height <= 90 || image.width <= 120) { + return + } + this.poster_ = uri; + this.trigger("posterchange") + }.bind(this); + image.onerror = function () { + }; + image.src = uri + } catch (e) { + } + } + }); + Youtube.isSupported = function () { + return true + }; + Youtube.canPlaySource = function (e) { + return Youtube.canPlayType(e.type) + }; + Youtube.canPlayType = function (e) { + return e === "video/youtube" + }; + Youtube.parseUrl = function (url) { + var result = {videoId: null}; + var regex = /^.*(youtu.be\/|v\/|u\/\w\/|embed\/|watch\?v=|\&v=)([^#\&\?]*).*/; + var match = url.match(regex); + if (match && match[2].length === 11) { + result.videoId = match[2] + } + var regPlaylist = /[?&]list=([^#\&\?]+)/; + match = url.match(regPlaylist); + if (match && match[1]) { + result.listId = match[1] + } + return result + }; + + function apiLoaded() { + YT.ready(function () { + Youtube.isApiReady = true; + for (var i = 0; i < Youtube.apiReadyQueue.length; ++i) { + Youtube.apiReadyQueue[i].initYTPlayer() + } + }) + } + + function loadScript(src, callback) { + var loaded = false; + var tag = document.createElement("script"); + var firstScriptTag = document.getElementsByTagName("script")[0]; + firstScriptTag.parentNode.insertBefore(tag, firstScriptTag); + tag.onload = function () { + if (!loaded) { + loaded = true; + callback() + } + }; + tag.onreadystatechange = function () { + if (!loaded && (this.readyState === "complete" || this.readyState === "loaded")) { + loaded = true; + callback() + } + }; + tag.src = src + } + + function injectCss() { + var css = ".vjs-youtube .vjs-iframe-blocker { display: none; }" + ".vjs-youtube.vjs-user-inactive .vjs-iframe-blocker { display: block; }" + ".vjs-youtube .vjs-poster { background-size: cover; }" + ".vjs-youtube-mobile .vjs-big-play-button { display: none; }"; + var head = document.head || document.getElementsByTagName("head")[0]; + var style = document.createElement("style"); + style.type = "text/css"; + if (style.styleSheet) { + style.styleSheet.cssText = css + } else { + style.appendChild(document.createTextNode(css)) + } + head.appendChild(style) + } + + Youtube.apiReadyQueue = []; + if (typeof document !== "undefined") { + loadScript("https://www.youtube.com/iframe_api", apiLoaded); + injectCss() + } + if (typeof videojs.registerTech !== "undefined") { + videojs.registerTech("Youtube", Youtube) + } else { + videojs.registerComponent("Youtube", Youtube) + } +}); diff --git a/public/service-worker.js b/public/service-worker.js new file mode 100644 index 0000000..64cd37c --- /dev/null +++ b/public/service-worker.js @@ -0,0 +1,106 @@ +// Copyright 2016 Google Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +const CACHE_VERSION = 8; +const dataCacheName = `multiview-v${CACHE_VERSION}`; +const cacheName = `multiview-final-${CACHE_VERSION}`; +const filesToCache = [ + '/', + '/index.html', + '/service-worker.js', + '/site.webmanifest', + '/favicon.png', + '/browserconfig.xml', + '/build/bundle.css', + '/build/bundle.js', + '/img/android-chrome-192x192.png', + '/img/android-chrome-512x512.png', + '/img/favicon.ico', + '/img/favicon-16x16.png', + '/img/favicon-32x32.png' +]; + +self.addEventListener('install', function(e) { + console.log('[ServiceWorker] Install'); + e.waitUntil( + caches.open(cacheName).then(function(cache) { + console.log('[ServiceWorker] Caching app shell'); + + return cache.addAll(filesToCache); + }) + ); +}); + +self.addEventListener('activate', function(e) { + console.log('[ServiceWorker] Activate'); + e.waitUntil( + caches.keys().then(function(keyList) { + return Promise.all(keyList.map(function(key) { + if (key !== cacheName && key !== dataCacheName) { + console.log('[ServiceWorker] Removing old cache', key); + + return caches.delete(key); + } + })); + }) + ); + + /* + * Fixes a corner case in which the app wasn't returning the latest data. + * You can reproduce the corner case by commenting out the line below and + * then doing the following steps: 1) load app for first time so that the + * initial New York City data is shown 2) press the refresh button on the + * app 3) go offline 4) reload the app. You expect to see the newer NYC + * data, but you actually see the initial data. This happens because the + * service worker is not yet activated. The code below essentially lets + * you activate the service worker faster. + */ + return self.clients.claim(); +}); + +self.addEventListener('fetch', function(e) { + console.warn('[Service Worker] Fetch', e.request.url); + const dataUrl = '/getnexttraintimes?'; + if (e.request.url.indexOf(dataUrl) > -1) { + console.log('!'); + + /* + * When the request URL contains dataUrl, the app is asking for fresh + * weather data. In this case, the service worker always goes to the + * network and then caches the response. This is called the "Cache then + * network" strategy: + * https://jakearchibald.com/2014/offline-cookbook/#cache-then-network + */ + e.respondWith( + caches.open(dataCacheName).then(function(cache) { + return fetch(e.request).then(function(response) { + cache.put(e.request.url, response.clone()); + + return response; + }); + }) + ); + } + else + + /* + * The app is asking for app shell files. In this scenario the app uses the + * "Cache, falling back to the network" offline strategy: + * https://jakearchibald.com/2014/offline-cookbook/#cache-falling-back-to-network + */ + e.respondWith( + caches.match(e.request).then(function(response) { + return response || fetch(e.request); + }) + ); +}); diff --git a/public/site.webmanifest b/public/site.webmanifest new file mode 100644 index 0000000..0cbe9ff --- /dev/null +++ b/public/site.webmanifest @@ -0,0 +1,21 @@ +{ + "name": "Multiview", + "short_name": "Multiview", + "icons": [ + { + "src": "/img/android-chrome-192x192.png", + "sizes": "192x192", + "type": "image/png" + }, + { + "src": "/img/android-chrome-512x512.png", + "sizes": "512x512", + "type": "image/png" + } + ], + "theme_color": "#ffffff", + "background_color": "#ffffff", + "start_url": ".", + "imgdisplay": "standalone", + "display": "standalone" +} diff --git a/rollup.config.js b/rollup.config.js new file mode 100644 index 0000000..72b9db8 --- /dev/null +++ b/rollup.config.js @@ -0,0 +1,91 @@ +import svelte from 'rollup-plugin-svelte'; +import resolve from '@rollup/plugin-node-resolve'; +import commonjs from '@rollup/plugin-commonjs'; +import livereload from 'rollup-plugin-livereload'; +import replace from 'rollup-plugin-replace'; +import { terser } from 'rollup-plugin-terser'; +import sveltePreprocess from 'svelte-preprocess'; +import builtins from 'rollup-plugin-node-builtins'; +// import globals from 'rollup-plugin-node-globals'; + +const production = !process.env.ROLLUP_WATCH; + +const preprocess = sveltePreprocess({ + 'scss': { + 'includePaths': ['src'] + }, + 'postcss': { + 'plugins': [require('autoprefixer')] + } +}); + +export default { + 'input': 'src/main.js', + 'output': { + 'sourcemap': (!production), + 'format': 'iife', + 'name': 'app', + 'file': 'public/build/bundle.js' + }, + 'plugins': [ + /*globals(),*/ + builtins(), + svelte({ + // enable run-time checks when not in production + 'dev': !production, + preprocess, + // we'll extract any component CSS out into + // a separate file - better for performance + 'css': css => { + css.write('public/build/bundle.css'); + } + }), + + // If you have external dependencies installed from + // npm, you'll most likely need these plugins. In + // some cases you'll need additional configuration - + // consult the documentation for details: + // https://github.com/rollup/plugins/tree/master/packages/commonjs + resolve({ + 'browser': true, + 'dedupe': ['svelte'] + }), + commonjs(), + replace({ + 'exclude': 'node_modules/**', + 'ENV': JSON.stringify(production ? 'production' : 'development') + }), + + // In dev mode, call `npm run start` once + // the bundle has been generated + !production && serve(), + + // Watch the `public` directory and refresh the + // browser on changes when not in production + !production && livereload('public'), + + // If we're building for production (npm run build + // instead of npm run dev), minify + production && terser() + ], + 'watch': { + 'clearScreen': false + } +}; + +function serve() { + let started = false; + + return { + writeBundle() { + if (!started) { + started = true; + + require('child_process').spawn('npm', ['run', 'start', '--', '--dev'], { + 'stdio': ['ignore', 'inherit', 'inherit'], + 'shell': true + }); + } + } + }; +} diff --git a/server.js b/server.js new file mode 100644 index 0000000..a5ef64a --- /dev/null +++ b/server.js @@ -0,0 +1,16 @@ +const sirv = require('sirv'); +const polka = require('polka'); +const compress = require('compression')(); + +// Init `sirv` handler +const assets = sirv('public', { + 'maxAge': 31536000, // 1Y + 'immutable': true +}); + +polka() + .use(compress, assets) + .listen(8130, err => { + if (err) throw err; + console.log('> Running on localhost:8130'); + }); diff --git a/src/App.svelte b/src/App.svelte new file mode 100644 index 0000000..361249f --- /dev/null +++ b/src/App.svelte @@ -0,0 +1,26 @@ + + + + +
+ Playing:{$Playing} +
+
+ + + + + + +
+ diff --git a/src/components/Live.svelte b/src/components/Live.svelte new file mode 100644 index 0000000..428d145 --- /dev/null +++ b/src/components/Live.svelte @@ -0,0 +1,73 @@ + + + + +
+
+
+
+
{title}
+ +
+
+
diff --git a/src/components/Twitch.svelte b/src/components/Twitch.svelte new file mode 100644 index 0000000..138c2c5 --- /dev/null +++ b/src/components/Twitch.svelte @@ -0,0 +1,91 @@ + + + + +
+
+
+
+
{title}
+
+
+
diff --git a/src/components/Youtube.svelte b/src/components/Youtube.svelte new file mode 100644 index 0000000..d8a8926 --- /dev/null +++ b/src/components/Youtube.svelte @@ -0,0 +1,96 @@ + + + + +
+
+
+
+
Sky News
+ + +
+
+
diff --git a/src/main.js b/src/main.js new file mode 100644 index 0000000..35d9195 --- /dev/null +++ b/src/main.js @@ -0,0 +1,32 @@ +import App from './App.svelte'; + +const app = new App({ + 'target': document.body, + 'props': { + + } +}); + +if ('serviceWorker' in navigator) { + // + navigator.serviceWorker.ready.then(function(reg) { + console.warn('Ready??', reg); + // main(); + }); + + window.addEventListener('load', function() { + navigator.serviceWorker + .register('./service-worker.js') + .then((r) => { + console.warn('Service Worker Registered', r.scope); + }) + .catch((error) => { + // registration failed + console.error(`Registration failed with ${ error}`); + }); + }); + + // +} + +export default app; diff --git a/src/store/state.js b/src/store/state.js new file mode 100644 index 0000000..b2c8a0e --- /dev/null +++ b/src/store/state.js @@ -0,0 +1,24 @@ +/** + * Created by WebStorm. + * User: martin + * Date: 27/05/2020 + * Time: 10:04 + + */ + +import { writable } from 'svelte/store'; + +const Playing = writable(''); + +const actions = { + setPlaying(id) { + console.log('>> setPlaying', id); + + Playing.update((v) => { + return (v === id) ? '' : id; + }); + } + +}; + +export { Playing, actions };